@remoteoss/remote-flows 0.4.0-alpha.1 → 0.4.0-alpha.11
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 +63 -1
- package/dist/chunk-32RYPLZK.js +2 -0
- package/dist/chunk-32RYPLZK.js.map +1 -0
- package/dist/chunk-3HPG2L62.js +2 -0
- package/dist/chunk-3HPG2L62.js.map +1 -0
- package/dist/chunk-3NZ6PO4D.js +2 -0
- package/dist/chunk-3NZ6PO4D.js.map +1 -0
- package/dist/chunk-3QTURBOX.js +2 -0
- package/dist/chunk-3QTURBOX.js.map +1 -0
- package/dist/{chunk-WRDKLT4N.js → chunk-3ZWDIEEM.js} +2 -2
- package/dist/chunk-4BOE6EEO.js +2 -0
- package/dist/chunk-4BOE6EEO.js.map +1 -0
- package/dist/{chunk-UECSVYQ5.js → chunk-5SMMQQXP.js} +2 -2
- package/dist/chunk-5SMMQQXP.js.map +1 -0
- package/dist/chunk-7JHIPWS7.js +2 -0
- package/dist/chunk-7JHIPWS7.js.map +1 -0
- package/dist/chunk-BF7QENCN.js +2 -0
- package/dist/chunk-BF7QENCN.js.map +1 -0
- package/dist/chunk-C3HJSV4T.js +2 -0
- package/dist/chunk-C3HJSV4T.js.map +1 -0
- package/dist/{chunk-A4RX3KRZ.js → chunk-CFIJKJXD.js} +2 -2
- package/dist/chunk-CSU6IQX3.js +2 -0
- package/dist/chunk-CSU6IQX3.js.map +1 -0
- package/dist/chunk-CTTXXEWI.js +2 -0
- package/dist/chunk-CTTXXEWI.js.map +1 -0
- package/dist/chunk-DKIWM2PT.js +2 -0
- package/dist/chunk-DKIWM2PT.js.map +1 -0
- package/dist/chunk-DR7VGNO2.js +2 -0
- package/dist/chunk-EEAMZPP6.js +2 -0
- package/dist/{chunk-GMGKIQLI.js.map → chunk-EEAMZPP6.js.map} +1 -1
- package/dist/chunk-EV5YPN4F.js +2 -0
- package/dist/chunk-EV5YPN4F.js.map +1 -0
- package/dist/chunk-FB5J7SRP.js +2 -0
- package/dist/chunk-FB5J7SRP.js.map +1 -0
- package/dist/chunk-GAXGAK4P.js +2 -0
- package/dist/chunk-GAXGAK4P.js.map +1 -0
- package/dist/chunk-GEYFQVQI.js +2 -0
- package/dist/{chunk-56BNVYTD.js.map → chunk-GEYFQVQI.js.map} +1 -1
- package/dist/chunk-GFMFGU7A.js +2 -0
- package/dist/chunk-GFMFGU7A.js.map +1 -0
- package/dist/chunk-GPAE53HO.js +2 -0
- package/dist/chunk-GPAE53HO.js.map +1 -0
- package/dist/chunk-H4BI3LJD.js +2 -0
- package/dist/chunk-H4BI3LJD.js.map +1 -0
- package/dist/chunk-HGHKZF7M.js +2 -0
- package/dist/chunk-HGHKZF7M.js.map +1 -0
- package/dist/chunk-IG3FJLDR.js +2 -0
- package/dist/chunk-IG3FJLDR.js.map +1 -0
- package/dist/chunk-INW2EQZR.js +2 -0
- package/dist/chunk-INW2EQZR.js.map +1 -0
- package/dist/chunk-JTP3LZ77.js +2 -0
- package/dist/chunk-JTP3LZ77.js.map +1 -0
- package/dist/{chunk-D3SD6MMV.js → chunk-JXCJLQRA.js} +2 -2
- package/dist/chunk-JXCJLQRA.js.map +1 -0
- package/dist/chunk-KGSIUWBI.js +2 -0
- package/dist/chunk-KGSIUWBI.js.map +1 -0
- package/dist/{chunk-JRQSZHUU.js → chunk-KHZ2ITFO.js} +2 -2
- package/dist/chunk-KM4XVL2X.js +2 -0
- package/dist/chunk-KM4XVL2X.js.map +1 -0
- package/dist/{chunk-5ETXP2QF.js → chunk-KPHSEIR3.js} +2 -2
- package/dist/{chunk-OLJ2S6A6.js → chunk-KSHK3ZPX.js} +2 -2
- package/dist/chunk-KSHK3ZPX.js.map +1 -0
- package/dist/chunk-L6LGRALQ.js +2 -0
- package/dist/chunk-L6LGRALQ.js.map +1 -0
- package/dist/chunk-LLIGZSYY.js +2 -0
- package/dist/chunk-LLIGZSYY.js.map +1 -0
- package/dist/{chunk-QOMUXX6W.js → chunk-LX7QBDSF.js} +2 -2
- package/dist/chunk-LX7QBDSF.js.map +1 -0
- package/dist/chunk-MH6KKP6K.js +2 -0
- package/dist/chunk-MH6KKP6K.js.map +1 -0
- package/dist/{chunk-DZYFSFZ7.js → chunk-MRYRNB7Y.js} +2 -2
- package/dist/chunk-O4PJ6GWS.js +2 -0
- package/dist/chunk-O4PJ6GWS.js.map +1 -0
- package/dist/chunk-OP4QGFLS.js +2 -0
- package/dist/chunk-OP4QGFLS.js.map +1 -0
- package/dist/chunk-P37U34EQ.js +2 -0
- package/dist/chunk-PGWKJ6FK.js +2 -0
- package/dist/chunk-PGWKJ6FK.js.map +1 -0
- package/dist/chunk-PJBAQZ6G.js +2 -0
- package/dist/chunk-PJBAQZ6G.js.map +1 -0
- package/dist/chunk-PJCUSCO4.js +2 -0
- package/dist/{chunk-MESREYTZ.js.map → chunk-PJCUSCO4.js.map} +1 -1
- package/dist/chunk-PWUYHFON.js +2 -0
- package/dist/chunk-PWUYHFON.js.map +1 -0
- package/dist/chunk-QKTDO33H.js +2 -0
- package/dist/chunk-QKTDO33H.js.map +1 -0
- package/dist/chunk-RC2UQDK7.js +2 -0
- package/dist/chunk-RC2UQDK7.js.map +1 -0
- package/dist/chunk-RFYJGH2X.js +2 -0
- package/dist/chunk-RFYJGH2X.js.map +1 -0
- package/dist/chunk-RIWPSA6V.js +2 -0
- package/dist/chunk-RIWPSA6V.js.map +1 -0
- package/dist/chunk-RWYOUDM5.js +2 -0
- package/dist/chunk-RWYOUDM5.js.map +1 -0
- package/dist/chunk-RXK4RLF6.js +2 -0
- package/dist/chunk-RXK4RLF6.js.map +1 -0
- package/dist/{chunk-FZ2HS6G7.js → chunk-S4XU4SE7.js} +1 -1
- package/dist/chunk-S4XU4SE7.js.map +1 -0
- package/dist/chunk-SUS7UBI5.js +2 -0
- package/dist/chunk-SUS7UBI5.js.map +1 -0
- package/dist/{chunk-6HGUGIYJ.js → chunk-TVZAFTPT.js} +2 -2
- package/dist/chunk-U6OPL6WG.js +2 -0
- package/dist/chunk-U6OPL6WG.js.map +1 -0
- package/dist/chunk-VEOGRXYK.js +2 -0
- package/dist/chunk-VEOGRXYK.js.map +1 -0
- package/dist/chunk-VJEJUUY2.js +2 -0
- package/dist/chunk-VJEJUUY2.js.map +1 -0
- package/dist/chunk-VJEL5MZJ.js +2 -0
- package/dist/chunk-VJEL5MZJ.js.map +1 -0
- package/dist/chunk-VN4HDCRB.js +2 -0
- package/dist/chunk-VN4HDCRB.js.map +1 -0
- package/dist/chunk-VNSF5IOL.js +2 -0
- package/dist/chunk-VNSF5IOL.js.map +1 -0
- package/dist/chunk-WIRFNWEU.js +2 -0
- package/dist/chunk-WIRFNWEU.js.map +1 -0
- package/dist/chunk-WKK63LAY.js +2 -0
- package/dist/chunk-WKK63LAY.js.map +1 -0
- package/dist/chunk-WVJDCDGZ.js +2 -0
- package/dist/chunk-WVJDCDGZ.js.map +1 -0
- package/dist/chunk-XO3JWN33.js +2 -0
- package/dist/{chunk-GFBF55NR.js.map → chunk-XO3JWN33.js.map} +1 -1
- package/dist/chunk-YO4OQIFP.js +2 -0
- package/dist/{chunk-3FVI5JIC.js.map → chunk-YO4OQIFP.js.map} +1 -1
- package/dist/chunk-Z3HWTDRE.js +2 -0
- package/dist/chunk-Z3HWTDRE.js.map +1 -0
- package/dist/chunk-ZOG52VVG.js +2 -0
- package/dist/chunk-ZOG52VVG.js.map +1 -0
- package/dist/flows/ContractAmendment/ContractAmendmentBack.d.ts +3 -2
- package/dist/flows/ContractAmendment/ContractAmendmentBack.js +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.d.ts +5 -5
- package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.js +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentFlow.d.ts +5 -5
- package/dist/flows/ContractAmendment/ContractAmendmentFlow.js +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentForm.d.ts +5 -5
- package/dist/flows/ContractAmendment/ContractAmendmentForm.js +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentSubmit.d.ts +3 -2
- package/dist/flows/ContractAmendment/ContractAmendmentSubmit.js +1 -1
- package/dist/flows/ContractAmendment/context.d.ts +5 -6
- package/dist/flows/ContractAmendment/context.js +1 -1
- package/dist/flows/ContractAmendment/hooks.d.ts +4 -5
- package/dist/flows/ContractAmendment/hooks.js +1 -1
- package/dist/flows/ContractAmendment/index.d.ts +3 -3
- package/dist/flows/ContractAmendment/index.js +1 -1
- package/dist/flows/ContractAmendment/types.d.ts +0 -2
- package/dist/flows/ContractAmendment/utils.d.ts +2 -2
- package/dist/flows/ContractAmendment/utils.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorDisclaimer.d.ts +2 -2
- package/dist/flows/CostCalculator/CostCalculatorDisclaimer.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorFlow.d.ts +7 -6
- package/dist/flows/CostCalculator/CostCalculatorFlow.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorForm.d.ts +9 -5
- package/dist/flows/CostCalculator/CostCalculatorForm.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorResetButton.d.ts +3 -2
- package/dist/flows/CostCalculator/CostCalculatorResetButton.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorSubmitButton.d.ts +3 -2
- package/dist/flows/CostCalculator/CostCalculatorSubmitButton.js +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorBenefitsBreakdown.d.ts +2 -2
- package/dist/flows/CostCalculator/Results/CostCalculatorBenefitsBreakdown.js +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorContributionsBreakdown.d.ts +2 -2
- package/dist/flows/CostCalculator/Results/CostCalculatorContributionsBreakdown.js +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorGrossSalary.d.ts +2 -2
- package/dist/flows/CostCalculator/Results/CostCalculatorGrossSalary.js +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorResults.d.ts +3 -3
- package/dist/flows/CostCalculator/Results/CostCalculatorResults.js +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorResultsChart.d.ts +2 -2
- package/dist/flows/CostCalculator/Results/CostCalculatorResultsChart.js +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorResultsChart.js.map +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorTotalCost.d.ts +2 -2
- package/dist/flows/CostCalculator/Results/CostCalculatorTotalCost.js +1 -1
- package/dist/flows/CostCalculator/context.d.ts +9 -6
- package/dist/flows/CostCalculator/context.js +1 -1
- package/dist/flows/CostCalculator/disclaimerUtils.js +1 -1
- package/dist/flows/CostCalculator/hooks.d.ts +5 -4
- package/dist/flows/CostCalculator/hooks.js +1 -1
- package/dist/flows/CostCalculator/index.d.ts +6 -2
- package/dist/flows/CostCalculator/index.js +1 -1
- package/dist/flows/CostCalculator/jsonSchema.js +1 -1
- package/dist/flows/CostCalculator/types.d.ts +12 -4
- package/dist/flows/CostCalculator/utils.d.ts +7 -4
- package/dist/flows/CostCalculator/utils.js +1 -1
- package/dist/flows/Onboarding/AnnualGrossSalary.d.ts +18 -0
- package/dist/flows/Onboarding/AnnualGrossSalary.js +2 -0
- package/dist/flows/Onboarding/AnnualGrossSalary.js.map +1 -0
- package/dist/flows/Onboarding/BasicInformationStep.d.ts +4 -5
- package/dist/flows/Onboarding/BasicInformationStep.js +1 -1
- package/dist/flows/Onboarding/BenefitsStep.d.ts +8 -7
- package/dist/flows/Onboarding/BenefitsStep.js +1 -1
- package/dist/flows/Onboarding/ContractDetailsStep.d.ts +3 -4
- package/dist/flows/Onboarding/ContractDetailsStep.js +1 -1
- package/dist/flows/Onboarding/OnboardingBack.d.ts +4 -2
- package/dist/flows/Onboarding/OnboardingBack.js +1 -1
- package/dist/flows/Onboarding/OnboardingFlow.d.ts +17 -7
- package/dist/flows/Onboarding/OnboardingFlow.js +1 -1
- package/dist/flows/Onboarding/OnboardingForm.d.ts +6 -5
- package/dist/flows/Onboarding/OnboardingForm.js +1 -1
- package/dist/flows/Onboarding/OnboardingInvite.d.ts +15 -8
- package/dist/flows/Onboarding/OnboardingInvite.js +1 -1
- package/dist/flows/Onboarding/OnboardingSubmit.d.ts +3 -2
- package/dist/flows/Onboarding/OnboardingSubmit.js +1 -1
- package/dist/flows/Onboarding/ReviewStep.d.ts +37 -0
- package/dist/flows/Onboarding/ReviewStep.js +2 -0
- package/dist/flows/Onboarding/ReviewStep.js.map +1 -0
- package/dist/flows/Onboarding/SelectCountryStep.d.ts +14 -0
- package/dist/flows/Onboarding/SelectCountryStep.js +2 -0
- package/dist/flows/Onboarding/SelectCountryStep.js.map +1 -0
- package/dist/flows/Onboarding/api.d.ts +122 -0
- package/dist/flows/Onboarding/api.js +2 -0
- package/dist/flows/Onboarding/api.js.map +1 -0
- package/dist/flows/Onboarding/context.d.ts +44 -9
- package/dist/flows/Onboarding/context.js +1 -1
- package/dist/flows/Onboarding/hooks.d.ts +59 -26
- package/dist/flows/Onboarding/hooks.js +1 -1
- package/dist/flows/Onboarding/index.d.ts +10 -6
- package/dist/flows/Onboarding/index.js +1 -1
- package/dist/flows/Onboarding/json-schemas/selectCountryStep.d.ts +24 -0
- package/dist/flows/Onboarding/json-schemas/selectCountryStep.js +2 -0
- package/dist/flows/Onboarding/json-schemas/selectCountryStep.js.map +1 -0
- package/dist/flows/Onboarding/types.d.ts +27 -6
- package/dist/flows/Onboarding/utils.d.ts +22 -3
- package/dist/flows/Onboarding/utils.js +1 -1
- package/dist/flows/Termination/AdditionalDetailsForm.d.ts +4 -4
- package/dist/flows/Termination/AdditionalDetailsForm.js +1 -1
- package/dist/flows/Termination/EmployeeComunicationForm.d.ts +3 -3
- package/dist/flows/Termination/EmployeeComunicationForm.js +1 -1
- package/dist/flows/Termination/PaidTimeOffForm.d.ts +3 -3
- package/dist/flows/Termination/PaidTimeOffForm.js +1 -1
- package/dist/flows/Termination/TerminationBack.d.ts +3 -2
- package/dist/flows/Termination/TerminationBack.js +1 -1
- package/dist/flows/Termination/TerminationDetailsForm.d.ts +3 -3
- package/dist/flows/Termination/TerminationDetailsForm.js +1 -1
- package/dist/flows/Termination/TerminationFlow.d.ts +7 -5
- package/dist/flows/Termination/TerminationFlow.js +1 -1
- package/dist/flows/Termination/TerminationForm.d.ts +3 -3
- package/dist/flows/Termination/TerminationForm.js +1 -1
- package/dist/flows/Termination/TerminationSubmit.d.ts +3 -2
- package/dist/flows/Termination/TerminationSubmit.js +1 -1
- package/dist/flows/Termination/TimeOff.d.ts +4 -4
- package/dist/flows/Termination/TimeOff.js +1 -1
- package/dist/flows/Termination/context.d.ts +6 -5
- package/dist/flows/Termination/context.js +1 -1
- package/dist/flows/Termination/hooks.d.ts +4 -3
- package/dist/flows/Termination/hooks.js +1 -1
- package/dist/flows/Termination/index.d.ts +4 -2
- package/dist/flows/Termination/index.js +1 -1
- package/dist/flows/Termination/json-schemas/additionalInformation.js +1 -1
- package/dist/flows/Termination/json-schemas/defaultSchema.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/paidTimeOff.js +1 -1
- package/dist/flows/Termination/json-schemas/schema.js +1 -1
- package/dist/flows/Termination/json-schemas/terminationDetails.js +1 -1
- package/dist/flows/Termination/types.d.ts +1 -1
- package/dist/flows/Termination/utils.d.ts +1 -1
- package/dist/flows/Termination/utils.js +1 -1
- package/dist/flows/types.d.ts +3 -4
- package/dist/flows/useStepState.d.ts +19 -6
- package/dist/flows/useStepState.js +1 -1
- package/dist/flows/utils.d.ts +3 -11
- package/dist/flows/utils.js +1 -1
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +16 -8
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/{remoteFlows-CswYencu.d.ts → remoteFlows-lYAFzyXi.d.ts} +51 -27
- package/dist/types-CxSFjQw5.d.ts +3 -0
- package/dist/{types.gen-CsMdyQkb.d.ts → types.gen-D_v539E_.d.ts} +335 -2
- package/package.json +18 -3
- package/dist/chunk-2PXGLWCY.js +0 -2
- package/dist/chunk-2PXGLWCY.js.map +0 -1
- package/dist/chunk-36UPHOJS.js +0 -2
- package/dist/chunk-36UPHOJS.js.map +0 -1
- package/dist/chunk-3FVI5JIC.js +0 -2
- package/dist/chunk-56BNVYTD.js +0 -2
- package/dist/chunk-6A3F6JG6.js +0 -2
- package/dist/chunk-6A3F6JG6.js.map +0 -1
- package/dist/chunk-6TYJC6YS.js +0 -2
- package/dist/chunk-6TYJC6YS.js.map +0 -1
- package/dist/chunk-7CYG2RHP.js +0 -2
- package/dist/chunk-7CYG2RHP.js.map +0 -1
- package/dist/chunk-ABR3B66K.js +0 -2
- package/dist/chunk-ABR3B66K.js.map +0 -1
- package/dist/chunk-ALRU77S5.js +0 -2
- package/dist/chunk-ALRU77S5.js.map +0 -1
- package/dist/chunk-AYDF3IFZ.js +0 -2
- package/dist/chunk-CFRYIKSR.js +0 -2
- package/dist/chunk-CFRYIKSR.js.map +0 -1
- package/dist/chunk-CKEVRQRG.js +0 -2
- package/dist/chunk-CKEVRQRG.js.map +0 -1
- package/dist/chunk-D3SD6MMV.js.map +0 -1
- package/dist/chunk-DE5FSFYL.js +0 -2
- package/dist/chunk-DE5FSFYL.js.map +0 -1
- package/dist/chunk-DGPRFQYK.js +0 -2
- package/dist/chunk-DGPRFQYK.js.map +0 -1
- package/dist/chunk-DHRIURRT.js +0 -2
- package/dist/chunk-DHRIURRT.js.map +0 -1
- package/dist/chunk-DZSZOC2G.js +0 -2
- package/dist/chunk-DZSZOC2G.js.map +0 -1
- package/dist/chunk-EAAIAMTY.js +0 -2
- package/dist/chunk-EAAIAMTY.js.map +0 -1
- package/dist/chunk-ED3CBUQL.js +0 -2
- package/dist/chunk-ED3CBUQL.js.map +0 -1
- package/dist/chunk-FMT2OTOL.js +0 -2
- package/dist/chunk-FMT2OTOL.js.map +0 -1
- package/dist/chunk-FZ2HS6G7.js.map +0 -1
- package/dist/chunk-GFBF55NR.js +0 -2
- package/dist/chunk-GGAS4ZNQ.js +0 -2
- package/dist/chunk-GGAS4ZNQ.js.map +0 -1
- package/dist/chunk-GMGKIQLI.js +0 -2
- package/dist/chunk-GOLOL2V6.js +0 -2
- package/dist/chunk-GOLOL2V6.js.map +0 -1
- package/dist/chunk-GRYAM4FZ.js +0 -2
- package/dist/chunk-GRYAM4FZ.js.map +0 -1
- package/dist/chunk-HEPL5WDF.js +0 -2
- package/dist/chunk-HEPL5WDF.js.map +0 -1
- package/dist/chunk-HSW5HMHH.js +0 -2
- package/dist/chunk-IDSJI7KQ.js +0 -2
- package/dist/chunk-IDSJI7KQ.js.map +0 -1
- package/dist/chunk-J55S4SEH.js +0 -2
- package/dist/chunk-J55S4SEH.js.map +0 -1
- package/dist/chunk-JBG4RVXQ.js +0 -2
- package/dist/chunk-JBG4RVXQ.js.map +0 -1
- package/dist/chunk-KH6QS5OU.js +0 -2
- package/dist/chunk-KH6QS5OU.js.map +0 -1
- package/dist/chunk-KQH5HLN5.js +0 -2
- package/dist/chunk-KQH5HLN5.js.map +0 -1
- package/dist/chunk-KSGPQCSG.js +0 -2
- package/dist/chunk-KSGPQCSG.js.map +0 -1
- package/dist/chunk-LNKYOAKF.js +0 -2
- package/dist/chunk-LNKYOAKF.js.map +0 -1
- package/dist/chunk-M7WCW7WD.js +0 -2
- package/dist/chunk-M7WCW7WD.js.map +0 -1
- package/dist/chunk-MESREYTZ.js +0 -2
- package/dist/chunk-MHKNAQLP.js +0 -2
- package/dist/chunk-MHKNAQLP.js.map +0 -1
- package/dist/chunk-MIHU6CEZ.js +0 -2
- package/dist/chunk-MIHU6CEZ.js.map +0 -1
- package/dist/chunk-NE547PW4.js +0 -2
- package/dist/chunk-NE547PW4.js.map +0 -1
- package/dist/chunk-OLJ2S6A6.js.map +0 -1
- package/dist/chunk-PNXZHV6W.js +0 -2
- package/dist/chunk-PNXZHV6W.js.map +0 -1
- package/dist/chunk-PWKM2R6V.js +0 -2
- package/dist/chunk-PWKM2R6V.js.map +0 -1
- package/dist/chunk-Q64URAIN.js +0 -2
- package/dist/chunk-Q64URAIN.js.map +0 -1
- package/dist/chunk-QOMUXX6W.js.map +0 -1
- package/dist/chunk-QSHYMFMY.js +0 -2
- package/dist/chunk-QSHYMFMY.js.map +0 -1
- package/dist/chunk-S4FKLPBB.js +0 -2
- package/dist/chunk-S4FKLPBB.js.map +0 -1
- package/dist/chunk-S56EWAS4.js +0 -2
- package/dist/chunk-S56EWAS4.js.map +0 -1
- package/dist/chunk-SLD7DFLW.js +0 -2
- package/dist/chunk-SLD7DFLW.js.map +0 -1
- package/dist/chunk-UECSVYQ5.js.map +0 -1
- package/dist/chunk-VRQXHCFR.js +0 -2
- package/dist/chunk-VRQXHCFR.js.map +0 -1
- package/dist/chunk-WQHKB5T7.js +0 -2
- package/dist/chunk-WQHKB5T7.js.map +0 -1
- package/dist/chunk-WS3C3WIJ.js +0 -2
- package/dist/chunk-WS3C3WIJ.js.map +0 -1
- package/dist/chunk-XLFHHYVS.js +0 -2
- package/dist/chunk-XLFHHYVS.js.map +0 -1
- package/dist/chunk-YOC3VDC7.js +0 -2
- package/dist/chunk-YOC3VDC7.js.map +0 -1
- /package/dist/{chunk-WRDKLT4N.js.map → chunk-3ZWDIEEM.js.map} +0 -0
- /package/dist/{chunk-A4RX3KRZ.js.map → chunk-CFIJKJXD.js.map} +0 -0
- /package/dist/{chunk-HSW5HMHH.js.map → chunk-DR7VGNO2.js.map} +0 -0
- /package/dist/{chunk-JRQSZHUU.js.map → chunk-KHZ2ITFO.js.map} +0 -0
- /package/dist/{chunk-5ETXP2QF.js.map → chunk-KPHSEIR3.js.map} +0 -0
- /package/dist/{chunk-DZYFSFZ7.js.map → chunk-MRYRNB7Y.js.map} +0 -0
- /package/dist/{chunk-AYDF3IFZ.js.map → chunk-P37U34EQ.js.map} +0 -0
- /package/dist/{chunk-6HGUGIYJ.js.map → chunk-TVZAFTPT.js.map} +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as v}from"./chunk-LX7QBDSF.js";import{a as A}from"./chunk-KHZ2ITFO.js";import{a as l,b as _}from"./chunk-5SMMQQXP.js";import{c as j,l as E,t as w}from"./chunk-WKK63LAY.js";import{a as M}from"./chunk-PJBAQZ6G.js";import{d}from"./chunk-3ZWDIEEM.js";import{a as b,c as S}from"./chunk-MH6KKP6K.js";import{a as t}from"./chunk-P37U34EQ.js";import{createHeadlessForm as I,modify as R}from"@remoteoss/json-schema-form";import{useMutation as Q,useQuery as B}from"@tanstack/react-query";var J=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 B({queryKey:["contract-amendment-schema"],retry:!1,queryFn:t(async()=>{let o=await j({client:u,headers:{Authorization:""},query:{employment_id:r?.data?.employment?.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:f}=R(c,e.jsfModify);c=f}let s={...n,annual_gross_salary:n?.annual_gross_salary?b(n?.annual_gross_salary):void 0},y=Object.keys(s).length>0;return I(c,{initialValues:y?s:_(r)})},"select")})},"useContractAmendmentSchemaQuery"),K=t(a=>{let{client:r}=d(),n=a?.jsonSchemaVersion?.contract_amendments?{json_schema_version:a.jsonSchemaVersion.contract_amendments}:{};return Q({mutationFn:t(e=>E({client:r,headers:{Authorization:""},body:e,query:{...n}}),"mutationFn")})},"useCreateContractAmendmentMutation"),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")})},"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:y,isError:V,error:f}=v({employmentId:a}),{data:i,isLoading:q,isError:L,error:T}=J({employment:s,countryCode:r,fieldValues:{...m.values?.[m.currentStep.name],...e},options:n}),k=_(s,i?.fields),F=K(n),g=U(n);async function O(p){let h=S(p,i?.fields||[],{isPartialValidation:!1}),P={employment_id:s?.data.employment?.id,amendment_contract_id:s?.data.employment?.active_contract_id,contract_amendment:{...h}};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");function z(p){if(i){let h=S(p,i?.fields);return i?.handleValidation(h)}return null}t(z,"handleValidation");function x(){c()}return t(x,"back"),{stepState:m,fields:i?.fields||[],isLoading:y||q,isError:V||L,error:f||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-RC2UQDK7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/ContractAmendment/hooks.ts"],"sourcesContent":["import {\n CreateContractAmendmentParams,\n EmploymentShowResponse,\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 '@hey-api/client-fetch';\nimport { createHeadlessForm, modify } from '@remoteoss/json-schema-form';\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: EmploymentShowResponse | 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?.data?.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 = parseJSFToValidate(\n values,\n contractAmendmentHeadlessForm?.fields || [],\n {\n isPartialValidation: false,\n },\n );\n\n const payload = {\n employment_id: employment?.data.employment?.id as string,\n amendment_contract_id: employment?.data.employment\n ?.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 function handleValidation(values: FieldValues) {\n if (contractAmendmentHeadlessForm) {\n const parsedValues = 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"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as p}from"./chunk-Z3HWTDRE.js";import{b as l}from"./chunk-CFIJKJXD.js";import{a as f}from"./chunk-VNSF5IOL.js";import{c as u}from"./chunk-MH6KKP6K.js";import{b as F}from"./chunk-TVZAFTPT.js";import{a as r}from"./chunk-P37U34EQ.js";import{useEffect as P}from"react";import{useForm as R}from"react-hook-form";import{jsx as a}from"react/jsx-runtime";var w=["effective_date","reason_for_change","reason_for_change_description","additional_comments","additional_comments_toggle"];function x({onSubmit:_,onError:m,onSuccess:b}){let{formId:A,contractAmendment:{checkFieldUpdates:C,fields:s,onSubmit:h,stepState:S,initialValues:i,handleValidation:g}}=F(),y=l(g),e=R({resolver:y,defaultValues:S.values?.form||i,shouldUnregister:!0,mode:"onBlur"});P(()=>{let t=e?.watch(o=>{(Object.keys(e.formState.dirtyFields).length>0||e.formState.isDirty)&&C(o)});return()=>t?.unsubscribe()},[]);let V=r(async t=>{let o=!1;for(let[c,v]of Object.entries(t))if(!w.includes(c)&&i[c]!==v){o=!0;break}if(!o)return m?.({message:"no_changes_detected_contract_details"});let d=u(t,s,{isPartialValidation:!1});await _?.(d);let n=await h(t);n.error?m?.(n.error):await b?.(n.data)},"handleSubmit");return a(f,{...e,children:a("form",{id:A,"data-testid":"contract-amendment-form",onSubmit:e.handleSubmit(V),className:"space-y-4 RemoteFlows__ContractAmendmentForm",children:a(p,{fields:s})})})}r(x,"ContractAmendmentForm");export{x as a};
|
|
2
|
+
//# sourceMappingURL=chunk-RFYJGH2X.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/ContractAmendment/ContractAmendmentForm.tsx"],"sourcesContent":["import {\n ContractAmendmentAutomatableResponse,\n PostAutomatableContractAmendmentError,\n} from '@/src/client';\nimport { JSONSchemaFormFields } from '@/src/components/form/JSONSchemaForm';\nimport { parseJSFToValidate } from '@/src/components/form/utils';\nimport { useJsonSchemasValidationFormResolver } from '@/src/components/form/yupValidationResolver';\nimport { Form } from '@/src/components/ui/form';\nimport { useEffect } from 'react';\nimport { FieldValues, useForm } from 'react-hook-form';\nimport { useContractAmendmentContext } from './context';\n\ntype ContractAmendmentFormProps = {\n /**\n * Callback function to be called when the contract amendment form is submitted.\n * This function is called before the contract amendment is submitted.\n * It can be used to perform any additional validation or processing before\n * the contract amendment is submitted.\n * @param values\n * @returns\n */\n onSubmit?: (values: FieldValues) => void | Promise<void>;\n /**\n * Callback function to be called when the contract amendment fails.\n * @param error\n * @returns\n */\n onError?: (\n error:\n | PostAutomatableContractAmendmentError\n | { message: 'no_changes_detected_contract_details' },\n ) => void;\n /**\n * Callback function to be called when the contract amendment is successfully submitted.\n * This function is called after the contract amendment is submitted.\n * @param data\n * @returns\n */\n onSuccess?: (\n data: ContractAmendmentAutomatableResponse,\n ) => void | Promise<void>;\n};\n\nconst commonFields = [\n 'effective_date',\n 'reason_for_change',\n 'reason_for_change_description',\n 'additional_comments',\n 'additional_comments_toggle',\n] as const;\n\ntype CommonFields = (typeof commonFields)[number];\n\nexport function ContractAmendmentForm({\n onSubmit,\n onError,\n onSuccess,\n}: ContractAmendmentFormProps) {\n const {\n formId,\n contractAmendment: {\n checkFieldUpdates,\n fields,\n onSubmit: submitContractAmendment,\n stepState,\n initialValues,\n handleValidation,\n },\n } = useContractAmendmentContext();\n\n const resolver = useJsonSchemasValidationFormResolver(\n // @ts-expect-error no matching type\n handleValidation,\n );\n\n const form = useForm({\n resolver,\n defaultValues:\n // stepState.values is used as defaultValues for the form when the form is\n // rendered when clicking on the back button after the user has submitted the form\n // and the confirmation form is displayed.\n // This is because the form is unmounted when the user submits the form.\n stepState.values?.form || initialValues,\n shouldUnregister: true,\n mode: 'onBlur',\n });\n\n useEffect(() => {\n const subscription = form?.watch((values) => {\n const isFormDirty =\n Object.keys(form.formState.dirtyFields).length > 0 ||\n form.formState.isDirty;\n if (isFormDirty) {\n checkFieldUpdates(values);\n }\n });\n return () => subscription?.unsubscribe();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleSubmit = async (values: FieldValues) => {\n let hasContractDetailsChanges = false;\n for (const [key, value] of Object.entries(values)) {\n if (\n !commonFields.includes(key as CommonFields) &&\n // @ts-expect-error error\n initialValues[key] !== value\n ) {\n hasContractDetailsChanges = true;\n break;\n }\n }\n\n if (!hasContractDetailsChanges) {\n return onError?.({\n message: 'no_changes_detected_contract_details',\n });\n }\n\n const parsedValues = parseJSFToValidate(values, fields, {\n isPartialValidation: false,\n });\n\n await onSubmit?.(parsedValues);\n\n const contractAmendmentResult = await submitContractAmendment(values);\n\n if (contractAmendmentResult.error) {\n onError?.(contractAmendmentResult.error);\n } else {\n await onSuccess?.(\n contractAmendmentResult.data as ContractAmendmentAutomatableResponse,\n );\n }\n };\n\n return (\n <Form {...form}>\n <form\n id={formId}\n data-testid=\"contract-amendment-form\"\n onSubmit={form.handleSubmit(handleSubmit)}\n className=\"space-y-4 RemoteFlows__ContractAmendmentForm\"\n >\n <JSONSchemaFormFields fields={fields} />\n </form>\n </Form>\n );\n}\n"],"mappings":"gPAQA,OAAS,aAAAA,MAAiB,QAC1B,OAAsB,WAAAC,MAAe,kBAuI7B,cAAAC,MAAA,oBArGR,IAAMC,EAAe,CACnB,iBACA,oBACA,gCACA,sBACA,4BACF,EAIO,SAASC,EAAsB,CACpC,SAAAC,EACA,QAAAC,EACA,UAAAC,CACF,EAA+B,CAC7B,GAAM,CACJ,OAAAC,EACA,kBAAmB,CACjB,kBAAAC,EACA,OAAAC,EACA,SAAUC,EACV,UAAAC,EACA,cAAAC,EACA,iBAAAC,CACF,CACF,EAAIC,EAA4B,EAE1BC,EAAWC,EAEfH,CACF,EAEMI,EAAOC,EAAQ,CACnB,SAAAH,EACA,cAKEJ,EAAU,QAAQ,MAAQC,EAC5B,iBAAkB,GAClB,KAAM,QACR,CAAC,EAEDO,EAAU,IAAM,CACd,IAAMC,EAAeH,GAAM,MAAOI,GAAW,EAEzC,OAAO,KAAKJ,EAAK,UAAU,WAAW,EAAE,OAAS,GACjDA,EAAK,UAAU,UAEfT,EAAkBa,CAAM,CAE5B,CAAC,EACD,MAAO,IAAMD,GAAc,YAAY,CAEzC,EAAG,CAAC,CAAC,EAEL,IAAME,EAAeC,EAAA,MAAOF,GAAwB,CAClD,IAAIG,EAA4B,GAChC,OAAW,CAACC,EAAKC,CAAK,IAAK,OAAO,QAAQL,CAAM,EAC9C,GACE,CAACnB,EAAa,SAASuB,CAAmB,GAE1Cb,EAAca,CAAG,IAAMC,EACvB,CACAF,EAA4B,GAC5B,KACF,CAGF,GAAI,CAACA,EACH,OAAOnB,IAAU,CACf,QAAS,sCACX,CAAC,EAGH,IAAMsB,EAAeC,EAAmBP,EAAQZ,EAAQ,CACtD,oBAAqB,EACvB,CAAC,EAED,MAAML,IAAWuB,CAAY,EAE7B,IAAME,EAA0B,MAAMnB,EAAwBW,CAAM,EAEhEQ,EAAwB,MAC1BxB,IAAUwB,EAAwB,KAAK,EAEvC,MAAMvB,IACJuB,EAAwB,IAC1B,CAEJ,EAlCqB,gBAoCrB,OACE5B,EAAC6B,EAAA,CAAM,GAAGb,EACR,SAAAhB,EAAC,QACC,GAAIM,EACJ,cAAY,0BACZ,SAAUU,EAAK,aAAaK,CAAY,EACxC,UAAU,+CAEV,SAAArB,EAAC8B,EAAA,CAAqB,OAAQtB,EAAQ,EACxC,EACF,CAEJ,CA/FgBc,EAAApB,EAAA","names":["useEffect","useForm","jsx","commonFields","ContractAmendmentForm","onSubmit","onError","onSuccess","formId","checkFieldUpdates","fields","submitContractAmendment","stepState","initialValues","handleValidation","useContractAmendmentContext","resolver","useJsonSchemasValidationFormResolver","form","useForm","useEffect","subscription","values","handleSubmit","__name","hasContractDetailsChanges","key","value","parsedValues","parseJSFToValidate","contractAmendmentResult","Form","JSONSchemaFormFields"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a}from"./chunk-RXK4RLF6.js";import{a as c}from"./chunk-RC2UQDK7.js";import{a as e}from"./chunk-CTTXXEWI.js";import{a as m}from"./chunk-CSU6IQX3.js";import{a as r}from"./chunk-RFYJGH2X.js";import{a as o}from"./chunk-TVZAFTPT.js";import{a as n}from"./chunk-P37U34EQ.js";import{useId as f}from"react";import{jsx as s}from"react/jsx-runtime";function k({employmentId:d,countryCode:C,options:p,render:A}){let t=c({employmentId:d,countryCode:C,options:p}),i=f();return s(o.Provider,{value:{formId:i,contractAmendmentBag:t},children:A({contractAmendmentBag:t,components:{Form:r,SubmitButton:a,ConfirmationForm:m,BackButton:e}})})}n(k,"ContractAmendmentFlow");export{k as a};
|
|
2
|
+
//# sourceMappingURL=chunk-RIWPSA6V.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/ContractAmendment/ContractAmendmentFlow.tsx"],"sourcesContent":["import { useId } from 'react';\nimport { ContractAmendmentContext } from './context';\nimport { ContractAmendmentBack } from './ContractAmendmentBack';\nimport { ContractAmendmentConfirmationForm } from './ContractAmendmentConfirmationForm';\nimport { ContractAmendmentForm } from './ContractAmendmentForm';\nimport { ContractAmendmentSubmit } from './ContractAmendmentSubmit';\nimport { useContractAmendment } from './hooks';\nimport { ContractAmendmentParams } from './types';\n\ntype TUseContractAmendment = ReturnType<typeof useContractAmendment>;\n\nexport type ContractAmendmentRenderProps = {\n /**\n * The contract amendment bag returned by the useContractAmendment hook.\n * This bag contains all the methods and properties needed to handle the contract amendment flow.\n * @see {@link useContractAmendment}\n */\n contractAmendmentBag: TUseContractAmendment;\n /**\n * The components used in the contract amendment flow.\n * This includes the form, submit button, and confirmation form.\n * @see {@link ContractAmendmentForm}\n * @see {@link ContractAmendmentSubmit}\n * @see {@link ContractAmendmentConfirmationForm}\n */\n components: {\n Form: typeof ContractAmendmentForm;\n SubmitButton: typeof ContractAmendmentSubmit;\n ConfirmationForm: typeof ContractAmendmentConfirmationForm;\n BackButton: typeof ContractAmendmentBack;\n };\n};\n\ntype ContractAmendmentFlowProps = ContractAmendmentParams & {\n render: ({\n contractAmendmentBag,\n components,\n }: ContractAmendmentRenderProps) => React.ReactNode;\n};\n\nexport function ContractAmendmentFlow({\n employmentId,\n countryCode,\n options,\n render,\n}: ContractAmendmentFlowProps) {\n const contractAmendmentBag = useContractAmendment({\n employmentId,\n countryCode,\n options,\n });\n const formId = useId();\n\n return (\n <ContractAmendmentContext.Provider\n value={{\n formId: formId,\n contractAmendmentBag,\n }}\n >\n {render({\n contractAmendmentBag,\n components: {\n Form: ContractAmendmentForm,\n SubmitButton: ContractAmendmentSubmit,\n ConfirmationForm: ContractAmendmentConfirmationForm,\n BackButton: ContractAmendmentBack,\n },\n })}\n </ContractAmendmentContext.Provider>\n );\n}\n"],"mappings":"mRAAA,OAAS,SAAAA,MAAa,QAsDlB,cAAAC,MAAA,oBAdG,SAASC,EAAsB,CACpC,aAAAC,EACA,YAAAC,EACA,QAAAC,EACA,OAAAC,CACF,EAA+B,CAC7B,IAAMC,EAAuBC,EAAqB,CAChD,aAAAL,EACA,YAAAC,EACA,QAAAC,CACF,CAAC,EACKI,EAASC,EAAM,EAErB,OACET,EAACU,EAAyB,SAAzB,CACC,MAAO,CACL,OAAQF,EACR,qBAAAF,CACF,EAEC,SAAAD,EAAO,CACN,qBAAAC,EACA,WAAY,CACV,KAAMK,EACN,aAAcC,EACd,iBAAkBC,EAClB,WAAYC,CACd,CACF,CAAC,EACH,CAEJ,CA/BgBC,EAAAd,EAAA","names":["useId","jsx","ContractAmendmentFlow","employmentId","countryCode","options","render","contractAmendmentBag","useContractAmendment","formId","useId","ContractAmendmentContext","ContractAmendmentForm","ContractAmendmentSubmit","ContractAmendmentConfirmationForm","ContractAmendmentBack","__name"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as z}from"./chunk-WVJDCDGZ.js";import{b as x}from"./chunk-PWUYHFON.js";import{d as _,f as F,g as b,h as C,j as g,k as S,m as j,o as w,p as v,q as E,s as O,v as q,x as P}from"./chunk-WKK63LAY.js";import{d as a}from"./chunk-3ZWDIEEM.js";import{a as V}from"./chunk-MH6KKP6K.js";import{a as r}from"./chunk-P37U34EQ.js";import{createHeadlessForm as h,modify as d}from"@remoteoss/json-schema-form";import{useMutation as c,useQuery as l}from"@tanstack/react-query";var H=r(e=>{let{client:n}=a();return l({queryKey:["employment",e],retry:!1,enabled:!!e,select:r(({data:t})=>t?.data.employment,"select"),queryFn:r(async()=>{let t=await v({client:n,headers:{Authorization:""},path:{employment_id:e}});if(t.error||!t.data)throw new Error("Failed to fetch employment data");return t},"queryFn")})},"useEmployment"),W=r(e=>{let{client:n}=a();return l({queryKey:["company",e],retry:!1,enabled:!!e,queryFn:r(async()=>{let t=await S({client:n,headers:{Authorization:""},path:{company_id:e}});if(t.error||!t.data)throw new Error("Failed to fetch employment data");return t},"queryFn"),select:r(({data:t})=>t.data.company,"select")})},"useCompany"),X=r(e=>{let{client:n}=a();return l({queryKey:["benefit-offers",e],retry:!1,enabled:!!e,queryFn:r(async()=>F({client:n,headers:{Authorization:""},path:{employment_id:e}}).then(t=>{if(t.error||!t.data)throw new Error("Failed to fetch benefit offers data");return t}),"queryFn"),select:r(({data:t})=>t?.data?.reduce((o,s)=>({...o,[s.benefit_group.slug]:{value:s.benefit_tier?.slug??""}}),{}),"select")})},"useBenefitOffers"),Y=r(()=>{let{client:e}=a();return c({mutationFn:r(n=>q({client:e,headers:{Authorization:""},path:n}),"mutationFn")})},"useEmploymentInvite"),Z=r(()=>{let{client:e}=a();return c({mutationFn:r(n=>g({client:e,headers:{Authorization:""},body:n}),"mutationFn")})},"useCreateReserveInvoice"),$=r(({countryCode:e,form:n,fieldValues:t,options:o})=>{let{client:s}=a(),i=o?.jsonSchemaVersion?.form_schema?.[n]?{json_schema_version:o.jsonSchemaVersion.form_schema[n]}:{};return l({queryKey:["onboarding-json-schema-form",e,n],retry:!1,queryFn:r(async()=>{let m=await j({client:s,headers:{Authorization:""},path:{country_code:e,form:n},query:{skip_benefits:!0,...i}});if(m.error||!m.data)throw new Error("Failed to fetch onboarding schema");return m},"queryFn"),enabled:o?.queryOptions?.enabled,select:r(({data:m})=>{let u=m?.data||{};if(o&&o.jsfModify){let{schema:f}=d(u,o.jsfModify);u=f}let y=x(u.properties||{},"money").reduce((f,p)=>(f[p]=V(t[p]),f),{});return h(u,{initialValues:{...t,...y}})},"select")})},"useJSONSchemaForm"),ee=r((e,n,t)=>{let o=t?.jsonSchemaVersion?.benefit_offers_form_schema?{json_schema_version:t.jsonSchemaVersion.benefit_offers_form_schema}:{},{client:s}=a();return l({queryKey:["benefit-offers-schema",e],retry:!1,enabled:!!e,queryFn:r(async()=>{let i=await w({client:s,headers:{Authorization:""},path:{employment_id:e},query:o});if(i.error||!i.data)throw new Error("Failed to fetch benefit offers schema");return i},"queryFn"),select:r(({data:i})=>{let m=i?.data?.schema||{};if(t&&t.jsfModify?.benefits){let{schema:y}=d(m,t.jsfModify.benefits);m=y}let u=Object.keys(n).length>0;return h(m,{initialValues:u?{...n}:{}})},"select")})},"useBenefitOffersSchema"),te=r(e=>{let{client:n}=a(),t=e?.jsonSchemaVersion?.form_schema?.employment_basic_information?{json_schema_version:e.jsonSchemaVersion.form_schema.employment_basic_information}:{};return c({mutationFn:r(o=>_({client:n,headers:{Authorization:""},body:o,query:{...t}}),"mutationFn")})},"useCreateEmployment"),ne=r(e=>{let{client:n}=a(),t={employment_basic_information_json_schema_version:e?.jsonSchemaVersion?.form_schema?.employment_basic_information,employment_contract_details_json_schema_version:e?.jsonSchemaVersion?.form_schema?.contract_details},o=Object.fromEntries(Object.entries(t).filter(([,s])=>s!==void 0));return c({mutationFn:r(({employmentId:s,...i})=>E({client:n,headers:{Authorization:""},body:i,path:{employment_id:s},query:{skip_benefits:!0,...o}}),"mutationFn")})},"useUpdateEmployment"),re=r(e=>{let{client:n}=a();return c({mutationFn:r(({employmentId:t,...o})=>{let s=e?.jsonSchemaVersion?.benefit_offers_form_schema?{json_schema_version:e.jsonSchemaVersion.benefit_offers_form_schema}:{};return b({client:n,headers:{Authorization:""},body:o,path:{employment_id:t},query:{...s}})},"mutationFn")})},"useUpdateBenefitsOffers"),oe=r(()=>{let{client:e}=a();return c({mutationFn:r(n=>C({client:e,headers:{Authorization:""},body:n}),"mutationFn")})},"useMagicLink"),M=r(()=>{let{client:e}=a();return l({queryKey:["countries"],retry:!1,queryFn:r(async()=>{let n=await O({client:e,headers:{Authorization:""}});if(n.error||!n.data)throw new Error("Failed to fetch supported countries");return n},"queryFn"),select:r(({data:n})=>n?.data?.map(t=>({label:t.name,value:t.code}))||[],"select")})},"useCountries"),se=r(e=>{let{data:n,isLoading:t}=M(),{schema:o}=d(z.data.schema,e?.jsfModify||{}),s=h(o);if(n){let i=s.fields.find(m=>m.name==="country");i&&(i.options=n)}return{isLoading:t,selectCountryForm:s}},"useCountriesSchemaField"),ae=r(()=>{let{client:e}=a();return c({mutationFn:r(n=>P({client:e,headers:{Authorization:""},body:n}),"mutationFn")})},"useConvertCurrency");export{H as a,W as b,X as c,Y as d,Z as e,$ as f,ee as g,te as h,ne as i,re as j,oe as k,se as l,ae as m};
|
|
2
|
+
//# sourceMappingURL=chunk-RWYOUDM5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/Onboarding/api.ts"],"sourcesContent":["import {\n ConvertCurrencyParams,\n EmploymentCreateParams,\n EmploymentFullParams,\n getIndexBenefitOffer,\n getShowCompany,\n getShowEmployment,\n getShowFormCountry,\n getShowSchema,\n getSupportedCountry,\n MagicLinkParams,\n patchUpdateEmployment2,\n postConvertCurrencyConverter,\n postCreateEmployment2,\n postCreateRiskReserve,\n postGenerateMagicLink,\n postInviteEmploymentInvitation,\n PostInviteEmploymentInvitationData,\n putUpdateBenefitOffer,\n UnifiedEmploymentUpsertBenefitOffersRequest,\n} from '@/src/client';\nimport { convertToCents } from '@/src/components/form/utils';\nimport { useClient } from '@/src/context';\nimport { selectCountryStepSchema } from '@/src/flows/Onboarding/json-schemas/selectCountryStep';\nimport { OnboardingFlowParams } from '@/src/flows/Onboarding/types';\nimport { FlowOptions, JSONSchemaFormType } from '@/src/flows/types';\nimport { findFieldsByType } from '@/src/flows/utils';\nimport { Client } from '@hey-api/client-fetch';\nimport { createHeadlessForm, modify } from '@remoteoss/json-schema-form';\nimport { useMutation, useQuery } from '@tanstack/react-query';\nimport { FieldValues } from 'react-hook-form';\n\nexport const useEmployment = (employmentId: string | undefined) => {\n const { client } = useClient();\n\n return useQuery({\n queryKey: ['employment', employmentId],\n retry: false,\n enabled: !!employmentId,\n select: ({ data }) => {\n return data?.data.employment;\n },\n queryFn: async () => {\n const response = await getShowEmployment({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n path: {\n employment_id: employmentId as string,\n },\n });\n\n // If response status is 404 or other error, throw an error to trigger isError\n if (response.error || !response.data) {\n throw new Error('Failed to fetch employment data');\n }\n\n return response;\n },\n });\n};\n\nexport const useCompany = (companyId: string) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['company', companyId],\n retry: false,\n enabled: !!companyId,\n queryFn: async () => {\n const response = await getShowCompany({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n path: {\n company_id: companyId,\n },\n });\n\n if (response.error || !response.data) {\n throw new Error('Failed to fetch employment data');\n }\n\n return response;\n },\n select: ({ data }) => {\n return data.data.company;\n },\n });\n};\n\nexport const useBenefitOffers = (employmentId: string | undefined) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['benefit-offers', employmentId],\n retry: false,\n enabled: !!employmentId,\n queryFn: async () => {\n return getIndexBenefitOffer({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n path: {\n employment_id: employmentId as string,\n },\n }).then((response) => {\n // If response status is 404 or other error, throw an error to trigger isError\n if (response.error || !response.data) {\n throw new Error('Failed to fetch benefit offers data');\n }\n\n return response;\n });\n },\n select: ({ data }) =>\n data?.data?.reduce(\n (acc, item) => {\n return {\n ...acc,\n [item.benefit_group.slug]: {\n value: item.benefit_tier?.slug ?? '',\n },\n };\n },\n {} as Record<string, { value: string }>,\n ),\n });\n};\n/**\n * Use this hook to invite an employee to the onboarding flow\n * @returns\n */\nexport const useEmploymentInvite = () => {\n const { client } = useClient();\n\n return useMutation({\n mutationFn: (payload: PostInviteEmploymentInvitationData['path']) => {\n return postInviteEmploymentInvitation({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n path: payload,\n });\n },\n });\n};\n\nexport const useCreateReserveInvoice = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: (payload: { employment_slug: string }) => {\n return postCreateRiskReserve({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n body: payload,\n });\n },\n });\n};\n\n/**\n * Use this hook to get the JSON schema form for the onboarding flow\n * @param param0\n * @returns\n */\nexport const useJSONSchemaForm = ({\n countryCode,\n form,\n fieldValues,\n options,\n}: {\n countryCode: string;\n form: JSONSchemaFormType;\n fieldValues: FieldValues;\n options?: FlowOptions & { queryOptions?: { enabled?: boolean } };\n}) => {\n const { client } = useClient();\n const jsonSchemaQueryParam = options?.jsonSchemaVersion?.form_schema?.[form]\n ? {\n json_schema_version: options.jsonSchemaVersion.form_schema[form],\n }\n : {};\n return useQuery({\n queryKey: ['onboarding-json-schema-form', countryCode, form],\n retry: false,\n queryFn: async () => {\n const response = await getShowFormCountry({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n path: {\n country_code: countryCode,\n form: form,\n },\n query: {\n skip_benefits: true,\n ...jsonSchemaQueryParam,\n },\n });\n\n // If response status is 404 or other error, throw an error to trigger isError\n if (response.error || !response.data) {\n throw new Error('Failed to fetch onboarding schema');\n }\n\n return response;\n },\n enabled: options?.queryOptions?.enabled,\n select: ({ data }) => {\n let jsfSchema = data?.data || {};\n if (options && options.jsfModify) {\n const { schema } = modify(jsfSchema, options.jsfModify);\n jsfSchema = schema;\n }\n\n // Contract details contains x-jsf-logic that need to be calculated every time a form value changes\n // In particular there are calculations involving the annual_gross_salary field. However this field value doesn't get\n // here in cents. So we need to convert the money fields to cents, so that the calculations are correct.\n const moneyFields = findFieldsByType(jsfSchema.properties || {}, 'money');\n const moneyFieldsData = moneyFields.reduce<Record<string, number | null>>(\n (acc, field) => {\n acc[field] = convertToCents(fieldValues[field]);\n return acc;\n },\n {},\n );\n\n return createHeadlessForm(jsfSchema, {\n initialValues: {\n ...fieldValues,\n ...moneyFieldsData,\n },\n });\n },\n });\n};\n\nexport const useBenefitOffersSchema = (\n employmentId: string,\n fieldValues: FieldValues,\n options: OnboardingFlowParams['options'],\n) => {\n const jsonSchemaQueryParam = options?.jsonSchemaVersion\n ?.benefit_offers_form_schema\n ? {\n json_schema_version:\n options.jsonSchemaVersion.benefit_offers_form_schema,\n }\n : {};\n const { client } = useClient();\n return useQuery({\n queryKey: ['benefit-offers-schema', employmentId],\n retry: false,\n enabled: !!employmentId,\n queryFn: async () => {\n const response = await getShowSchema({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n path: {\n employment_id: employmentId,\n },\n query: jsonSchemaQueryParam,\n });\n\n // If response status is 404 or other error, throw an error to trigger isError\n if (response.error || !response.data) {\n throw new Error('Failed to fetch benefit offers schema');\n }\n\n return response;\n },\n select: ({ data }) => {\n let jsfSchema = data?.data?.schema || {};\n\n if (options && options.jsfModify?.benefits) {\n const { schema } = modify(jsfSchema, options.jsfModify.benefits);\n jsfSchema = schema;\n }\n const hasFieldValues = Object.keys(fieldValues).length > 0;\n const result = createHeadlessForm(jsfSchema, {\n // we need to clone the fieldValues to prevent side effects\n // if we don't do this, the benefits get included in the other steps\n initialValues: hasFieldValues ? { ...fieldValues } : {},\n });\n return result;\n },\n });\n};\n\n/**\n * Use this hook to create an employment\n * @returns\n */\nexport const useCreateEmployment = (\n options?: OnboardingFlowParams['options'],\n) => {\n const { client } = useClient();\n const jsonSchemaQueryParam = options?.jsonSchemaVersion?.form_schema\n ?.employment_basic_information\n ? {\n json_schema_version:\n options.jsonSchemaVersion.form_schema.employment_basic_information,\n }\n : {};\n return useMutation({\n mutationFn: (payload: EmploymentCreateParams) => {\n return postCreateEmployment2({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n body: payload,\n query: {\n ...jsonSchemaQueryParam,\n },\n });\n },\n });\n};\n\nexport const useUpdateEmployment = (\n options?: OnboardingFlowParams['options'],\n) => {\n const { client } = useClient();\n const jsonSchemaQueryParams = {\n employment_basic_information_json_schema_version:\n options?.jsonSchemaVersion?.form_schema?.employment_basic_information,\n employment_contract_details_json_schema_version:\n options?.jsonSchemaVersion?.form_schema?.contract_details,\n };\n\n const filteredQueryParams = Object.fromEntries(\n Object.entries(jsonSchemaQueryParams).filter(\n ([, value]) => value !== undefined,\n ),\n );\n\n return useMutation({\n mutationFn: ({\n employmentId,\n ...payload\n }: EmploymentFullParams & { employmentId: string }) => {\n return patchUpdateEmployment2({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n body: payload,\n path: {\n employment_id: employmentId,\n },\n query: {\n skip_benefits: true,\n ...filteredQueryParams,\n },\n });\n },\n });\n};\n\nexport const useUpdateBenefitsOffers = (\n options?: OnboardingFlowParams['options'],\n) => {\n const { client } = useClient();\n return useMutation({\n mutationFn: ({\n employmentId,\n ...payload\n }: UnifiedEmploymentUpsertBenefitOffersRequest & {\n employmentId: string;\n }) => {\n const jsonSchemaQueryParam = options?.jsonSchemaVersion\n ?.benefit_offers_form_schema\n ? {\n json_schema_version:\n options.jsonSchemaVersion.benefit_offers_form_schema,\n }\n : {};\n return putUpdateBenefitOffer({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n body: payload,\n path: {\n employment_id: employmentId,\n },\n query: {\n ...jsonSchemaQueryParam,\n },\n });\n },\n });\n};\n\nexport const useMagicLink = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: (params: MagicLinkParams) => {\n return postGenerateMagicLink({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n body: params,\n });\n },\n });\n};\n\nconst useCountries = () => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['countries'],\n retry: false,\n queryFn: async () => {\n const response = await getSupportedCountry({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n });\n\n // If response status is 404 or other error, throw an error to trigger isError\n if (response.error || !response.data) {\n throw new Error('Failed to fetch supported countries');\n }\n\n return response;\n },\n select: ({ data }) => {\n return (\n data?.data?.map((country) => {\n return {\n label: country.name,\n value: country.code,\n };\n }) || []\n );\n },\n });\n};\n\nexport const useCountriesSchemaField = (options?: FlowOptions) => {\n const { data: countries, isLoading } = useCountries();\n\n const { schema: selectCountrySchema } = modify(\n selectCountryStepSchema.data.schema,\n options?.jsfModify || {},\n );\n\n const selectCountryForm = createHeadlessForm(selectCountrySchema);\n\n if (countries) {\n const countryField = selectCountryForm.fields.find(\n (field) => field.name === 'country',\n );\n if (countryField) {\n countryField.options = countries;\n }\n }\n\n return {\n isLoading,\n selectCountryForm,\n };\n};\n\nexport const useConvertCurrency = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: (payload: ConvertCurrencyParams) => {\n return postConvertCurrencyConverter({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n body: payload,\n });\n },\n });\n};\n"],"mappings":"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","names":["createHeadlessForm","modify","useMutation","useQuery","useEmployment","__name","employmentId","client","useClient","useQuery","data","response","getShowEmployment","useCompany","companyId","getShowCompany","useBenefitOffers","getIndexBenefitOffer","acc","item","useEmploymentInvite","useMutation","payload","postInviteEmploymentInvitation","useCreateReserveInvoice","postCreateRiskReserve","useJSONSchemaForm","countryCode","form","fieldValues","options","jsonSchemaQueryParam","getShowFormCountry","jsfSchema","schema","modify","moneyFieldsData","findFieldsByType","field","convertToCents","createHeadlessForm","useBenefitOffersSchema","getShowSchema","hasFieldValues","useCreateEmployment","postCreateEmployment2","useUpdateEmployment","jsonSchemaQueryParams","filteredQueryParams","value","patchUpdateEmployment2","useUpdateBenefitsOffers","putUpdateBenefitOffer","useMagicLink","params","postGenerateMagicLink","useCountries","getSupportedCountry","country","useCountriesSchemaField","countries","isLoading","selectCountrySchema","selectCountryStepSchema","selectCountryForm","countryField","useConvertCurrency","postConvertCurrencyConverter"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{b as e}from"./chunk-GEYFQVQI.js";import{b as u}from"./chunk-3ZWDIEEM.js";import{b as i}from"./chunk-TVZAFTPT.js";import{a as m}from"./chunk-P37U34EQ.js";import{jsx as s}from"react/jsx-runtime";function d({children:t,...o}){let{formId:n}=i(),{components:f}=u(),r=f?.button;return r?s(r,{...o,form:n,children:t}):s(e,{...o,form:n,children:t})}m(d,"ContractAmendmentSubmit");export{d as a};
|
|
2
|
+
//# sourceMappingURL=chunk-RXK4RLF6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/ContractAmendment/ContractAmendmentSubmit.tsx"],"sourcesContent":["import { Button } from '@/src/components/ui/button';\nimport { ButtonHTMLAttributes, PropsWithChildren } from 'react';\nimport { useContractAmendmentContext } from './context';\nimport { useFormFields } from '@/src/context';\n\nexport function ContractAmendmentSubmit({\n children,\n ...props\n}: PropsWithChildren<ButtonHTMLAttributes<HTMLButtonElement>> &\n Record<string, unknown>) {\n const { formId } = useContractAmendmentContext();\n const { components } = useFormFields();\n\n const CustomButton = components?.button;\n if (CustomButton) {\n return (\n <CustomButton {...props} form={formId}>\n {children}\n </CustomButton>\n );\n }\n\n return (\n <Button {...props} form={formId}>\n {children}\n </Button>\n );\n}\n"],"mappings":"gKAgBM,cAAAA,MAAA,oBAXC,SAASC,EAAwB,CACtC,SAAAC,EACA,GAAGC,CACL,EAC2B,CACzB,GAAM,CAAE,OAAAC,CAAO,EAAIC,EAA4B,EACzC,CAAE,WAAAC,CAAW,EAAIC,EAAc,EAE/BC,EAAeF,GAAY,OACjC,OAAIE,EAEAR,EAACQ,EAAA,CAAc,GAAGL,EAAO,KAAMC,EAC5B,SAAAF,EACH,EAKFF,EAACS,EAAA,CAAQ,GAAGN,EAAO,KAAMC,EACtB,SAAAF,EACH,CAEJ,CAtBgBQ,EAAAT,EAAA","names":["jsx","ContractAmendmentSubmit","children","props","formId","useContractAmendmentContext","components","useFormFields","CustomButton","Button","__name"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
var i={employee_communication:{index:0,name:"employee_communication"},termination_details:{index:1,name:"termination_details"},paid_time_off:{index:2,name:"paid_time_off"},additional_information:{index:3,name:"additional_information"}};export{i as a};
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
2
|
+
//# sourceMappingURL=chunk-S4XU4SE7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/Termination/utils.ts"],"sourcesContent":["import { Step } from '@/src/flows/useStepState';\n\nexport type StepTerminationKeys =\n | 'employee_communication'\n | 'termination_details'\n | 'paid_time_off'\n | 'additional_information';\n\nexport const STEPS: Record<StepTerminationKeys, Step<StepTerminationKeys>> = {\n employee_communication: { index: 0, name: 'employee_communication' },\n termination_details: { index: 1, name: 'termination_details' },\n paid_time_off: { index: 2, name: 'paid_time_off' },\n additional_information: { index: 3, name: 'additional_information' },\n} as const;\n"],"mappings":"AAQO,IAAMA,EAAgE,CAC3E,uBAAwB,CAAE,MAAO,EAAG,KAAM,wBAAyB,EACnE,oBAAqB,CAAE,MAAO,EAAG,KAAM,qBAAsB,EAC7D,cAAe,CAAE,MAAO,EAAG,KAAM,eAAgB,EACjD,uBAAwB,CAAE,MAAO,EAAG,KAAM,wBAAyB,CACrE","names":["STEPS"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as J}from"./chunk-UPRUP24B.js";import{e as O,i as x,n as A,r as q,u as L}from"./chunk-WKK63LAY.js";import{a as B}from"./chunk-CFIJKJXD.js";import{d as f}from"./chunk-3ZWDIEEM.js";import{c as C}from"./chunk-MH6KKP6K.js";import{a as r}from"./chunk-P37U34EQ.js";import{object as at}from"yup";import{createHeadlessForm as G,modify as U}from"@remoteoss/json-schema-form";import{useMutation as $,useQuery as F}from"@tanstack/react-query";import{useState as z}from"react";import{string as k,ValidationError as I}from"yup";var rt=r(({includePremiumBenefits:t})=>{let{client:i}=f();return F({queryKey:["cost-calculator-countries",t],queryFn:r(()=>A({client:i,headers:{Authorization:""},query:{include_premium_benefits:t}}),"queryFn"),select:r(n=>n.data?.data.map(a=>({value:a.region_slug,label:a.name,childRegions:a.child_regions,hasAdditionalFields:a.has_additional_fields,regionSlug:a.region_slug})),"select")})},"useCostCalculatorCountries"),ot=r(()=>{let{client:t}=f();return F({queryKey:["company-currencies"],queryFn:r(()=>L({client:t,headers:{Authorization:""}}),"queryFn"),select:r(i=>i.data?.data?.company_currencies.map(n=>({value:n.slug,label:n.code})),"select")})},"useCompanyCurrencies"),it=r(()=>{let{client:t}=f();return $({mutationFn:r(i=>O({client:t,headers:{Authorization:""},body:i}),"mutationFn")})},"useCostCalculatorEstimation"),_t=r(()=>{let{client:t}=f();return $({mutationFn:r(i=>x({client:t,headers:{Authorization:""},body:i}),"mutationFn")})},"useCostCalculatorEstimationPdf"),nt=r((t,{includePremiumBenefits:i,options:n})=>{let{client:a}=f();return F({queryKey:["cost-calculator-region-fields",t,i],queryFn:r(()=>q({client:a,headers:{Authorization:""},path:{slug:t},query:{include_premium_benefits:i}}),"queryFn"),enabled:!!t,select:r(({data:l})=>{let c=l?.data?.schema||{};if(n&&n.jsfModify){let{schema:m}=U(c,n.jsfModify);c=m}return G(c)},"select")})},"useRegionFields"),V={title:"Estimation",includeBenefits:!1,includeCostBreakdowns:!1,includePremiumBenefits:!1},Ft=r(({defaultRegion:t,estimationOptions:i,options:n}={estimationOptions:V})=>{let{schema:a}=U(J.data.schema,n?.jsfModify||{}),l=G(a),[c,m]=z(t),[P,R]=z(),{data:g,isLoading:H}=rt({includePremiumBenefits:i.includePremiumBenefits}),{data:j,isLoading:N}=ot(),Q=c||P?.value,{data:y,isLoading:D}=nt(Q,{includePremiumBenefits:i.includePremiumBenefits,options:n}),M=it();async function W(o){try{await p.validate(o,{abortEarly:!1})}catch(e){return{data:null,error:e}}return new Promise((e,u)=>{M.mutate(T(o,i),{onSuccess:r(s=>{s.data?e({data:s.data,error:null}):e({data:null,error:new Error("Something went wrong. Please try again later.")})},"onSuccess"),onError:r(s=>{u({data:null,error:s})},"onError")})})}r(W,"onSubmit");function X(o){let e=g?.find(({value:u})=>u===o);e&&e.childRegions.length===0&&e.hasAdditionalFields?m(e.regionSlug):m(void 0),R(e)}r(X,"onCountryChange");function Y(o){m(o)}r(Y,"onRegionChange");let d=l.fields.find(o=>o.name==="region");if(d){let o=P?.childRegions.map(e=>({value:e.slug,label:e.name}))??[];d.options=o,d.isVisible=o.length>0,d.required=o.length>0,d.onChange=Y,d.schema=o.length>0?k().transform(e=>typeof e=="string"?e:"").required("Region is required"):k()}if(j){let o=l.fields.find(e=>e.name==="currency");o&&(o.options=j)}if(g){let o=l.fields.find(e=>e.name==="country");o&&(o.options=g,o.onChange=X)}let Z=r(()=>{R(void 0),m(t)},"resetForm"),w=[...l.fields,...y?.fields||[]],p=K(l.fields);async function v(o){let e=null,u=C(o,w);try{await p.validate(u,{abortEarly:!1}),e={formErrors:{},yupError:new I([],o)}}catch(S){let b=B(S);e={formErrors:Object.entries(b).reduce((_,[tt,et])=>({..._,[tt]:et.message}),{}),yupError:S}}let s=y?.handleValidation(u),E=[...e?.yupError.inner||[],...s?.yupError?.inner||[]],h={...e?.yupError?.value||{},...s?.yupError?.value||{}};return{formErrors:{...e?.formErrors||{},...s?.formErrors||{}},yupError:new I(E,h)}}return r(v,"handleValidation"),{stepState:{current:0,total:1,isLastStep:!0},fields:w,validationSchema:p,parseFormValues:r(o=>{let{country:e,region:u,salary:s,currency:E,...h}=o,b=C({country:e,region:u,salary:s,currency:E},l.fields),_=C(h,y?.fields||[]);return{...b,..._}},"parseFormValues"),handleValidation:v,isSubmitting:M.isPending,isLoading:H&&N&&D,onSubmit:W,resetForm:Z}},"useCostCalculator");function K(t){let i=t.reduce((n,a)=>(n[a.name]=a.schema,n),{});return at(i)}r(K,"buildValidationSchema");function st(t){let i="benefit-";return Object.keys(t).reduce((n,a)=>{let c={benefit_group_slug:a.replace(i,""),benefit_tier_slug:t[a]};return[...n,c]},[])}r(st,"formatBenefits");function T(t,i=V){return{employer_currency_slug:t.currency,include_benefits:i.includeBenefits,include_cost_breakdowns:i.includeCostBreakdowns,include_premium_benefits:i.includePremiumBenefits,employments:[{region_slug:t.region||t.country,annual_gross_salary:t.salary,annual_gross_salary_in_employer_currency:t.salary,employment_term:t.contract_duration_type??"fixed",title:i.title,regional_to_employer_exchange_rate:"1",age:t.age??void 0,...t.benefits&&{benefits:st(t.benefits)}}]}}r(T,"buildPayload");export{K as a,T as b,_t as c,V as d,Ft as e};
|
|
2
|
+
//# sourceMappingURL=chunk-SUS7UBI5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/CostCalculator/utils.ts","../src/flows/CostCalculator/hooks.ts"],"sourcesContent":["import type { CostCalculatorEstimateParams } from '@/src/client';\n\nimport { $TSFixMe } from '@/src/types/remoteFlows';\nimport { AnyObjectSchema, object } from 'yup';\nimport { defaultEstimationOptions } from './hooks';\nimport type {\n CostCalculatorEstimationOptions,\n CostCalculatorEstimationSubmitValues,\n} from './types';\n\n/**\n * Build the validation schema for the form.\n * @returns\n */\nexport function buildValidationSchema(fields: $TSFixMe[]) {\n const fieldsSchema = fields.reduce<Record<string, AnyObjectSchema>>(\n (fieldsSchemaAcc, field) => {\n fieldsSchemaAcc[field.name] = field.schema as AnyObjectSchema;\n return fieldsSchemaAcc;\n },\n {},\n );\n return object(fieldsSchema) as AnyObjectSchema;\n}\n\n/**\n * Format the benefits to the expected format by the API.\n * @param benefits\n * @returns\n */\nfunction formatBenefits(benefits: Record<string, string>) {\n const needle = 'benefit-';\n return Object.keys(benefits).reduce<\n Array<{ benefit_group_slug: string; benefit_tier_slug: string }>\n >((acc, key) => {\n const benefitGroupSlug = key.replace(needle, '');\n const benefitEntry = {\n benefit_group_slug: benefitGroupSlug,\n benefit_tier_slug: benefits[key],\n };\n return [...acc, benefitEntry];\n }, []);\n}\n\n/**\n * Build the payload for the cost calculator estimation.\n * @param values\n * @param estimationOptions\n * @returns\n */\nexport function buildPayload(\n values: CostCalculatorEstimationSubmitValues,\n estimationOptions: CostCalculatorEstimationOptions = defaultEstimationOptions,\n): CostCalculatorEstimateParams {\n return {\n employer_currency_slug: values.currency,\n include_benefits: estimationOptions.includeBenefits,\n include_cost_breakdowns: estimationOptions.includeCostBreakdowns,\n include_premium_benefits: estimationOptions.includePremiumBenefits,\n employments: [\n {\n region_slug: values.region || values.country,\n annual_gross_salary: values.salary,\n annual_gross_salary_in_employer_currency: values.salary,\n employment_term: values.contract_duration_type ?? 'fixed',\n title: estimationOptions.title,\n regional_to_employer_exchange_rate: '1',\n age: values.age ?? undefined,\n ...(values.benefits && { benefits: formatBenefits(values.benefits) }),\n },\n ],\n };\n}\n","import {\n CostCalculatorEstimateParams,\n CostCalculatorEstimateResponse,\n getIndexCompanyCurrency,\n getIndexCountry,\n getShowRegionField,\n MinimalRegion,\n postCreateEstimation,\n PostCreateEstimationError,\n postCreateEstimationPdf,\n} from '@/src/client';\nimport { jsonSchema } from '@/src/flows/CostCalculator/jsonSchema';\nimport type {\n CostCalculatorEstimationFormValues,\n CostCalculatorEstimationOptions,\n CostCalculatorEstimationSubmitValues,\n} from '@/src/flows/CostCalculator/types';\nimport type { JSFModify, Result } from '@/src/flows/types';\n\nimport { parseJSFToValidate } from '@/src/components/form/utils';\nimport { iterateErrors } from '@/src/components/form/yupValidationResolver';\nimport { useClient } from '@/src/context';\nimport { Client } from '@hey-api/client-fetch';\nimport { createHeadlessForm, modify } from '@remoteoss/json-schema-form';\nimport { useMutation, useQuery } from '@tanstack/react-query';\nimport { useState } from 'react';\nimport { string, ValidationError } from 'yup';\nimport { buildPayload, buildValidationSchema } from './utils';\n\ntype CostCalculatorCountry = {\n value: string;\n label: string;\n childRegions: MinimalRegion[];\n hasAdditionalFields: boolean | undefined;\n regionSlug: string;\n};\n\ntype JSFValidationError = {\n formErrors: Record<\n string,\n {\n type: string;\n message: string;\n }\n >;\n yupError: ValidationError;\n};\n\n/**\n * Hook to fetch the countries for the cost calculator.\n * @returns\n */\nconst 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 headers: {\n Authorization: ``,\n },\n query: {\n include_premium_benefits: includePremiumBenefits,\n },\n });\n },\n select: (data) =>\n data.data?.data.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 })),\n });\n};\n\n/**\n * Hook to fetch the company currencies.\n * @returns\n */\nconst useCompanyCurrencies = () => {\n const { client } = useClient();\n\n return useQuery({\n queryKey: ['company-currencies'],\n queryFn: () => {\n return getIndexCompanyCurrency({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\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 */\nconst useCostCalculatorEstimation = () => {\n const { client } = useClient();\n\n return useMutation({\n mutationFn: (payload: CostCalculatorEstimateParams) => {\n return postCreateEstimation({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\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 headers: {\n Authorization: ``,\n },\n body: payload,\n });\n },\n });\n};\n\n/**\n * Hook to fetch the region fields.\n * @param region\n * @returns\n */\nconst 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 headers: {\n Authorization: ``,\n },\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\nexport const defaultEstimationOptions: CostCalculatorEstimationOptions = {\n title: 'Estimation',\n includeBenefits: false,\n includeCostBreakdowns: false,\n includePremiumBenefits: false,\n};\n\ntype UseCostCalculatorParams = {\n /**\n * The default region slug to preselect a country and a region.\n */\n defaultRegion?: string;\n /**\n * The estimation options.\n */\n estimationOptions: CostCalculatorEstimationOptions;\n options?: {\n jsfModify?: JSFModify;\n };\n};\n\nexport type EstimationError = PostCreateEstimationError | ValidationError;\n\n/**\n * Hook to use the cost calculator.\n */\nexport const useCostCalculator = (\n { defaultRegion, estimationOptions, options }: UseCostCalculatorParams = {\n estimationOptions: defaultEstimationOptions,\n },\n) => {\n const { schema: jsonSchemaModified } = modify(\n jsonSchema.data.schema,\n options?.jsfModify || {},\n );\n\n const fieldsJSONSchema = createHeadlessForm(jsonSchemaModified);\n\n const [selectedRegion, setSelectedRegion] = useState<string | undefined>(\n defaultRegion,\n );\n const [selectedCountry, setSelectedCountry] =\n useState<CostCalculatorCountry>();\n const { data: countries, isLoading: isLoadingCountries } =\n useCostCalculatorCountries({\n includePremiumBenefits: estimationOptions.includePremiumBenefits,\n });\n const { data: currencies, isLoading: isLoadingCurrencies } =\n useCompanyCurrencies();\n\n const jsonSchemaRegionSlug = selectedRegion || selectedCountry?.value;\n\n const { data: jsonSchemaRegionFields, isLoading: isLoadingRegionFields } =\n useRegionFields(jsonSchemaRegionSlug, {\n includePremiumBenefits: estimationOptions.includePremiumBenefits,\n options,\n });\n const costCalculatorEstimationMutation = useCostCalculatorEstimation();\n\n /**\n * Submit the estimation form with the given values.\n * @param values\n */\n async function onSubmit(\n values: CostCalculatorEstimationSubmitValues,\n ): Promise<Result<CostCalculatorEstimateResponse, EstimationError>> {\n try {\n await validationSchema.validate(values, { abortEarly: false });\n } catch (err) {\n return {\n data: null,\n error: err as ValidationError,\n };\n }\n\n return new Promise((resolve, reject) => {\n costCalculatorEstimationMutation.mutate(\n buildPayload(values, estimationOptions),\n {\n onSuccess: (response) => {\n if (response.data) {\n resolve({\n data: response.data,\n error: null,\n });\n } else {\n resolve({\n data: null,\n error: new Error(\n 'Something went wrong. Please try again later.',\n ),\n });\n }\n },\n onError: (error) => {\n reject({\n data: null,\n error: error as PostCreateEstimationError,\n });\n },\n },\n );\n });\n }\n\n /**\n * If the selected country has no child regions and has additional fields,\n * set the current region to the country's region slug and fetch the region fields.\n * @param country\n */\n function onCountryChange(country: string) {\n const currentCountry = countries?.find(({ value }) => value === country);\n\n if (\n currentCountry &&\n currentCountry.childRegions.length === 0 &&\n currentCountry.hasAdditionalFields\n ) {\n setSelectedRegion(currentCountry.regionSlug);\n } else {\n setSelectedRegion(undefined);\n }\n setSelectedCountry(currentCountry);\n }\n\n /**\n * Update the selected region and fetch the region fields.\n * @param region\n */\n function onRegionChange(region: string) {\n setSelectedRegion(region);\n }\n\n const regionField = fieldsJSONSchema.fields.find(\n (field) => field.name === 'region',\n );\n\n if (regionField) {\n const regions =\n selectedCountry?.childRegions.map((region) => ({\n value: region.slug,\n label: region.name,\n })) ?? [];\n regionField.options = regions;\n regionField.isVisible = regions.length > 0;\n regionField.required = regions.length > 0;\n regionField.onChange = onRegionChange;\n regionField.schema =\n regions.length > 0\n ? string()\n .transform((value) => (typeof value === 'string' ? value : ''))\n .required('Region is required')\n : string();\n }\n\n if (currencies) {\n const currencyField = fieldsJSONSchema.fields.find(\n (field) => field.name === 'currency',\n );\n if (currencyField) {\n currencyField.options = currencies;\n }\n }\n\n if (countries) {\n const countryField = fieldsJSONSchema.fields.find(\n (field) => field.name === 'country',\n );\n if (countryField) {\n countryField.options = countries;\n countryField.onChange = onCountryChange;\n }\n }\n\n const resetForm = () => {\n setSelectedCountry(undefined);\n setSelectedRegion(defaultRegion);\n };\n\n const allFields = [\n ...fieldsJSONSchema.fields,\n ...(jsonSchemaRegionFields?.fields || []),\n ];\n\n const validationSchema = buildValidationSchema(fieldsJSONSchema.fields);\n\n async function handleValidation(values: CostCalculatorEstimationFormValues) {\n let errors: JSFValidationError | null = null;\n\n const parsedValues = parseJSFToValidate(values, allFields);\n\n // 1. validate static fields first using Yup validate function\n try {\n await validationSchema.validate(parsedValues, {\n abortEarly: false,\n });\n errors = {\n formErrors: {},\n yupError: new ValidationError([], values),\n };\n } catch (error) {\n const iterateResult = iterateErrors(error as ValidationError);\n\n errors = {\n // convert the errors to a format that can be used in the form\n formErrors: Object.entries(iterateResult).reduce(\n (acc, [key, value]) => ({ ...acc, [key]: value.message }),\n {},\n ),\n yupError: error as ValidationError,\n };\n }\n\n // 2. validate json schema fields using the handleValidation (from json-schema-form)\n const handleValidationResult =\n jsonSchemaRegionFields?.handleValidation(parsedValues);\n\n // 3. combine the errors from both validations\n const combinedInnerErrors = [\n ...(errors?.yupError.inner || []),\n ...(handleValidationResult?.yupError?.inner || []),\n ];\n const combinedValues = {\n ...(errors?.yupError?.value || {}),\n ...(handleValidationResult?.yupError?.value || {}),\n };\n\n return {\n formErrors: {\n ...(errors?.formErrors || {}),\n ...(handleValidationResult?.formErrors || {}),\n },\n yupError: new ValidationError(combinedInnerErrors, combinedValues),\n };\n }\n\n return {\n stepState: {\n current: 0,\n total: 1,\n isLastStep: true,\n },\n fields: allFields,\n validationSchema,\n parseFormValues: (\n values: CostCalculatorEstimationFormValues,\n ): CostCalculatorEstimationSubmitValues => {\n const { country, region, salary, currency, ...rest } = values;\n const jsonSchemaStaticFieldValues = {\n country,\n region,\n salary,\n currency,\n };\n const parsedStaticFields = parseJSFToValidate(\n jsonSchemaStaticFieldValues,\n fieldsJSONSchema.fields,\n );\n\n const parsedRegionFields = parseJSFToValidate(\n rest,\n jsonSchemaRegionFields?.fields || [],\n );\n\n return {\n ...parsedStaticFields,\n ...parsedRegionFields,\n } as CostCalculatorEstimationSubmitValues;\n },\n handleValidation,\n isSubmitting: costCalculatorEstimationMutation.isPending,\n isLoading:\n isLoadingCountries && isLoadingCurrencies && isLoadingRegionFields,\n onSubmit,\n resetForm,\n };\n};\n"],"mappings":"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","names":["object","createHeadlessForm","modify","useMutation","useQuery","useState","string","ValidationError","useCostCalculatorCountries","__name","includePremiumBenefits","client","useClient","useQuery","getIndexCountry","data","country","useCompanyCurrencies","getIndexCompanyCurrency","currency","useCostCalculatorEstimation","useMutation","payload","postCreateEstimation","useCostCalculatorEstimationPdf","postCreateEstimationPdf","useRegionFields","region","options","getShowRegionField","jsfSchema","schema","modify","createHeadlessForm","defaultEstimationOptions","useCostCalculator","defaultRegion","estimationOptions","jsonSchemaModified","jsonSchema","fieldsJSONSchema","selectedRegion","setSelectedRegion","useState","selectedCountry","setSelectedCountry","countries","isLoadingCountries","currencies","isLoadingCurrencies","jsonSchemaRegionSlug","jsonSchemaRegionFields","isLoadingRegionFields","costCalculatorEstimationMutation","onSubmit","values","validationSchema","err","resolve","reject","buildPayload","response","error","onCountryChange","currentCountry","value","onRegionChange","regionField","field","regions","string","currencyField","countryField","resetForm","allFields","buildValidationSchema","handleValidation","errors","parsedValues","parseJSFToValidate","ValidationError","iterateResult","iterateErrors","acc","key","handleValidationResult","combinedInnerErrors","combinedValues","salary","rest","parsedStaticFields","parsedRegionFields","buildValidationSchema","fields","fieldsSchema","fieldsSchemaAcc","field","object","__name","formatBenefits","benefits","needle","acc","key","benefitEntry","buildPayload","values","estimationOptions","defaultEstimationOptions"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as n}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as n}from"./chunk-P37U34EQ.js";import{createContext as e,useContext as o}from"react";var r=e({formId:void 0,contractAmendmentBag:null}),c=n(()=>{let t=o(r);if(!t.contractAmendmentBag)throw new Error("useContractAmendmentContext must be used within a ContractAmendmentProvider");return{formId:t.formId,contractAmendment:t.contractAmendmentBag}},"useContractAmendmentContext");export{r as a,c as b};
|
|
2
|
+
//# sourceMappingURL=chunk-TVZAFTPT.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{b as f}from"./chunk-MRYRNB7Y.js";import{a as l}from"./chunk-Z3HWTDRE.js";import{b as s}from"./chunk-CFIJKJXD.js";import{a}from"./chunk-VNSF5IOL.js";import{a as n}from"./chunk-P37U34EQ.js";import{useEffect as y}from"react";import{useForm as T}from"react-hook-form";import{jsx as e}from"react/jsx-runtime";function A({fields:m,onSubmit:d}){let{formId:F,terminationBag:o}=f(),u=s(o.handleValidation),i=T({resolver:u,defaultValues:o?.initialValues,shouldUnregister:!1,mode:"onBlur"});y(()=>{let p=i?.watch(r=>{Object.keys(r).some(t=>r[t]!==o?.initialValues?.[t])&&o?.checkFieldUpdates(r)});return()=>p?.unsubscribe()},[]);let c=m||(o?.fields??[]);return e(a,{...i,children:e("form",{id:F,onSubmit:i.handleSubmit(d),className:"space-y-4 RemoteFlows__TerminationForm",children:e(l,{fields:c})})})}n(A,"TerminationForm");export{A as a};
|
|
2
|
+
//# sourceMappingURL=chunk-U6OPL6WG.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/Termination/TerminationForm.tsx"],"sourcesContent":["import { JSONSchemaFormFields } from '@/src/components/form/JSONSchemaForm';\nimport { Form } from '@/src/components/ui/form';\nimport { useEffect } from 'react';\nimport { useTerminationContext } from './context';\nimport { TerminationFormValues } from '@/src/flows/Termination/types';\nimport { useForm } from 'react-hook-form';\nimport { useJsonSchemasValidationFormResolver } from '@/src/components/form/yupValidationResolver';\nimport { Fields } from '@remoteoss/json-schema-form';\n\ntype TerminationFormProps = {\n onSubmit: (payload: TerminationFormValues) => void;\n fields?: Fields;\n};\n\nexport function TerminationForm({ fields, onSubmit }: TerminationFormProps) {\n const { formId, terminationBag } = useTerminationContext();\n\n const resolver = useJsonSchemasValidationFormResolver(\n // @ts-expect-error no matching type\n terminationBag.handleValidation,\n );\n\n const form = useForm({\n resolver,\n defaultValues: terminationBag?.initialValues,\n shouldUnregister: false,\n mode: 'onBlur',\n });\n\n useEffect(() => {\n const subscription = form?.watch((values) => {\n const isAnyFieldDirty = Object.keys(values).some(\n (key) =>\n values[key as keyof TerminationFormValues] !==\n terminationBag?.initialValues?.[key as keyof TerminationFormValues],\n );\n if (isAnyFieldDirty) {\n terminationBag?.checkFieldUpdates(values);\n }\n });\n return () => subscription?.unsubscribe();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const jsonSchemaFields = fields ? fields : (terminationBag?.fields ?? []);\n\n return (\n <Form {...form}>\n <form\n id={formId}\n onSubmit={form.handleSubmit(onSubmit)}\n className=\"space-y-4 RemoteFlows__TerminationForm\"\n >\n <JSONSchemaFormFields fields={jsonSchemaFields} />\n </form>\n </Form>\n );\n}\n"],"mappings":"mMAEA,OAAS,aAAAA,MAAiB,QAG1B,OAAS,WAAAC,MAAe,kBAgDhB,cAAAC,MAAA,oBAvCD,SAASC,EAAgB,CAAE,OAAAC,EAAQ,SAAAC,CAAS,EAAyB,CAC1E,GAAM,CAAE,OAAAC,EAAQ,eAAAC,CAAe,EAAIC,EAAsB,EAEnDC,EAAWC,EAEfH,EAAe,gBACjB,EAEMI,EAAOC,EAAQ,CACnB,SAAAH,EACA,cAAeF,GAAgB,cAC/B,iBAAkB,GAClB,KAAM,QACR,CAAC,EAEDM,EAAU,IAAM,CACd,IAAMC,EAAeH,GAAM,MAAOI,GAAW,CACnB,OAAO,KAAKA,CAAM,EAAE,KACzCC,GACCD,EAAOC,CAAkC,IACzCT,GAAgB,gBAAgBS,CAAkC,CACtE,GAEET,GAAgB,kBAAkBQ,CAAM,CAE5C,CAAC,EACD,MAAO,IAAMD,GAAc,YAAY,CAEzC,EAAG,CAAC,CAAC,EAEL,IAAMG,EAAmBb,IAAmBG,GAAgB,QAAU,CAAC,GAEvE,OACEL,EAACgB,EAAA,CAAM,GAAGP,EACR,SAAAT,EAAC,QACC,GAAII,EACJ,SAAUK,EAAK,aAAaN,CAAQ,EACpC,UAAU,yCAEV,SAAAH,EAACiB,EAAA,CAAqB,OAAQF,EAAkB,EAClD,EACF,CAEJ,CA3CgBG,EAAAjB,EAAA","names":["useEffect","useForm","jsx","TerminationForm","fields","onSubmit","formId","terminationBag","useTerminationContext","resolver","useJsonSchemasValidationFormResolver","form","useForm","useEffect","subscription","values","key","jsonSchemaFields","Form","JSONSchemaFormFields","__name"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{d as g,e as S}from"./chunk-RWYOUDM5.js";import{b as R}from"./chunk-PGWKJ6FK.js";import{a as m}from"./chunk-KHZ2ITFO.js";import{b as f}from"./chunk-GEYFQVQI.js";import{b as y}from"./chunk-3ZWDIEEM.js";import{a}from"./chunk-P37U34EQ.js";import{jsx as w}from"react/jsx-runtime";function O({onSubmit:I,onSuccess:d,onError:o,render:u,...n}){let{components:b}=y(),{onboardingBag:t,setCreditScore:c}=R(),i=g(),s=S(),{mutateAsync:_}=m(i),{mutateAsync:C}=m(s),l=a(async()=>{try{if(await I?.(),t.creditRiskStatus==="deposit_required"&&t.employmentId&&t.employment?.status&&!t.isEmploymentReadOnly){let e=await C({employment_slug:t.employmentId});if(e.data){await d?.({data:e.data,employmentStatus:"created_awaiting_reserve"}),c?.(r=>({...r,showReserveInvoice:!0})),t.refetchEmployment();return}e.error&&o?.(e.error)}else if(t.employmentId){let e=await _({employment_id:t.employmentId});if(e.data){await d?.({data:e.data,employmentStatus:"invited"}),c?.(r=>({...r,showInviteSuccessful:!0})),t.refetchEmployment();return}e.error&&o?.(e.error)}}catch(e){o?.(e)}},"handleSubmit"),p=t.creditRiskStatus==="deposit_required"&&t.employment?.status&&!t.isEmploymentReadOnly,v=b?.button;return v?w(v,{...n,disabled:i.isPending||s.isPending||n.disabled,onClick:e=>{l(),n.onClick?.(e)},children:u({employmentStatus:p?"created_awaiting_reserve":"invited"})}):w(f,{...n,disabled:i.isPending||s.isPending||n.disabled,onClick:()=>{l()},children:u({employmentStatus:p?"created_awaiting_reserve":"invited"})})}a(O,"OnboardingInvite");export{O as a};
|
|
2
|
+
//# sourceMappingURL=chunk-VEOGRXYK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/Onboarding/OnboardingInvite.tsx"],"sourcesContent":["import { ButtonHTMLAttributes, ReactNode } from 'react';\nimport { useEmploymentInvite } from './api';\nimport { Button } from '@/src/components/ui/button';\nimport { useCreateReserveInvoice } from '@/src/flows/Onboarding/api';\nimport { mutationToPromise } from '@/src/lib/mutations';\nimport { SuccessResponse } from '@/src/client';\nimport { useOnboardingContext } from './context';\nimport { useFormFields } from '@/src/context';\n\nexport type OnboardingInviteProps = ButtonHTMLAttributes<HTMLButtonElement> & {\n onSuccess?: ({\n data,\n employmentStatus,\n }: {\n data: SuccessResponse;\n employmentStatus: 'invited' | 'created_awaiting_reserve';\n }) => void | Promise<void>;\n onError?: (error: unknown) => void;\n onSubmit?: () => void | Promise<void>;\n render: (props: {\n employmentStatus: 'invited' | 'created_awaiting_reserve';\n }) => ReactNode;\n} & Record<string, unknown>;\n\nexport function OnboardingInvite({\n onSubmit,\n onSuccess,\n onError,\n render,\n ...props\n}: OnboardingInviteProps) {\n const { components } = useFormFields();\n const { onboardingBag, setCreditScore } = useOnboardingContext();\n const employmentInviteMutation = useEmploymentInvite();\n const useCreateReserveInvoiceMutation = useCreateReserveInvoice();\n\n const { mutateAsync: employmentInviteMutationAsync } = mutationToPromise(\n employmentInviteMutation,\n );\n\n const { mutateAsync: createReserveInvoiceMutationAsync } = mutationToPromise(\n useCreateReserveInvoiceMutation,\n );\n\n const handleSubmit = async () => {\n try {\n await onSubmit?.();\n if (\n onboardingBag.creditRiskStatus === 'deposit_required' &&\n onboardingBag.employmentId &&\n onboardingBag.employment?.status &&\n !onboardingBag.isEmploymentReadOnly\n ) {\n const response = await createReserveInvoiceMutationAsync({\n employment_slug: onboardingBag.employmentId,\n });\n if (response.data) {\n await onSuccess?.({\n data: response.data as SuccessResponse,\n employmentStatus: 'created_awaiting_reserve',\n });\n setCreditScore?.((prev) => ({\n ...prev,\n showReserveInvoice: true,\n }));\n onboardingBag.refetchEmployment();\n return;\n }\n\n if (response.error) {\n onError?.(response.error);\n }\n } else if (onboardingBag.employmentId) {\n const response = await employmentInviteMutationAsync({\n employment_id: onboardingBag.employmentId,\n });\n if (response.data) {\n await onSuccess?.({\n data: response.data as SuccessResponse,\n employmentStatus: 'invited',\n });\n setCreditScore?.((prev) => ({\n ...prev,\n showInviteSuccessful: true,\n }));\n onboardingBag.refetchEmployment();\n return;\n }\n if (response.error) {\n onError?.(response.error);\n }\n }\n } catch (error) {\n onError?.(error);\n }\n };\n\n const isReserveFlow =\n onboardingBag.creditRiskStatus === 'deposit_required' &&\n onboardingBag.employment?.status &&\n !onboardingBag.isEmploymentReadOnly;\n\n const CustomButton = components?.button;\n if (CustomButton) {\n return (\n <CustomButton\n {...props}\n disabled={\n employmentInviteMutation.isPending ||\n useCreateReserveInvoiceMutation.isPending ||\n props.disabled\n }\n onClick={(evt) => {\n handleSubmit();\n props.onClick?.(evt);\n }}\n >\n {render({\n employmentStatus: isReserveFlow\n ? 'created_awaiting_reserve'\n : 'invited',\n })}\n </CustomButton>\n );\n }\n\n return (\n <Button\n {...props}\n disabled={\n employmentInviteMutation.isPending ||\n useCreateReserveInvoiceMutation.isPending ||\n props.disabled\n }\n onClick={() => {\n handleSubmit();\n }}\n >\n {render({\n employmentStatus: isReserveFlow\n ? 'created_awaiting_reserve'\n : 'invited',\n })}\n </Button>\n );\n}\n"],"mappings":"kPAyGM,cAAAA,MAAA,oBAjFC,SAASC,EAAiB,CAC/B,SAAAC,EACA,UAAAC,EACA,QAAAC,EACA,OAAAC,EACA,GAAGC,CACL,EAA0B,CACxB,GAAM,CAAE,WAAAC,CAAW,EAAIC,EAAc,EAC/B,CAAE,cAAAC,EAAe,eAAAC,CAAe,EAAIC,EAAqB,EACzDC,EAA2BC,EAAoB,EAC/CC,EAAkCC,EAAwB,EAE1D,CAAE,YAAaC,CAA8B,EAAIC,EACrDL,CACF,EAEM,CAAE,YAAaM,CAAkC,EAAID,EACzDH,CACF,EAEMK,EAAeC,EAAA,SAAY,CAC/B,GAAI,CAEF,GADA,MAAMlB,IAAW,EAEfO,EAAc,mBAAqB,oBACnCA,EAAc,cACdA,EAAc,YAAY,QAC1B,CAACA,EAAc,qBACf,CACA,IAAMY,EAAW,MAAMH,EAAkC,CACvD,gBAAiBT,EAAc,YACjC,CAAC,EACD,GAAIY,EAAS,KAAM,CACjB,MAAMlB,IAAY,CAChB,KAAMkB,EAAS,KACf,iBAAkB,0BACpB,CAAC,EACDX,IAAkBY,IAAU,CAC1B,GAAGA,EACH,mBAAoB,EACtB,EAAE,EACFb,EAAc,kBAAkB,EAChC,MACF,CAEIY,EAAS,OACXjB,IAAUiB,EAAS,KAAK,CAE5B,SAAWZ,EAAc,aAAc,CACrC,IAAMY,EAAW,MAAML,EAA8B,CACnD,cAAeP,EAAc,YAC/B,CAAC,EACD,GAAIY,EAAS,KAAM,CACjB,MAAMlB,IAAY,CAChB,KAAMkB,EAAS,KACf,iBAAkB,SACpB,CAAC,EACDX,IAAkBY,IAAU,CAC1B,GAAGA,EACH,qBAAsB,EACxB,EAAE,EACFb,EAAc,kBAAkB,EAChC,MACF,CACIY,EAAS,OACXjB,IAAUiB,EAAS,KAAK,CAE5B,CACF,OAASE,EAAO,CACdnB,IAAUmB,CAAK,CACjB,CACF,EAnDqB,gBAqDfC,EACJf,EAAc,mBAAqB,oBACnCA,EAAc,YAAY,QAC1B,CAACA,EAAc,qBAEXgB,EAAelB,GAAY,OACjC,OAAIkB,EAEAzB,EAACyB,EAAA,CACE,GAAGnB,EACJ,SACEM,EAAyB,WACzBE,EAAgC,WAChCR,EAAM,SAER,QAAUoB,GAAQ,CAChBP,EAAa,EACbb,EAAM,UAAUoB,CAAG,CACrB,EAEC,SAAArB,EAAO,CACN,iBAAkBmB,EACd,2BACA,SACN,CAAC,EACH,EAKFxB,EAAC2B,EAAA,CACE,GAAGrB,EACJ,SACEM,EAAyB,WACzBE,EAAgC,WAChCR,EAAM,SAER,QAAS,IAAM,CACba,EAAa,CACf,EAEC,SAAAd,EAAO,CACN,iBAAkBmB,EACd,2BACA,SACN,CAAC,EACH,CAEJ,CAzHgBJ,EAAAnB,EAAA","names":["jsx","OnboardingInvite","onSubmit","onSuccess","onError","render","props","components","useFormFields","onboardingBag","setCreditScore","useOnboardingContext","employmentInviteMutation","useEmploymentInvite","useCreateReserveInvoiceMutation","useCreateReserveInvoice","employmentInviteMutationAsync","mutationToPromise","createReserveInvoiceMutationAsync","handleSubmit","__name","response","prev","error","isReserveFlow","CustomButton","evt","Button"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as i}from"./chunk-QKTDO33H.js";import{b as n}from"./chunk-PGWKJ6FK.js";import{a as r}from"./chunk-P37U34EQ.js";import{jsx as l}from"react/jsx-runtime";function u({onSubmit:s,onError:a,onSuccess:m}){let{onboardingBag:t}=n(),p=r(async e=>{try{await s?.(t.parseFormValues(e));let o=await t.onSubmit(e);if(o?.data){await m?.(o.data),t?.next();return}o?.error&&a?.(o.error)}catch(o){a?.(o)}},"handleSubmit");return l(i,{defaultValues:t.stepState.values?.contract_details||t.initialValues.contract_details,onSubmit:p})}r(u,"ContractDetailsStep");export{u as a};
|
|
2
|
+
//# sourceMappingURL=chunk-VJEJUUY2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/Onboarding/ContractDetailsStep.tsx"],"sourcesContent":["import { useOnboardingContext } from './context';\nimport { OnboardingForm } from '@/src/flows/Onboarding/OnboardingForm';\nimport { EmploymentResponse } from '@/src/client';\nimport { ContractDetailsFormPayload } from '@/src/flows/Onboarding/types';\nimport { $TSFixMe } from '@/src/types/remoteFlows';\n\ntype ContractDetailsStepProps = {\n /*\n * The function is called when the form is submitted. It receives the form values as an argument.\n */\n onSubmit?: (payload: ContractDetailsFormPayload) => void | Promise<void>;\n /*\n * The function is called when the form submission is successful.\n */\n onSuccess?: (response: EmploymentResponse) => void | Promise<void>;\n /*\n * The function is called when an error occurs during form submission.\n */\n onError?: (error: Error) => void;\n};\n\nexport function ContractDetailsStep({\n onSubmit,\n onError,\n onSuccess,\n}: ContractDetailsStepProps) {\n const { onboardingBag } = useOnboardingContext();\n const handleSubmit = async (payload: $TSFixMe) => {\n try {\n await onSubmit?.(\n onboardingBag.parseFormValues(payload) as ContractDetailsFormPayload,\n );\n const response = await onboardingBag.onSubmit(payload);\n if (response?.data) {\n await onSuccess?.(response.data as EmploymentResponse);\n onboardingBag?.next();\n return;\n }\n if (response?.error) {\n onError?.(response.error);\n }\n } catch (error: unknown) {\n onError?.(error as Error);\n }\n };\n\n return (\n <OnboardingForm\n defaultValues={\n onboardingBag.stepState.values?.contract_details ||\n onboardingBag.initialValues.contract_details\n }\n onSubmit={handleSubmit}\n />\n );\n}\n"],"mappings":"wHA+CI,cAAAA,MAAA,oBA1BG,SAASC,EAAoB,CAClC,SAAAC,EACA,QAAAC,EACA,UAAAC,CACF,EAA6B,CAC3B,GAAM,CAAE,cAAAC,CAAc,EAAIC,EAAqB,EACzCC,EAAeC,EAAA,MAAOC,GAAsB,CAChD,GAAI,CACF,MAAMP,IACJG,EAAc,gBAAgBI,CAAO,CACvC,EACA,IAAMC,EAAW,MAAML,EAAc,SAASI,CAAO,EACrD,GAAIC,GAAU,KAAM,CAClB,MAAMN,IAAYM,EAAS,IAA0B,EACrDL,GAAe,KAAK,EACpB,MACF,CACIK,GAAU,OACZP,IAAUO,EAAS,KAAK,CAE5B,OAASC,EAAgB,CACvBR,IAAUQ,CAAc,CAC1B,CACF,EAjBqB,gBAmBrB,OACEX,EAACY,EAAA,CACC,cACEP,EAAc,UAAU,QAAQ,kBAChCA,EAAc,cAAc,iBAE9B,SAAUE,EACZ,CAEJ,CAlCgBC,EAAAP,EAAA","names":["jsx","ContractDetailsStep","onSubmit","onError","onSuccess","onboardingBag","useOnboardingContext","handleSubmit","__name","payload","response","error","OnboardingForm"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a}from"./chunk-QKTDO33H.js";import{b as i}from"./chunk-PGWKJ6FK.js";import{d as s}from"./chunk-MH6KKP6K.js";import{a as t}from"./chunk-P37U34EQ.js";import{jsx as d}from"react/jsx-runtime";function P({components:m,onSubmit:p,onError:n,onSuccess:f}){let{onboardingBag:e}=i(),u=e.fields??[],c=s(u,e.initialValues.benefits);return d(a,{defaultValues:c,components:m,onSubmit:t(async r=>{try{await p?.(r);let o=await e.onSubmit(r);if(o?.data){await f?.(o.data),e?.next();return}o?.error&&n?.(o.error)}catch(o){n?.(o)}},"handleSubmit")})}t(P,"BenefitsStep");export{P as a};
|
|
2
|
+
//# sourceMappingURL=chunk-VJEL5MZJ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/Onboarding/BenefitsStep.tsx"],"sourcesContent":["import { Components } from '@/src/types/remoteFlows';\nimport { OnboardingForm } from '@/src/flows/Onboarding/OnboardingForm';\nimport { useOnboardingContext } from '@/src/flows/Onboarding/context';\nimport { SuccessResponse } from '@/src/client';\nimport { getInitialValues } from '@/src/components/form/utils';\nimport { BenefitsFormPayload } from '@/src/flows/Onboarding/types';\nimport { $TSFixMe } from '@/src/types/remoteFlows';\n\ntype BenefitsStepProps = {\n components?: Components;\n /**\n * Callback function to be called when the benefits form is submitted.\n * It can be used to perform any additional validation or processing before\n * the onboarding moves to the last step.\n * @param values\n * @returns\n */\n onSubmit?: (values: BenefitsFormPayload) => void | Promise<void>;\n /**\n * Callback function to be called when the submitting benefits form fails.\n * @param error\n * @returns\n */\n onError?: (error: Error) => void;\n /**\n * Callback function to be called when benefits form is successfully submitted.\n * This function is called after the submitting benefits form is submitted.\n * @param data\n * @returns\n */\n onSuccess?: (data: SuccessResponse) => void | Promise<void>;\n};\n\nexport function BenefitsStep({\n components,\n onSubmit,\n onError,\n onSuccess,\n}: BenefitsStepProps) {\n const { onboardingBag } = useOnboardingContext();\n const fields = onboardingBag.fields ?? [];\n const initialValues = getInitialValues(\n fields,\n onboardingBag.initialValues.benefits,\n );\n\n const handleSubmit = async (payload: $TSFixMe) => {\n try {\n await onSubmit?.(payload as BenefitsFormPayload);\n const response = await onboardingBag.onSubmit(payload);\n if (response?.data) {\n await onSuccess?.(response.data as SuccessResponse);\n onboardingBag?.next();\n return;\n }\n if (response?.error) {\n onError?.(response.error);\n }\n } catch (error: unknown) {\n onError?.(error as Error);\n }\n };\n\n return (\n <OnboardingForm\n defaultValues={initialValues}\n components={components}\n onSubmit={handleSubmit}\n />\n );\n}\n"],"mappings":"2JAgEI,cAAAA,MAAA,oBA/BG,SAASC,EAAa,CAC3B,WAAAC,EACA,SAAAC,EACA,QAAAC,EACA,UAAAC,CACF,EAAsB,CACpB,GAAM,CAAE,cAAAC,CAAc,EAAIC,EAAqB,EACzCC,EAASF,EAAc,QAAU,CAAC,EAClCG,EAAgBC,EACpBF,EACAF,EAAc,cAAc,QAC9B,EAmBA,OACEN,EAACW,EAAA,CACC,cAAeF,EACf,WAAYP,EACZ,SArBiBU,EAAA,MAAOC,GAAsB,CAChD,GAAI,CACF,MAAMV,IAAWU,CAA8B,EAC/C,IAAMC,EAAW,MAAMR,EAAc,SAASO,CAAO,EACrD,GAAIC,GAAU,KAAM,CAClB,MAAMT,IAAYS,EAAS,IAAuB,EAClDR,GAAe,KAAK,EACpB,MACF,CACIQ,GAAU,OACZV,IAAUU,EAAS,KAAK,CAE5B,OAASC,EAAgB,CACvBX,IAAUW,CAAc,CAC1B,CACF,EAfqB,gBAsBnB,CAEJ,CArCgBH,EAAAX,EAAA","names":["jsx","BenefitsStep","components","onSubmit","onError","onSuccess","onboardingBag","useOnboardingContext","fields","initialValues","getInitialValues","OnboardingForm","__name","payload","response","error"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{b as s}from"./chunk-PGWKJ6FK.js";import{b as u}from"./chunk-GEYFQVQI.js";import{b as i}from"./chunk-3ZWDIEEM.js";import{a as t}from"./chunk-P37U34EQ.js";import{jsx as m}from"react/jsx-runtime";function f({children:o,onClick:a,...n}){let{onboardingBag:{back:c,isEmploymentReadOnly:B}}=s(),{components:d}=i(),r=t(p=>{B||c(),a?.(p)},"onBackHandler"),e=d?.button;return e?m(e,{...n,onClick:r,children:o}):m(u,{...n,onClick:r,children:o})}t(f,"OnboardingBack");export{f as a};
|
|
2
|
+
//# sourceMappingURL=chunk-VN4HDCRB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/Onboarding/OnboardingBack.tsx"],"sourcesContent":["import { Button } from '@/src/components/ui/button';\nimport { ButtonHTMLAttributes, PropsWithChildren } from 'react';\nimport { useOnboardingContext } from '@/src/flows/Onboarding/context';\nimport { useFormFields } from '@/src/context';\n\ntype OnboardingBackProps = ButtonHTMLAttributes<HTMLButtonElement> &\n Record<string, unknown>;\n\nexport function OnboardingBack({\n children,\n onClick,\n ...props\n}: PropsWithChildren<OnboardingBackProps>) {\n const {\n onboardingBag: { back, isEmploymentReadOnly },\n } = useOnboardingContext();\n\n const { components } = useFormFields();\n\n const onBackHandler = (evt: React.MouseEvent<HTMLButtonElement>) => {\n if (!isEmploymentReadOnly) {\n back();\n }\n onClick?.(evt);\n };\n\n const CustomButton = components?.button;\n if (CustomButton) {\n return (\n <CustomButton {...props} onClick={onBackHandler}>\n {children}\n </CustomButton>\n );\n }\n\n return (\n <Button {...props} onClick={onBackHandler}>\n {children}\n </Button>\n );\n}\n"],"mappings":"gKA6BM,cAAAA,MAAA,oBArBC,SAASC,EAAe,CAC7B,SAAAC,EACA,QAAAC,EACA,GAAGC,CACL,EAA2C,CACzC,GAAM,CACJ,cAAe,CAAE,KAAAC,EAAM,qBAAAC,CAAqB,CAC9C,EAAIC,EAAqB,EAEnB,CAAE,WAAAC,CAAW,EAAIC,EAAc,EAE/BC,EAAgBC,EAACC,GAA6C,CAC7DN,GACHD,EAAK,EAEPF,IAAUS,CAAG,CACf,EALsB,iBAOhBC,EAAeL,GAAY,OACjC,OAAIK,EAEAb,EAACa,EAAA,CAAc,GAAGT,EAAO,QAASM,EAC/B,SAAAR,EACH,EAKFF,EAACc,EAAA,CAAQ,GAAGV,EAAO,QAASM,EACzB,SAAAR,EACH,CAEJ,CAhCgBS,EAAAV,EAAA","names":["jsx","OnboardingBack","children","onClick","props","back","isEmploymentReadOnly","useOnboardingContext","components","useFormFields","onBackHandler","__name","evt","CustomButton","Button"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as s}from"./chunk-KPHSEIR3.js";import{a}from"./chunk-P37U34EQ.js";import{Slot as C}from"@radix-ui/react-slot";import*as i from"react";import c from"dompurify";import{Controller as b,FormProvider as R,useFormContext as g,useFormState as P}from"react-hook-form";import*as u from"@radix-ui/react-label";import{jsx as x}from"react/jsx-runtime";function f({className:e,...t}){return x(u.Root,{"data-slot":"label",className:s("flex items-center gap-2 text-sm leading-none select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50",e),...t})}a(f,"Label");import{jsx as n}from"react/jsx-runtime";var _=R,p=i.createContext({}),k=a(({...e})=>n(p.Provider,{value:{name:e.name},children:n(b,{...e})}),"FormField"),d=a(()=>{let e=i.useContext(p),t=i.useContext(F),{getFieldState:o}=g(),r=P({name:e.name}),m=o(e.name,r);if(!e)throw new Error("useFormField should be used within <FormField>");let{id:l}=t;return{id:l,name:e.name,formItemId:`${l}-form-item`,formDescriptionId:`${l}-form-item-description`,formMessageId:`${l}-form-item-message`,...m}},"useFormField"),F=i.createContext({});function z({className:e,...t}){let o=i.useId();return n(F.Provider,{value:{id:o},children:n("div",{"data-slot":"form-item",...t,className:s("grid gap-2",e)})})}a(z,"FormItem");function H({className:e,...t}){let{error:o,formItemId:r}=d();return n(f,{"data-slot":"form-label","data-error":!!o,className:s("text-base-color mb-1 data-[error=true]:text-destructive",e),htmlFor:r,...t})}a(H,"FormLabel");var I=i.forwardRef(({...e},t)=>{let{error:o,formItemId:r,formDescriptionId:m,formMessageId:l}=d();return n(C,{"data-slot":"form-control",ref:t,id:r,"aria-describedby":o?`${m} ${l}`:`${m}`,"aria-invalid":!!o,...e})});I.displayName="FormControl";var V=a(e=>{let t=new Set(e?e.toLowerCase().split(" "):[]);return t.add("noopener"),t.add("noreferrer"),Array.from(t).join(" ")},"appendSecureRelValue");c.isSupported&&c.addHook("afterSanitizeAttributes",e=>{let t=e.getAttribute("target");if(e.tagName==="A"&&(!t||t!=="_self")){e.setAttribute("target","_blank");let o=e.getAttribute("rel");e.setAttribute("rel",V(o))}});function E({className:e,children:t,...o}){let{formDescriptionId:r}=d();return typeof t=="string"?n("p",{"data-slot":"form-description",id:r,className:s("text-base-color text-xs",e),dangerouslySetInnerHTML:{__html:c.sanitize(t,{ADD_ATTR:["target"]})},...o}):n("p",{"data-slot":"form-description",id:r,className:s("text-base-color text-xs",e),...o,children:typeof t=="function"?t():t})}a(E,"FormDescription");function O({className:e,...t}){let{error:o,formMessageId:r}=d(),m=o?String(o?.message??""):t.children;return m?n("p",{"data-slot":"form-message",id:r,className:s("text-destructive text-sm",e),...t,children:m}):null}a(O,"FormMessage");export{_ as a,k as b,z as c,H as d,I as e,E as f,O as g};
|
|
2
|
+
//# sourceMappingURL=chunk-VNSF5IOL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/form.tsx","../src/components/ui/label.tsx"],"sourcesContent":["import * as LabelPrimitive from '@radix-ui/react-label';\nimport { Slot } from '@radix-ui/react-slot';\nimport * as React from 'react';\nimport DOMPurify from 'dompurify';\nimport {\n Controller,\n ControllerProps,\n FieldPath,\n FieldValues,\n FormProvider,\n useFormContext,\n useFormState,\n} from 'react-hook-form';\n\nimport { Label } from '@/src/components/ui/label';\nimport { cn } from '@/src/lib/utils';\n\nconst Form = FormProvider;\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> = {\n name: TName;\n};\n\nconst FormFieldContext = React.createContext<FormFieldContextValue>(\n {} as FormFieldContextValue,\n);\n\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n return (\n <FormFieldContext.Provider value={{ name: props.name }}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n );\n};\n\nconst useFormField = () => {\n const fieldContext = React.useContext(FormFieldContext);\n const itemContext = React.useContext(FormItemContext);\n const { getFieldState } = useFormContext();\n const formState = useFormState({ name: fieldContext.name });\n const fieldState = getFieldState(fieldContext.name, formState);\n\n if (!fieldContext) {\n throw new Error('useFormField should be used within <FormField>');\n }\n\n const { id } = itemContext;\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n };\n};\n\ntype FormItemContextValue = {\n id: string;\n};\n\nconst FormItemContext = React.createContext<FormItemContextValue>(\n {} as FormItemContextValue,\n);\n\nfunction FormItem({ className, ...props }: React.ComponentProps<'div'>) {\n const id = React.useId();\n\n return (\n <FormItemContext.Provider value={{ id }}>\n <div\n data-slot=\"form-item\"\n {...props}\n className={cn('grid gap-2', className)}\n />\n </FormItemContext.Provider>\n );\n}\n\nfunction FormLabel({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n const { error, formItemId } = useFormField();\n\n return (\n <Label\n data-slot=\"form-label\"\n data-error={!!error}\n className={cn(\n 'text-base-color mb-1 data-[error=true]:text-destructive',\n className,\n )}\n htmlFor={formItemId}\n {...props}\n />\n );\n}\n\nconst FormControl = React.forwardRef<\n React.ComponentRef<typeof Slot>,\n React.ComponentPropsWithoutRef<typeof Slot>\n>(({ ...props }, ref) => {\n const { error, formItemId, formDescriptionId, formMessageId } =\n useFormField();\n\n return (\n <Slot\n data-slot=\"form-control\"\n ref={ref}\n id={formItemId}\n aria-describedby={\n !error\n ? `${formDescriptionId}`\n : `${formDescriptionId} ${formMessageId}`\n }\n aria-invalid={!!error}\n {...props}\n />\n );\n});\n\nFormControl.displayName = 'FormControl';\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 // set value of target to be _blank with rel, or keep as _self if already set\n if (node.tagName === 'A' && (!target || target !== '_self')) {\n node.setAttribute('target', '_blank');\n const rel = node.getAttribute('rel');\n node.setAttribute('rel', appendSecureRelValue(rel));\n }\n });\n}\n\nfunction FormDescription({\n className,\n children,\n ...props\n}: React.ComponentProps<'p'> & {\n children?: React.ReactNode | (() => React.ReactNode);\n}) {\n const { formDescriptionId } = useFormField();\n\n if (typeof children === 'string') {\n return (\n <p\n data-slot=\"form-description\"\n id={formDescriptionId}\n className={cn('text-base-color text-xs', className)}\n dangerouslySetInnerHTML={{\n __html: DOMPurify.sanitize(children, { ADD_ATTR: ['target'] }),\n }}\n {...props}\n />\n );\n }\n\n return (\n <p\n data-slot=\"form-description\"\n id={formDescriptionId}\n className={cn('text-base-color text-xs', className)}\n {...props}\n >\n {typeof children === 'function' ? children() : children}\n </p>\n );\n}\n\nfunction FormMessage({ className, ...props }: React.ComponentProps<'p'>) {\n const { error, formMessageId } = useFormField();\n const body = error ? String(error?.message ?? '') : props.children;\n\n if (!body) {\n return null;\n }\n\n return (\n <p\n data-slot=\"form-message\"\n id={formMessageId}\n className={cn('text-destructive text-sm', className)}\n {...props}\n >\n {body}\n </p>\n );\n}\n\nexport {\n Form,\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n useFormField,\n};\n","'use client';\n\nimport * as React from 'react';\nimport * as LabelPrimitive from '@radix-ui/react-label';\n\nimport { cn } from '@/src/lib/utils';\n\nfunction Label({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n 'flex items-center gap-2 text-sm leading-none select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Label };\n"],"mappings":"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","names":["Slot","React","DOMPurify","Controller","FormProvider","useFormContext","useFormState","LabelPrimitive","jsx","Label","className","props","cn","__name","jsx","Form","FormProvider","FormFieldContext","FormField","__name","props","Controller","useFormField","fieldContext","itemContext","FormItemContext","getFieldState","useFormContext","formState","useFormState","fieldState","id","FormItem","className","cn","FormLabel","error","formItemId","Label","FormControl","ref","formDescriptionId","formMessageId","Slot","appendSecureRelValue","rel","attributes","DOMPurify","node","target","FormDescription","children","FormMessage","body"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as m,b as l,c as p,d}from"./chunk-YO4OQIFP.js";import{a as r}from"./chunk-PJCUSCO4.js";import{b as n}from"./chunk-GEYFQVQI.js";import{b as s}from"./chunk-KPHSEIR3.js";import{a as i}from"./chunk-P37U34EQ.js";import{Info as v}from"lucide-react";import{jsx as t,jsxs as o}from"react/jsx-runtime";function w({benefitsTotal:f,benefitsBreakdown:c,currency:a}){return o("div",{children:[o("div",{className:"flex justify-between items-center mb-2",children:[t("h3",{className:"font-medium text-primary-foreground-800",children:"Benefits"}),t("span",{className:"font-semibold text-lg",children:s(f,a)})]}),t(r,{className:"mb-3"}),t("div",{className:"space-y-3 pl-2",children:c.map((e,u)=>o("div",{className:"flex justify-between items-start text-sm",children:[o("div",{className:"flex items-start gap-2",children:[t("span",{children:e.name}),t(m,{children:o(l,{children:[t(p,{asChild:!0,children:o(n,{variant:"ghost",size:"icon",className:"h-4 w-4 p-0",children:[t(v,{className:"h-3 w-3 text-gray-400"}),t("span",{className:"sr-only",children:"Info"})]})}),t(d,{children:t("p",{className:"max-w-xs",children:e.description})})]})})]}),t("span",{children:s(e.amount,a)})]},u))})]})}i(w,"CostCalculatorBenefitsBreakdown");export{w as a};
|
|
2
|
+
//# sourceMappingURL=chunk-WIRFNWEU.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/CostCalculator/Results/CostCalculatorBenefitsBreakdown.tsx"],"sourcesContent":["import { Info } from 'lucide-react';\n\nimport { Button } from '@/src/components/ui/button';\nimport { Separator } from '@/src/components/ui/separator';\nimport {\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n Tooltip as UITooltip,\n} from '@/src/components/ui/tooltip';\nimport { formatCurrency } from '@/src/lib/utils';\n\ntype CostCalculatorBenefitsBreakdownProps = {\n benefitsTotal: number | undefined;\n benefitsBreakdown: {\n name: string;\n description: string | null;\n amount: number;\n }[];\n currency: string;\n};\n\nexport function CostCalculatorBenefitsBreakdown({\n benefitsTotal,\n benefitsBreakdown,\n currency,\n}: CostCalculatorBenefitsBreakdownProps) {\n return (\n <div>\n <div className=\"flex justify-between items-center mb-2\">\n <h3 className=\"font-medium text-primary-foreground-800\">Benefits</h3>\n <span className=\"font-semibold text-lg\">\n {formatCurrency(benefitsTotal, currency)}\n </span>\n </div>\n <Separator className=\"mb-3\" />\n\n <div className=\"space-y-3 pl-2\">\n {benefitsBreakdown.map((benefit, index) => (\n <div key={index} className=\"flex justify-between items-start text-sm\">\n <div className=\"flex items-start gap-2\">\n <span>{benefit.name}</span>\n <TooltipProvider>\n <UITooltip>\n <TooltipTrigger asChild>\n <Button variant=\"ghost\" size=\"icon\" className=\"h-4 w-4 p-0\">\n <Info className=\"h-3 w-3 text-gray-400\" />\n <span className=\"sr-only\">Info</span>\n </Button>\n </TooltipTrigger>\n <TooltipContent>\n <p className=\"max-w-xs\">{benefit.description}</p>\n </TooltipContent>\n </UITooltip>\n </TooltipProvider>\n </div>\n <span>{formatCurrency(benefit.amount, currency)}</span>\n </div>\n ))}\n </div>\n </div>\n );\n}\n"],"mappings":"wNAAA,OAAS,QAAAA,MAAY,eA6Bf,OACE,OAAAC,EADF,QAAAC,MAAA,oBAPC,SAASC,EAAgC,CAC9C,cAAAC,EACA,kBAAAC,EACA,SAAAC,CACF,EAAyC,CACvC,OACEJ,EAAC,OACC,UAAAA,EAAC,OAAI,UAAU,yCACb,UAAAD,EAAC,MAAG,UAAU,0CAA0C,oBAAQ,EAChEA,EAAC,QAAK,UAAU,wBACb,SAAAM,EAAeH,EAAeE,CAAQ,EACzC,GACF,EACAL,EAACO,EAAA,CAAU,UAAU,OAAO,EAE5BP,EAAC,OAAI,UAAU,iBACZ,SAAAI,EAAkB,IAAI,CAACI,EAASC,IAC/BR,EAAC,OAAgB,UAAU,2CACzB,UAAAA,EAAC,OAAI,UAAU,yBACb,UAAAD,EAAC,QAAM,SAAAQ,EAAQ,KAAK,EACpBR,EAACU,EAAA,CACC,SAAAT,EAACU,EAAA,CACC,UAAAX,EAACY,EAAA,CAAe,QAAO,GACrB,SAAAX,EAACY,EAAA,CAAO,QAAQ,QAAQ,KAAK,OAAO,UAAU,cAC5C,UAAAb,EAACc,EAAA,CAAK,UAAU,wBAAwB,EACxCd,EAAC,QAAK,UAAU,UAAU,gBAAI,GAChC,EACF,EACAA,EAACe,EAAA,CACC,SAAAf,EAAC,KAAE,UAAU,WAAY,SAAAQ,EAAQ,YAAY,EAC/C,GACF,EACF,GACF,EACAR,EAAC,QAAM,SAAAM,EAAeE,EAAQ,OAAQH,CAAQ,EAAE,IAjBxCI,CAkBV,CACD,EACH,GACF,CAEJ,CAxCgBO,EAAAd,EAAA","names":["Info","jsx","jsxs","CostCalculatorBenefitsBreakdown","benefitsTotal","benefitsBreakdown","currency","formatCurrency","Separator","benefit","index","TooltipProvider","Tooltip","TooltipTrigger","Button","Info","TooltipContent","__name"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as t}from"./chunk-P37U34EQ.js";import{formDataBodySerializer as i}from"@hey-api/client-fetch";import{createClient as o,createConfig as n}from"@hey-api/client-fetch";var r=o(n({baseUrl:"https://gateway.remote.com/"}));var c=t(e=>(e?.client??r).post({security:[{scheme:"bearer",type:"http"}],url:"/v1/offboardings",...e,headers:{"Content-Type":"application/json",...e?.headers}}),"postCreateOffboarding");var h=t(e=>(e.client??r).get({security:[{scheme:"bearer",type:"http"}],url:"/v1/contract-amendments/schema",...e}),"getShowContractAmendmentSchema");var d=t(e=>(e.client??r).post({security:[{scheme:"bearer",type:"http"}],url:"/v1/employments",...e,headers:{"Content-Type":"application/json",...e?.headers}}),"postCreateEmployment2");var m=t(e=>(e.client??r).post({security:[{scheme:"bearer",type:"http"},{scheme:"bearer",type:"http"},{scheme:"bearer",type:"http"},{scheme:"bearer",type:"http"}],url:"/v1/cost-calculator/estimation",...e,headers:{"Content-Type":"application/json",...e?.headers}}),"postCreateEstimation");var E=t(e=>(e.client??r).get({security:[{scheme:"bearer",type:"http"}],url:"/v1/employments/{employment_id}/benefit-offers",...e}),"getIndexBenefitOffer"),u=t(e=>(e.client??r).put({security:[{scheme:"bearer",type:"http"}],url:"/v1/employments/{employment_id}/benefit-offers",...e,headers:{"Content-Type":"application/json",...e?.headers}}),"putUpdateBenefitOffer");var y=t(e=>(e.client??r).post({security:[{scheme:"bearer",type:"http"}],url:"/v1/magic-link",...e,headers:{"Content-Type":"application/json",...e?.headers}}),"postGenerateMagicLink");var w=t(e=>(e?.client??r).post({security:[{scheme:"bearer",type:"http"},{scheme:"bearer",type:"http"},{scheme:"bearer",type:"http"},{scheme:"bearer",type:"http"}],url:"/v1/cost-calculator/estimation-pdf",...e,headers:{"Content-Type":"application/json",...e?.headers}}),"postCreateEstimationPdf");var C=t(e=>(e.client??r).post({security:[{scheme:"bearer",type:"http"}],url:"/v1/risk-reserve",...e,headers:{"Content-Type":"application/json",...e?.headers}}),"postCreateRiskReserve"),T=t(e=>(e.client??r).get({security:[{scheme:"bearer",type:"http"}],url:"/v1/companies/{company_id}",...e}),"getShowCompany");var O=t(e=>(e.client??r).post({security:[{scheme:"bearer",type:"http"}],url:"/v1/contract-amendments",...e,headers:{"Content-Type":"application/json",...e?.headers}}),"postCreateContractAmendment");var f=t(e=>(e.client??r).get({security:[{scheme:"bearer",type:"http"}],url:"/v1/countries/{country_code}/{form}",...e}),"getShowFormCountry");var x=t(e=>(e?.client??r).get({security:[{scheme:"bearer",type:"http"},{scheme:"bearer",type:"http"},{scheme:"bearer",type:"http"},{scheme:"bearer",type:"http"}],url:"/v1/cost-calculator/countries",...e}),"getIndexCountry");var P=t(e=>(e.client??r).get({security:[{scheme:"bearer",type:"http"}],url:"/v1/employments/{employment_id}/benefit-offers/schema",...e}),"getShowSchema");var R=t(e=>(e.client??r).get({security:[{scheme:"bearer",type:"http"}],url:"/v1/employments/{employment_id}",...e}),"getShowEmployment"),b=t(e=>(e.client??r).patch({security:[{scheme:"bearer",type:"http"}],url:"/v1/employments/{employment_id}",...e,headers:{"Content-Type":"application/json",...e?.headers}}),"patchUpdateEmployment2");var D=t(e=>(e.client??r).get({security:[{scheme:"bearer",type:"http"}],url:"/v1/cost-calculator/regions/{slug}/fields",...e}),"getShowRegionField");var G=t(e=>(e.client??r).get({security:[{scheme:"bearer",type:"http"}],url:"/v1/countries",...e}),"getSupportedCountry");var g=t(e=>(e.client??r).post({security:[{scheme:"bearer",type:"http"}],url:"/v1/contract-amendments/automatable",...e,headers:{"Content-Type":"application/json",...e?.headers}}),"postAutomatableContractAmendment");var I=t(e=>(e?.client??r).get({security:[{scheme:"bearer",type:"http"}],url:"/v1/company-currencies",...e}),"getIndexCompanyCurrency");var v=t(e=>(e.client??r).post({security:[{scheme:"bearer",type:"http"}],url:"/v1/employments/{employment_id}/invite",...e}),"postInviteEmploymentInvitation");var S=t(e=>(e.client??r).get({security:[{scheme:"bearer",type:"http"}],url:"/v1/timeoff",...e}),"getIndexTimeoff");var U=t(e=>(e.client??r).post({security:[{scheme:"bearer",type:"http"}],url:"/v1/currency-converter",...e,headers:{"Content-Type":"application/json",...e?.headers}}),"postConvertCurrencyConverter");export{r as a,c as b,h as c,d,m as e,E as f,u as g,y as h,w as i,C as j,T as k,O as l,f as m,x as n,P as o,R as p,b as q,D as r,G as s,g as t,I as u,v,S as w,U as x};
|
|
2
|
+
//# sourceMappingURL=chunk-WKK63LAY.js.map
|