@remoteoss/remote-flows 1.9.0 → 1.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ButtonDefault-W7RPNNTH.js +2 -0
- package/dist/CheckboxFieldDefault-JXZ6UY5T.js +2 -0
- package/dist/CountryFieldDefault-KBZRYF4G.js +2 -0
- package/dist/DatePickerFieldDefault-RY6QSSE7.js +2 -0
- package/dist/DrawerDefault-V3GEL6Z5.js +2 -0
- package/dist/EmailFieldDefault-A3D5VQPS.js +2 -0
- package/dist/FieldsetToggleButtonDefault-BKIDTISL.js +2 -0
- package/dist/FileUploadFieldDefault-OQ4FGPDM.js +2 -0
- package/dist/MultiSelectFieldDefault-EZA25KXD.js +2 -0
- package/dist/NumberFieldDefault-BDSRZWXH.js +2 -0
- package/dist/PDFPreviewDefault-TV775MOQ.js +2 -0
- package/dist/RadioGroupFieldDefault-KAAFWDFJ.js +2 -0
- package/dist/SelectFieldDefault-3XQ5FPO2.js +2 -0
- package/dist/StatementDefault-CCLTSJLJ.js +2 -0
- package/dist/TableFieldDefault-ADKV3M23.js +2 -0
- package/dist/TextAreaFieldDefault-LVZXGUKB.js +2 -0
- package/dist/TextFieldDefault-YQMWGOV2.js +2 -0
- package/dist/WorkScheduleFieldDefault-IW4VDBCH.js +2 -0
- package/dist/ZendeskDrawerDefault-DKSZSN6N.js +2 -0
- package/dist/{chunk-DG34PSAO.js → chunk-2EYBWQJW.js} +2 -2
- package/dist/{chunk-VC6X3C2I.js → chunk-2O6Z2KGG.js} +2 -2
- package/dist/{chunk-JKEUTGPQ.js → chunk-2Q57B73D.js} +2 -2
- package/dist/{chunk-ML56EPFW.js → chunk-2YNDS45E.js} +2 -2
- package/dist/chunk-3FF65KI3.js +2 -0
- package/dist/chunk-3FF65KI3.js.map +1 -0
- package/dist/{chunk-BMVPIRKX.js → chunk-3UNMOXCG.js} +2 -2
- package/dist/{chunk-EW36MHXP.js → chunk-43RCLG2R.js} +2 -2
- package/dist/{chunk-VLP6L77E.js → chunk-44SKGM3K.js} +2 -2
- package/dist/{chunk-3UJC7KHD.js → chunk-4JIHEEKX.js} +2 -2
- package/dist/chunk-4UJJLD3R.js +2 -0
- package/dist/chunk-4UJJLD3R.js.map +1 -0
- package/dist/{chunk-7SYE5KEV.js → chunk-4V6AV3DC.js} +2 -2
- package/dist/{chunk-FJZPATKO.js → chunk-4W7VKUIW.js} +2 -2
- package/dist/chunk-4W7VKUIW.js.map +1 -0
- package/dist/{chunk-VIQQ3IHI.js → chunk-4XJEVGPI.js} +2 -2
- package/dist/{chunk-D4FBB5XW.js → chunk-4XV4INW5.js} +2 -2
- package/dist/{chunk-6ZEZZZFB.js → chunk-5SODYNW6.js} +2 -2
- package/dist/{chunk-FJPY27YJ.js → chunk-6MJ5MIUI.js} +2 -2
- package/dist/{chunk-XIEA775Q.js → chunk-7EMWT6EU.js} +2 -2
- package/dist/{chunk-WHROCBHG.js → chunk-7V3YVPIK.js} +2 -2
- package/dist/{chunk-C4NXXY3X.js → chunk-A3TXUJUO.js} +2 -2
- package/dist/{chunk-NXDG32BY.js → chunk-A5PZOBR5.js} +2 -2
- package/dist/chunk-A7XZA2M3.js +2 -0
- package/dist/chunk-A7XZA2M3.js.map +1 -0
- package/dist/{chunk-7QP5TRMH.js → chunk-AMJ7F55V.js} +2 -2
- package/dist/{chunk-PGRQG254.js → chunk-AU376LE2.js} +2 -2
- package/dist/{chunk-4JOZ4VIJ.js → chunk-B3KBDNWQ.js} +2 -2
- package/dist/{chunk-RQUNEKD2.js → chunk-BJAX4PPR.js} +2 -2
- package/dist/chunk-BJAX4PPR.js.map +1 -0
- package/dist/{chunk-7QRAEME3.js → chunk-CCE3EAVC.js} +2 -2
- package/dist/{chunk-F2VYTYIQ.js → chunk-CMFZEZEK.js} +2 -2
- package/dist/{chunk-CEM3JUSV.js → chunk-DSH4GKP3.js} +2 -2
- package/dist/{chunk-BJJTAQPT.js → chunk-DWXCRJ4V.js} +2 -2
- package/dist/{chunk-SVYPDGZN.js → chunk-E5ZC6VG3.js} +2 -2
- package/dist/{chunk-JQ2ESL5O.js → chunk-EGDWVDXM.js} +2 -2
- package/dist/{chunk-OZWDFGLQ.js → chunk-EI4CEPXN.js} +2 -2
- package/dist/{chunk-AN5U7FWW.js → chunk-ERPXDFKC.js} +2 -2
- package/dist/{chunk-2SN7VPBR.js → chunk-EVOTA5WO.js} +2 -2
- package/dist/{chunk-DWTKSHQJ.js → chunk-FJ5RHLSJ.js} +2 -2
- package/dist/chunk-FX4KYXGM.js +2 -0
- package/dist/chunk-FX4KYXGM.js.map +1 -0
- package/dist/{chunk-SBQYUJFI.js → chunk-GC5QTPTM.js} +2 -2
- package/dist/{chunk-CNCOVTDL.js → chunk-GINFFWVY.js} +2 -2
- package/dist/{chunk-XSG4QXPY.js → chunk-GOEEA34E.js} +2 -2
- package/dist/{chunk-WT6E5LO4.js → chunk-GRWTCP42.js} +2 -2
- package/dist/{chunk-KXF27FC4.js → chunk-GTJMTF2R.js} +2 -2
- package/dist/{chunk-MZNUCWQU.js → chunk-GWR2JBG2.js} +2 -2
- package/dist/chunk-H5CNWMEM.js +2 -0
- package/dist/{chunk-3QNS3IZB.js.map → chunk-H5CNWMEM.js.map} +1 -1
- package/dist/{chunk-5XHL6B25.js → chunk-HBCFJ6PK.js} +5 -5
- package/dist/chunk-HBCFJ6PK.js.map +1 -0
- package/dist/{chunk-ZOPKBLGA.js → chunk-HG7UJX4O.js} +2 -2
- package/dist/{chunk-ZTBFYRNL.js → chunk-HYVK643F.js} +2 -2
- package/dist/{chunk-5G5UBS6W.js → chunk-I4IRP6BK.js} +2 -2
- package/dist/{chunk-ZNV46UUP.js → chunk-IXZS4AU4.js} +2 -2
- package/dist/chunk-J63QA2JC.js +2 -0
- package/dist/chunk-J63QA2JC.js.map +1 -0
- package/dist/{chunk-THPH57GK.js → chunk-JAHRIQVL.js} +2 -2
- package/dist/{chunk-WTQ6PTMB.js → chunk-JCVKKCDH.js} +2 -2
- package/dist/{chunk-UXUZA7XH.js → chunk-JD2OY7RW.js} +2 -2
- package/dist/{chunk-GBETAH3G.js → chunk-JK6ODZSU.js} +2 -2
- package/dist/{chunk-IPITD7UK.js → chunk-JTJFG72J.js} +2 -2
- package/dist/{chunk-YHD2RXJC.js → chunk-KESYJ5QG.js} +2 -2
- package/dist/{chunk-S6OVT37M.js → chunk-KFWZDRDD.js} +2 -2
- package/dist/{chunk-CKA37AR5.js → chunk-L53XOWY6.js} +2 -2
- package/dist/{chunk-CKTFJUGZ.js → chunk-MFFE3Q5U.js} +2 -2
- package/dist/{chunk-JTSHX4RB.js → chunk-MIK6GCO2.js} +2 -2
- package/dist/{chunk-ILX4QHHH.js → chunk-NIQXQZ6X.js} +2 -2
- package/dist/{chunk-CEHS4AFO.js → chunk-OCTTH4RR.js} +2 -2
- package/dist/chunk-P3VO63JW.js +2 -0
- package/dist/chunk-P3VO63JW.js.map +1 -0
- package/dist/{chunk-NCELDZXG.js → chunk-P4IF2JG6.js} +2 -2
- package/dist/{chunk-HBPFTEHZ.js → chunk-PAUMTSGO.js} +2 -2
- package/dist/{chunk-MM5K3XXY.js → chunk-PCNRQKOW.js} +2 -2
- package/dist/{chunk-A54D24NT.js → chunk-PV7FROZ7.js} +2 -2
- package/dist/{chunk-UHO6CCVA.js → chunk-QAMANHN6.js} +2 -2
- package/dist/{chunk-TZPHBNNS.js → chunk-QE76JNNE.js} +2 -2
- package/dist/{chunk-YUQ3GDQI.js → chunk-QPJFFMXN.js} +2 -2
- package/dist/{chunk-G5DVMK4E.js → chunk-QVJD2C6W.js} +2 -2
- package/dist/{chunk-3UAJX23Y.js → chunk-QZIZVDJ3.js} +2 -2
- package/dist/{chunk-YMLXE6OO.js → chunk-R3XRCGZN.js} +2 -2
- package/dist/{chunk-FJLSVTBJ.js → chunk-R4LTPU22.js} +2 -2
- package/dist/{chunk-IG5LQPUN.js → chunk-R7V2KOW6.js} +2 -2
- package/dist/{chunk-YHIADGM3.js → chunk-RBJ5MFDE.js} +2 -2
- package/dist/{chunk-XQUHG7HJ.js → chunk-RKCZ5D42.js} +2 -2
- package/dist/{chunk-I6Y6AWYE.js → chunk-S2Z3B5C5.js} +2 -2
- package/dist/{chunk-HLSVMRWX.js → chunk-SOXCGLMW.js} +2 -2
- package/dist/chunk-STF3NTPS.js +2 -0
- package/dist/chunk-STF3NTPS.js.map +1 -0
- package/dist/{chunk-CWQQA3P4.js → chunk-TWCZHLHV.js} +2 -2
- package/dist/{chunk-3JJEKIQ2.js → chunk-TXVEFBFM.js} +2 -2
- package/dist/{chunk-LDJW2CBF.js → chunk-U7SJPXRD.js} +2 -2
- package/dist/{chunk-EYHFPHIA.js → chunk-UAACHXXX.js} +2 -2
- package/dist/{chunk-FLW5LACO.js → chunk-UNBAXL4W.js} +2 -2
- package/dist/chunk-UTAMXYX4.js +2 -0
- package/dist/chunk-UTAMXYX4.js.map +1 -0
- package/dist/chunk-VH4D3E42.js +2 -0
- package/dist/chunk-VH4D3E42.js.map +1 -0
- package/dist/{chunk-P45OX5YT.js → chunk-WNDVXLAQ.js} +2 -2
- package/dist/{chunk-OVTH3ZHO.js → chunk-WQSCAHR6.js} +2 -2
- package/dist/chunk-WUCPJPDB.js +2 -0
- package/dist/chunk-WUCPJPDB.js.map +1 -0
- package/dist/{chunk-COAGOVMZ.js → chunk-XCYBEX4H.js} +2 -2
- package/dist/{chunk-JIZKHO7L.js → chunk-XDILBY5Y.js} +2 -2
- package/dist/{chunk-H5VA2OWQ.js → chunk-XJDX3ZH6.js} +2 -2
- package/dist/{chunk-XDZFLJ5F.js → chunk-XNRPT3WP.js} +2 -2
- package/dist/{chunk-IEX4KZUY.js → chunk-XSNWW3V4.js} +2 -2
- package/dist/{chunk-5IHRUTHD.js → chunk-XZLVP6EN.js} +2 -2
- package/dist/{chunk-GLNDB4KG.js → chunk-Y4JWDS3R.js} +2 -2
- package/dist/{chunk-VKYP2MQQ.js → chunk-Y7GS2L2A.js} +2 -2
- package/dist/{chunk-IEXTH6YO.js → chunk-YDIPBC4E.js} +2 -2
- package/dist/{chunk-H2OBH7SK.js → chunk-YUYHK6WD.js} +2 -2
- package/dist/{chunk-C2NROAMW.js → chunk-Z4JMMKSU.js} +2 -2
- package/dist/default-components.d.ts +2 -2
- package/dist/default-components.js +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.d.ts +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.js +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentFlow.d.ts +3 -3
- package/dist/flows/ContractAmendment/ContractAmendmentFlow.js +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentForm.d.ts +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentForm.js +1 -1
- package/dist/flows/ContractAmendment/context.d.ts +4 -4
- package/dist/flows/ContractAmendment/hooks.d.ts +4 -4
- package/dist/flows/ContractAmendment/hooks.js +1 -1
- package/dist/flows/ContractAmendment/index.d.ts +3 -3
- package/dist/flows/ContractAmendment/index.js +1 -1
- package/dist/flows/ContractAmendment/types.d.ts +2 -2
- package/dist/flows/ContractAmendment/utils.d.ts +2 -2
- package/dist/flows/ContractorOnboarding/ContractorOnboarding.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/ContractorOnboarding.js +1 -1
- package/dist/flows/ContractorOnboarding/api.d.ts +2 -2
- package/dist/flows/ContractorOnboarding/api.js +1 -1
- package/dist/flows/ContractorOnboarding/components/BasicInformationStep.d.ts +4 -4
- package/dist/flows/ContractorOnboarding/components/BasicInformationStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractPreviewHeader.d.ts +2 -2
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStatement.d.ts +2 -2
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStatement.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.js +1 -1
- package/dist/flows/ContractorOnboarding/components/OnboardingInvite.d.ts +3 -3
- package/dist/flows/ContractorOnboarding/components/OnboardingInvite.js +1 -1
- package/dist/flows/ContractorOnboarding/components/PricingPlan.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/components/PricingPlan.js +1 -1
- package/dist/flows/ContractorOnboarding/components/SelectCountryStep.d.ts +4 -4
- package/dist/flows/ContractorOnboarding/components/SelectCountryStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/StatementOfWorkDisclaimer.js +1 -1
- package/dist/flows/ContractorOnboarding/context.d.ts +6 -6
- package/dist/flows/ContractorOnboarding/hooks.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/hooks.js +1 -1
- package/dist/flows/ContractorOnboarding/index.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/index.js +1 -1
- package/dist/flows/ContractorOnboarding/jsfModify.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/jsfModify.js +1 -1
- package/dist/flows/ContractorOnboarding/types.d.ts +5 -5
- package/dist/flows/CostCalculator/CostCalculatorFlow.d.ts +3 -3
- package/dist/flows/CostCalculator/CostCalculatorFlow.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorForm.d.ts +3 -3
- package/dist/flows/CostCalculator/CostCalculatorForm.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorResetButton.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorSubmitButton.js +1 -1
- package/dist/flows/CostCalculator/EstimationResults/EstimationResults.d.ts +2 -2
- package/dist/flows/CostCalculator/EstimationResults/EstimationResults.js +1 -1
- package/dist/flows/CostCalculator/SummaryResults/SummaryResults.d.ts +2 -2
- package/dist/flows/CostCalculator/SummaryResults/SummaryResults.js +1 -1
- package/dist/flows/CostCalculator/api.d.ts +2 -2
- package/dist/flows/CostCalculator/api.js +1 -1
- package/dist/flows/CostCalculator/components/SalaryField.d.ts +2 -2
- package/dist/flows/CostCalculator/components/SalaryField.js +1 -1
- package/dist/flows/CostCalculator/context.d.ts +3 -3
- package/dist/flows/CostCalculator/hooks.d.ts +3 -3
- package/dist/flows/CostCalculator/hooks.js +1 -1
- package/dist/flows/CostCalculator/index.d.ts +3 -3
- package/dist/flows/CostCalculator/index.js +1 -1
- package/dist/flows/CostCalculator/types.d.ts +2 -2
- package/dist/flows/CostCalculator/utils.d.ts +3 -3
- package/dist/flows/CostCalculator/utils.js +1 -1
- package/dist/flows/Onboarding/OnboardingFlow.d.ts +4 -4
- package/dist/flows/Onboarding/OnboardingFlow.js +1 -1
- package/dist/flows/Onboarding/api.d.ts +5 -5
- package/dist/flows/Onboarding/api.js +1 -1
- package/dist/flows/Onboarding/components/AnnualGrossSalary.d.ts +2 -2
- package/dist/flows/Onboarding/components/AnnualGrossSalary.js +1 -1
- package/dist/flows/Onboarding/components/BasicInformationStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/BasicInformationStep.js +1 -1
- package/dist/flows/Onboarding/components/BenefitsStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/BenefitsStep.js +1 -1
- package/dist/flows/Onboarding/components/ContractDetailsStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/ContractDetailsStep.js +1 -1
- package/dist/flows/Onboarding/components/OnboardingForm.d.ts +4 -4
- package/dist/flows/Onboarding/components/OnboardingForm.js +1 -1
- package/dist/flows/Onboarding/components/OnboardingInvite.d.ts +3 -3
- package/dist/flows/Onboarding/components/OnboardingInvite.js +1 -1
- package/dist/flows/Onboarding/components/ReviewStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/SaveDraftButton.d.ts +3 -3
- package/dist/flows/Onboarding/components/SelectCountryStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/SelectCountryStep.js +1 -1
- package/dist/flows/Onboarding/context.d.ts +5 -5
- package/dist/flows/Onboarding/hooks.d.ts +4 -4
- package/dist/flows/Onboarding/hooks.js +1 -1
- package/dist/flows/Onboarding/index.d.ts +4 -4
- package/dist/flows/Onboarding/index.js +1 -1
- package/dist/flows/Onboarding/types.d.ts +4 -4
- package/dist/flows/Onboarding/utils.d.ts +4 -4
- package/dist/flows/Onboarding/utils.js +1 -1
- package/dist/flows/Termination/AdditionalDetailsForm.d.ts +4 -4
- package/dist/flows/Termination/AdditionalDetailsForm.js +1 -1
- package/dist/flows/Termination/EmployeeComunicationForm.d.ts +4 -4
- package/dist/flows/Termination/EmployeeComunicationForm.js +1 -1
- package/dist/flows/Termination/PaidTimeOffForm.d.ts +4 -4
- package/dist/flows/Termination/PaidTimeOffForm.js +1 -1
- package/dist/flows/Termination/TerminationDetailsForm.d.ts +4 -4
- package/dist/flows/Termination/TerminationDetailsForm.js +1 -1
- package/dist/flows/Termination/TerminationFlow.d.ts +4 -4
- package/dist/flows/Termination/TerminationFlow.js +1 -1
- package/dist/flows/Termination/TerminationForm.d.ts +4 -4
- package/dist/flows/Termination/TerminationForm.js +1 -1
- package/dist/flows/Termination/api.d.ts +5 -5
- 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 +6 -6
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOff.js +1 -1
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.d.ts +6 -6
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.js +1 -1
- package/dist/flows/Termination/components/PaidTimeOff/types.d.ts +6 -6
- 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 +4 -4
- package/dist/flows/Termination/hooks.d.ts +4 -4
- package/dist/flows/Termination/hooks.js +1 -1
- package/dist/flows/Termination/index.d.ts +6 -6
- package/dist/flows/Termination/index.js +1 -1
- package/dist/flows/Termination/json-schemas/schema.d.ts +4 -4
- package/dist/flows/Termination/types.d.ts +4 -4
- package/dist/flows/Termination/utils.d.ts +4 -4
- package/dist/flows/Termination/utils.js +1 -1
- package/dist/flows/types.d.ts +2 -2
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +25 -23
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/internals.d.ts +3 -3
- package/dist/internals.js +1 -1
- package/dist/{mutations-D1eQrIJS.d.ts → mutations-CgUg7bFI.d.ts} +1 -1
- package/dist/{remoteFlows-DtWy_kl6.d.ts → remoteFlows-COBpPFTc.d.ts} +1 -1
- package/dist/styles.css +1 -1
- package/dist/styles.css.map +1 -1
- package/dist/{types-C73xHbIf.d.ts → types-B_vHCmBi.d.ts} +7 -8
- package/dist/{types-CoznD6fc.d.ts → types-DNR15SYE.d.ts} +1 -1
- package/dist/{types-uiKCaHsn.d.ts → types-Dji2W0_p.d.ts} +5 -5
- package/dist/{types-CYEQpq5z.d.ts → types-cehPGDYr.d.ts} +2 -2
- package/dist/{types.gen-Dg6qF5i1.d.ts → types.gen-BvDfbEiE.d.ts} +23 -1
- package/dist/{utils-DNGgpT60.d.ts → utils-CB_t8bzu.d.ts} +1 -1
- package/package.json +1 -1
- package/dist/ButtonDefault-NLDQHAWN.js +0 -2
- package/dist/CheckboxFieldDefault-QXABRJXG.js +0 -2
- package/dist/CountryFieldDefault-VJM3C6WE.js +0 -2
- package/dist/DatePickerFieldDefault-3MBSCS3W.js +0 -2
- package/dist/DrawerDefault-5EYKRPS7.js +0 -2
- package/dist/EmailFieldDefault-3ES7SMDC.js +0 -2
- package/dist/FieldsetToggleButtonDefault-TPLNRX3E.js +0 -2
- package/dist/FileUploadFieldDefault-PNM6H64X.js +0 -2
- package/dist/MultiSelectFieldDefault-THD7TDWF.js +0 -2
- package/dist/NumberFieldDefault-PCH6RRDK.js +0 -2
- package/dist/PDFPreviewDefault-474JH3KB.js +0 -2
- package/dist/RadioGroupFieldDefault-CM33F3EP.js +0 -2
- package/dist/SelectFieldDefault-NHDJRM5H.js +0 -2
- package/dist/StatementDefault-CSHXL3G2.js +0 -2
- package/dist/TableFieldDefault-N7MO2QJI.js +0 -2
- package/dist/TextAreaFieldDefault-OG4UM4DG.js +0 -2
- package/dist/TextFieldDefault-FECR4GRK.js +0 -2
- package/dist/WorkScheduleFieldDefault-G2MR2DBY.js +0 -2
- package/dist/ZendeskDrawerDefault-W3RCTVCH.js +0 -2
- package/dist/chunk-3QNS3IZB.js +0 -2
- package/dist/chunk-5XHL6B25.js.map +0 -1
- package/dist/chunk-634DTN72.js +0 -2
- package/dist/chunk-634DTN72.js.map +0 -1
- package/dist/chunk-D3XDJFE3.js +0 -2
- package/dist/chunk-D3XDJFE3.js.map +0 -1
- package/dist/chunk-EFLWMMG5.js +0 -2
- package/dist/chunk-EFLWMMG5.js.map +0 -1
- package/dist/chunk-EIFXWGXM.js +0 -2
- package/dist/chunk-EIFXWGXM.js.map +0 -1
- package/dist/chunk-FJZPATKO.js.map +0 -1
- package/dist/chunk-GCWEOZBS.js +0 -2
- package/dist/chunk-GCWEOZBS.js.map +0 -1
- package/dist/chunk-H6YNMT4M.js +0 -2
- package/dist/chunk-H6YNMT4M.js.map +0 -1
- package/dist/chunk-LNWBGEKE.js +0 -2
- package/dist/chunk-LNWBGEKE.js.map +0 -1
- package/dist/chunk-PO57BOOY.js +0 -2
- package/dist/chunk-PO57BOOY.js.map +0 -1
- package/dist/chunk-RLRSNB77.js +0 -2
- package/dist/chunk-RLRSNB77.js.map +0 -1
- package/dist/chunk-RQUNEKD2.js.map +0 -1
- package/dist/chunk-UBRRCAAI.js +0 -2
- package/dist/chunk-UBRRCAAI.js.map +0 -1
- /package/dist/{ButtonDefault-NLDQHAWN.js.map → ButtonDefault-W7RPNNTH.js.map} +0 -0
- /package/dist/{CheckboxFieldDefault-QXABRJXG.js.map → CheckboxFieldDefault-JXZ6UY5T.js.map} +0 -0
- /package/dist/{CountryFieldDefault-VJM3C6WE.js.map → CountryFieldDefault-KBZRYF4G.js.map} +0 -0
- /package/dist/{DatePickerFieldDefault-3MBSCS3W.js.map → DatePickerFieldDefault-RY6QSSE7.js.map} +0 -0
- /package/dist/{DrawerDefault-5EYKRPS7.js.map → DrawerDefault-V3GEL6Z5.js.map} +0 -0
- /package/dist/{EmailFieldDefault-3ES7SMDC.js.map → EmailFieldDefault-A3D5VQPS.js.map} +0 -0
- /package/dist/{FieldsetToggleButtonDefault-TPLNRX3E.js.map → FieldsetToggleButtonDefault-BKIDTISL.js.map} +0 -0
- /package/dist/{FileUploadFieldDefault-PNM6H64X.js.map → FileUploadFieldDefault-OQ4FGPDM.js.map} +0 -0
- /package/dist/{MultiSelectFieldDefault-THD7TDWF.js.map → MultiSelectFieldDefault-EZA25KXD.js.map} +0 -0
- /package/dist/{NumberFieldDefault-PCH6RRDK.js.map → NumberFieldDefault-BDSRZWXH.js.map} +0 -0
- /package/dist/{PDFPreviewDefault-474JH3KB.js.map → PDFPreviewDefault-TV775MOQ.js.map} +0 -0
- /package/dist/{RadioGroupFieldDefault-CM33F3EP.js.map → RadioGroupFieldDefault-KAAFWDFJ.js.map} +0 -0
- /package/dist/{SelectFieldDefault-NHDJRM5H.js.map → SelectFieldDefault-3XQ5FPO2.js.map} +0 -0
- /package/dist/{StatementDefault-CSHXL3G2.js.map → StatementDefault-CCLTSJLJ.js.map} +0 -0
- /package/dist/{TableFieldDefault-N7MO2QJI.js.map → TableFieldDefault-ADKV3M23.js.map} +0 -0
- /package/dist/{TextAreaFieldDefault-OG4UM4DG.js.map → TextAreaFieldDefault-LVZXGUKB.js.map} +0 -0
- /package/dist/{TextFieldDefault-FECR4GRK.js.map → TextFieldDefault-YQMWGOV2.js.map} +0 -0
- /package/dist/{WorkScheduleFieldDefault-G2MR2DBY.js.map → WorkScheduleFieldDefault-IW4VDBCH.js.map} +0 -0
- /package/dist/{ZendeskDrawerDefault-W3RCTVCH.js.map → ZendeskDrawerDefault-DKSZSN6N.js.map} +0 -0
- /package/dist/{chunk-DG34PSAO.js.map → chunk-2EYBWQJW.js.map} +0 -0
- /package/dist/{chunk-VC6X3C2I.js.map → chunk-2O6Z2KGG.js.map} +0 -0
- /package/dist/{chunk-JKEUTGPQ.js.map → chunk-2Q57B73D.js.map} +0 -0
- /package/dist/{chunk-ML56EPFW.js.map → chunk-2YNDS45E.js.map} +0 -0
- /package/dist/{chunk-BMVPIRKX.js.map → chunk-3UNMOXCG.js.map} +0 -0
- /package/dist/{chunk-EW36MHXP.js.map → chunk-43RCLG2R.js.map} +0 -0
- /package/dist/{chunk-VLP6L77E.js.map → chunk-44SKGM3K.js.map} +0 -0
- /package/dist/{chunk-3UJC7KHD.js.map → chunk-4JIHEEKX.js.map} +0 -0
- /package/dist/{chunk-7SYE5KEV.js.map → chunk-4V6AV3DC.js.map} +0 -0
- /package/dist/{chunk-VIQQ3IHI.js.map → chunk-4XJEVGPI.js.map} +0 -0
- /package/dist/{chunk-D4FBB5XW.js.map → chunk-4XV4INW5.js.map} +0 -0
- /package/dist/{chunk-6ZEZZZFB.js.map → chunk-5SODYNW6.js.map} +0 -0
- /package/dist/{chunk-FJPY27YJ.js.map → chunk-6MJ5MIUI.js.map} +0 -0
- /package/dist/{chunk-XIEA775Q.js.map → chunk-7EMWT6EU.js.map} +0 -0
- /package/dist/{chunk-WHROCBHG.js.map → chunk-7V3YVPIK.js.map} +0 -0
- /package/dist/{chunk-C4NXXY3X.js.map → chunk-A3TXUJUO.js.map} +0 -0
- /package/dist/{chunk-NXDG32BY.js.map → chunk-A5PZOBR5.js.map} +0 -0
- /package/dist/{chunk-7QP5TRMH.js.map → chunk-AMJ7F55V.js.map} +0 -0
- /package/dist/{chunk-PGRQG254.js.map → chunk-AU376LE2.js.map} +0 -0
- /package/dist/{chunk-4JOZ4VIJ.js.map → chunk-B3KBDNWQ.js.map} +0 -0
- /package/dist/{chunk-7QRAEME3.js.map → chunk-CCE3EAVC.js.map} +0 -0
- /package/dist/{chunk-F2VYTYIQ.js.map → chunk-CMFZEZEK.js.map} +0 -0
- /package/dist/{chunk-CEM3JUSV.js.map → chunk-DSH4GKP3.js.map} +0 -0
- /package/dist/{chunk-BJJTAQPT.js.map → chunk-DWXCRJ4V.js.map} +0 -0
- /package/dist/{chunk-SVYPDGZN.js.map → chunk-E5ZC6VG3.js.map} +0 -0
- /package/dist/{chunk-JQ2ESL5O.js.map → chunk-EGDWVDXM.js.map} +0 -0
- /package/dist/{chunk-OZWDFGLQ.js.map → chunk-EI4CEPXN.js.map} +0 -0
- /package/dist/{chunk-AN5U7FWW.js.map → chunk-ERPXDFKC.js.map} +0 -0
- /package/dist/{chunk-2SN7VPBR.js.map → chunk-EVOTA5WO.js.map} +0 -0
- /package/dist/{chunk-DWTKSHQJ.js.map → chunk-FJ5RHLSJ.js.map} +0 -0
- /package/dist/{chunk-SBQYUJFI.js.map → chunk-GC5QTPTM.js.map} +0 -0
- /package/dist/{chunk-CNCOVTDL.js.map → chunk-GINFFWVY.js.map} +0 -0
- /package/dist/{chunk-XSG4QXPY.js.map → chunk-GOEEA34E.js.map} +0 -0
- /package/dist/{chunk-WT6E5LO4.js.map → chunk-GRWTCP42.js.map} +0 -0
- /package/dist/{chunk-KXF27FC4.js.map → chunk-GTJMTF2R.js.map} +0 -0
- /package/dist/{chunk-MZNUCWQU.js.map → chunk-GWR2JBG2.js.map} +0 -0
- /package/dist/{chunk-ZOPKBLGA.js.map → chunk-HG7UJX4O.js.map} +0 -0
- /package/dist/{chunk-ZTBFYRNL.js.map → chunk-HYVK643F.js.map} +0 -0
- /package/dist/{chunk-5G5UBS6W.js.map → chunk-I4IRP6BK.js.map} +0 -0
- /package/dist/{chunk-ZNV46UUP.js.map → chunk-IXZS4AU4.js.map} +0 -0
- /package/dist/{chunk-THPH57GK.js.map → chunk-JAHRIQVL.js.map} +0 -0
- /package/dist/{chunk-WTQ6PTMB.js.map → chunk-JCVKKCDH.js.map} +0 -0
- /package/dist/{chunk-UXUZA7XH.js.map → chunk-JD2OY7RW.js.map} +0 -0
- /package/dist/{chunk-GBETAH3G.js.map → chunk-JK6ODZSU.js.map} +0 -0
- /package/dist/{chunk-IPITD7UK.js.map → chunk-JTJFG72J.js.map} +0 -0
- /package/dist/{chunk-YHD2RXJC.js.map → chunk-KESYJ5QG.js.map} +0 -0
- /package/dist/{chunk-S6OVT37M.js.map → chunk-KFWZDRDD.js.map} +0 -0
- /package/dist/{chunk-CKA37AR5.js.map → chunk-L53XOWY6.js.map} +0 -0
- /package/dist/{chunk-CKTFJUGZ.js.map → chunk-MFFE3Q5U.js.map} +0 -0
- /package/dist/{chunk-JTSHX4RB.js.map → chunk-MIK6GCO2.js.map} +0 -0
- /package/dist/{chunk-ILX4QHHH.js.map → chunk-NIQXQZ6X.js.map} +0 -0
- /package/dist/{chunk-CEHS4AFO.js.map → chunk-OCTTH4RR.js.map} +0 -0
- /package/dist/{chunk-NCELDZXG.js.map → chunk-P4IF2JG6.js.map} +0 -0
- /package/dist/{chunk-HBPFTEHZ.js.map → chunk-PAUMTSGO.js.map} +0 -0
- /package/dist/{chunk-MM5K3XXY.js.map → chunk-PCNRQKOW.js.map} +0 -0
- /package/dist/{chunk-A54D24NT.js.map → chunk-PV7FROZ7.js.map} +0 -0
- /package/dist/{chunk-UHO6CCVA.js.map → chunk-QAMANHN6.js.map} +0 -0
- /package/dist/{chunk-TZPHBNNS.js.map → chunk-QE76JNNE.js.map} +0 -0
- /package/dist/{chunk-YUQ3GDQI.js.map → chunk-QPJFFMXN.js.map} +0 -0
- /package/dist/{chunk-G5DVMK4E.js.map → chunk-QVJD2C6W.js.map} +0 -0
- /package/dist/{chunk-3UAJX23Y.js.map → chunk-QZIZVDJ3.js.map} +0 -0
- /package/dist/{chunk-YMLXE6OO.js.map → chunk-R3XRCGZN.js.map} +0 -0
- /package/dist/{chunk-FJLSVTBJ.js.map → chunk-R4LTPU22.js.map} +0 -0
- /package/dist/{chunk-IG5LQPUN.js.map → chunk-R7V2KOW6.js.map} +0 -0
- /package/dist/{chunk-YHIADGM3.js.map → chunk-RBJ5MFDE.js.map} +0 -0
- /package/dist/{chunk-XQUHG7HJ.js.map → chunk-RKCZ5D42.js.map} +0 -0
- /package/dist/{chunk-I6Y6AWYE.js.map → chunk-S2Z3B5C5.js.map} +0 -0
- /package/dist/{chunk-HLSVMRWX.js.map → chunk-SOXCGLMW.js.map} +0 -0
- /package/dist/{chunk-CWQQA3P4.js.map → chunk-TWCZHLHV.js.map} +0 -0
- /package/dist/{chunk-3JJEKIQ2.js.map → chunk-TXVEFBFM.js.map} +0 -0
- /package/dist/{chunk-LDJW2CBF.js.map → chunk-U7SJPXRD.js.map} +0 -0
- /package/dist/{chunk-EYHFPHIA.js.map → chunk-UAACHXXX.js.map} +0 -0
- /package/dist/{chunk-FLW5LACO.js.map → chunk-UNBAXL4W.js.map} +0 -0
- /package/dist/{chunk-P45OX5YT.js.map → chunk-WNDVXLAQ.js.map} +0 -0
- /package/dist/{chunk-OVTH3ZHO.js.map → chunk-WQSCAHR6.js.map} +0 -0
- /package/dist/{chunk-COAGOVMZ.js.map → chunk-XCYBEX4H.js.map} +0 -0
- /package/dist/{chunk-JIZKHO7L.js.map → chunk-XDILBY5Y.js.map} +0 -0
- /package/dist/{chunk-H5VA2OWQ.js.map → chunk-XJDX3ZH6.js.map} +0 -0
- /package/dist/{chunk-XDZFLJ5F.js.map → chunk-XNRPT3WP.js.map} +0 -0
- /package/dist/{chunk-IEX4KZUY.js.map → chunk-XSNWW3V4.js.map} +0 -0
- /package/dist/{chunk-5IHRUTHD.js.map → chunk-XZLVP6EN.js.map} +0 -0
- /package/dist/{chunk-GLNDB4KG.js.map → chunk-Y4JWDS3R.js.map} +0 -0
- /package/dist/{chunk-VKYP2MQQ.js.map → chunk-Y7GS2L2A.js.map} +0 -0
- /package/dist/{chunk-IEXTH6YO.js.map → chunk-YDIPBC4E.js.map} +0 -0
- /package/dist/{chunk-H2OBH7SK.js.map → chunk-YUYHK6WD.js.map} +0 -0
- /package/dist/{chunk-C2NROAMW.js.map → chunk-Z4JMMKSU.js.map} +0 -0
package/dist/chunk-D3XDJFE3.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as U}from"./chunk-6DHV4GT6.js";import{a as W}from"./chunk-S6OVT37M.js";import{a as Y}from"./chunk-BJJTAQPT.js";import{a as Q}from"./chunk-ML56EPFW.js";import{a as J}from"./chunk-SVYPDGZN.js";import{a as H}from"./chunk-YRC6EEM3.js";import{a as B,b as q,c as L,d as z}from"./chunk-IEX4KZUY.js";import{g as Z,h as K}from"./chunk-WTQ6PTMB.js";import{a as R}from"./chunk-ZXGAFQXW.js";import{a as S}from"./chunk-JIZKHO7L.js";import{a as N}from"./chunk-634DTN72.js";import{a as E}from"./chunk-EUSCQL4H.js";import{e as u}from"./chunk-T7O3YYOG.js";import{a as _,b as v}from"./chunk-CEM3JUSV.js";import{n as $}from"./chunk-5XHL6B25.js";import{a as D}from"./chunk-GCWEOZBS.js";import{a as w}from"./chunk-3X36ZFNP.js";import{a as A}from"./chunk-5BRMLRS7.js";import{a as I}from"./chunk-Z5WMKCRJ.js";import{d as O}from"./chunk-KQPDXXG3.js";import{a as o}from"./chunk-P37U34EQ.js";import xe from"lodash.omitby";import je from"lodash.isnull";import{format as x,isFuture as Ve,parseISO as j,subDays as Pe}from"date-fns";import{useMemo as V}from"react";import be from"lodash.omit";import{useQuery as Fe}from"@tanstack/react-query";var G=o(({query:t,options:e})=>{let{client:y}=O();return Fe({queryKey:["payroll-calendars"],queryFn:o(()=>$({client:y,query:{year:t?.year,country_code:t?.countryCode}}),"queryFn"),enabled:e?.enabled,select:o(c=>c.data?.data?.payroll_calendars?.[0],"select")})},"usePayrollCalendars");import{isFuture as Me,isToday as ge,parseISO as Se}from"date-fns";var X=o(t=>{if(!t)return!1;let e=Se(t);return Me(e)||ge(e)},"isInProbationPeriod");import{Fragment as ke,jsx as m,jsxs as Ce}from"react/jsx-runtime";var lo=o(({employmentId:t,options:e,initialValues:y})=>{let{fieldValues:c,setFieldValues:ee,stepState:l,previousStep:oe,nextStep:ie}=A(B),{data:n,isLoading:te}=N({employmentId:t}),{data:ne}=G({query:{year:new Date().getFullYear().toString(),countryCode:n?.country?.code},options:{enabled:!!n?.country?.code}}),T=X(n?.probation_period_end_date),F=q(ne),P=V(()=>T?x(new Date,"yyyy-MM-dd"):x(F,"yyyy-MM-dd"),[T,F]),M=!!(n?.provisional_start_date&&Ve(j(n.provisional_start_date))),ae={personal_email:n?.basic_information?.email},g=z({...ae,...y,...l.values?.employee_communication,...l.values?.termination_details,...l.values?.paid_time_off,...l.values?.additional_information},M),d=V(()=>({...g,...c}),[c,g]),b=L({minTerminationDate:F,isEmployeeInProbationPeriod:T,selectedDate:j(d.proposed_termination_date)}),re=V(()=>{let s=R.data.schema.properties.termination_reason.oneOf,a=M?s.filter(i=>i.const==="cancellation_before_start_date"):s.filter(i=>i.const!=="cancellation_before_start_date");return{fields:{risk_assesment_info:S("Offboarding risk assessment","Employees may be protected from termination if they fall into certain categories. To help avoid claims from employees, let us know if the employee is part of one or more of these categories. Select all that apply.",{className:e?.jsfModify?.fields?.risk_assesment_info?.["x-jsf-presentation"]?.className}),termination_reason:{...e?.jsfModify?.fields?.termination_reason,oneOf:a},proposed_termination_date_info:S("Proposed termination date",Ce(ke,{children:["In most cases, Remote must provide notice to the employee before termination. The required notice period depends on local labor laws, the employment agreement, and other factors. We'll use those factors to determine the required notice period.",m(v,{external:!0,zendeskId:_.terminationNoticePeriods,className:D("text-sm",e?.jsfModify?.fields?.proposed_termination_date_info?.["x-jsf-presentation"]?.zendeskTriggerButtonClassName),children:"Learn about notice periods"})]}),{className:e?.jsfModify?.fields?.proposed_termination_date_info?.["x-jsf-presentation"]?.className}),proposed_termination_date:{...e?.jsfModify?.fields?.proposed_termination_date,"x-jsf-presentation":{...e?.jsfModify?.fields?.proposed_termination_date?.["x-jsf-presentation"],minDate:P,...d.termination_reason==="cancellation_before_start_date"&&n?.provisional_start_date?{maxDate:x(Pe(j(n.provisional_start_date),1),"yyyy-MM-dd")}:{},...b},...d.termination_reason==="cancellation_before_start_date"?{"x-jsf-errorMessage":{maximum:"The proposed termination date must be before the employee's start date."}}:{}},paid_time_off_info:{...e?.jsfModify?.fields?.paid_time_off_info,"x-jsf-presentation":{...e?.jsfModify?.fields?.paid_time_off_info?.["x-jsf-presentation"],Component:o(()=>{let i=e?.jsfModify?.fields?.paid_time_off_info?.["x-jsf-presentation"]?.Component;return m(J,{employeeName:n?.basic_information?.name,proposedTerminationDate:d.proposed_termination_date,employmentId:t,employment:n,render:r=>i?m(i,{...r}):m(Q,{...r})})},"Component")}},acknowledge_termination_procedure_info:{...e?.jsfModify?.fields?.acknowledge_termination_procedure_info,"x-jsf-presentation":{...e?.jsfModify?.fields?.acknowledge_termination_procedure_info?.["x-jsf-presentation"],Component:o(()=>{let i=e?.jsfModify?.fields?.acknowledge_termination_procedure_info?.["x-jsf-presentation"]?.Component;return m(U,{render:r=>i?m(i,{...r}):m(W,{...r})})},"Component")}},acknowledge_termination_procedure_fees_info:{...e?.jsfModify?.fields?.acknowledge_termination_procedure_fees_info,"x-jsf-presentation":{...e?.jsfModify?.fields?.acknowledge_termination_procedure_fees_info?.["x-jsf-presentation"],Component:o(()=>{let i={involuntaryOffboardingServiceChargeZendeskId:_.involuntaryOffboardingServiceCharge,reconciliationInvoiceZendeskId:_.reconciliationInvoice},r=e?.jsfModify?.fields?.acknowledge_termination_procedure_fees_info?.["x-jsf-presentation"]?.Component;return r?m(r,{...i}):m(Y,{...i})},"Component")}}}}},[n,t,d.proposed_termination_date,d.termination_reason,M,P,e?.jsfModify?.fields?.acknowledge_termination_procedure_fees_info,e?.jsfModify?.fields?.acknowledge_termination_procedure_info,e?.jsfModify?.fields?.paid_time_off_info,e?.jsfModify?.fields?.proposed_termination_date,e?.jsfModify?.fields?.proposed_termination_date_info,e?.jsfModify?.fields?.risk_assesment_info,e?.jsfModify?.fields?.termination_reason,b]),{data:f,isLoading:se}=K({formValues:d,jsfModify:{...e?.jsfModify,fields:{...e?.jsfModify?.fields,...re?.fields}},step:l.currentStep.name}),me=E(H.data.schema),k=Z(),{mutateAsync:de}=w(k);async function fe(s){if(!t)throw new Error("Employment id is missing");if(f){let a=await C(s,!0),{customer_informed_employee:i}=a,r=i==="yes"?{employee_awareness:{date:a.customer_informed_employee_date,note:a.customer_informed_employee_description}}:void 0,_e=await I(a,["agrees_to_pto_amount","confidential","customer_informed_employee","will_challenge_termination"]),ue=be(_e,"customer_informed_employee_date","customer_informed_employee_description"),ye=xe({...ue,...r},je),p=a.timesheet_file??[],h=Array.isArray(p)&&p.length>0?{content:p[0].content,name:p[0].name}:void 0,Te={employment_id:t,termination_details:{...ye,timesheet_file:h||void 0},type:"termination"};return de(Te)}}o(fe,"onSubmit");function le(){oe()}o(le,"back");function ce(){ie()}o(ce,"next");let pe=Object.keys(c).length>0,C=o(async(s,a=!1)=>a?await u(s,me.fields,{isPartialValidation:!0}):f?await u(s,f?.fields,{isPartialValidation:!0}):{},"parseFormValues");return{employmentId:t,employment:n,fieldValues:d,isDirty:pe,stepState:l,fields:f?.fields||[],isLoading:se||te,isSubmitting:k.isPending,initialValues:g,handleValidation:o(async s=>{if(f){let a=await u(s,f?.fields);return f?.handleValidation(a)}return null},"handleValidation"),checkFieldUpdates:ee,parseFormValues:C,onSubmit:fe,back:le,next:ce}},"useTermination");export{lo as a};
|
|
2
|
-
//# sourceMappingURL=chunk-D3XDJFE3.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/Termination/hooks.tsx","../src/common/api/payroll-calendars.ts","../src/common/employment.ts"],"sourcesContent":["import { $TSFixMe } from '@/src/types/remoteFlows';\nimport { createHeadlessForm } from '@/src/common/createHeadlessForm';\nimport omitBy from 'lodash.omitby';\nimport isNull from 'lodash.isnull';\nimport { format, isFuture, parseISO, subDays } from 'date-fns';\nimport { useMemo } from 'react';\nimport {\n CreateOffboardingParams,\n TerminationDetailsParams,\n} from '@/src/client';\nimport { mutationToPromise } from '@/src/lib/mutations';\nimport { parseJSFToValidate } from '@/src/components/form/utils';\nimport {\n EmployeeCommunicationFormValues,\n PaidTimeOffFormValues,\n TerminationDetailsFormValues,\n TerminationFlowProps,\n TerminationFormValues,\n} from '@/src/flows/Termination/types';\nimport omit from 'lodash.omit';\nimport { parseFormRadioValues } from '@/src/flows/utils';\nimport { useStepState } from '@/src/flows/useStepState';\nimport {\n buildInitialValues,\n calculateMinTerminationDate,\n calculateProposedTerminationDateStatement,\n STEPS,\n} from '@/src/flows/Termination/utils';\nimport { jsonSchema } from '@/src/flows/Termination/json-schemas/jsonSchema';\nimport { terminationDetailsSchema } from '@/src/flows/Termination/json-schemas/terminationDetails';\nimport {\n useCreateTermination,\n useTerminationSchema,\n} from '@/src/flows/Termination/api';\nimport { createInformationField } from '@/src/components/form/jsf-utils/createFields';\nimport { cn } from '@/src/internals';\nimport { zendeskArticles } from '@/src/components/shared/zendesk-drawer/utils';\nimport { PaidTimeOff } from '@/src/flows/Termination/components/PaidTimeOff/PaidTimeOff';\nimport { PaidTimeOffContainer } from '@/src/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer';\nimport { useEmploymentQuery } from '@/src/common/api';\nimport { AcknowledgeInformationContainer } from '@/src/flows/Termination/components/AcknowledgeInformation/AcknowledgeInfomationContainer';\nimport { AcknowledgeInformation } from '@/src/flows/Termination/components/AcknowledgeInformation/AcknowledgeInformation';\nimport { AcknowledgeInformationFees } from '@/src/flows/Termination/components/AcknowledgeInformation/AcknowledgeInformationFees';\nimport { usePayrollCalendars } from '@/src/common/api/payroll-calendars';\nimport { isInProbationPeriod } from '@/src/common/employment';\nimport { ZendeskTriggerButton } from '@/src/components/shared/zendesk-drawer/ZendeskTriggerButton';\n\ntype TerminationHookProps = Omit<TerminationFlowProps, 'render'>;\n\nexport const useTermination = ({\n employmentId,\n options,\n initialValues: terminationInitialValues,\n}: TerminationHookProps) => {\n const { fieldValues, setFieldValues, stepState, previousStep, nextStep } =\n useStepState<keyof typeof STEPS, TerminationFormValues>(STEPS);\n\n const { data: employment, isLoading: isLoadingEmployment } =\n useEmploymentQuery({ employmentId });\n\n const { data: payrollCalendars } = usePayrollCalendars({\n query: {\n year: new Date().getFullYear().toString(),\n countryCode: employment?.country?.code,\n },\n options: {\n enabled: Boolean(employment?.country?.code),\n },\n });\n\n const isEmployeeInProbationPeriod = isInProbationPeriod(\n employment?.probation_period_end_date,\n );\n\n const minTerminationDate = calculateMinTerminationDate(payrollCalendars);\n const minDate = useMemo(\n () =>\n isEmployeeInProbationPeriod\n ? format(new Date(), 'yyyy-MM-dd')\n : format(minTerminationDate, 'yyyy-MM-dd'),\n [isEmployeeInProbationPeriod, minTerminationDate],\n );\n\n const hasFutureStartDate = Boolean(\n employment?.provisional_start_date &&\n isFuture(parseISO(employment.provisional_start_date)),\n );\n\n const employmentValues = {\n personal_email: employment?.basic_information?.email as string,\n } as Partial<TerminationFormValues>;\n\n const initialValues = buildInitialValues(\n {\n ...employmentValues,\n ...terminationInitialValues,\n ...stepState.values?.employee_communication,\n ...stepState.values?.termination_details,\n ...stepState.values?.paid_time_off,\n ...stepState.values?.additional_information,\n },\n hasFutureStartDate,\n );\n\n const formValues = useMemo(\n () => ({\n ...initialValues,\n ...fieldValues,\n }),\n [fieldValues, initialValues],\n );\n\n const proposedTerminationDateStatement =\n calculateProposedTerminationDateStatement({\n minTerminationDate,\n isEmployeeInProbationPeriod,\n selectedDate: parseISO(formValues.proposed_termination_date),\n });\n\n const customFields = useMemo(() => {\n const originalTerminationReasonOptions =\n terminationDetailsSchema.data.schema.properties.termination_reason.oneOf;\n\n const terminationReasonOptions = hasFutureStartDate\n ? originalTerminationReasonOptions.filter(\n (option: $TSFixMe) =>\n option.const === 'cancellation_before_start_date',\n )\n : originalTerminationReasonOptions.filter(\n (option: $TSFixMe) =>\n option.const !== 'cancellation_before_start_date',\n );\n\n return {\n fields: {\n risk_assesment_info: createInformationField(\n 'Offboarding risk assessment',\n 'Employees may be protected from termination if they fall into certain categories. To help avoid claims from employees, let us know if the employee is part of one or more of these categories. Select all that apply.',\n {\n className: (\n options?.jsfModify?.fields?.risk_assesment_info as $TSFixMe\n )?.['x-jsf-presentation']?.className,\n },\n ),\n termination_reason: {\n ...(options?.jsfModify?.fields?.termination_reason as $TSFixMe),\n oneOf: terminationReasonOptions,\n },\n proposed_termination_date_info: createInformationField(\n 'Proposed termination date',\n <>\n In most cases, Remote must provide notice to the employee before\n termination. The required notice period depends on local labor laws,\n the employment agreement, and other factors. We'll use those factors\n to determine the required notice period.\n <ZendeskTriggerButton\n external\n zendeskId={zendeskArticles.terminationNoticePeriods}\n className={cn(\n 'text-sm',\n (\n options?.jsfModify?.fields\n ?.proposed_termination_date_info as $TSFixMe\n )?.['x-jsf-presentation']?.zendeskTriggerButtonClassName,\n )}\n >\n Learn about notice periods\n </ZendeskTriggerButton>\n </>,\n {\n className: (\n options?.jsfModify?.fields\n ?.proposed_termination_date_info as $TSFixMe\n )?.['x-jsf-presentation']?.className,\n },\n ),\n proposed_termination_date: {\n ...(options?.jsfModify?.fields\n ?.proposed_termination_date as $TSFixMe),\n 'x-jsf-presentation': {\n ...(\n options?.jsfModify?.fields?.proposed_termination_date as $TSFixMe\n )?.['x-jsf-presentation'],\n minDate: minDate,\n ...(formValues.termination_reason ===\n 'cancellation_before_start_date' &&\n employment?.provisional_start_date\n ? {\n maxDate: format(\n subDays(parseISO(employment.provisional_start_date), 1),\n 'yyyy-MM-dd',\n ),\n }\n : {}),\n ...proposedTerminationDateStatement,\n },\n ...(formValues.termination_reason === 'cancellation_before_start_date'\n ? {\n 'x-jsf-errorMessage': {\n maximum:\n \"The proposed termination date must be before the employee's start date.\",\n },\n }\n : {}),\n },\n paid_time_off_info: {\n ...(options?.jsfModify?.fields?.paid_time_off_info as $TSFixMe),\n 'x-jsf-presentation': {\n ...(options?.jsfModify?.fields?.paid_time_off_info as $TSFixMe)?.[\n 'x-jsf-presentation'\n ],\n Component: () => {\n const CustomComponent = (\n options?.jsfModify?.fields?.paid_time_off_info as $TSFixMe\n )?.['x-jsf-presentation']?.Component;\n\n return (\n <PaidTimeOffContainer\n employeeName={employment?.basic_information?.name as string}\n proposedTerminationDate={formValues.proposed_termination_date}\n employmentId={employmentId}\n employment={employment}\n render={(props) => {\n if (CustomComponent) {\n return <CustomComponent {...props} />;\n }\n return <PaidTimeOff {...props} />;\n }}\n />\n );\n },\n },\n },\n acknowledge_termination_procedure_info: {\n ...(options?.jsfModify?.fields\n ?.acknowledge_termination_procedure_info as $TSFixMe),\n 'x-jsf-presentation': {\n ...(\n options?.jsfModify?.fields\n ?.acknowledge_termination_procedure_info as $TSFixMe\n )?.['x-jsf-presentation'],\n Component: () => {\n const CustomComponent = (\n options?.jsfModify?.fields\n ?.acknowledge_termination_procedure_info as $TSFixMe\n )?.['x-jsf-presentation']?.Component;\n\n return (\n <AcknowledgeInformationContainer\n render={(props) => {\n if (CustomComponent) {\n return <CustomComponent {...props} />;\n }\n return <AcknowledgeInformation {...props} />;\n }}\n />\n );\n },\n },\n },\n acknowledge_termination_procedure_fees_info: {\n ...(options?.jsfModify?.fields\n ?.acknowledge_termination_procedure_fees_info as $TSFixMe),\n 'x-jsf-presentation': {\n ...(\n options?.jsfModify?.fields\n ?.acknowledge_termination_procedure_fees_info as $TSFixMe\n )?.['x-jsf-presentation'],\n Component: () => {\n const zendeskIds = {\n involuntaryOffboardingServiceChargeZendeskId:\n zendeskArticles.involuntaryOffboardingServiceCharge,\n reconciliationInvoiceZendeskId:\n zendeskArticles.reconciliationInvoice,\n };\n\n const CustomComponent = (\n options?.jsfModify?.fields\n ?.acknowledge_termination_procedure_fees_info as $TSFixMe\n )?.['x-jsf-presentation']?.Component;\n\n if (CustomComponent) {\n return <CustomComponent {...zendeskIds} />;\n }\n\n return <AcknowledgeInformationFees {...zendeskIds} />;\n },\n },\n },\n },\n };\n }, [\n employment,\n employmentId,\n formValues.proposed_termination_date,\n formValues.termination_reason,\n hasFutureStartDate,\n minDate,\n options?.jsfModify?.fields?.acknowledge_termination_procedure_fees_info,\n options?.jsfModify?.fields?.acknowledge_termination_procedure_info,\n options?.jsfModify?.fields?.paid_time_off_info,\n options?.jsfModify?.fields?.proposed_termination_date,\n options?.jsfModify?.fields?.proposed_termination_date_info,\n options?.jsfModify?.fields?.risk_assesment_info,\n options?.jsfModify?.fields?.termination_reason,\n proposedTerminationDateStatement,\n ]);\n\n const { data: terminationHeadlessForm, isLoading: isLoadingTermination } =\n useTerminationSchema({\n formValues: formValues,\n jsfModify: {\n ...options?.jsfModify,\n fields: {\n ...options?.jsfModify?.fields,\n ...customFields?.fields,\n },\n },\n step: stepState.currentStep.name,\n });\n\n const entireTerminationSchema = createHeadlessForm(jsonSchema.data.schema);\n\n const createTermination = useCreateTermination();\n const { mutateAsync } = mutationToPromise(createTermination);\n\n async function onSubmit(values: TerminationFormValues) {\n if (!employmentId) {\n throw new Error('Employment id is missing');\n }\n\n if (terminationHeadlessForm) {\n const parsedValues = (await parseFormValues(\n values,\n true,\n )) as TerminationFormValues;\n\n const { customer_informed_employee: customerInformedEmployee } =\n parsedValues;\n\n const employeeAwareness =\n customerInformedEmployee === 'yes'\n ? {\n employee_awareness: {\n date: parsedValues.customer_informed_employee_date,\n note: parsedValues.customer_informed_employee_description,\n },\n }\n : undefined;\n\n const radioFieldKeys = [\n 'agrees_to_pto_amount',\n 'confidential',\n 'customer_informed_employee',\n 'will_challenge_termination',\n ];\n\n const parsedRadioValues = await parseFormRadioValues(\n parsedValues,\n radioFieldKeys,\n );\n\n const normalizedValues = omit(\n parsedRadioValues,\n 'customer_informed_employee_date',\n 'customer_informed_employee_description',\n );\n\n const terminationDetails: TerminationDetailsParams = omitBy(\n {\n ...normalizedValues,\n ...employeeAwareness,\n },\n isNull,\n ) as unknown as TerminationDetailsParams;\n\n const files = (parsedValues.timesheet_file as $TSFixMe) ?? [];\n const timesheetFile =\n Array.isArray(files) && files.length > 0\n ? { content: files[0].content, name: files[0].name }\n : undefined;\n\n const terminationPayload: CreateOffboardingParams = {\n employment_id: employmentId,\n termination_details: {\n ...terminationDetails,\n timesheet_file: timesheetFile ? timesheetFile : undefined,\n },\n type: 'termination',\n };\n\n return mutateAsync(terminationPayload);\n }\n\n return;\n }\n\n function back() {\n previousStep();\n }\n\n function next() {\n nextStep();\n }\n\n const isDirty = Boolean(Object.keys(fieldValues).length > 0);\n\n const parseFormValues = async (\n values: TerminationFormValues,\n includeAllFields: boolean = false,\n ): Promise<\n | EmployeeCommunicationFormValues\n | TerminationDetailsFormValues\n | PaidTimeOffFormValues\n | TerminationFormValues\n > => {\n if (includeAllFields) {\n return (await parseJSFToValidate(values, entireTerminationSchema.fields, {\n isPartialValidation: true,\n })) as TerminationFormValues;\n }\n\n if (terminationHeadlessForm) {\n return (await parseJSFToValidate(\n values,\n terminationHeadlessForm?.fields,\n {\n isPartialValidation: true,\n },\n )) as\n | EmployeeCommunicationFormValues\n | TerminationDetailsFormValues\n | PaidTimeOffFormValues;\n }\n return {} as $TSFixMe;\n };\n\n return {\n /**\n * Employment id passed useful to be used between components\n */\n employmentId,\n /**\n * Employment data\n */\n employment,\n\n /**\n * Current form field values, we use formValues to let the user know about all the current form values\n */\n fieldValues: formValues,\n\n /**\n * Indicates if the form is dirty\n */\n isDirty,\n /**\n * Current step state containing the current step and total number of steps\n */\n stepState,\n /**\n * Array of form fields from the contract amendment schema\n */\n fields: terminationHeadlessForm?.fields || [],\n /**\n * Loading state indicating if the termination schema is being fetched\n */\n isLoading: isLoadingTermination || isLoadingEmployment,\n /**\n * Loading state indicating if a contract amendment mutation is in progress\n */\n isSubmitting: createTermination.isPending,\n /**\n * Initial form values\n */\n initialValues: initialValues,\n /**\n * Function to validate form values against the contract amendment schema\n * @param values - Form values to validate\n * @returns Validation result or null if no schema is available\n */\n handleValidation: async (values: TerminationFormValues) => {\n if (terminationHeadlessForm) {\n const parsedValues = await parseJSFToValidate(\n values,\n terminationHeadlessForm?.fields,\n );\n return terminationHeadlessForm?.handleValidation(parsedValues);\n }\n return null;\n },\n /**\n * Function to update the current form field values\n * @param values - New form values to set\n */\n checkFieldUpdates: setFieldValues,\n /**\n * Function to parse form values before submission\n * @param values - Form values to parse\n * @returns Parsed form values\n */\n parseFormValues,\n /**\n * Function to handle form submission\n * @param values - Form values to submit\n * @returns Promise resolving to the mutation result\n */\n onSubmit,\n\n /**\n * Function to handle going back to the previous step\n * @returns {void}\n */\n back,\n\n /**\n * Function to handle going to the next step\n * @returns {void}\n */\n next,\n };\n};\n","import { useQuery } from '@tanstack/react-query';\nimport { getIndexEorPayrollCalendar } from '@/src/client';\nimport { useClient } from '@/src/context';\nimport { Client } from '@/src/client/client';\n\nexport const usePayrollCalendars = ({\n query,\n options,\n}: {\n query?: {\n year?: string;\n countryCode?: string;\n };\n options?: {\n enabled?: boolean;\n };\n}) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['payroll-calendars'],\n queryFn: () =>\n getIndexEorPayrollCalendar({\n client: client as Client,\n query: {\n year: query?.year,\n country_code: query?.countryCode,\n },\n }),\n enabled: options?.enabled,\n select: (data) => data.data?.data?.payroll_calendars?.[0],\n });\n};\n","import { isFuture, isToday, parseISO } from 'date-fns';\n\nexport const isInProbationPeriod = (probationEndDate: string | undefined) => {\n if (!probationEndDate) return false;\n\n const parsedProbationEndDate = parseISO(probationEndDate);\n\n return isFuture(parsedProbationEndDate) || isToday(parsedProbationEndDate);\n};\n"],"mappings":"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","names":["omitBy","isNull","format","isFuture","parseISO","subDays","useMemo","omit","useQuery","usePayrollCalendars","__name","query","options","client","useClient","useQuery","getIndexEorPayrollCalendar","data","isFuture","isToday","parseISO","isInProbationPeriod","__name","probationEndDate","parsedProbationEndDate","parseISO","isFuture","isToday","Fragment","jsx","jsxs","useTermination","__name","employmentId","options","terminationInitialValues","fieldValues","setFieldValues","stepState","previousStep","nextStep","useStepState","STEPS","employment","isLoadingEmployment","useEmploymentQuery","payrollCalendars","usePayrollCalendars","isEmployeeInProbationPeriod","isInProbationPeriod","minTerminationDate","calculateMinTerminationDate","minDate","useMemo","format","hasFutureStartDate","isFuture","parseISO","employmentValues","initialValues","buildInitialValues","formValues","proposedTerminationDateStatement","calculateProposedTerminationDateStatement","customFields","originalTerminationReasonOptions","terminationDetailsSchema","terminationReasonOptions","option","createInformationField","ZendeskTriggerButton","zendeskArticles","cn","subDays","CustomComponent","PaidTimeOffContainer","props","PaidTimeOff","AcknowledgeInformationContainer","AcknowledgeInformation","zendeskIds","AcknowledgeInformationFees","terminationHeadlessForm","isLoadingTermination","useTerminationSchema","entireTerminationSchema","createHeadlessForm","jsonSchema","createTermination","useCreateTermination","mutateAsync","mutationToPromise","onSubmit","values","parsedValues","parseFormValues","customerInformedEmployee","employeeAwareness","parsedRadioValues","parseFormRadioValues","normalizedValues","omit","terminationDetails","omitBy","isNull","files","timesheetFile","terminationPayload","back","next","isDirty","includeAllFields","parseJSFToValidate"]}
|
package/dist/chunk-EFLWMMG5.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as Tt,b as Lt,c as Rt}from"./chunk-UMOL4GLZ.js";import{a as ft,f as yt,h as _t,i as St,k as gt}from"./chunk-FJZPATKO.js";import{c as mt,d as pt}from"./chunk-H6YNMT4M.js";import{a as Ct,b as Pt,c as ht,d as Ft,f as vt,g as Vt,h as Et,i as Ot,j as Dt,k as Mt,l as It}from"./chunk-RQUNEKD2.js";import{a as Bt,b as Jt,c as kt}from"./chunk-SBQYUJFI.js";import{a as j,b as Y,c as wt}from"./chunk-N4W7JU2D.js";import{a as ut,e as m,f as F}from"./chunk-T7O3YYOG.js";import{h as b,i as T}from"./chunk-GCWEOZBS.js";import{a as h}from"./chunk-3X36ZFNP.js";import{a as bt}from"./chunk-5BRMLRS7.js";import{a as g}from"./chunk-P37U34EQ.js";import{useEffect as jt,useMemo as s,useRef as vn,useState as z}from"react";import At from"lodash.omit";var Vn={select_country:null,basic_information:"employment_basic_information",contract_details:null,pricing_plan:null,contract_preview:null,review:null},En={employment_basic_information:"basic_information"},On=new Date().toISOString().split("T")[0],Kn=g(({countryCode:Ut,externalId:qt,employmentId:c,skipSteps:Nt,options:w,initialValues:l})=>{let[i,Q]=z(Ut||null),[r,xt]=z(c),[y,X]=z(void 0),L=vn({select_country:{},basic_information:{},contract_details:{},contract_preview:{},pricing_plan:{}}),Gt=Nt?.includes("select_country")?Lt:Tt,{fieldValues:d,stepState:e,setFieldValues:Kt,previousStep:Ht,nextStep:Wt,goToStep:A,setStepValues:Z}=bt(Gt),{data:a,isLoading:Yt,refetch:zt}=ft(r),{status:C}=a||{},v=C&&mt.includes(C),Qt=C&&!pt.includes(C),Xt=s(()=>C==="invited"?"invited":"not_invited",[C]),$=_t(),tt=St(i,w),U=Vt(),nt=Ct(),{mutateAsync:et}=Dt(U,nt,d),{mutateAsyncOrThrow:Zt}=h(tt),ot=ht(),at=vt(),{mutateAsyncOrThrow:$t}=h($),{mutateAsyncOrThrow:tn}=h(U),{mutateAsyncOrThrow:nn}=h(ot),{mutateAsyncOrThrow:it}=h(at);c&&a?.country?.code&&!i&&Q(a.country.code);let{selectCountryForm:R,isLoading:en}=gt({jsfModify:w?.jsfModify?.select_country,queryOptions:{enabled:e.currentStep.name==="select_country"}}),{form:_,isLoading:on}=Ot(r,{jsonSchemaVersion:w?.jsonSchemaVersion,queryOptions:{enabled:e.currentStep.name==="pricing_plan"||!!c&&v}}),an=Vn[e.currentStep.name]||"contractor_basic_information",rn=En[an],sn=a?.[rn]||{},cn=g(({form:t,options:o={},query:u={}})=>{let P=Object.keys(d).length>0?{...l,...e.values?.[e.currentStep.name],...d}:{...l,...sn};return yt({countryCode:i,form:t,fieldValues:P,query:u,options:{...o,queryOptions:{enabled:o.queryOptions?.enabled??!0}}})},"useJSONSchema"),ln=!!(i&&(e.currentStep.name==="basic_information"||c)),dn=!!(i&&(e.currentStep.name==="contract_details"||c)),un=!!(i==="GBR"&&c&&e.currentStep.name==="basic_information"),{data:V,isLoading:mn}=Mt(c,{enabled:un}),{data:B,isLoading:pn}=It(c,{enabled:!!c});jt(()=>{B&&B.length>0&&!y&&X(B[0].id)},[B,y]);let{data:p,isLoading:fn}=cn({form:"contractor_basic_information",options:{jsfModify:Jt(i,w),queryOptions:{enabled:ln}}}),yn=s(()=>Rt(a?.basic_information?.provisional_start_date,d?.service_duration?.provisional_start_date),[a?.basic_information?.provisional_start_date,d?.service_duration?.provisional_start_date]),q=s(()=>a?.contractor_type?{standard:j,plus:Y,cor:wt}[a?.contractor_type]||j:void 0,[a]),{data:f,isLoading:_n}=Et({countryCode:i,fieldValues:d,options:{queryOptions:{enabled:dn},jsfModify:Bt(w?.jsfModify?.contract_details,yn,q,d)}}),Sn=s(()=>e.currentStep.name==="contract_preview"||!!c&&v,[e.currentStep.name,c,v]),{data:S}=Pt({fieldValues:d,options:{queryOptions:{enabled:Sn},jsfModify:kt(w,d)}}),{data:N,isLoading:gn}=Ft({employmentId:r,contractDocumentId:y,options:{queryOptions:{enabled:!!y}}}),n=s(()=>({select_country:R?.fields||[],basic_information:p?.fields||[],pricing_plan:_?.fields||[],contract_details:f?.fields||[],contract_preview:S?.fields||[],review:[]}),[R?.fields,p?.fields,_?.fields,f?.fields,S?.fields]),bn={select_country:null,basic_information:p?.meta["x-jsf-fieldsets"],pricing_plan:null,contract_details:f?.meta["x-jsf-fieldsets"],contract_preview:null,review:null},{country:wn,basic_information:J={},contract_details:rt={}}=a||{},st=wn?.code,E=s(()=>F(n.select_country,{country:i||st||""}),[n.select_country,i,st]),x=s(()=>V?.content?ut(V.content,V.name):null,[V?.content,V?.name]),O=s(()=>{let t={provisional_start_date:On,...l,...J,ir35:a?.contract_details?.ir_35,saudi_nationality_status:a?.contract_details?.nationality,...x&&{ir35_sds_file:[x]}};return F(n.basic_information,t)},[l,J,a?.contract_details?.ir_35,a?.contract_details?.nationality,x,n.basic_information]),D=s(()=>{let o={...{service_duration:{provisional_start_date:J.provisional_start_date}},...l,...rt};return F(n.contract_details,o)},[n.contract_details,rt,l,J]),k=s(()=>{let t=N?.contract_document?.signatories?.find(u=>u.type==="company"),o={...l,signature:t?.signature};return F(n.contract_preview,o)},[n.contract_preview,l,N]),M=s(()=>{let o={...{subscription:q},...l};return F(n.pricing_plan,o)},[n.pricing_plan,l,q]),Cn=s(()=>({select_country:E,basic_information:O,contract_details:D,contract_preview:k,pricing_plan:M}),[E,O,D,k,M]),G=!!(c&&v&&e.currentStep.name!=="review"),K=en||fn||Yt||_n||on||gn||mn||pn,ct=s(()=>!!(G&&!K&&y&&n.basic_information.length>0&&n.contract_details.length>0&&n.contract_preview.length>0),[G,K,y,n.basic_information.length,n.contract_details.length,n.contract_preview.length]);jt(()=>{ct&&(L.current={select_country:b(E,n.select_country),basic_information:b(O,n.basic_information),contract_details:b(D,n.contract_details),contract_preview:b(k,n.contract_preview),pricing_plan:b(M,n.pricing_plan)},Z({select_country:E,basic_information:O,contract_details:D,contract_preview:{},pricing_plan:M,review:{}}),A("review"))},[ct,A,E,O,D,Z,n.select_country,n.basic_information,n.contract_details,n.pricing_plan,M,n.contract_preview,k]);let Pn=g(t=>{A(t)},"goTo"),lt=g(async t=>R&&e.currentStep.name==="select_country"?t:p&&e.currentStep.name==="basic_information"?await m(t,p?.fields,{isPartialValidation:!1}):f&&e.currentStep.name==="contract_details"?await m(t,f?.fields,{isPartialValidation:!1}):S&&e.currentStep.name==="contract_preview"?await m(t,S?.fields,{isPartialValidation:!1}):_&&e.currentStep.name==="pricing_plan"?await m(t,_?.fields,{isPartialValidation:!1}):{},"parseFormValues");async function hn(t){let o=e.currentStep.name;o in L.current&&(L.current[o]=b(t,n[o]));let u=await lt(t);switch(e.currentStep.name){case"select_country":return Q(u.country),Promise.resolve({data:{countryCode:u.country}});case"basic_information":{let H=!r&&i,P=r&&i&&a?.country&&a?.country.code!==i;if(H||P){let Fn={basic_information:At(u,"saudi_nationality_status","ir35","ir35_sds_file"),type:"contractor",country_code:i,external_id:qt},dt=await $t(Fn),W=dt?.data?.employment?.id;if(!W)throw T("Employment ID not found");return xt(W),await et({employmentId:W}),dt}else if(r){let I=At(u,"saudi_nationality_status","ir35","ir35_sds_file");return await et({employmentId:r}),Zt({employmentId:r,basic_information:I})}return}case"contract_details":{let P=await tn({employmentId:r,payload:{contract_document:u}}),I=P?.data?.contract_document?.id;if(!I)throw T("Contract document ID not found");return X(I),P}case"contract_preview":return nn({employmentId:r,contractDocumentId:y,payload:{signature:t.signature}});case"pricing_plan":{if(t.subscription==j)return it({employmentId:r,payload:{operation:"downgrade"}});if(t.subscription==Y)return it({employmentId:r,payload:{operation:"upgrade"}});throw T("invalid selection")}default:throw T("Invalid step state")}}return g(hn,"onSubmit"),{isLoading:K||G,fieldValues:d,stepState:e,checkFieldUpdates:Kt,back:Ht,next:Wt,goTo:Pn,onSubmit:hn,fields:n[e.currentStep.name],meta:{fields:L.current,fieldsets:bn[e.currentStep.name]},parseFormValues:lt,handleValidation:g(async t=>{if(e.currentStep.name==="select_country")return R.handleValidation(t);if(p&&e.currentStep.name==="basic_information"){let o=await m(t,p?.fields,{isPartialValidation:!1});return p?.handleValidation(o)}if(f&&e.currentStep.name==="contract_details"){let o=await m(t,f?.fields,{isPartialValidation:!1});return f?.handleValidation(o)}if(S&&e.currentStep.name==="contract_preview"){let o=await m(t,S?.fields,{isPartialValidation:!0});return S?.handleValidation(o)}if(_&&e.currentStep.name==="pricing_plan"){let o=await m(t,_?.fields,{isPartialValidation:!1});return _?.handleValidation(o)}return null},"handleValidation"),initialValues:Cn,employmentId:r,refetchEmployment:zt,isSubmitting:$.isPending||tt.isPending||U.isPending||ot.isPending||at.isPending||nt.isPending,documentPreviewPdf:N,canInvite:Qt,isEmploymentReadOnly:v,invitedStatus:Xt,employment:a}},"useContractorOnboarding");export{Kn as a};
|
|
2
|
-
//# sourceMappingURL=chunk-EFLWMMG5.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/ContractorOnboarding/hooks.tsx"],"sourcesContent":["import { useEffect, useMemo, useRef, useState } from 'react';\nimport { FieldValues } from 'react-hook-form';\nimport omit from 'lodash.omit';\nimport { JSFFields } from '@/src/types/remoteFlows';\nimport {\n CreateContractDocument,\n Employment,\n EmploymentCreateParams,\n} from '@/src/client/types.gen';\nimport {\n getInitialValues,\n parseJSFToValidate,\n} from '@/src/components/form/utils';\nimport { ValidationResult } from '@remoteoss/remote-json-schema-form-kit';\nimport {\n useContractorOnboardingDetailsSchema,\n useCreateContractorContractDocument,\n useGetContractDocumentSignatureSchema,\n usePostManageContractorSubscriptions,\n useContractorSubscriptionSchemaField,\n useGetShowContractDocument,\n useSignContractDocument,\n useUpdateUKandSaudiFields,\n useGetIR35File,\n useGetContractDocuments,\n} from '@/src/flows/ContractorOnboarding/api';\nimport { ContractorOnboardingFlowProps } from '@/src/flows/ContractorOnboarding/types';\nimport {\n STEPS,\n STEPS_WITHOUT_SELECT_COUNTRY,\n calculateProvisionalStartDateDescription,\n} from '@/src/flows/ContractorOnboarding/utils';\nimport {\n useCountriesSchemaField,\n useCreateEmployment,\n useEmployment,\n useJSONSchemaForm,\n useUpdateEmployment,\n} from '@/src/flows/Onboarding/api';\nimport {\n disabledInviteButtonEmploymentStatus,\n reviewStepAllowedEmploymentStatus,\n} from '@/src/flows/Onboarding/utils';\nimport { FlowOptions, JSFModify, JSONSchemaFormType } from '@/src/flows/types';\nimport { Step, useStepState } from '@/src/flows/useStepState';\nimport { mutationToPromise } from '@/src/lib/mutations';\nimport { createStructuredError, prettifyFormValues } from '@/src/lib/utils';\nimport { JSFFieldset, Meta } from '@/src/types/remoteFlows';\nimport {\n contractorStandardProductIdentifier,\n contractorPlusProductIdentifier,\n corProductIdentifier,\n} from '@/src/flows/ContractorOnboarding/constants';\nimport {\n buildBasicInformationJsfModify,\n buildContractDetailsJsfModify,\n buildContractPreviewJsfModify,\n} from '@/src/flows/ContractorOnboarding/jsfModify';\nimport { useUploadFile } from '@/src/common/api/files';\nimport { dataURLtoFile } from '@/src/lib/files';\n\ntype useContractorOnboardingProps = Omit<\n ContractorOnboardingFlowProps,\n 'render'\n>;\n\nconst stepToFormSchemaMap: Record<\n keyof typeof STEPS,\n JSONSchemaFormType | null\n> = {\n select_country: null,\n basic_information: 'employment_basic_information',\n contract_details: null,\n pricing_plan: null,\n contract_preview: null,\n review: null,\n};\n\nconst jsonSchemaToEmployment: Partial<\n Record<JSONSchemaFormType, keyof Employment>\n> = {\n employment_basic_information: 'basic_information',\n};\n\nconst provisionalStartDate = new Date().toISOString().split('T')[0];\n\nexport const useContractorOnboarding = ({\n countryCode,\n externalId,\n employmentId,\n skipSteps,\n options,\n initialValues: onboardingInitialValues,\n}: useContractorOnboardingProps) => {\n const [internalCountryCode, setInternalCountryCode] = useState<string | null>(\n countryCode || null,\n );\n const [internalEmploymentId, setInternalEmploymentId] = useState<\n string | undefined\n >(employmentId);\n const [internalContractDocumentId, setInternalContractDocumentId] = useState<\n string | undefined\n >(undefined);\n const fieldsMetaRef = useRef<{\n select_country: Meta;\n basic_information: Meta;\n contract_details: Meta;\n contract_preview: Meta;\n pricing_plan: Meta;\n }>({\n select_country: {},\n basic_information: {},\n contract_details: {},\n contract_preview: {},\n pricing_plan: {},\n });\n\n const stepsToUse = skipSteps?.includes('select_country')\n ? STEPS_WITHOUT_SELECT_COUNTRY\n : STEPS;\n\n const {\n fieldValues,\n stepState,\n setFieldValues,\n previousStep,\n nextStep,\n goToStep,\n setStepValues,\n } = useStepState(\n stepsToUse as Record<keyof typeof STEPS, Step<keyof typeof STEPS>>,\n );\n\n const {\n data: employment,\n isLoading: isLoadingEmployment,\n refetch: refetchEmployment,\n } = useEmployment(internalEmploymentId);\n\n const { status: employmentStatus } = employment || {};\n\n const isEmploymentReadOnly =\n employmentStatus &&\n reviewStepAllowedEmploymentStatus.includes(employmentStatus);\n\n const canInvite =\n employmentStatus &&\n !disabledInviteButtonEmploymentStatus.includes(employmentStatus);\n\n const invitedStatus: 'invited' | 'not_invited' = useMemo(() => {\n const isInvited = employmentStatus === 'invited';\n\n return isInvited ? 'invited' : 'not_invited';\n }, [employmentStatus]);\n\n const createEmploymentMutation = useCreateEmployment();\n const updateEmploymentMutation = useUpdateEmployment(\n internalCountryCode as string,\n options,\n );\n const createContractorContractDocumentMutation =\n useCreateContractorContractDocument();\n const uploadFileMutation = useUploadFile();\n const { mutateAsync: updateUKandSaudiFieldsMutation } =\n useUpdateUKandSaudiFields(\n createContractorContractDocumentMutation,\n uploadFileMutation,\n fieldValues,\n );\n\n const { mutateAsyncOrThrow: updateEmploymentMutationAsync } =\n mutationToPromise(updateEmploymentMutation);\n const signContractDocumentMutation = useSignContractDocument();\n const manageContractorSubscriptionMutation =\n usePostManageContractorSubscriptions();\n\n const { mutateAsyncOrThrow: createEmploymentMutationAsync } =\n mutationToPromise(createEmploymentMutation);\n\n const { mutateAsyncOrThrow: createContractorContractDocumentMutationAsync } =\n mutationToPromise(createContractorContractDocumentMutation);\n\n const { mutateAsyncOrThrow: signContractDocumentMutationAsync } =\n mutationToPromise(signContractDocumentMutation);\n\n const { mutateAsyncOrThrow: manageContractorSubscriptionMutationAsync } =\n mutationToPromise(manageContractorSubscriptionMutation);\n\n // if the employment is loaded, country code has not been set yet\n // we set the internal country code with the employment country code\n if (employmentId && employment?.country?.code && !internalCountryCode) {\n setInternalCountryCode(employment.country.code);\n }\n\n const { selectCountryForm, isLoading: isLoadingCountries } =\n useCountriesSchemaField({\n jsfModify: options?.jsfModify?.select_country,\n queryOptions: {\n enabled: stepState.currentStep.name === 'select_country',\n },\n });\n\n const {\n form: selectContractorSubscriptionForm,\n isLoading: isLoadingContractorSubscriptions,\n } = useContractorSubscriptionSchemaField(internalEmploymentId as string, {\n jsonSchemaVersion: options?.jsonSchemaVersion,\n queryOptions: {\n enabled:\n stepState.currentStep.name === 'pricing_plan' ||\n (Boolean(employmentId) && isEmploymentReadOnly),\n },\n });\n\n const formType =\n stepToFormSchemaMap[stepState.currentStep.name] ||\n 'contractor_basic_information';\n const employmentKey = jsonSchemaToEmployment[formType] as keyof Employment;\n const serverEmploymentData = (employment?.[employmentKey] || {}) as Record<\n string,\n unknown\n >;\n\n const useJSONSchema = ({\n form,\n options: jsonSchemaOptions = {},\n query = {},\n }: {\n form: JSONSchemaFormType;\n options?: {\n jsfModify?: JSFModify;\n queryOptions?: { enabled?: boolean };\n jsonSchemaVersion?: FlowOptions['jsonSchemaVersion'];\n };\n query?: Record<string, string>;\n }) => {\n const hasUserEnteredAnyValues = Object.keys(fieldValues).length > 0;\n // when you write on the fields, the values are stored in the fieldValues state\n // when values are stored in the stepState is when the user has navigated to the step\n // and then we have the values from the server and the onboardingInitialValues that the user can inject,\n const mergedFormValues = hasUserEnteredAnyValues\n ? {\n ...onboardingInitialValues,\n ...stepState.values?.[stepState.currentStep.name], // Restore values for the current step\n ...fieldValues,\n }\n : {\n ...onboardingInitialValues,\n ...serverEmploymentData,\n };\n\n return useJSONSchemaForm({\n countryCode: internalCountryCode as string,\n form: form,\n fieldValues: mergedFormValues,\n query,\n options: {\n ...jsonSchemaOptions,\n queryOptions: {\n enabled: jsonSchemaOptions.queryOptions?.enabled ?? true,\n },\n },\n });\n };\n\n const isBasicInformationDetailsEnabled = Boolean(\n internalCountryCode &&\n (stepState.currentStep.name === 'basic_information' ||\n Boolean(employmentId)),\n );\n\n const isContractorOnboardingDetailsEnabled = Boolean(\n internalCountryCode &&\n (stepState.currentStep.name === 'contract_details' ||\n Boolean(employmentId)),\n );\n\n const isIR35FileEnabled = Boolean(\n internalCountryCode === 'GBR' &&\n employmentId &&\n stepState.currentStep.name === 'basic_information',\n );\n\n const { data: ir35File, isLoading: isLoadingIR35File } = useGetIR35File(\n employmentId as string,\n {\n enabled: isIR35FileEnabled,\n },\n );\n\n const { data: contractDocuments, isLoading: isLoadingContractDocuments } =\n useGetContractDocuments(employmentId as string, {\n enabled: Boolean(employmentId),\n });\n\n useEffect(() => {\n if (\n contractDocuments &&\n contractDocuments.length > 0 &&\n !internalContractDocumentId\n ) {\n setInternalContractDocumentId(contractDocuments[0].id);\n }\n }, [contractDocuments, internalContractDocumentId]);\n\n const {\n data: basicInformationForm,\n isLoading: isLoadingBasicInformationForm,\n } = useJSONSchema({\n form: 'contractor_basic_information',\n options: {\n jsfModify: buildBasicInformationJsfModify(\n internalCountryCode as string,\n options,\n ),\n queryOptions: {\n enabled: isBasicInformationDetailsEnabled,\n },\n },\n });\n\n const descriptionProvisionalStartDate = useMemo(() => {\n return calculateProvisionalStartDateDescription(\n employment?.basic_information?.provisional_start_date as string,\n fieldValues?.service_duration?.provisional_start_date as string,\n );\n }, [\n employment?.basic_information?.provisional_start_date,\n fieldValues?.service_duration?.provisional_start_date,\n ]);\n\n const selectedPricingPlan = useMemo(() => {\n if (!employment?.contractor_type) {\n return undefined;\n }\n const subscriptions = {\n standard: contractorStandardProductIdentifier,\n plus: contractorPlusProductIdentifier,\n cor: corProductIdentifier,\n };\n return (\n subscriptions[\n employment?.contractor_type as keyof typeof subscriptions\n ] || contractorStandardProductIdentifier\n );\n }, [employment]);\n\n const {\n data: contractorOnboardingDetailsForm,\n isLoading: isLoadingContractorOnboardingDetailsForm,\n } = useContractorOnboardingDetailsSchema({\n countryCode: internalCountryCode as string,\n fieldValues: fieldValues,\n options: {\n queryOptions: {\n enabled: isContractorOnboardingDetailsEnabled,\n },\n jsfModify: buildContractDetailsJsfModify(\n options?.jsfModify?.contract_details,\n descriptionProvisionalStartDate,\n selectedPricingPlan,\n fieldValues,\n ),\n },\n });\n\n const isSignatureSchemaEnabled = useMemo(() => {\n return (\n stepState.currentStep.name === 'contract_preview' ||\n (Boolean(employmentId) && isEmploymentReadOnly)\n );\n }, [stepState.currentStep.name, employmentId, isEmploymentReadOnly]);\n\n const { data: signatureSchemaForm } = useGetContractDocumentSignatureSchema({\n fieldValues: fieldValues,\n options: {\n queryOptions: {\n enabled: isSignatureSchemaEnabled,\n },\n jsfModify: buildContractPreviewJsfModify(options, fieldValues),\n },\n });\n\n const { data: documentPreviewPdf, isLoading: isLoadingDocumentPreviewForm } =\n useGetShowContractDocument({\n employmentId: internalEmploymentId as string,\n contractDocumentId: internalContractDocumentId as string,\n options: {\n queryOptions: {\n enabled: Boolean(internalContractDocumentId),\n },\n },\n });\n\n const stepFields: Record<keyof typeof STEPS, JSFFields> = useMemo(\n () => ({\n select_country: selectCountryForm?.fields || [],\n basic_information: basicInformationForm?.fields || [],\n pricing_plan: selectContractorSubscriptionForm?.fields || [],\n contract_details: contractorOnboardingDetailsForm?.fields || [],\n contract_preview: signatureSchemaForm?.fields || [],\n review: [],\n }),\n [\n selectCountryForm?.fields,\n basicInformationForm?.fields,\n selectContractorSubscriptionForm?.fields,\n contractorOnboardingDetailsForm?.fields,\n signatureSchemaForm?.fields,\n ],\n );\n\n const stepFieldsWithFlatFieldsets: Record<\n keyof typeof STEPS,\n JSFFieldset | null | undefined\n > = {\n select_country: null,\n basic_information: basicInformationForm?.meta['x-jsf-fieldsets'],\n pricing_plan: null,\n contract_details: contractorOnboardingDetailsForm?.meta['x-jsf-fieldsets'],\n contract_preview: null,\n review: null,\n };\n\n const {\n country,\n basic_information: employmentBasicInformation = {},\n contract_details: employmentContractDetails = {},\n } = employment || {};\n\n const employmentCountryCode = country?.code;\n\n const selectCountryInitialValues = useMemo(\n () =>\n getInitialValues(stepFields.select_country, {\n country: internalCountryCode || employmentCountryCode || '',\n }),\n [stepFields.select_country, internalCountryCode, employmentCountryCode],\n );\n\n // memoize file conversion to avoid re-converting the file on every render\n // noticed performance issues when not doing memoizing individually\n const convertedIr35File = useMemo(() => {\n if (!ir35File?.content) return null;\n return dataURLtoFile(ir35File.content as unknown as string, ir35File.name);\n }, [ir35File?.content, ir35File?.name]);\n\n const basicInformationInitialValues = useMemo(() => {\n const initialValues = {\n provisional_start_date: provisionalStartDate,\n ...onboardingInitialValues,\n ...employmentBasicInformation,\n ir35: employment?.contract_details?.ir_35,\n saudi_nationality_status: employment?.contract_details?.nationality,\n ...(convertedIr35File && {\n ir35_sds_file: [convertedIr35File],\n }),\n };\n\n return getInitialValues(stepFields.basic_information, initialValues);\n }, [\n onboardingInitialValues,\n employmentBasicInformation,\n employment?.contract_details?.ir_35,\n employment?.contract_details?.nationality,\n convertedIr35File,\n stepFields.basic_information,\n ]);\n\n const contractDetailsInitialValues = useMemo(() => {\n const hardcodedValues = {\n service_duration: {\n provisional_start_date:\n employmentBasicInformation.provisional_start_date,\n },\n };\n const initialValues = {\n ...hardcodedValues,\n ...onboardingInitialValues,\n ...employmentContractDetails,\n };\n\n return getInitialValues(stepFields.contract_details, initialValues);\n }, [\n stepFields.contract_details,\n employmentContractDetails,\n onboardingInitialValues,\n employmentBasicInformation,\n ]);\n\n const contractPreviewInitialValues = useMemo(() => {\n const signature = documentPreviewPdf?.contract_document?.signatories?.find(\n (signatory) => signatory.type === 'company',\n );\n const initialValues = {\n ...onboardingInitialValues,\n signature: signature?.signature,\n };\n\n return getInitialValues(stepFields.contract_preview, initialValues);\n }, [\n stepFields.contract_preview,\n onboardingInitialValues,\n documentPreviewPdf,\n ]);\n\n const pricingPlanInitialValues = useMemo(() => {\n const preselectedPricingPlan = {\n subscription: selectedPricingPlan,\n };\n const initialValues = {\n ...preselectedPricingPlan,\n ...onboardingInitialValues,\n };\n\n return getInitialValues(stepFields.pricing_plan, initialValues);\n }, [stepFields.pricing_plan, onboardingInitialValues, selectedPricingPlan]);\n\n const initialValues = useMemo(() => {\n return {\n select_country: selectCountryInitialValues,\n basic_information: basicInformationInitialValues,\n contract_details: contractDetailsInitialValues,\n contract_preview: contractPreviewInitialValues,\n pricing_plan: pricingPlanInitialValues,\n };\n }, [\n selectCountryInitialValues,\n basicInformationInitialValues,\n contractDetailsInitialValues,\n contractPreviewInitialValues,\n pricingPlanInitialValues,\n ]);\n\n const shouldHandleReadOnlyEmployment = Boolean(\n employmentId &&\n isEmploymentReadOnly &&\n stepState.currentStep.name !== 'review',\n );\n\n const initialLoading =\n isLoadingCountries ||\n isLoadingBasicInformationForm ||\n isLoadingEmployment ||\n isLoadingContractorOnboardingDetailsForm ||\n isLoadingContractorSubscriptions ||\n isLoadingDocumentPreviewForm ||\n isLoadingIR35File ||\n isLoadingContractDocuments;\n\n const isNavigatingToReview = useMemo(() => {\n return Boolean(\n shouldHandleReadOnlyEmployment &&\n !initialLoading &&\n Boolean(internalContractDocumentId) &&\n stepFields.basic_information.length > 0 &&\n stepFields.contract_details.length > 0 &&\n stepFields.contract_preview.length > 0,\n );\n }, [\n shouldHandleReadOnlyEmployment,\n initialLoading,\n internalContractDocumentId,\n stepFields.basic_information.length,\n stepFields.contract_details.length,\n stepFields.contract_preview.length,\n ]);\n\n useEffect(() => {\n if (isNavigatingToReview) {\n fieldsMetaRef.current = {\n select_country: prettifyFormValues(\n selectCountryInitialValues,\n stepFields.select_country,\n ),\n basic_information: prettifyFormValues(\n basicInformationInitialValues,\n stepFields.basic_information,\n ),\n contract_details: prettifyFormValues(\n contractDetailsInitialValues,\n stepFields.contract_details,\n ),\n contract_preview: prettifyFormValues(\n contractPreviewInitialValues,\n stepFields.contract_preview,\n ),\n pricing_plan: prettifyFormValues(\n pricingPlanInitialValues,\n stepFields.pricing_plan,\n ),\n };\n\n setStepValues({\n select_country: selectCountryInitialValues,\n basic_information: basicInformationInitialValues,\n contract_details: contractDetailsInitialValues,\n contract_preview: {},\n pricing_plan: pricingPlanInitialValues,\n review: {},\n });\n goToStep('review');\n }\n }, [\n isNavigatingToReview,\n goToStep,\n selectCountryInitialValues,\n basicInformationInitialValues,\n contractDetailsInitialValues,\n setStepValues,\n stepFields.select_country,\n stepFields.basic_information,\n stepFields.contract_details,\n stepFields.pricing_plan,\n pricingPlanInitialValues,\n stepFields.contract_preview,\n contractPreviewInitialValues,\n ]);\n\n const goTo = (step: keyof typeof STEPS) => {\n goToStep(step);\n };\n\n const parseFormValues = async (values: FieldValues) => {\n if (selectCountryForm && stepState.currentStep.name === 'select_country') {\n return values;\n }\n\n if (\n basicInformationForm &&\n stepState.currentStep.name === 'basic_information'\n ) {\n return await parseJSFToValidate(values, basicInformationForm?.fields, {\n isPartialValidation: false,\n });\n }\n\n if (\n contractorOnboardingDetailsForm &&\n stepState.currentStep.name === 'contract_details'\n ) {\n return await parseJSFToValidate(\n values,\n contractorOnboardingDetailsForm?.fields,\n {\n isPartialValidation: false,\n },\n );\n }\n\n if (\n signatureSchemaForm &&\n stepState.currentStep.name === 'contract_preview'\n ) {\n return await parseJSFToValidate(values, signatureSchemaForm?.fields, {\n isPartialValidation: false,\n });\n }\n\n if (\n selectContractorSubscriptionForm &&\n stepState.currentStep.name === 'pricing_plan'\n ) {\n return await parseJSFToValidate(\n values,\n selectContractorSubscriptionForm?.fields,\n {\n isPartialValidation: false,\n },\n );\n }\n\n return {};\n };\n\n async function onSubmit(values: FieldValues) {\n const currentStepName = stepState.currentStep.name;\n if (currentStepName in fieldsMetaRef.current) {\n fieldsMetaRef.current[\n currentStepName as keyof typeof fieldsMetaRef.current\n ] = prettifyFormValues(values, stepFields[currentStepName]);\n }\n const parsedValues = await parseFormValues(values);\n switch (stepState.currentStep.name) {\n case 'select_country': {\n setInternalCountryCode(parsedValues.country);\n return Promise.resolve({ data: { countryCode: parsedValues.country } });\n }\n case 'basic_information': {\n const isEmploymentNotLoaded =\n !internalEmploymentId && internalCountryCode;\n const hasChangedCountry =\n internalEmploymentId &&\n internalCountryCode &&\n employment?.country &&\n employment?.country.code !== internalCountryCode;\n\n if (isEmploymentNotLoaded || hasChangedCountry) {\n const basicInformationParsedValues = omit(\n parsedValues,\n 'saudi_nationality_status',\n 'ir35',\n 'ir35_sds_file',\n );\n const basicInformationPayload: EmploymentCreateParams = {\n basic_information: basicInformationParsedValues,\n type: 'contractor',\n country_code: internalCountryCode,\n external_id: externalId,\n };\n const response = await createEmploymentMutationAsync(\n basicInformationPayload,\n );\n const employmentId = response?.data?.employment?.id;\n if (!employmentId) {\n throw createStructuredError('Employment ID not found');\n }\n\n setInternalEmploymentId(employmentId);\n await updateUKandSaudiFieldsMutation({\n employmentId: employmentId as string,\n });\n\n return response;\n } else if (internalEmploymentId) {\n const basicInformationParsedValues = omit(\n parsedValues,\n 'saudi_nationality_status',\n 'ir35',\n 'ir35_sds_file',\n );\n\n await updateUKandSaudiFieldsMutation({\n employmentId: internalEmploymentId,\n });\n return updateEmploymentMutationAsync({\n employmentId: internalEmploymentId,\n basic_information: basicInformationParsedValues,\n });\n }\n\n return;\n }\n case 'contract_details': {\n const payload: CreateContractDocument = {\n contract_document: parsedValues,\n };\n const response = await createContractorContractDocumentMutationAsync({\n employmentId: internalEmploymentId as string,\n payload,\n });\n const contractDocumentId = response?.data?.contract_document?.id;\n if (!contractDocumentId) {\n throw createStructuredError('Contract document ID not found');\n }\n setInternalContractDocumentId(contractDocumentId);\n return response;\n }\n\n case 'contract_preview': {\n return signContractDocumentMutationAsync({\n employmentId: internalEmploymentId as string,\n contractDocumentId: internalContractDocumentId as string,\n payload: {\n signature: values.signature,\n },\n });\n }\n case 'pricing_plan': {\n if (values.subscription == contractorStandardProductIdentifier) {\n return manageContractorSubscriptionMutationAsync({\n employmentId: internalEmploymentId as string,\n payload: {\n operation: 'downgrade',\n },\n });\n } else if (values.subscription == contractorPlusProductIdentifier) {\n return manageContractorSubscriptionMutationAsync({\n employmentId: internalEmploymentId as string,\n payload: {\n operation: 'upgrade',\n },\n });\n }\n\n throw createStructuredError('invalid selection');\n }\n\n default: {\n throw createStructuredError('Invalid step state');\n }\n }\n }\n\n const isLoading = initialLoading || shouldHandleReadOnlyEmployment;\n\n return {\n /**\n * Loading state indicating if the flow is loading data\n */\n isLoading,\n\n /**\n * Current state of the form fields for the current step.\n */\n fieldValues,\n\n /**\n * Current step state containing the current step and total number of steps\n */\n stepState,\n\n /**\n * Function to update the current form field values\n * @param values - New form values to set\n */\n checkFieldUpdates: setFieldValues,\n\n /**\n * Function to handle going back to the previous step\n * @returns {void}\n */\n back: previousStep,\n\n /**\n * Function to handle going to the next step\n * @returns {void}\n */\n next: nextStep,\n\n /**\n * Function to handle going to a specific step\n * @param step The step to go to.\n * @returns {void}\n */\n goTo: goTo,\n\n /**\n * Function to handle form submission\n * @param values - Form values to submit\n * @returns Promise resolving to the mutation result\n */\n onSubmit,\n\n /**\n * Array of form fields from the onboarding schema\n */\n fields: stepFields[stepState.currentStep.name],\n\n /**\n * Fields metadata for each step\n */\n meta: {\n fields: fieldsMetaRef.current,\n fieldsets: stepFieldsWithFlatFieldsets[stepState.currentStep.name],\n },\n\n /**\n * Function to parse form values before submission\n * @param values - Form values to parse\n * @returns Parsed form values\n */\n parseFormValues,\n\n /**\n * Function to validate form values against the onboarding schema\n * @param values - Form values to validate\n * @returns Validation result or null if no schema is available\n */\n handleValidation: async (\n values: FieldValues,\n ): Promise<ValidationResult | null> => {\n if (stepState.currentStep.name === 'select_country') {\n return selectCountryForm.handleValidation(values);\n }\n\n if (\n basicInformationForm &&\n stepState.currentStep.name === 'basic_information'\n ) {\n const parsedValues = await parseJSFToValidate(\n values,\n basicInformationForm?.fields,\n { isPartialValidation: false },\n );\n return basicInformationForm?.handleValidation(parsedValues);\n }\n\n if (\n contractorOnboardingDetailsForm &&\n stepState.currentStep.name === 'contract_details'\n ) {\n const parsedValues = await parseJSFToValidate(\n values,\n contractorOnboardingDetailsForm?.fields,\n { isPartialValidation: false },\n );\n return contractorOnboardingDetailsForm?.handleValidation(parsedValues);\n }\n\n if (\n signatureSchemaForm &&\n stepState.currentStep.name === 'contract_preview'\n ) {\n const parsedValues = await parseJSFToValidate(\n values,\n signatureSchemaForm?.fields,\n { isPartialValidation: true },\n );\n return signatureSchemaForm?.handleValidation(parsedValues);\n }\n\n if (\n selectContractorSubscriptionForm &&\n stepState.currentStep.name === 'pricing_plan'\n ) {\n const parsedValues = await parseJSFToValidate(\n values,\n selectContractorSubscriptionForm?.fields,\n { isPartialValidation: false },\n );\n return selectContractorSubscriptionForm?.handleValidation(parsedValues);\n }\n\n return null;\n },\n\n /**\n * Initial form values\n */\n initialValues,\n\n /**\n * Employment id\n */\n employmentId: internalEmploymentId,\n\n /**\n * Function to refetch the employment data\n * @returns {void}\n */\n refetchEmployment: refetchEmployment,\n\n /**\n * Loading state indicating if the onboarding mutation is in progress\n */\n isSubmitting:\n createEmploymentMutation.isPending ||\n updateEmploymentMutation.isPending ||\n createContractorContractDocumentMutation.isPending ||\n signContractDocumentMutation.isPending ||\n manageContractorSubscriptionMutation.isPending ||\n uploadFileMutation.isPending,\n\n /**\n * Document preview PDF data\n */\n documentPreviewPdf,\n\n /**\n * let's the user know if the company can invite employees\n * @returns {boolean}\n */\n canInvite,\n\n /**\n * let's the user know that the employment cannot be edited, happens when employment.status is invited\n * @returns {boolean}\n */\n isEmploymentReadOnly,\n /**\n * let's the user know if the employment is invited or not\n * @returns {'invited' | 'not_invited'}\n */\n invitedStatus,\n\n /**\n * Employment data\n * @returns {Employment}\n */\n employment,\n };\n};\n"],"mappings":"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","names":["useEffect","useMemo","useRef","useState","omit","stepToFormSchemaMap","jsonSchemaToEmployment","provisionalStartDate","useContractorOnboarding","__name","countryCode","externalId","employmentId","skipSteps","options","onboardingInitialValues","internalCountryCode","setInternalCountryCode","useState","internalEmploymentId","setInternalEmploymentId","internalContractDocumentId","setInternalContractDocumentId","fieldsMetaRef","useRef","stepsToUse","STEPS_WITHOUT_SELECT_COUNTRY","STEPS","fieldValues","stepState","setFieldValues","previousStep","nextStep","goToStep","setStepValues","useStepState","employment","isLoadingEmployment","refetchEmployment","useEmployment","employmentStatus","isEmploymentReadOnly","reviewStepAllowedEmploymentStatus","canInvite","disabledInviteButtonEmploymentStatus","invitedStatus","useMemo","createEmploymentMutation","useCreateEmployment","updateEmploymentMutation","useUpdateEmployment","createContractorContractDocumentMutation","useCreateContractorContractDocument","uploadFileMutation","useUploadFile","updateUKandSaudiFieldsMutation","useUpdateUKandSaudiFields","updateEmploymentMutationAsync","mutationToPromise","signContractDocumentMutation","useSignContractDocument","manageContractorSubscriptionMutation","usePostManageContractorSubscriptions","createEmploymentMutationAsync","createContractorContractDocumentMutationAsync","signContractDocumentMutationAsync","manageContractorSubscriptionMutationAsync","selectCountryForm","isLoadingCountries","useCountriesSchemaField","selectContractorSubscriptionForm","isLoadingContractorSubscriptions","useContractorSubscriptionSchemaField","formType","employmentKey","serverEmploymentData","useJSONSchema","form","jsonSchemaOptions","query","mergedFormValues","useJSONSchemaForm","isBasicInformationDetailsEnabled","isContractorOnboardingDetailsEnabled","isIR35FileEnabled","ir35File","isLoadingIR35File","useGetIR35File","contractDocuments","isLoadingContractDocuments","useGetContractDocuments","useEffect","basicInformationForm","isLoadingBasicInformationForm","buildBasicInformationJsfModify","descriptionProvisionalStartDate","calculateProvisionalStartDateDescription","selectedPricingPlan","contractorStandardProductIdentifier","contractorPlusProductIdentifier","corProductIdentifier","contractorOnboardingDetailsForm","isLoadingContractorOnboardingDetailsForm","useContractorOnboardingDetailsSchema","buildContractDetailsJsfModify","isSignatureSchemaEnabled","signatureSchemaForm","useGetContractDocumentSignatureSchema","buildContractPreviewJsfModify","documentPreviewPdf","isLoadingDocumentPreviewForm","useGetShowContractDocument","stepFields","stepFieldsWithFlatFieldsets","country","employmentBasicInformation","employmentContractDetails","employmentCountryCode","selectCountryInitialValues","getInitialValues","convertedIr35File","dataURLtoFile","basicInformationInitialValues","initialValues","contractDetailsInitialValues","contractPreviewInitialValues","signature","signatory","pricingPlanInitialValues","shouldHandleReadOnlyEmployment","initialLoading","isNavigatingToReview","prettifyFormValues","goTo","step","parseFormValues","values","parseJSFToValidate","onSubmit","currentStepName","parsedValues","isEmploymentNotLoaded","hasChangedCountry","basicInformationPayload","omit","response","createStructuredError","basicInformationParsedValues","contractDocumentId"]}
|
package/dist/chunk-EIFXWGXM.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as f}from"./chunk-P45OX5YT.js";import{i as l,j as c,k as m,l as t,m as _}from"./chunk-3QNS3IZB.js";import{a as u,b as R}from"./chunk-FLW5LACO.js";import{a as F}from"./chunk-GCWEOZBS.js";import{a as p}from"./chunk-P37U34EQ.js";import{Fragment as g}from"react";import{jsx as e,jsxs as r}from"react/jsx-runtime";var w=p(({field:s,fieldData:i,fieldState:C})=>{let{name:a,label:d,description:n,options:b}=i;return e("fieldset",{className:F("space-y-3",`RemoteFlows__RadioGroupField__Item__${a}`),"data-field":a,children:r(l,{children:[e("legend",{children:d}),n&&r(t,{children:[n," ",e(f,{helpCenter:i.meta?.helpCenter})]}),e(m,{children:e(u,{"aria-label":d||a,onValueChange:o=>{s.onChange(o)},value:s.value,className:"flex flex-col space-y-3",children:b?.map(o=>e(g,{children:r(l,{"data-field":a,className:"flex items-start space-x-3 space-y-0 gap-0 RemoteFlows__RadioField__Item",children:[e(m,{children:e(R,{value:o.value,className:"RemoteFlows__RadioField__Input",disabled:o.disabled})}),r("div",{children:[e(c,{className:"font-normal mb-0 RemoteFlows__RadioField__Label",children:o.label}),o.description&&e(t,{className:"mt-2",children:o.description})]})]})},o.value))})}),C.error&&e(_,{})]})})},"RadioGroupFieldDefault");export{w as a};
|
|
2
|
-
//# sourceMappingURL=chunk-EIFXWGXM.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/form/fields/default/RadioGroupFieldDefault.tsx"],"sourcesContent":["import { Fragment } from 'react';\nimport {\n FormControl,\n FormDescription,\n FormItem,\n FormLabel,\n FormMessage,\n} from '@/src/components/ui/form';\nimport { RadioGroup, RadioGroupItem } from '@/src/components/ui/radio-group';\nimport { cn } from '@/src/lib/utils';\nimport { FieldComponentProps } from '@/src/types/fields';\nimport { HelpCenter } from '@/src/components/shared/zendesk-drawer/HelpCenter';\n\nexport const RadioGroupFieldDefault = ({\n field,\n fieldData,\n fieldState,\n}: FieldComponentProps) => {\n const { name, label, description, options } = fieldData;\n return (\n <fieldset\n className={cn('space-y-3', `RemoteFlows__RadioGroupField__Item__${name}`)}\n data-field={name}\n >\n <FormItem>\n <legend>{label}</legend>\n {description && (\n <FormDescription>\n {description} <HelpCenter helpCenter={fieldData.meta?.helpCenter} />\n </FormDescription>\n )}\n <FormControl>\n <RadioGroup\n aria-label={label || name}\n onValueChange={(value: string) => {\n field.onChange(value);\n }}\n value={field.value}\n className='flex flex-col space-y-3'\n >\n {options?.map((option) => (\n <Fragment key={option.value}>\n <FormItem\n data-field={name}\n className='flex items-start space-x-3 space-y-0 gap-0 RemoteFlows__RadioField__Item'\n >\n <FormControl>\n <RadioGroupItem\n value={option.value}\n className='RemoteFlows__RadioField__Input'\n disabled={option.disabled}\n />\n </FormControl>\n <div>\n <FormLabel className='font-normal mb-0 RemoteFlows__RadioField__Label'>\n {option.label}\n </FormLabel>\n {option.description && (\n <FormDescription className='mt-2'>\n {option.description}\n </FormDescription>\n )}\n </div>\n </FormItem>\n </Fragment>\n ))}\n </RadioGroup>\n </FormControl>\n {fieldState.error && <FormMessage />}\n </FormItem>\n </fieldset>\n );\n};\n"],"mappings":"2OAAA,OAAS,YAAAA,MAAgB,QAyBjB,cAAAC,EAEE,QAAAC,MAFF,oBAZD,IAAMC,EAAyBC,EAAA,CAAC,CACrC,MAAAC,EACA,UAAAC,EACA,WAAAC,CACF,IAA2B,CACzB,GAAM,CAAE,KAAAC,EAAM,MAAAC,EAAO,YAAAC,EAAa,QAAAC,CAAQ,EAAIL,EAC9C,OACEL,EAAC,YACC,UAAWW,EAAG,YAAa,uCAAuCJ,CAAI,EAAE,EACxE,aAAYA,EAEZ,SAAAN,EAACW,EAAA,CACC,UAAAZ,EAAC,UAAQ,SAAAQ,EAAM,EACdC,GACCR,EAACY,EAAA,CACE,UAAAJ,EAAY,IAACT,EAACc,EAAA,CAAW,WAAYT,EAAU,MAAM,WAAY,GACpE,EAEFL,EAACe,EAAA,CACC,SAAAf,EAACgB,EAAA,CACC,aAAYR,GAASD,EACrB,cAAgBU,GAAkB,CAChCb,EAAM,SAASa,CAAK,CACtB,EACA,MAAOb,EAAM,MACb,UAAU,0BAET,SAAAM,GAAS,IAAKQ,GACblB,EAACmB,EAAA,CACC,SAAAlB,EAACW,EAAA,CACC,aAAYL,EACZ,UAAU,2EAEV,UAAAP,EAACe,EAAA,CACC,SAAAf,EAACoB,EAAA,CACC,MAAOF,EAAO,MACd,UAAU,iCACV,SAAUA,EAAO,SACnB,EACF,EACAjB,EAAC,OACC,UAAAD,EAACqB,EAAA,CAAU,UAAU,kDAClB,SAAAH,EAAO,MACV,EACCA,EAAO,aACNlB,EAACa,EAAA,CAAgB,UAAU,OACxB,SAAAK,EAAO,YACV,GAEJ,GACF,GAtBaA,EAAO,KAuBtB,CACD,EACH,EACF,EACCZ,EAAW,OAASN,EAACsB,EAAA,EAAY,GACpC,EACF,CAEJ,EA3DsC","names":["Fragment","jsx","jsxs","RadioGroupFieldDefault","__name","field","fieldData","fieldState","name","label","description","options","cn","FormItem","FormDescription","HelpCenter","FormControl","RadioGroup","value","option","Fragment","RadioGroupItem","FormLabel","FormMessage"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/Onboarding/api.ts"],"sourcesContent":["import { useMutation, useQuery, UseQueryResult } from '@tanstack/react-query';\nimport { FieldValues } from 'react-hook-form';\nimport { Client } from '@/src/client/client';\nimport {\n ConvertCurrencyParams,\n CreateContractEligibilityParams,\n EmploymentCreateParams,\n 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 { useClient } from '@/src/context';\nimport { selectCountryStepSchema } from '@/src/flows/Onboarding/json-schemas/selectCountryStep';\nimport { OnboardingFlowProps } from '@/src/flows/Onboarding/types';\nimport {\n JSONSchemaFormResultWithFieldsets,\n JSONSchemaFormType,\n FlowOptions,\n} from '@/src/flows/types';\nimport { getContractDetailsSchemaVersion } from '@/src/flows/Onboarding/utils';\nimport { createHeadlessForm } from '@/src/common/createHeadlessForm';\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 jsonSchemaVersion,\n}: {\n countryCode: string;\n form: JSONSchemaFormType;\n fieldValues: FieldValues;\n options?: FlowOptions & { queryOptions?: { enabled?: boolean } };\n query?: Record<string, unknown>;\n jsonSchemaVersion?: number;\n}): UseQueryResult<JSONSchemaFormResultWithFieldsets> => {\n const { client } = useClient();\n const jsonSchemaQueryParam = jsonSchemaVersion\n ? {\n json_schema_version: jsonSchemaVersion,\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 const jsfSchema = data?.data || {};\n return createHeadlessForm(jsfSchema, fieldValues, options);\n },\n });\n};\n\nexport const useBenefitOffersSchema = (\n employmentId: string,\n fieldValues: FieldValues,\n options: OnboardingFlowProps['options'],\n) => {\n const 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 const jsfSchema = data?.data?.schema || {};\n\n return createHeadlessForm(jsfSchema, fieldValues, {\n jsfModify: options?.jsfModify?.benefits,\n });\n },\n });\n};\n\n/**\n * Use this hook to create an employment\n * @returns\n */\nexport const useCreateEmployment = () => {\n const { client } = useClient();\n // TODO: setting 1 as basic_information only supports v1 for now in the API\n const jsonSchemaQueryParam = {\n json_schema_version: 1,\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 countryCode: string,\n options?: OnboardingFlowProps['options'],\n) => {\n const { client } = useClient();\n const jsonSchemaQueryParams = {\n // TODO: setting 1 as basic_information only supports v1 for now in the API\n employment_basic_information_json_schema_version: 1,\n contract_details_json_schema_version:\n getContractDetailsSchemaVersion(options, countryCode) || 1,\n };\n\n return useMutation({\n mutationFn: ({\n employmentId,\n ...payload\n }: EmploymentFullParams & { employmentId: string }) => {\n return 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 ...jsonSchemaQueryParams,\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 selectCountryForm = createHeadlessForm(\n selectCountryStepSchema.data.schema,\n {},\n options,\n );\n\n if (countries) {\n const countryField = selectCountryForm.fields.find(\n (field) => field.name === 'country',\n );\n if (countryField) {\n countryField.options = countries;\n }\n }\n\n return {\n isLoading,\n selectCountryForm,\n };\n};\n\nexport const useConvertCurrency = ({\n type = 'spread',\n}: {\n type?: 'spread' | 'no_spread';\n}) => {\n const { client } = useClient();\n return useMutation({\n mutationFn: (payload: ConvertCurrencyParams) => {\n const apiFn =\n type === 'no_spread'\n ? 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":["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","jsonSchemaVersion","jsonSchemaQueryParam","getShowFormCountry","jsfSchema","createHeadlessForm","useBenefitOffersSchema","getShowSchema","useCreateEmployment","postCreateEmployment2","useUpdateEmployment","jsonSchemaQueryParams","getContractDetailsSchemaVersion","patchUpdateEmployment2","useUpdateBenefitsOffers","putUpdateBenefitOffer","useCountries","queryOptions","getSupportedCountry","country","useCountriesSchemaField","countries","isLoading","selectCountryForm","selectCountryStepSchema","countryField","field","useConvertCurrency","type","postConvertRawCurrencyConverter","postConvertWithSpreadCurrencyConverter","useUpsertContractEligibility","postCreateContractEligibility"]}
|
package/dist/chunk-GCWEOZBS.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{b as u}from"./chunk-3X36ZFNP.js";import{a as o}from"./chunk-P37U34EQ.js";import{clsx as p}from"clsx";import{twMerge as c}from"tailwind-merge";import s from"dompurify";function h(...r){return c(p(r))}o(h,"cn");function x(r,n="\u20AC"){if(r==null)return"-";let e=r/100;return`${n}${e.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}`}o(x,"formatCurrency");var d=o(r=>{let n={};return r.inner.forEach(e=>{e.path!==void 0&&(n[e.path]={type:e.type,errors:e.errors,inner:e.inner.map(i=>d(i))})}),n},"transformYupErrorsIntoObject");function S(r){window.RemoteFlowsSDK={version:r}}o(S,"debug");var f=o(r=>{let n=new Set(r?r.toLowerCase().split(" "):[]);return n.add("noopener"),n.add("noreferrer"),Array.from(n).join(" ")},"appendSecureRelValue");s.isSupported&&s.addHook("afterSanitizeAttributes",r=>{let n=r.getAttribute("target");if(r.tagName==="A"&&(!n||n!=="_self")){let e=r.getAttribute("href");if(e&&!e.startsWith("#")&&/^https?:\/\//i.test(e)){r.setAttribute("target","_blank");let i=r.getAttribute("rel");r.setAttribute("rel",f(i))}}});var V=o(r=>s.sanitize(r,{ADD_ATTR:["target"]}),"sanitizeHtml"),R=o(r=>{let e=new DOMParser().parseFromString(r,"text/html");e.querySelectorAll("img").forEach(a=>{a.setAttribute("onerror","this.style.display='none'")});let t=e.body.innerHTML;return s.sanitize(t,{ADD_ATTR:["target","onerror"]})},"sanitizeHtmlWithImageErrorHandling"),T=o(r=>{if(!r)return"";let n=r.trim();return n.startsWith("data:application/pdf;base64,")||n.startsWith("data:")?n:`data:application/pdf;base64,${n}`},"clearBase64Data");function m(r,n){return n?Object.fromEntries(Object.entries(r).map(([e,i])=>{if(i===void 0)return[e,void 0];let t=n.find(a=>a.name===e);if(t?.isVisible===!1||t?.deprecated)return[e,void 0];if(t?.type==="radio"||t?.type==="select"){let a=t.options.find(l=>l.value===i);return a?[e,{prettyValue:a?.label,label:t?.label,inputType:t?.type}]:void 0}if(t?.type==="checkbox"&&t?.const)return[e,{prettyValue:!0,label:t.label,inputType:t?.type}];if(t?.type==="countries"&&Array.isArray(i))return[e,{prettyValue:i.join(),label:t.label,inputType:t?.type}];if(t?.type==="fieldset"){let a=m(i,t.fields);if(!a.label&&a.value){let l={...a.value,label:t.label,inputType:t?.type};return[e,l]}return[e,a]}if(t?.type==="money")return[e,{prettyValue:i,label:t.label,inputType:t?.type,currency:t?.currency}];if(t)return[e,{prettyValue:i,label:t.label,inputType:t?.type}]}).filter(Boolean)):{}}o(m,"prettifyFormValues");function E(r){return{error:new Error(r),rawError:{message:r},fieldErrors:[]}}o(E,"createStructuredError");function b(r){return typeof r=="object"&&r!==null&&"error"in r&&"rawError"in r&&"fieldErrors"in r}o(b,"isStructuredError");function z(r,n){if(b(r)){let i=u(r.fieldErrors||[],n);return{error:r.error,rawError:r.rawError,fieldErrors:i}}return{...E(r instanceof Error?r.message:"An unexpected error occurred"),fieldErrors:[]}}o(z,"handleStepError");export{h as a,x as b,d as c,S as d,V as e,R as f,T as g,m as h,E as i,z as j};
|
|
2
|
-
//# sourceMappingURL=chunk-GCWEOZBS.js.map
|
|
@@ -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 { JSFFields, Meta } from '@/src/types/remoteFlows';\nimport {\n NormalizedFieldError,\n normalizeFieldErrors,\n} from '@/src/lib/mutations';\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 * Ensures base64 data has the correct data URI prefix for PDF content\n * @param base64Data - The base64 data string\n * @returns The base64 data with proper data URI prefix\n */\nexport const clearBase64Data = (base64Data: string) => {\n if (!base64Data) return '';\n\n const cleanedData = base64Data.trim();\n\n if (cleanedData.startsWith('data:application/pdf;base64,')) {\n return cleanedData;\n }\n\n if (cleanedData.startsWith('data:')) {\n return cleanedData;\n }\n\n return `data:application/pdf;base64,${cleanedData}`;\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: JSFFields | 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 JSFFields,\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\n/**\n * Creates a structured error object with the error message and raw error object\n * @param message - The error message\n * @returns\n */\nexport function createStructuredError(message: string) {\n return {\n error: new Error(message),\n rawError: { message },\n fieldErrors: [],\n };\n}\n\n/**\n * Checks if the error is a structured error\n * @param err - The error\n * @returns True if the error is a structured error\n */\nfunction isStructuredError(err: unknown): err is {\n error: Error;\n rawError: Record<string, unknown>;\n fieldErrors: NormalizedFieldError[];\n} {\n return (\n typeof err === 'object' &&\n err !== null &&\n 'error' in err &&\n 'rawError' in err &&\n 'fieldErrors' in err\n );\n}\n\n/**\n * Handles the error for a step\n * @param err - The error\n * @param fieldsMeta - The fields metadata\n * @returns The structured error\n */\nexport function handleStepError(\n err: unknown,\n fieldsMeta?: Meta,\n): {\n error: Error;\n rawError: Record<string, unknown>;\n fieldErrors: NormalizedFieldError[];\n} {\n // If it's already a structured error from mutateAsyncOrThrow\n if (isStructuredError(err)) {\n const normalizedFieldErrors = normalizeFieldErrors(\n err.fieldErrors || [],\n fieldsMeta,\n );\n return {\n error: err.error,\n rawError: err.rawError,\n fieldErrors: normalizedFieldErrors,\n };\n }\n\n // For unexpected errors, create a structured error\n const fallbackError = createStructuredError(\n err instanceof Error ? err.message : 'An unexpected error occurred',\n );\n\n return {\n ...fallbackError,\n fieldErrors: [], // No field errors for unexpected errors\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","clearBase64Data","base64Data","cleanedData","prettifyFormValues","values","fields","key","field","option","prettiedFieldset","prettyValue","createStructuredError","message","isStructuredError","err","handleStepError","fieldsMeta","normalizedFieldErrors","normalizeFieldErrors"]}
|
package/dist/chunk-H6YNMT4M.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as s}from"./chunk-P37U34EQ.js";var d={select_country:{index:0,name:"select_country"},basic_information:{index:1,name:"basic_information"},contract_details:{index:2,name:"contract_details"},benefits:{index:3,name:"benefits"},review:{index:4,name:"review"}},_={basic_information:{index:0,name:"basic_information"},contract_details:{index:1,name:"contract_details"},benefits:{index:2,name:"benefits"},review:{index:3,name:"review"}},p=["invited","created_awaiting_reserve","created_reserve_paid"],S=["created_awaiting_reserve","invited"],r=1,o={DEU:[1,2]},a=s(t=>t?o[t]?.[0]??r:r,"getDefaultContractDetailsSchemaVersion"),l=s((t,e)=>{let n=a(e);if(!e||!o[e]||!t)return n;let i=o[e];return i.includes(t)?t:(console.warn(`[RemoteFlows] JSON Schema version ${t} is not allowed for country ${e}. Allowed versions: [${i.join(", ")}]. Using default version ${n}.`),n)},"getValidatedContractDetailsSchemaVersion"),f=s((t,e)=>{let n=t?.jsonSchemaVersionByCountry,i=e?n?.[e]?.contract_details:void 0,c=i||a(e);return l(c,e)},"getContractDetailsSchemaVersion");export{d as a,_ as b,p as c,S as d,r as e,f};
|
|
2
|
-
//# sourceMappingURL=chunk-H6YNMT4M.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/Onboarding/utils.ts"],"sourcesContent":["import { Employment, OnboardingFlowProps } from '@/src/flows/Onboarding/types';\nimport { Step } from '@/src/flows/useStepState';\n\ntype StepKeys =\n | 'select_country'\n | 'basic_information'\n | 'contract_details'\n | 'benefits'\n | 'review';\n\nexport const STEPS: Record<StepKeys, Step<StepKeys>> = {\n select_country: {\n index: 0,\n name: 'select_country',\n },\n basic_information: { index: 1, name: 'basic_information' },\n contract_details: { index: 2, name: 'contract_details' },\n benefits: { index: 3, name: 'benefits' },\n review: { index: 4, name: 'review' },\n} as const;\n\nexport const STEPS_WITHOUT_SELECT_COUNTRY: Record<\n Exclude<StepKeys, 'select_country'>,\n Step<Exclude<StepKeys, 'select_country'>>\n> = {\n basic_information: { index: 0, name: 'basic_information' },\n contract_details: { index: 1, name: 'contract_details' },\n benefits: { index: 2, name: 'benefits' },\n review: { index: 3, name: 'review' },\n} as const;\n\n/**\n * Array of employment statuses that are allowed to proceed to the review step.\n * These statuses indicate that the employment is in a final state and the employment cannot be modified further.\n * @type {Employment['status'][]}\n * @constant\n */\nexport const reviewStepAllowedEmploymentStatus: Employment['status'][] = [\n 'invited',\n 'created_awaiting_reserve',\n 'created_reserve_paid',\n];\n\nexport const disabledInviteButtonEmploymentStatus: Employment['status'][] = [\n 'created_awaiting_reserve',\n 'invited',\n];\n\nexport const DEFAULT_VERSION = 1;\n\n/**\n * Defines allowed JSON schema versions per country for contract_details\n * Key: country code, Value: array of allowed versions (first is default/recommended)\n */\nconst COUNTRY_CONTRACT_DETAILS_VERSION_ALLOWLIST: Record<string, number[]> = {\n DEU: [1, 2], // Germany: allows v1 (default) and v2\n};\n\n/**\n * Gets the default (recommended) contract details schema version for a country\n */\nconst getDefaultContractDetailsSchemaVersion = (\n countryCode: string | null,\n): number => {\n if (!countryCode) return DEFAULT_VERSION;\n const allowedVersions =\n COUNTRY_CONTRACT_DETAILS_VERSION_ALLOWLIST[countryCode];\n return allowedVersions?.[0] ?? DEFAULT_VERSION; // First version is the default\n};\n\n/**\n * Validates if a version is allowed for a given country\n * Returns the version if valid, otherwise returns the default\n */\nconst getValidatedContractDetailsSchemaVersion = (\n requestedVersion: number | undefined,\n countryCode: string | null,\n): number => {\n const defaultVersion = getDefaultContractDetailsSchemaVersion(countryCode);\n\n // If there is no country code, no allowlist for country, or no requested version, return the default version\n if (\n !countryCode ||\n !COUNTRY_CONTRACT_DETAILS_VERSION_ALLOWLIST[countryCode] ||\n !requestedVersion\n ) {\n return defaultVersion;\n }\n\n const allowedVersions =\n COUNTRY_CONTRACT_DETAILS_VERSION_ALLOWLIST[countryCode];\n\n // Check if requested version is allowed\n if (allowedVersions.includes(requestedVersion)) {\n return requestedVersion;\n }\n\n // Version not allowed, return default with console warning\n console.warn(\n `[RemoteFlows] JSON Schema version ${requestedVersion} is not allowed for country ${countryCode}. ` +\n `Allowed versions: [${allowedVersions.join(', ')}]. Using default version ${defaultVersion}.`,\n );\n\n return defaultVersion;\n};\n\n/**\n * Resolves the effective contract details schema version for a country\n * Priority: country-specific > global > default by country\n *\n * @param options - The flow options containing version configurations\n * @param countryCode - The country code to resolve version for\n * @returns The effective jsonSchemaVersion configuration\n */\nexport const getContractDetailsSchemaVersion = (\n options: OnboardingFlowProps['options'],\n countryCode: string | null,\n) => {\n const jsonSchemaVersionByCountry = options?.jsonSchemaVersionByCountry;\n const countrySpecificVersion = countryCode\n ? jsonSchemaVersionByCountry?.[countryCode]?.contract_details\n : undefined;\n\n const requestedVersion = countrySpecificVersion\n ? countrySpecificVersion\n : getDefaultContractDetailsSchemaVersion(countryCode);\n const effectiveVersion = getValidatedContractDetailsSchemaVersion(\n requestedVersion,\n countryCode,\n );\n\n return effectiveVersion;\n};\n"],"mappings":"wCAUO,IAAMA,EAA0C,CACrD,eAAgB,CACd,MAAO,EACP,KAAM,gBACR,EACA,kBAAmB,CAAE,MAAO,EAAG,KAAM,mBAAoB,EACzD,iBAAkB,CAAE,MAAO,EAAG,KAAM,kBAAmB,EACvD,SAAU,CAAE,MAAO,EAAG,KAAM,UAAW,EACvC,OAAQ,CAAE,MAAO,EAAG,KAAM,QAAS,CACrC,EAEaC,EAGT,CACF,kBAAmB,CAAE,MAAO,EAAG,KAAM,mBAAoB,EACzD,iBAAkB,CAAE,MAAO,EAAG,KAAM,kBAAmB,EACvD,SAAU,CAAE,MAAO,EAAG,KAAM,UAAW,EACvC,OAAQ,CAAE,MAAO,EAAG,KAAM,QAAS,CACrC,EAQaC,EAA4D,CACvE,UACA,2BACA,sBACF,EAEaC,EAA+D,CAC1E,2BACA,SACF,EAEaC,EAAkB,EAMzBC,EAAuE,CAC3E,IAAK,CAAC,EAAG,CAAC,CACZ,EAKMC,EAAyCC,EAC7CC,GAEKA,EAEHH,EAA2CG,CAAW,IAC/B,CAAC,GAAKJ,EAHNA,EAHoB,0CAazCK,EAA2CF,EAAA,CAC/CG,EACAF,IACW,CACX,IAAMG,EAAiBL,EAAuCE,CAAW,EAGzE,GACE,CAACA,GACD,CAACH,EAA2CG,CAAW,GACvD,CAACE,EAED,OAAOC,EAGT,IAAMC,EACJP,EAA2CG,CAAW,EAGxD,OAAII,EAAgB,SAASF,CAAgB,EACpCA,GAIT,QAAQ,KACN,qCAAqCA,CAAgB,+BAA+BF,CAAW,wBACvEI,EAAgB,KAAK,IAAI,CAAC,4BAA4BD,CAAc,GAC9F,EAEOA,EACT,EA9BiD,4CAwCpCE,EAAkCN,EAAA,CAC7CO,EACAN,IACG,CACH,IAAMO,EAA6BD,GAAS,2BACtCE,EAAyBR,EAC3BO,IAA6BP,CAAW,GAAG,iBAC3C,OAEEE,EAAmBM,GAErBV,EAAuCE,CAAW,EAMtD,OALyBC,EACvBC,EACAF,CACF,CAGF,EAlB+C","names":["STEPS","STEPS_WITHOUT_SELECT_COUNTRY","reviewStepAllowedEmploymentStatus","disabledInviteButtonEmploymentStatus","DEFAULT_VERSION","COUNTRY_CONTRACT_DETAILS_VERSION_ALLOWLIST","getDefaultContractDetailsSchemaVersion","__name","countryCode","getValidatedContractDetailsSchemaVersion","requestedVersion","defaultVersion","allowedVersions","getContractDetailsSchemaVersion","options","jsonSchemaVersionByCountry","countrySpecificVersion"]}
|
package/dist/chunk-LNWBGEKE.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as R,b as x,c as N,d as A}from"./chunk-5IHRUTHD.js";import{a as w,b as f}from"./chunk-CEM3JUSV.js";import{a as C}from"./chunk-YHD2RXJC.js";import{b as B}from"./chunk-H2OBH7SK.js";import{a as i,b as t,e as F}from"./chunk-GCWEOZBS.js";import{a as d}from"./chunk-P37U34EQ.js";import{MoreHorizontal as P}from"lucide-react";import{useState as U}from"react";import{Fragment as $,jsx as g,jsxs as T}from"react/jsx-runtime";function E({actions:e=[],className:n,label:l,"data-testid":a}){let[m,_]=U(!1);return T("div",{className:i("relative",n),children:[g(B,{"data-testid":a,variant:"ghost","aria-label":l,className:"h-8 w-8 p-0",onClick:()=>_(!m),children:g(P,{className:"h-4 w-4"})}),m&&T($,{children:[g("div",{className:"fixed inset-0 z-40",onClick:()=>_(!1)}),g("div",{className:"absolute right-0 top-1/2 mt-1 bg-white border border-gray-200 rounded-md shadow-lg z-50 min-w-[120px]",children:e.map((c,u)=>g("button",{"data-testid":`${a}-${c.label.toLowerCase().replace(" ","-")}`,className:i("w-full text-left px-2 py-1.5 text-sm hover:bg-gray-100",c.disabled&&"opacity-50 cursor-not-allowed"),onClick:()=>{c.onClick(),_(!1)},disabled:c.disabled,children:c.label},u))})]})]})}d(E,"ActionsDropdown");import{ChevronDown as O,Info as Z}from"lucide-react";import K from"react-flagpack";import{useState as z}from"react";import{jsx as j,jsxs as L}from"react/jsx-runtime";var I=d(({children:e,content:n})=>L("div",{className:"relative inline-block group",children:[e,L("div",{className:"absolute bottom-full right-0 mb-2 px-3 py-2 bg-gray-900 text-white text-xs rounded-md opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all duration-200 z-50 w-64 whitespace-normal break-words",children:[n,j("div",{className:"absolute top-full right-3 border-4 border-transparent border-t-gray-900"})]})]}),"BasicTooltip");import{Fragment as b,jsx as o,jsxs as r}from"react/jsx-runtime";var V={GB:"GB-UKM"},Y=d(({title:e,country:n,region:l,annualGrossSalary:a,onDelete:m,onExportPdf:_,onEdit:c})=>{let u=[{label:"Edit",onClick:c},{label:"Export",onClick:_},{label:"Delete",onClick:m}];return r("div",{className:"RemoteFlows__EstimationResults__Header flex justify-between",children:[r("div",{className:"flex flex-row items-center gap-6",children:[o("div",{className:"RemoteFlows__EstimationResultsHeader__FlagContainer flex h-16 w-16 items-center justify-center rounded-lg bg-[#F4F4F5]",children:o(K,{code:V[n.alpha_2_code]||n.alpha_2_code})}),r("div",{className:"space-y-1",children:[o("h2",{"data-testid":"estimation-results-header-title",className:"RemoteFlows__EstimationResultsHeader__Title text-lg font-medium leading-none text-[#181818]",children:e}),r("p",{className:"RemoteFlows__EstimationResultsHeader__Country text-xs text-[#71717A]",children:[n.name," ",l?` (${l.name})`:""]}),r("p",{"data-testid":"estimation-results-header-annual-gross-salary",className:"RemoteFlows__EstimationResultsHeader__AnnualGrossSalary text-xs text-[#71717A]",children:[o("span",{className:"text-[#181818]",children:"Employee annual gross salary:"})," ",a]})]})]}),o(E,{label:"Actions",className:"RemoteFlows__EstimationResults__ActionsDropdown",actions:u})]})},"EstimationResultsHeader"),q=d(()=>({steps:[{id:"add-employment-details",title:"Add employment details",description:"You add employee employments details."},{id:"invite-employee",title:"Invite employee",description:"Hire receives an email invitation from Remote to start the self-enrollment process."},{id:"verify-information",title:"Verify information",description:"Remote prepares the Employment Agreement and verifies all the information."},{id:"sign-contract",title:"Sign contract",description:"All parties sign the Employment Agreement and are ready to start. \u{1F389}"}],helpText:"For customers who accept Remote's Terms of Service (ToS), the employee onboarding timeline starts once the employee has been invited to the platform and completed self enrollment.",zendeskArticleId:w.employeeOnboardingTimeline}),"getOnboardingTimelineData");function J({minimumOnboardingDays:e,data:n,className:l}){return o(R,{type:"single",collapsible:!0,className:i("RemoteFlows__EstimationResults__OnboardingTimeline w-full",l),children:r(x,{value:"timeline",className:"RemoteFlows__OnboardingTimeline__AccordionItem border-border",children:[o(N,{className:"RemoteFlows__OnboardingTimeline__AccordionTrigger hover:no-underline px-0 py-4",children:r("div",{className:"flex items-center justify-between w-full",children:[o("span",{className:"RemoteFlows__OnboardingTimeline__Title text-base font-medium text-[#0F172A]",children:"Onboarding timeline"}),e!=null&&r("span",{className:"RemoteFlows__OnboardingTimeline__Description text-base text-muted-foreground mr-4",children:[e," days"]})]})}),r(A,{className:"px-0 pb-4",children:[o("ul",{className:"RemoteFlows__OnboardingTimeline__List list-disc list-inside space-y-2",children:n.steps.map(a=>r("li",{children:[o("strong",{className:"font-medium text-[#09090B]",children:a.title})," ","- ",a.description]},a.id))}),r("p",{className:"RemoteFlows__OnboardingTimeline__HelpText text-xs text-muted-foreground mt-4",children:[n.helpText,n.zendeskArticleId&&o(f,{zendeskId:n.zendeskArticleId,children:"Learn more"})]})]})]})})}d(J,"OnboardingTimeline");function Q({className:e,countryBenefitsUrl:n,countryGuideUrl:l,country:a}){return o(R,{type:"single",collapsible:!0,className:i("RemoteFlows__EstimationResults__HiringSection w-full",e),children:r(x,{value:"timeline",className:"RemoteFlows__HiringSection__AccordionItem border-border",children:[o(N,{className:"RemoteFlows__HiringSection__AccordionTrigger hover:no-underline px-0 py-4",children:o("div",{className:"flex items-center justify-between w-full",children:r("span",{className:"text-base font-medium text-[#0F172A]",children:["Hiring in ",a.name]})})}),o(A,{children:r("div",{className:"flex flex-col gap-1",children:[l&&o("a",{href:l,target:"_blank",className:"RemoteFlows__Link",children:"Explore our complete guide \u2197"}),n&&o("a",{href:n,target:"_blank",className:"RemoteFlows__Link",children:"Explore our available benefits \u2197"})]})})]})})}d(Q,"HiringSection");function W({isMultipleCurrency:e,className:n}){return r("div",{className:i("RemoteFlows__EstimationResults__Headers grid grid-cols-3 items-center",n),children:[o("span",{"aria-hidden":!0}),e?r(b,{children:[o("span",{className:"RemoteFlows__EstimationResults__Headers__Label",children:"Employee currency"}),o("span",{className:"RemoteFlows__EstimationResults__Headers__Label",children:"Employer currency"})]}):r(b,{children:[o("span",{}),o("span",{className:"RemoteFlows__EstimationResults__Headers__Label",children:"Amount"})]})]})}d(W,"EstimationHeaders");function S({label:e,amounts:n,className:l,children:a}){let[m,_]=z(!0);return r("div",{className:i("RemoteFlows__EstimationResults__Row",l),children:[r("div",{className:"RemoteFlows__EstimationRow__Grid grid grid-cols-3 items-center",children:[r("div",{className:"RemoteFlows__EstimationRow__LabelContainer flex items-center gap-2",children:[o("span",{className:i("RemoteFlows__EstimationRow__Title min-w-[140px] font-medium text-[#09090B]"),children:e}),o("button",{onClick:()=>_(!m),className:"RemoteFlows__EstimationRow__CollapseButton p-1 hover:bg-gray-100 rounded",children:o(O,{className:`h-4 w-4 text-muted-foreground transition-transform ${m?"rotate-180":""}`})})]}),Array.isArray(n)?n.map((c,u)=>o("span",{className:i("RemoteFlows__EstimationRow__RegionalAmount text-right font-medium text-[#09090B]"),children:c},u)):r(b,{children:[o("span",{}),o("span",{className:i("RemoteFlows__EstimationRow__EmployerAmount text-right font-medium text-[#09090B]"),children:n})]})]}),m&&a&&o("div",{className:"RemoteFlows__EstimationRow__CollapsibleContent mt-4",children:a})]})}d(S,"EstimationRow");function X({item:e,isMultipleCurrency:n,level:l=0}){let[a,m]=z(!1),_=e.children&&e.children.length>0,c=l>0,u=e.isCollapsible||_;return r("li",{className:i("RemoteFlows__BreakdownList__Item pb-3",c&&"pb-1"),children:[r("div",{className:i(n?"RemoteFlows__BreakdownList__Grid grid grid-cols-3 items-center justify-between":"RemoteFlows__BreakdownList__Grid grid grid-cols-2 items-center justify-between"),children:[r("div",{className:i("RemoteFlows__BreakdownList__LabelContainer flex items-center gap-2",c&&"pl-3"),children:[!c&&o("span",{className:"RemoteFlows__BreakdownList__Bullet w-1 h-1 bg-[#09090B] rounded-full flex-shrink-0","aria-hidden":"true"}),u?r("button",{onClick:()=>m(!a),className:"RemoteFlows__BreakdownList__CollapseButton flex items-center gap-2 hover:bg-gray-100 rounded p-1",children:[o("span",{className:i(c?"RemoteFlows__BreakdownList__Text--Nested text-xs text-[#71717A]":"RemoteFlows__BreakdownList__Text--NotNested text-sm text-[#09090B]"),children:e.label}),o(O,{className:`RemoteFlows__BreakdownList__ChevronDown h-3 w-3 text-muted-foreground transition-transform ${a?"rotate-180":""}`})]}):o("span",{className:i(c?"RemoteFlows__BreakdownList__Text--Nested text-xs text-[#71717A]":"RemoteFlows__BreakdownList__Text--NotNested text-sm text-[#09090B] p-1"),children:e.label}),e.tooltip&&o(I,{content:r(b,{children:[o("span",{dangerouslySetInnerHTML:{__html:F(e.tooltip)}})," ",e.zendeskId&&o(f,{zendeskId:Number(e.zendeskId),children:"Learn more"})]}),children:o("button",{className:"RemoteFlows__BreakdownList__InfoButton p-1 hover:bg-gray-100 rounded",children:o(Z,{className:i("RemoteFlows__BreakdownList__InfoButton__Icon text-muted-foreground",c?"h-3 w-3":"h-4 w-4")})})})]}),n?r(b,{children:[o("span",{"data-testid":e.dataSelector&&e.dataSelector+"-employee-amount",className:i("RemoteFlows__BreakdownList__RegionalAmountText text-sm text-right",c?"RemoteFlows__BreakdownList__RegionalAmountText--Nested text-[#71717A]":"RemoteFlows__BreakdownList__RegionalAmountText--NotNested text-[#09090B]"),children:e.regionalAmount||"\u2014"}),o("span",{"data-testid":e.dataSelector&&e.dataSelector+"-employer-amount",className:i("RemoteFlows__BreakdownList__EmployerAmountText text-sm text-right",c?"RemoteFlows__BreakdownList__EmployerAmountText--Nested text-[#71717A]":"RemoteFlows__BreakdownList__EmployerAmountText--NotNested text-[#09090B]"),children:e.employerAmount||"\u2014"})]}):o("span",{"data-testid":e.dataSelector,className:i("RemoteFlows__BreakdownList__RegionalAmountText text-sm text-right",c?"RemoteFlows__BreakdownList__RegionalAmountText--Nested text-[#71717A]":"RemoteFlows__BreakdownList__RegionalAmountText--NotNested text-[#09090B]"),children:e.regionalAmount||"\u2014"})]}),_&&a&&o("div",{className:"mt-1",children:o(h,{items:e.children,isMultipleCurrency:n,level:l+1})})]})}d(X,"BreakdownListItem");function h({items:e,isMultipleCurrency:n,className:l,level:a}){return o("ul",{className:i("RemoteFlows__BreakdownList list-none",l),children:e.map((m,_)=>o(X,{item:m,isMultipleCurrency:n,level:a},_))})}d(h,"BreakdownList");var Re=d(({estimation:e,title:n,components:l,onDelete:a,onExportPdf:m,onEdit:_})=>{let c=l?.HiringSection||Q,u=l?.OnboardingTimeline||J,H=l?.Header||Y,v=l?.Footer,D=q(),p=e.employer_currency_costs.currency.code!==e.regional_currency_costs.currency.code,k=e.employer_currency_costs.monthly_management_fee,M=e.region.code!==e.country.code,G=t(e.regional_currency_costs.annual_gross_salary,e.regional_currency_costs.currency.symbol);return r(C,{className:"RemoteFlows__EstimationResults__Card p-10",children:[o("div",{className:"RemoteFlows__Separator",children:o(H,{title:n,annualGrossSalary:G,region:M?e.region:void 0,country:e.country,onDelete:a,onExportPdf:m,onEdit:_})}),r("div",{className:"RemoteFlows__Separator",children:[o(W,{isMultipleCurrency:p,className:"mb-3"}),o(S,{label:"Monthly total cost",amounts:p?[t(e.regional_currency_costs.monthly_total,e.regional_currency_costs.currency.symbol),t(e.employer_currency_costs.monthly_total,e.employer_currency_costs.currency.symbol)]:t(e.regional_currency_costs.monthly_total,e.regional_currency_costs.currency.symbol),children:o(h,{items:[{label:"Gross monthly salary",regionalAmount:t(e.regional_currency_costs.monthly_gross_salary,e.regional_currency_costs.currency.symbol),employerAmount:t(e.employer_currency_costs.monthly_gross_salary,e.employer_currency_costs.currency.symbol),zendeskId:w.extraPayments.toString(),tooltip:"This country respects extra payments on top of the gross salary."},{label:"Mandatory employer costs",regionalAmount:t(e.regional_currency_costs.monthly_contributions_total,e.regional_currency_costs.currency.symbol),employerAmount:t(e.employer_currency_costs.monthly_contributions_total,e.employer_currency_costs.currency.symbol),children:e.employer_currency_costs.monthly_contributions_breakdown?.map((s,y)=>({label:s.name,regionalAmount:t(e.regional_currency_costs.monthly_contributions_breakdown?.[y]?.amount,e.regional_currency_costs.currency.symbol),employerAmount:t(s.amount,e.employer_currency_costs.currency.symbol),zendeskId:s.zendesk_article_id||void 0,tooltip:s.description||void 0}))||[]},{label:"Benefits",regionalAmount:t(e.regional_currency_costs.monthly_benefits_total,e.regional_currency_costs.currency.symbol),employerAmount:t(e.employer_currency_costs.monthly_benefits_total,e.employer_currency_costs.currency.symbol),children:e.employer_currency_costs.monthly_benefits_breakdown?.map((s,y)=>({label:s.name,regionalAmount:t(e.regional_currency_costs.monthly_benefits_breakdown?.[y]?.amount,e.regional_currency_costs.currency.symbol),employerAmount:t(s.amount,e.employer_currency_costs.currency.symbol),zendeskId:s.zendesk_article_id||void 0,tooltip:s.description||void 0}))||[]},...k?[{label:"Monthly fee",regionalAmount:t(e.regional_currency_costs.monthly_management_fee,e.regional_currency_costs.currency.symbol),employerAmount:t(e.employer_currency_costs.monthly_management_fee,e.employer_currency_costs.currency.symbol),tooltip:"Discounts may be available based on your commitment and team size. Speak to your account or customer success manager to learn more."}]:[]],isMultipleCurrency:p})})]}),o("div",{className:"RemoteFlows__Separator",children:o(S,{label:"Annual total cost",amounts:p?[t(e.regional_currency_costs.annual_total,e.regional_currency_costs.currency.symbol),t(e.employer_currency_costs.annual_total,e.employer_currency_costs.currency.symbol)]:t(e.regional_currency_costs.annual_total,e.regional_currency_costs.currency.symbol),children:o(h,{items:[{label:"Gross annual salary",dataSelector:"annual-gross-salary",regionalAmount:t(e.regional_currency_costs.annual_gross_salary,e.regional_currency_costs.currency.symbol),employerAmount:t(e.employer_currency_costs.annual_gross_salary,e.employer_currency_costs.currency.symbol)},{label:"Mandatory employer costs",regionalAmount:t(e.regional_currency_costs.annual_contributions_total,e.regional_currency_costs.currency.symbol),employerAmount:t(e.employer_currency_costs.annual_contributions_total,e.employer_currency_costs.currency.symbol),children:e.employer_currency_costs.annual_contributions_breakdown?.map((s,y)=>({label:s.name,regionalAmount:t(e.regional_currency_costs.annual_contributions_breakdown?.[y]?.amount,e.regional_currency_costs.currency.symbol),employerAmount:t(s.amount,e.employer_currency_costs.currency.symbol),zendeskId:s.zendesk_article_id||void 0,tooltip:s.description||void 0}))||[]},{label:"Benefits",regionalAmount:t(e.regional_currency_costs.annual_benefits_total,e.regional_currency_costs.currency.symbol),employerAmount:t(e.employer_currency_costs.annual_benefits_total,e.employer_currency_costs.currency.symbol),children:e.employer_currency_costs.annual_benefits_breakdown?.map((s,y)=>({label:s.name,regionalAmount:t(e.regional_currency_costs.annual_benefits_breakdown?.[y]?.amount,e.regional_currency_costs.currency.symbol),employerAmount:t(s.amount,e.employer_currency_costs.currency.symbol),zendeskId:s.zendesk_article_id||void 0,tooltip:s.description||void 0}))||[]},{label:"Extra statutory payments",regionalAmount:t(e.regional_currency_costs.extra_statutory_payments_total,e.regional_currency_costs.currency.symbol),employerAmount:t(e.employer_currency_costs.extra_statutory_payments_total,e.employer_currency_costs.currency.symbol),children:e.employer_currency_costs.extra_statutory_payments_breakdown?.map((s,y)=>({label:s.name,regionalAmount:t(e.regional_currency_costs.extra_statutory_payments_breakdown?.[y]?.amount,e.regional_currency_costs.currency.symbol),employerAmount:t(s.amount,e.employer_currency_costs.currency.symbol),zendeskId:s.zendesk_article_id||void 0,tooltip:s.description||void 0}))||[]},...k?[{label:"Annual fee",regionalAmount:t(e.regional_currency_costs.annual_management_fee,e.regional_currency_costs.currency.symbol),employerAmount:t(e.employer_currency_costs.annual_management_fee,e.employer_currency_costs.currency.symbol),tooltip:"Discounts may be available based on your commitment and team size. Speak to your account or customer success manager to learn more."}]:[]],isMultipleCurrency:p})})}),o("div",{className:"RemoteFlows__Separator",children:o(u,{minimumOnboardingDays:e.minimum_onboarding_time,data:D})}),o(c,{countryBenefitsUrl:e.country_benefits_details_url,countryGuideUrl:e.country_guide_url,country:e.country}),v&&o(v,{})]})},"EstimationResults");export{Re as a};
|
|
2
|
-
//# sourceMappingURL=chunk-LNWBGEKE.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/shared/actions-dropdown/ActionsDropdown.tsx","../src/flows/CostCalculator/EstimationResults/EstimationResults.tsx","../src/components/ui/basic-tooltip.tsx"],"sourcesContent":["import { Button } from '@/src/components/ui/button';\nimport { cn } from '@/src/lib/utils';\nimport { MoreHorizontal } from 'lucide-react';\nimport { useState, type ReactNode } from 'react';\n\nexport interface DropdownAction {\n label: string;\n icon?: ReactNode;\n onClick: () => void;\n separator?: boolean;\n disabled?: boolean;\n}\n\ninterface ActionsDropdownProps {\n actions?: DropdownAction[];\n label?: string;\n className?: string;\n 'data-testid'?: string;\n}\n\nexport function ActionsDropdown({\n actions = [],\n className,\n label,\n 'data-testid': dataSelector,\n}: ActionsDropdownProps) {\n const [isOpen, setIsOpen] = useState(false);\n\n return (\n <div className={cn('relative', className)}>\n <Button\n data-testid={dataSelector}\n variant='ghost'\n aria-label={label}\n className='h-8 w-8 p-0'\n onClick={() => setIsOpen(!isOpen)}\n >\n <MoreHorizontal className='h-4 w-4' />\n </Button>\n\n {isOpen && (\n <>\n <div\n className='fixed inset-0 z-40'\n onClick={() => setIsOpen(false)}\n />\n <div className='absolute right-0 top-1/2 mt-1 bg-white border border-gray-200 rounded-md shadow-lg z-50 min-w-[120px]'>\n {actions.map((action, index) => (\n <button\n key={index}\n data-testid={`${dataSelector}-${action.label.toLowerCase().replace(' ', '-')}`}\n className={cn(\n 'w-full text-left px-2 py-1.5 text-sm hover:bg-gray-100',\n action.disabled && 'opacity-50 cursor-not-allowed',\n )}\n onClick={() => {\n action.onClick();\n setIsOpen(false);\n }}\n disabled={action.disabled}\n >\n {action.label}\n </button>\n ))}\n </div>\n </>\n )}\n </div>\n );\n}\n","import { MinimalCountry, MinimalRegion } from '@/src/client';\nimport { ActionsDropdown } from '@/src/components/shared/actions-dropdown/ActionsDropdown';\nimport { Card } from '@/src/components/ui/card';\nimport { ChevronDown, Info } from 'lucide-react';\nimport Flag from 'react-flagpack';\nimport { useState } from 'react';\nimport {\n Accordion,\n AccordionContent,\n AccordionItem,\n AccordionTrigger,\n} from '@/src/components/ui/accordion';\nimport { cn, formatCurrency, sanitizeHtml } from '@/src/lib/utils';\nimport { ZendeskTriggerButton } from '@/src/components/shared/zendesk-drawer/ZendeskTriggerButton';\nimport { zendeskArticles } from '@/src/components/shared/zendesk-drawer/utils';\nimport { BasicTooltip } from '@/src/components/ui/basic-tooltip';\nimport { CostCalculatorEstimation } from '@/src/flows/CostCalculator/types';\n\nconst FLAG_CODE_MAPPING: Record<string, string> = {\n GB: 'GB-UKM',\n};\n\nconst EstimationResultsHeader = ({\n title,\n country,\n region,\n annualGrossSalary,\n onDelete,\n onExportPdf,\n onEdit,\n}: {\n title: string;\n country: MinimalCountry;\n region?: MinimalRegion;\n annualGrossSalary: string;\n onDelete: () => void;\n onExportPdf: () => void;\n onEdit: () => void;\n}) => {\n const actions = [\n {\n label: 'Edit',\n onClick: onEdit,\n },\n {\n label: 'Export',\n onClick: onExportPdf,\n },\n {\n label: 'Delete',\n onClick: onDelete,\n },\n ];\n return (\n <div className='RemoteFlows__EstimationResults__Header flex justify-between'>\n <div className='flex flex-row items-center gap-6'>\n <div className='RemoteFlows__EstimationResultsHeader__FlagContainer flex h-16 w-16 items-center justify-center rounded-lg bg-[#F4F4F5]'>\n <Flag\n code={\n FLAG_CODE_MAPPING[country.alpha_2_code] || country.alpha_2_code\n }\n />\n </div>\n <div className='space-y-1'>\n <h2\n data-testid='estimation-results-header-title'\n className='RemoteFlows__EstimationResultsHeader__Title text-lg font-medium leading-none text-[#181818]'\n >\n {title}\n </h2>\n <p className='RemoteFlows__EstimationResultsHeader__Country text-xs text-[#71717A]'>\n {country.name} {region ? ` (${region.name})` : ''}\n </p>\n <p\n data-testid='estimation-results-header-annual-gross-salary'\n className='RemoteFlows__EstimationResultsHeader__AnnualGrossSalary text-xs text-[#71717A]'\n >\n <span className='text-[#181818]'>\n Employee annual gross salary:\n </span>{' '}\n {annualGrossSalary}\n </p>\n </div>\n </div>\n <ActionsDropdown\n label='Actions'\n className='RemoteFlows__EstimationResults__ActionsDropdown'\n actions={actions}\n />\n </div>\n );\n};\n\ninterface OnboardingTimelineStep {\n title: string;\n description: string;\n id: string;\n}\n\ninterface OnboardingTimelineData {\n steps: OnboardingTimelineStep[];\n helpText: string;\n zendeskArticleId?: number;\n}\n\nconst getOnboardingTimelineData = (): OnboardingTimelineData => {\n return {\n steps: [\n {\n id: 'add-employment-details',\n title: 'Add employment details',\n description: 'You add employee employments details.',\n },\n {\n id: 'invite-employee',\n title: 'Invite employee',\n description:\n 'Hire receives an email invitation from Remote to start the self-enrollment process.',\n },\n {\n id: 'verify-information',\n title: 'Verify information',\n description:\n 'Remote prepares the Employment Agreement and verifies all the information.',\n },\n {\n id: 'sign-contract',\n title: 'Sign contract',\n description:\n 'All parties sign the Employment Agreement and are ready to start. 🎉',\n },\n ],\n helpText:\n \"For customers who accept Remote's Terms of Service (ToS), the employee onboarding timeline starts once the employee has been invited to the platform and completed self enrollment.\",\n zendeskArticleId: zendeskArticles.employeeOnboardingTimeline,\n };\n};\n\nfunction OnboardingTimeline({\n minimumOnboardingDays,\n data,\n className,\n}: {\n minimumOnboardingDays: number | null;\n data: OnboardingTimelineData;\n className?: string;\n}) {\n return (\n <Accordion\n type='single'\n collapsible\n className={cn(\n 'RemoteFlows__EstimationResults__OnboardingTimeline w-full',\n className,\n )}\n >\n <AccordionItem\n value='timeline'\n className='RemoteFlows__OnboardingTimeline__AccordionItem border-border'\n >\n <AccordionTrigger className='RemoteFlows__OnboardingTimeline__AccordionTrigger hover:no-underline px-0 py-4'>\n <div className='flex items-center justify-between w-full'>\n <span className='RemoteFlows__OnboardingTimeline__Title text-base font-medium text-[#0F172A]'>\n Onboarding timeline\n </span>\n {minimumOnboardingDays != null && (\n <span className='RemoteFlows__OnboardingTimeline__Description text-base text-muted-foreground mr-4'>\n {minimumOnboardingDays} days\n </span>\n )}\n </div>\n </AccordionTrigger>\n <AccordionContent className='px-0 pb-4'>\n <ul className='RemoteFlows__OnboardingTimeline__List list-disc list-inside space-y-2'>\n {data.steps.map((step) => (\n <li key={step.id}>\n <strong className='font-medium text-[#09090B]'>\n {step.title}\n </strong>{' '}\n - {step.description}\n </li>\n ))}\n </ul>\n <p className='RemoteFlows__OnboardingTimeline__HelpText text-xs text-muted-foreground mt-4'>\n {data.helpText}\n {data.zendeskArticleId && (\n <ZendeskTriggerButton zendeskId={data.zendeskArticleId}>\n Learn more\n </ZendeskTriggerButton>\n )}\n </p>\n </AccordionContent>\n </AccordionItem>\n </Accordion>\n );\n}\n\nfunction HiringSection({\n className,\n countryBenefitsUrl,\n countryGuideUrl,\n country,\n}: {\n className?: string;\n countryBenefitsUrl: string;\n countryGuideUrl: string;\n country: MinimalCountry;\n}) {\n return (\n <Accordion\n type='single'\n collapsible\n className={cn(\n 'RemoteFlows__EstimationResults__HiringSection w-full',\n className,\n )}\n >\n <AccordionItem\n value='timeline'\n className='RemoteFlows__HiringSection__AccordionItem border-border'\n >\n <AccordionTrigger className='RemoteFlows__HiringSection__AccordionTrigger hover:no-underline px-0 py-4'>\n <div className='flex items-center justify-between w-full'>\n <span className='text-base font-medium text-[#0F172A]'>\n Hiring in {country.name}\n </span>\n </div>\n </AccordionTrigger>\n <AccordionContent>\n <div className='flex flex-col gap-1'>\n {countryGuideUrl && (\n <a\n href={countryGuideUrl}\n target='_blank'\n className='RemoteFlows__Link'\n >\n Explore our complete guide ↗\n </a>\n )}\n {countryBenefitsUrl && (\n <a\n href={countryBenefitsUrl}\n target='_blank'\n className='RemoteFlows__Link'\n >\n Explore our available benefits ↗\n </a>\n )}\n </div>\n </AccordionContent>\n </AccordionItem>\n </Accordion>\n );\n}\n\nfunction EstimationHeaders({\n isMultipleCurrency,\n className,\n}: {\n isMultipleCurrency: boolean;\n className?: string;\n}) {\n return (\n <div\n className={cn(\n 'RemoteFlows__EstimationResults__Headers grid grid-cols-3 items-center',\n className,\n )}\n >\n <span aria-hidden />\n {isMultipleCurrency ? (\n <>\n <span className='RemoteFlows__EstimationResults__Headers__Label'>\n Employee currency\n </span>\n <span className='RemoteFlows__EstimationResults__Headers__Label'>\n Employer currency\n </span>\n </>\n ) : (\n <>\n <span></span>\n <span className='RemoteFlows__EstimationResults__Headers__Label'>\n Amount\n </span>\n </>\n )}\n </div>\n );\n}\n\nfunction EstimationRow({\n label,\n amounts,\n className,\n children,\n}: {\n label: string | React.ReactNode;\n amounts: string | string[];\n className?: string;\n children?: React.ReactNode;\n}) {\n const [isOpen, setIsOpen] = useState(true);\n\n return (\n <div className={cn('RemoteFlows__EstimationResults__Row', className)}>\n <div className='RemoteFlows__EstimationRow__Grid grid grid-cols-3 items-center'>\n <div className='RemoteFlows__EstimationRow__LabelContainer flex items-center gap-2'>\n <span\n className={cn(\n 'RemoteFlows__EstimationRow__Title min-w-[140px] font-medium text-[#09090B]',\n )}\n >\n {label}\n </span>\n <button\n onClick={() => setIsOpen(!isOpen)}\n className='RemoteFlows__EstimationRow__CollapseButton p-1 hover:bg-gray-100 rounded'\n >\n <ChevronDown\n className={`h-4 w-4 text-muted-foreground transition-transform ${\n isOpen ? 'rotate-180' : ''\n }`}\n />\n </button>\n </div>\n\n {Array.isArray(amounts) ? (\n amounts.map((amount, index) => (\n <span\n key={index}\n className={cn(\n 'RemoteFlows__EstimationRow__RegionalAmount text-right font-medium text-[#09090B]',\n )}\n >\n {amount}\n </span>\n ))\n ) : (\n <>\n <span></span>\n <span\n className={cn(\n 'RemoteFlows__EstimationRow__EmployerAmount text-right font-medium text-[#09090B]',\n )}\n >\n {amounts}\n </span>\n </>\n )}\n </div>\n\n {/* Collapsible content */}\n {isOpen && children && (\n <div className='RemoteFlows__EstimationRow__CollapsibleContent mt-4'>\n {children}\n </div>\n )}\n </div>\n );\n}\n\ninterface BreakdownItem {\n label: string;\n tooltip?: string;\n dataSelector?: string;\n regionalAmount?: string;\n employerAmount?: string;\n description?: string;\n zendeskId?: string;\n isCollapsible?: boolean;\n children?: BreakdownItem[];\n}\n\nfunction BreakdownListItem({\n item,\n isMultipleCurrency,\n level = 0,\n}: {\n item: BreakdownItem;\n isMultipleCurrency: boolean;\n level?: number;\n}) {\n const [isOpen, setIsOpen] = useState(false);\n const hasChildren = item.children && item.children.length > 0;\n const isNested = level > 0;\n const isCollapsible = item.isCollapsible || hasChildren;\n\n return (\n <li\n className={cn(\n 'RemoteFlows__BreakdownList__Item pb-3',\n isNested && 'pb-1',\n )}\n >\n <div\n className={cn(\n isMultipleCurrency\n ? 'RemoteFlows__BreakdownList__Grid grid grid-cols-3 items-center justify-between'\n : 'RemoteFlows__BreakdownList__Grid grid grid-cols-2 items-center justify-between',\n )}\n >\n <div\n className={cn(\n 'RemoteFlows__BreakdownList__LabelContainer flex items-center gap-2',\n isNested && 'pl-3',\n )}\n >\n {!isNested && (\n <span\n className='RemoteFlows__BreakdownList__Bullet w-1 h-1 bg-[#09090B] rounded-full flex-shrink-0'\n aria-hidden='true'\n />\n )}\n\n {isCollapsible ? (\n <button\n onClick={() => setIsOpen(!isOpen)}\n className='RemoteFlows__BreakdownList__CollapseButton flex items-center gap-2 hover:bg-gray-100 rounded p-1'\n >\n <span\n className={cn(\n isNested\n ? 'RemoteFlows__BreakdownList__Text--Nested text-xs text-[#71717A]'\n : 'RemoteFlows__BreakdownList__Text--NotNested text-sm text-[#09090B]',\n )}\n >\n {item.label}\n </span>\n <ChevronDown\n className={`RemoteFlows__BreakdownList__ChevronDown h-3 w-3 text-muted-foreground transition-transform ${\n isOpen ? 'rotate-180' : ''\n }`}\n />\n </button>\n ) : (\n <span\n className={cn(\n isNested\n ? 'RemoteFlows__BreakdownList__Text--Nested text-xs text-[#71717A]'\n : 'RemoteFlows__BreakdownList__Text--NotNested text-sm text-[#09090B] p-1',\n )}\n >\n {item.label}\n </span>\n )}\n\n {item.tooltip && (\n <BasicTooltip\n content={\n <>\n <span\n dangerouslySetInnerHTML={{\n __html: sanitizeHtml(item.tooltip),\n }}\n />{' '}\n {item.zendeskId && (\n <ZendeskTriggerButton zendeskId={Number(item.zendeskId)}>\n Learn more\n </ZendeskTriggerButton>\n )}\n </>\n }\n >\n <button className='RemoteFlows__BreakdownList__InfoButton p-1 hover:bg-gray-100 rounded'>\n <Info\n className={cn(\n 'RemoteFlows__BreakdownList__InfoButton__Icon text-muted-foreground',\n isNested ? 'h-3 w-3' : 'h-4 w-4',\n )}\n />\n </button>\n </BasicTooltip>\n )}\n </div>\n\n {isMultipleCurrency ? (\n <>\n <span\n data-testid={\n item.dataSelector && item.dataSelector + '-employee-amount'\n }\n className={cn(\n 'RemoteFlows__BreakdownList__RegionalAmountText text-sm text-right',\n isNested\n ? 'RemoteFlows__BreakdownList__RegionalAmountText--Nested text-[#71717A]'\n : 'RemoteFlows__BreakdownList__RegionalAmountText--NotNested text-[#09090B]',\n )}\n >\n {item.regionalAmount || '—'}\n </span>\n <span\n data-testid={\n item.dataSelector && item.dataSelector + '-employer-amount'\n }\n className={cn(\n 'RemoteFlows__BreakdownList__EmployerAmountText text-sm text-right',\n isNested\n ? 'RemoteFlows__BreakdownList__EmployerAmountText--Nested text-[#71717A]'\n : 'RemoteFlows__BreakdownList__EmployerAmountText--NotNested text-[#09090B]',\n )}\n >\n {item.employerAmount || '—'}\n </span>\n </>\n ) : (\n <span\n data-testid={item.dataSelector}\n className={cn(\n 'RemoteFlows__BreakdownList__RegionalAmountText text-sm text-right',\n isNested\n ? 'RemoteFlows__BreakdownList__RegionalAmountText--Nested text-[#71717A]'\n : 'RemoteFlows__BreakdownList__RegionalAmountText--NotNested text-[#09090B]',\n )}\n >\n {item.regionalAmount || '—'}\n </span>\n )}\n </div>\n\n {hasChildren && isOpen && (\n <div className='mt-1'>\n <BreakdownList\n items={item.children!}\n isMultipleCurrency={isMultipleCurrency}\n level={level + 1}\n />\n </div>\n )}\n </li>\n );\n}\n\ninterface BreakdownListProps {\n items: BreakdownItem[];\n isMultipleCurrency: boolean;\n className?: string;\n level?: number;\n}\n\nfunction BreakdownList({\n items,\n isMultipleCurrency,\n className,\n level,\n}: BreakdownListProps) {\n return (\n <ul className={cn('RemoteFlows__BreakdownList list-none', className)}>\n {items.map((item, index) => (\n <BreakdownListItem\n key={index}\n item={item}\n isMultipleCurrency={isMultipleCurrency}\n level={level}\n />\n ))}\n </ul>\n );\n}\n\ntype EstimationResultsComponents = {\n HiringSection?: React.ComponentType<{\n country: MinimalCountry;\n countryBenefitsUrl: string;\n countryGuideUrl: string;\n }>;\n OnboardingTimeline?: React.ComponentType<{\n minimumOnboardingDays: number | null;\n data: OnboardingTimelineData;\n }>;\n Header?: React.ComponentType<{\n title: string;\n region?: MinimalRegion;\n country: MinimalCountry;\n onDelete: () => void;\n onExportPdf: () => void;\n }>;\n Footer?: React.ComponentType;\n};\n\ntype EstimationResultsProps = {\n estimation: CostCalculatorEstimation;\n title: string;\n components?: EstimationResultsComponents;\n onDelete: () => void;\n onExportPdf: () => void;\n onEdit: () => void;\n};\n\nexport const EstimationResults = ({\n estimation,\n title,\n components,\n onDelete,\n onExportPdf,\n onEdit,\n}: EstimationResultsProps) => {\n const CustomHiringSection = components?.HiringSection || HiringSection;\n const CustomOnboardingTimeline =\n components?.OnboardingTimeline || OnboardingTimeline;\n const CustomHeader = components?.Header || EstimationResultsHeader;\n const CustomFooter = components?.Footer;\n\n const onboardingTimelineData = getOnboardingTimelineData();\n\n const isMultipleCurrency =\n estimation.employer_currency_costs.currency.code !==\n estimation.regional_currency_costs.currency.code;\n\n const hasManagementFee =\n estimation.employer_currency_costs.monthly_management_fee;\n\n const hasRegion = estimation.region.code !== estimation.country.code;\n\n const formattedSalary = formatCurrency(\n estimation.regional_currency_costs.annual_gross_salary,\n estimation.regional_currency_costs.currency.symbol,\n );\n\n return (\n <Card className='RemoteFlows__EstimationResults__Card p-10'>\n <div className='RemoteFlows__Separator'>\n <CustomHeader\n title={title}\n annualGrossSalary={formattedSalary}\n region={hasRegion ? estimation.region : undefined}\n country={estimation.country}\n onDelete={onDelete}\n onExportPdf={onExportPdf}\n onEdit={onEdit}\n />\n </div>\n <div className='RemoteFlows__Separator'>\n <EstimationHeaders\n isMultipleCurrency={isMultipleCurrency}\n className='mb-3'\n />\n <EstimationRow\n label='Monthly total cost'\n amounts={\n isMultipleCurrency\n ? [\n formatCurrency(\n estimation.regional_currency_costs.monthly_total,\n estimation.regional_currency_costs.currency.symbol,\n ),\n formatCurrency(\n estimation.employer_currency_costs.monthly_total,\n estimation.employer_currency_costs.currency.symbol,\n ),\n ]\n : formatCurrency(\n estimation.regional_currency_costs.monthly_total,\n estimation.regional_currency_costs.currency.symbol,\n )\n }\n >\n <BreakdownList\n items={[\n {\n label: 'Gross monthly salary',\n regionalAmount: formatCurrency(\n estimation.regional_currency_costs.monthly_gross_salary,\n estimation.regional_currency_costs.currency.symbol,\n ),\n employerAmount: formatCurrency(\n estimation.employer_currency_costs.monthly_gross_salary,\n estimation.employer_currency_costs.currency.symbol,\n ),\n zendeskId: zendeskArticles.extraPayments.toString(),\n tooltip:\n 'This country respects extra payments on top of the gross salary.',\n },\n {\n label: 'Mandatory employer costs',\n regionalAmount: formatCurrency(\n estimation.regional_currency_costs\n .monthly_contributions_total,\n estimation.regional_currency_costs.currency.symbol,\n ),\n employerAmount: formatCurrency(\n estimation.employer_currency_costs\n .monthly_contributions_total,\n estimation.employer_currency_costs.currency.symbol,\n ),\n children:\n estimation.employer_currency_costs.monthly_contributions_breakdown?.map(\n (item, index) => {\n return {\n label: item.name,\n regionalAmount: formatCurrency(\n estimation.regional_currency_costs\n .monthly_contributions_breakdown?.[index]?.amount,\n estimation.regional_currency_costs.currency.symbol,\n ),\n employerAmount: formatCurrency(\n item.amount,\n estimation.employer_currency_costs.currency.symbol,\n ),\n zendeskId: item.zendesk_article_id || undefined,\n tooltip: item.description || undefined,\n };\n },\n ) || [],\n },\n {\n label: 'Benefits',\n regionalAmount: formatCurrency(\n estimation.regional_currency_costs.monthly_benefits_total,\n estimation.regional_currency_costs.currency.symbol,\n ),\n employerAmount: formatCurrency(\n estimation.employer_currency_costs.monthly_benefits_total,\n estimation.employer_currency_costs.currency.symbol,\n ),\n children:\n estimation.employer_currency_costs.monthly_benefits_breakdown?.map(\n (item, index) => ({\n label: item.name,\n regionalAmount: formatCurrency(\n estimation.regional_currency_costs\n .monthly_benefits_breakdown?.[index]?.amount,\n estimation.regional_currency_costs.currency.symbol,\n ),\n employerAmount: formatCurrency(\n item.amount,\n estimation.employer_currency_costs.currency.symbol,\n ),\n zendeskId: item.zendesk_article_id || undefined,\n tooltip: item.description || undefined,\n }),\n ) || [],\n },\n ...(hasManagementFee\n ? [\n {\n label: 'Monthly fee',\n regionalAmount: formatCurrency(\n estimation.regional_currency_costs\n .monthly_management_fee,\n estimation.regional_currency_costs.currency.symbol,\n ),\n employerAmount: formatCurrency(\n estimation.employer_currency_costs\n .monthly_management_fee,\n estimation.employer_currency_costs.currency.symbol,\n ),\n tooltip:\n 'Discounts may be available based on your commitment and team size. Speak to your account or customer success manager to learn more.',\n },\n ]\n : []),\n ]}\n isMultipleCurrency={isMultipleCurrency}\n />\n </EstimationRow>\n </div>\n <div className='RemoteFlows__Separator'>\n <EstimationRow\n label='Annual total cost'\n amounts={\n isMultipleCurrency\n ? [\n formatCurrency(\n estimation.regional_currency_costs.annual_total,\n estimation.regional_currency_costs.currency.symbol,\n ),\n formatCurrency(\n estimation.employer_currency_costs.annual_total,\n estimation.employer_currency_costs.currency.symbol,\n ),\n ]\n : formatCurrency(\n estimation.regional_currency_costs.annual_total,\n estimation.regional_currency_costs.currency.symbol,\n )\n }\n >\n <BreakdownList\n items={[\n {\n label: 'Gross annual salary',\n dataSelector: 'annual-gross-salary',\n regionalAmount: formatCurrency(\n estimation.regional_currency_costs.annual_gross_salary,\n estimation.regional_currency_costs.currency.symbol,\n ),\n employerAmount: formatCurrency(\n estimation.employer_currency_costs.annual_gross_salary,\n estimation.employer_currency_costs.currency.symbol,\n ),\n },\n {\n label: 'Mandatory employer costs',\n regionalAmount: formatCurrency(\n estimation.regional_currency_costs.annual_contributions_total,\n estimation.regional_currency_costs.currency.symbol,\n ),\n employerAmount: formatCurrency(\n estimation.employer_currency_costs.annual_contributions_total,\n estimation.employer_currency_costs.currency.symbol,\n ),\n children:\n estimation.employer_currency_costs.annual_contributions_breakdown?.map(\n (item, index) => ({\n label: item.name,\n regionalAmount: formatCurrency(\n estimation.regional_currency_costs\n .annual_contributions_breakdown?.[index]?.amount,\n estimation.regional_currency_costs.currency.symbol,\n ),\n employerAmount: formatCurrency(\n item.amount,\n estimation.employer_currency_costs.currency.symbol,\n ),\n zendeskId: item.zendesk_article_id || undefined,\n tooltip: item.description || undefined,\n }),\n ) || [],\n },\n {\n label: 'Benefits',\n regionalAmount: formatCurrency(\n estimation.regional_currency_costs.annual_benefits_total,\n estimation.regional_currency_costs.currency.symbol,\n ),\n employerAmount: formatCurrency(\n estimation.employer_currency_costs.annual_benefits_total,\n estimation.employer_currency_costs.currency.symbol,\n ),\n children:\n estimation.employer_currency_costs.annual_benefits_breakdown?.map(\n (item, index) => ({\n label: item.name,\n regionalAmount: formatCurrency(\n estimation.regional_currency_costs\n .annual_benefits_breakdown?.[index]?.amount,\n estimation.regional_currency_costs.currency.symbol,\n ),\n employerAmount: formatCurrency(\n item.amount,\n estimation.employer_currency_costs.currency.symbol,\n ),\n zendeskId: item.zendesk_article_id || undefined,\n tooltip: item.description || undefined,\n }),\n ) || [],\n },\n {\n label: 'Extra statutory payments',\n regionalAmount: formatCurrency(\n estimation.regional_currency_costs\n .extra_statutory_payments_total,\n estimation.regional_currency_costs.currency.symbol,\n ),\n employerAmount: formatCurrency(\n estimation.employer_currency_costs\n .extra_statutory_payments_total,\n estimation.employer_currency_costs.currency.symbol,\n ),\n children:\n estimation.employer_currency_costs.extra_statutory_payments_breakdown?.map(\n (item, index) => ({\n label: item.name,\n regionalAmount: formatCurrency(\n estimation.regional_currency_costs\n .extra_statutory_payments_breakdown?.[index]?.amount,\n estimation.regional_currency_costs.currency.symbol,\n ),\n employerAmount: formatCurrency(\n item.amount,\n estimation.employer_currency_costs.currency.symbol,\n ),\n zendeskId: item.zendesk_article_id || undefined,\n tooltip: item.description || undefined,\n }),\n ) || [],\n },\n ...(hasManagementFee\n ? [\n {\n label: 'Annual fee',\n regionalAmount: formatCurrency(\n estimation.regional_currency_costs\n .annual_management_fee,\n estimation.regional_currency_costs.currency.symbol,\n ),\n employerAmount: formatCurrency(\n estimation.employer_currency_costs\n .annual_management_fee,\n estimation.employer_currency_costs.currency.symbol,\n ),\n tooltip:\n 'Discounts may be available based on your commitment and team size. Speak to your account or customer success manager to learn more.',\n },\n ]\n : []),\n ]}\n isMultipleCurrency={isMultipleCurrency}\n />\n </EstimationRow>\n </div>\n <div className='RemoteFlows__Separator'>\n <CustomOnboardingTimeline\n minimumOnboardingDays={estimation.minimum_onboarding_time}\n data={onboardingTimelineData}\n />\n </div>\n\n <CustomHiringSection\n countryBenefitsUrl={estimation.country_benefits_details_url as string}\n countryGuideUrl={estimation.country_guide_url as string}\n country={estimation.country}\n />\n\n {CustomFooter && <CustomFooter />}\n </Card>\n );\n};\n","export const BasicTooltip = ({\n children,\n content,\n}: {\n children: React.ReactNode;\n content: React.ReactNode;\n}) => {\n return (\n <div className='relative inline-block group'>\n {children}\n <div className='absolute bottom-full right-0 mb-2 px-3 py-2 bg-gray-900 text-white text-xs rounded-md opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all duration-200 z-50 w-64 whitespace-normal break-words'>\n {content}\n <div className='absolute top-full right-3 border-4 border-transparent border-t-gray-900'></div>\n </div>\n </div>\n );\n};\n"],"mappings":"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","names":["MoreHorizontal","useState","Fragment","jsx","jsxs","ActionsDropdown","actions","className","label","dataSelector","isOpen","setIsOpen","useState","cn","Button","MoreHorizontal","action","index","__name","ChevronDown","Info","Flag","useState","jsx","jsxs","BasicTooltip","__name","children","content","Fragment","jsx","jsxs","FLAG_CODE_MAPPING","EstimationResultsHeader","__name","title","country","region","annualGrossSalary","onDelete","onExportPdf","onEdit","actions","Flag","ActionsDropdown","getOnboardingTimelineData","zendeskArticles","OnboardingTimeline","minimumOnboardingDays","data","className","Accordion","cn","AccordionItem","AccordionTrigger","AccordionContent","step","ZendeskTriggerButton","HiringSection","countryBenefitsUrl","countryGuideUrl","EstimationHeaders","isMultipleCurrency","EstimationRow","label","amounts","children","isOpen","setIsOpen","useState","ChevronDown","amount","index","BreakdownListItem","item","level","hasChildren","isNested","isCollapsible","BasicTooltip","sanitizeHtml","Info","BreakdownList","items","EstimationResults","estimation","components","CustomHiringSection","CustomOnboardingTimeline","CustomHeader","CustomFooter","onboardingTimelineData","hasManagementFee","hasRegion","formattedSalary","formatCurrency","Card"]}
|
package/dist/chunk-PO57BOOY.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as g}from"./chunk-634DTN72.js";import{a as d,b as w}from"./chunk-EAF6XPH6.js";import{a as E}from"./chunk-EUSCQL4H.js";import{e as C}from"./chunk-T7O3YYOG.js";import{I as F,d as _,u as P}from"./chunk-5XHL6B25.js";import{a as y}from"./chunk-3X36ZFNP.js";import{a as j}from"./chunk-5BRMLRS7.js";import{d as c}from"./chunk-KQPDXXG3.js";import{a as e}from"./chunk-P37U34EQ.js";import{useMutation as b,useQuery as I}from"@tanstack/react-query";var B=e(({countryCode:n,employment:r,fieldValues:a,options:t})=>{let{client:l}=c(),m=t?.jsonSchemaVersion?.contract_amendments?{json_schema_version:t.jsonSchemaVersion.contract_amendments}:{};return I({queryKey:["contract-amendment-schema"],retry:!1,queryFn:e(async()=>{let o=await _({client:l,headers:{Authorization:""},query:{employment_id:r?.id,country_code:n,...m}});if(o.error||!o.data)throw new Error("Failed to fetch contract amendment schema");return o},"queryFn"),enabled:!!r,select:e(({data:o})=>{let u=o?.data||{};return E(u,a,t)},"select")})},"useContractAmendmentSchemaQuery"),J=e(n=>{let{client:r}=c(),a=n?.jsonSchemaVersion?.contract_amendments?{json_schema_version:n.jsonSchemaVersion.contract_amendments}:{};return b({mutationFn:e(t=>P({client:r,headers:{Authorization:""},body:t,query:{...a}}),"mutationFn")})},"useCreateContractAmendmentMutation"),K=e(n=>{let{client:r}=c(),a=n?.jsonSchemaVersion?.contract_amendments?{json_schema_version:n.jsonSchemaVersion.contract_amendments}:{};return b({mutationFn:e(t=>F({client:r,headers:{Authorization:""},body:t,query:{...a}}),"mutationFn")})},"useAutomatableContractAmendmentMutation"),te=e(({employmentId:n,countryCode:r,options:a})=>{let{fieldValues:t,setFieldValues:l,stepState:m,nextStep:o,previousStep:u}=j(d),{data:i,isLoading:v,isError:Q,error:q}=g({employmentId:n}),{data:s,isLoading:L,isError:M,error:T}=B({employment:i,countryCode:r,fieldValues:{...m.values?.[m.currentStep.name],...t},options:a}),k=w(i,s?.fields),S=J(a),A=K(a);async function z(p){let f=await C(p,s?.fields||[],{isPartialValidation:!1}),V={employment_id:i?.id,amendment_contract_id:i?.active_contract_id,contract_amendment:{...f}};switch(m.currentStep.name){case d.form.name:{let{mutateAsync:h}=y(A),H=await h(V);return o(),H}case d.confirmation_form.name:{let{mutateAsync:h}=y(S);return h(V)}default:throw new Error("Invalid step state")}}e(z,"onSubmit");async function O(p){if(s){let f=await C(p,s?.fields);return s?.handleValidation(f)}return null}e(O,"handleValidation");function x(){u()}return e(x,"back"),{stepState:m,fields:s?.fields||[],isLoading:v||L,isError:Q||M,error:q||T,isSubmitting:A.isPending||S.isPending,initialValues:k,values:t,handleValidation:O,checkFieldUpdates:l,onSubmit:z,back:x}},"useContractAmendment");export{te as a};
|
|
2
|
-
//# sourceMappingURL=chunk-PO57BOOY.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/ContractAmendment/hooks.ts"],"sourcesContent":["import { FieldValues } from 'react-hook-form';\nimport { useMutation, useQuery } from '@tanstack/react-query';\nimport {\n CreateContractAmendmentParams,\n Employment,\n getShowContractAmendmentSchema,\n postAutomatableContractAmendment,\n postCreateContractAmendment,\n} from '@/src/client';\nimport { parseJSFToValidate } from '@/src/components/form/utils';\nimport { mutationToPromise } from '@/src/lib/mutations';\nimport { Client } from '@/src/client/client';\nimport { createHeadlessForm } from '@/src/common/createHeadlessForm';\nimport { useEmploymentQuery } from '@/src/common/api';\nimport { useClient } from '@/src/context';\nimport { ContractAmendmentParams } from './types';\nimport { useStepState } from '../useStepState';\nimport { buildInitialValues, STEPS } from './utils';\nimport { FlowOptions } from '@/src/flows/types';\n\ntype ContractAmendmentSchemaParams = {\n countryCode: string;\n employment: Employment | undefined;\n fieldValues: FieldValues | undefined;\n options?: ContractAmendmentParams['options'];\n};\n\nconst useContractAmendmentSchemaQuery = ({\n countryCode,\n employment,\n fieldValues,\n options,\n}: ContractAmendmentSchemaParams) => {\n const { client } = useClient();\n const jsonSchemaQueryParam = options?.jsonSchemaVersion?.contract_amendments\n ? {\n json_schema_version: options.jsonSchemaVersion.contract_amendments,\n }\n : {};\n return useQuery({\n queryKey: ['contract-amendment-schema'],\n retry: false,\n queryFn: async () => {\n const response = await getShowContractAmendmentSchema({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n query: {\n employment_id: employment?.id as string,\n country_code: countryCode,\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 contract amendment schema');\n }\n\n return response;\n },\n enabled: Boolean(employment),\n select: ({ data }) => {\n const jsfSchema = data?.data || {};\n\n return createHeadlessForm(jsfSchema, fieldValues, options);\n },\n });\n};\n\nconst useCreateContractAmendmentMutation = (options?: FlowOptions) => {\n const { client } = useClient();\n const jsonSchemaQueryParam = options?.jsonSchemaVersion?.contract_amendments\n ? {\n json_schema_version: options.jsonSchemaVersion.contract_amendments,\n }\n : {};\n return useMutation({\n mutationFn: (payload: CreateContractAmendmentParams) => {\n return postCreateContractAmendment({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n body: payload,\n query: {\n ...jsonSchemaQueryParam,\n },\n });\n },\n });\n};\n\nconst useAutomatableContractAmendmentMutation = (options?: FlowOptions) => {\n const { client } = useClient();\n const jsonSchemaQueryParam = options?.jsonSchemaVersion?.contract_amendments\n ? {\n json_schema_version: options.jsonSchemaVersion.contract_amendments,\n }\n : {};\n return useMutation({\n mutationFn: (payload: CreateContractAmendmentParams) => {\n return postAutomatableContractAmendment({\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 useContractAmendment = ({\n employmentId,\n countryCode,\n options,\n}: ContractAmendmentParams) => {\n const { fieldValues, setFieldValues, stepState, nextStep, previousStep } =\n useStepState<keyof typeof STEPS>(STEPS);\n\n const {\n data: employment,\n isLoading: isLoadingEmployment,\n isError: isErrorEmployment,\n error: errorEmployment,\n } = useEmploymentQuery({\n employmentId,\n });\n\n const {\n data: contractAmendmentHeadlessForm,\n isLoading: isLoadingContractAmendments,\n isError: isErrorContractAmendmentSchema,\n error: errorContractAmendmentSchema,\n } = useContractAmendmentSchemaQuery({\n employment,\n countryCode,\n // In case the user is navigating back to the form step, we need to\n // pass the previous field values, so that the schema can be\n // generated with the correct values.\n fieldValues: {\n ...stepState.values?.[stepState.currentStep.name], // Restore values for the current step\n ...fieldValues,\n },\n options,\n });\n\n const initialValues = buildInitialValues(\n employment,\n contractAmendmentHeadlessForm?.fields,\n );\n\n const createContractAmendmentMutation =\n useCreateContractAmendmentMutation(options);\n const automatableContractAmendmentMutation =\n useAutomatableContractAmendmentMutation(options);\n\n async function onSubmit(values: FieldValues) {\n const parsedValues = await parseJSFToValidate(\n values,\n contractAmendmentHeadlessForm?.fields || [],\n {\n isPartialValidation: false,\n },\n );\n\n const payload = {\n employment_id: employment?.id as string,\n amendment_contract_id: employment?.active_contract_id as string,\n contract_amendment: {\n ...parsedValues,\n },\n };\n\n switch (stepState.currentStep.name) {\n case STEPS.form.name: {\n const { mutateAsync } = mutationToPromise(\n automatableContractAmendmentMutation,\n );\n\n const automatableContractAmendment = await mutateAsync(payload);\n\n nextStep();\n\n return automatableContractAmendment;\n }\n case STEPS.confirmation_form.name: {\n const { mutateAsync } = mutationToPromise(\n createContractAmendmentMutation,\n );\n\n return mutateAsync(payload);\n }\n\n default:\n throw new Error('Invalid step state');\n }\n }\n\n async function handleValidation(values: FieldValues) {\n if (contractAmendmentHeadlessForm) {\n const parsedValues = await parseJSFToValidate(\n values,\n contractAmendmentHeadlessForm?.fields,\n );\n\n return contractAmendmentHeadlessForm?.handleValidation(parsedValues);\n }\n return null;\n }\n\n function back() {\n previousStep();\n }\n\n return {\n /**\n * Current step state containing the current step and total number of steps\n */\n stepState,\n /**\n * Array of form fields from the contract amendment schema\n */\n fields: contractAmendmentHeadlessForm?.fields || [],\n /**\n * Loading state indicating if either employment or contract amendment data is being fetched\n */\n isLoading: isLoadingEmployment || isLoadingContractAmendments,\n /**\n * Error state indicating if there was an error fetching either employment or contract amendment data\n */\n isError: isErrorEmployment || isErrorContractAmendmentSchema,\n /**\n * Error object containing details about any errors that occurred during data fetching\n */\n error: errorEmployment || errorContractAmendmentSchema,\n /**\n * Loading state indicating if a contract amendment mutation is in progress\n */\n isSubmitting:\n automatableContractAmendmentMutation.isPending ||\n createContractAmendmentMutation.isPending,\n /**\n * Initial form values built from employment data and contract amendment fields\n */\n initialValues,\n /**\n * Current form field values\n */\n values: fieldValues,\n /**\n * Function to validate form values against the contract amendment schema\n * @param values - Form values to validate\n * @returns Validation result or null if no schema is available\n */\n handleValidation,\n /**\n * Function to update the current form field values\n * @param values - New form values to set\n */\n checkFieldUpdates: setFieldValues,\n /**\n * Function to handle form submission\n * @param values - Form values to submit\n * @returns Promise resolving to the mutation result\n */\n onSubmit,\n /**\n * Function to handle going back to the previous step\n * @returns {void}\n */\n back,\n };\n};\n"],"mappings":"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","names":["useMutation","useQuery","useContractAmendmentSchemaQuery","__name","countryCode","employment","fieldValues","options","client","useClient","jsonSchemaQueryParam","useQuery","response","getShowContractAmendmentSchema","data","jsfSchema","createHeadlessForm","useCreateContractAmendmentMutation","useMutation","payload","postCreateContractAmendment","useAutomatableContractAmendmentMutation","postAutomatableContractAmendment","useContractAmendment","employmentId","setFieldValues","stepState","nextStep","previousStep","useStepState","STEPS","isLoadingEmployment","isErrorEmployment","errorEmployment","useEmploymentQuery","contractAmendmentHeadlessForm","isLoadingContractAmendments","isErrorContractAmendmentSchema","errorContractAmendmentSchema","initialValues","buildInitialValues","createContractAmendmentMutation","automatableContractAmendmentMutation","onSubmit","values","parsedValues","parseJSFToValidate","mutateAsync","mutationToPromise","automatableContractAmendment","handleValidation","back"]}
|