@remoteoss/remote-flows 1.3.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/{PdfPreview-6C3GGXIN.js → PdfPreview-2VXVDUFP.js} +2 -2
- package/dist/{chunk-EQOU2VPX.js → chunk-2FDEMDWJ.js} +2 -2
- package/dist/{chunk-6S6H4NAQ.js → chunk-3CRC4NDD.js} +2 -2
- package/dist/{chunk-AT7VHJMW.js → chunk-3DRSYLBM.js} +2 -2
- package/dist/{chunk-EYQ4PYUT.js → chunk-4FW2VTO4.js} +2 -2
- package/dist/chunk-4FW2VTO4.js.map +1 -0
- package/dist/{chunk-M2TLNSTK.js → chunk-4OVFMUUJ.js} +2 -2
- package/dist/{chunk-EC7QVRRX.js → chunk-4UAHJOHZ.js} +2 -2
- package/dist/chunk-5BRMLRS7.js +2 -0
- package/dist/chunk-5BRMLRS7.js.map +1 -0
- package/dist/{chunk-QUQLW5YW.js → chunk-5JQMTMHR.js} +2 -2
- package/dist/chunk-5WFWHEXV.js +2 -0
- package/dist/chunk-5WFWHEXV.js.map +1 -0
- package/dist/{chunk-MEZ7LYUK.js → chunk-6AQLDTMK.js} +2 -2
- package/dist/{chunk-OKM7DRCF.js → chunk-6CASSN2Z.js} +2 -2
- package/dist/chunk-6DHV4GT6.js +2 -0
- package/dist/{chunk-XRI6PRXK.js → chunk-6E5GX7W3.js} +2 -2
- package/dist/{chunk-T6HCUFYI.js → chunk-765OB2K5.js} +2 -2
- package/dist/{chunk-WCEHP5N7.js → chunk-7FMFSOJ3.js} +2 -2
- package/dist/{chunk-C4DLDK36.js → chunk-7JDWTTYE.js} +2 -2
- package/dist/{chunk-3Z6AFLXW.js → chunk-7XKEJ5Y6.js} +2 -2
- package/dist/{chunk-Z6TCBVRG.js → chunk-A5NDO6CQ.js} +2 -2
- package/dist/{chunk-7COHIUGW.js → chunk-AJ5SXKFO.js} +2 -2
- package/dist/chunk-AJ5SXKFO.js.map +1 -0
- package/dist/chunk-ARQ2PTEA.js +2 -0
- package/dist/chunk-ARQ2PTEA.js.map +1 -0
- package/dist/{chunk-UA6MNQLD.js → chunk-BNBEIHLD.js} +2 -2
- package/dist/{chunk-Y5P5IJRN.js → chunk-BPIGB72P.js} +2 -2
- package/dist/{chunk-66N57DKF.js → chunk-CR7AIZKA.js} +2 -2
- package/dist/chunk-CTAWDJ2D.js +2 -0
- package/dist/chunk-CTAWDJ2D.js.map +1 -0
- package/dist/{chunk-35RMJMSH.js → chunk-D6Y7GLBT.js} +2 -2
- package/dist/{chunk-LKMPZJIW.js → chunk-EGSUF7OD.js} +2 -2
- package/dist/chunk-FEIYAZ7Q.js +2 -0
- package/dist/chunk-FEIYAZ7Q.js.map +1 -0
- package/dist/chunk-FUBLGAPH.js +2 -0
- package/dist/chunk-FUBLGAPH.js.map +1 -0
- package/dist/{chunk-A3GZSC5Z.js → chunk-G2X5F5YR.js} +2 -2
- package/dist/{chunk-UOOUV52J.js → chunk-GGPEKIIH.js} +2 -2
- package/dist/{chunk-72OH7PSF.js → chunk-GPLI6GGL.js} +2 -2
- package/dist/chunk-GVSAZND2.js +2 -0
- package/dist/chunk-GVSAZND2.js.map +1 -0
- package/dist/{chunk-44IOQYR2.js → chunk-HLR4BEDV.js} +2 -2
- package/dist/{chunk-ARTSDUSS.js → chunk-HRG5MSVG.js} +2 -2
- package/dist/chunk-HRG5MSVG.js.map +1 -0
- package/dist/{chunk-BL7OYWNX.js → chunk-HUJ3AUIS.js} +2 -2
- package/dist/chunk-IJ6325YO.js +2 -0
- package/dist/chunk-IJ6325YO.js.map +1 -0
- package/dist/{chunk-PMTKQME6.js → chunk-ILOKQ6OH.js} +2 -2
- package/dist/{chunk-KKGRYDZA.js → chunk-K3XVYHGV.js} +2 -2
- package/dist/{chunk-5DKNCKV7.js → chunk-K62H3A5T.js} +2 -2
- package/dist/{chunk-LJVV6MMB.js → chunk-KRDAGWDH.js} +2 -2
- package/dist/{chunk-ZIN2OWTH.js → chunk-LAXQMTDQ.js} +2 -2
- package/dist/{chunk-N6BBMT7W.js → chunk-LGUGZN57.js} +2 -2
- package/dist/{chunk-MXLQEDRJ.js → chunk-LHNX27TY.js} +2 -2
- package/dist/{chunk-VXA6RPA5.js → chunk-LJ6FHPXW.js} +2 -2
- package/dist/{chunk-2Y3SXQ5B.js → chunk-LOHRUY4J.js} +1 -1
- package/dist/chunk-LOHRUY4J.js.map +1 -0
- package/dist/chunk-MD2QFLXC.js +2 -0
- package/dist/chunk-MD2QFLXC.js.map +1 -0
- package/dist/chunk-N3X274GT.js +2 -0
- package/dist/chunk-N3X274GT.js.map +1 -0
- package/dist/chunk-NFWNYW2E.js +2 -0
- package/dist/chunk-NFWNYW2E.js.map +1 -0
- package/dist/{chunk-EGRGQWIY.js → chunk-NHREKNSV.js} +2 -2
- package/dist/chunk-NPKIEWF4.js +2 -0
- package/dist/chunk-NPKIEWF4.js.map +1 -0
- package/dist/chunk-OFWEEY3Y.js +2 -0
- package/dist/chunk-OFWEEY3Y.js.map +1 -0
- package/dist/chunk-OKMERBJL.js +2 -0
- package/dist/chunk-OKMERBJL.js.map +1 -0
- package/dist/chunk-OXOK5PM3.js +2 -0
- package/dist/chunk-OXOK5PM3.js.map +1 -0
- package/dist/chunk-P5QKSFOE.js +2 -0
- package/dist/chunk-P5QKSFOE.js.map +1 -0
- package/dist/{chunk-F3KEIVSE.js → chunk-PC5JG4TT.js} +2 -2
- package/dist/{chunk-LJGCFFAT.js → chunk-PJN2YJO4.js} +2 -2
- package/dist/{chunk-A65WMO6K.js → chunk-PSHPB65F.js} +2 -2
- package/dist/{chunk-NDQ6UQFG.js → chunk-PU3WPIEK.js} +2 -2
- package/dist/{chunk-NABPCULM.js → chunk-QDSRG735.js} +2 -2
- package/dist/chunk-QKKAJK3A.js +2 -0
- package/dist/chunk-QKKAJK3A.js.map +1 -0
- package/dist/chunk-RTQ4GKPG.js +2 -0
- package/dist/chunk-RTQ4GKPG.js.map +1 -0
- package/dist/{chunk-3CFU6LKQ.js → chunk-SKQWZNKT.js} +2 -2
- package/dist/{chunk-HDNBZ6CB.js → chunk-T5OFLN36.js} +2 -2
- package/dist/{chunk-W3YE53JN.js → chunk-T6Q7IALZ.js} +2 -2
- package/dist/chunk-T6Q7IALZ.js.map +1 -0
- package/dist/chunk-TC7EQZJK.js +2 -0
- package/dist/chunk-TC7EQZJK.js.map +1 -0
- package/dist/chunk-TMBD35L4.js +2 -0
- package/dist/chunk-TMBD35L4.js.map +1 -0
- package/dist/{chunk-6P4DTWYK.js → chunk-U2HWB5HI.js} +2 -2
- package/dist/{chunk-GE5DH3UF.js → chunk-UD4GEI4B.js} +2 -2
- package/dist/{chunk-L3Z2G32A.js → chunk-UQCSN47K.js} +1 -1
- package/dist/chunk-UQCSN47K.js.map +1 -0
- package/dist/chunk-V334GIML.js +2 -0
- package/dist/chunk-V334GIML.js.map +1 -0
- package/dist/{chunk-Z2WV73EX.js → chunk-VCEQ5E2O.js} +2 -2
- package/dist/{chunk-PZNXAOZH.js → chunk-VYHITQHG.js} +2 -2
- package/dist/{chunk-VBO75DXV.js → chunk-W3OQNZW6.js} +2 -2
- package/dist/chunk-WINYXC33.js +2 -0
- package/dist/chunk-WINYXC33.js.map +1 -0
- package/dist/{chunk-LG2LVO4C.js → chunk-WLN6G3TE.js} +2 -2
- package/dist/{chunk-OP72BS23.js → chunk-WO33FKK4.js} +2 -2
- package/dist/{chunk-2FQ2KNP4.js → chunk-X6325UGJ.js} +2 -2
- package/dist/{chunk-QIVDIOJG.js → chunk-XGECMN4V.js} +2 -2
- package/dist/{chunk-BVDT43OO.js → chunk-XTXPKDZ7.js} +2 -2
- package/dist/{chunk-TVJYCR33.js → chunk-XXPJHT5A.js} +2 -2
- package/dist/{chunk-IBHNWMMB.js → chunk-YXVNCPUI.js} +2 -2
- package/dist/{chunk-4GDEWYZC.js → chunk-Z5A2M5EU.js} +2 -2
- package/dist/{chunk-OXL3QGHT.js → chunk-ZCXTTVGV.js} +2 -2
- package/dist/chunk-ZCXTTVGV.js.map +1 -0
- package/dist/{chunk-KGKDSOER.js → chunk-ZFKHCC4Z.js} +2 -2
- package/dist/{chunk-FZDQ7EEI.js → chunk-ZT72WOPZ.js} +2 -2
- package/dist/flows/ContractAmendment/ContractAmendmentBack.js +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.js +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentFlow.d.ts +4 -3
- package/dist/flows/ContractAmendment/ContractAmendmentFlow.js +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentForm.js +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentSubmit.js +1 -1
- package/dist/flows/ContractAmendment/context.d.ts +8 -7
- package/dist/flows/ContractAmendment/hooks.d.ts +9 -8
- package/dist/flows/ContractAmendment/hooks.js +1 -1
- package/dist/flows/ContractAmendment/index.d.ts +4 -3
- package/dist/flows/ContractAmendment/index.js +1 -1
- package/dist/flows/ContractAmendment/types.d.ts +1 -2
- package/dist/flows/ContractAmendment/utils.d.ts +4 -2
- package/dist/flows/ContractAmendment/utils.js +1 -1
- package/dist/flows/ContractorOnboarding/ContractorOnboarding.d.ts +4 -5
- package/dist/flows/ContractorOnboarding/ContractorOnboarding.js +1 -1
- package/dist/flows/ContractorOnboarding/api.d.ts +14 -7
- package/dist/flows/ContractorOnboarding/api.js +1 -1
- package/dist/flows/ContractorOnboarding/components/BasicInformationStep.d.ts +3 -4
- package/dist/flows/ContractorOnboarding/components/BasicInformationStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.d.ts +4 -5
- package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.d.ts +4 -5
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.d.ts +9 -10
- package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.js +1 -1
- package/dist/flows/ContractorOnboarding/components/OnboardingBack.js +1 -1
- package/dist/flows/ContractorOnboarding/components/OnboardingInvite.d.ts +2 -2
- package/dist/flows/ContractorOnboarding/components/OnboardingInvite.js +1 -1
- package/dist/flows/ContractorOnboarding/components/OnboardingSubmit.js +1 -1
- package/dist/flows/ContractorOnboarding/components/PricingPlan.d.ts +4 -5
- package/dist/flows/ContractorOnboarding/components/PricingPlan.js +1 -1
- package/dist/flows/ContractorOnboarding/components/SelectCountryStep.d.ts +3 -4
- package/dist/flows/ContractorOnboarding/components/SelectCountryStep.js +1 -1
- package/dist/flows/ContractorOnboarding/context.d.ts +5 -6
- package/dist/flows/ContractorOnboarding/hooks.d.ts +6 -7
- package/dist/flows/ContractorOnboarding/hooks.js +1 -1
- package/dist/flows/ContractorOnboarding/index.d.ts +4 -5
- package/dist/flows/ContractorOnboarding/index.js +1 -1
- package/dist/flows/ContractorOnboarding/types.d.ts +4 -5
- package/dist/flows/ContractorOnboarding/utils.d.ts +3 -4
- package/dist/flows/ContractorOnboarding/utils.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorFlow.d.ts +2 -3
- package/dist/flows/CostCalculator/CostCalculatorFlow.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorForm.d.ts +2 -3
- package/dist/flows/CostCalculator/CostCalculatorForm.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorResetButton.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorSubmitButton.js +1 -1
- package/dist/flows/CostCalculator/EstimationResults/EstimationResults.d.ts +1 -2
- package/dist/flows/CostCalculator/EstimationResults/EstimationResults.js +1 -1
- package/dist/flows/CostCalculator/SummaryResults/SummaryResults.d.ts +1 -2
- package/dist/flows/CostCalculator/SummaryResults/SummaryResults.js +1 -1
- package/dist/flows/CostCalculator/api.d.ts +8 -5
- package/dist/flows/CostCalculator/api.js +1 -1
- package/dist/flows/CostCalculator/components/SalaryField.d.ts +1 -1
- package/dist/flows/CostCalculator/components/SalaryField.js +1 -1
- package/dist/flows/CostCalculator/context.d.ts +2 -3
- package/dist/flows/CostCalculator/hooks.d.ts +2 -3
- package/dist/flows/CostCalculator/hooks.js +1 -1
- package/dist/flows/CostCalculator/index.d.ts +3 -4
- package/dist/flows/CostCalculator/index.js +1 -1
- package/dist/flows/CostCalculator/types.d.ts +1 -2
- package/dist/flows/CostCalculator/utils.d.ts +2 -3
- package/dist/flows/CostCalculator/utils.js +1 -1
- package/dist/flows/Onboarding/OnboardingFlow.d.ts +3 -4
- package/dist/flows/Onboarding/OnboardingFlow.js +1 -1
- package/dist/flows/Onboarding/api.d.ts +19 -12
- package/dist/flows/Onboarding/api.js +1 -1
- package/dist/flows/Onboarding/components/AnnualGrossSalary.d.ts +1 -1
- package/dist/flows/Onboarding/components/AnnualGrossSalary.js +1 -1
- package/dist/flows/Onboarding/components/BasicInformationStep.d.ts +3 -4
- package/dist/flows/Onboarding/components/BasicInformationStep.js +1 -1
- package/dist/flows/Onboarding/components/BenefitsStep.d.ts +3 -4
- package/dist/flows/Onboarding/components/BenefitsStep.js +1 -1
- package/dist/flows/Onboarding/components/ContractDetailsStep.d.ts +3 -4
- package/dist/flows/Onboarding/components/ContractDetailsStep.js +1 -1
- package/dist/flows/Onboarding/components/OnboardingBack.js +1 -1
- package/dist/flows/Onboarding/components/OnboardingForm.d.ts +8 -9
- package/dist/flows/Onboarding/components/OnboardingForm.js +1 -1
- package/dist/flows/Onboarding/components/OnboardingInvite.d.ts +2 -2
- package/dist/flows/Onboarding/components/OnboardingInvite.js +1 -1
- package/dist/flows/Onboarding/components/OnboardingSubmit.js +1 -1
- package/dist/flows/Onboarding/components/ReviewStep.d.ts +3 -4
- package/dist/flows/Onboarding/components/SaveDraftButton.d.ts +2 -2
- package/dist/flows/Onboarding/components/SaveDraftButton.js +1 -1
- package/dist/flows/Onboarding/components/SelectCountryStep.d.ts +3 -4
- package/dist/flows/Onboarding/components/SelectCountryStep.js +1 -1
- package/dist/flows/Onboarding/context.d.ts +6 -7
- package/dist/flows/Onboarding/hooks.d.ts +5 -6
- package/dist/flows/Onboarding/hooks.js +1 -1
- package/dist/flows/Onboarding/index.d.ts +3 -4
- package/dist/flows/Onboarding/index.js +1 -1
- package/dist/flows/Onboarding/types.d.ts +3 -4
- package/dist/flows/Onboarding/utils.d.ts +3 -4
- package/dist/flows/Termination/AdditionalDetailsForm.d.ts +5 -4
- package/dist/flows/Termination/AdditionalDetailsForm.js +1 -1
- package/dist/flows/Termination/EmployeeComunicationForm.d.ts +5 -4
- package/dist/flows/Termination/EmployeeComunicationForm.js +1 -1
- package/dist/flows/Termination/PaidTimeOffForm.d.ts +5 -4
- package/dist/flows/Termination/PaidTimeOffForm.js +1 -1
- package/dist/flows/Termination/TerminationBack.js +1 -1
- package/dist/flows/Termination/TerminationDetailsForm.d.ts +5 -4
- package/dist/flows/Termination/TerminationDetailsForm.js +1 -1
- package/dist/flows/Termination/TerminationFlow.d.ts +5 -4
- package/dist/flows/Termination/TerminationFlow.js +1 -1
- package/dist/flows/Termination/TerminationForm.d.ts +7 -6
- package/dist/flows/Termination/TerminationForm.js +1 -1
- package/dist/flows/Termination/TerminationSubmit.js +1 -1
- package/dist/flows/Termination/api.d.ts +15 -10
- package/dist/flows/Termination/api.js +1 -1
- package/dist/flows/Termination/components/AcknowledgeInformation/AcknowledgeInfomationContainer.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/AcknowledgeInformation/constants.js +1 -1
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOff.d.ts +6 -5
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOff.js +1 -1
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.d.ts +6 -5
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.js +1 -1
- package/dist/flows/Termination/components/PaidTimeOff/types.d.ts +6 -5
- 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 +9 -8
- package/dist/flows/Termination/hooks.d.ts +5 -4
- package/dist/flows/Termination/hooks.js +1 -1
- package/dist/flows/Termination/index.d.ts +6 -5
- package/dist/flows/Termination/index.js +1 -1
- package/dist/flows/Termination/json-schemas/employeeComunication.js +1 -1
- package/dist/flows/Termination/json-schemas/jsonSchema.js +1 -1
- package/dist/flows/Termination/json-schemas/schema.d.ts +5 -4
- package/dist/flows/Termination/json-schemas/schema.js +1 -1
- package/dist/flows/Termination/types.d.ts +5 -4
- package/dist/flows/Termination/utils.d.ts +5 -4
- package/dist/flows/Termination/utils.js +1 -1
- package/dist/flows/types.d.ts +3 -20
- package/dist/flows/useStepState.d.ts +1 -1
- package/dist/flows/useStepState.js +1 -1
- package/dist/index.d.ts +10 -9
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/internals.d.ts +6 -2
- package/dist/internals.js +1 -1
- package/dist/{mutations-C051uRcC.d.ts → mutations-DodnkAWj.d.ts} +1 -1
- package/dist/{remoteFlows-B9Nl1qjN.d.ts → remoteFlows-xvD84Bor.d.ts} +9 -8
- package/dist/{types-Ci-EdBDb.d.ts → types-B5wlUr-S.d.ts} +8 -9
- package/dist/{types-Dx-2ocvG.d.ts → types-BukQasy8.d.ts} +8 -9
- package/dist/{types-DqaKYRUE.d.ts → types-Ct_LPoSR.d.ts} +8 -8
- package/dist/{utils-CjDMg_Yr.d.ts → utils-arqMz3zD.d.ts} +1 -0
- package/package.json +3 -4
- package/dist/chunk-2Y3SXQ5B.js.map +0 -1
- package/dist/chunk-3F77NXWU.js +0 -2
- package/dist/chunk-3F77NXWU.js.map +0 -1
- package/dist/chunk-5C3NU7R3.js +0 -2
- package/dist/chunk-5C3NU7R3.js.map +0 -1
- package/dist/chunk-5LSHRCAR.js +0 -2
- package/dist/chunk-5LSHRCAR.js.map +0 -1
- package/dist/chunk-6GTRAHWJ.js +0 -2
- package/dist/chunk-6GTRAHWJ.js.map +0 -1
- package/dist/chunk-7COHIUGW.js.map +0 -1
- package/dist/chunk-ARTSDUSS.js.map +0 -1
- package/dist/chunk-DV6PCBAX.js +0 -2
- package/dist/chunk-DV6PCBAX.js.map +0 -1
- package/dist/chunk-EDVJBPCB.js +0 -2
- package/dist/chunk-EDVJBPCB.js.map +0 -1
- package/dist/chunk-EHAZWZ3O.js +0 -2
- package/dist/chunk-EHAZWZ3O.js.map +0 -1
- package/dist/chunk-ERRQIROU.js +0 -2
- package/dist/chunk-ERRQIROU.js.map +0 -1
- package/dist/chunk-ETYRNQJJ.js +0 -2
- package/dist/chunk-ETYRNQJJ.js.map +0 -1
- package/dist/chunk-EYQ4PYUT.js.map +0 -1
- package/dist/chunk-GCTHZSIN.js +0 -2
- package/dist/chunk-GCTHZSIN.js.map +0 -1
- package/dist/chunk-GHJBEQIR.js +0 -2
- package/dist/chunk-GHJBEQIR.js.map +0 -1
- package/dist/chunk-GP6PRZVX.js +0 -2
- package/dist/chunk-GP6PRZVX.js.map +0 -1
- package/dist/chunk-HZVYZQ3Z.js +0 -2
- package/dist/chunk-HZVYZQ3Z.js.map +0 -1
- package/dist/chunk-IWA5B4U6.js +0 -2
- package/dist/chunk-L3Z2G32A.js.map +0 -1
- package/dist/chunk-LQBVRVXH.js +0 -2
- package/dist/chunk-LQBVRVXH.js.map +0 -1
- package/dist/chunk-OFI5KLQ4.js +0 -2
- package/dist/chunk-OFI5KLQ4.js.map +0 -1
- package/dist/chunk-OXL3QGHT.js.map +0 -1
- package/dist/chunk-PJBAQZ6G.js +0 -2
- package/dist/chunk-PJBAQZ6G.js.map +0 -1
- package/dist/chunk-RR55GUDT.js +0 -2
- package/dist/chunk-RR55GUDT.js.map +0 -1
- package/dist/chunk-SIYKTLFS.js +0 -2
- package/dist/chunk-SIYKTLFS.js.map +0 -1
- package/dist/chunk-SXR333SU.js +0 -2
- package/dist/chunk-SXR333SU.js.map +0 -1
- package/dist/chunk-W3YE53JN.js.map +0 -1
- package/dist/chunk-Y2NSR2N6.js +0 -2
- package/dist/chunk-Y2NSR2N6.js.map +0 -1
- package/dist/chunk-ZYRGEEPU.js +0 -2
- package/dist/chunk-ZYRGEEPU.js.map +0 -1
- /package/dist/{PdfPreview-6C3GGXIN.js.map → PdfPreview-2VXVDUFP.js.map} +0 -0
- /package/dist/{chunk-EQOU2VPX.js.map → chunk-2FDEMDWJ.js.map} +0 -0
- /package/dist/{chunk-6S6H4NAQ.js.map → chunk-3CRC4NDD.js.map} +0 -0
- /package/dist/{chunk-AT7VHJMW.js.map → chunk-3DRSYLBM.js.map} +0 -0
- /package/dist/{chunk-M2TLNSTK.js.map → chunk-4OVFMUUJ.js.map} +0 -0
- /package/dist/{chunk-EC7QVRRX.js.map → chunk-4UAHJOHZ.js.map} +0 -0
- /package/dist/{chunk-QUQLW5YW.js.map → chunk-5JQMTMHR.js.map} +0 -0
- /package/dist/{chunk-MEZ7LYUK.js.map → chunk-6AQLDTMK.js.map} +0 -0
- /package/dist/{chunk-OKM7DRCF.js.map → chunk-6CASSN2Z.js.map} +0 -0
- /package/dist/{chunk-IWA5B4U6.js.map → chunk-6DHV4GT6.js.map} +0 -0
- /package/dist/{chunk-XRI6PRXK.js.map → chunk-6E5GX7W3.js.map} +0 -0
- /package/dist/{chunk-T6HCUFYI.js.map → chunk-765OB2K5.js.map} +0 -0
- /package/dist/{chunk-WCEHP5N7.js.map → chunk-7FMFSOJ3.js.map} +0 -0
- /package/dist/{chunk-C4DLDK36.js.map → chunk-7JDWTTYE.js.map} +0 -0
- /package/dist/{chunk-3Z6AFLXW.js.map → chunk-7XKEJ5Y6.js.map} +0 -0
- /package/dist/{chunk-Z6TCBVRG.js.map → chunk-A5NDO6CQ.js.map} +0 -0
- /package/dist/{chunk-UA6MNQLD.js.map → chunk-BNBEIHLD.js.map} +0 -0
- /package/dist/{chunk-Y5P5IJRN.js.map → chunk-BPIGB72P.js.map} +0 -0
- /package/dist/{chunk-66N57DKF.js.map → chunk-CR7AIZKA.js.map} +0 -0
- /package/dist/{chunk-35RMJMSH.js.map → chunk-D6Y7GLBT.js.map} +0 -0
- /package/dist/{chunk-LKMPZJIW.js.map → chunk-EGSUF7OD.js.map} +0 -0
- /package/dist/{chunk-A3GZSC5Z.js.map → chunk-G2X5F5YR.js.map} +0 -0
- /package/dist/{chunk-UOOUV52J.js.map → chunk-GGPEKIIH.js.map} +0 -0
- /package/dist/{chunk-72OH7PSF.js.map → chunk-GPLI6GGL.js.map} +0 -0
- /package/dist/{chunk-44IOQYR2.js.map → chunk-HLR4BEDV.js.map} +0 -0
- /package/dist/{chunk-BL7OYWNX.js.map → chunk-HUJ3AUIS.js.map} +0 -0
- /package/dist/{chunk-PMTKQME6.js.map → chunk-ILOKQ6OH.js.map} +0 -0
- /package/dist/{chunk-KKGRYDZA.js.map → chunk-K3XVYHGV.js.map} +0 -0
- /package/dist/{chunk-5DKNCKV7.js.map → chunk-K62H3A5T.js.map} +0 -0
- /package/dist/{chunk-LJVV6MMB.js.map → chunk-KRDAGWDH.js.map} +0 -0
- /package/dist/{chunk-ZIN2OWTH.js.map → chunk-LAXQMTDQ.js.map} +0 -0
- /package/dist/{chunk-N6BBMT7W.js.map → chunk-LGUGZN57.js.map} +0 -0
- /package/dist/{chunk-MXLQEDRJ.js.map → chunk-LHNX27TY.js.map} +0 -0
- /package/dist/{chunk-VXA6RPA5.js.map → chunk-LJ6FHPXW.js.map} +0 -0
- /package/dist/{chunk-EGRGQWIY.js.map → chunk-NHREKNSV.js.map} +0 -0
- /package/dist/{chunk-F3KEIVSE.js.map → chunk-PC5JG4TT.js.map} +0 -0
- /package/dist/{chunk-LJGCFFAT.js.map → chunk-PJN2YJO4.js.map} +0 -0
- /package/dist/{chunk-A65WMO6K.js.map → chunk-PSHPB65F.js.map} +0 -0
- /package/dist/{chunk-NDQ6UQFG.js.map → chunk-PU3WPIEK.js.map} +0 -0
- /package/dist/{chunk-NABPCULM.js.map → chunk-QDSRG735.js.map} +0 -0
- /package/dist/{chunk-3CFU6LKQ.js.map → chunk-SKQWZNKT.js.map} +0 -0
- /package/dist/{chunk-HDNBZ6CB.js.map → chunk-T5OFLN36.js.map} +0 -0
- /package/dist/{chunk-6P4DTWYK.js.map → chunk-U2HWB5HI.js.map} +0 -0
- /package/dist/{chunk-GE5DH3UF.js.map → chunk-UD4GEI4B.js.map} +0 -0
- /package/dist/{chunk-Z2WV73EX.js.map → chunk-VCEQ5E2O.js.map} +0 -0
- /package/dist/{chunk-PZNXAOZH.js.map → chunk-VYHITQHG.js.map} +0 -0
- /package/dist/{chunk-VBO75DXV.js.map → chunk-W3OQNZW6.js.map} +0 -0
- /package/dist/{chunk-LG2LVO4C.js.map → chunk-WLN6G3TE.js.map} +0 -0
- /package/dist/{chunk-OP72BS23.js.map → chunk-WO33FKK4.js.map} +0 -0
- /package/dist/{chunk-2FQ2KNP4.js.map → chunk-X6325UGJ.js.map} +0 -0
- /package/dist/{chunk-QIVDIOJG.js.map → chunk-XGECMN4V.js.map} +0 -0
- /package/dist/{chunk-BVDT43OO.js.map → chunk-XTXPKDZ7.js.map} +0 -0
- /package/dist/{chunk-TVJYCR33.js.map → chunk-XXPJHT5A.js.map} +0 -0
- /package/dist/{chunk-IBHNWMMB.js.map → chunk-YXVNCPUI.js.map} +0 -0
- /package/dist/{chunk-4GDEWYZC.js.map → chunk-Z5A2M5EU.js.map} +0 -0
- /package/dist/{chunk-KGKDSOER.js.map → chunk-ZFKHCC4Z.js.map} +0 -0
- /package/dist/{chunk-FZDQ7EEI.js.map → chunk-ZT72WOPZ.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/files.ts","../src/components/form/utils.ts"],"sourcesContent":["const toBase64 = (file: File): Promise<string> => {\n return new Promise<string>((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => resolve(reader.result as string);\n reader.onerror = (error) => reject(error);\n });\n};\n\nexport const convertFilesToBase64 = async (files: File[]) => {\n const base64Files = await Promise.all(\n files.map(async (file) => {\n const base64 = await toBase64(file);\n return {\n ...file,\n name: file.name,\n size: file.size,\n type: file.type,\n content: base64.split(',')[1],\n };\n }),\n );\n return base64Files;\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Field } from '@/src/flows/types';\nimport { $TSFixMe, Fields } from '@remoteoss/json-schema-form-old';\nimport { convertFilesToBase64 } from '@/src/lib/files';\nimport { addBusinessDays, isWeekend, nextMonday } from 'date-fns';\nimport get from 'lodash.get';\n\nconst textInputTypes = {\n TEXT: 'text',\n TEXTAREA: 'textarea',\n NUMBER: 'number',\n SELECT: 'select',\n COUNTRIES: 'countries',\n TEL: 'tel',\n EMAIL: 'email',\n MONEY: 'money',\n DATE: 'date',\n DATE_RANGE: 'date-range',\n CURRENCIES: 'currencies',\n TIME: 'time',\n} as const;\n\nconst checkboxTypes = {\n CHECKBOX: 'checkbox',\n ACK_CHECK: 'ack-check',\n} as const;\n\nconst supportedTypes = {\n FILE: 'file',\n RADIO: 'radio',\n /** @deprecated */\n RADIO_CARD: 'radio-card',\n GROUP_ARRAY: 'group-array',\n EXTRA: 'extra',\n STATEMENT: 'statement',\n HIDDEN: 'hidden',\n FIELDSET: 'fieldset',\n FIELDSET_FLAT: 'fieldset-flat',\n WORK_SCHEDULE: 'work-schedule',\n WORK_WEEK_SCHEDULE: 'work-week-schedule',\n /** @deprecated we still display benefits in read-only contract details view, but never in any form */\n BENEFITS: 'benefits',\n SIGNATURE: 'signature',\n SELECT_MULTIPLE: 'select-multiple',\n ...textInputTypes,\n ...checkboxTypes,\n} as const;\n\nexport function round(value: number): number {\n return Math.round((value + Number.EPSILON) * 100) / 100;\n}\n\nfunction convertToValidCost(value: string) {\n return parseFloat(value.replace(/,/g, ''));\n}\n\nexport function convertToCents(\n amount?: number | string | string[] | null | boolean,\n) {\n if (\n amount == null ||\n amount === '' ||\n Number.isNaN(amount) ||\n Array.isArray(amount) ||\n typeof amount === 'boolean'\n ) {\n return null;\n }\n\n let validAmount: number;\n\n if (typeof amount === 'string') {\n validAmount = convertToValidCost(amount);\n } else {\n validAmount = amount;\n }\n\n return round(validAmount * 100);\n}\n\nexport function convertFromCents(amount?: number | string | null) {\n if (amount == null || Number.isNaN(amount)) return null;\n\n let normalizedValue: number;\n\n if (typeof amount === 'string') {\n normalizedValue = convertToValidCost(amount || '0');\n } else {\n normalizedValue = amount;\n }\n\n return round(normalizedValue / 100);\n}\n\nconst trimStringValues = (values: Record<string, any>) =>\n Object.entries(values || {}).reduce<Record<string, any>>(\n (result, [key, value]) => {\n if (Array.isArray(value)) {\n // If the value is an array, recursively process each element\n result[key] = value.map((item) =>\n typeof item === 'object' && item !== null\n ? trimStringValues(item)\n : typeof item === 'string'\n ? item.trim()\n : item,\n );\n } else if (typeof value === 'object' && value !== null) {\n // If the value is an object, recursively process it\n result[key] = trimStringValues(value);\n } else {\n // Otherwise, trim the string or keep the value as is\n result[key] = typeof value === 'string' ? value.trim() : value;\n }\n return result;\n },\n {},\n );\n\n/**\n * Given a list of form values, modify the ones that are readOnly,\n * based on their field config, by adding its defaultValue.\n * This is needed to support readOnly fields that are also conditional\n * based on the \"pivotName\" workaround.\n * @param {Object} values - List with form values { name: value }.\n * @param {Array} fields - Respective form fields configuration.\n */\nfunction prefillReadOnlyFields(values: Record<string, any>, fields: any[]) {\n const newValues: Record<string, any> = {};\n\n fields.forEach((field) => {\n const fieldName = field.name;\n\n if (\n !Object.prototype.hasOwnProperty.call(values, fieldName!) &&\n !(\n field.inputType === supportedTypes.FIELDSET &&\n field.valueGroupingDisabled\n )\n )\n return;\n\n if (\n field.inputType === supportedTypes.FIELDSET &&\n field.valueGroupingDisabled\n ) {\n Object.assign(newValues, prefillReadOnlyFields(values, field.fields));\n return;\n }\n\n if (field.readOnly && field.defaultValue) {\n newValues[fieldName!] = field.defaultValue;\n } else {\n newValues[fieldName!] = values[fieldName!];\n }\n });\n\n return newValues;\n}\n/**\n * Recursively extracts fieldsets' fields values and maps them to the field name\n * For nested fields that are fieldsets with valueGroupingDisabled, the values\n * are extracted one level up\n *\n * @param {Array} fields - Fieldset fields configuration.\n * @param {Object} formValues - List with form values { name: value }.\n * @return {Object} – Raw form values mapped to the field name\n */\nfunction extractFieldsetFieldsValues(\n fields: any[],\n formValues: Record<string, unknown>,\n) {\n return fields.reduce<Record<string, any>>((nestedAcc, subField) => {\n const isFieldsetValueGroupingDisabled =\n subField.inputType === supportedTypes.FIELDSET &&\n subField.valueGroupingDisabled;\n\n if (isFieldsetValueGroupingDisabled) {\n Object.assign(\n nestedAcc,\n extractFieldsetFieldsValues(subField.fields, formValues),\n );\n } else if (\n Object.prototype.hasOwnProperty.call(formValues, subField.name!)\n ) {\n nestedAcc[subField.name!] = formValues[subField.name!];\n }\n\n return nestedAcc;\n }, {});\n}\n\nexport const fieldTypesTransformations: Record<string, any> = {\n [supportedTypes.COUNTRIES]: {\n /**\n * @param {String[] | { name: String }[]} value\n * - Excepted: array of strings.\n * - Edge cases: array of objects. (when using dangerousTransformValue)\n * @returns {String[]} - List of countries\n * @example expected: ['Peru', 'Germany'] -> ['Peru', 'Germany']\n * @example edge cases: [{name: 'Peru'}, {name: 'Germany'}] -> ['Peru', 'Germany']\n */\n transformValueToAPI:\n (field: any) => (selectedCountries: string[] | { name: string }[]) => {\n if (!field.multiple || typeof selectedCountries === 'string') {\n return selectedCountries;\n }\n // NOTE: The value should be an array of strings, however legacy data can come as\n // an array of country objects. So, we always send an array of strings to normalize\n // the data (eg old form values being modified) until DB migration is done !5667\n return selectedCountries.map((option) =>\n typeof option === 'string' ? option : option.name,\n );\n },\n /**\n * Used for react-select, where the country selected is transformed\n * before saving on Formik state. Supports both solo and multi select\n * @param {Object|Object[]} selectedCountry[] - Current selected options\n * @param {String} selectedCountry[].value\n * @param {String} selectedCountry[].name\n * @param {String} selectedCountry[].label\n * @returns {String[]} - List of countries selected\n * @example\n * [{ value: 'Hungria' }] -> ['Hungria']\n */\n transformValue: (selectedCountry: any | any[]) => {\n // name or label are used in dragon. value is used in json-schema-form\n // TODO: it should be the same everywhere — read more at !5667\n const getCountryValue = (opt: any) =>\n opt?.name || opt?.value || opt?.label;\n return Array.isArray(selectedCountry)\n ? selectedCountry.map(getCountryValue) // support multi countries\n : getCountryValue(selectedCountry) || ''; // Fallback to '' in case user removes all countries\n },\n },\n [supportedTypes.NUMBER]: {\n transformValueToAPI: () => (value: string) => {\n // this prevents values with letters such as \"2r\" from being considered valid\n // if the input is invalid, number().cast will return NaN\n const castValue = Number(value);\n\n if (Number.isNaN(castValue)) {\n return value;\n }\n\n return castValue;\n },\n },\n [supportedTypes.MONEY]: {\n transformValueFromAPI: () => (value: string | number) =>\n convertFromCents(value) ?? '',\n transformValueToAPI: () => convertToCents,\n },\n [supportedTypes.RADIO]: {\n transformValueToAPI: (field: any) => (value: string) => {\n if (field.transformToBool) {\n return value === 'yes';\n }\n return value;\n },\n },\n [supportedTypes.CHECKBOX]: {\n transformValueToAPI: (field: any) => (value: string | boolean) => {\n if (value === undefined) {\n return false;\n }\n\n if (field.const && value === true) {\n return field.const;\n }\n return value;\n },\n },\n [supportedTypes.SELECT]: {\n /**\n * Used for react-select, where the value is transformed\n * before saving on Formik state.\n * @param {Object | Object[]} option - Object structure with options config\n * @param {String} option[].value - Key for the API\n * @param {Array} this.options[].label - Friendly label\n * @example\n * [{ value: '1', label: 'One' }, { value: '2', label: 'Two' }] -> [\"One\", \"Two\"]\n * { value: '1', label: 'One' } -> \"One\"\n * {} -> \"\"\n */\n transformValue: (option: any | any[]) =>\n Array.isArray(option)\n ? option.map((opt) => opt.value) // multi-options\n : (option?.value ?? ''), // Fallback to '' in case user removes all options,\n },\n [supportedTypes.FILE]: {\n transformValueToAPI: () => async (files: File[]) => {\n if (!files) {\n return null;\n }\n\n return await convertFilesToBase64(files);\n },\n },\n};\nexport async function parseFormValuesToAPI(\n formValues: Record<string, any> = {},\n fields: any[],\n) {\n const filteredFields = fields.filter(\n (field) =>\n formValues[field.name!] ||\n (field.inputType === supportedTypes.FIELDSET &&\n field.valueGroupingDisabled),\n );\n\n const parsedFieldsWithValues = await Promise.all(\n filteredFields.map(async (field) => {\n const acc: Record<string, any> = {};\n\n switch (field.inputType) {\n case supportedTypes.FIELDSET: {\n const fieldset = field;\n if (fieldset.valueGroupingDisabled) {\n const nestedFormValues = extractFieldsetFieldsValues(\n fieldset.fields,\n formValues,\n );\n\n Object.assign(\n acc,\n await parseFormValuesToAPI(nestedFormValues, fieldset.fields),\n );\n } else {\n const fieldsetValue = formValues[field.name!];\n\n // Filter out empty properties from fieldset objects\n // this code avoids sending department: {id: '1234', name: ''} or even department: {id: undefined, name: undefined}\n if (\n fieldsetValue &&\n typeof fieldsetValue === 'object' &&\n !Array.isArray(fieldsetValue)\n ) {\n const cleanedValue = Object.fromEntries(\n Object.entries(fieldsetValue).filter(([, value]) => {\n // Keep the property if it has a meaningful value\n return value !== '' && value !== null && value !== undefined;\n }),\n );\n\n acc[field.name!] =\n Object.keys(cleanedValue).length > 0\n ? await parseFormValuesToAPI(cleanedValue, fieldset.fields)\n : undefined;\n } else {\n acc[field.name!] = await parseFormValuesToAPI(\n fieldsetValue,\n fieldset.fields,\n );\n }\n }\n break;\n }\n\n case supportedTypes.TEXTAREA:\n case supportedTypes.TEXT:\n // Attempt to remove null bytes from form values - https://gitlab.com/remote-com/employ-starbase/tracker/-/issues/10670\n acc[field.name] = formValues[field.name].replace(/\\0/g, '');\n break;\n\n case supportedTypes.GROUP_ARRAY: {\n // NOTE: The field `name` in group arrays represents a path, but we only\n // need the last part of it which is represented by `nameKey`.\n const transformedFields = field?.fields?.().map((subField: any) => ({\n ...subField,\n name: subField.nameKey || '',\n }));\n\n const parsedFieldValues = await Promise.all(\n formValues[field.name]?.map((fieldValues: Record<string, any>) =>\n parseFormValuesToAPI(fieldValues, transformedFields),\n ) || [],\n );\n\n acc[field.name] = parsedFieldValues;\n break;\n }\n\n case supportedTypes.EXTRA: {\n const extraField = field;\n if (extraField.includeValueToApi !== false) {\n const formValue = formValues[extraField.name];\n const fieldTransformValueToAPI =\n extraField?.transformValueToAPI ||\n fieldTypesTransformations[extraField.inputType]\n ?.transformValueToAPI;\n\n if (fieldTransformValueToAPI) {\n const result = fieldTransformValueToAPI(field)(formValue);\n // Await if it's a promise\n acc[extraField.name] =\n result instanceof Promise ? await result : result;\n break;\n }\n\n acc[extraField.name] = formValue;\n break;\n }\n acc[extraField.name] = undefined;\n break;\n }\n\n default: {\n const formValue = formValues[field.name];\n const fieldTransformValueToAPI =\n field?.transformValueToAPI ||\n fieldTypesTransformations[field.inputType]?.transformValueToAPI;\n\n if (fieldTransformValueToAPI) {\n const result = fieldTransformValueToAPI(field)(formValue);\n // Await if it's a promise - THIS IS THE KEY FIX\n acc[field.name] = result instanceof Promise ? await result : result;\n break;\n }\n acc[field.name] = formValue;\n break;\n }\n }\n\n if (field.forcedValue !== undefined) {\n acc[field.name!] = field.forcedValue;\n }\n\n return acc;\n }),\n );\n\n // Merge all accumulated objects\n return parsedFieldsWithValues.reduce(\n (acc, current) => ({ ...acc, ...current }),\n { ...formValues },\n );\n}\n\nfunction isFieldVisible(field: any, formValues: Record<string, unknown>) {\n if (field.visibilityCondition) {\n return field.visibilityCondition(formValues);\n }\n\n if (typeof field.isVisible !== 'undefined') {\n return Boolean(field.isVisible);\n }\n\n return true;\n}\n\nfunction applyFieldDynamicProperties(\n field: any,\n values: Record<string, unknown> | Record<string, unknown>[],\n) {\n if (field.calculateDynamicProperties) {\n return {\n ...field,\n ...(field.calculateDynamicProperties(values) || {}),\n };\n }\n\n return field;\n}\n\nfunction excludeValuesInvisible(\n values: any,\n fields: any[],\n keepTruthyInvisibleValues?: boolean,\n parentFieldKeyPath?: string,\n) {\n const valuesAsked: Record<string, any> = {};\n\n fields\n .map((field) => applyFieldDynamicProperties(field, values))\n .forEach((field) => {\n let fieldKeyPath = field.name;\n if (parentFieldKeyPath) {\n fieldKeyPath = fieldKeyPath\n ? `${parentFieldKeyPath}.${field.name}`\n : parentFieldKeyPath;\n }\n\n const valueOfField = get(values, fieldKeyPath!);\n\n // keepTruthyInvisibleValues: false/undefined -> remove invisible field\n // keepTruthyInvisibleValues: true -> keep invisible field if it has a value\n if (\n !isFieldVisible(field, values) &&\n !(keepTruthyInvisibleValues && !!valueOfField)\n ) {\n return;\n }\n\n if (field.meta?.ignoreValue) {\n return;\n }\n\n if (field.inputType === 'fieldset' && field.valueGroupingDisabled) {\n Object.assign(\n valuesAsked,\n excludeValuesInvisible(\n values,\n field.fields,\n keepTruthyInvisibleValues,\n fieldKeyPath,\n ),\n );\n } else if (Array.isArray(field.fields)) {\n valuesAsked[field.name!] = excludeValuesInvisible(\n values,\n field.fields,\n keepTruthyInvisibleValues,\n fieldKeyPath,\n );\n } else {\n if (valueOfField === undefined) {\n return;\n }\n valuesAsked[field.name!] = valueOfField;\n }\n });\n\n return valuesAsked;\n}\n\nfunction removeEmptyValues<T extends Record<string, any>>(\n obj: T,\n): Record<string, any> {\n return Object.fromEntries(\n Object.entries(obj).filter(\n ([, value]) => value !== undefined && value !== null && value !== '',\n ),\n );\n}\n\nfunction cleanUnderscoreFields(obj: Record<string, any>): Record<string, any> {\n if (Array.isArray(obj)) {\n return obj.map(cleanUnderscoreFields);\n }\n if (obj && typeof obj === 'object') {\n return Object.entries(obj).reduce(\n (acc, [key, value]) => {\n if (!key.startsWith('_')) {\n acc[key] = cleanUnderscoreFields(value);\n }\n return acc;\n },\n {} as Record<string, any>,\n );\n }\n return obj;\n}\n\nexport async function parseSubmitValues(\n formValues: Record<string, any>,\n fields: any[],\n config?: { keepInvisibleValues?: boolean },\n) {\n const visibleFormValues = config?.keepInvisibleValues\n ? formValues\n : excludeValuesInvisible(formValues, fields);\n const convertedFormValues = await parseFormValuesToAPI(\n visibleFormValues,\n fields,\n );\n const formValuesWithTrimmedStrings = trimStringValues(convertedFormValues);\n\n const formValuesWithUndefined = removeEmptyValues(\n formValuesWithTrimmedStrings,\n );\n\n const valuesWithReadOnly = prefillReadOnlyFields(\n formValuesWithUndefined,\n fields,\n );\n return cleanUnderscoreFields(valuesWithReadOnly);\n}\n\nexport async function parseJSFToValidate(\n formValues: Record<string, any>,\n fields: Fields,\n config: { isPartialValidation: boolean } = {\n isPartialValidation: false,\n },\n) {\n const valuesParsed = await parseSubmitValues(formValues, fields, {\n /* We cannot exclude invisible fields (excludeValuesInvisible) because\n they are needed for conditional fields validations */\n keepInvisibleValues: config?.isPartialValidation,\n });\n return valuesParsed;\n}\n\nfunction castFieldTo<T>(field: Field) {\n return field as unknown as T;\n}\n\nfunction getDefaultValueForType(type: string) {\n switch (type) {\n case supportedTypes.FILE:\n return undefined; // Allows fallback values in function declarations to be used\n default:\n return '';\n }\n}\n\nfunction getInitialDefaultValue(\n defaultValues: Record<string, any>,\n field: Field,\n) {\n // lodash get is needed because some values could be nested object, like billing address\n // use camelCase to support forms with fields in snake_case or kebab_case.\n const defaultFieldValue = get(defaultValues, field.name);\n const fieldTransformValueFromAPI =\n field?.transformValueFromAPI ||\n fieldTypesTransformations[field.inputType]?.transformValueFromAPI;\n\n if (fieldTransformValueFromAPI) {\n return fieldTransformValueFromAPI(field)(defaultFieldValue);\n }\n\n // TODO: We need to get rid of value as fn for json-schema. Related !5560\n const generatedValue =\n typeof field.value === 'function'\n ? field.value(defaultFieldValue, defaultValues)\n : null;\n\n // field.value is deprecated. should use \"default\" instead.\n const defaultValueDeprecated =\n typeof field.value !== 'function' ? field.value : null;\n const initialValueForCheckboxAsBool =\n castFieldTo<$TSFixMe>(field).checkboxValue === true\n ? defaultFieldValue || false\n : null;\n\n // nullish coalescing but excluding empty strings. (to support 0 (zero) as valid numbers)\n const excludeString = (val: any) => (val === '' ? undefined : val);\n\n return (\n excludeString(generatedValue) ??\n excludeString(defaultFieldValue) ??\n excludeString(defaultValueDeprecated) ??\n excludeString(field.default) ??\n initialValueForCheckboxAsBool ??\n getDefaultValueForType(field.inputType)\n );\n}\n\n/**\n * Get initial values for sub fields within fieldsets\n * @param {Object} field The form field\n * @param {Object} defaultValues The form default values\n * @param {String=} parentFieldKeyPath The path to the parent field using dot-notation\n * @returns {Object} The initial values for a fieldset\n */\nfunction getInitialSubFieldValues(\n field: $TSFixMe,\n defaultValues: Record<string, unknown>,\n parentFieldKeyPath?: string,\n) {\n const initialValue: Record<string, Record<string, unknown>> = {};\n\n let fieldKeyPath = field.name;\n\n if (parentFieldKeyPath) {\n fieldKeyPath = fieldKeyPath\n ? `${parentFieldKeyPath}.${fieldKeyPath}`\n : parentFieldKeyPath;\n }\n\n const subFields = field.fields;\n\n if (Array.isArray(subFields)) {\n const subFieldValues = {};\n\n subFields.forEach((subField) => {\n Object.assign(\n subFieldValues,\n getInitialSubFieldValues(subField, defaultValues, fieldKeyPath),\n );\n });\n\n if (\n field.inputType === supportedTypes.FIELDSET &&\n field.valueGroupingDisabled\n ) {\n Object.assign(initialValue, subFieldValues);\n } else {\n initialValue[field.name!] = subFieldValues;\n }\n } else {\n initialValue[field.name!] = getInitialDefaultValue(defaultValues, {\n ...field,\n // NOTE: To utilize the `get` function from `lodash` in `getInitialDefaultValue` correctly\n // we need to use the field path instead of just its name.\n name: fieldKeyPath,\n });\n }\n\n return initialValue;\n}\n\nexport function getInitialValues(\n fields: Fields,\n defaultValues: Record<string, unknown>,\n) {\n const initialValues: Record<string, unknown> = {};\n const defaultFieldValues = defaultValues;\n\n // loop over fields array\n // if prop does not exit in the initialValues object,\n // pluck off the name and value props and add it to the initialValues object;\n fields\n .map((field) => applyFieldDynamicProperties(field, defaultFieldValues))\n .forEach((field) => {\n switch (field.inputType) {\n case supportedTypes.FIELDSET: {\n if (field.valueGroupingDisabled) {\n Object.assign(\n initialValues,\n getInitialValues(field.fields, defaultFieldValues),\n );\n } else {\n const subFieldValues = getInitialSubFieldValues(\n field,\n defaultFieldValues,\n );\n Object.assign(initialValues, subFieldValues);\n }\n break;\n }\n default: {\n if (!initialValues[field.name]) {\n initialValues[field.name] = getInitialDefaultValue(\n defaultFieldValues,\n field,\n );\n }\n break;\n }\n }\n });\n\n return initialValues;\n}\n\n/**\n * Wraps fields listed in fieldsets with a fieldset field.\n * @param fields - Complete fields list.\n * @param fieldsets - fields list to be wrapped in a fieldset field.\n * @param values - Values for each field.\n * @returns The fields with the fieldsets wrapped.\n */\nexport function getFieldsWithFlatFieldsets({\n fields = [],\n fieldsets = {},\n values,\n}: {\n fields: any[];\n fieldsets: Record<string, { propertiesByName: string[]; title: string }>;\n values: Record<string, unknown>;\n}) {\n const flatFieldsetsKeys = Object.keys(fieldsets);\n\n if (!flatFieldsetsKeys?.length) {\n return fields;\n }\n\n const flatFieldsetsFieldNames = new Set(\n flatFieldsetsKeys.flatMap(\n (flatFieldsetKey) => fieldsets[flatFieldsetKey]?.propertiesByName ?? [],\n ),\n );\n\n const flatFieldsetsWithFields = flatFieldsetsKeys.map((flatFieldsetKey) => {\n const { propertiesByName: flatFieldsetFields = [], ...rest } =\n fieldsets[flatFieldsetKey];\n\n const childFields = flatFieldsetFields\n .map((name) => fields.find((f) => f.name === name))\n .filter((field): field is any => !!field);\n\n return {\n ...rest,\n name: flatFieldsetKey,\n type: 'fieldset-flat',\n inputType: 'fieldset-flat',\n fields: childFields,\n label: fieldsets[flatFieldsetKey].title,\n // Hide the fieldset if none of the children fields are visible.\n isVisible: childFields\n .map((childField) => applyFieldDynamicProperties(childField, values))\n .some((childField) => isFieldVisible(childField, values)),\n };\n });\n\n const sortedFields = flatFieldsetsWithFields.reduce((accumulator, field) => {\n const accumulatedFieldsSorted = [...accumulator];\n\n /**\n * We place the flat fieldset at the original position of its first field.\n * If no field is found, we move it to the end.\n */\n const fieldsetPosition = field.fields[0]\n ? accumulator.findIndex(\n (accumulatorItem) => accumulatorItem.name === field.fields[0].name,\n )\n : accumulator.length;\n\n accumulatedFieldsSorted.splice(\n fieldsetPosition,\n 0,\n field as unknown as any,\n );\n\n return accumulatedFieldsSorted;\n }, fields);\n\n const filteredFields = sortedFields.filter(\n (field) => !flatFieldsetsFieldNames.has(field.name!),\n );\n\n return filteredFields;\n}\n\nexport function enableAckFields(\n fields: Fields,\n values: Record<string, unknown>,\n) {\n let result = values;\n fields.forEach((field) => {\n if ('const' in field) {\n result = Object.fromEntries(\n Object.entries(values).map(([k, v]) => {\n if (k === field.name) {\n return [k, field.const];\n }\n return [k, v];\n }),\n );\n }\n });\n return result;\n}\n\n/**\n * Get the minimum start date for the onboarding process.\n * @param minOnBoardingTime\n * @returns Date\n */\nexport function getMinStartDate(minOnBoardingTime: number) {\n const today = new Date();\n\n // Make sure our base date is UTC and set the time to 00:00:00\n today.setDate(today.getUTCDate());\n today.setHours(0, 0, 0, 0);\n\n // The + 1 ensures you get the full preparation time before the employee can actually start working.\n // It's the difference between \"preparation completes on this day\" vs \"earliest possible start date after preparation\".\n const minDate = addBusinessDays(today, minOnBoardingTime + 1);\n return isWeekend(minDate) ? nextMonday(minDate) : minDate;\n}\n"],"mappings":"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","names":["toBase64","__name","file","resolve","reject","reader","error","convertFilesToBase64","files","base64","addBusinessDays","isWeekend","nextMonday","get","textInputTypes","checkboxTypes","supportedTypes","round","value","__name","convertToValidCost","convertToCents","amount","validAmount","convertFromCents","normalizedValue","trimStringValues","values","result","key","item","prefillReadOnlyFields","fields","newValues","field","fieldName","extractFieldsetFieldsValues","formValues","nestedAcc","subField","fieldTypesTransformations","selectedCountries","option","selectedCountry","getCountryValue","opt","castValue","files","convertFilesToBase64","parseFormValuesToAPI","filteredFields","acc","fieldset","nestedFormValues","fieldsetValue","cleanedValue","transformedFields","parsedFieldValues","fieldValues","extraField","formValue","fieldTransformValueToAPI","current","isFieldVisible","applyFieldDynamicProperties","excludeValuesInvisible","keepTruthyInvisibleValues","parentFieldKeyPath","valuesAsked","fieldKeyPath","valueOfField","get","removeEmptyValues","obj","cleanUnderscoreFields","parseSubmitValues","config","visibleFormValues","convertedFormValues","formValuesWithTrimmedStrings","formValuesWithUndefined","valuesWithReadOnly","parseJSFToValidate","getDefaultValueForType","type","supportedTypes","__name","getInitialDefaultValue","defaultValues","field","defaultFieldValue","get","fieldTransformValueFromAPI","fieldTypesTransformations","generatedValue","defaultValueDeprecated","initialValueForCheckboxAsBool","excludeString","val","getInitialSubFieldValues","parentFieldKeyPath","initialValue","fieldKeyPath","subFields","subFieldValues","subField","getInitialValues","fields","initialValues","defaultFieldValues","applyFieldDynamicProperties","getFieldsWithFlatFieldsets","fieldsets","values","flatFieldsetsKeys","flatFieldsetsFieldNames","flatFieldsetKey","flatFieldsetFields","rest","childFields","name","f","childField","isFieldVisible","accumulator","accumulatedFieldsSorted","fieldsetPosition","accumulatorItem","enableAckFields","result","k","v","getMinStartDate","minOnBoardingTime","today","minDate","addBusinessDays","isWeekend","nextMonday"]}
|
package/dist/chunk-DV6PCBAX.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as v}from"./chunk-SXR333SU.js";import{a as A}from"./chunk-2YTBWEC7.js";import{F as b,d as E,s as w}from"./chunk-W3YE53JN.js";import{a as l,b as _}from"./chunk-OXL3QGHT.js";import{a as M}from"./chunk-PJBAQZ6G.js";import{d}from"./chunk-KQPDXXG3.js";import{b as j,d as S}from"./chunk-ARTSDUSS.js";import{a as t}from"./chunk-P37U34EQ.js";import{createHeadlessForm as I,modify as B}from"@remoteoss/json-schema-form-old";import{useMutation as Q,useQuery as J}from"@tanstack/react-query";var K=t(({countryCode:a,employment:r,fieldValues:n,options:e})=>{let{client:u}=d(),m=e?.jsonSchemaVersion?.contract_amendments?{json_schema_version:e.jsonSchemaVersion.contract_amendments}:{};return J({queryKey:["contract-amendment-schema"],retry:!1,queryFn:t(async()=>{let o=await E({client:u,headers:{Authorization:""},query:{employment_id:r?.id,country_code:a,...m}});if(o.error||!o.data)throw new Error("Failed to fetch contract amendment schema");return o},"queryFn"),enabled:!!r,select:t(({data:o})=>{let c=o?.data||{};if(e&&e.jsfModify){let{schema:y}=B(c,e.jsfModify);c=y}let s={...n,annual_gross_salary:n?.annual_gross_salary?j(n?.annual_gross_salary):void 0},f=Object.keys(s).length>0;return I(c,{initialValues:f?s:_(r)})},"select")})},"useContractAmendmentSchemaQuery"),U=t(a=>{let{client:r}=d(),n=a?.jsonSchemaVersion?.contract_amendments?{json_schema_version:a.jsonSchemaVersion.contract_amendments}:{};return Q({mutationFn:t(e=>w({client:r,headers:{Authorization:""},body:e,query:{...n}}),"mutationFn")})},"useCreateContractAmendmentMutation"),D=t(a=>{let{client:r}=d(),n=a?.jsonSchemaVersion?.contract_amendments?{json_schema_version:a.jsonSchemaVersion.contract_amendments}:{};return Q({mutationFn:t(e=>b({client:r,headers:{Authorization:""},body:e,query:{...n}}),"mutationFn")})},"useAutomatableContractAmendmentMutation"),ae=t(({employmentId:a,countryCode:r,options:n})=>{let{fieldValues:e,setFieldValues:u,stepState:m,nextStep:o,previousStep:c}=M(l),{data:s,isLoading:f,isError:V,error:y}=v({employmentId:a}),{data:i,isLoading:q,isError:L,error:T}=K({employment:s,countryCode:r,fieldValues:{...m.values?.[m.currentStep.name],...e},options:n}),k=_(s,i?.fields),F=U(n),g=D(n);async function O(h){let p=await S(h,i?.fields||[],{isPartialValidation:!1}),P={employment_id:s?.id,amendment_contract_id:s?.active_contract_id,contract_amendment:{...p}};switch(m.currentStep.name){case l.form.name:{let{mutateAsync:C}=A(g),H=await C(P);return o(),H}case l.confirmation_form.name:{let{mutateAsync:C}=A(F);return C(P)}default:throw new Error("Invalid step state")}}t(O,"onSubmit");async function z(h){if(i){let p=await S(h,i?.fields);return i?.handleValidation(p)}return null}t(z,"handleValidation");function x(){c()}return t(x,"back"),{stepState:m,fields:i?.fields||[],isLoading:f||q,isError:V||L,error:y||T,isSubmitting:g.isPending||F.isPending,initialValues:k,values:e,handleValidation:z,checkFieldUpdates:u,onSubmit:O,back:x}},"useContractAmendment");export{ae as a};
|
|
2
|
-
//# sourceMappingURL=chunk-DV6PCBAX.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/ContractAmendment/hooks.ts"],"sourcesContent":["import {\n CreateContractAmendmentParams,\n Employment,\n getShowContractAmendmentSchema,\n postAutomatableContractAmendment,\n postCreateContractAmendment,\n} from '@/src/client';\n\nimport {\n convertToCents,\n parseJSFToValidate,\n} from '@/src/components/form/utils';\nimport { mutationToPromise } from '@/src/lib/mutations';\n\nimport { Client } from '@/src/client/client';\nimport { createHeadlessForm, modify } from '@remoteoss/json-schema-form-old';\nimport { useMutation, useQuery } from '@tanstack/react-query';\nimport { ContractAmendmentParams } from './types';\n\nimport { useEmploymentQuery } from '@/src/common/api';\nimport { useClient } from '@/src/context';\nimport { FieldValues } from 'react-hook-form';\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 let jsfSchema = data?.data || {};\n\n if (options && options.jsfModify) {\n const { schema } = modify(jsfSchema, options.jsfModify);\n jsfSchema = schema;\n }\n\n const copyFieldValues = {\n ...fieldValues,\n annual_gross_salary: fieldValues?.annual_gross_salary\n ? convertToCents(fieldValues?.annual_gross_salary)\n : undefined,\n };\n\n const hasFieldValues = Object.keys(copyFieldValues).length > 0;\n\n const result = createHeadlessForm(jsfSchema, {\n initialValues: hasFieldValues\n ? copyFieldValues\n : buildInitialValues(employment),\n });\n return result;\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":["createHeadlessForm","modify","useMutation","useQuery","useContractAmendmentSchemaQuery","__name","countryCode","employment","fieldValues","options","client","useClient","jsonSchemaQueryParam","useQuery","response","getShowContractAmendmentSchema","data","jsfSchema","schema","modify","copyFieldValues","convertToCents","hasFieldValues","createHeadlessForm","buildInitialValues","useCreateContractAmendmentMutation","useMutation","payload","postCreateContractAmendment","useAutomatableContractAmendmentMutation","postAutomatableContractAmendment","useContractAmendment","employmentId","setFieldValues","stepState","nextStep","previousStep","useStepState","STEPS","isLoadingEmployment","isErrorEmployment","errorEmployment","useEmploymentQuery","contractAmendmentHeadlessForm","isLoadingContractAmendments","isErrorContractAmendmentSchema","errorContractAmendmentSchema","initialValues","createContractAmendmentMutation","automatableContractAmendmentMutation","onSubmit","values","parsedValues","parseJSFToValidate","mutateAsync","mutationToPromise","automatableContractAmendment","handleValidation","back"]}
|
package/dist/chunk-EDVJBPCB.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{b as r}from"./chunk-PGWKJ6FK.js";import{a as n}from"./chunk-6GTRAHWJ.js";import{b as o}from"./chunk-KQPDXXG3.js";import{a as t}from"./chunk-P37U34EQ.js";import{jsx as f}from"react/jsx-runtime";function B({children:u,...i}){let{formId:m}=r(),{components:e}=o(),s=e?.button||n;return f(s,{...i,form:m,children:u})}t(B,"OnboardingSubmit");export{B as a};
|
|
2
|
-
//# sourceMappingURL=chunk-EDVJBPCB.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/Onboarding/components/OnboardingSubmit.tsx"],"sourcesContent":["import { ButtonHTMLAttributes, PropsWithChildren } from 'react';\nimport { ButtonDefault } from '@/src/components/form/fields/default/ButtonDefault';\nimport { useOnboardingContext } from '@/src/flows/Onboarding/context';\nimport { useFormFields } from '@/src/context';\n\nexport function OnboardingSubmit({\n children,\n ...props\n}: PropsWithChildren<\n ButtonHTMLAttributes<HTMLButtonElement> & Record<string, unknown>\n>) {\n const { formId } = useOnboardingContext();\n const { components } = useFormFields();\n\n const CustomButton = components?.button || ButtonDefault;\n return (\n <CustomButton {...props} form={formId}>\n {children}\n </CustomButton>\n );\n}\n"],"mappings":"gKAgBI,cAAAA,MAAA,oBAXG,SAASC,EAAiB,CAC/B,SAAAC,EACA,GAAGC,CACL,EAEG,CACD,GAAM,CAAE,OAAAC,CAAO,EAAIC,EAAqB,EAClC,CAAE,WAAAC,CAAW,EAAIC,EAAc,EAE/BC,EAAeF,GAAY,QAAUG,EAC3C,OACET,EAACQ,EAAA,CAAc,GAAGL,EAAO,KAAMC,EAC5B,SAAAF,EACH,CAEJ,CAfgBQ,EAAAT,EAAA","names":["jsx","OnboardingSubmit","children","props","formId","useOnboardingContext","components","useFormFields","CustomButton","ButtonDefault","__name"]}
|
package/dist/chunk-EHAZWZ3O.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var e={remoteDoesNext:{title:"What Remote does next:",description:"We'll review the termination request and respond within the next 5 days with any subsequent actions or advice."},whatYouNeedToDo:{title:"What you need to do next:",list:["Make sure any expenses for this employee are approved on Remote.","Make sure any additional payments, such as commission, bonuses, or other allowances are added to Remote before\xA0the 11th, 11:59PM UTC of the last month of employment.","Coordinate the return of the employee\u2019s work equipment."]}};export{e as a};
|
|
2
|
-
//# sourceMappingURL=chunk-EHAZWZ3O.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/Termination/components/AcknowledgeInformation/constants.ts"],"sourcesContent":["export const cards = {\n remoteDoesNext: {\n title: 'What Remote does next:',\n description:\n \"We'll review the termination request and respond within the next 5 days with any subsequent actions or advice.\",\n },\n whatYouNeedToDo: {\n title: 'What you need to do next:',\n list: [\n 'Make sure any expenses for this employee are approved on Remote.',\n 'Make sure any additional payments, such as commission, bonuses, or other allowances are added to Remote before the 11th, 11:59PM UTC of the last month of employment.',\n 'Coordinate the return of the employee’s work equipment.',\n ],\n },\n};\n"],"mappings":"AAAO,IAAMA,EAAQ,CACnB,eAAgB,CACd,MAAO,yBACP,YACE,gHACJ,EACA,gBAAiB,CACf,MAAO,4BACP,KAAM,CACJ,mEACA,2KACA,8DACF,CACF,CACF","names":["cards"]}
|
package/dist/chunk-ERRQIROU.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{b as r}from"./chunk-TOA3JILU.js";import{a as n}from"./chunk-6GTRAHWJ.js";import{b as o}from"./chunk-KQPDXXG3.js";import{a as t}from"./chunk-P37U34EQ.js";import{jsx as f}from"react/jsx-runtime";function c({children:u,...i}){let{formId:m}=r(),{components:e}=o(),s=e?.button||n;return f(s,{...i,form:m,children:u})}t(c,"OnboardingSubmit");export{c as a};
|
|
2
|
-
//# sourceMappingURL=chunk-ERRQIROU.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/ContractorOnboarding/components/OnboardingSubmit.tsx"],"sourcesContent":["import { ButtonHTMLAttributes, PropsWithChildren } from 'react';\nimport { useContractorOnboardingContext } from '@/src/flows/ContractorOnboarding/context';\nimport { useFormFields } from '@/src/context';\nimport { ButtonDefault } from '@/src/components/form/fields/default/ButtonDefault';\n\nexport function OnboardingSubmit({\n children,\n ...props\n}: PropsWithChildren<\n ButtonHTMLAttributes<HTMLButtonElement> & Record<string, unknown>\n>) {\n const { formId } = useContractorOnboardingContext();\n const { components } = useFormFields();\n\n const CustomButton = components?.button || ButtonDefault;\n\n return (\n <CustomButton {...props} form={formId}>\n {children}\n </CustomButton>\n );\n}\n"],"mappings":"gKAiBI,cAAAA,MAAA,oBAZG,SAASC,EAAiB,CAC/B,SAAAC,EACA,GAAGC,CACL,EAEG,CACD,GAAM,CAAE,OAAAC,CAAO,EAAIC,EAA+B,EAC5C,CAAE,WAAAC,CAAW,EAAIC,EAAc,EAE/BC,EAAeF,GAAY,QAAUG,EAE3C,OACET,EAACQ,EAAA,CAAc,GAAGL,EAAO,KAAMC,EAC5B,SAAAF,EACH,CAEJ,CAhBgBQ,EAAAT,EAAA","names":["jsx","OnboardingSubmit","children","props","formId","useContractorOnboardingContext","components","useFormFields","CustomButton","ButtonDefault","__name"]}
|
package/dist/chunk-ETYRNQJJ.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{b as u}from"./chunk-MRYRNB7Y.js";import{a as f}from"./chunk-EYQ4PYUT.js";import{b as a}from"./chunk-LNV36S6D.js";import{f as s,g as l}from"./chunk-66N57DKF.js";import{a as t}from"./chunk-P37U34EQ.js";import{useEffect as y}from"react";import{jsx as r}from"react/jsx-runtime";function B({defaultValues:F,fields:m,onSubmit:d}){let{formId:c,terminationBag:o}=u(),p=a(o.handleValidation),e=s({resolver:p,defaultValues:F,shouldUnregister:!1,mode:"onBlur"});y(()=>{let V=e?.watch(i=>{Object.keys(i).some(n=>i[n]!==o?.initialValues?.[n])&&o?.checkFieldUpdates(i)});return()=>V?.unsubscribe()},[]);let T=m||(o?.fields??[]);return r(l,{...e,children:r("form",{id:c,onSubmit:e.handleSubmit(d),className:"space-y-4 RemoteFlows__TerminationForm",children:r(f,{fields:T})})})}t(B,"TerminationForm");export{B as a};
|
|
2
|
-
//# sourceMappingURL=chunk-ETYRNQJJ.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/Termination/TerminationForm.tsx"],"sourcesContent":["import { Fields } from '@remoteoss/json-schema-form-old';\nimport { JSONSchemaFormFields } from '@/src/components/form/JSONSchemaForm';\nimport { Form } from '@/src/components/ui/form';\nimport { useEffect } from 'react';\nimport { useTerminationContext } from './context';\nimport { TerminationFormValues } from '@/src/flows/Termination/types';\nimport { useForm } from 'react-hook-form';\nimport { useJsonSchemasValidationFormResolver } from '@/src/components/form/validationResolver';\n\ntype TerminationFormProps = {\n onSubmit: (payload: TerminationFormValues) => void;\n fields?: Fields;\n defaultValues?: TerminationFormValues;\n};\n\nexport function TerminationForm({\n defaultValues,\n fields,\n onSubmit,\n}: TerminationFormProps) {\n const { formId, terminationBag } = useTerminationContext();\n\n const resolver = useJsonSchemasValidationFormResolver(\n terminationBag.handleValidation,\n );\n\n const form = useForm({\n resolver,\n defaultValues: defaultValues,\n shouldUnregister: false,\n mode: 'onBlur',\n });\n\n useEffect(() => {\n const subscription = form?.watch((values) => {\n const isAnyFieldDirty = Object.keys(values).some(\n (key) =>\n values[key as keyof TerminationFormValues] !==\n terminationBag?.initialValues?.[key as keyof TerminationFormValues],\n );\n if (isAnyFieldDirty) {\n terminationBag?.checkFieldUpdates(values as TerminationFormValues);\n }\n });\n return () => subscription?.unsubscribe();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const jsonSchemaFields = fields ? fields : (terminationBag?.fields ?? []);\n\n return (\n <Form {...form}>\n <form\n id={formId}\n onSubmit={form.handleSubmit(onSubmit)}\n className='space-y-4 RemoteFlows__TerminationForm'\n >\n <JSONSchemaFormFields fields={jsonSchemaFields} />\n </form>\n </Form>\n );\n}\n"],"mappings":"+MAGA,OAAS,aAAAA,MAAiB,QAsDlB,cAAAC,MAAA,oBA1CD,SAASC,EAAgB,CAC9B,cAAAC,EACA,OAAAC,EACA,SAAAC,CACF,EAAyB,CACvB,GAAM,CAAE,OAAAC,EAAQ,eAAAC,CAAe,EAAIC,EAAsB,EAEnDC,EAAWC,EACfH,EAAe,gBACjB,EAEMI,EAAOC,EAAQ,CACnB,SAAAH,EACA,cAAeN,EACf,iBAAkB,GAClB,KAAM,QACR,CAAC,EAEDU,EAAU,IAAM,CACd,IAAMC,EAAeH,GAAM,MAAOI,GAAW,CACnB,OAAO,KAAKA,CAAM,EAAE,KACzCC,GACCD,EAAOC,CAAkC,IACzCT,GAAgB,gBAAgBS,CAAkC,CACtE,GAEET,GAAgB,kBAAkBQ,CAA+B,CAErE,CAAC,EACD,MAAO,IAAMD,GAAc,YAAY,CAEzC,EAAG,CAAC,CAAC,EAEL,IAAMG,EAAmBb,IAAmBG,GAAgB,QAAU,CAAC,GAEvE,OACEN,EAACiB,EAAA,CAAM,GAAGP,EACR,SAAAV,EAAC,QACC,GAAIK,EACJ,SAAUK,EAAK,aAAaN,CAAQ,EACpC,UAAU,yCAEV,SAAAJ,EAACkB,EAAA,CAAqB,OAAQF,EAAkB,EAClD,EACF,CAEJ,CA9CgBG,EAAAlB,EAAA","names":["useEffect","jsx","TerminationForm","defaultValues","fields","onSubmit","formId","terminationBag","useTerminationContext","resolver","useJsonSchemasValidationFormResolver","form","useForm","useEffect","subscription","values","key","jsonSchemaFields","Form","JSONSchemaFormFields","__name"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/form/JSONSchemaForm.tsx","../src/components/form/fields/fieldsMapping.tsx","../src/components/form/fields/ForcedValueField.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Fields } from '@remoteoss/json-schema-form-old';\nimport React, { Fragment } from 'react';\n\nimport { fieldsMap } from '@/src/components/form/fields/fieldsMapping';\nimport { Statement } from '@/src/components/form/Statement';\nimport { ForcedValueField } from '@/src/components/form/fields/ForcedValueField';\nimport { Components, JSFFieldset } from '@/src/types/remoteFlows';\nimport { getFieldsWithFlatFieldsets } from './utils';\nimport { StatementComponentProps } from '@/src/types/fields';\nimport { useFormContext } from 'react-hook-form';\n\ntype JSONSchemaFormFieldsProps = {\n fields: Fields;\n components?: Components;\n fieldsets?: JSFFieldset | null | undefined;\n fieldValues?: Record<string, unknown>;\n};\n\nfunction checkFieldHasForcedValue(field: any) {\n // A field to be considered \"forced value\" must:\n return (\n field.const !== undefined && // Only accepts a specific value\n field.const === field.default && // It can be prefilled, meaning it's not critical\n field.inputType !== 'checkbox' && // Because checkbox must always be visible\n field.inputType !== 'hidden' // Because hidden inputs shouldn't be visible\n );\n}\n\nexport const JSONSchemaFormFields = ({\n fields,\n fieldsets,\n fieldValues,\n components,\n}: JSONSchemaFormFieldsProps) => {\n const { setValue } = useFormContext();\n\n if (!fields || fields.length === 0) return null;\n\n const maybeFieldWithFlatFieldsets =\n fieldsets && fieldValues\n ? getFieldsWithFlatFieldsets({\n fields: fields,\n fieldsets: fieldsets,\n values: fieldValues,\n })\n : fields;\n\n return (\n <>\n {maybeFieldWithFlatFieldsets.map((field) => {\n if (field.calculateDynamicProperties) {\n field = {\n ...field,\n ...(field.calculateDynamicProperties(fieldValues, field) || {}),\n };\n }\n\n if (field.isVisible === false || field.deprecated || field.hidden) {\n return null; // Skip hidden or deprecated fields\n }\n\n if (checkFieldHasForcedValue(field)) {\n return (\n <ForcedValueField\n key={field.name as string}\n name={field.name as string}\n description={field.description as string}\n value={field.const as string}\n statement={field.statement as any}\n label={field.label as string}\n helpCenter={field.meta?.helpCenter}\n />\n );\n }\n\n if (field.Component) {\n const { Component } = field as {\n Component: React.ComponentType<any>;\n };\n return (\n <Component\n key={field.name as string}\n setValue={(value: unknown) => setValue(field.name, value)}\n {...field}\n />\n );\n }\n\n let FieldComponent =\n fieldsMap[field.inputType as keyof typeof fieldsMap];\n\n if (!FieldComponent) {\n return (\n <p className='error'>\n Field type {field.inputType as string} not supported\n </p>\n );\n }\n\n if (field.inputType === 'fieldset') {\n return (\n <FieldComponent\n key={field.name}\n {...field}\n components={components}\n />\n );\n }\n\n if (field.inputType === 'fieldset-flat') {\n return (\n <FieldComponent\n key={field.name}\n {...field}\n components={components}\n isFlatFieldset\n />\n );\n }\n\n // TODO: Have doubts about this, it seems we only support checkbox for multiple select\n if (field.inputType === 'select' && field.multiple) {\n FieldComponent = fieldsMap['multi-select'];\n }\n\n return (\n <Fragment key={field.name as string}>\n <FieldComponent\n {...field}\n component={\n components && components[field.inputType as keyof Components]\n }\n />\n {field.statement ? (\n <Statement\n {...(field.statement as StatementComponentProps['data'])}\n />\n ) : null}\n {field.extra ? field.extra : null}\n </Fragment>\n );\n })}\n </>\n );\n};\n","import { $TSFixMe } from '@/src/types/remoteFlows';\nimport { baseFields } from './baseFields';\nimport { FieldSetField } from './FieldSetField';\nimport { SupportedTypes } from './types';\n\nexport const fieldsMap: Record<\n SupportedTypes,\n React.ComponentType<$TSFixMe>\n> = {\n ...baseFields,\n fieldset: FieldSetField,\n 'fieldset-flat': FieldSetField,\n};\n","import { useFormContext } from 'react-hook-form';\nimport { sanitizeHtml } from '@/src/lib/utils';\nimport { useEffect } from 'react';\nimport { ZendeskTriggerButton } from '@/src/components/shared/zendesk-drawer/ZendeskTriggerButton';\n\nconst Description = ({\n name,\n description,\n helpCenter,\n}: {\n name: string;\n description: string;\n helpCenter?: {\n callToAction: string;\n id: number;\n url: string;\n label: string;\n };\n}) => {\n return (\n <span>\n <span\n className={`text-xs RemoteFlows__ForcedValue__Description__${name}`}\n dangerouslySetInnerHTML={{ __html: sanitizeHtml(description) }}\n />\n {helpCenter?.callToAction && helpCenter?.id && (\n <ZendeskTriggerButton\n className='RemoteFlows__ForcedValue__HelpCenterLink'\n zendeskId={helpCenter.id}\n >\n {helpCenter.callToAction}\n </ZendeskTriggerButton>\n )}\n </span>\n );\n};\n\nexport type ForcedValueFieldProps = {\n name: string;\n value: string;\n description: string;\n statement?: {\n title?: string;\n description?: string;\n };\n label: string;\n helpCenter?: {\n callToAction: string;\n id: number;\n url: string;\n label: string;\n };\n};\n\nexport function ForcedValueField({\n name,\n value,\n description,\n statement,\n label,\n helpCenter,\n}: ForcedValueFieldProps) {\n const { setValue } = useFormContext();\n const descriptionSanitized = sanitizeHtml(\n statement?.description || description,\n );\n useEffect(() => {\n setValue(name, value);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n <div>\n {statement ? (\n <>\n {/* if statement?.title is undefined which could be for example belgium contract details form, we need to use the label attribute */}\n <p\n className={`text-sm RemoteFlows__ForcedValue__Title__${name}`}\n dangerouslySetInnerHTML={{\n __html: sanitizeHtml(statement?.title || label),\n }}\n />\n <Description\n name={name}\n description={sanitizeHtml(statement?.description || description)}\n helpCenter={helpCenter}\n />\n </>\n ) : (\n <Description\n name={name}\n description={descriptionSanitized}\n helpCenter={helpCenter}\n />\n )}\n </div>\n );\n}\n"],"mappings":"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","names":["Fragment","fieldsMap","baseFields","FieldSetField","useEffect","Fragment","jsx","jsxs","Description","__name","name","description","helpCenter","sanitizeHtml","ZendeskTriggerButton","ForcedValueField","value","statement","label","setValue","useFormContext","descriptionSanitized","useEffect","Fragment","jsx","jsxs","checkFieldHasForcedValue","field","__name","JSONSchemaFormFields","fields","fieldsets","fieldValues","components","setValue","useFormContext","maybeFieldWithFlatFieldsets","getFieldsWithFlatFieldsets","ForcedValueField","Component","value","FieldComponent","fieldsMap","Statement"]}
|
package/dist/chunk-GCTHZSIN.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as j}from"./chunk-AP56UUME.js";import{a as x}from"./chunk-R2MHAPWD.js";import{c as P}from"./chunk-3UDG4IJO.js";import{D as F,I as q,J as O,f as S,l as h,n as g}from"./chunk-W3YE53JN.js";import{b as D}from"./chunk-Z5WMKCRJ.js";import{d as a}from"./chunk-KQPDXXG3.js";import{b as C}from"./chunk-ARTSDUSS.js";import{b as _}from"./chunk-L3Z2G32A.js";import{a as e}from"./chunk-P37U34EQ.js";import{createHeadlessForm as f,modify as M}from"@remoteoss/remote-json-schema-form-kit";import{useMutation as b,useQuery as y}from"@tanstack/react-query";var k=e(({fieldValues:n,options:o})=>y({queryKey:["contract-document-signature"],queryFn:e(async()=>f(x,{initialValues:n}),"queryFn"),enabled:o?.queryOptions?.enabled}),"useGetContractDocumentSignatureSchema"),B=e(()=>{let{client:n}=a();return b({mutationFn:e(async({employmentId:o,contractDocumentId:t,payload:r})=>q({client:n,body:r,path:{employment_id:o,contract_document_id:t}}),"mutationFn")})},"useSignContractDocument"),H=e(({employmentId:n,contractDocumentId:o,options:t})=>{let{client:r}=a();return y({queryKey:["contract-document",n,o],queryFn:e(async()=>g({client:r,path:{employment_id:n,id:o}}),"queryFn"),enabled:t?.queryOptions?.enabled,select:e(({data:u})=>u?.data,"select")})},"useGetShowContractDocument"),V=e(({employmentId:n,options:o})=>{let{client:t}=a();return y({queryKey:["contractor-subscriptions",n],queryFn:e(async()=>h({client:t,path:{employment_id:n}}),"queryFn"),enabled:o?.queryOptions?.enabled,select:e(({data:r})=>r?.data,"select")})},"useGetContractorSubscriptions"),z=e(()=>{let{client:n}=a();return b({mutationFn:e(async({employmentId:o,payload:t})=>O({client:n,body:t,path:{employment_id:o}}),"mutationFn")})},"usePostManageContractorSubscriptions"),A=e(()=>{let{client:n}=a();return b({mutationFn:e(async({employmentId:o,payload:t})=>F({client:n,body:t,path:{employment_id:o}}),"mutationFn")})},"useCreateContractorContractDocument"),E=e(({countryCode:n,fieldValues:o,options:t})=>{let r=t?.jsonSchemaVersion?.contractor_contract_details_form_schema?{json_schema_version:t.jsonSchemaVersion.contractor_contract_details_form_schema}:{},{client:u}=a();return y({queryKey:["contractor-onboarding-details-schema",n],retry:!1,queryFn:e(async()=>S({client:u,path:{country_code:n},query:{...r}}),"queryFn"),enabled:t?.queryOptions?.enabled,select:e(({data:m})=>{let i=m?.data?.schema||{};if(t&&t.jsfModify){let{schema:c}=M(i,t.jsfModify);i=c}let s=D(i.properties||{},"money").reduce((c,p)=>(c[p]=C(o[p]),c),{}),d={...o,...s};return{meta:{"x-jsf-fieldsets":i["x-jsf-fieldsets"]},...f(i,{initialValues:d})}},"select")})},"useContractorOnboardingDetailsSchema"),X=e((n,o)=>{let{data:t,isLoading:r}=V({employmentId:n,options:{queryOptions:o?.queryOptions}}),{schema:u}=M(j.data.schema,o?.jsfModify||{}),m=f(u);if(t){let i=m.fields.find(l=>l.name==="subscription");if(i){let l=t.filter(s=>s.product.identifier!==P).map(s=>{let d="";s.price.amount&&(d=_(s.price.amount,s.currency.symbol));let c=`${s.product.name} - ${d}`,p=s.product.identifier;return{label:c,value:p}});i.options=l}}return{isLoading:r,form:m}},"useContractorSubscriptionSchemaField");export{k as a,B as b,H as c,V as d,z as e,A as f,E as g,X as h};
|
|
2
|
-
//# sourceMappingURL=chunk-GCTHZSIN.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/ContractorOnboarding/api.ts"],"sourcesContent":["import {\n CreateContractDocument,\n getShowContractDocument,\n getShowContractorContractDetailsCountry,\n getIndexSubscription,\n ManageContractorPlusSubscriptionOperationsParams,\n postCreateContractDocument,\n postManageContractorPlusSubscriptionSubscription,\n postSignContractDocument,\n SignContractDocument,\n} from '@/src/client';\nimport { convertToCents } from '@/src/components/form/utils';\nimport { useClient } from '@/src/context';\nimport { signatureSchema } from '@/src/flows/ContractorOnboarding/json-schemas/signature';\nimport { selectContractorSubscriptionStepSchema } from '@/src/flows/ContractorOnboarding/json-schemas/selectContractorSubscriptionStep';\nimport {\n JSONSchemaFormResultWithFieldsets,\n NextFlowOptions,\n} from '@/src/flows/types';\nimport { findFieldsByType } from '@/src/flows/utils';\nimport { formatCurrency } from '@/src/lib/utils';\nimport { JSFFieldset } from '@/src/types/remoteFlows';\nimport { Client } from '@/src/client/client';\nimport {\n createHeadlessForm,\n modify,\n} from '@remoteoss/remote-json-schema-form-kit';\nimport { useMutation, useQuery, UseQueryResult } from '@tanstack/react-query';\nimport { FieldValues } from 'react-hook-form';\nimport { corProductIdentifier } from '@/src/flows/ContractorOnboarding/constants';\n\n/**\n * Get the contract document signature schema\n * @param fieldValues - The field values\n * @param options - The options\n * @returns The contract document signature schema\n */\nexport const useGetContractDocumentSignatureSchema = ({\n fieldValues,\n options,\n}: {\n fieldValues: FieldValues;\n options?: { queryOptions?: { enabled?: boolean } };\n}) => {\n return useQuery({\n queryKey: ['contract-document-signature'],\n queryFn: async () => {\n return createHeadlessForm(signatureSchema, {\n initialValues: fieldValues,\n });\n },\n enabled: options?.queryOptions?.enabled,\n });\n};\n\n/**\n * Signs the contract document\n * @param employmentId - The employment ID\n * @param contractDocumentId - The contract document ID\n * @param payload - The payload\n * @returns The signed contract document\n */\nexport const useSignContractDocument = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: async ({\n employmentId,\n contractDocumentId,\n payload,\n }: {\n employmentId: string;\n contractDocumentId: string;\n payload: SignContractDocument;\n }) => {\n return postSignContractDocument({\n client: client as Client,\n body: payload,\n path: {\n employment_id: employmentId,\n contract_document_id: contractDocumentId,\n },\n });\n },\n });\n};\n\n/**\n * Get the contract document for a given employment and contract document ID\n * @param employmentId - The employment ID\n * @param contractDocumentId - The contract document ID\n * @returns The contract document\n */\nexport const useGetShowContractDocument = ({\n employmentId,\n contractDocumentId,\n options,\n}: {\n employmentId: string;\n contractDocumentId: string;\n options?: { queryOptions?: { enabled?: boolean } };\n}) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['contract-document', employmentId, contractDocumentId],\n queryFn: async () => {\n return getShowContractDocument({\n client: client as Client,\n path: { employment_id: employmentId, id: contractDocumentId },\n });\n },\n enabled: options?.queryOptions?.enabled,\n select: ({ data }) => {\n return data?.data;\n },\n });\n};\n\n/**\n * Get the contractor subscriptions for the given employment id\n * @param employmentId - The employment ID\n * @returns The contractor subscriptions available\n */\nexport const useGetContractorSubscriptions = ({\n employmentId,\n options,\n}: {\n employmentId: string;\n options?: { queryOptions?: { enabled?: boolean } };\n}) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['contractor-subscriptions', employmentId],\n queryFn: async () => {\n return getIndexSubscription({\n client: client as Client,\n path: { employment_id: employmentId },\n });\n },\n enabled: options?.queryOptions?.enabled,\n select: ({ data }) => {\n return data?.data;\n },\n });\n};\n\n/**\n * Upgrade or downgrade contractor subscription\n */\nexport const usePostManageContractorSubscriptions = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: async ({\n employmentId,\n payload,\n }: {\n employmentId: string;\n payload: ManageContractorPlusSubscriptionOperationsParams;\n }) => {\n return postManageContractorPlusSubscriptionSubscription({\n client: client as Client,\n body: payload,\n path: {\n employment_id: employmentId,\n },\n });\n },\n });\n};\n\n/**\n * Saves the contractor details data\n * @param employmentId - The employment ID\n * @param payload - The payload\n * @returns The contractor contract document\n */\nexport const useCreateContractorContractDocument = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: async ({\n employmentId,\n payload,\n }: {\n employmentId: string;\n payload: CreateContractDocument;\n }) => {\n return postCreateContractDocument({\n client: client as Client,\n body: payload,\n path: {\n employment_id: employmentId,\n },\n });\n },\n });\n};\n\n/**\n * Get the contractor onboarding details schema for a given country\n * @param countryCode - The country code\n * @param fieldValues - The field values\n * @param options - The options\n * @returns The contractor onboarding details schema\n */\nexport const useContractorOnboardingDetailsSchema = ({\n countryCode,\n fieldValues,\n options,\n}: {\n countryCode: string;\n fieldValues: FieldValues;\n options?: NextFlowOptions & { queryOptions?: { enabled?: boolean } };\n query?: Record<string, unknown>;\n}): UseQueryResult<JSONSchemaFormResultWithFieldsets> => {\n const jsonSchemaQueryParam = options?.jsonSchemaVersion\n ?.contractor_contract_details_form_schema\n ? {\n json_schema_version:\n options.jsonSchemaVersion.contractor_contract_details_form_schema,\n }\n : {};\n const { client } = useClient();\n return useQuery({\n queryKey: ['contractor-onboarding-details-schema', countryCode],\n retry: false,\n queryFn: async () => {\n return getShowContractorContractDetailsCountry({\n client: client as Client,\n path: { country_code: countryCode },\n query: {\n ...jsonSchemaQueryParam,\n },\n });\n },\n enabled: options?.queryOptions?.enabled,\n select: ({ data }) => {\n let jsfSchema = data?.data?.schema || {};\n if (options && options.jsfModify) {\n const { schema } = modify(jsfSchema, options.jsfModify);\n jsfSchema = schema;\n }\n\n // Contract details contains x-jsf-logic that need to be calculated every time a form value changes\n // In particular there are calculations involving the annual_gross_salary field. However this field value doesn't get\n // here in cents. So we need to convert the money fields to cents, so that the calculations are correct.\n const moneyFields = findFieldsByType(jsfSchema.properties || {}, 'money');\n const moneyFieldsData = moneyFields.reduce<Record<string, number | null>>(\n (acc, field) => {\n acc[field] = convertToCents(fieldValues[field]);\n return acc;\n },\n {},\n );\n\n const initialValues = {\n ...fieldValues,\n ...moneyFieldsData,\n };\n\n return {\n meta: {\n 'x-jsf-fieldsets': jsfSchema['x-jsf-fieldsets'] as JSFFieldset,\n },\n ...createHeadlessForm(jsfSchema, {\n initialValues,\n }),\n };\n },\n });\n};\n\nexport const useContractorSubscriptionSchemaField = (\n employmentId: string,\n options?: NextFlowOptions & { queryOptions?: { enabled?: boolean } },\n) => {\n const { data: contractorSubscriptions, isLoading: isLoading } =\n useGetContractorSubscriptions({\n employmentId: employmentId,\n options: {\n queryOptions: options?.queryOptions,\n },\n });\n\n const { schema: selectContractorSubscriptionSchema } = modify(\n selectContractorSubscriptionStepSchema.data.schema,\n options?.jsfModify || {},\n );\n\n const form = createHeadlessForm(selectContractorSubscriptionSchema);\n\n if (contractorSubscriptions) {\n const field = form.fields.find((field) => field.name === 'subscription');\n if (field) {\n const options = contractorSubscriptions\n .filter((opts) => opts.product.identifier !== corProductIdentifier)\n .map((opts) => {\n let formattedPrice = '';\n if (opts.price.amount) {\n formattedPrice = formatCurrency(\n opts.price.amount,\n opts.currency.symbol,\n );\n }\n const label = `${opts.product.name} - ${formattedPrice}`;\n const value = opts.product.identifier;\n return { label, value };\n });\n field.options = options;\n }\n }\n\n return {\n isLoading,\n form,\n };\n};\n"],"mappings":"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","names":["createHeadlessForm","modify","useMutation","useQuery","useGetContractDocumentSignatureSchema","__name","fieldValues","options","useQuery","createHeadlessForm","signatureSchema","useSignContractDocument","client","useClient","useMutation","employmentId","contractDocumentId","payload","postSignContractDocument","useGetShowContractDocument","getShowContractDocument","data","useGetContractorSubscriptions","getIndexSubscription","usePostManageContractorSubscriptions","postManageContractorPlusSubscriptionSubscription","useCreateContractorContractDocument","postCreateContractDocument","useContractorOnboardingDetailsSchema","countryCode","jsonSchemaQueryParam","getShowContractorContractDetailsCountry","jsfSchema","schema","modify","moneyFieldsData","findFieldsByType","acc","field","convertToCents","initialValues","useContractorSubscriptionSchemaField","contractorSubscriptions","isLoading","selectContractorSubscriptionSchema","selectContractorSubscriptionStepSchema","form","opts","corProductIdentifier","formattedPrice","formatCurrency","label","value"]}
|
package/dist/chunk-GHJBEQIR.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as ke}from"./chunk-VAIBLWOY.js";import{a as we}from"./chunk-OP72BS23.js";import{a as ge,b as Fe,c as Ee,f as he,g as Ve,h as Ce,i as Oe,j as Pe,k as Me,m as Te}from"./chunk-5LSHRCAR.js";import{a as ye,b as pe,c as _e,d as Se,f as be}from"./chunk-H6YNMT4M.js";import{a as N}from"./chunk-2YTBWEC7.js";import{a as Le}from"./chunk-PJBAQZ6G.js";import{d as V,e as L,g as W}from"./chunk-ARTSDUSS.js";import{g as C}from"./chunk-L3Z2G32A.js";import{a as l}from"./chunk-P37U34EQ.js";import{useEffect as at,useMemo as d,useRef as st,useState as Be}from"react";import rt from"lodash.mergewith";import{jsx as qe}from"react/jsx-runtime";var ct={employment_basic_information:"basic_information",contract_details:"contract_details"},lt={select_country:null,basic_information:"employment_basic_information",contract_details:"contract_details",benefits:null,review:null},mt=l(({isLoadingBasicInformationForm:f,isLoadingContractDetailsForm:j,isLoadingEmployment:D,isLoadingBenefitsOffersSchema:J,isLoadingBenefitOffers:c,isLoadingCompany:I,isLoadingCountries:O,employmentStatus:a,employmentId:_,currentStepName:s,basicInformationFields:A,contractDetailsFields:o})=>{let P=f||j||D||J||c||I||O,r=a&&_e.includes(a),w=a&&!Se.includes(a),k=!!(_&&r&&s!=="review"),B=P||k,q=!!(k&&!P&&A.length>0&&o.length>0);return{isLoading:B,isNavigatingToReview:q,isEmploymentReadOnly:r,canInvite:w}},"getLoadingStates"),ht=l(({employmentId:f,companyId:j,countryCode:D,type:J,options:c,skipSteps:I,externalId:O,initialValues:a})=>{let _=st({select_country:{},basic_information:{},contract_details:{},benefits:{}}),[s,A]=Be(f),[o,P]=Be(D||null),{data:r,isLoading:w,refetch:k}=ge(s);f&&r?.country?.code&&!o&&P(r.country.code);let{data:B,isLoading:q}=Ee(s),{data:R,isLoading:G,refetch:Re}=Fe(j),ve=I?.includes("select_country")?pe:ye,{fieldValues:S,stepState:n,setFieldValues:Ne,previousStep:je,nextStep:De,goToStep:x,setStepValues:$}=Le(ve),{selectCountryForm:v,isLoading:z}=Me({jsfModify:c?.jsfModify?.select_country,queryOptions:{enabled:n.currentStep.name==="select_country"}}),K=Ce(),Y=Oe(o,c),Q=Pe(c),Je=Te(),{mutateAsync:Ie}=N(K),{mutateAsync:X}=N(Y),{mutateAsync:Ae}=N(Q),xe=lt[n.currentStep.name]||"employment_basic_information",Ue=ct[xe],He=r?.[Ue]||{},Z=l(({form:e,options:i={},query:m={},jsonSchemaVersion:h})=>{let H=Object.keys(S).length>0?{...a,...n.values?.[n.currentStep.name],...S}:{...a,...He};return he({countryCode:o,form:e,fieldValues:H,query:m,options:{...i,queryOptions:{enabled:i.queryOptions?.enabled??!0}},jsonSchemaVersion:h})},"useJSONSchema"),We=!!(o&&(n.currentStep.name==="basic_information"||f)),Ge=!!(o&&(n.currentStep.name==="contract_details"||f)),{data:u,isLoading:ee}=Z({form:"employment_basic_information",options:{jsfModify:c?.jsfModify?.basic_information,queryOptions:{enabled:We}}}),b=c?.jsfModify?.contract_details?.fields?.annual_gross_salary,U=b&&typeof b=="object"&&"presentation"in b?b.presentation:void 0,te=c?.jsfModify?.contract_details?.fields?.equity_compensation,$e=d(()=>({fields:{annual_gross_salary:{...b,presentation:{annual_gross_salary_conversion_properties:{label:U?.annual_gross_salary_conversion_properties?.label,description:U?.annual_gross_salary_conversion_properties?.description},desiredCurrency:R?.desired_currency,Component:l(e=>qe(we,{desiredCurrency:R?.desired_currency||"",...e}),"Component")}},equity_compensation:{...te,presentation:{calculateDynamicProperties:l((e,i)=>{let m=e.equity_compensation?.offer_equity_compensation,h=i?.meta?.cost;return{extra:qe(ke,{offerEquity:m,equityCost:h})}},"calculateDynamicProperties")}}}}),[b,U,R?.desired_currency,te]),ze=be(c,o),{data:y,isLoading:ne}=Z({form:"contract_details",query:{employment_id:s},options:{jsfModify:{...c?.jsfModify?.contract_details,fields:{...c?.jsfModify?.contract_details?.fields,...$e.fields}},queryOptions:{enabled:Ge}},jsonSchemaVersion:ze}),{data:M,isLoading:oe}=Ve(s,S,c),ie=d(()=>{if(n.currentStep.name==="benefits"){let e={...n.values?.[n.currentStep.name],...S};return rt({},B,e)}return{}},[n.currentStep.name,B,n.values,S]),t=d(()=>({select_country:v?.fields||[],basic_information:u?.fields||[],contract_details:y?.fields||[],benefits:M?.fields||[],review:[]}),[v?.fields,u?.fields,y?.fields,M?.fields]),Ke={select_country:null,basic_information:u?.meta["x-jsf-fieldsets"],contract_details:y?.meta["x-jsf-fieldsets"],benefits:null,review:null},{country:Ye,basic_information:ae={},contract_details:se={},status:re}=r||{},ce=Ye?.code,le=n.currentStep.name,g=d(()=>L(t.select_country,{country:o||ce||""}),[t.select_country,o,ce]),F=d(()=>{let e={...a,...ae};return L(t.basic_information,e)},[t.basic_information,ae,a]),p=d(()=>{let e={...a,...se};return L(t.contract_details,e)},[t.contract_details,se,a]),E=d(()=>{let e={...a,...ie};return L(t.benefits,e)},[t.benefits,ie,a]),Qe=d(()=>r?{select_country:g,basic_information:W(t.basic_information,F),contract_details:r?.contract_details!==null?W(t.contract_details,p):p,benefits:E}:{select_country:g,basic_information:F,contract_details:p,benefits:E},[g,F,p,E,r,t]),{isLoading:Xe,isNavigatingToReview:me,isEmploymentReadOnly:Ze,canInvite:et}=d(()=>mt({isLoadingBasicInformationForm:ee,isLoadingContractDetailsForm:ne,isLoadingEmployment:w,isLoadingBenefitsOffersSchema:oe,isLoadingBenefitOffers:q,isLoadingCompany:G,isLoadingCountries:z,employmentId:f,employmentStatus:re,basicInformationFields:t.basic_information,contractDetailsFields:t.contract_details,currentStepName:le}),[ee,ne,w,oe,q,G,z,f,re,t.basic_information,t.contract_details,le]);at(()=>{me&&(_.current={select_country:C(g,t.select_country),basic_information:C(F,t.basic_information),contract_details:C(p,t.contract_details),benefits:C(E,t.benefits)},$({select_country:g,basic_information:F,contract_details:p,benefits:E,review:{}}),x("review"))},[F,E,p,x,me,g,$,t.basic_information,t.benefits,t.contract_details,t.select_country]);let de=l(async e=>v&&n.currentStep.name==="select_country"?e:u&&n.currentStep.name==="basic_information"?await V(e,u?.fields,{isPartialValidation:!1}):y&&n.currentStep.name==="contract_details"?await V(e,y?.fields,{isPartialValidation:!1}):{},"parseFormValues");async function tt(e){let i=n.currentStep.name;i in _.current&&(_.current[i]=C(e,t[i]));let m=await de(e);switch(Re(),n.currentStep.name){case"select_country":return P(m.country),Promise.resolve({data:{countryCode:m.country}});case"basic_information":{let h=!s&&o,fe=s&&o&&r?.country&&r?.country.code!==o;if(h||fe){let H={basic_information:m,type:J,country_code:o,external_id:O};try{let T=await Ie(H),ue=T.data?.data?.employment?.id;return A(ue),await Je.mutateAsync({employmentId:ue,eligible_to_work_in_residing_country:"citizen",employer_or_work_restrictions:!1}),T}catch(T){throw console.error("Error creating onboarding:",T),T}}else if(s)return X({employmentId:s,basic_information:m,pricing_plan_details:{frequency:"monthly"},external_id:O});return}case"contract_details":return X({employmentId:s,external_id:O,...{contract_details:m,pricing_plan_details:{frequency:"monthly"}}});case"benefits":return Ae({employmentId:s,...e})}}l(tt,"onSubmit");function nt(){je()}l(nt,"back");function ot(){De()}l(ot,"next");function it(e){x(e)}return l(it,"goTo"),{employmentId:s,creditRiskStatus:R?.default_legal_entity_credit_risk_status,fieldValues:S,stepState:n,fields:t[n.currentStep.name],isLoading:Xe,isSubmitting:K.isPending||Y.isPending||Q.isPending,initialValues:Qe,handleValidation:l(async e=>{if(n.currentStep.name==="select_country")return v.handleValidation(e);if(n.currentStep.name==="benefits"&&M){let i=await V(e,M?.fields,{isPartialValidation:!1});return M?.handleValidation(i)}if(u&&n.currentStep.name==="basic_information"){let i=await V(e,u?.fields,{isPartialValidation:!1});return u?.handleValidation(i)}if(y&&n.currentStep.name==="contract_details"){let i=await V(e,y?.fields,{isPartialValidation:!1});return y?.handleValidation(i)}return null},"handleValidation"),checkFieldUpdates:Ne,parseFormValues:de,onSubmit:tt,back:nt,next:ot,goTo:it,meta:{fields:_.current,fieldsets:Ke[n.currentStep.name]},refetchEmployment:k,employment:r,isEmploymentReadOnly:Ze,canInvite:et}},"useOnboarding");export{ht as a};
|
|
2
|
-
//# sourceMappingURL=chunk-GHJBEQIR.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/Onboarding/hooks.tsx"],"sourcesContent":["import { ValidationResult } from '@remoteoss/remote-json-schema-form-kit';\nimport {\n Employment,\n EmploymentCreateParams,\n EmploymentFullParams,\n} from '@/src/client';\nimport { Fields } from '@remoteoss/json-schema-form-old';\nimport { useStepState, Step } from '@/src/flows/useStepState';\nimport {\n disabledInviteButtonEmploymentStatus,\n getContractDetailsSchemaVersion,\n reviewStepAllowedEmploymentStatus,\n STEPS,\n STEPS_WITHOUT_SELECT_COUNTRY,\n} from '@/src/flows/Onboarding/utils';\nimport { prettifyFormValues } from '@/src/lib/utils';\nimport {\n getInitialValues,\n enableAckFields,\n parseJSFToValidate,\n} from '@/src/components/form/utils';\nimport { mutationToPromise } from '@/src/lib/mutations';\nimport { FieldValues } from 'react-hook-form';\nimport { OnboardingFlowProps } from '@/src/flows/Onboarding/types';\nimport { useEffect, useMemo, useRef, useState } from 'react';\nimport mergeWith from 'lodash.mergewith';\nimport {\n useBenefitOffers,\n useBenefitOffersSchema,\n useCompany,\n useCountriesSchemaField,\n useCreateEmployment,\n useEmployment,\n useJSONSchemaForm,\n useUpdateBenefitsOffers,\n useUpdateEmployment,\n useUpsertContractEligibility,\n} from '@/src/flows/Onboarding/api';\nimport { JSFModifyNext, JSONSchemaFormType } from '@/src/flows/types';\nimport { AnnualGrossSalary } from '@/src/flows/Onboarding/components/AnnualGrossSalary';\nimport { $TSFixMe, JSFField, JSFFieldset, Meta } from '@/src/types/remoteFlows';\nimport { EquityPriceDetails } from '@/src/flows/Onboarding/components/EquityPriceDetails';\n\ntype OnboardingHookProps = Omit<OnboardingFlowProps, 'render'>;\n\nconst jsonSchemaToEmployment: Partial<\n Record<JSONSchemaFormType, keyof Employment>\n> = {\n employment_basic_information: 'basic_information',\n contract_details: 'contract_details',\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: 'contract_details',\n benefits: null,\n review: null,\n};\n\nconst getLoadingStates = ({\n isLoadingBasicInformationForm,\n isLoadingContractDetailsForm,\n isLoadingEmployment,\n isLoadingBenefitsOffersSchema,\n isLoadingBenefitOffers,\n isLoadingCompany,\n isLoadingCountries,\n employmentStatus,\n employmentId,\n currentStepName,\n basicInformationFields,\n contractDetailsFields,\n}: {\n isLoadingBasicInformationForm: boolean;\n isLoadingContractDetailsForm: boolean;\n isLoadingEmployment: boolean;\n isLoadingBenefitsOffersSchema: boolean;\n isLoadingBenefitOffers: boolean;\n isLoadingCompany: boolean;\n isLoadingCountries: boolean;\n employmentStatus?: Employment['status'];\n employmentId?: string;\n currentStepName: string;\n basicInformationFields: Fields;\n contractDetailsFields: Fields;\n}) => {\n const initialLoading =\n isLoadingBasicInformationForm ||\n isLoadingContractDetailsForm ||\n isLoadingEmployment ||\n isLoadingBenefitsOffersSchema ||\n isLoadingBenefitOffers ||\n isLoadingCompany ||\n isLoadingCountries;\n\n const isEmploymentReadOnly =\n employmentStatus &&\n reviewStepAllowedEmploymentStatus.includes(employmentStatus);\n\n const canInvite =\n employmentStatus &&\n !disabledInviteButtonEmploymentStatus.includes(employmentStatus);\n\n const shouldHandleReadOnlyEmployment = Boolean(\n employmentId && isEmploymentReadOnly && currentStepName !== 'review',\n );\n\n const isLoading = initialLoading || shouldHandleReadOnlyEmployment;\n\n const isNavigatingToReview = Boolean(\n shouldHandleReadOnlyEmployment &&\n !initialLoading &&\n basicInformationFields.length > 0 &&\n contractDetailsFields.length > 0,\n );\n\n return {\n isLoading,\n isNavigatingToReview,\n isEmploymentReadOnly,\n canInvite,\n };\n};\n\nexport const useOnboarding = ({\n employmentId,\n companyId,\n countryCode,\n type,\n options,\n skipSteps,\n externalId,\n initialValues: onboardingInitialValues,\n}: OnboardingHookProps) => {\n const fieldsMetaRef = useRef<{\n select_country: Meta;\n basic_information: Meta;\n contract_details: Meta;\n benefits: Meta;\n }>({\n select_country: {},\n basic_information: {},\n contract_details: {},\n benefits: {},\n });\n const [internalEmploymentId, setInternalEmploymentId] = useState<\n string | undefined\n >(employmentId);\n const [internalCountryCode, setInternalCountryCode] = useState<string | null>(\n countryCode || null,\n );\n const {\n data: employment,\n isLoading: isLoadingEmployment,\n refetch: refetchEmployment,\n } = useEmployment(internalEmploymentId);\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 { data: benefitOffers, isLoading: isLoadingBenefitOffers } =\n useBenefitOffers(internalEmploymentId);\n\n const {\n data: company,\n isLoading: isLoadingCompany,\n refetch: refetchCompany,\n } = useCompany(companyId);\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 { 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 createEmploymentMutation = useCreateEmployment();\n const updateEmploymentMutation = useUpdateEmployment(\n internalCountryCode as string,\n options,\n );\n const updateBenefitsOffersMutation = useUpdateBenefitsOffers(options);\n const updateContractEligibilityMutation = useUpsertContractEligibility();\n const { mutateAsync: createEmploymentMutationAsync } = mutationToPromise(\n createEmploymentMutation,\n );\n const { mutateAsync: updateEmploymentMutationAsync } = mutationToPromise(\n updateEmploymentMutation,\n );\n const { mutateAsync: updateBenefitsOffersMutationAsync } = mutationToPromise(\n updateBenefitsOffersMutation,\n );\n\n const formType =\n stepToFormSchemaMap[stepState.currentStep.name] ||\n 'employment_basic_information';\n const employmentKey = jsonSchemaToEmployment[formType] as keyof Employment;\n const serverEmploymentData = (employment?.[employmentKey] || {}) as Record<\n string,\n unknown\n >;\n\n const useJSONSchema = ({\n form,\n options: jsonSchemaOptions = {},\n query = {},\n jsonSchemaVersion,\n }: {\n form: JSONSchemaFormType;\n options?: {\n jsfModify?: JSFModifyNext;\n queryOptions?: { enabled?: boolean };\n };\n query?: Record<string, string>;\n jsonSchemaVersion?: number;\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 jsonSchemaVersion,\n });\n };\n\n const isBasicInformationDetailsEnabled = Boolean(\n internalCountryCode &&\n (stepState.currentStep.name === 'basic_information' ||\n Boolean(employmentId)),\n );\n\n const isContractDetailsEnabled = Boolean(\n internalCountryCode &&\n (stepState.currentStep.name === 'contract_details' ||\n Boolean(employmentId)),\n );\n\n const {\n data: basicInformationForm,\n isLoading: isLoadingBasicInformationForm,\n } = useJSONSchema({\n form: 'employment_basic_information',\n options: {\n jsfModify: options?.jsfModify?.basic_information,\n queryOptions: {\n enabled: isBasicInformationDetailsEnabled,\n },\n },\n });\n\n const annualGrossSalaryField =\n options?.jsfModify?.contract_details?.fields?.annual_gross_salary;\n const annualSalaryFieldPresentation =\n annualGrossSalaryField &&\n typeof annualGrossSalaryField === 'object' &&\n 'presentation' in annualGrossSalaryField\n ? (\n annualGrossSalaryField as {\n presentation?: {\n annual_gross_salary_conversion_properties?: {\n label?: string;\n description?: string;\n };\n };\n }\n ).presentation\n : undefined;\n\n const equityCompensationField =\n options?.jsfModify?.contract_details?.fields?.equity_compensation;\n\n const contractDetailsCustomFields = useMemo(\n () => ({\n fields: {\n annual_gross_salary: {\n ...annualGrossSalaryField,\n presentation: {\n annual_gross_salary_conversion_properties: {\n label:\n annualSalaryFieldPresentation\n ?.annual_gross_salary_conversion_properties?.label,\n description:\n annualSalaryFieldPresentation\n ?.annual_gross_salary_conversion_properties?.description,\n },\n desiredCurrency: company?.desired_currency,\n Component: (props: JSFField & { currency: string }) => {\n return (\n <AnnualGrossSalary\n desiredCurrency={company?.desired_currency || ''}\n {...props}\n />\n );\n },\n },\n },\n equity_compensation: {\n ...equityCompensationField,\n presentation: {\n calculateDynamicProperties: (\n values: FieldValues,\n field: JSFField,\n ) => {\n const offerEquity =\n values.equity_compensation?.offer_equity_compensation;\n const equityCost = field?.meta?.cost;\n\n return {\n extra: (\n <EquityPriceDetails\n offerEquity={offerEquity}\n equityCost={equityCost as $TSFixMe}\n />\n ),\n };\n },\n },\n },\n },\n }),\n [\n annualGrossSalaryField,\n annualSalaryFieldPresentation,\n company?.desired_currency,\n equityCompensationField,\n ],\n );\n\n const effectiveContractDetailsJsonSchemaVersion =\n getContractDetailsSchemaVersion(options, internalCountryCode);\n\n const { data: contractDetailsForm, isLoading: isLoadingContractDetailsForm } =\n useJSONSchema({\n form: 'contract_details',\n query: {\n employment_id: internalEmploymentId as string,\n },\n options: {\n jsfModify: {\n ...options?.jsfModify?.contract_details,\n fields: {\n ...options?.jsfModify?.contract_details?.fields,\n ...contractDetailsCustomFields.fields,\n },\n },\n queryOptions: {\n enabled: isContractDetailsEnabled,\n },\n },\n jsonSchemaVersion: effectiveContractDetailsJsonSchemaVersion,\n });\n\n const {\n data: benefitOffersSchema,\n isLoading: isLoadingBenefitsOffersSchema,\n } = useBenefitOffersSchema(\n internalEmploymentId as string,\n fieldValues,\n options,\n );\n\n const initialValuesBenefitOffers = useMemo(() => {\n if (stepState.currentStep.name === 'benefits') {\n const benefitsFormValues = {\n ...stepState.values?.[stepState.currentStep.name as keyof typeof STEPS], // Restore values for the current step\n ...fieldValues,\n };\n return mergeWith({}, benefitOffers, benefitsFormValues);\n }\n return {};\n }, [\n stepState.currentStep.name,\n benefitOffers,\n stepState.values,\n fieldValues,\n ]);\n\n const stepFields: Record<keyof typeof STEPS, Fields> = useMemo(\n () => ({\n select_country: selectCountryForm?.fields || [],\n basic_information: basicInformationForm?.fields || [],\n contract_details: contractDetailsForm?.fields || [],\n benefits: benefitOffersSchema?.fields || [],\n review: [],\n }),\n [\n selectCountryForm?.fields,\n basicInformationForm?.fields,\n contractDetailsForm?.fields,\n benefitOffersSchema?.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 contract_details: contractDetailsForm?.meta['x-jsf-fieldsets'],\n benefits: null,\n review: null,\n };\n\n const {\n country,\n basic_information: employmentBasicInformation = {},\n contract_details: employmentContractDetails = {},\n status: employmentStatus,\n } = employment || {};\n\n const employmentCountryCode = country?.code;\n const currentStepName = stepState.currentStep.name;\n\n const selectCountryInitialValues = useMemo(\n () =>\n getInitialValues(stepFields.select_country, {\n country: internalCountryCode || employmentCountryCode || '',\n }),\n [stepFields.select_country, internalCountryCode, employmentCountryCode],\n );\n\n const basicInformationInitialValues = useMemo(() => {\n const initialValues = {\n ...onboardingInitialValues,\n ...employmentBasicInformation,\n };\n\n return getInitialValues(stepFields.basic_information, initialValues);\n }, [\n stepFields.basic_information,\n employmentBasicInformation,\n onboardingInitialValues,\n ]);\n\n const contractDetailsInitialValues = useMemo(() => {\n const initialValues = {\n ...onboardingInitialValues,\n ...employmentContractDetails,\n };\n\n return getInitialValues(stepFields.contract_details, initialValues);\n }, [\n stepFields.contract_details,\n employmentContractDetails,\n onboardingInitialValues,\n ]);\n\n const benefitsInitialValues = useMemo(() => {\n const initialValues = {\n ...onboardingInitialValues,\n ...initialValuesBenefitOffers,\n };\n\n return getInitialValues(stepFields.benefits, initialValues);\n }, [\n stepFields.benefits,\n initialValuesBenefitOffers,\n onboardingInitialValues,\n ]);\n\n const initialValues = useMemo(() => {\n if (employment) {\n return {\n select_country: selectCountryInitialValues,\n // We don't store ack fields in the db, eg \"ack_start_date_ammendment\" for Argentina, and therefore is not returned in the employment response\n // So when an employmentId exists, it means that the user has already started the onboarding process, and we need to enable the ack fields\n basic_information: enableAckFields(\n stepFields['basic_information'],\n basicInformationInitialValues,\n ),\n contract_details:\n // if contract details is null, it means it has not been filled yet, so we can't enable the ack fields\n employment?.contract_details !== null\n ? enableAckFields(\n stepFields['contract_details'],\n contractDetailsInitialValues,\n )\n : contractDetailsInitialValues,\n benefits: benefitsInitialValues,\n };\n }\n return {\n select_country: selectCountryInitialValues,\n basic_information: basicInformationInitialValues,\n contract_details: contractDetailsInitialValues,\n benefits: benefitsInitialValues,\n };\n }, [\n selectCountryInitialValues,\n basicInformationInitialValues,\n contractDetailsInitialValues,\n benefitsInitialValues,\n employment,\n stepFields,\n ]);\n\n const { isLoading, isNavigatingToReview, isEmploymentReadOnly, canInvite } =\n useMemo(\n () =>\n getLoadingStates({\n isLoadingBasicInformationForm,\n isLoadingContractDetailsForm,\n isLoadingEmployment,\n isLoadingBenefitsOffersSchema,\n isLoadingBenefitOffers,\n isLoadingCompany,\n isLoadingCountries,\n employmentId,\n employmentStatus: employmentStatus,\n basicInformationFields: stepFields.basic_information,\n contractDetailsFields: stepFields.contract_details,\n currentStepName: currentStepName,\n }),\n [\n isLoadingBasicInformationForm,\n isLoadingContractDetailsForm,\n isLoadingEmployment,\n isLoadingBenefitsOffersSchema,\n isLoadingBenefitOffers,\n isLoadingCompany,\n isLoadingCountries,\n employmentId,\n employmentStatus,\n stepFields.basic_information,\n stepFields.contract_details,\n currentStepName,\n ],\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 benefits: prettifyFormValues(\n benefitsInitialValues,\n stepFields.benefits,\n ),\n };\n\n setStepValues({\n select_country: selectCountryInitialValues,\n basic_information: basicInformationInitialValues,\n contract_details: contractDetailsInitialValues,\n benefits: benefitsInitialValues,\n review: {},\n });\n\n goToStep('review');\n }\n }, [\n basicInformationInitialValues,\n benefitsInitialValues,\n contractDetailsInitialValues,\n goToStep,\n isNavigatingToReview,\n selectCountryInitialValues,\n setStepValues,\n stepFields.basic_information,\n stepFields.benefits,\n stepFields.contract_details,\n stepFields.select_country,\n ]);\n\n const parseFormValues = async (values: FieldValues) => {\n if (selectCountryForm && stepState.currentStep.name === 'select_country') {\n return values;\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 contractDetailsForm &&\n stepState.currentStep.name === 'contract_details'\n ) {\n return await parseJSFToValidate(values, contractDetailsForm?.fields, {\n isPartialValidation: false,\n });\n }\n\n return {};\n };\n\n async function onSubmit(values: FieldValues) {\n // Prettify values for the current step\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\n const parsedValues = await parseFormValues(values);\n refetchCompany();\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 if (isEmploymentNotLoaded || hasChangedCountry) {\n const payload: EmploymentCreateParams = {\n basic_information: parsedValues,\n type: type,\n country_code: internalCountryCode,\n external_id: externalId,\n };\n try {\n const response = await createEmploymentMutationAsync(payload);\n // @ts-expect-error the types from the response are not matching\n const employmentId = response.data?.data?.employment?.id;\n setInternalEmploymentId(employmentId);\n await updateContractEligibilityMutation.mutateAsync({\n employmentId: employmentId,\n eligible_to_work_in_residing_country: 'citizen',\n employer_or_work_restrictions: false,\n });\n\n return response;\n } catch (error) {\n console.error('Error creating onboarding:', error);\n throw error;\n }\n } else if (internalEmploymentId) {\n return updateEmploymentMutationAsync({\n employmentId: internalEmploymentId,\n basic_information: parsedValues,\n pricing_plan_details: {\n frequency: 'monthly',\n },\n external_id: externalId,\n });\n }\n\n return;\n }\n case 'contract_details': {\n const payload: EmploymentFullParams = {\n contract_details: parsedValues,\n pricing_plan_details: {\n frequency: 'monthly',\n },\n };\n return updateEmploymentMutationAsync({\n employmentId: internalEmploymentId as string,\n external_id: externalId,\n ...payload,\n });\n }\n\n case 'benefits': {\n return updateBenefitsOffersMutationAsync({\n employmentId: internalEmploymentId as string,\n ...values,\n });\n }\n }\n return;\n }\n\n function back() {\n previousStep();\n }\n\n function next() {\n nextStep();\n }\n\n function goTo(step: keyof typeof STEPS) {\n goToStep(step);\n }\n\n return {\n /**\n * Employment id passed useful to be used between components\n */\n employmentId: internalEmploymentId,\n\n /**\n * Credit risk status of the company, useful to know what to to show in the review step\n * The possible values are:\n * - not_started\n * - ready\n * - in_progress\n * - referred\n * - fail\n * - deposit_required\n * - no_deposit_required\n */\n\n creditRiskStatus: company?.default_legal_entity_credit_risk_status,\n /**\n * Current state of the form fields for the current step.\n */\n fieldValues,\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 onboarding schema\n */\n fields: stepFields[stepState.currentStep.name],\n /**\n * Loading state indicating if the onboarding schema is being fetched\n */\n isLoading: isLoading,\n /**\n * Loading state indicating if the onboarding mutation is in progress\n */\n isSubmitting:\n createEmploymentMutation.isPending ||\n updateEmploymentMutation.isPending ||\n updateBenefitsOffersMutation.isPending,\n /**\n * Initial form values\n */\n initialValues,\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 if (stepState.currentStep.name === 'benefits' && benefitOffersSchema) {\n const parsedValues = await parseJSFToValidate(\n values,\n benefitOffersSchema?.fields,\n { isPartialValidation: false },\n );\n\n return benefitOffersSchema?.handleValidation(parsedValues);\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 contractDetailsForm &&\n stepState.currentStep.name === 'contract_details'\n ) {\n const parsedValues = await parseJSFToValidate(\n values,\n contractDetailsForm?.fields,\n { isPartialValidation: false },\n );\n return contractDetailsForm?.handleValidation(parsedValues);\n }\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 /**\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 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 * Function to handle going to a specific step\n * @param step The step to go to.\n * @returns {void}\n */\n goTo,\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 refetch the employment data\n * @returns {void}\n */\n refetchEmployment,\n /**\n * Employment data\n */\n employment,\n\n /**\n * let's the user know that the employment cannot be edited, happens when employment.status is invited, created_awaiting_reserve or created_reserve_paid\n * @returns {boolean}\n */\n isEmploymentReadOnly,\n\n /**\n * let's the user know if the company can invite employees\n * @returns {boolean}\n */\n canInvite,\n };\n};\n"],"mappings":"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","names":["useEffect","useMemo","useRef","useState","mergeWith","jsx","jsonSchemaToEmployment","stepToFormSchemaMap","getLoadingStates","__name","isLoadingBasicInformationForm","isLoadingContractDetailsForm","isLoadingEmployment","isLoadingBenefitsOffersSchema","isLoadingBenefitOffers","isLoadingCompany","isLoadingCountries","employmentStatus","employmentId","currentStepName","basicInformationFields","contractDetailsFields","initialLoading","isEmploymentReadOnly","reviewStepAllowedEmploymentStatus","canInvite","disabledInviteButtonEmploymentStatus","shouldHandleReadOnlyEmployment","isLoading","isNavigatingToReview","useOnboarding","companyId","countryCode","type","options","skipSteps","externalId","onboardingInitialValues","fieldsMetaRef","useRef","internalEmploymentId","setInternalEmploymentId","useState","internalCountryCode","setInternalCountryCode","employment","refetchEmployment","useEmployment","benefitOffers","useBenefitOffers","company","refetchCompany","useCompany","stepsToUse","STEPS_WITHOUT_SELECT_COUNTRY","STEPS","fieldValues","stepState","setFieldValues","previousStep","nextStep","goToStep","setStepValues","useStepState","selectCountryForm","useCountriesSchemaField","createEmploymentMutation","useCreateEmployment","updateEmploymentMutation","useUpdateEmployment","updateBenefitsOffersMutation","useUpdateBenefitsOffers","updateContractEligibilityMutation","useUpsertContractEligibility","createEmploymentMutationAsync","mutationToPromise","updateEmploymentMutationAsync","updateBenefitsOffersMutationAsync","formType","employmentKey","serverEmploymentData","useJSONSchema","form","jsonSchemaOptions","query","jsonSchemaVersion","mergedFormValues","useJSONSchemaForm","isBasicInformationDetailsEnabled","isContractDetailsEnabled","basicInformationForm","annualGrossSalaryField","annualSalaryFieldPresentation","equityCompensationField","contractDetailsCustomFields","useMemo","props","AnnualGrossSalary","values","field","offerEquity","equityCost","EquityPriceDetails","effectiveContractDetailsJsonSchemaVersion","getContractDetailsSchemaVersion","contractDetailsForm","benefitOffersSchema","useBenefitOffersSchema","initialValuesBenefitOffers","benefitsFormValues","mergeWith","stepFields","stepFieldsWithFlatFieldsets","country","employmentBasicInformation","employmentContractDetails","employmentCountryCode","selectCountryInitialValues","getInitialValues","basicInformationInitialValues","initialValues","contractDetailsInitialValues","benefitsInitialValues","enableAckFields","useEffect","prettifyFormValues","parseFormValues","parseJSFToValidate","onSubmit","parsedValues","isEmploymentNotLoaded","hasChangedCountry","payload","response","error","back","next","goTo","step"]}
|
package/dist/chunk-GP6PRZVX.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{C as d,G as f,i as u,p as c,u as m,z as C}from"./chunk-W3YE53JN.js";import{d as a}from"./chunk-KQPDXXG3.js";import{a as t}from"./chunk-P37U34EQ.js";import{createHeadlessForm as g,modify as E}from"@remoteoss/json-schema-form-old";import{useMutation as r,useQuery as l}from"@tanstack/react-query";var x=t(({includePremiumBenefits:e})=>{let{client:i}=a();return l({queryKey:["cost-calculator-countries",e],queryFn:t(()=>m({client:i,query:{include_premium_benefits:e}}),"queryFn"),select:t(o=>o.data?.data.filter(s=>s.availability==="active").map(s=>({value:s.region_slug,label:s.name,childRegions:s.child_regions,hasAdditionalFields:s.has_additional_fields,regionSlug:s.region_slug,currency:s.currency.code})),"select")})},"useCostCalculatorCountries"),P=t(()=>{let{client:e}=a();return l({queryKey:["company-currencies"],queryFn:t(()=>f({client:e}),"queryFn"),select:t(i=>i.data?.data?.company_currencies.map(o=>({value:o.slug,label:o.code})),"select")})},"useCompanyCurrencies"),v=t(()=>{let{client:e}=a();return r({mutationFn:t(i=>u({client:e,body:i}),"mutationFn")})},"useCostCalculatorEstimation"),M=t(()=>{let{client:e}=a();return r({mutationFn:t(i=>c({client:e,body:i}),"mutationFn")})},"useCostCalculatorEstimationPdf"),S=t(()=>{let{client:e}=a();return r({mutationFn:t(i=>d({client:e,body:i}),"mutationFn")})},"useCostCalculatorEstimationCsv"),j=t((e,{includePremiumBenefits:i,options:o})=>{let{client:s}=a();return l({queryKey:["cost-calculator-region-fields",e,i],queryFn:t(()=>C({client:s,path:{slug:e},query:{include_premium_benefits:i}}),"queryFn"),enabled:!!e,select:t(({data:p})=>{let n=p?.data?.schema||{};if(o&&o.jsfModify){let{schema:y}=E(n,o.jsfModify);n=y}return g(n)},"select")})},"useRegionFields");export{x as a,P as b,v as c,M as d,S as e,j as f};
|
|
2
|
-
//# sourceMappingURL=chunk-GP6PRZVX.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/CostCalculator/api.ts"],"sourcesContent":["import { createHeadlessForm, modify } from '@remoteoss/json-schema-form-old';\nimport {\n CostCalculatorEstimateParams,\n getIndexCompanyCurrency,\n getIndexCountry,\n getShowRegionField,\n postCreateEstimation,\n postCreateEstimationCsv,\n postCreateEstimationPdf,\n} from '@/src/client';\nimport { Client } from '@/src/client/client';\nimport { useClient } from '@/src/context';\nimport { useMutation, useQuery } from '@tanstack/react-query';\nimport { CostCalculatorEstimationOptions } from '@/src/flows/CostCalculator/types';\nimport { JSFModify } from '@/src/flows/types';\n\n/**\n * Hook to fetch the countries for the cost calculator.\n * @returns\n */\nexport const useCostCalculatorCountries = ({\n includePremiumBenefits,\n}: {\n includePremiumBenefits: CostCalculatorEstimationOptions['includePremiumBenefits'];\n}) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['cost-calculator-countries', includePremiumBenefits],\n queryFn: () => {\n return getIndexCountry({\n client: client as Client,\n query: {\n include_premium_benefits: includePremiumBenefits,\n },\n });\n },\n select: (data) =>\n data.data?.data\n .filter((country) => country.availability === 'active')\n .map((country) => ({\n value: country.region_slug,\n label: country.name,\n childRegions: country.child_regions,\n hasAdditionalFields: country.has_additional_fields,\n regionSlug: country.region_slug,\n currency: country.currency.code,\n })),\n });\n};\n\n/**\n * Hook to fetch the company currencies.\n * @returns\n */\nexport const useCompanyCurrencies = () => {\n const { client } = useClient();\n\n return useQuery({\n queryKey: ['company-currencies'],\n queryFn: () => {\n return getIndexCompanyCurrency({\n client: client as Client,\n });\n },\n select: (data) =>\n data.data?.data?.company_currencies.map((currency) => ({\n value: currency.slug,\n label: currency.code,\n })),\n });\n};\n\n/**\n * Hook to create an estimation.\n * @returns\n */\nexport const useCostCalculatorEstimation = () => {\n const { client } = useClient();\n\n return useMutation({\n mutationFn: (payload: CostCalculatorEstimateParams) => {\n return postCreateEstimation({\n client: client as Client,\n body: payload,\n });\n },\n });\n};\n\n/**\n * Custom hook to create a PDF estimation.\n *\n * @returns\n */\nexport const useCostCalculatorEstimationPdf = () => {\n const { client } = useClient();\n\n return useMutation({\n mutationFn: (payload: CostCalculatorEstimateParams) => {\n return postCreateEstimationPdf({\n client: client as Client,\n body: payload,\n });\n },\n });\n};\n\n/**\n * Custom hook to create a CSV estimation.\n *\n * @returns\n */\nexport const useCostCalculatorEstimationCsv = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: (payload: CostCalculatorEstimateParams) => {\n return postCreateEstimationCsv({\n client: client as Client,\n body: payload,\n });\n },\n });\n};\n\n/**\n * Hook to fetch the region fields.\n * @param region\n * @returns\n */\nexport const useRegionFields = (\n region: string | undefined,\n {\n includePremiumBenefits,\n options,\n }: {\n includePremiumBenefits: CostCalculatorEstimationOptions['includePremiumBenefits'];\n options?: {\n jsfModify?: JSFModify;\n };\n },\n) => {\n const { client } = useClient();\n\n return useQuery({\n queryKey: ['cost-calculator-region-fields', region, includePremiumBenefits],\n queryFn: () => {\n return getShowRegionField({\n client: client as Client,\n path: { slug: region as string },\n query: {\n include_premium_benefits: includePremiumBenefits,\n },\n });\n },\n enabled: !!region,\n select: ({ data }) => {\n let jsfSchema = data?.data?.schema || {};\n if (options && options.jsfModify) {\n const { schema } = modify(jsfSchema, options.jsfModify);\n jsfSchema = schema;\n }\n return createHeadlessForm(jsfSchema);\n },\n });\n};\n"],"mappings":"2JAAA,OAAS,sBAAAA,EAAoB,UAAAC,MAAc,kCAY3C,OAAS,eAAAC,EAAa,YAAAC,MAAgB,wBAQ/B,IAAMC,EAA6BC,EAAA,CAAC,CACzC,uBAAAC,CACF,IAEM,CACJ,GAAM,CAAE,OAAAC,CAAO,EAAIC,EAAU,EAC7B,OAAOC,EAAS,CACd,SAAU,CAAC,4BAA6BH,CAAsB,EAC9D,QAASD,EAAA,IACAK,EAAgB,CACrB,OAAQH,EACR,MAAO,CACL,yBAA0BD,CAC5B,CACF,CAAC,EANM,WAQT,OAAQD,EAACM,GACPA,EAAK,MAAM,KACR,OAAQC,GAAYA,EAAQ,eAAiB,QAAQ,EACrD,IAAKA,IAAa,CACjB,MAAOA,EAAQ,YACf,MAAOA,EAAQ,KACf,aAAcA,EAAQ,cACtB,oBAAqBA,EAAQ,sBAC7B,WAAYA,EAAQ,YACpB,SAAUA,EAAQ,SAAS,IAC7B,EAAE,EAVE,SAWV,CAAC,CACH,EA5B0C,8BAkC7BC,EAAuBR,EAAA,IAAM,CACxC,GAAM,CAAE,OAAAE,CAAO,EAAIC,EAAU,EAE7B,OAAOC,EAAS,CACd,SAAU,CAAC,oBAAoB,EAC/B,QAASJ,EAAA,IACAS,EAAwB,CAC7B,OAAQP,CACV,CAAC,EAHM,WAKT,OAAQF,EAACM,GACPA,EAAK,MAAM,MAAM,mBAAmB,IAAKI,IAAc,CACrD,MAAOA,EAAS,KAChB,MAAOA,EAAS,IAClB,EAAE,EAJI,SAKV,CAAC,CACH,EAhBoC,wBAsBvBC,EAA8BX,EAAA,IAAM,CAC/C,GAAM,CAAE,OAAAE,CAAO,EAAIC,EAAU,EAE7B,OAAOS,EAAY,CACjB,WAAYZ,EAACa,GACJC,EAAqB,CAC1B,OAAQZ,EACR,KAAMW,CACR,CAAC,EAJS,aAMd,CAAC,CACH,EAX2C,+BAkB9BE,EAAiCf,EAAA,IAAM,CAClD,GAAM,CAAE,OAAAE,CAAO,EAAIC,EAAU,EAE7B,OAAOS,EAAY,CACjB,WAAYZ,EAACa,GACJG,EAAwB,CAC7B,OAAQd,EACR,KAAMW,CACR,CAAC,EAJS,aAMd,CAAC,CACH,EAX8C,kCAkBjCI,EAAiCjB,EAAA,IAAM,CAClD,GAAM,CAAE,OAAAE,CAAO,EAAIC,EAAU,EAC7B,OAAOS,EAAY,CACjB,WAAYZ,EAACa,GACJK,EAAwB,CAC7B,OAAQhB,EACR,KAAMW,CACR,CAAC,EAJS,aAMd,CAAC,CACH,EAV8C,kCAiBjCM,EAAkBnB,EAAA,CAC7BoB,EACA,CACE,uBAAAnB,EACA,QAAAoB,CACF,IAMG,CACH,GAAM,CAAE,OAAAnB,CAAO,EAAIC,EAAU,EAE7B,OAAOC,EAAS,CACd,SAAU,CAAC,gCAAiCgB,EAAQnB,CAAsB,EAC1E,QAASD,EAAA,IACAsB,EAAmB,CACxB,OAAQpB,EACR,KAAM,CAAE,KAAMkB,CAAiB,EAC/B,MAAO,CACL,yBAA0BnB,CAC5B,CACF,CAAC,EAPM,WAST,QAAS,CAAC,CAACmB,EACX,OAAQpB,EAAA,CAAC,CAAE,KAAAM,CAAK,IAAM,CACpB,IAAIiB,EAAYjB,GAAM,MAAM,QAAU,CAAC,EACvC,GAAIe,GAAWA,EAAQ,UAAW,CAChC,GAAM,CAAE,OAAAG,CAAO,EAAIC,EAAOF,EAAWF,EAAQ,SAAS,EACtDE,EAAYC,CACd,CACA,OAAOE,EAAmBH,CAAS,CACrC,EAPQ,SAQV,CAAC,CACH,EAnC+B","names":["createHeadlessForm","modify","useMutation","useQuery","useCostCalculatorCountries","__name","includePremiumBenefits","client","useClient","useQuery","getIndexCountry","data","country","useCompanyCurrencies","getIndexCompanyCurrency","currency","useCostCalculatorEstimation","useMutation","payload","postCreateEstimation","useCostCalculatorEstimationPdf","postCreateEstimationPdf","useCostCalculatorEstimationCsv","postCreateEstimationCsv","useRegionFields","region","options","getShowRegionField","jsfSchema","schema","modify","createHeadlessForm"]}
|
package/dist/chunk-HZVYZQ3Z.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as R}from"./chunk-XRI6PRXK.js";import{a as Z}from"./chunk-N6BBMT7W.js";import{a as K}from"./chunk-IWA5B4U6.js";import{a as Q}from"./chunk-AT7VHJMW.js";import{a as J}from"./chunk-Z6TCBVRG.js";import{a as z}from"./chunk-QIVDIOJG.js";import{a as S,b as E,c as N,d as B,e as q}from"./chunk-QUQLW5YW.js";import{c as H,d as L}from"./chunk-3F77NXWU.js";import{a as A}from"./chunk-ZXGAFQXW.js";import{a as u,b as $}from"./chunk-LKMPZJIW.js";import{a as O}from"./chunk-SXR333SU.js";import{a as v}from"./chunk-2YTBWEC7.js";import{m as b}from"./chunk-W3YE53JN.js";import{a as I}from"./chunk-PJBAQZ6G.js";import{a as D}from"./chunk-Z5WMKCRJ.js";import{d as w}from"./chunk-KQPDXXG3.js";import{d as p}from"./chunk-ARTSDUSS.js";import{a as h}from"./chunk-L3Z2G32A.js";import{a as o}from"./chunk-P37U34EQ.js";import{createHeadlessForm as ye}from"@remoteoss/json-schema-form-old";import Te from"lodash.omitby";import Fe from"lodash.isnull";import{format as g,isFuture as Me,parseISO as x,subDays as Se}from"date-fns";import{useMemo as j}from"react";import ge from"lodash.omit";import{useQuery as ce}from"@tanstack/react-query";var U=o(({query:t,options:e})=>{let{client:_}=w();return ce({queryKey:["payroll-calendars"],queryFn:o(()=>b({client:_,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 pe,isToday as ue,parseISO as _e}from"date-fns";var W=o(t=>{if(!t)return!1;let e=_e(t);return pe(e)||ue(e)},"isInProbationPeriod");import{Fragment as xe,jsx as d,jsxs as je}from"react/jsx-runtime";var so=o(({employmentId:t,options:e,initialValues:_})=>{let{fieldValues:c,setFieldValues:Y,stepState:a,previousStep:G,nextStep:X}=I(E),{data:n}=O({employmentId:t}),{data:ee}=U({query:{year:new Date().getFullYear().toString(),countryCode:n?.country?.code},options:{enabled:!!n?.country?.code}}),y=W(n?.probation_period_end_date),T=N(ee),P=j(()=>y?g(new Date,"yyyy-MM-dd"):g(T,"yyyy-MM-dd"),[y,T]),F=!!(n?.provisional_start_date&&Me(x(n.provisional_start_date))),M=q({...a.values?.employee_communication,...a.values?.termination_details,...a.values?.paid_time_off,...a.values?.additional_information,..._},F),f=j(()=>({...M,...a.values?.[a.currentStep.name],...c}),[a.values,a.currentStep.name,c,M]),V=B({minTerminationDate:T,isEmployeeInProbationPeriod:y,selectedDate:x(f.proposed_termination_date)}),oe=j(()=>{let m=A.data.schema.properties.termination_reason.oneOf,r=F?m.filter(i=>i.const==="cancellation_before_start_date"):m.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:r},proposed_termination_date_info:S("Proposed termination date",je(xe,{children:["In most cases, we 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.",d($,{external:!0,zendeskId:u.terminationNoticePeriods,className:h("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,...f.termination_reason==="cancellation_before_start_date"&&n?.provisional_start_date?{maxDate:g(Se(x(n.provisional_start_date),1),"yyyy-MM-dd")}:{},...V},...f.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 d(Z,{employeeName:n?.basic_information?.name,proposedTerminationDate:f.proposed_termination_date,employmentId:t,employment:n,render:s=>i?d(i,{...s}):d(R,{...s})})},"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 d(K,{render:s=>i?d(i,{...s}):d(Q,{...s})})},"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:u.involuntaryOffboardingServiceCharge,reconciliationInvoiceZendeskId:u.reconciliationInvoice},s=e?.jsfModify?.fields?.acknowledge_termination_procedure_fees_info?.["x-jsf-presentation"]?.Component;return s?d(s,{...i}):d(J,{...i})},"Component")}}}}},[n,t,f.proposed_termination_date,f.termination_reason,F,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,V]),{data:l,isLoading:ie}=L({formValues:f,jsfModify:{...e?.jsfModify,fields:{...e?.jsfModify?.fields,...oe?.fields}},step:a.currentStep.name}),te=ye(z.data.schema),k=H(),{mutateAsync:ne}=v(k);async function ae(m){if(!t)throw new Error("Employment id is missing");if(l){let r=await C(m,!0),{customer_informed_employee:i}=r,s=i==="yes"?{employee_awareness:{date:r.customer_informed_employee_date,note:r.customer_informed_employee_description}}:void 0,de=await D(r,["agrees_to_pto_amount","confidential","customer_informed_employee","will_challenge_termination"]),fe=ge(de,"customer_informed_employee_date","customer_informed_employee_description"),le=Te({...fe,...s},Fe);return ne({employment_id:t,termination_details:le,type:"termination"})}}o(ae,"onSubmit");function re(){G()}o(re,"back");function se(){X()}o(se,"next");let me=Object.keys(c).length>0,C=o(async(m,r=!1)=>r?await p(m,te.fields,{isPartialValidation:!0}):l?await p(m,l?.fields,{isPartialValidation:!0}):{},"parseFormValues");return{employmentId:t,employment:n,fieldValues:f,isDirty:me,stepState:a,fields:l?.fields||[],isLoading:ie,isSubmitting:k.isPending,initialValues:M,handleValidation:o(async m=>{if(l){let r=await p(m,l?.fields);return l?.handleValidation(r)}return null},"handleValidation"),checkFieldUpdates:Y,parseFormValues:C,onSubmit:ae,back:re,next:se}},"useTermination");export{so as a};
|
|
2
|
-
//# sourceMappingURL=chunk-HZVYZQ3Z.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, createHeadlessForm } from '@remoteoss/json-schema-form-old';\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 } = 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 initialValues = buildInitialValues(\n {\n ...stepState.values?.employee_communication,\n ...stepState.values?.termination_details,\n ...stepState.values?.paid_time_off,\n ...stepState.values?.additional_information,\n ...terminationInitialValues,\n },\n hasFutureStartDate,\n );\n\n const formValues = useMemo(\n () => ({\n ...initialValues,\n ...stepState.values?.[stepState.currentStep.name as keyof typeof STEPS], // Restore values for the current step\n ...fieldValues,\n }),\n [stepState.values, stepState.currentStep.name, 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, we 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 terminationPayload: CreateOffboardingParams = {\n employment_id: employmentId,\n termination_details: terminationDetails,\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,\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":["createHeadlessForm","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","useEmploymentQuery","payrollCalendars","usePayrollCalendars","isEmployeeInProbationPeriod","isInProbationPeriod","minTerminationDate","calculateMinTerminationDate","minDate","useMemo","format","hasFutureStartDate","isFuture","parseISO","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","back","next","isDirty","includeAllFields","parseJSFToValidate"]}
|
package/dist/chunk-IWA5B4U6.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/utils.ts"],"sourcesContent":["import { clsx, type ClassValue } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\nimport { ValidationError } from 'yup';\nimport DOMPurify from 'dompurify';\nimport { Fields } from '@remoteoss/json-schema-form-old';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\nexport function formatCurrency(\n amount: number | undefined | null,\n symbol = '€',\n): string {\n if (amount == null) {\n return '-';\n }\n\n const value = amount / 100;\n\n return `${symbol}${value.toLocaleString('en-US', {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n })}`;\n}\n\ntype YupError = Pick<ValidationError, 'type' | 'errors'> & {\n inner: Record<string, YupError>[];\n};\n\n/**\n * Transforms a Yup ValidationError object into a more readable object. The format is as follows:\n * {\n * [fieldName]: {\n * type: string,\n * errors: string[],\n * inner: YupError[],\n * },\n * }\n * @param errors\n * @returns\n */\nexport const transformYupErrorsIntoObject = (errors: ValidationError) => {\n const validationErrors: Record<string, YupError> = {};\n\n errors.inner.forEach((error: ValidationError) => {\n if (error.path !== undefined) {\n validationErrors[error.path] = {\n type: error.type,\n errors: error.errors,\n inner: error.inner.map((innerError) =>\n transformYupErrorsIntoObject(innerError),\n ),\n };\n }\n });\n\n return validationErrors;\n};\n\n/**\n * Debug utility to add version to window object\n * @param version - The version of the SDK\n */\nexport function debug(version: string) {\n window.RemoteFlowsSDK = {\n version,\n };\n}\n\n// Deduplicates rel values if necessary and appends noopener and noreferrer\nconst appendSecureRelValue = (rel: string | null) => {\n const attributes = new Set(rel ? rel.toLowerCase().split(' ') : []);\n\n attributes.add('noopener');\n attributes.add('noreferrer');\n\n return Array.from(attributes).join(' ');\n};\n\nif (DOMPurify.isSupported) {\n DOMPurify.addHook('afterSanitizeAttributes', (node) => {\n const target = node.getAttribute('target');\n\n if (node.tagName === 'A' && (!target || target !== '_self')) {\n const href = node.getAttribute('href');\n\n // Skip internal anchors (#section), relative URLs, and non-http protocols\n if (href && !href.startsWith('#') && /^https?:\\/\\//i.test(href)) {\n node.setAttribute('target', '_blank');\n const rel = node.getAttribute('rel');\n node.setAttribute('rel', appendSecureRelValue(rel));\n }\n }\n });\n}\n\nexport const sanitizeHtml = (html: string) => {\n return DOMPurify.sanitize(html, { ADD_ATTR: ['target'] });\n};\n\nexport const sanitizeHtmlWithImageErrorHandling = (html: string) => {\n const parser = new DOMParser();\n const doc = parser.parseFromString(html, 'text/html');\n\n // Add onerror handler to all img tags to hide them if they fail to load\n const images = doc.querySelectorAll('img');\n images.forEach((img) => {\n img.setAttribute('onerror', \"this.style.display='none'\");\n });\n\n const modifiedHtml = doc.body.innerHTML;\n\n // Sanitize with DOMPurify, allowing onerror attribute\n // Note: The global afterSanitizeAttributes hook (defined above) will still apply\n // to add target=\"_blank\" and rel=\"noopener noreferrer\" to external links\n return DOMPurify.sanitize(modifiedHtml, {\n ADD_ATTR: ['target', 'onerror'],\n });\n};\n\n/**\n * Function to prettify form values. Returns a pretty value and label for each field.\n * @param values - Form values to prettify\n * @param fields - Form fields\n * @returns Prettified form values\n */\n// @ts-expect-error need to check function return type\nexport function prettifyFormValues(\n values: Record<string, unknown>,\n fields: Fields | undefined,\n) {\n if (!fields) {\n return {};\n }\n return Object.fromEntries(\n Object.entries(values)\n // @ts-expect-error need to check function return type\n .map(([key, value]) => {\n if (value === undefined) {\n return [key, undefined];\n }\n\n const field = fields.find((field) => field.name === key);\n\n if (field?.isVisible === false || field?.deprecated) {\n return [key, undefined];\n }\n\n if (field?.type === 'radio' || field?.type === 'select') {\n const option = (\n field.options as Array<{ value: string; label: string }>\n ).find((option) => option.value === value);\n\n if (option) {\n return [\n key,\n {\n prettyValue: option?.label,\n label: field?.label,\n inputType: field?.type,\n },\n ];\n }\n return;\n }\n\n if (field?.type === 'checkbox' && field?.const) {\n return [\n key,\n { prettyValue: true, label: field.label, inputType: field?.type },\n ];\n }\n\n if (field?.type === 'countries' && Array.isArray(value)) {\n return [\n key,\n {\n prettyValue: value.join(),\n label: field.label,\n inputType: field?.type,\n },\n ];\n }\n\n if (field?.type === 'fieldset') {\n // @ts-expect-error need to check function return type\n const prettiedFieldset = prettifyFormValues(\n value as Record<string, unknown>,\n field.fields as Fields,\n );\n\n // Handles benefits fieldset in specific\n if (!prettiedFieldset.label && prettiedFieldset.value) {\n const prettyValue: Record<string, unknown> = {\n ...prettiedFieldset.value,\n label: field.label,\n inputType: field?.type,\n };\n return [key, prettyValue];\n }\n\n return [key, prettiedFieldset];\n }\n\n if (field?.type === 'money') {\n return [\n key,\n {\n prettyValue: value,\n label: field.label,\n inputType: field?.type,\n currency: field?.currency,\n },\n ];\n }\n\n if (field) {\n return [\n key,\n { prettyValue: value, label: field.label, inputType: field?.type },\n ];\n }\n })\n .filter(Boolean),\n );\n}\n"],"mappings":"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","names":["clsx","twMerge","DOMPurify","cn","inputs","twMerge","clsx","__name","formatCurrency","amount","symbol","value","transformYupErrorsIntoObject","errors","validationErrors","error","innerError","debug","version","appendSecureRelValue","rel","attributes","DOMPurify","node","target","href","sanitizeHtml","html","sanitizeHtmlWithImageErrorHandling","doc","img","modifiedHtml","prettifyFormValues","values","fields","key","field","option","prettiedFieldset","prettyValue"]}
|
package/dist/chunk-LQBVRVXH.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{b as r}from"./chunk-MRYRNB7Y.js";import{a as n}from"./chunk-6GTRAHWJ.js";import{b as o}from"./chunk-KQPDXXG3.js";import{a as t}from"./chunk-P37U34EQ.js";import{jsx as f}from"react/jsx-runtime";function d({children:i,...m}){let{formId:u}=r(),{components:e}=o(),s=e?.button||n;return f(s,{...m,form:u,children:i})}t(d,"TerminationSubmit");export{d as a};
|
|
2
|
-
//# sourceMappingURL=chunk-LQBVRVXH.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/Termination/TerminationSubmit.tsx"],"sourcesContent":["import { ButtonHTMLAttributes, PropsWithChildren } from 'react';\nimport { useTerminationContext } from './context';\nimport { useFormFields } from '@/src/context';\nimport { ButtonDefault } from '@/src/components/form/fields/default/ButtonDefault';\n\nexport function TerminationSubmit({\n children,\n ...props\n}: PropsWithChildren<ButtonHTMLAttributes<HTMLButtonElement>> &\n Record<string, unknown>) {\n const { formId } = useTerminationContext();\n const { components } = useFormFields();\n\n const CustomButton = components?.button || ButtonDefault;\n return (\n <CustomButton {...props} form={formId}>\n {children}\n </CustomButton>\n );\n}\n"],"mappings":"gKAeI,cAAAA,MAAA,oBAVG,SAASC,EAAkB,CAChC,SAAAC,EACA,GAAGC,CACL,EAC2B,CACzB,GAAM,CAAE,OAAAC,CAAO,EAAIC,EAAsB,EACnC,CAAE,WAAAC,CAAW,EAAIC,EAAc,EAE/BC,EAAeF,GAAY,QAAUG,EAC3C,OACET,EAACQ,EAAA,CAAc,GAAGL,EAAO,KAAMC,EAC5B,SAAAF,EACH,CAEJ,CAdgBQ,EAAAT,EAAA","names":["jsx","TerminationSubmit","children","props","formId","useTerminationContext","components","useFormFields","CustomButton","ButtonDefault","__name"]}
|