@remoteoss/remote-flows 0.32.0 → 1.1.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 +52 -109
- package/dist/chunk-2SO4LW7V.js +2 -0
- package/dist/chunk-2SO4LW7V.js.map +1 -0
- package/dist/chunk-2TCLBL2U.js +2 -0
- package/dist/chunk-2TCLBL2U.js.map +1 -0
- package/dist/chunk-2TILNBMK.js +2 -0
- package/dist/chunk-2TILNBMK.js.map +1 -0
- package/dist/{chunk-L3D2AK3X.js → chunk-3JKQNLJQ.js} +2 -2
- package/dist/{chunk-5AG4K2EA.js → chunk-3SAV2OEE.js} +2 -2
- package/dist/chunk-3VOTCJWD.js +2 -0
- package/dist/{chunk-LV5R6H3D.js.map → chunk-3VOTCJWD.js.map} +1 -1
- package/dist/chunk-4C5N57R7.js +2 -0
- package/dist/chunk-4C5N57R7.js.map +1 -0
- package/dist/{chunk-QIQTM4HB.js → chunk-4GDEWYZC.js} +2 -2
- package/dist/chunk-5RPTKYPJ.js +2 -0
- package/dist/{chunk-TWVFLXVF.js.map → chunk-5RPTKYPJ.js.map} +1 -1
- package/dist/chunk-66N57DKF.js +2 -0
- package/dist/{chunk-CNDSIADP.js.map → chunk-66N57DKF.js.map} +1 -1
- package/dist/{chunk-UPXJJBXZ.js → chunk-6YXSWOKH.js} +2 -2
- package/dist/{chunk-PD24XKD6.js → chunk-72OH7PSF.js} +2 -2
- package/dist/{chunk-DPWL4KNA.js → chunk-77EBKLW6.js} +2 -2
- package/dist/chunk-77EBKLW6.js.map +1 -0
- package/dist/{chunk-MZB24YJP.js → chunk-7FMR3EIX.js} +2 -2
- package/dist/chunk-7FMR3EIX.js.map +1 -0
- package/dist/chunk-7IFYJQW7.js +2 -0
- package/dist/chunk-7IFYJQW7.js.map +1 -0
- package/dist/chunk-AFYLN24W.js +2 -0
- package/dist/chunk-AFYLN24W.js.map +1 -0
- package/dist/{chunk-7VOQAVM4.js → chunk-AT7VHJMW.js} +2 -2
- package/dist/chunk-B77KFSEU.js +2 -0
- package/dist/chunk-B77KFSEU.js.map +1 -0
- package/dist/{chunk-DPY77ASH.js → chunk-BFMUZP2O.js} +2 -2
- package/dist/{chunk-6FWFRVQE.js → chunk-BHE7NDIR.js} +2 -2
- package/dist/chunk-BVDT43OO.js +2 -0
- package/dist/chunk-BVDT43OO.js.map +1 -0
- package/dist/chunk-CDCKGIF5.js +2 -0
- package/dist/chunk-CDCKGIF5.js.map +1 -0
- package/dist/chunk-CFN3Z76T.js +2 -0
- package/dist/chunk-CFN3Z76T.js.map +1 -0
- package/dist/{chunk-DTHBG6BD.js → chunk-EC7QVRRX.js} +2 -2
- package/dist/chunk-ELXVVBRD.js +2 -0
- package/dist/chunk-ELXVVBRD.js.map +1 -0
- package/dist/chunk-FGBEOUQK.js +1 -0
- package/dist/chunk-FUMA5UUB.js +2 -0
- package/dist/chunk-FUMA5UUB.js.map +1 -0
- package/dist/{chunk-H425RKFI.js → chunk-FZDQ7EEI.js} +2 -2
- package/dist/{chunk-ENW4DCDU.js → chunk-G7N277WY.js} +2 -2
- package/dist/chunk-H6Q65JLZ.js +2 -0
- package/dist/chunk-H6Q65JLZ.js.map +1 -0
- package/dist/{chunk-QIVDIOJG.js → chunk-I4XJ764Y.js} +2 -2
- package/dist/chunk-IKS3YZ7X.js +2 -0
- package/dist/chunk-IKS3YZ7X.js.map +1 -0
- package/dist/{chunk-EM5UYWUQ.js → chunk-J6QOM4P4.js} +2 -2
- package/dist/chunk-JA7UP6GN.js +2 -0
- package/dist/chunk-JA7UP6GN.js.map +1 -0
- package/dist/{chunk-HBHVB56P.js → chunk-JCYNAEWF.js} +2 -2
- package/dist/{chunk-ANGJCT4I.js → chunk-K3PHODKN.js} +2 -2
- package/dist/{chunk-3ZWDIEEM.js → chunk-KQPDXXG3.js} +1 -1
- package/dist/chunk-KQPDXXG3.js.map +1 -0
- package/dist/chunk-KRMKWQVS.js +2 -0
- package/dist/chunk-KRMKWQVS.js.map +1 -0
- package/dist/chunk-KYCI2BCF.js +2 -0
- package/dist/chunk-KYCI2BCF.js.map +1 -0
- package/dist/{chunk-43WMZDDH.js → chunk-L3Z2G32A.js} +1 -1
- package/dist/chunk-L3Z2G32A.js.map +1 -0
- package/dist/chunk-LCJSVSZ5.js +2 -0
- package/dist/chunk-LCJSVSZ5.js.map +1 -0
- package/dist/{chunk-WVDTHFGS.js → chunk-LJGCFFAT.js} +2 -2
- package/dist/{chunk-COBQ4WSJ.js → chunk-LOZIGR3Z.js} +2 -2
- package/dist/{chunk-ZQ6MG635.js → chunk-MDDI5GLL.js} +2 -2
- package/dist/chunk-MJ3QHSQ2.js +2 -0
- package/dist/chunk-MJ3QHSQ2.js.map +1 -0
- package/dist/{chunk-ID3ZF7QT.js → chunk-MKE27NUF.js} +2 -2
- package/dist/{chunk-AFRA4BIW.js → chunk-MXLQEDRJ.js} +2 -2
- package/dist/{chunk-LQAHRGU4.js → chunk-MZKA5DYP.js} +2 -2
- package/dist/chunk-N2VHZLA3.js +2 -0
- package/dist/chunk-N2VHZLA3.js.map +1 -0
- package/dist/{chunk-BV3PGYSH.js → chunk-ND4FAALX.js} +2 -2
- package/dist/chunk-NFUP6BFU.js +6 -0
- package/dist/chunk-NFUP6BFU.js.map +1 -0
- package/dist/{chunk-IUEXOXFA.js → chunk-NS4FRCEH.js} +2 -2
- package/dist/chunk-NVZHJOA3.js +2 -0
- package/dist/chunk-NVZHJOA3.js.map +1 -0
- package/dist/chunk-OAPK6TR7.js +2 -0
- package/dist/chunk-OAPK6TR7.js.map +1 -0
- package/dist/chunk-OHOCZB6S.js +2 -0
- package/dist/{chunk-76DHIEN7.js.map → chunk-OHOCZB6S.js.map} +1 -1
- package/dist/{chunk-SO3YQ4WT.js → chunk-OMRLBAVD.js} +2 -2
- package/dist/{chunk-MQ6F5LE4.js → chunk-PMTKQME6.js} +2 -2
- package/dist/{chunk-CW3MAP5L.js → chunk-QGGFY3DW.js} +2 -2
- package/dist/{chunk-OW5QGJD4.js → chunk-QH4EGUER.js} +2 -2
- package/dist/chunk-QKJNMYIA.js +2 -0
- package/dist/chunk-QKJNMYIA.js.map +1 -0
- package/dist/{chunk-P5WUODPR.js → chunk-QP3VWGCS.js} +2 -2
- package/dist/{chunk-5ZR7EFPY.js → chunk-QP5V46OP.js} +2 -2
- package/dist/{chunk-Q2N5SOKO.js → chunk-QUQLW5YW.js} +2 -2
- package/dist/{chunk-5KHLOGTR.js → chunk-RPTB2HUM.js} +2 -2
- package/dist/chunk-SQESDLUU.js +2 -0
- package/dist/{chunk-DZ2R72O5.js.map → chunk-SQESDLUU.js.map} +1 -1
- package/dist/{chunk-6VRUYYUV.js → chunk-STPJXT2A.js} +2 -2
- package/dist/chunk-UBWBBXKT.js +2 -0
- package/dist/chunk-UBWBBXKT.js.map +1 -0
- package/dist/{chunk-TWIUL2P3.js → chunk-UOOUV52J.js} +2 -2
- package/dist/{chunk-HZDCZFR5.js → chunk-V6X6F6LC.js} +2 -2
- package/dist/chunk-V6X6F6LC.js.map +1 -0
- package/dist/chunk-VHW6XBMG.js +2 -0
- package/dist/chunk-VHW6XBMG.js.map +1 -0
- package/dist/chunk-VXZN2TCG.js +2 -0
- package/dist/chunk-VXZN2TCG.js.map +1 -0
- package/dist/{chunk-X6CD3FMG.js → chunk-W57XSVXY.js} +2 -2
- package/dist/chunk-XOA7GG4P.js +2 -0
- package/dist/chunk-XQL5I2GC.js +2 -0
- package/dist/chunk-XQL5I2GC.js.map +1 -0
- package/dist/{chunk-2W2XD7ZY.js → chunk-Y47XYRGE.js} +2 -2
- package/dist/chunk-Y47XYRGE.js.map +1 -0
- package/dist/chunk-YR666AEH.js +2 -0
- package/dist/chunk-YR666AEH.js.map +1 -0
- package/dist/{chunk-UJKTTTGB.js → chunk-YSOGGVBO.js} +2 -2
- package/dist/{chunk-OIN3HGOQ.js → chunk-YWZI5KJN.js} +2 -2
- package/dist/chunk-ZIN2OWTH.js +2 -0
- package/dist/chunk-ZIN2OWTH.js.map +1 -0
- package/dist/{chunk-EKKRQI6B.js → chunk-ZKINPHYU.js} +2 -2
- package/dist/{chunk-FRTJ4KWA.js → chunk-ZPN5N6BA.js} +2 -2
- package/dist/chunk-ZPN5N6BA.js.map +1 -0
- package/dist/chunk-ZVA3C5TB.js +2 -0
- package/dist/chunk-ZVA3C5TB.js.map +1 -0
- package/dist/flows/ContractAmendment/ContractAmendmentBack.js +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.d.ts +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.js +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentFlow.d.ts +5 -5
- 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 +12 -12
- package/dist/flows/ContractAmendment/hooks.d.ts +12 -12
- package/dist/flows/ContractAmendment/hooks.js +1 -1
- package/dist/flows/ContractAmendment/index.d.ts +5 -5
- package/dist/flows/ContractAmendment/index.js +1 -1
- package/dist/flows/ContractAmendment/types.d.ts +8 -2
- package/dist/flows/ContractAmendment/utils.d.ts +2 -2
- package/dist/flows/ContractAmendment/utils.js +1 -1
- package/dist/flows/ContractorOnboarding/ContractorOnboarding.d.ts +7 -7
- package/dist/flows/ContractorOnboarding/ContractorOnboarding.js +1 -1
- package/dist/flows/ContractorOnboarding/api.d.ts +16 -26
- package/dist/flows/ContractorOnboarding/api.js +1 -1
- package/dist/flows/ContractorOnboarding/components/BasicInformationStep.d.ts +6 -6
- package/dist/flows/ContractorOnboarding/components/BasicInformationStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.d.ts +7 -7
- package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.d.ts +7 -7
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.d.ts +7 -7
- 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 +7 -7
- package/dist/flows/ContractorOnboarding/components/PricingPlan.js +1 -1
- package/dist/flows/ContractorOnboarding/components/SelectCountryStep.d.ts +6 -6
- package/dist/flows/ContractorOnboarding/components/SelectCountryStep.js +1 -1
- package/dist/flows/ContractorOnboarding/context.d.ts +12 -15
- package/dist/flows/ContractorOnboarding/hooks.d.ts +7 -7
- package/dist/flows/ContractorOnboarding/hooks.js +1 -1
- package/dist/flows/ContractorOnboarding/index.d.ts +7 -7
- package/dist/flows/ContractorOnboarding/index.js +1 -1
- package/dist/flows/ContractorOnboarding/types.d.ts +7 -7
- package/dist/flows/CostCalculator/CostCalculatorFlow.d.ts +5 -5
- package/dist/flows/CostCalculator/CostCalculatorFlow.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorForm.d.ts +5 -5
- 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 +8 -3
- package/dist/flows/CostCalculator/EstimationResults/EstimationResults.js +1 -1
- package/dist/flows/CostCalculator/SummaryResults/SummaryResults.d.ts +8 -3
- package/dist/flows/CostCalculator/SummaryResults/SummaryResults.js +1 -1
- package/dist/flows/CostCalculator/api.d.ts +12 -7
- 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 +7 -7
- package/dist/flows/CostCalculator/hooks.d.ts +7 -7
- package/dist/flows/CostCalculator/hooks.js +1 -1
- package/dist/flows/CostCalculator/index.d.ts +5 -8
- package/dist/flows/CostCalculator/index.js +1 -1
- package/dist/flows/CostCalculator/types.d.ts +8 -3
- package/dist/flows/CostCalculator/utils.d.ts +5 -5
- package/dist/flows/CostCalculator/utils.js +1 -1
- package/dist/flows/Onboarding/OnboardingFlow.d.ts +6 -6
- package/dist/flows/Onboarding/OnboardingFlow.js +1 -1
- package/dist/flows/Onboarding/api.d.ts +25 -34
- 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 +6 -6
- package/dist/flows/Onboarding/components/BasicInformationStep.js +1 -1
- package/dist/flows/Onboarding/components/BenefitsStep.d.ts +6 -6
- package/dist/flows/Onboarding/components/BenefitsStep.js +1 -1
- package/dist/flows/Onboarding/components/ContractDetailsStep.d.ts +6 -6
- 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 +6 -6
- 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 +6 -6
- package/dist/flows/Onboarding/components/SaveDraftButton.d.ts +3 -3
- package/dist/flows/Onboarding/components/SaveDraftButton.js +1 -1
- package/dist/flows/Onboarding/components/SelectCountryStep.d.ts +6 -6
- package/dist/flows/Onboarding/components/SelectCountryStep.js +1 -1
- package/dist/flows/Onboarding/context.d.ts +14 -17
- package/dist/flows/Onboarding/hooks.d.ts +6 -6
- package/dist/flows/Onboarding/hooks.js +1 -1
- package/dist/flows/Onboarding/index.d.ts +6 -6
- package/dist/flows/Onboarding/index.js +1 -1
- package/dist/flows/Onboarding/types.d.ts +6 -6
- package/dist/flows/Onboarding/utils.d.ts +7 -7
- package/dist/flows/Onboarding/utils.js +1 -1
- package/dist/flows/Termination/AdditionalDetailsForm.d.ts +6 -6
- package/dist/flows/Termination/AdditionalDetailsForm.js +1 -1
- package/dist/flows/Termination/EmployeeComunicationForm.d.ts +6 -6
- package/dist/flows/Termination/EmployeeComunicationForm.js +1 -1
- package/dist/flows/Termination/PaidTimeOffForm.d.ts +6 -6
- package/dist/flows/Termination/PaidTimeOffForm.js +1 -1
- package/dist/flows/Termination/TerminationBack.js +1 -1
- package/dist/flows/Termination/TerminationDetailsForm.d.ts +6 -6
- package/dist/flows/Termination/TerminationDetailsForm.js +1 -1
- package/dist/flows/Termination/TerminationFlow.d.ts +6 -6
- package/dist/flows/Termination/TerminationFlow.js +1 -1
- package/dist/flows/Termination/TerminationForm.d.ts +6 -6
- package/dist/flows/Termination/TerminationForm.js +1 -1
- package/dist/flows/Termination/TerminationSubmit.js +1 -1
- package/dist/flows/Termination/api.d.ts +9 -9
- package/dist/flows/Termination/api.js +1 -1
- package/dist/flows/Termination/components/AcknowledgeInformation/AcknowledgeInformation.js +1 -1
- package/dist/flows/Termination/components/AcknowledgeInformation/AcknowledgeInformationFees.js +1 -1
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOff.d.ts +13 -13
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOff.js +1 -1
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.d.ts +12 -12
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.js +1 -1
- package/dist/flows/Termination/components/PaidTimeOff/types.d.ts +13 -13
- package/dist/flows/Termination/components/TerminationDialogInfoContent/TerminationDialogInfoContent.js +1 -1
- package/dist/flows/Termination/components/TerminationReasonsDetailContent/TerminationReasonsDetailContent.js +1 -1
- package/dist/flows/Termination/context.d.ts +14 -14
- package/dist/flows/Termination/hooks.d.ts +6 -6
- package/dist/flows/Termination/hooks.js +1 -1
- package/dist/flows/Termination/index.d.ts +9 -9
- package/dist/flows/Termination/index.js +1 -1
- package/dist/flows/Termination/json-schemas/jsonSchema.js +1 -1
- package/dist/flows/Termination/json-schemas/schema.d.ts +6 -6
- package/dist/flows/Termination/json-schemas/schema.js +1 -1
- package/dist/flows/Termination/types.d.ts +6 -6
- package/dist/flows/Termination/utils.d.ts +6 -6
- package/dist/flows/Termination/utils.js +1 -1
- package/dist/flows/types.d.ts +34 -4
- package/dist/index.css +2 -2
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +37 -16
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internals.d.ts +1 -1
- package/dist/internals.js +1 -1
- package/dist/{mutations-Cdk0PM78.d.ts → mutations-CxBW1zxv.d.ts} +1 -1
- package/dist/{remoteFlows-DUivEPPh.d.ts → remoteFlows-CY58Msdt.d.ts} +1 -8
- package/dist/{types-BZBdCzER.d.ts → types-B9DYionD.d.ts} +40 -22
- package/dist/{types-pohqJTkr.d.ts → types-BoBuxeV0.d.ts} +14 -17
- package/dist/{types-C-X7siUr.d.ts → types-C9ltj_p9.d.ts} +10 -10
- package/dist/{types-OcTc56P-.d.ts → types-QAgBmZlN.d.ts} +3 -2
- package/dist/{types.gen-D0ZCnKWv.d.ts → types.gen-D7WEgMDJ.d.ts} +270 -221
- package/dist/utils-CjDMg_Yr.d.ts +22 -0
- package/package.json +46 -42
- package/dist/ZendeskTriggerButton-Dditzyfj.d.ts +0 -47
- package/dist/chunk-2W2XD7ZY.js.map +0 -1
- package/dist/chunk-3A47R5RQ.js +0 -2
- package/dist/chunk-3A47R5RQ.js.map +0 -1
- package/dist/chunk-3ZWDIEEM.js.map +0 -1
- package/dist/chunk-43WMZDDH.js.map +0 -1
- package/dist/chunk-5CVD5WZZ.js +0 -2
- package/dist/chunk-5CVD5WZZ.js.map +0 -1
- package/dist/chunk-5KZXFQLZ.js +0 -2
- package/dist/chunk-5KZXFQLZ.js.map +0 -1
- package/dist/chunk-5OZPBBXS.js +0 -2
- package/dist/chunk-5OZPBBXS.js.map +0 -1
- package/dist/chunk-5P7INAU2.js +0 -2
- package/dist/chunk-5P7INAU2.js.map +0 -1
- package/dist/chunk-76DHIEN7.js +0 -2
- package/dist/chunk-7CJX7I3M.js +0 -2
- package/dist/chunk-7CJX7I3M.js.map +0 -1
- package/dist/chunk-7R347KBY.js +0 -2
- package/dist/chunk-7R347KBY.js.map +0 -1
- package/dist/chunk-7YQAVDVX.js +0 -2
- package/dist/chunk-7YQAVDVX.js.map +0 -1
- package/dist/chunk-A477TZFC.js +0 -2
- package/dist/chunk-A477TZFC.js.map +0 -1
- package/dist/chunk-AA7QB3QQ.js +0 -2
- package/dist/chunk-AA7QB3QQ.js.map +0 -1
- package/dist/chunk-AM2IRFHQ.js +0 -2
- package/dist/chunk-AM2IRFHQ.js.map +0 -1
- package/dist/chunk-B6IVJUEH.js +0 -2
- package/dist/chunk-B6IVJUEH.js.map +0 -1
- package/dist/chunk-BCXRPHWY.js +0 -2
- package/dist/chunk-BCXRPHWY.js.map +0 -1
- package/dist/chunk-CNDSIADP.js +0 -2
- package/dist/chunk-DPWL4KNA.js.map +0 -1
- package/dist/chunk-DXFA52BU.js +0 -2
- package/dist/chunk-DXFA52BU.js.map +0 -1
- package/dist/chunk-DXIO72S4.js +0 -2
- package/dist/chunk-DXIO72S4.js.map +0 -1
- package/dist/chunk-DYB3RWP7.js +0 -20
- package/dist/chunk-DYB3RWP7.js.map +0 -1
- package/dist/chunk-DZ2R72O5.js +0 -2
- package/dist/chunk-E4CABUTS.js +0 -2
- package/dist/chunk-E4CABUTS.js.map +0 -1
- package/dist/chunk-FRTJ4KWA.js.map +0 -1
- package/dist/chunk-GCJCNDJ3.js +0 -2
- package/dist/chunk-GCJCNDJ3.js.map +0 -1
- package/dist/chunk-GKD2WI2W.js +0 -2
- package/dist/chunk-GKD2WI2W.js.map +0 -1
- package/dist/chunk-GOGPCCBS.js +0 -2
- package/dist/chunk-GOGPCCBS.js.map +0 -1
- package/dist/chunk-HO2TIG7R.js +0 -2
- package/dist/chunk-HO2TIG7R.js.map +0 -1
- package/dist/chunk-HPHWQU34.js +0 -2
- package/dist/chunk-HPHWQU34.js.map +0 -1
- package/dist/chunk-HZDCZFR5.js.map +0 -1
- package/dist/chunk-IHNYOUXP.js +0 -2
- package/dist/chunk-IHNYOUXP.js.map +0 -1
- package/dist/chunk-K2BWF2HC.js +0 -2
- package/dist/chunk-K2BWF2HC.js.map +0 -1
- package/dist/chunk-LV5R6H3D.js +0 -2
- package/dist/chunk-M2CI2UDK.js +0 -2
- package/dist/chunk-M2CI2UDK.js.map +0 -1
- package/dist/chunk-MQWVZSGH.js +0 -2
- package/dist/chunk-MQWVZSGH.js.map +0 -1
- package/dist/chunk-MZB24YJP.js.map +0 -1
- package/dist/chunk-OKM7DRCF.js +0 -2
- package/dist/chunk-P7JZC65P.js +0 -2
- package/dist/chunk-P7JZC65P.js.map +0 -1
- package/dist/chunk-Q4BKFSTW.js +0 -2
- package/dist/chunk-Q4BKFSTW.js.map +0 -1
- package/dist/chunk-QWJFYQK3.js +0 -2
- package/dist/chunk-QWJFYQK3.js.map +0 -1
- package/dist/chunk-SHP4ULHS.js +0 -2
- package/dist/chunk-SHP4ULHS.js.map +0 -1
- package/dist/chunk-SPQO42TA.js +0 -2
- package/dist/chunk-SPQO42TA.js.map +0 -1
- package/dist/chunk-SRRY72CZ.js +0 -2
- package/dist/chunk-SRRY72CZ.js.map +0 -1
- package/dist/chunk-THMWKOHC.js +0 -2
- package/dist/chunk-THMWKOHC.js.map +0 -1
- package/dist/chunk-TWVFLXVF.js +0 -2
- package/dist/chunk-U4JVXNOG.js +0 -2
- package/dist/chunk-U4JVXNOG.js.map +0 -1
- package/dist/chunk-WBRWVTZK.js +0 -2
- package/dist/chunk-WBRWVTZK.js.map +0 -1
- package/dist/chunk-WJ6YJFD4.js +0 -2
- package/dist/chunk-WJ6YJFD4.js.map +0 -1
- package/dist/chunk-WMPKW7HC.js +0 -2
- package/dist/chunk-WMPKW7HC.js.map +0 -1
- package/dist/chunk-WW5UCMQZ.js +0 -2
- package/dist/chunk-WW5UCMQZ.js.map +0 -1
- package/dist/chunk-WXUIXZ7P.js +0 -2
- package/dist/chunk-WXUIXZ7P.js.map +0 -1
- package/dist/chunk-XNOLBKZC.js +0 -2
- package/dist/chunk-XNOLBKZC.js.map +0 -1
- package/dist/chunk-XPL5XOQ4.js +0 -2
- package/dist/chunk-XPL5XOQ4.js.map +0 -1
- package/dist/chunk-XPOLXRYT.js +0 -2
- package/dist/chunk-XPOLXRYT.js.map +0 -1
- package/dist/chunk-YDJVQRND.js +0 -2
- package/dist/chunk-YDJVQRND.js.map +0 -1
- package/dist/chunk-Z3BMF4BO.js +0 -1
- package/dist/chunk-ZE3YT3Q6.js +0 -2
- package/dist/chunk-ZE3YT3Q6.js.map +0 -1
- package/dist/chunk-ZSCKSEAA.js +0 -2
- package/dist/chunk-ZSCKSEAA.js.map +0 -1
- package/dist/flows/CostCalculator/CostCalculatorDisclaimer.d.ts +0 -8
- package/dist/flows/CostCalculator/CostCalculatorDisclaimer.js +0 -2
- package/dist/flows/CostCalculator/CostCalculatorDisclaimer.js.map +0 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorBenefitsBreakdown.d.ts +0 -16
- package/dist/flows/CostCalculator/Results/CostCalculatorBenefitsBreakdown.js +0 -2
- package/dist/flows/CostCalculator/Results/CostCalculatorBenefitsBreakdown.js.map +0 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorContributionsBreakdown.d.ts +0 -16
- package/dist/flows/CostCalculator/Results/CostCalculatorContributionsBreakdown.js +0 -2
- package/dist/flows/CostCalculator/Results/CostCalculatorContributionsBreakdown.js.map +0 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorExtraStatutoryPaymentsBreakdown.d.ts +0 -16
- package/dist/flows/CostCalculator/Results/CostCalculatorExtraStatutoryPaymentsBreakdown.js +0 -2
- package/dist/flows/CostCalculator/Results/CostCalculatorExtraStatutoryPaymentsBreakdown.js.map +0 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorGrossSalary.d.ts +0 -10
- package/dist/flows/CostCalculator/Results/CostCalculatorGrossSalary.js +0 -2
- package/dist/flows/CostCalculator/Results/CostCalculatorGrossSalary.js.map +0 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorIndirectTax.d.ts +0 -9
- package/dist/flows/CostCalculator/Results/CostCalculatorIndirectTax.js +0 -2
- package/dist/flows/CostCalculator/Results/CostCalculatorIndirectTax.js.map +0 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorResults.d.ts +0 -19
- package/dist/flows/CostCalculator/Results/CostCalculatorResults.js +0 -2
- package/dist/flows/CostCalculator/Results/CostCalculatorResults.js.map +0 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorResultsChart.d.ts +0 -13
- package/dist/flows/CostCalculator/Results/CostCalculatorResultsChart.js +0 -2
- package/dist/flows/CostCalculator/Results/CostCalculatorResultsChart.js.map +0 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorTotalCost.d.ts +0 -9
- package/dist/flows/CostCalculator/Results/CostCalculatorTotalCost.js +0 -2
- package/dist/flows/CostCalculator/Results/CostCalculatorTotalCost.js.map +0 -1
- package/dist/flows/CostCalculator/disclaimerUtils.d.ts +0 -10
- package/dist/flows/CostCalculator/disclaimerUtils.js +0 -2
- package/dist/flows/CostCalculator/disclaimerUtils.js.map +0 -1
- /package/dist/{chunk-L3D2AK3X.js.map → chunk-3JKQNLJQ.js.map} +0 -0
- /package/dist/{chunk-5AG4K2EA.js.map → chunk-3SAV2OEE.js.map} +0 -0
- /package/dist/{chunk-QIQTM4HB.js.map → chunk-4GDEWYZC.js.map} +0 -0
- /package/dist/{chunk-UPXJJBXZ.js.map → chunk-6YXSWOKH.js.map} +0 -0
- /package/dist/{chunk-PD24XKD6.js.map → chunk-72OH7PSF.js.map} +0 -0
- /package/dist/{chunk-7VOQAVM4.js.map → chunk-AT7VHJMW.js.map} +0 -0
- /package/dist/{chunk-DPY77ASH.js.map → chunk-BFMUZP2O.js.map} +0 -0
- /package/dist/{chunk-6FWFRVQE.js.map → chunk-BHE7NDIR.js.map} +0 -0
- /package/dist/{chunk-DTHBG6BD.js.map → chunk-EC7QVRRX.js.map} +0 -0
- /package/dist/{chunk-Z3BMF4BO.js.map → chunk-FGBEOUQK.js.map} +0 -0
- /package/dist/{chunk-H425RKFI.js.map → chunk-FZDQ7EEI.js.map} +0 -0
- /package/dist/{chunk-ENW4DCDU.js.map → chunk-G7N277WY.js.map} +0 -0
- /package/dist/{chunk-QIVDIOJG.js.map → chunk-I4XJ764Y.js.map} +0 -0
- /package/dist/{chunk-EM5UYWUQ.js.map → chunk-J6QOM4P4.js.map} +0 -0
- /package/dist/{chunk-HBHVB56P.js.map → chunk-JCYNAEWF.js.map} +0 -0
- /package/dist/{chunk-ANGJCT4I.js.map → chunk-K3PHODKN.js.map} +0 -0
- /package/dist/{chunk-WVDTHFGS.js.map → chunk-LJGCFFAT.js.map} +0 -0
- /package/dist/{chunk-COBQ4WSJ.js.map → chunk-LOZIGR3Z.js.map} +0 -0
- /package/dist/{chunk-ZQ6MG635.js.map → chunk-MDDI5GLL.js.map} +0 -0
- /package/dist/{chunk-ID3ZF7QT.js.map → chunk-MKE27NUF.js.map} +0 -0
- /package/dist/{chunk-AFRA4BIW.js.map → chunk-MXLQEDRJ.js.map} +0 -0
- /package/dist/{chunk-LQAHRGU4.js.map → chunk-MZKA5DYP.js.map} +0 -0
- /package/dist/{chunk-BV3PGYSH.js.map → chunk-ND4FAALX.js.map} +0 -0
- /package/dist/{chunk-IUEXOXFA.js.map → chunk-NS4FRCEH.js.map} +0 -0
- /package/dist/{chunk-SO3YQ4WT.js.map → chunk-OMRLBAVD.js.map} +0 -0
- /package/dist/{chunk-MQ6F5LE4.js.map → chunk-PMTKQME6.js.map} +0 -0
- /package/dist/{chunk-CW3MAP5L.js.map → chunk-QGGFY3DW.js.map} +0 -0
- /package/dist/{chunk-OW5QGJD4.js.map → chunk-QH4EGUER.js.map} +0 -0
- /package/dist/{chunk-P5WUODPR.js.map → chunk-QP3VWGCS.js.map} +0 -0
- /package/dist/{chunk-5ZR7EFPY.js.map → chunk-QP5V46OP.js.map} +0 -0
- /package/dist/{chunk-Q2N5SOKO.js.map → chunk-QUQLW5YW.js.map} +0 -0
- /package/dist/{chunk-5KHLOGTR.js.map → chunk-RPTB2HUM.js.map} +0 -0
- /package/dist/{chunk-6VRUYYUV.js.map → chunk-STPJXT2A.js.map} +0 -0
- /package/dist/{chunk-TWIUL2P3.js.map → chunk-UOOUV52J.js.map} +0 -0
- /package/dist/{chunk-X6CD3FMG.js.map → chunk-W57XSVXY.js.map} +0 -0
- /package/dist/{chunk-OKM7DRCF.js.map → chunk-XOA7GG4P.js.map} +0 -0
- /package/dist/{chunk-UJKTTTGB.js.map → chunk-YSOGGVBO.js.map} +0 -0
- /package/dist/{chunk-OIN3HGOQ.js.map → chunk-YWZI5KJN.js.map} +0 -0
- /package/dist/{chunk-EKKRQI6B.js.map → chunk-ZKINPHYU.js.map} +0 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ClassValue } from 'clsx';
|
|
2
|
+
import { ValidationError } from 'yup';
|
|
3
|
+
|
|
4
|
+
declare function cn(...inputs: ClassValue[]): string;
|
|
5
|
+
type YupError = Pick<ValidationError, 'type' | 'errors'> & {
|
|
6
|
+
inner: Record<string, YupError>[];
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Transforms a Yup ValidationError object into a more readable object. The format is as follows:
|
|
10
|
+
* {
|
|
11
|
+
* [fieldName]: {
|
|
12
|
+
* type: string,
|
|
13
|
+
* errors: string[],
|
|
14
|
+
* inner: YupError[],
|
|
15
|
+
* },
|
|
16
|
+
* }
|
|
17
|
+
* @param errors
|
|
18
|
+
* @returns
|
|
19
|
+
*/
|
|
20
|
+
declare const transformYupErrorsIntoObject: (errors: ValidationError) => Record<string, YupError>;
|
|
21
|
+
|
|
22
|
+
export { cn as c, transformYupErrorsIntoObject as t };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remoteoss/remote-flows",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"build": "NODE_ENV=production tsup",
|
|
6
6
|
"ci": "npm run build && npm run check-format && npm run check-exports && npm run lint && npm run type-check && npm run test",
|
|
@@ -15,6 +15,9 @@
|
|
|
15
15
|
"test:coverage": "vitest --coverage",
|
|
16
16
|
"prepare": "npm run build",
|
|
17
17
|
"release": "tsx scripts/release.ts",
|
|
18
|
+
"size": "tsx scripts/analyze-bundle-size.ts",
|
|
19
|
+
"size:check": "tsx scripts/check-size-limits.ts",
|
|
20
|
+
"size:badge": "tsx scripts/update-size-badge.ts",
|
|
18
21
|
"type-check": "tsc --noEmit"
|
|
19
22
|
},
|
|
20
23
|
"engines": {
|
|
@@ -59,32 +62,31 @@
|
|
|
59
62
|
"react-dom": "^18 || ^19"
|
|
60
63
|
},
|
|
61
64
|
"dependencies": {
|
|
62
|
-
"@hey-api/client-fetch": "^0.8.1",
|
|
63
65
|
"@hookform/resolvers": "^4.1.3",
|
|
64
66
|
"@radix-ui/react-accordion": "^1.2.12",
|
|
65
|
-
"@radix-ui/react-checkbox": "^1.
|
|
66
|
-
"@radix-ui/react-collapsible": "1.1.
|
|
67
|
-
"@radix-ui/react-dialog": "^1.1.
|
|
67
|
+
"@radix-ui/react-checkbox": "^1.3.3",
|
|
68
|
+
"@radix-ui/react-collapsible": "^1.1.12",
|
|
69
|
+
"@radix-ui/react-dialog": "^1.1.15",
|
|
68
70
|
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
|
69
|
-
"@radix-ui/react-label": "^2.1.
|
|
70
|
-
"@radix-ui/react-popover": "^1.1.
|
|
71
|
-
"@radix-ui/react-radio-group": "^1.
|
|
71
|
+
"@radix-ui/react-label": "^2.1.8",
|
|
72
|
+
"@radix-ui/react-popover": "^1.1.15",
|
|
73
|
+
"@radix-ui/react-radio-group": "^1.3.8",
|
|
72
74
|
"@radix-ui/react-scroll-area": "^1.2.10",
|
|
73
|
-
"@radix-ui/react-select": "^2.
|
|
74
|
-
"@radix-ui/react-separator": "^1.1.
|
|
75
|
-
"@radix-ui/react-slot": "^1.
|
|
76
|
-
"@radix-ui/react-tabs": "^1.1.
|
|
77
|
-
"@radix-ui/react-tooltip": "^1.
|
|
78
|
-
"@remoteoss/json-schema-form": "0.11.10-beta.0",
|
|
79
|
-
"@remoteoss/json-schema-form-
|
|
80
|
-
"@tailwindcss/cli": "^4.
|
|
81
|
-
"@tailwindcss/postcss": "^4.
|
|
82
|
-
"@tanstack/react-query": "^5.
|
|
75
|
+
"@radix-ui/react-select": "^2.2.6",
|
|
76
|
+
"@radix-ui/react-separator": "^1.1.8",
|
|
77
|
+
"@radix-ui/react-slot": "^1.2.4",
|
|
78
|
+
"@radix-ui/react-tabs": "^1.1.13",
|
|
79
|
+
"@radix-ui/react-tooltip": "^1.2.8",
|
|
80
|
+
"@remoteoss/json-schema-form-old": "npm:@remoteoss/json-schema-form@0.11.10-beta.0",
|
|
81
|
+
"@remoteoss/remote-json-schema-form-kit": "github:remoteoss/remote-json-schema-form-kit#update-types-kit",
|
|
82
|
+
"@tailwindcss/cli": "^4.1.17",
|
|
83
|
+
"@tailwindcss/postcss": "^4.1.17",
|
|
84
|
+
"@tanstack/react-query": "^5.90.10",
|
|
83
85
|
"class-variance-authority": "^0.7.1",
|
|
84
86
|
"clsx": "^2.1.1",
|
|
85
87
|
"cmdk": "^1.1.1",
|
|
86
88
|
"date-fns": "^3.6.0",
|
|
87
|
-
"dompurify": "^3.
|
|
89
|
+
"dompurify": "^3.3.0",
|
|
88
90
|
"lodash.capitalize": "^4.2.1",
|
|
89
91
|
"lodash.get": "^4.4.2",
|
|
90
92
|
"lodash.groupby": "^4.6.0",
|
|
@@ -92,27 +94,25 @@
|
|
|
92
94
|
"lodash.mergewith": "^4.6.2",
|
|
93
95
|
"lodash.omit": "^4.5.0",
|
|
94
96
|
"lodash.omitby": "^4.6.0",
|
|
95
|
-
"lucide-react": "0.
|
|
96
|
-
"pdfjs-dist": "^5.4.
|
|
97
|
+
"lucide-react": "^0.554.0",
|
|
98
|
+
"pdfjs-dist": "^5.4.394",
|
|
97
99
|
"postcss": "^8.5.3",
|
|
98
100
|
"react-day-picker": "^8.10.1",
|
|
99
101
|
"react-flagpack": "^2.0.6",
|
|
100
|
-
"react-hook-form": "
|
|
102
|
+
"react-hook-form": "7.54.2",
|
|
101
103
|
"react-pdf": "^10.2.0",
|
|
102
|
-
"
|
|
103
|
-
"
|
|
104
|
-
"tailwindcss": "^4.0.9",
|
|
104
|
+
"tailwind-merge": "^3.4.0",
|
|
105
|
+
"tailwindcss": "^4.1.17",
|
|
105
106
|
"tailwindcss-animate": "^1.0.7",
|
|
106
|
-
"type-fest": "^4.35.0",
|
|
107
107
|
"vaul": "^1.1.2",
|
|
108
108
|
"yup": "^0.32.0"
|
|
109
109
|
},
|
|
110
110
|
"devDependencies": {
|
|
111
|
-
"@arethetypeswrong/cli": "^0.
|
|
112
|
-
"@eslint/js": "^9.
|
|
113
|
-
"@hey-api/openapi-ts": "^0.
|
|
114
|
-
"@testing-library/jest-dom": "^6.
|
|
115
|
-
"@testing-library/react": "^16.
|
|
111
|
+
"@arethetypeswrong/cli": "^0.18.2",
|
|
112
|
+
"@eslint/js": "^9.39.1",
|
|
113
|
+
"@hey-api/openapi-ts": "^0.88.0",
|
|
114
|
+
"@testing-library/jest-dom": "^6.9.1",
|
|
115
|
+
"@testing-library/react": "^16.3.0",
|
|
116
116
|
"@testing-library/user-event": "^14.6.1",
|
|
117
117
|
"@types/jsdom": "^21.1.7",
|
|
118
118
|
"@types/lodash.capitalize": "^4.2.9",
|
|
@@ -122,18 +122,22 @@
|
|
|
122
122
|
"@types/lodash.mergewith": "^4.6.9",
|
|
123
123
|
"@types/lodash.omit": "^4.5.9",
|
|
124
124
|
"@types/lodash.omitby": "^4.6.9",
|
|
125
|
-
"@types/node": "^22.
|
|
126
|
-
"@types/react": "^19.
|
|
127
|
-
"@vitest/coverage-istanbul": "^
|
|
125
|
+
"@types/node": "^22.19.1",
|
|
126
|
+
"@types/react": "^19.2.6",
|
|
127
|
+
"@vitest/coverage-istanbul": "^4.0.13",
|
|
128
|
+
"chalk": "^5.3.0",
|
|
128
129
|
"eslint-plugin-react-hooks": "^5.2.0",
|
|
129
|
-
"eslint-plugin-react-refresh": "^0.4.
|
|
130
|
-
"
|
|
131
|
-
"
|
|
132
|
-
"
|
|
133
|
-
"
|
|
134
|
-
"
|
|
130
|
+
"eslint-plugin-react-refresh": "^0.4.24",
|
|
131
|
+
"filesize": "^10.1.0",
|
|
132
|
+
"globals": "^16.5.0",
|
|
133
|
+
"gzip-size": "^7.0.0",
|
|
134
|
+
"glob": "^10.3.0",
|
|
135
|
+
"jsdom": "^26.1.0",
|
|
136
|
+
"msw": "^2.12.2",
|
|
137
|
+
"prettier": "^3.6.2",
|
|
138
|
+
"tsup": "^8.5.1",
|
|
135
139
|
"tsx": "^4.19.2",
|
|
136
|
-
"typescript-eslint": "^8.
|
|
137
|
-
"vitest": "^
|
|
140
|
+
"typescript-eslint": "^8.47.0",
|
|
141
|
+
"vitest": "^4.0.13"
|
|
138
142
|
}
|
|
139
143
|
}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { ClassValue } from 'clsx';
|
|
2
|
-
import { ValidationError } from 'yup';
|
|
3
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
4
|
-
|
|
5
|
-
declare function cn(...inputs: ClassValue[]): string;
|
|
6
|
-
type YupError = Pick<ValidationError, 'type' | 'errors'> & {
|
|
7
|
-
inner: Record<string, YupError>[];
|
|
8
|
-
};
|
|
9
|
-
/**
|
|
10
|
-
* Transforms a Yup ValidationError object into a more readable object. The format is as follows:
|
|
11
|
-
* {
|
|
12
|
-
* [fieldName]: {
|
|
13
|
-
* type: string,
|
|
14
|
-
* errors: string[],
|
|
15
|
-
* inner: YupError[],
|
|
16
|
-
* },
|
|
17
|
-
* }
|
|
18
|
-
* @param errors
|
|
19
|
-
* @returns
|
|
20
|
-
*/
|
|
21
|
-
declare const transformYupErrorsIntoObject: (errors: ValidationError) => Record<string, YupError>;
|
|
22
|
-
|
|
23
|
-
interface ZendeskTriggerButtonProps {
|
|
24
|
-
/**
|
|
25
|
-
* The Zendesk ID for the help article
|
|
26
|
-
*/
|
|
27
|
-
zendeskId: number;
|
|
28
|
-
/**
|
|
29
|
-
* The class name for the button
|
|
30
|
-
*/
|
|
31
|
-
className?: string;
|
|
32
|
-
/**
|
|
33
|
-
* The callback function to be called when the button is clicked
|
|
34
|
-
*/
|
|
35
|
-
onClick?: (zendeskId: number) => void;
|
|
36
|
-
/**
|
|
37
|
-
* The children to be rendered inside the button
|
|
38
|
-
*/
|
|
39
|
-
children?: React.ReactNode;
|
|
40
|
-
/**
|
|
41
|
-
* Whether to open the help article in a new tab
|
|
42
|
-
*/
|
|
43
|
-
external?: boolean;
|
|
44
|
-
}
|
|
45
|
-
declare function ZendeskTriggerButton({ zendeskId, className, onClick, children, external, }: ZendeskTriggerButtonProps): react_jsx_runtime.JSX.Element;
|
|
46
|
-
|
|
47
|
-
export { ZendeskTriggerButton as Z, cn as c, transformYupErrorsIntoObject as t };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/ContractorOnboarding/components/ContractorOnboardingForm.tsx"],"sourcesContent":["import { JSONSchemaFormFields } from '@/src/components/form/JSONSchemaForm';\nimport { Form } from '@/src/components/ui/form';\nimport { useForm } from 'react-hook-form';\nimport { useJsonSchemasValidationFormResolver } from '@/src/components/form/validationResolver';\nimport { Fields } from '@remoteoss/json-schema-form';\nimport { BasicInformationFormPayload } from '@/src/flows/Onboarding/types';\nimport { Components } from '@/src/types/remoteFlows';\nimport { useContractorOnboardingContext } from '@/src/flows/ContractorOnboarding/context';\nimport { useEffect } from 'react';\nimport { PricingPlanFormPayload } from '@/src/flows/ContractorOnboarding/types';\nimport { ContractorOnboardingContractDetailsFormPayload } from '@/src/flows/ContractorOnboarding/types';\n\ntype ContractorOnboardingFormProps = {\n onSubmit: (\n payload:\n | BasicInformationFormPayload\n | PricingPlanFormPayload\n | ContractorOnboardingContractDetailsFormPayload,\n ) => void;\n components?: Components;\n fields?: Fields;\n defaultValues: Record<string, unknown>;\n};\n\nexport function ContractorOnboardingForm({\n defaultValues,\n onSubmit,\n components,\n}: ContractorOnboardingFormProps) {\n const { formId, contractorOnboardingBag } = useContractorOnboardingContext();\n\n const resolver = useJsonSchemasValidationFormResolver(\n // @ts-expect-error no matching type\n contractorOnboardingBag.handleValidation,\n );\n\n const form = useForm({\n resolver,\n defaultValues,\n shouldUnregister: false,\n mode: 'onBlur',\n });\n\n useEffect(() => {\n // When the employmentId is set,\n // we need to run the checkFieldUpdates to update fieldValues in useStepState\n if (contractorOnboardingBag.employmentId) {\n contractorOnboardingBag?.checkFieldUpdates(form.getValues());\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const subscription = form?.watch((values) => {\n const isAnyFieldDirty = Object.keys(values).some(\n (key) =>\n values[key as keyof unknown] !== defaultValues[key as keyof unknown],\n );\n if (isAnyFieldDirty) {\n contractorOnboardingBag?.checkFieldUpdates(values);\n }\n });\n return () => subscription?.unsubscribe();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleSubmit = async (values: Record<string, unknown>) => {\n onSubmit(values);\n };\n\n return (\n <Form\n {...form}\n key={`form-${contractorOnboardingBag.stepState.currentStep.name}`}\n >\n <form\n id={formId}\n onSubmit={form.handleSubmit(handleSubmit)}\n className='space-y-4 RemoteFlows__OnboardingForm'\n >\n <JSONSchemaFormFields\n components={components}\n fields={contractorOnboardingBag.fields}\n fieldsets={contractorOnboardingBag.meta.fieldsets}\n fieldValues={contractorOnboardingBag.fieldValues}\n />\n </form>\n </Form>\n );\n}\n"],"mappings":"+MAQA,OAAS,aAAAA,MAAiB,QAwElB,cAAAC,MAAA,oBATJ,wBAAAC,MAAA,QA/CG,SAASC,EAAyB,CACvC,cAAAC,EACA,SAAAC,EACA,WAAAC,CACF,EAAkC,CAChC,GAAM,CAAE,OAAAC,EAAQ,wBAAAC,CAAwB,EAAIC,EAA+B,EAErEC,EAAWC,EAEfH,EAAwB,gBAC1B,EAEMI,EAAOC,EAAQ,CACnB,SAAAH,EACA,cAAAN,EACA,iBAAkB,GAClB,KAAM,QACR,CAAC,EAEDU,EAAU,IAAM,CAGVN,EAAwB,cAC1BA,GAAyB,kBAAkBI,EAAK,UAAU,CAAC,CAG/D,EAAG,CAAC,CAAC,EAELE,EAAU,IAAM,CACd,IAAMC,EAAeH,GAAM,MAAOI,GAAW,CACnB,OAAO,KAAKA,CAAM,EAAE,KACzCC,GACCD,EAAOC,CAAoB,IAAMb,EAAca,CAAoB,CACvE,GAEET,GAAyB,kBAAkBQ,CAAM,CAErD,CAAC,EACD,MAAO,IAAMD,GAAc,YAAY,CAEzC,EAAG,CAAC,CAAC,EAEL,IAAMG,EAAeC,EAAA,MAAOH,GAAoC,CAC9DX,EAASW,CAAM,CACjB,EAFqB,gBAIrB,OACEd,EAACkB,EAAA,CACE,GAAGR,EACJ,IAAK,QAAQJ,EAAwB,UAAU,YAAY,IAAI,IAE/DP,EAAC,QACC,GAAIM,EACJ,SAAUK,EAAK,aAAaM,CAAY,EACxC,UAAU,wCAEV,SAAAjB,EAACoB,EAAA,CACC,WAAYf,EACZ,OAAQE,EAAwB,OAChC,UAAWA,EAAwB,KAAK,UACxC,YAAaA,EAAwB,YACvC,EACF,CACF,CAEJ,CAjEgBW,EAAAhB,EAAA","names":["useEffect","jsx","createElement","ContractorOnboardingForm","defaultValues","onSubmit","components","formId","contractorOnboardingBag","useContractorOnboardingContext","resolver","useJsonSchemasValidationFormResolver","form","useForm","useEffect","subscription","values","key","handleSubmit","__name","Form","JSONSchemaFormFields"]}
|
package/dist/chunk-3A47R5RQ.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as t}from"./chunk-43WMZDDH.js";import*as c from"react";import*as r from"@radix-ui/react-scroll-area";import{jsx as l,jsxs as n}from"react/jsx-runtime";var S=c.forwardRef(({className:o,children:e,...i},a)=>n(r.Root,{ref:a,className:t("relative overflow-hidden",o),...i,children:[l(r.Viewport,{className:"h-full w-full rounded-[inherit]",children:e}),l(m,{}),l(r.Corner,{})]}));S.displayName=r.Root.displayName;var m=c.forwardRef(({className:o,orientation:e="vertical",...i},a)=>l(r.ScrollAreaScrollbar,{ref:a,orientation:e,className:t("flex touch-none select-none transition-colors",e==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-[1px]",e==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",o),...i,children:l(r.ScrollAreaThumb,{className:"relative flex-1 rounded-full bg-border"})}));m.displayName=r.ScrollAreaScrollbar.displayName;export{S as a};
|
|
2
|
-
//# sourceMappingURL=chunk-3A47R5RQ.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/ui/scroll-area.tsx"],"sourcesContent":["import * as React from 'react';\nimport * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';\n\nimport { cn } from '@/src/lib/utils';\n\nconst ScrollArea = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root>\n>(({ className, children, ...props }, ref) => (\n <ScrollAreaPrimitive.Root\n ref={ref}\n className={cn('relative overflow-hidden', className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport className='h-full w-full rounded-[inherit]'>\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n));\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;\n\nconst ScrollBar = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>\n>(({ className, orientation = 'vertical', ...props }, ref) => (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n ref={ref}\n orientation={orientation}\n className={cn(\n 'flex touch-none select-none transition-colors',\n orientation === 'vertical' &&\n 'h-full w-2.5 border-l border-l-transparent p-[1px]',\n orientation === 'horizontal' &&\n 'h-2.5 flex-col border-t border-t-transparent p-[1px]',\n className,\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb className='relative flex-1 rounded-full bg-border' />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n));\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;\n\nexport { ScrollArea, ScrollBar };\n"],"mappings":"wCAAA,UAAYA,MAAW,QACvB,UAAYC,MAAyB,8BAQnC,OAKE,OAAAC,EALF,QAAAC,MAAA,oBAJF,IAAMC,EAAmB,aAGvB,CAAC,CAAE,UAAAC,EAAW,SAAAC,EAAU,GAAGC,CAAM,EAAGC,IACpCL,EAAqB,OAApB,CACC,IAAKK,EACL,UAAWC,EAAG,2BAA4BJ,CAAS,EAClD,GAAGE,EAEJ,UAAAL,EAAqB,WAApB,CAA6B,UAAU,kCACrC,SAAAI,EACH,EACAJ,EAACQ,EAAA,EAAU,EACXR,EAAqB,SAApB,EAA2B,GAC9B,CACD,EACDE,EAAW,YAAkC,OAAK,YAElD,IAAMM,EAAkB,aAGtB,CAAC,CAAE,UAAAL,EAAW,YAAAM,EAAc,WAAY,GAAGJ,CAAM,EAAGC,IACpDN,EAAqB,sBAApB,CACC,IAAKM,EACL,YAAaG,EACb,UAAWF,EACT,gDACAE,IAAgB,YACd,qDACFA,IAAgB,cACd,uDACFN,CACF,EACC,GAAGE,EAEJ,SAAAL,EAAqB,kBAApB,CAAoC,UAAU,yCAAyC,EAC1F,CACD,EACDQ,EAAU,YAAkC,sBAAoB","names":["React","ScrollAreaPrimitive","jsx","jsxs","ScrollArea","className","children","props","ref","cn","ScrollBar","orientation"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/context.ts"],"sourcesContent":["import { Client } from '@hey-api/client-fetch';\nimport { createContext, useContext } from 'react';\nimport { Components } from './types/remoteFlows';\n\nexport const FormFieldsContext = createContext<{\n components: Components;\n} | null>(null);\n\nexport const useFormFields = () => {\n const context = useContext(FormFieldsContext);\n if (!context?.components) {\n throw new Error('useFormFields must be used within a FormFieldsProvider');\n }\n\n return {\n components: context.components,\n };\n};\n\nexport const RemoteFlowContext = createContext<{ client: Client | null }>({\n client: null,\n});\n\nexport const useClient = () => useContext(RemoteFlowContext);\n"],"mappings":"wCACA,OAAS,iBAAAA,EAAe,cAAAC,MAAkB,QAGnC,IAAMC,EAAoBC,EAEvB,IAAI,EAEDC,EAAgBC,EAAA,IAAM,CACjC,IAAMC,EAAUC,EAAWL,CAAiB,EAC5C,GAAI,CAACI,GAAS,WACZ,MAAM,IAAI,MAAM,wDAAwD,EAG1E,MAAO,CACL,WAAYA,EAAQ,UACtB,CACF,EAT6B,iBAWhBE,EAAoBL,EAAyC,CACxE,OAAQ,IACV,CAAC,EAEYM,EAAYJ,EAAA,IAAME,EAAWC,CAAiB,EAAlC","names":["createContext","useContext","FormFieldsContext","createContext","useFormFields","__name","context","useContext","RemoteFlowContext","useClient"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/utils.ts"],"sourcesContent":["import { clsx, type ClassValue } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\nimport { ValidationError } from 'yup';\nimport DOMPurify from 'dompurify';\nimport { Fields } from '@remoteoss/json-schema-form';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\nexport function formatCurrency(\n amount: number | undefined | null,\n symbol = '€',\n): string {\n if (amount == null) {\n return '-';\n }\n\n const value = amount / 100;\n\n return `${symbol}${value.toLocaleString('en-US', {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n })}`;\n}\n\ntype YupError = Pick<ValidationError, 'type' | 'errors'> & {\n inner: Record<string, YupError>[];\n};\n\n/**\n * Transforms a Yup ValidationError object into a more readable object. The format is as follows:\n * {\n * [fieldName]: {\n * type: string,\n * errors: string[],\n * inner: YupError[],\n * },\n * }\n * @param errors\n * @returns\n */\nexport const transformYupErrorsIntoObject = (errors: ValidationError) => {\n const validationErrors: Record<string, YupError> = {};\n\n errors.inner.forEach((error: ValidationError) => {\n if (error.path !== undefined) {\n validationErrors[error.path] = {\n type: error.type,\n errors: error.errors,\n inner: error.inner.map((innerError) =>\n transformYupErrorsIntoObject(innerError),\n ),\n };\n }\n });\n\n return validationErrors;\n};\n\n/**\n * Debug utility to add version to window object\n * @param version - The version of the SDK\n */\nexport function debug(version: string) {\n window.RemoteFlowsSDK = {\n version,\n };\n}\n\n// Deduplicates rel values if necessary and appends noopener and noreferrer\nconst appendSecureRelValue = (rel: string | null) => {\n const attributes = new Set(rel ? rel.toLowerCase().split(' ') : []);\n\n attributes.add('noopener');\n attributes.add('noreferrer');\n\n return Array.from(attributes).join(' ');\n};\n\nif (DOMPurify.isSupported) {\n DOMPurify.addHook('afterSanitizeAttributes', (node) => {\n const target = node.getAttribute('target');\n\n if (node.tagName === 'A' && (!target || target !== '_self')) {\n const href = node.getAttribute('href');\n\n // Skip internal anchors (#section), relative URLs, and non-http protocols\n if (href && !href.startsWith('#') && /^https?:\\/\\//i.test(href)) {\n node.setAttribute('target', '_blank');\n const rel = node.getAttribute('rel');\n node.setAttribute('rel', appendSecureRelValue(rel));\n }\n }\n });\n}\n\nexport const sanitizeHtml = (html: string) => {\n return DOMPurify.sanitize(html, { ADD_ATTR: ['target'] });\n};\n\nexport const sanitizeHtmlWithImageErrorHandling = (html: string) => {\n const parser = new DOMParser();\n const doc = parser.parseFromString(html, 'text/html');\n\n // Add onerror handler to all img tags to hide them if they fail to load\n const images = doc.querySelectorAll('img');\n images.forEach((img) => {\n img.setAttribute('onerror', \"this.style.display='none'\");\n });\n\n const modifiedHtml = doc.body.innerHTML;\n\n // Sanitize with DOMPurify, allowing onerror attribute\n // Note: The global afterSanitizeAttributes hook (defined above) will still apply\n // to add target=\"_blank\" and rel=\"noopener noreferrer\" to external links\n return DOMPurify.sanitize(modifiedHtml, {\n ADD_ATTR: ['target', 'onerror'],\n });\n};\n\n/**\n * Function to prettify form values. Returns a pretty value and label for each field.\n * @param values - Form values to prettify\n * @param fields - Form fields\n * @returns Prettified form values\n */\n// @ts-expect-error need to check function return type\nexport function prettifyFormValues(\n values: Record<string, unknown>,\n fields: Fields | undefined,\n) {\n if (!fields) {\n return {};\n }\n return Object.fromEntries(\n Object.entries(values)\n // @ts-expect-error need to check function return type\n .map(([key, value]) => {\n if (value === undefined) {\n return [key, undefined];\n }\n\n const field = fields.find((field) => field.name === key);\n\n if (field?.isVisible === false || field?.deprecated) {\n return [key, undefined];\n }\n\n if (field?.type === 'radio' || field?.type === 'select') {\n const option = (\n field.options as Array<{ value: string; label: string }>\n ).find((option) => option.value === value);\n\n if (option) {\n return [\n key,\n {\n prettyValue: option?.label,\n label: field?.label,\n inputType: field?.type,\n },\n ];\n }\n return;\n }\n\n if (field?.type === 'checkbox' && field?.const) {\n return [\n key,\n { prettyValue: true, label: field.label, inputType: field?.type },\n ];\n }\n\n if (field?.type === 'countries' && Array.isArray(value)) {\n return [\n key,\n {\n prettyValue: value.join(),\n label: field.label,\n inputType: field?.type,\n },\n ];\n }\n\n if (field?.type === 'fieldset') {\n // @ts-expect-error need to check function return type\n const prettiedFieldset = prettifyFormValues(\n value as Record<string, unknown>,\n field.fields as Fields,\n );\n\n // Handles benefits fieldset in specific\n if (!prettiedFieldset.label && prettiedFieldset.value) {\n const prettyValue: Record<string, unknown> = {\n ...prettiedFieldset.value,\n label: field.label,\n inputType: field?.type,\n };\n return [key, prettyValue];\n }\n\n return [key, prettiedFieldset];\n }\n\n if (field?.type === 'money') {\n return [\n key,\n {\n prettyValue: value,\n label: field.label,\n inputType: field?.type,\n currency: field?.currency,\n },\n ];\n }\n\n if (field) {\n return [\n key,\n { prettyValue: value, label: field.label, inputType: field?.type },\n ];\n }\n })\n .filter(Boolean),\n );\n}\n"],"mappings":"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","names":["clsx","twMerge","DOMPurify","cn","inputs","twMerge","clsx","__name","formatCurrency","amount","symbol","value","transformYupErrorsIntoObject","errors","validationErrors","error","innerError","debug","version","appendSecureRelValue","rel","attributes","DOMPurify","node","target","href","sanitizeHtml","html","sanitizeHtmlWithImageErrorHandling","doc","img","modifiedHtml","prettifyFormValues","values","fields","key","field","option","prettiedFieldset","prettyValue"]}
|
package/dist/chunk-5CVD5WZZ.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{b as d}from"./chunk-MRYRNB7Y.js";import{b as a}from"./chunk-5P7INAU2.js";import{a as f}from"./chunk-WJ6YJFD4.js";import{f as s,g as l}from"./chunk-CNDSIADP.js";import{a as n}from"./chunk-P37U34EQ.js";import{useEffect as T}from"react";import{jsx as e}from"react/jsx-runtime";function A({fields:m,onSubmit:F}){let{formId:u,terminationBag:o}=d(),c=a(o.handleValidation),i=s({resolver:c,defaultValues:o?.initialValues,shouldUnregister:!1,mode:"onBlur"});T(()=>{let y=i?.watch(r=>{Object.keys(r).some(t=>r[t]!==o?.initialValues?.[t])&&o?.checkFieldUpdates(r)});return()=>y?.unsubscribe()},[]);let p=m||(o?.fields??[]);return e(l,{...i,children:e("form",{id:u,onSubmit:i.handleSubmit(F),className:"space-y-4 RemoteFlows__TerminationForm",children:e(f,{fields:p})})})}n(A,"TerminationForm");export{A as a};
|
|
2
|
-
//# sourceMappingURL=chunk-5CVD5WZZ.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/Termination/TerminationForm.tsx"],"sourcesContent":["import { JSONSchemaFormFields } from '@/src/components/form/JSONSchemaForm';\nimport { Form } from '@/src/components/ui/form';\nimport { useEffect } from 'react';\nimport { useTerminationContext } from './context';\nimport { TerminationFormValues } from '@/src/flows/Termination/types';\nimport { useForm } from 'react-hook-form';\nimport { useJsonSchemasValidationFormResolver } from '@/src/components/form/validationResolver';\nimport { Fields } from '@remoteoss/json-schema-form';\n\ntype TerminationFormProps = {\n onSubmit: (payload: TerminationFormValues) => void;\n fields?: Fields;\n};\n\nexport function TerminationForm({ fields, onSubmit }: TerminationFormProps) {\n const { formId, terminationBag } = useTerminationContext();\n\n const resolver = useJsonSchemasValidationFormResolver(\n // @ts-expect-error no matching type\n terminationBag.handleValidation,\n );\n\n const form = useForm({\n resolver,\n defaultValues: terminationBag?.initialValues,\n shouldUnregister: false,\n mode: 'onBlur',\n });\n\n useEffect(() => {\n const subscription = form?.watch((values) => {\n const isAnyFieldDirty = Object.keys(values).some(\n (key) =>\n values[key as keyof TerminationFormValues] !==\n terminationBag?.initialValues?.[key as keyof TerminationFormValues],\n );\n if (isAnyFieldDirty) {\n terminationBag?.checkFieldUpdates(values);\n }\n });\n return () => subscription?.unsubscribe();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const jsonSchemaFields = fields ? fields : (terminationBag?.fields ?? []);\n\n return (\n <Form {...form}>\n <form\n id={formId}\n onSubmit={form.handleSubmit(onSubmit)}\n className='space-y-4 RemoteFlows__TerminationForm'\n >\n <JSONSchemaFormFields fields={jsonSchemaFields} />\n </form>\n </Form>\n );\n}\n"],"mappings":"+MAEA,OAAS,aAAAA,MAAiB,QAmDlB,cAAAC,MAAA,oBAvCD,SAASC,EAAgB,CAAE,OAAAC,EAAQ,SAAAC,CAAS,EAAyB,CAC1E,GAAM,CAAE,OAAAC,EAAQ,eAAAC,CAAe,EAAIC,EAAsB,EAEnDC,EAAWC,EAEfH,EAAe,gBACjB,EAEMI,EAAOC,EAAQ,CACnB,SAAAH,EACA,cAAeF,GAAgB,cAC/B,iBAAkB,GAClB,KAAM,QACR,CAAC,EAEDM,EAAU,IAAM,CACd,IAAMC,EAAeH,GAAM,MAAOI,GAAW,CACnB,OAAO,KAAKA,CAAM,EAAE,KACzCC,GACCD,EAAOC,CAAkC,IACzCT,GAAgB,gBAAgBS,CAAkC,CACtE,GAEET,GAAgB,kBAAkBQ,CAAM,CAE5C,CAAC,EACD,MAAO,IAAMD,GAAc,YAAY,CAEzC,EAAG,CAAC,CAAC,EAEL,IAAMG,EAAmBb,IAAmBG,GAAgB,QAAU,CAAC,GAEvE,OACEL,EAACgB,EAAA,CAAM,GAAGP,EACR,SAAAT,EAAC,QACC,GAAII,EACJ,SAAUK,EAAK,aAAaN,CAAQ,EACpC,UAAU,yCAEV,SAAAH,EAACiB,EAAA,CAAqB,OAAQF,EAAkB,EAClD,EACF,CAEJ,CA3CgBG,EAAAjB,EAAA","names":["useEffect","jsx","TerminationForm","fields","onSubmit","formId","terminationBag","useTerminationContext","resolver","useJsonSchemasValidationFormResolver","form","useForm","useEffect","subscription","values","key","jsonSchemaFields","Form","JSONSchemaFormFields","__name"]}
|
package/dist/chunk-5KZXFQLZ.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as U}from"./chunk-WVJDCDGZ.js";import{b as B}from"./chunk-Z5WMKCRJ.js";import{A as x,D as V,G as R,d as F,f as C,i as g,j as S,p as j,q as w,s as v,v as E,w as O,x as q,z as P}from"./chunk-AA7QB3QQ.js";import{d as a}from"./chunk-3ZWDIEEM.js";import{a as b}from"./chunk-WXUIXZ7P.js";import{a as n}from"./chunk-P37U34EQ.js";import{createHeadlessForm as p,modify as d}from"@remoteoss/json-schema-form";import{useMutation as l,useQuery as f}from"@tanstack/react-query";var Y=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 O({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"),Z=n(t=>{let{client:r}=a();return f({queryKey:["company",t],retry:!1,enabled:!!t,queryFn:n(async()=>{let e=await w({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"),$=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"),ee=n(()=>{let{client:t}=a();return l({mutationFn:n(r=>R({client:t,headers:{Authorization:""},path:r}),"mutationFn")})},"useEmploymentInvite"),te=n(()=>{let{client:t}=a();return l({mutationFn:n(r=>j({client:t,body:r}),"mutationFn")})},"useCreateReserveInvoice"),ne=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 c=await v({client:i,headers:{Authorization:""},path:{country_code:t,form:r},query:{skip_benefits:!0,...s,...m}});if(c.error||!c.data)throw new Error("Failed to fetch onboarding schema");return c},"queryFn"),enabled:o?.queryOptions?.enabled,select:n(({data:c})=>{let u=c?.data||{};if(o&&o.jsfModify){let{schema:y}=d(u,o.jsfModify);u=y}let z=B(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"),re=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 E({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 c=Object.keys(r).length>0;return p(m,{initialValues:c?{...r}:{}})},"select")})},"useBenefitOffersSchema"),oe=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 l({mutationFn:n(o=>C({client:r,headers:{Authorization:""},body:o,query:{...e}}),"mutationFn")})},"useCreateEmployment"),se=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 l({mutationFn:n(({employmentId:s,...i})=>q({client:r,headers:{Authorization:""},body:i,path:{employment_id:s},query:{skip_benefits:!0,...o}}),"mutationFn")})},"useUpdateEmployment"),ae=n(t=>{let{client:r}=a();return l({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"),Q=n(t=>{let{client:r}=a();return f({...t,queryKey:["countries"],retry:!1,queryFn:n(async()=>{let e=await x({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"),ie=n(t=>{let{data:r,isLoading:e}=Q(t?.queryOptions),{schema:o}=d(U.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"),me=n(({type:t="spread"})=>{let{client:r}=a();return l({mutationFn:n(e=>(t==="no_spread"?F:V)({client:r,body:e}),"mutationFn")})},"useConvertCurrency"),ce=n(()=>{let{client:t}=a();return l({mutationFn:n(({employmentId:r,...e})=>P({client:t,path:{employment_id:r},body:e}),"mutationFn")})},"useUpsertContractEligibility");export{Y as a,Z as b,$ as c,ee as d,te as e,ne as f,re as g,oe as h,se as i,ae as j,ie as k,me as l,ce as m};
|
|
2
|
-
//# sourceMappingURL=chunk-5KZXFQLZ.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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 patchUpdateEmployment2,\n postConvertRawCurrencyConverter,\n postConvertWithSpreadCurrencyConverter,\n postCreateContractEligibility,\n postCreateEmployment2,\n postCreateRiskReserve,\n postInviteEmploymentInvitation,\n PostInviteEmploymentInvitationData,\n putUpdateBenefitOffer,\n UnifiedEmploymentUpsertBenefitOffersRequest,\n} from '@/src/client';\n\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\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?: Omit<FlowOptions, 'jsonSchemaVersion'> & {\n queryOptions?: { enabled?: boolean };\n },\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","useCountries","queryOptions","getSupportedCountry","country","useCountriesSchemaField","countries","isLoading","selectCountrySchema","selectCountryStepSchema","selectCountryForm","countryField","useConvertCurrency","type","postConvertRawCurrencyConverter","postConvertWithSpreadCurrencyConverter","useUpsertContractEligibility","postCreateContractEligibility"]}
|
package/dist/chunk-5OZPBBXS.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{f as n,g as a}from"./chunk-CNDSIADP.js";import{c as m}from"./chunk-WXUIXZ7P.js";import{b as i}from"./chunk-TVZAFTPT.js";import{a as o}from"./chunk-P37U34EQ.js";import{jsx as s}from"react/jsx-runtime";function w({onSubmit:d,onError:c,onSuccess:l}){let{contractAmendment:{stepState:u,isSubmitting:f,onSubmit:C,fields:p},formId:A}=i(),e=n({defaultValues:u.values?.form}),F=o(async r=>{let S=m(r,p,{isPartialValidation:!1});await d?.(S);let t=await C(r);t.error?c?.(t.error):await l?.(t.data)},"handleSubmit");return f?null:s(a,{...e,children:s("form",{id:A,onSubmit:e.handleSubmit(F),className:"RemoteFlows__ContractAmendmentConfirmationForm"})})}o(w,"ContractAmendmentConfirmationForm");export{w as a};
|
|
2
|
-
//# sourceMappingURL=chunk-5OZPBBXS.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/ContractAmendment/ContractAmendmentConfirmationForm.tsx"],"sourcesContent":["import {\n ContractAmendmentResponse,\n PostCreateContractAmendmentError,\n} from '@/src/client';\nimport { parseJSFToValidate } from '@/src/components/form/utils';\nimport { Form } from '@/src/components/ui/form';\nimport { FieldValues, useForm } from 'react-hook-form';\nimport { useContractAmendmentContext } from './context';\n\ntype ContractAmendmentConfirmationFormProps = {\n /**\n * Callback function to be called when the contract amendment form is submitted.\n * This function is called before the contract amendment is submitted.\n * It can be used to perform any additional validation or processing before\n * the contract amendment is submitted.\n * @param values\n * @returns\n */\n onSubmit?: (values: FieldValues) => void | Promise<void>;\n /**\n * Callback function to be called when the contract amendment fails.\n * @param error\n * @returns\n */\n onError?: (error: PostCreateContractAmendmentError) => void;\n /**\n * Callback function to be called when the contract amendment is successfully submitted.\n * @param data\n * @returns\n */\n onSuccess?: (data: ContractAmendmentResponse) => void | Promise<void>;\n};\n\nexport function ContractAmendmentConfirmationForm({\n onSubmit,\n onError,\n onSuccess,\n}: ContractAmendmentConfirmationFormProps) {\n const {\n contractAmendment: {\n stepState,\n isSubmitting,\n onSubmit: submitContractAmendment,\n fields,\n },\n formId,\n } = useContractAmendmentContext();\n const form = useForm({\n defaultValues: stepState.values?.form,\n });\n\n const handleSubmit = async (values: FieldValues) => {\n const parsedValues = parseJSFToValidate(values, fields, {\n isPartialValidation: false,\n });\n await onSubmit?.(parsedValues);\n\n const contractAmendmentResult = await submitContractAmendment(values);\n\n if (contractAmendmentResult.error) {\n onError?.(\n contractAmendmentResult.error as PostCreateContractAmendmentError,\n );\n } else {\n await onSuccess?.(\n contractAmendmentResult.data as ContractAmendmentResponse,\n );\n }\n };\n\n // Ensure that step\n if (isSubmitting) {\n return null;\n }\n\n return (\n <Form {...form}>\n <form\n id={formId}\n onSubmit={form.handleSubmit(handleSubmit)}\n className='RemoteFlows__ContractAmendmentConfirmationForm'\n ></form>\n </Form>\n );\n}\n"],"mappings":"uKA6EM,cAAAA,MAAA,oBA5CC,SAASC,EAAkC,CAChD,SAAAC,EACA,QAAAC,EACA,UAAAC,CACF,EAA2C,CACzC,GAAM,CACJ,kBAAmB,CACjB,UAAAC,EACA,aAAAC,EACA,SAAUC,EACV,OAAAC,CACF,EACA,OAAAC,CACF,EAAIC,EAA4B,EAC1BC,EAAOC,EAAQ,CACnB,cAAeP,EAAU,QAAQ,IACnC,CAAC,EAEKQ,EAAeC,EAAA,MAAOC,GAAwB,CAClD,IAAMC,EAAeC,EAAmBF,EAAQP,EAAQ,CACtD,oBAAqB,EACvB,CAAC,EACD,MAAMN,IAAWc,CAAY,EAE7B,IAAME,EAA0B,MAAMX,EAAwBQ,CAAM,EAEhEG,EAAwB,MAC1Bf,IACEe,EAAwB,KAC1B,EAEA,MAAMd,IACJc,EAAwB,IAC1B,CAEJ,EAjBqB,gBAoBrB,OAAIZ,EACK,KAIPN,EAACmB,EAAA,CAAM,GAAGR,EACR,SAAAX,EAAC,QACC,GAAIS,EACJ,SAAUE,EAAK,aAAaE,CAAY,EACxC,UAAU,iDACX,EACH,CAEJ,CAnDgBC,EAAAb,EAAA","names":["jsx","ContractAmendmentConfirmationForm","onSubmit","onError","onSuccess","stepState","isSubmitting","submitContractAmendment","fields","formId","useContractAmendmentContext","form","useForm","handleSubmit","__name","values","parsedValues","parseJSFToValidate","contractAmendmentResult","Form"]}
|
package/dist/chunk-5P7INAU2.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as n}from"./chunk-P37U34EQ.js";function o(e){return e.inner.reduce((t,r)=>({...t,[r.path]:{type:r.type??"validation",message:r.message}}),{})}n(o,"iterateErrors");var i=n(e=>async s=>{let{yupError:t,formErrors:r}=await e(s);return Object.keys(r||{}).length>0?{values:{},errors:o(t)}:{values:s,errors:{}}},"useJsonSchemasValidationFormResolver");export{o as a,i as b};
|
|
2
|
-
//# sourceMappingURL=chunk-5P7INAU2.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/form/validationResolver.ts"],"sourcesContent":["import { FieldValues, Resolver } from 'react-hook-form';\nimport type { AnyObjectSchema, InferType, ValidationError } from 'yup';\n\n// TODO: deprecated only used with old json-schema-form-version\nexport function iterateErrors(error: ValidationError) {\n const errors = (error as ValidationError).inner.reduce(\n (\n allErrors: Record<string, { type: string; message: string }>,\n currentError: ValidationError,\n ) => {\n return {\n ...allErrors,\n [currentError.path as string]: {\n type: currentError.type ?? 'validation',\n message: currentError.message,\n },\n };\n },\n {} as Record<string, { type: string; message: string }>,\n );\n\n return errors;\n}\n\n// TODO: deprecated only used with old json-schema-form-version\nexport const useJsonSchemasValidationFormResolver = <T extends AnyObjectSchema>(\n handleValidation: (data: FieldValues) => {\n formErrors: Record<string, string>;\n yupError: ValidationError;\n },\n): Resolver<InferType<T>> => {\n return async (data: FieldValues) => {\n const { yupError, formErrors } = await handleValidation(data);\n\n if (Object.keys(formErrors || {}).length > 0) {\n return {\n values: {},\n errors: iterateErrors(yupError as ValidationError),\n };\n }\n return {\n values: data,\n errors: {},\n };\n };\n};\n\nfunction iterateFormErrors(formErrors: Record<string, string>) {\n return Object.entries(formErrors || {}).reduce(\n (\n allErrors: Record<string, { type: string; message: string }>,\n [fieldName, message],\n ) => {\n return {\n ...allErrors,\n [fieldName]: {\n type: 'validation',\n message,\n },\n };\n },\n {} as Record<string, { type: string; message: string }>,\n );\n}\n\nexport const useJsonSchemasValidationFormResolverNext = <\n T extends AnyObjectSchema,\n>(\n handleValidation: (data: FieldValues) => {\n formErrors: Record<string, string>;\n },\n): Resolver<InferType<T>> => {\n return async (data: FieldValues) => {\n const { formErrors } = await handleValidation(data);\n\n if (Object.keys(formErrors || {}).length > 0) {\n return {\n values: {},\n errors: iterateFormErrors(formErrors),\n };\n }\n return {\n values: data,\n errors: {},\n };\n };\n};\n"],"mappings":"wCAIO,SAASA,EAAcC,EAAwB,CAiBpD,OAhBgBA,EAA0B,MAAM,OAC9C,CACEC,EACAC,KAEO,CACL,GAAGD,EACH,CAACC,EAAa,IAAc,EAAG,CAC7B,KAAMA,EAAa,MAAQ,aAC3B,QAASA,EAAa,OACxB,CACF,GAEF,CAAC,CACH,CAGF,CAlBgBC,EAAAJ,EAAA,iBAqBT,IAAMK,EAAuCD,EAClDE,GAKO,MAAOC,GAAsB,CAClC,GAAM,CAAE,SAAAC,EAAU,WAAAC,CAAW,EAAI,MAAMH,EAAiBC,CAAI,EAE5D,OAAI,OAAO,KAAKE,GAAc,CAAC,CAAC,EAAE,OAAS,EAClC,CACL,OAAQ,CAAC,EACT,OAAQT,EAAcQ,CAA2B,CACnD,EAEK,CACL,OAAQD,EACR,OAAQ,CAAC,CACX,CACF,EAnBkD","names":["iterateErrors","error","allErrors","currentError","__name","useJsonSchemasValidationFormResolver","handleValidation","data","yupError","formErrors"]}
|
package/dist/chunk-76DHIEN7.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as n}from"./chunk-5CVD5WZZ.js";import{b as i}from"./chunk-MRYRNB7Y.js";import{a as o}from"./chunk-P37U34EQ.js";import{jsx as a}from"react/jsx-runtime";function p({onSubmit:e}){let{terminationBag:m}=i();return a(n,{onSubmit:o(async t=>{await e?.(m?.parseFormValues(t)),m?.next()},"handleSubmit")})}o(p,"EmployeeCommunicationForm");export{p as a};
|
|
2
|
-
//# sourceMappingURL=chunk-76DHIEN7.js.map
|
package/dist/chunk-7CJX7I3M.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as t}from"./chunk-5CVD5WZZ.js";import{b as e}from"./chunk-MRYRNB7Y.js";import{a as i}from"./chunk-P37U34EQ.js";import{jsx as f}from"react/jsx-runtime";function F({onSubmit:n,onSuccess:s,onError:m}){let{terminationBag:r}=e(),d=i(async a=>{let l=r?.parseFormValues(a,!0);await n?.(l);let o=await r?.onSubmit(a);o?.error?m?.(o.error):o?.data&&await s?.(o.data)},"handleSubmit");return f(t,{fields:r?.fields,onSubmit:d})}i(F,"AdditionalDetailsForm");export{F as a};
|
|
2
|
-
//# sourceMappingURL=chunk-7CJX7I3M.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/Termination/AdditionalDetailsForm.tsx"],"sourcesContent":["import { useTerminationContext } from './context';\nimport { TerminationFormValues } from '@/src/flows/Termination/types';\nimport { OffboardingResponse } from '@/src/client';\nimport { TerminationForm } from '@/src/flows/Termination/TerminationForm';\n\ntype AdditionalDetailsFormProps = {\n /*\n * The function is called when the form is submitted. It receives the form values as an argument.\n */\n onSubmit?: (payload: TerminationFormValues) => void | Promise<void>;\n /*\n * The function is called when the form submission has failed.\n */\n onError?: (error: Error) => void;\n /*\n * The function is called when the form submission is successful. It receives the response data as\n * an argument.\n */\n onSuccess?: (data: OffboardingResponse) => void | Promise<void>;\n};\n\nexport function AdditionalDetailsForm({\n onSubmit,\n onSuccess,\n onError,\n}: AdditionalDetailsFormProps) {\n const { terminationBag } = useTerminationContext();\n\n const handleSubmit = async (values: TerminationFormValues) => {\n const parsedValues = terminationBag?.parseFormValues(\n values,\n true,\n ) as TerminationFormValues;\n await onSubmit?.(parsedValues);\n const terminationResult = await terminationBag?.onSubmit(values);\n\n if (terminationResult?.error) {\n onError?.(terminationResult.error);\n } else {\n if (terminationResult?.data) {\n await onSuccess?.(terminationResult.data as OffboardingResponse);\n }\n }\n };\n\n return (\n <TerminationForm fields={terminationBag?.fields} onSubmit={handleSubmit} />\n );\n}\n"],"mappings":"wHA8CI,cAAAA,MAAA,oBAzBG,SAASC,EAAsB,CACpC,SAAAC,EACA,UAAAC,EACA,QAAAC,CACF,EAA+B,CAC7B,GAAM,CAAE,eAAAC,CAAe,EAAIC,EAAsB,EAE3CC,EAAeC,EAAA,MAAOC,GAAkC,CAC5D,IAAMC,EAAeL,GAAgB,gBACnCI,EACA,EACF,EACA,MAAMP,IAAWQ,CAAY,EAC7B,IAAMC,EAAoB,MAAMN,GAAgB,SAASI,CAAM,EAE3DE,GAAmB,MACrBP,IAAUO,EAAkB,KAAK,EAE7BA,GAAmB,MACrB,MAAMR,IAAYQ,EAAkB,IAA2B,CAGrE,EAfqB,gBAiBrB,OACEX,EAACY,EAAA,CAAgB,OAAQP,GAAgB,OAAQ,SAAUE,EAAc,CAE7E,CA3BgBC,EAAAP,EAAA","names":["jsx","AdditionalDetailsForm","onSubmit","onSuccess","onError","terminationBag","useTerminationContext","handleSubmit","__name","values","parsedValues","terminationResult","TerminationForm"]}
|
package/dist/chunk-7R347KBY.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as o}from"./chunk-43WMZDDH.js";import{a as s}from"./chunk-P37U34EQ.js";import*as t from"@radix-ui/react-tabs";import{jsx as n}from"react/jsx-runtime";function r({className:e,...i}){return n(t.Root,{"data-slot":"tabs",className:o("flex flex-col gap-2",e),...i})}s(r,"Tabs");function c({className:e,...i}){return n(t.List,{"data-slot":"tabs-list",className:o("bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-1",e),...i})}s(c,"TabsList");function l({className:e,...i}){return n(t.Trigger,{"data-slot":"tabs-trigger",className:o("data-[state=active]:bg-background data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring inline-flex flex-1 items-center justify-center gap-1.5 rounded-md px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e),...i})}s(l,"TabsTrigger");function m({className:e,...i}){return n(t.Content,{"data-slot":"tabs-content",className:o("flex-1 outline-none",e),...i})}s(m,"TabsContent");export{r as a,c as b,l as c,m as d};
|
|
2
|
-
//# sourceMappingURL=chunk-7R347KBY.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/ui/tabs.tsx"],"sourcesContent":["import * as React from 'react';\nimport * as TabsPrimitive from '@radix-ui/react-tabs';\n\nimport { cn } from '@/src/lib/utils';\n\nfunction Tabs({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Root>) {\n return (\n <TabsPrimitive.Root\n data-slot='tabs'\n className={cn('flex flex-col gap-2', className)}\n {...props}\n />\n );\n}\n\nfunction TabsList({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.List>) {\n return (\n <TabsPrimitive.List\n data-slot='tabs-list'\n className={cn(\n 'bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-1',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TabsTrigger({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Trigger>) {\n return (\n <TabsPrimitive.Trigger\n data-slot='tabs-trigger'\n className={cn(\n \"data-[state=active]:bg-background data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring inline-flex flex-1 items-center justify-center gap-1.5 rounded-md px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TabsContent({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Content>) {\n return (\n <TabsPrimitive.Content\n data-slot='tabs-content'\n className={cn('flex-1 outline-none', className)}\n {...props}\n />\n );\n}\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent };\n"],"mappings":"gFACA,UAAYA,MAAmB,uBAS3B,cAAAC,MAAA,oBALJ,SAASC,EAAK,CACZ,UAAAC,EACA,GAAGC,CACL,EAAoD,CAClD,OACEH,EAAe,OAAd,CACC,YAAU,OACV,UAAWI,EAAG,sBAAuBF,CAAS,EAC7C,GAAGC,EACN,CAEJ,CAXSE,EAAAJ,EAAA,QAaT,SAASK,EAAS,CAChB,UAAAJ,EACA,GAAGC,CACL,EAAoD,CAClD,OACEH,EAAe,OAAd,CACC,YAAU,YACV,UAAWI,EACT,kGACAF,CACF,EACC,GAAGC,EACN,CAEJ,CAdSE,EAAAC,EAAA,YAgBT,SAASC,EAAY,CACnB,UAAAL,EACA,GAAGC,CACL,EAAuD,CACrD,OACEH,EAAe,UAAd,CACC,YAAU,eACV,UAAWI,EACT,0fACAF,CACF,EACC,GAAGC,EACN,CAEJ,CAdSE,EAAAE,EAAA,eAgBT,SAASC,EAAY,CACnB,UAAAN,EACA,GAAGC,CACL,EAAuD,CACrD,OACEH,EAAe,UAAd,CACC,YAAU,eACV,UAAWI,EAAG,sBAAuBF,CAAS,EAC7C,GAAGC,EACN,CAEJ,CAXSE,EAAAG,EAAA","names":["TabsPrimitive","jsx","Tabs","className","props","cn","__name","TabsList","TabsTrigger","TabsContent"]}
|
package/dist/chunk-7YQAVDVX.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as X}from"./chunk-CW3MAP5L.js";import{a as G}from"./chunk-VFRHMNLJ.js";import{a as I,b as z,c as Q,f as W}from"./chunk-XPOLXRYT.js";import{a as C}from"./chunk-HN5HLFTB.js";import{a as K}from"./chunk-5P7INAU2.js";import{c as Y}from"./chunk-THMWKOHC.js";import{a as Z}from"./chunk-2YTBWEC7.js";import{c as V}from"./chunk-WXUIXZ7P.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-7YQAVDVX.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/CostCalculator/utils.ts","../src/flows/CostCalculator/hooks.tsx"],"sourcesContent":["import type {\n CostCalculatorEmploymentParam,\n CostCalculatorEstimateParams,\n} from '@/src/client';\n\nimport { $TSFixMe } from '@/src/types/remoteFlows';\nimport { AnyObjectSchema, number, object } from 'yup';\nimport { CostCalculatorVersion, defaultEstimationOptions } from './hooks';\nimport type {\n CostCalculatorEstimationOptions,\n CostCalculatorEstimationSubmitValues,\n CurrencyKey,\n} from './types';\nimport { BASE_RATES } from '@/src/flows/CostCalculator/constants';\n\n/**\n * Build the validation schema for the form.\n * @returns\n */\nexport function buildValidationSchema(\n fields: $TSFixMe[],\n employerBillingCurrency: string,\n includeEstimationTitle?: boolean,\n) {\n const fieldsSchema = fields.reduce<Record<string, AnyObjectSchema>>(\n (fieldsSchemaAcc, field) => {\n // Special handling for salary fields\n if (field.name === 'salary' || field.name === 'salary_conversion') {\n fieldsSchemaAcc[field.name] = (field.schema as AnyObjectSchema).when(\n 'salary_converted',\n {\n is: (val: string | null) => val === field.name,\n then: (schema) => schema.required('Required field'),\n otherwise: (schema) => schema.optional(),\n },\n );\n } else if (field.name === 'management') {\n fieldsSchemaAcc[field.name] = object({\n management_fee: number()\n .transform((value) => {\n return isNaN(value) ? undefined : value;\n })\n .min(0, 'Management fee must be greater than or equal to 0')\n .max(\n employerBillingCurrency\n ? BASE_RATES[employerBillingCurrency as CurrencyKey]\n : BASE_RATES.USD,\n () => {\n const maxValue = employerBillingCurrency\n ? BASE_RATES[employerBillingCurrency as CurrencyKey]\n : BASE_RATES.USD;\n const displayValue = maxValue / 100;\n return `Management fee cannot exceed ${displayValue} ${employerBillingCurrency}`;\n },\n ),\n });\n } else if (field.name === 'estimation_title' && includeEstimationTitle) {\n // Make estimation_title required when includeEstimationTitle is true\n fieldsSchemaAcc[field.name] = (\n field.schema as AnyObjectSchema\n ).required('Required field');\n } else {\n fieldsSchemaAcc[field.name] = field.schema as AnyObjectSchema;\n }\n return fieldsSchemaAcc;\n },\n {},\n );\n return object(fieldsSchema) as AnyObjectSchema;\n}\n\n/**\n * Format the benefits to the expected format by the API.\n * @param benefits\n * @returns\n */\nfunction formatBenefits(benefits: Record<string, string>) {\n const needle = 'benefit-';\n return Object.keys(benefits).reduce<\n Array<{ benefit_group_slug: string; benefit_tier_slug: string }>\n >((acc, key) => {\n const benefitTierSlug = benefits[key];\n if (benefitTierSlug === 'none') {\n return acc;\n }\n const benefitGroupSlug = key.replace(needle, '');\n const benefitEntry = {\n benefit_group_slug: benefitGroupSlug,\n benefit_tier_slug: benefitTierSlug,\n };\n return [...acc, benefitEntry];\n }, []);\n}\n\nfunction mapValueToEmployment(\n value: CostCalculatorEstimationSubmitValues,\n estimationOptions: CostCalculatorEstimationOptions,\n version: CostCalculatorVersion,\n): CostCalculatorEmploymentParam {\n const managementFee = Number(value.management?.management_fee);\n const currencyCode = value.currency_code;\n\n const base: CostCalculatorEmploymentParam = {\n region_slug: value.region || value.country,\n employment_term: value.contract_duration_type ?? 'fixed',\n title: value.estimation_title || estimationOptions.title,\n age: value.age ?? undefined,\n ...(value.benefits && { benefits: formatBenefits(value.benefits) }),\n ...(estimationOptions.includeManagementFee &&\n managementFee && {\n discount: {\n quoted_amount: estimationOptions.showManagementFee\n ? managementFee\n : BASE_RATES[currencyCode as keyof typeof BASE_RATES] ||\n BASE_RATES.USD,\n text: '',\n },\n }),\n };\n\n return {\n ...base,\n ...getSalaryFields(value, version),\n };\n}\n\nfunction getSalaryFields(\n value: CostCalculatorEstimationSubmitValues,\n version: CostCalculatorVersion,\n): Partial<CostCalculatorEmploymentParam> {\n const isMarketing =\n version === 'marketing' || value.salary_converted === 'salary_conversion';\n const isStandard =\n version === 'standard' && value.salary_converted === 'salary';\n const useHiringBudget = value.hiring_budget === 'my_hiring_budget';\n\n if (isMarketing) {\n const useEmployerCurrency = value.salary_converted === 'salary_conversion';\n return useHiringBudget\n ? {\n annual_total_cost_in_employer_currency: value.salary,\n }\n : {\n [useEmployerCurrency\n ? 'annual_gross_salary_in_employer_currency'\n : 'annual_gross_salary']: value.salary,\n };\n }\n\n if (isStandard) {\n return useHiringBudget\n ? {\n annual_total_cost: value.salary,\n }\n : {\n annual_gross_salary: value.salary,\n };\n }\n\n return {};\n}\n\n/**\n * Build the payload for the cost calculator estimation.\n * @param values\n * @param estimationOptions\n * @returns\n */\nexport function buildPayload(\n values:\n | CostCalculatorEstimationSubmitValues\n | CostCalculatorEstimationSubmitValues[],\n estimationOptions: CostCalculatorEstimationOptions = defaultEstimationOptions,\n version: CostCalculatorVersion = 'standard',\n): CostCalculatorEstimateParams {\n const employments = Array.isArray(values) ? values : [values];\n\n if (employments.length === 0) {\n throw new Error('At least one employment value is required');\n }\n\n if (employments.length > 1) {\n const currencies = new Set(employments.map((v) => v.currency));\n if (currencies.size > 1) {\n console.warn(\n 'Multiple currencies detected in array. Using currency from first employment.',\n );\n }\n }\n\n return {\n employer_currency_slug: employments[0].currency,\n include_benefits: estimationOptions.includeBenefits,\n include_cost_breakdowns: estimationOptions.includeCostBreakdowns,\n include_premium_benefits: estimationOptions.includePremiumBenefits,\n include_management_fee: estimationOptions.includeManagementFee,\n employments: employments.map((value) =>\n mapValueToEmployment(value, estimationOptions, version),\n ),\n };\n}\n","import { MinimalRegion } from '@/src/client';\nimport { jsonSchema } from '@/src/flows/CostCalculator/jsonSchema';\nimport type {\n CostCalculatorEstimationFormValues,\n CostCalculatorEstimationOptions,\n CostCalculatorEstimationSubmitValues,\n UseCostCalculatorOptions,\n} from '@/src/flows/CostCalculator/types';\nimport type { JSFModify } from '@/src/flows/types';\n\nimport { parseJSFToValidate } from '@/src/components/form/utils';\nimport { iterateErrors } from '@/src/components/form/validationResolver';\nimport { createHeadlessForm, modify } from '@remoteoss/json-schema-form';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { string, ValidationError } from 'yup';\nimport { buildPayload, buildValidationSchema } from './utils';\nimport {\n useCompanyCurrencies,\n useCostCalculatorCountries,\n useCostCalculatorEstimation,\n useRegionFields,\n} from '@/src/flows/CostCalculator/api';\nimport { $TSFixMe, JSFField, Meta } from '@/src/types/remoteFlows';\nimport { SalaryField } from '@/src/flows/CostCalculator/components/SalaryField';\nimport {\n FieldSetField,\n FieldSetProps,\n} from '@/src/components/form/fields/FieldSetField';\nimport { mutationToPromise } from '@/src/lib/mutations';\nexport type CostCalculatorVersion = 'standard' | 'marketing';\n\ntype CostCalculatorCountry = {\n value: string;\n label: string;\n childRegions: MinimalRegion[];\n hasAdditionalFields: boolean | undefined;\n regionSlug: string;\n currency: string;\n};\n\ntype JSFValidationError = {\n formErrors: Record<\n string,\n {\n type: string;\n message: string;\n }\n >;\n yupError: ValidationError;\n};\n\nexport const defaultEstimationOptions: CostCalculatorEstimationOptions = {\n title: 'Estimation',\n includeBenefits: false,\n includeCostBreakdowns: false,\n includePremiumBenefits: false,\n enableCurrencyConversion: false,\n includeEstimationTitle: false,\n includeManagementFee: false,\n};\n\ntype UseCostCalculatorParams = {\n /**\n * The default region slug to preselect a country and a region.\n */\n defaultRegion?: string;\n /**\n * The default currency slug to preselect a currency.\n */\n defaultCurrency?: string;\n\n /**\n * The default salary to preselect a salary.\n */\n defaultSalary?: string;\n /**\n * The estimation options.\n */\n estimationOptions: CostCalculatorEstimationOptions;\n options?: UseCostCalculatorOptions;\n version?: CostCalculatorVersion;\n};\n\nconst useStaticSchema = (options?: { jsfModify?: JSFModify }) => {\n const { schema: jsonSchemaModified } = modify(\n jsonSchema.data.schema,\n options?.jsfModify || {},\n );\n\n return createHeadlessForm(jsonSchemaModified);\n};\n\ntype HiringBudget = 'my_hiring_budget' | 'employee_annual_salary';\n\nfunction getSalaryTitle(\n salaryField: unknown,\n hiringBudget?: HiringBudget,\n): string {\n if (\n typeof salaryField === 'object' &&\n salaryField !== null &&\n 'title' in salaryField\n ) {\n const title = (salaryField as { title?: string }).title;\n if (title) return title;\n }\n return hiringBudget === 'my_hiring_budget'\n ? 'Hiring budget'\n : \"Employee's annual salary\";\n}\n\n/**\n * Hook to use the cost calculator.\n */\nexport const useCostCalculator = (\n {\n defaultRegion,\n defaultCurrency,\n defaultSalary,\n estimationOptions,\n options,\n version,\n }: UseCostCalculatorParams = {\n estimationOptions: defaultEstimationOptions,\n },\n) => {\n const fieldsMetaRef = useRef<{\n fields: Meta;\n }>({\n fields: {},\n });\n const [selectedRegion, setSelectedRegion] = useState<string | undefined>(\n defaultRegion,\n );\n const [selectedCountry, setSelectedCountry] =\n useState<CostCalculatorCountry>();\n const [employerBillingCurrency, setEmployerBillingCurrency] = useState<\n string | undefined\n >();\n const [hiringBudget, setHiringBudget] = useState<HiringBudget>();\n const { data: countries, isLoading: isLoadingCountries } =\n useCostCalculatorCountries({\n includePremiumBenefits: estimationOptions.includePremiumBenefits,\n });\n const { data: currencies, isLoading: isLoadingCurrencies } =\n useCompanyCurrencies();\n\n const jsonSchemaRegionSlug = selectedRegion || selectedCountry?.value;\n\n const { data: jsonSchemaRegionFields, isLoading: isLoadingRegionFields } =\n useRegionFields(jsonSchemaRegionSlug, {\n includePremiumBenefits: estimationOptions.includePremiumBenefits,\n options,\n });\n const costCalculatorEstimationMutation = useCostCalculatorEstimation();\n const { mutateAsync: costCalculatorEstimationMutationAsync } =\n mutationToPromise(costCalculatorEstimationMutation);\n const employeeBillingCurrency = selectedCountry?.currency;\n\n const salaryField = options?.jsfModify?.fields?.salary;\n const salaryFieldPresentation =\n salaryField &&\n typeof salaryField === 'object' &&\n 'presentation' in salaryField\n ? (\n salaryField as {\n presentation?: {\n salary_conversion_properties?: {\n label?: string;\n description?: string;\n };\n };\n }\n ).presentation\n : undefined;\n\n const getCurrencies = useCallback(() => {\n const shouldSwapOrder =\n employeeBillingCurrency && employerBillingCurrency\n ? employeeBillingCurrency !== employerBillingCurrency\n : false;\n\n if (employeeBillingCurrency !== employerBillingCurrency) {\n return {\n from: employerBillingCurrency,\n to: employeeBillingCurrency,\n shouldSwapOrder,\n };\n }\n\n return {\n from: employeeBillingCurrency,\n to: employerBillingCurrency,\n shouldSwapOrder,\n };\n }, [employeeBillingCurrency, employerBillingCurrency]);\n\n const showManagementField = estimationOptions.showManagementFee;\n const showEstimationTitleField = estimationOptions.includeEstimationTitle;\n const customFields = useMemo(() => {\n const { from, to, shouldSwapOrder } = getCurrencies();\n const salaryTitle = getSalaryTitle(salaryField, hiringBudget);\n\n return {\n fields: {\n salary: {\n ...salaryField,\n title: salaryTitle,\n presentation: {\n salary_conversion_properties: {\n label:\n salaryFieldPresentation?.salary_conversion_properties?.label,\n description:\n salaryFieldPresentation?.salary_conversion_properties\n ?.description,\n },\n currencies: { from, to },\n Component: (\n props: JSFField & { currencies: { from: string; to: string } },\n ) => {\n return (\n <SalaryField\n {...props}\n shouldSwapOrder={shouldSwapOrder}\n conversionType={\n version === 'marketing' ? 'no_spread' : 'spread'\n }\n defaultValue={defaultSalary}\n />\n );\n },\n },\n },\n hiring_budget: {\n ...options?.jsfModify?.fields?.hiring_budget,\n presentation: {\n hidden: version == 'marketing',\n },\n },\n management: {\n ...options?.jsfModify?.fields?.management,\n properties: {\n ...(options?.jsfModify?.fields?.management as $TSFixMe)?.properties,\n management_fee: {\n ...(options?.jsfModify?.fields?.management as $TSFixMe)\n ?.properties?.management_fee,\n 'x-jsf-presentation': {\n inputType: 'money',\n additionalProps: {\n currency: employerBillingCurrency || 'USD',\n },\n },\n },\n },\n presentation: {\n ...(typeof options?.jsfModify?.fields?.management === 'object'\n ? (\n options?.jsfModify?.fields?.management as Record<\n string,\n $TSFixMe\n >\n )['x-jsf-presentation']\n : {}),\n hidden: !showManagementField,\n Component: (props: FieldSetProps) => {\n return (\n <FieldSetField\n {...props}\n variant='inset'\n features={{\n toggle: {\n enabled: true,\n stateField: 'management._expanded',\n labels: {\n expand: 'Define',\n collapse: 'Remove',\n },\n },\n }}\n />\n );\n },\n },\n },\n estimation_title: {\n ...options?.jsfModify?.fields?.estimation_title,\n 'x-jsf-presentation': {\n hidden: !showEstimationTitleField,\n },\n },\n },\n };\n }, [\n getCurrencies,\n salaryField,\n hiringBudget,\n salaryFieldPresentation?.salary_conversion_properties?.label,\n salaryFieldPresentation?.salary_conversion_properties?.description,\n options?.jsfModify?.fields?.hiring_budget,\n options?.jsfModify?.fields?.management,\n options?.jsfModify?.fields?.estimation_title,\n version,\n employerBillingCurrency,\n showManagementField,\n showEstimationTitleField,\n defaultSalary,\n ]);\n\n const fieldsJSONSchema = useStaticSchema({\n jsfModify: {\n fields: {\n ...options?.jsfModify?.fields,\n ...customFields?.fields,\n },\n },\n });\n\n useEffect(() => {\n // Initialize selectedCountry from defaultRegion\n if (defaultRegion && countries) {\n const defaultCountry = countries.find(\n ({ value }) => value === defaultRegion,\n );\n if (defaultCountry) {\n setSelectedCountry(defaultCountry);\n }\n }\n }, [defaultRegion, countries]);\n\n useEffect(() => {\n // Initialize selectedCurrency from defaultCurrency\n if (defaultCurrency && currencies) {\n const defaultCurrencyObj = currencies.find(\n ({ value }) => value === defaultCurrency,\n );\n if (defaultCurrencyObj) {\n setEmployerBillingCurrency(defaultCurrencyObj.label);\n }\n }\n }, [defaultCurrency, currencies]);\n\n /**\n * Submit the estimation form with the given values.\n * @param values\n */\n async function onSubmit(values: CostCalculatorEstimationSubmitValues) {\n return costCalculatorEstimationMutationAsync(\n buildPayload(values, estimationOptions, version),\n );\n }\n\n /**\n * If the selected country has no child regions and has additional fields,\n * set the current region to the country's region slug and fetch the region fields.\n * @param country\n */\n function onCountryChange(country: string) {\n const currentCountry = countries?.find(({ value }) => value === country);\n\n if (\n currentCountry &&\n currentCountry.childRegions.length === 0 &&\n currentCountry.hasAdditionalFields\n ) {\n setSelectedRegion(currentCountry.regionSlug);\n } else {\n setSelectedRegion(undefined);\n }\n setSelectedCountry(currentCountry);\n }\n\n /**\n * Update the selected region and fetch the region fields.\n * @param region\n */\n function onRegionChange(region: string) {\n setSelectedRegion(region);\n }\n\n function onHiringBudgetChange(event: React.ChangeEvent<HTMLInputElement>) {\n setHiringBudget(event.target.value as HiringBudget);\n }\n\n function onChangeCurrency(currency: string) {\n const selectedCurrency = currencies?.find(\n (c) => c.value === currency,\n )?.label;\n setEmployerBillingCurrency(selectedCurrency);\n options?.onCurrencyChange?.(selectedCurrency || '');\n }\n\n const regionField = fieldsJSONSchema.fields.find(\n (field) => field.name === 'region',\n );\n\n if (regionField) {\n const regions =\n selectedCountry?.childRegions.map((region) => ({\n value: region.slug,\n label: region.name,\n })) ?? [];\n regionField.options = regions;\n regionField.isVisible = regions.length > 0;\n regionField.required = regions.length > 0;\n regionField.onChange = onRegionChange;\n regionField.schema =\n regions.length > 0\n ? string()\n .transform((value) => (typeof value === 'string' ? value : ''))\n .required('Region is required')\n : string();\n }\n\n if (currencies) {\n const currencyField = fieldsJSONSchema.fields.find(\n (field) => field.name === 'currency',\n );\n if (currencyField) {\n currencyField.options = currencies;\n currencyField.onChange = onChangeCurrency;\n }\n }\n\n const hiringBudgetField = fieldsJSONSchema.fields.find(\n (field) => field.name === 'hiring_budget',\n );\n if (hiringBudgetField) {\n hiringBudgetField.onChange = onHiringBudgetChange;\n }\n\n if (countries) {\n const countryField = fieldsJSONSchema.fields.find(\n (field) => field.name === 'country',\n );\n if (countryField) {\n countryField.options = countries;\n countryField.onChange = onCountryChange;\n }\n }\n\n const resetForm = () => {\n setSelectedCountry(undefined);\n setSelectedRegion(defaultRegion);\n };\n\n const allFields = [\n ...fieldsJSONSchema.fields.filter((field) => field.name !== 'management'),\n ...(jsonSchemaRegionFields?.fields || []),\n ...fieldsJSONSchema.fields.filter((field) => field.name === 'management'),\n ];\n\n const validationSchema = buildValidationSchema(\n fieldsJSONSchema.fields,\n employerBillingCurrency || 'USD',\n estimationOptions.includeEstimationTitle,\n );\n\n async function handleValidation(values: CostCalculatorEstimationFormValues) {\n let errors: JSFValidationError | null = null;\n\n options?.onValidation?.(values);\n const parsedValues = parseJSFToValidate(values, allFields);\n\n // 1. validate static fields first using Yup validate function\n try {\n await validationSchema.validate(parsedValues, {\n abortEarly: false,\n });\n errors = {\n formErrors: {},\n yupError: new ValidationError([], values),\n };\n } catch (error) {\n const iterateResult = iterateErrors(error as ValidationError);\n\n errors = {\n // convert the errors to a format that can be used in the form\n formErrors: Object.entries(iterateResult).reduce(\n (acc, [key, value]) => ({ ...acc, [key]: value.message }),\n {},\n ),\n yupError: error as ValidationError,\n };\n }\n\n // 2. validate json schema fields using the handleValidation (from json-schema-form)\n const handleValidationResult =\n jsonSchemaRegionFields?.handleValidation(parsedValues);\n\n // 3. combine the errors from both validations\n const combinedInnerErrors = [\n ...(errors?.yupError.inner || []),\n ...(handleValidationResult?.yupError?.inner || []),\n ];\n const combinedValues = {\n ...(errors?.yupError?.value || {}),\n ...(handleValidationResult?.yupError?.value || {}),\n };\n\n return {\n formErrors: {\n ...(errors?.formErrors || {}),\n ...(handleValidationResult?.formErrors || {}),\n },\n yupError: new ValidationError(combinedInnerErrors, combinedValues),\n };\n }\n\n return {\n /**\n * Current step state containing the current step and total number of steps\n */\n stepState: {\n current: 0,\n total: 1,\n isLastStep: true,\n },\n /**\n * Array of form fields from the cost calculator schema + dynamic region fields like benefits, age, etc.\n */\n fields: allFields,\n /**\n * Validation schema for the cost calculator form\n */\n validationSchema,\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 values: CostCalculatorEstimationFormValues,\n ): CostCalculatorEstimationSubmitValues => {\n const {\n country,\n region,\n currency,\n salary_converted,\n hiring_budget,\n salary_conversion,\n management,\n estimation_title,\n ...rest\n } = values;\n\n // If the salary has been converted, we take the one the user has inputted\n let salary = values.salary;\n if (salary_converted === 'salary_conversion') {\n salary = salary_conversion;\n }\n\n const jsonSchemaStaticFieldValues = {\n country,\n region,\n salary,\n salary_converted,\n salary_conversion,\n hiring_budget,\n currency,\n management,\n estimation_title,\n };\n\n const parsedStaticFields = parseJSFToValidate(\n jsonSchemaStaticFieldValues,\n fieldsJSONSchema.fields,\n );\n\n const parsedRegionFields = parseJSFToValidate(\n rest,\n jsonSchemaRegionFields?.fields || [],\n );\n\n const additionalFields = {\n currency_code: currencies?.find((c) => c.value === currency)?.label,\n };\n\n return {\n ...parsedStaticFields,\n ...parsedRegionFields,\n ...additionalFields,\n } as CostCalculatorEstimationSubmitValues;\n },\n /**\n * Function to handle validation of the cost calculator form\n * @param values - Form values to validate\n * @returns Validation result\n */\n handleValidation,\n /**\n * Whether the cost calculator form is currently being submitted\n */\n isSubmitting: costCalculatorEstimationMutation.isPending,\n /**\n * Whether the cost calculator form is currently loading\n */\n isLoading:\n isLoadingCountries && isLoadingCurrencies && isLoadingRegionFields,\n /**\n * Function to submit the cost calculator form\n */\n onSubmit,\n /**\n * Function to reset the cost calculator form\n */\n resetForm,\n\n /**\n * Currencies data useful to get the currency if you have a currencySlug\n */\n currencies,\n\n /**\n * Fields metadata\n */\n meta: {\n fields: fieldsMetaRef.current?.fields,\n },\n };\n};\n"],"mappings":"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","names":["number","object","createHeadlessForm","modify","useCallback","useEffect","useMemo","useRef","useState","string","ValidationError","jsx","defaultEstimationOptions","useStaticSchema","__name","options","jsonSchemaModified","modify","jsonSchema","createHeadlessForm","getSalaryTitle","salaryField","hiringBudget","title","useCostCalculator","defaultRegion","defaultCurrency","defaultSalary","estimationOptions","version","fieldsMetaRef","useRef","selectedRegion","setSelectedRegion","useState","selectedCountry","setSelectedCountry","employerBillingCurrency","setEmployerBillingCurrency","setHiringBudget","countries","isLoadingCountries","useCostCalculatorCountries","currencies","isLoadingCurrencies","useCompanyCurrencies","jsonSchemaRegionSlug","jsonSchemaRegionFields","isLoadingRegionFields","useRegionFields","costCalculatorEstimationMutation","useCostCalculatorEstimation","costCalculatorEstimationMutationAsync","mutationToPromise","employeeBillingCurrency","salaryFieldPresentation","getCurrencies","useCallback","shouldSwapOrder","showManagementField","showEstimationTitleField","customFields","useMemo","from","to","salaryTitle","props","SalaryField","FieldSetField","fieldsJSONSchema","useEffect","defaultCountry","value","defaultCurrencyObj","onSubmit","values","buildPayload","onCountryChange","country","currentCountry","onRegionChange","region","onHiringBudgetChange","event","onChangeCurrency","currency","selectedCurrency","c","regionField","field","regions","string","currencyField","hiringBudgetField","countryField","resetForm","allFields","validationSchema","buildValidationSchema","handleValidation","errors","parsedValues","parseJSFToValidate","ValidationError","error","iterateResult","iterateErrors","acc","key","handleValidationResult","combinedInnerErrors","combinedValues","salary_converted","hiring_budget","salary_conversion","management","estimation_title","rest","salary","parsedStaticFields","parsedRegionFields","additionalFields","buildValidationSchema","fields","employerBillingCurrency","includeEstimationTitle","fieldsSchema","fieldsSchemaAcc","field","__name","val","schema","object","number","value","BASE_RATES","formatBenefits","benefits","needle","acc","key","benefitTierSlug","benefitEntry","mapValueToEmployment","estimationOptions","version","managementFee","currencyCode","getSalaryFields","isMarketing","isStandard","useHiringBudget","useEmployerCurrency","buildPayload","values","defaultEstimationOptions","employments","v"]}
|
package/dist/chunk-A477TZFC.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{J as f,n as m,u,w as d}from"./chunk-AA7QB3QQ.js";import{d as o}from"./chunk-3ZWDIEEM.js";import{a as t}from"./chunk-P37U34EQ.js";import{useMutation as y,useQuery as s}from"@tanstack/react-query";var k=t(({employmentId:e})=>{let{client:n}=o();return s({queryKey:["employment",e],retry:!1,queryFn:t(()=>d({client:n,headers:{Authorization:""},path:{employment_id:e}}),"queryFn"),enabled:!!e,select:t(({data:r})=>r?.data?.employment,"select")})},"useEmploymentQuery"),c=t(({employmentId:e,status:n,timeoffType:r,options:a})=>{let{client:l}=o();return s({queryKey:["timeoff",e,n],retry:!1,queryFn:t(()=>f({client:l,headers:{Authorization:""},query:{employment_id:e,status:n,timeoff_type:r}}),"queryFn"),select:t(({data:i})=>a?.select?.(i)??i,"select"),enabled:a?.enabled})},"useTimeOffQuery"),p=t((e,n)=>{let r=new Date(e).toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"}),a=new Date(n).toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"});return`${r} \u2192 ${a}`},"formatDateRange"),P=t(({employmentId:e,options:n})=>c({employmentId:e,timeoffType:"paid_time_off",options:{enabled:n?.enabled,select:t(r=>({bookedDays:r?.data?.total_count||0,timeoffs:r?.data?.timeoffs?.map(a=>({status:a?.status,duration:a?.timeoff_days.length,startDate:a?.start_date,endDate:a?.end_date,formattedDate:p(a?.start_date,a?.end_date)}))||[]}),"select")}}),"usePaidTimeoffBreakdownQuery"),S=t(({employmentId:e})=>{let{client:n}=o();return s({queryKey:["timeoff-balance",e],retry:!1,queryFn:t(()=>u({client:n,headers:{Authorization:""},path:{employment_id:e}}),"queryFn"),select:t(({data:r})=>r,"select")})},"useTimeOffLeavePoliciesSummaryQuery"),x=t(()=>{let{client:e}=o();return y({mutationFn:t(n=>m({client:e,headers:{Authorization:""},body:n}),"mutationFn")})},"useMagicLink");export{k as a,c as b,P as c,S as d,x as e};
|
|
2
|
-
//# sourceMappingURL=chunk-A477TZFC.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/common/api/index.ts"],"sourcesContent":["import {\n getIndexLeavePoliciesSummary,\n getIndexTimeoff,\n getShowEmployment,\n ListTimeoffResponse,\n MagicLinkParams,\n postGenerateMagicLink,\n TimeoffStatus,\n TimeoffType,\n} from '@/src/client';\nimport { useClient } from '@/src/context';\nimport { ContractAmendmentParams } from '@/src/flows/ContractAmendment/types';\n\nimport { Client } from '@hey-api/client-fetch';\nimport { useMutation, 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 enabled: !!employmentId,\n select: ({ data }) => data?.data?.employment,\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\nexport type PaidTimeoffBreakdownResponse = {\n bookedDays: number;\n timeoffs: {\n status: string;\n duration: number;\n startDate: string;\n endDate: string;\n formattedDate: string;\n }[];\n};\n\n/**\n * Hook to retrieve paid time off breakdown for a specific employment.\n *\n * @param {Object} params - The parameters for the query.\n * @param {string} [params.employmentId] - The ID of the employment to fetch paid time off breakdown for.\n * @returns {UseQueryResult<any, unknown>} - The result of the query, including the paid time off breakdown.\n *\n */\nexport const usePaidTimeoffBreakdownQuery = ({\n employmentId,\n options,\n}: {\n employmentId?: string;\n options?: {\n enabled?: boolean;\n };\n}) => {\n return useTimeOffQuery<PaidTimeoffBreakdownResponse>({\n employmentId,\n timeoffType: 'paid_time_off',\n options: {\n enabled: options?.enabled,\n select: (data) => {\n return {\n bookedDays: 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\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"],"mappings":"wIAcA,OAAS,eAAAA,EAAa,YAAAC,MAAgB,wBAW/B,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,QAAS,CAAC,CAACA,EACX,OAAQD,EAAA,CAAC,CAAE,KAAAM,CAAK,IAAMA,GAAM,MAAM,WAA1B,SACV,CAAC,CACH,EAjBkC,sBA4BrBC,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,mBAiCXC,EAA+BjB,EAAA,CAAC,CAC3C,aAAAC,EACA,QAAAS,CACF,IAMSH,EAA8C,CACnD,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,EAjCyC,gCA4C/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,uCAsBtCe,EAAerB,EAAA,IAAM,CAChC,GAAM,CAAE,OAAAE,CAAO,EAAIC,EAAU,EAC7B,OAAOmB,EAAY,CACjB,WAAYtB,EAACuB,GACJC,EAAsB,CAC3B,OAAQtB,EACR,QAAS,CACP,cAAe,EACjB,EACA,KAAMqB,CACR,CAAC,EAPS,aASd,CAAC,CACH,EAb4B","names":["useMutation","useQuery","useEmploymentQuery","__name","employmentId","client","useClient","useQuery","getShowEmployment","data","useTimeOffQuery","status","timeoffType","options","getIndexTimeoff","formatDateRange","startDate","endDate","start","end","usePaidTimeoffBreakdownQuery","timeoff","useTimeOffLeavePoliciesSummaryQuery","getIndexLeavePoliciesSummary","useMagicLink","useMutation","params","postGenerateMagicLink"]}
|