@remoteoss/remote-flows 0.10.0 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-5TNWGN5T.js → chunk-2AUKMWRF.js} +2 -2
- package/dist/{chunk-QNSEFFNN.js → chunk-2JWANM25.js} +2 -2
- package/dist/{chunk-Y4R7VMZM.js → chunk-3F7QLHMP.js} +2 -2
- package/dist/chunk-3LOVCTCN.js +2 -0
- package/dist/chunk-3LOVCTCN.js.map +1 -0
- package/dist/chunk-47VYBPE2.js +2 -0
- package/dist/chunk-47VYBPE2.js.map +1 -0
- package/dist/{chunk-E366OTIT.js → chunk-4OEBYZLZ.js} +2 -2
- package/dist/chunk-52NPLMW3.js +2 -0
- package/dist/chunk-52NPLMW3.js.map +1 -0
- package/dist/chunk-5CUF63YR.js +2 -0
- package/dist/chunk-5CUF63YR.js.map +1 -0
- package/dist/chunk-5E44DBDD.js +2 -0
- package/dist/chunk-5E44DBDD.js.map +1 -0
- package/dist/chunk-5I6VWJSC.js +2 -0
- package/dist/chunk-5I6VWJSC.js.map +1 -0
- package/dist/{chunk-FMWLGLES.js → chunk-77AF2QOD.js} +2 -2
- package/dist/chunk-7TIIT23F.js +2 -0
- package/dist/chunk-7TIIT23F.js.map +1 -0
- package/dist/{chunk-WWMMQZA3.js → chunk-AXU5ZCUE.js} +2 -2
- package/dist/{chunk-WFET4MKU.js → chunk-BDZEPXIS.js} +2 -2
- package/dist/{chunk-DS2TO37X.js → chunk-BY5S6EQJ.js} +2 -2
- package/dist/{chunk-XCFIBTQN.js → chunk-CHSULXMN.js} +2 -2
- package/dist/{chunk-4HHGKSGL.js → chunk-CS3U6LJU.js} +2 -2
- package/dist/{chunk-SHFIZENN.js → chunk-CSK44J23.js} +2 -2
- package/dist/{chunk-XLBQWKQ2.js → chunk-CSLZUVU4.js} +2 -2
- package/dist/{chunk-XSRHFJ3Z.js → chunk-DHT7HDHC.js} +2 -2
- package/dist/{chunk-KMC45C2J.js → chunk-DOILOCWU.js} +2 -2
- package/dist/chunk-DR7VGNO2.js +2 -0
- package/dist/{chunk-FC7NRKYF.js → chunk-DVQO5MHI.js} +2 -2
- package/dist/{chunk-MWLD2A2O.js → chunk-EE54SK65.js} +2 -2
- package/dist/chunk-EGQJ7UBR.js +2 -0
- package/dist/chunk-EGQJ7UBR.js.map +1 -0
- package/dist/{chunk-3QXOTVAD.js → chunk-EOJJ4IWJ.js} +2 -2
- package/dist/{chunk-PRK34ZQH.js → chunk-EW24LQRE.js} +2 -2
- package/dist/{chunk-YS7XEJJP.js → chunk-G7WJUXZU.js} +2 -2
- package/dist/{chunk-33W6YDCH.js → chunk-GAOBYAJE.js} +2 -2
- package/dist/{chunk-MHEIW3JW.js → chunk-GBD3OCAW.js} +2 -2
- package/dist/{chunk-7R6GAOQG.js → chunk-GCVZ4AY2.js} +2 -2
- package/dist/{chunk-UNTCBVHB.js → chunk-GGBEM452.js} +2 -2
- package/dist/{chunk-N6CK5HE6.js → chunk-GJQ33XQ4.js} +2 -2
- package/dist/{chunk-UWKND5NL.js → chunk-GK3OO5SX.js} +2 -2
- package/dist/chunk-ILMVHOL2.js +2 -0
- package/dist/chunk-ILMVHOL2.js.map +1 -0
- package/dist/{chunk-NHAVKODB.js → chunk-J2SFMADD.js} +2 -2
- package/dist/chunk-JKYTL5QY.js +2 -0
- package/dist/chunk-JKYTL5QY.js.map +1 -0
- package/dist/{chunk-FW6EQA43.js → chunk-JUM2HAIK.js} +2 -2
- package/dist/{chunk-S3C5DJXJ.js → chunk-LIGRV2J5.js} +2 -2
- package/dist/{chunk-ZCIUF3NB.js → chunk-LLY7VPXS.js} +2 -2
- package/dist/chunk-LT4ALDRM.js +2 -0
- package/dist/chunk-LT4ALDRM.js.map +1 -0
- package/dist/chunk-MCPVKP6Q.js +2 -0
- package/dist/chunk-MCPVKP6Q.js.map +1 -0
- package/dist/{chunk-G4NBJTHB.js → chunk-MDSGLUUB.js} +2 -2
- package/dist/{chunk-KCXP2NOU.js → chunk-N7PSO5ZD.js} +2 -2
- package/dist/chunk-NBCZF2FO.js +2 -0
- package/dist/chunk-NBCZF2FO.js.map +1 -0
- package/dist/chunk-NPZ5QJSG.js +2 -0
- package/dist/chunk-NPZ5QJSG.js.map +1 -0
- package/dist/{chunk-WHW3ZCTH.js → chunk-NVJYAX22.js} +2 -2
- package/dist/chunk-P4C2MI7X.js +2 -0
- package/dist/chunk-P4C2MI7X.js.map +1 -0
- package/dist/chunk-QI6LLU2N.js +2 -0
- package/dist/chunk-QI6LLU2N.js.map +1 -0
- package/dist/{chunk-OTTIURMN.js → chunk-QQ7KPOLK.js} +2 -2
- package/dist/chunk-R2SDR47E.js +2 -0
- package/dist/chunk-R2SDR47E.js.map +1 -0
- package/dist/{chunk-FCABBFQ5.js → chunk-R7L6CI5J.js} +2 -2
- package/dist/chunk-SEAC3H45.js +2 -0
- package/dist/{chunk-J3MB4Z6R.js.map → chunk-SEAC3H45.js.map} +1 -1
- package/dist/{chunk-ERMOQBXU.js → chunk-SFZSHBWM.js} +2 -2
- package/dist/{chunk-QP755MNN.js → chunk-SJHGFMVF.js} +2 -2
- package/dist/{chunk-3TQVP4BP.js → chunk-SQICIS7B.js} +2 -2
- package/dist/{chunk-3IXBMIHE.js → chunk-SUQURI2J.js} +2 -2
- package/dist/chunk-SUQURI2J.js.map +1 -0
- package/dist/chunk-T3L72MV6.js +2 -0
- package/dist/chunk-T3L72MV6.js.map +1 -0
- package/dist/{chunk-NAVGSG5R.js → chunk-VD65AUOI.js} +2 -2
- package/dist/{chunk-IQOX5IEE.js → chunk-VUQOVQ5L.js} +2 -2
- package/dist/{chunk-IQOX5IEE.js.map → chunk-VUQOVQ5L.js.map} +1 -1
- package/dist/{chunk-WJA7PQ2J.js → chunk-WYXN7WW6.js} +2 -2
- package/dist/{chunk-HHE7W23D.js → chunk-XI3AQ3RM.js} +2 -2
- package/dist/{chunk-7ULN2UW6.js → chunk-Y22Q3UYU.js} +2 -2
- package/dist/chunk-Y4VNFI7K.js +2 -0
- package/dist/chunk-Y4VNFI7K.js.map +1 -0
- package/dist/chunk-Z3BMF4BO.js +1 -0
- package/dist/chunk-ZHL2SULA.js +2 -0
- package/dist/chunk-ZHL2SULA.js.map +1 -0
- package/dist/{chunk-CLY6BS36.js → chunk-ZMENI53L.js} +2 -2
- package/dist/{chunk-CLY6BS36.js.map → chunk-ZMENI53L.js.map} +1 -1
- package/dist/{chunk-ZKNJTAP7.js → chunk-ZSBWDLBS.js} +2 -2
- package/dist/flows/ContractAmendment/ContractAmendmentBack.js +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.d.ts +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.js +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentFlow.d.ts +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentFlow.js +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentForm.d.ts +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentForm.js +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentSubmit.js +1 -1
- package/dist/flows/ContractAmendment/context.d.ts +1 -1
- package/dist/flows/ContractAmendment/hooks.d.ts +1 -1
- package/dist/flows/ContractAmendment/hooks.js +1 -1
- package/dist/flows/ContractAmendment/index.d.ts +1 -1
- package/dist/flows/ContractAmendment/index.js +1 -1
- package/dist/flows/ContractAmendment/utils.d.ts +1 -1
- package/dist/flows/CostCalculator/CostCalculatorDisclaimer.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorFlow.d.ts +4 -6
- package/dist/flows/CostCalculator/CostCalculatorFlow.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorForm.d.ts +3 -1
- package/dist/flows/CostCalculator/CostCalculatorForm.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorResetButton.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorSubmitButton.js +1 -1
- package/dist/flows/CostCalculator/EstimationResults/EstimationResults.d.ts +42 -0
- package/dist/flows/CostCalculator/EstimationResults/EstimationResults.js +2 -0
- package/dist/flows/CostCalculator/EstimationResults/EstimationResults.js.map +1 -0
- package/dist/flows/CostCalculator/Results/CostCalculatorBenefitsBreakdown.js +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorContributionsBreakdown.js +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorExtraStatutoryPaymentsBreakdown.js +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorGrossSalary.js +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorIndirectTax.js +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorResults.d.ts +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorResults.js +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorResultsChart.js +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorTotalCost.js +1 -1
- package/dist/flows/CostCalculator/SummaryResults/SummaryResults.d.ts +17 -0
- package/dist/flows/CostCalculator/SummaryResults/SummaryResults.js +2 -0
- package/dist/flows/CostCalculator/SummaryResults/SummaryResults.js.map +1 -0
- package/dist/flows/CostCalculator/api.d.ts +1 -1
- package/dist/flows/CostCalculator/api.js +1 -1
- package/dist/flows/CostCalculator/components/SalaryField.d.ts +4 -1
- package/dist/flows/CostCalculator/components/SalaryField.js +1 -1
- package/dist/flows/CostCalculator/context.d.ts +1 -1
- package/dist/flows/CostCalculator/hooks.d.ts +13 -7
- package/dist/flows/CostCalculator/hooks.js +1 -1
- package/dist/flows/CostCalculator/index.d.ts +5 -3
- package/dist/flows/CostCalculator/index.js +1 -1
- package/dist/flows/CostCalculator/jsonSchema.d.ts +17 -2
- package/dist/flows/CostCalculator/jsonSchema.js +1 -1
- package/dist/flows/CostCalculator/types.d.ts +14 -2
- package/dist/flows/CostCalculator/utils.d.ts +1 -1
- package/dist/flows/CostCalculator/utils.js +1 -1
- package/dist/flows/Onboarding/OnboardingFlow.d.ts +1 -1
- package/dist/flows/Onboarding/OnboardingFlow.js +1 -1
- package/dist/flows/Onboarding/api.d.ts +5 -3
- package/dist/flows/Onboarding/api.js +1 -1
- package/dist/flows/Onboarding/components/AnnualGrossSalary.js +1 -1
- package/dist/flows/Onboarding/components/BasicInformationStep.d.ts +1 -1
- package/dist/flows/Onboarding/components/BasicInformationStep.js +1 -1
- package/dist/flows/Onboarding/components/BenefitsStep.d.ts +1 -1
- package/dist/flows/Onboarding/components/BenefitsStep.js +1 -1
- package/dist/flows/Onboarding/components/ContractDetailsStep.d.ts +1 -1
- package/dist/flows/Onboarding/components/ContractDetailsStep.js +1 -1
- package/dist/flows/Onboarding/components/OnboardingBack.js +1 -1
- package/dist/flows/Onboarding/components/OnboardingForm.d.ts +1 -1
- package/dist/flows/Onboarding/components/OnboardingForm.js +1 -1
- package/dist/flows/Onboarding/components/OnboardingInvite.d.ts +1 -1
- package/dist/flows/Onboarding/components/OnboardingInvite.js +1 -1
- package/dist/flows/Onboarding/components/OnboardingSubmit.js +1 -1
- package/dist/flows/Onboarding/components/ReviewStep.d.ts +1 -1
- package/dist/flows/Onboarding/components/SelectCountryStep.d.ts +1 -1
- package/dist/flows/Onboarding/components/SelectCountryStep.js +1 -1
- package/dist/flows/Onboarding/context.d.ts +1 -1
- package/dist/flows/Onboarding/hooks.d.ts +1 -1
- package/dist/flows/Onboarding/hooks.js +1 -1
- package/dist/flows/Onboarding/index.d.ts +1 -1
- package/dist/flows/Onboarding/index.js +1 -1
- package/dist/flows/Onboarding/types.d.ts +1 -1
- package/dist/flows/Onboarding/utils.d.ts +1 -1
- package/dist/flows/Termination/AdditionalDetailsForm.d.ts +1 -1
- package/dist/flows/Termination/AdditionalDetailsForm.js +1 -1
- package/dist/flows/Termination/EmployeeComunicationForm.d.ts +1 -1
- package/dist/flows/Termination/EmployeeComunicationForm.js +1 -1
- package/dist/flows/Termination/PaidTimeOffForm.d.ts +1 -1
- package/dist/flows/Termination/PaidTimeOffForm.js +1 -1
- package/dist/flows/Termination/TerminationBack.js +1 -1
- package/dist/flows/Termination/TerminationDetailsForm.d.ts +1 -1
- package/dist/flows/Termination/TerminationDetailsForm.js +1 -1
- package/dist/flows/Termination/TerminationFlow.d.ts +1 -1
- package/dist/flows/Termination/TerminationFlow.js +1 -1
- package/dist/flows/Termination/TerminationForm.d.ts +1 -1
- package/dist/flows/Termination/TerminationForm.js +1 -1
- package/dist/flows/Termination/TerminationSubmit.js +1 -1
- package/dist/flows/Termination/TimeOff.d.ts +1 -1
- package/dist/flows/Termination/TimeOff.js +1 -1
- package/dist/flows/Termination/context.d.ts +1 -1
- package/dist/flows/Termination/hooks.d.ts +1 -1
- package/dist/flows/Termination/hooks.js +1 -1
- package/dist/flows/Termination/index.d.ts +1 -1
- package/dist/flows/Termination/index.js +1 -1
- package/dist/flows/Termination/json-schemas/schema.js +1 -1
- package/dist/flows/Termination/types.d.ts +1 -1
- package/dist/flows/types.d.ts +1 -1
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +15 -5
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internals.d.ts +54 -58
- package/dist/internals.js +1 -1
- package/dist/internals.js.map +1 -1
- package/dist/{types.gen-D9fBRSTj.d.ts → types.gen-_c0f1E7h.d.ts} +37 -17
- package/package.json +5 -2
- package/dist/chunk-2NDBK2EZ.js +0 -2
- package/dist/chunk-2NDBK2EZ.js.map +0 -1
- package/dist/chunk-2Y22JKVE.js +0 -2
- package/dist/chunk-3IXBMIHE.js.map +0 -1
- package/dist/chunk-45N2S6JG.js +0 -2
- package/dist/chunk-45N2S6JG.js.map +0 -1
- package/dist/chunk-C3KZEPUZ.js +0 -2
- package/dist/chunk-C3KZEPUZ.js.map +0 -1
- package/dist/chunk-D24ATLAM.js +0 -2
- package/dist/chunk-D24ATLAM.js.map +0 -1
- package/dist/chunk-E6DC4DXP.js +0 -2
- package/dist/chunk-E6DC4DXP.js.map +0 -1
- package/dist/chunk-ERUG7FR3.js +0 -2
- package/dist/chunk-ERUG7FR3.js.map +0 -1
- package/dist/chunk-FQNVKX3N.js +0 -2
- package/dist/chunk-FQNVKX3N.js.map +0 -1
- package/dist/chunk-HGLI6PUM.js +0 -2
- package/dist/chunk-HGLI6PUM.js.map +0 -1
- package/dist/chunk-IS7BYXY6.js +0 -2
- package/dist/chunk-IS7BYXY6.js.map +0 -1
- package/dist/chunk-IV5GLWFN.js +0 -2
- package/dist/chunk-IV5GLWFN.js.map +0 -1
- package/dist/chunk-J3MB4Z6R.js +0 -2
- package/dist/chunk-JNAFD452.js +0 -2
- package/dist/chunk-JNAFD452.js.map +0 -1
- package/dist/chunk-UBAEG2IO.js +0 -2
- package/dist/chunk-UBAEG2IO.js.map +0 -1
- package/dist/chunk-UPRUP24B.js +0 -2
- package/dist/chunk-UPRUP24B.js.map +0 -1
- package/dist/chunk-XHBYAMFV.js +0 -2
- package/dist/chunk-XHBYAMFV.js.map +0 -1
- package/dist/chunk-XJ7PCWMR.js +0 -2
- package/dist/chunk-XJ7PCWMR.js.map +0 -1
- package/dist/chunk-YJXRJTOH.js +0 -1
- package/dist/chunk-ZRXXVXV4.js +0 -2
- package/dist/chunk-ZRXXVXV4.js.map +0 -1
- /package/dist/{chunk-5TNWGN5T.js.map → chunk-2AUKMWRF.js.map} +0 -0
- /package/dist/{chunk-QNSEFFNN.js.map → chunk-2JWANM25.js.map} +0 -0
- /package/dist/{chunk-Y4R7VMZM.js.map → chunk-3F7QLHMP.js.map} +0 -0
- /package/dist/{chunk-E366OTIT.js.map → chunk-4OEBYZLZ.js.map} +0 -0
- /package/dist/{chunk-FMWLGLES.js.map → chunk-77AF2QOD.js.map} +0 -0
- /package/dist/{chunk-WWMMQZA3.js.map → chunk-AXU5ZCUE.js.map} +0 -0
- /package/dist/{chunk-WFET4MKU.js.map → chunk-BDZEPXIS.js.map} +0 -0
- /package/dist/{chunk-DS2TO37X.js.map → chunk-BY5S6EQJ.js.map} +0 -0
- /package/dist/{chunk-XCFIBTQN.js.map → chunk-CHSULXMN.js.map} +0 -0
- /package/dist/{chunk-4HHGKSGL.js.map → chunk-CS3U6LJU.js.map} +0 -0
- /package/dist/{chunk-SHFIZENN.js.map → chunk-CSK44J23.js.map} +0 -0
- /package/dist/{chunk-XLBQWKQ2.js.map → chunk-CSLZUVU4.js.map} +0 -0
- /package/dist/{chunk-XSRHFJ3Z.js.map → chunk-DHT7HDHC.js.map} +0 -0
- /package/dist/{chunk-KMC45C2J.js.map → chunk-DOILOCWU.js.map} +0 -0
- /package/dist/{chunk-2Y22JKVE.js.map → chunk-DR7VGNO2.js.map} +0 -0
- /package/dist/{chunk-FC7NRKYF.js.map → chunk-DVQO5MHI.js.map} +0 -0
- /package/dist/{chunk-MWLD2A2O.js.map → chunk-EE54SK65.js.map} +0 -0
- /package/dist/{chunk-3QXOTVAD.js.map → chunk-EOJJ4IWJ.js.map} +0 -0
- /package/dist/{chunk-PRK34ZQH.js.map → chunk-EW24LQRE.js.map} +0 -0
- /package/dist/{chunk-YS7XEJJP.js.map → chunk-G7WJUXZU.js.map} +0 -0
- /package/dist/{chunk-33W6YDCH.js.map → chunk-GAOBYAJE.js.map} +0 -0
- /package/dist/{chunk-MHEIW3JW.js.map → chunk-GBD3OCAW.js.map} +0 -0
- /package/dist/{chunk-7R6GAOQG.js.map → chunk-GCVZ4AY2.js.map} +0 -0
- /package/dist/{chunk-UNTCBVHB.js.map → chunk-GGBEM452.js.map} +0 -0
- /package/dist/{chunk-N6CK5HE6.js.map → chunk-GJQ33XQ4.js.map} +0 -0
- /package/dist/{chunk-UWKND5NL.js.map → chunk-GK3OO5SX.js.map} +0 -0
- /package/dist/{chunk-NHAVKODB.js.map → chunk-J2SFMADD.js.map} +0 -0
- /package/dist/{chunk-FW6EQA43.js.map → chunk-JUM2HAIK.js.map} +0 -0
- /package/dist/{chunk-S3C5DJXJ.js.map → chunk-LIGRV2J5.js.map} +0 -0
- /package/dist/{chunk-ZCIUF3NB.js.map → chunk-LLY7VPXS.js.map} +0 -0
- /package/dist/{chunk-G4NBJTHB.js.map → chunk-MDSGLUUB.js.map} +0 -0
- /package/dist/{chunk-KCXP2NOU.js.map → chunk-N7PSO5ZD.js.map} +0 -0
- /package/dist/{chunk-WHW3ZCTH.js.map → chunk-NVJYAX22.js.map} +0 -0
- /package/dist/{chunk-OTTIURMN.js.map → chunk-QQ7KPOLK.js.map} +0 -0
- /package/dist/{chunk-FCABBFQ5.js.map → chunk-R7L6CI5J.js.map} +0 -0
- /package/dist/{chunk-ERMOQBXU.js.map → chunk-SFZSHBWM.js.map} +0 -0
- /package/dist/{chunk-QP755MNN.js.map → chunk-SJHGFMVF.js.map} +0 -0
- /package/dist/{chunk-3TQVP4BP.js.map → chunk-SQICIS7B.js.map} +0 -0
- /package/dist/{chunk-NAVGSG5R.js.map → chunk-VD65AUOI.js.map} +0 -0
- /package/dist/{chunk-WJA7PQ2J.js.map → chunk-WYXN7WW6.js.map} +0 -0
- /package/dist/{chunk-HHE7W23D.js.map → chunk-XI3AQ3RM.js.map} +0 -0
- /package/dist/{chunk-7ULN2UW6.js.map → chunk-Y22Q3UYU.js.map} +0 -0
- /package/dist/{chunk-YJXRJTOH.js.map → chunk-Z3BMF4BO.js.map} +0 -0
- /package/dist/{chunk-ZKNJTAP7.js.map → chunk-ZSBWDLBS.js.map} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as n}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as n}from"./chunk-DOILOCWU.js";import{b as m}from"./chunk-MRYRNB7Y.js";import{a as o}from"./chunk-P37U34EQ.js";import{jsx as r}from"react/jsx-runtime";function p({onSubmit:e}){let{terminationBag:i}=m();return r(n,{onSubmit:o(async t=>{await e?.(i?.parseFormValues(t)),i?.next()},"handleSubmit")})}o(p,"EmployeeCommunicationForm");export{p as a};
|
|
2
|
+
//# sourceMappingURL=chunk-2AUKMWRF.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as m}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as m}from"./chunk-ZSBWDLBS.js";import{a as n}from"./chunk-QQ7KPOLK.js";import{a as e}from"./chunk-R2SDR47E.js";import{a as T}from"./chunk-JUM2HAIK.js";import{a}from"./chunk-2AUKMWRF.js";import{a as f}from"./chunk-SFZSHBWM.js";import{a as r}from"./chunk-4OEBYZLZ.js";import{a as p}from"./chunk-LLY7VPXS.js";import{a as t}from"./chunk-MRYRNB7Y.js";import{a as i}from"./chunk-P37U34EQ.js";import{useId as c}from"react";import{jsx as u}from"react/jsx-runtime";var A=i(({employmentId:d,render:s,options:l})=>{let y=c(),o=e({employmentId:d,options:l});return u(t.Provider,{value:{formId:y,terminationBag:o},children:s({terminationBag:o,components:{SubmitButton:m,TimeOff:n,Back:r,EmployeeComunicationStep:a,TerminationDetailsStep:p,PaidTimeOffStep:f,AdditionalDetailsStep:T}})})},"TerminationFlow");export{A as a};
|
|
2
|
+
//# sourceMappingURL=chunk-2JWANM25.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a}from"./chunk-DVQO5MHI.js";import{b as i}from"./chunk-PGWKJ6FK.js";import{a as e}from"./chunk-P37U34EQ.js";import{jsx as d}from"react/jsx-runtime";function y({onSubmit:s,onSuccess:c,onError:t}){let{onboardingBag:o}=i(),u=e(async n=>{try{await s?.({countryCode:n.country});let r=await o.onSubmit(n);if(r?.data){await c?.(r?.data),o?.next();return}r?.error&&t?.({error:r.error,rawError:r.rawError,fieldErrors:[]})}catch(r){t?.({error:r,rawError:r,fieldErrors:[]})}},"handleSubmit"),l=o.stepState.values?.select_country||o.initialValues.select_country;return d(a,{defaultValues:l,onSubmit:u})}e(y,"SelectCountryStep");export{y as a};
|
|
2
|
+
//# sourceMappingURL=chunk-3F7QLHMP.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as n}from"./chunk-P37U34EQ.js";import{clsx as a}from"clsx";import{twMerge as s}from"tailwind-merge";import i from"dompurify";function m(...r){return s(a(r))}n(m,"cn");function g(r,t="\u20AC"){if(r==null)return"-";let e=r/100;return`${t}${e.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}`}n(g,"formatCurrency");var u=n(r=>{let t={};return r.inner.forEach(e=>{e.path!==void 0&&(t[e.path]={type:e.type,errors:e.errors,inner:e.inner.map(o=>u(o))})}),t},"transformYupErrorsIntoObject");function d(r){window.RemoteFlowsSDK={version:r}}n(d,"debug");var l=n(r=>{let t=new Set(r?r.toLowerCase().split(" "):[]);return t.add("noopener"),t.add("noreferrer"),Array.from(t).join(" ")},"appendSecureRelValue");i.isSupported&&i.addHook("afterSanitizeAttributes",r=>{let t=r.getAttribute("target");if(r.tagName==="A"&&(!t||t!=="_self")){r.setAttribute("target","_blank");let e=r.getAttribute("rel");r.setAttribute("rel",l(e))}});var b=n(r=>i.sanitize(r,{ADD_ATTR:["target"]}),"sanitizeHtml");export{m as a,g as b,u as c,d,b as e};
|
|
2
|
+
//# sourceMappingURL=chunk-3LOVCTCN.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/lib/utils.ts"],"sourcesContent":["import { clsx, type ClassValue } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\nimport { ValidationError } from 'yup';\nimport DOMPurify from 'dompurify';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\nexport function formatCurrency(\n amount: number | undefined | null,\n symbol = '€',\n): string {\n if (amount == null) {\n return '-';\n }\n\n const value = amount / 100;\n\n return `${symbol}${value.toLocaleString('en-US', {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n })}`;\n}\n\ntype YupError = Pick<ValidationError, 'type' | 'errors'> & {\n inner: Record<string, YupError>[];\n};\n\n/**\n * Transforms a Yup ValidationError object into a more readable object. The format is as follows:\n * {\n * [fieldName]: {\n * type: string,\n * errors: string[],\n * inner: YupError[],\n * },\n * }\n * @param errors\n * @returns\n */\nexport const transformYupErrorsIntoObject = (errors: ValidationError) => {\n const validationErrors: Record<string, YupError> = {};\n\n errors.inner.forEach((error: ValidationError) => {\n if (error.path !== undefined) {\n validationErrors[error.path] = {\n type: error.type,\n errors: error.errors,\n inner: error.inner.map((innerError) =>\n transformYupErrorsIntoObject(innerError),\n ),\n };\n }\n });\n\n return validationErrors;\n};\n\n/**\n * Debug utility to add version to window object\n * @param version - The version of the SDK\n */\nexport function debug(version: string) {\n window.RemoteFlowsSDK = {\n version,\n };\n}\n\n// Deduplicates rel values if necessary and appends noopener and noreferrer\nconst appendSecureRelValue = (rel: string | null) => {\n const attributes = new Set(rel ? rel.toLowerCase().split(' ') : []);\n\n attributes.add('noopener');\n attributes.add('noreferrer');\n\n return Array.from(attributes).join(' ');\n};\n\nif (DOMPurify.isSupported) {\n DOMPurify.addHook('afterSanitizeAttributes', (node) => {\n const target = node.getAttribute('target');\n\n // 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\nexport const sanitizeHtml = (html: string) => {\n return DOMPurify.sanitize(html, { ADD_ATTR: ['target'] });\n};\n"],"mappings":"wCAAA,OAAS,QAAAA,MAA6B,OACtC,OAAS,WAAAC,MAAe,iBAExB,OAAOC,MAAe,YAEf,SAASC,KAAMC,EAAsB,CAC1C,OAAOC,EAAQC,EAAKF,CAAM,CAAC,CAC7B,CAFgBG,EAAAJ,EAAA,MAIT,SAASK,EACdC,EACAC,EAAS,SACD,CACR,GAAID,GAAU,KACZ,MAAO,IAGT,IAAME,EAAQF,EAAS,IAEvB,MAAO,GAAGC,CAAM,GAAGC,EAAM,eAAe,QAAS,CAC/C,sBAAuB,EACvB,sBAAuB,CACzB,CAAC,CAAC,EACJ,CAdgBJ,EAAAC,EAAA,kBAgCT,IAAMI,EAA+BL,EAACM,GAA4B,CACvE,IAAMC,EAA6C,CAAC,EAEpD,OAAAD,EAAO,MAAM,QAASE,GAA2B,CAC3CA,EAAM,OAAS,SACjBD,EAAiBC,EAAM,IAAI,EAAI,CAC7B,KAAMA,EAAM,KACZ,OAAQA,EAAM,OACd,MAAOA,EAAM,MAAM,IAAKC,GACtBJ,EAA6BI,CAAU,CACzC,CACF,EAEJ,CAAC,EAEMF,CACT,EAhB4C,gCAsBrC,SAASG,EAAMC,EAAiB,CACrC,OAAO,eAAiB,CACtB,QAAAA,CACF,CACF,CAJgBX,EAAAU,EAAA,SAOhB,IAAME,EAAuBZ,EAACa,GAAuB,CACnD,IAAMC,EAAa,IAAI,IAAID,EAAMA,EAAI,YAAY,EAAE,MAAM,GAAG,EAAI,CAAC,CAAC,EAElE,OAAAC,EAAW,IAAI,UAAU,EACzBA,EAAW,IAAI,YAAY,EAEpB,MAAM,KAAKA,CAAU,EAAE,KAAK,GAAG,CACxC,EAP6B,wBASzBC,EAAU,aACZA,EAAU,QAAQ,0BAA4BC,GAAS,CACrD,IAAMC,EAASD,EAAK,aAAa,QAAQ,EAGzC,GAAIA,EAAK,UAAY,MAAQ,CAACC,GAAUA,IAAW,SAAU,CAC3DD,EAAK,aAAa,SAAU,QAAQ,EACpC,IAAMH,EAAMG,EAAK,aAAa,KAAK,EACnCA,EAAK,aAAa,MAAOJ,EAAqBC,CAAG,CAAC,CACpD,CACF,CAAC,EAGI,IAAMK,EAAelB,EAACmB,GACpBJ,EAAU,SAASI,EAAM,CAAE,SAAU,CAAC,QAAQ,CAAE,CAAC,EAD9B","names":["clsx","twMerge","DOMPurify","cn","inputs","twMerge","clsx","__name","formatCurrency","amount","symbol","value","transformYupErrorsIntoObject","errors","validationErrors","error","innerError","debug","version","appendSecureRelValue","rel","attributes","DOMPurify","node","target","sanitizeHtml","html"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as R}from"./chunk-WVJDCDGZ.js";import{b as U}from"./chunk-Z5WMKCRJ.js";import{d as F,e as C,h as g,i as S,j,l as w,m as v,o as E,q as O,r as q,s as P,u as x,v as V,w as M,z as k}from"./chunk-EGQJ7UBR.js";import{d as a}from"./chunk-3ZWDIEEM.js";import{a as b}from"./chunk-MXFDOIUA.js";import{a as n}from"./chunk-P37U34EQ.js";import{createHeadlessForm as p,modify as d}from"@remoteoss/json-schema-form";import{useMutation as m,useQuery as f}from"@tanstack/react-query";var $=n(t=>{let{client:r}=a();return f({queryKey:["employment",t],retry:!1,enabled:!!t,select:n(({data:e})=>e?.data.employment,"select"),queryFn:n(async()=>{let e=await q({client:r,headers:{Authorization:""},path:{employment_id:t}});if(e.error||!e.data)throw new Error("Failed to fetch employment data");return e},"queryFn")})},"useEmployment"),ee=n(t=>{let{client:r}=a();return f({queryKey:["company",t],retry:!1,enabled:!!t,queryFn:n(async()=>{let e=await v({client:r,headers:{Authorization:""},path:{company_id:t}});if(e.error||!e.data)throw new Error("Failed to fetch employment data");return e},"queryFn"),select:n(({data:e})=>e.data.company,"select")})},"useCompany"),te=n(t=>{let{client:r}=a();return f({queryKey:["benefit-offers",t],retry:!1,enabled:!!t,queryFn:n(async()=>g({client:r,path:{employment_id:t}}).then(e=>{if(e.error||!e.data)throw new Error("Failed to fetch benefit offers data");return e}),"queryFn"),select:n(({data:e})=>e?.data?.reduce((o,s)=>({...o,[s.benefit_group.slug]:{value:s.benefit_tier?.slug??"no",...s.benefit_group?.filter?.slug?{filter:s.benefit_group?.filter?.slug}:{}}}),{}),"select")})},"useBenefitOffers"),ne=n(()=>{let{client:t}=a();return m({mutationFn:n(r=>k({client:t,headers:{Authorization:""},path:r}),"mutationFn")})},"useEmploymentInvite"),re=n(()=>{let{client:t}=a();return m({mutationFn:n(r=>w({client:t,body:r}),"mutationFn")})},"useCreateReserveInvoice"),oe=n(({countryCode:t,form:r,fieldValues:e,options:o,query:s={}})=>{let{client:i}=a(),c=o?.jsonSchemaVersion?.form_schema?.[r]?{json_schema_version:o.jsonSchemaVersion.form_schema[r]}:{};return f({queryKey:["onboarding-json-schema-form",t,r],retry:!1,queryFn:n(async()=>{let l=await E({client:i,headers:{Authorization:""},path:{country_code:t,form:r},query:{skip_benefits:!0,...s,...c}});if(l.error||!l.data)throw new Error("Failed to fetch onboarding schema");return l},"queryFn"),enabled:o?.queryOptions?.enabled,select:n(({data:l})=>{let u=l?.data||{};if(o&&o.jsfModify){let{schema:y}=d(u,o.jsfModify);u=y}let z=U(u.properties||{},"money").reduce((y,_)=>(y[_]=b(e[_]),y),{}),A={...e,...z};return{meta:{"x-jsf-fieldsets":u["x-jsf-fieldsets"]},...p(u,{initialValues:A})}},"select")})},"useJSONSchemaForm"),se=n((t,r,e)=>{let o=e?.jsonSchemaVersion?.benefit_offers_form_schema?{json_schema_version:e.jsonSchemaVersion.benefit_offers_form_schema}:{},{client:s}=a();return f({queryKey:["benefit-offers-schema",t],retry:!1,enabled:!!t,queryFn:n(async()=>{let i=await O({client:s,path:{employment_id:t},query:o});if(i.error||!i.data)throw new Error("Failed to fetch benefit offers schema");return i},"queryFn"),select:n(({data:i})=>{let c=i?.data?.schema||{};if(e&&e.jsfModify?.benefits){let{schema:h}=d(c,e.jsfModify.benefits);c=h}let l=Object.keys(r).length>0;return p(c,{initialValues:l?{...r}:{}})},"select")})},"useBenefitOffersSchema"),ae=n(t=>{let{client:r}=a(),e=t?.jsonSchemaVersion?.form_schema?.employment_basic_information?{json_schema_version:t.jsonSchemaVersion.form_schema.employment_basic_information}:{};return m({mutationFn:n(o=>C({client:r,headers:{Authorization:""},body:o,query:{...e}}),"mutationFn")})},"useCreateEmployment"),ie=n(t=>{let{client:r}=a(),e={employment_basic_information_json_schema_version:t?.jsonSchemaVersion?.form_schema?.employment_basic_information,employment_contract_details_json_schema_version:t?.jsonSchemaVersion?.form_schema?.contract_details},o=Object.fromEntries(Object.entries(e).filter(([,s])=>s!==void 0));return m({mutationFn:n(({employmentId:s,...i})=>P({client:r,headers:{Authorization:""},body:i,path:{employment_id:s},query:{skip_benefits:!0,...o}}),"mutationFn")})},"useUpdateEmployment"),me=n(t=>{let{client:r}=a();return m({mutationFn:n(({employmentId:e,...o})=>{let s=t?.jsonSchemaVersion?.benefit_offers_form_schema?{json_schema_version:t.jsonSchemaVersion.benefit_offers_form_schema}:{};return S({client:r,body:o,path:{employment_id:e},query:{...s}})},"mutationFn")})},"useUpdateBenefitsOffers"),ce=n(()=>{let{client:t}=a();return m({mutationFn:n(r=>j({client:t,headers:{Authorization:""},body:r}),"mutationFn")})},"useMagicLink"),B=n(t=>{let{client:r}=a();return f({...t,queryKey:["countries"],retry:!1,queryFn:n(async()=>{let e=await V({client:r,headers:{Authorization:""}});if(e.error||!e.data)throw new Error("Failed to fetch supported countries");return e},"queryFn"),select:n(({data:e})=>e?.data?.map(o=>({label:o.name,value:o.code}))||[],"select")})},"useCountries"),le=n(t=>{let{data:r,isLoading:e}=B(t?.queryOptions),{schema:o}=d(R.data.schema,t?.jsfModify||{}),s=p(o);if(r){let i=s.fields.find(c=>c.name==="country");i&&(i.options=r)}return{isLoading:e,selectCountryForm:s}},"useCountriesSchemaField"),ue=n(({type:t="spread"})=>{let{client:r}=a();return m({mutationFn:n(e=>(t==="no_spread"?F:M)({client:r,body:e}),"mutationFn")})},"useConvertCurrency"),fe=n(()=>{let{client:t}=a();return m({mutationFn:n(({employmentId:r,...e})=>x({client:t,path:{employment_id:r},body:e}),"mutationFn")})},"useUpsertContractEligibility");export{$ as a,ee as b,te as c,ne as d,re as e,oe as f,se as g,ae as h,ie as i,me as j,ce as k,le as l,ue as m,fe as n};
|
|
2
|
+
//# sourceMappingURL=chunk-47VYBPE2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/Onboarding/api.ts"],"sourcesContent":["import {\n ConvertCurrencyParams,\n CreateContractEligibilityParams,\n EmploymentCreateParams,\n EmploymentFullParams,\n getIndexBenefitOffer,\n getShowCompany,\n getShowEmployment,\n getShowFormCountry,\n getShowSchema,\n getSupportedCountry,\n MagicLinkParams,\n patchUpdateEmployment2,\n postConvertRawCurrencyConverter,\n postConvertWithSpreadCurrencyConverter,\n postCreateContractEligibility,\n postCreateEmployment2,\n postCreateRiskReserve,\n postGenerateMagicLink,\n postInviteEmploymentInvitation,\n PostInviteEmploymentInvitationData,\n putUpdateBenefitOffer,\n UnifiedEmploymentUpsertBenefitOffersRequest,\n} from '@/src/client';\nimport { convertToCents } from '@/src/components/form/utils';\nimport { useClient } from '@/src/context';\nimport { selectCountryStepSchema } from '@/src/flows/Onboarding/json-schemas/selectCountryStep';\nimport { OnboardingFlowParams } from '@/src/flows/Onboarding/types';\nimport { FlowOptions, JSONSchemaFormType } from '@/src/flows/types';\nimport { findFieldsByType } from '@/src/flows/utils';\nimport { JSFFieldset } from '@/src/types/remoteFlows';\nimport { Client } from '@hey-api/client-fetch';\nimport { createHeadlessForm, modify } from '@remoteoss/json-schema-form';\nimport { useMutation, useQuery } from '@tanstack/react-query';\nimport { FieldValues } from 'react-hook-form';\n\nexport const useEmployment = (employmentId: string | undefined) => {\n const { client } = useClient();\n\n return useQuery({\n queryKey: ['employment', employmentId],\n retry: false,\n enabled: !!employmentId,\n select: ({ data }) => {\n return data?.data.employment;\n },\n queryFn: async () => {\n const response = await getShowEmployment({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n path: {\n employment_id: employmentId as string,\n },\n });\n\n // If response status is 404 or other error, throw an error to trigger isError\n if (response.error || !response.data) {\n throw new Error('Failed to fetch employment data');\n }\n\n return response;\n },\n });\n};\n\nexport const useCompany = (companyId: string) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['company', companyId],\n retry: false,\n enabled: !!companyId,\n queryFn: async () => {\n const response = await getShowCompany({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n path: {\n company_id: companyId,\n },\n });\n\n if (response.error || !response.data) {\n throw new Error('Failed to fetch employment data');\n }\n\n return response;\n },\n select: ({ data }) => {\n return data.data.company;\n },\n });\n};\n\nexport const useBenefitOffers = (employmentId: string | undefined) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['benefit-offers', employmentId],\n retry: false,\n enabled: !!employmentId,\n queryFn: async () => {\n return getIndexBenefitOffer({\n client: client as Client,\n path: {\n employment_id: employmentId as string,\n },\n }).then((response) => {\n // If response status is 404 or other error, throw an error to trigger isError\n if (response.error || !response.data) {\n throw new Error('Failed to fetch benefit offers data');\n }\n\n return response;\n });\n },\n select: ({ data }) =>\n data?.data?.reduce(\n (acc, item) => {\n return {\n ...acc,\n [item.benefit_group.slug]: {\n value: item.benefit_tier?.slug ?? 'no',\n ...(item.benefit_group?.filter?.slug\n ? { filter: item.benefit_group?.filter?.slug }\n : {}),\n },\n };\n },\n {} as Record<string, { value: string }>,\n ),\n });\n};\n/**\n * Use this hook to invite an employee to the onboarding flow\n * @returns\n */\nexport const useEmploymentInvite = () => {\n const { client } = useClient();\n\n return useMutation({\n mutationFn: (payload: PostInviteEmploymentInvitationData['path']) => {\n return postInviteEmploymentInvitation({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n path: payload,\n });\n },\n });\n};\n\nexport const useCreateReserveInvoice = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: (payload: { employment_slug: string }) => {\n return postCreateRiskReserve({\n client: client as Client,\n body: payload,\n });\n },\n });\n};\n\n/**\n * Use this hook to get the JSON schema form for the onboarding flow\n * @param param0\n * @returns\n */\nexport const useJSONSchemaForm = ({\n countryCode,\n form,\n fieldValues,\n options,\n query = {},\n}: {\n countryCode: string;\n form: JSONSchemaFormType;\n fieldValues: FieldValues;\n options?: FlowOptions & { queryOptions?: { enabled?: boolean } };\n query?: Record<string, unknown>;\n}) => {\n const { client } = useClient();\n const jsonSchemaQueryParam = options?.jsonSchemaVersion?.form_schema?.[form]\n ? {\n json_schema_version: options.jsonSchemaVersion.form_schema[form],\n }\n : {};\n return useQuery({\n queryKey: ['onboarding-json-schema-form', countryCode, form],\n retry: false,\n queryFn: async () => {\n const response = await getShowFormCountry({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n path: {\n country_code: countryCode,\n form: form,\n },\n query: {\n skip_benefits: true,\n ...query,\n ...jsonSchemaQueryParam,\n },\n });\n\n // If response status is 404 or other error, throw an error to trigger isError\n if (response.error || !response.data) {\n throw new Error('Failed to fetch onboarding schema');\n }\n\n return response;\n },\n enabled: options?.queryOptions?.enabled,\n select: ({ data }) => {\n let jsfSchema = data?.data || {};\n if (options && options.jsfModify) {\n const { schema } = modify(jsfSchema, options.jsfModify);\n jsfSchema = schema;\n }\n\n // Contract details contains x-jsf-logic that need to be calculated every time a form value changes\n // In particular there are calculations involving the annual_gross_salary field. However this field value doesn't get\n // here in cents. So we need to convert the money fields to cents, so that the calculations are correct.\n const moneyFields = findFieldsByType(jsfSchema.properties || {}, 'money');\n const moneyFieldsData = moneyFields.reduce<Record<string, number | null>>(\n (acc, field) => {\n acc[field] = convertToCents(fieldValues[field]);\n return acc;\n },\n {},\n );\n\n const initialValues = {\n ...fieldValues,\n ...moneyFieldsData,\n };\n\n return {\n meta: {\n 'x-jsf-fieldsets': jsfSchema['x-jsf-fieldsets'] as JSFFieldset,\n },\n ...createHeadlessForm(jsfSchema, {\n initialValues,\n }),\n };\n },\n });\n};\n\nexport const useBenefitOffersSchema = (\n employmentId: string,\n fieldValues: FieldValues,\n options: 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 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 body: payload,\n path: {\n employment_id: employmentId,\n },\n query: {\n ...jsonSchemaQueryParam,\n },\n });\n },\n });\n};\n\nexport const useMagicLink = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: (params: MagicLinkParams) => {\n return postGenerateMagicLink({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n body: params,\n });\n },\n });\n};\n\nconst useCountries = (queryOptions?: { enabled?: boolean }) => {\n const { client } = useClient();\n return useQuery({\n ...queryOptions,\n queryKey: ['countries'],\n retry: false,\n queryFn: async () => {\n const response = await getSupportedCountry({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n });\n\n // If response status is 404 or other error, throw an error to trigger isError\n if (response.error || !response.data) {\n throw new Error('Failed to fetch supported countries');\n }\n\n return response;\n },\n select: ({ data }) => {\n return (\n data?.data?.map((country) => {\n return {\n label: country.name,\n value: country.code,\n };\n }) || []\n );\n },\n });\n};\n\nexport const useCountriesSchemaField = (\n options?: FlowOptions & { queryOptions?: { enabled?: boolean } },\n) => {\n const { data: countries, isLoading } = useCountries(options?.queryOptions);\n\n const { schema: selectCountrySchema } = modify(\n selectCountryStepSchema.data.schema,\n options?.jsfModify || {},\n );\n\n const selectCountryForm = createHeadlessForm(selectCountrySchema);\n\n if (countries) {\n const countryField = selectCountryForm.fields.find(\n (field) => field.name === 'country',\n );\n if (countryField) {\n countryField.options = countries;\n }\n }\n\n return {\n isLoading,\n selectCountryForm,\n };\n};\n\nexport const useConvertCurrency = ({\n type = 'spread',\n}: {\n type?: 'spread' | 'no_spread';\n}) => {\n const { client } = useClient();\n return useMutation({\n mutationFn: (payload: ConvertCurrencyParams) => {\n const apiFn =\n type === 'no_spread'\n ? postConvertRawCurrencyConverter\n : postConvertWithSpreadCurrencyConverter;\n return apiFn({\n client: client as Client,\n body: payload,\n });\n },\n });\n};\n\nexport const useUpsertContractEligibility = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: ({\n employmentId,\n ...payload\n }: { employmentId: string } & CreateContractEligibilityParams) => {\n return postCreateContractEligibility({\n client: client as Client,\n path: {\n employment_id: employmentId,\n },\n body: payload,\n });\n },\n });\n};\n"],"mappings":"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","names":["createHeadlessForm","modify","useMutation","useQuery","useEmployment","__name","employmentId","client","useClient","useQuery","data","response","getShowEmployment","useCompany","companyId","getShowCompany","useBenefitOffers","getIndexBenefitOffer","acc","item","useEmploymentInvite","useMutation","payload","postInviteEmploymentInvitation","useCreateReserveInvoice","postCreateRiskReserve","useJSONSchemaForm","countryCode","form","fieldValues","options","query","jsonSchemaQueryParam","getShowFormCountry","jsfSchema","schema","modify","moneyFieldsData","findFieldsByType","field","convertToCents","initialValues","createHeadlessForm","useBenefitOffersSchema","getShowSchema","hasFieldValues","useCreateEmployment","postCreateEmployment2","useUpdateEmployment","jsonSchemaQueryParams","filteredQueryParams","value","patchUpdateEmployment2","useUpdateBenefitsOffers","putUpdateBenefitOffer","useMagicLink","params","postGenerateMagicLink","useCountries","queryOptions","getSupportedCountry","country","useCountriesSchemaField","countries","isLoading","selectCountrySchema","selectCountryStepSchema","selectCountryForm","countryField","useConvertCurrency","type","postConvertRawCurrencyConverter","postConvertWithSpreadCurrencyConverter","useUpsertContractEligibility","postCreateContractEligibility"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as c}from"./chunk-MRYRNB7Y.js";import{b as e}from"./chunk-3ZWDIEEM.js";import{b as m}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b as c}from"./chunk-MRYRNB7Y.js";import{b as e}from"./chunk-3ZWDIEEM.js";import{b as m}from"./chunk-CSK44J23.js";import{a as u}from"./chunk-P37U34EQ.js";import{jsx as s}from"react/jsx-runtime";function f({children:n,...t}){let{terminationBag:{back:i}}=c(),{components:B}=e(),r=B?.button;return r?s(r,{...t,onClick:o=>{i(),t.onClick?.(o)},children:n}):s(m,{...t,onClick:o=>{i(),t.onClick?.(o)},children:n})}u(f,"TerminationBack");export{f as a};
|
|
2
|
+
//# sourceMappingURL=chunk-4OEBYZLZ.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as d,b as p,c as g,d as x}from"./chunk-T3L72MV6.js";import{a as N}from"./chunk-5I6VWJSC.js";import{a as i,b as y}from"./chunk-3LOVCTCN.js";import{a as c}from"./chunk-P37U34EQ.js";import{ChevronDown as b,Globe as _}from"lucide-react";import{useState as A}from"react";import{Fragment as C,jsx as e,jsxs as r}from"react/jsx-runtime";var w=c(s=>{if(s.length<2)return{currency:null,costsPerCountry:[],employeesCost:null};let t=s[0]?.employer_currency_costs.currency,m=s.reduce((o,a)=>{let l=a.country.name;return o[l]={country:a.country,monthlyTotal:(o[l]?.monthlyTotal||0)+a.employer_currency_costs.monthly_total,annualTotal:(o[l]?.annualTotal||0)+a.employer_currency_costs.annual_total},o},{}),n=Object.values(m).map(({country:o,monthlyTotal:a,annualTotal:l})=>({country:o,monthlyCost:y(a,t.symbol),annualCost:y(l,t.symbol)})),u={monthlyTotal:y(s.reduce((o,a)=>o+a.employer_currency_costs.monthly_total,0),t.symbol),annualTotal:y(s.reduce((o,a)=>o+a.employer_currency_costs.annual_total,0),t.symbol)};return{currency:t,costsPerCountry:n,employeesCost:u}},"useSummaryResults"),T=c(({currency:s,title:t})=>e("div",{className:"flex items-center justify-between w-full",children:r("div",{className:"flex flex-row items-center gap-6",children:[e("div",{className:"flex h-12 w-12 items-center justify-center rounded-lg bg-[#F4F4F5]",children:e(_,{className:"h-6 w-6 text-[#000000]"})}),r("div",{className:"space-y-1",children:[e("h2",{className:"text-lg font-medium leading-none text-[#181818]",children:t}),r("p",{className:"text-xs text-[#71717A]",children:["Employer billing currency: ",s.code]})]})]})}),"SummaryHeader"),h=c(({label:s,columns:t,rows:m,defaultValue:n="accordion",className:u})=>{let o=t.length===1?"grid-cols-2":"grid-cols-3";return e(d,{type:"single",collapsible:!0,defaultValue:n,className:i("w-full",u),children:r(p,{value:n,className:"border-none",children:[e(g,{className:"hover:no-underline px-0 py-3 [&>svg]:hidden group",children:r("div",{className:i("grid items-center w-full",o),children:[r("div",{className:"flex items-center gap-2",children:[s,e(b,{className:"h-4 w-4 text-muted-foreground transition-transform group-data-[state=open]:rotate-180"})]}),t.length===1?e("span",{className:"text-xs text-[#27272A] text-right",children:t[0]}):t.map((a,l)=>e("span",{className:"text-xs text-[#27272A] text-right",children:a},l))]})}),e(x,{className:"px-0 pb-4",children:e("div",{className:"space-y-3",children:m.map((a,l)=>r("div",{className:i("grid items-center",o),children:[e("div",{className:"flex items-center gap-2",children:a.label}),t.length===1?e("span",{className:"text-sm text-[#09090B] text-right",children:a.values[0]}):a.values.map((v,f)=>e("span",{className:"text-sm text-[#09090B] text-right",children:v},f))]},l))})})]})})},"MultiColumnAccordion"),R=c(({employeesCost:s})=>e(h,{label:e("span",{className:"text-sm font-medium text-[#0F172A]",children:"Cost for all employees"}),columns:["Total cost"],rows:[{label:r(C,{children:[e("span",{className:"w-1 h-1 bg-[#09090B] rounded-full flex-shrink-0"}),e("span",{className:"text-sm text-[#09090B]",children:"Monthly cost"})]}),values:[s.monthlyTotal]},{label:r(C,{children:[e("span",{className:"w-1 h-1 bg-[#09090B] rounded-full flex-shrink-0"}),e("span",{className:"text-sm text-[#09090B]",children:"Annual cost"})]}),values:[s.annualTotal]}],defaultValue:"cost-breakdown"}),"CostForAllEmployees"),S=c(({costsPerCountry:s})=>e(h,{label:e("span",{className:"text-sm font-medium text-[#0F172A]",children:"Cost per country"}),columns:["Monthly cost","Annual cost"],rows:s.map(t=>({label:r(C,{children:[e("span",{className:"w-1 h-1 bg-[#09090B] rounded-full flex-shrink-0"}),e("span",{className:"text-sm text-[#09090B]",children:t.country.name})]}),values:[t.monthlyCost,t.annualCost]})),defaultValue:"country-breakdown"}),"CostsPerCountry"),E=c(({estimations:s})=>{let{currency:t,costsPerCountry:m,employeesCost:n}=w(s),[u,o]=A("summary");return!t||m.length===0||Object.keys(n).length===0?null:e(N,{className:"RemoteFlows__SummaryResults__Card p-10",children:e(d,{type:"single",collapsible:!0,defaultValue:u,onValueChange:o,className:"RemoteFlows__SummaryResults__Accordion w-full",children:r(p,{value:"summary",className:"border-border",children:[e("div",{className:i({RemoteFlows__Separator:u==="summary"}),children:e(g,{iconClassName:"size-6",className:"hover:no-underline px-0 py-4",children:e(T,{currency:t,title:"Summary Overview"})})}),r(x,{className:"px-0 pb-4 mt-6",children:[e("div",{className:"RemoteFlows__Separator",children:e(R,{employeesCost:n})}),e("div",{className:"mt-6",children:e(S,{costsPerCountry:m})})]})]})})})},"SummaryResults");export{E as a};
|
|
2
|
+
//# sourceMappingURL=chunk-52NPLMW3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/CostCalculator/SummaryResults/SummaryResults.tsx"],"sourcesContent":["import { CostCalculatorEmployment, Currency } from '@/src/client';\nimport {\n Accordion,\n AccordionContent,\n AccordionItem,\n AccordionTrigger,\n} from '@/src/components/ui/accordion';\nimport { Card } from '@/src/components/ui/card';\nimport { cn, formatCurrency } from '@/src/lib/utils';\nimport { ChevronDown, Globe } from 'lucide-react';\nimport { useState } from 'react';\n\nconst useSummaryResults = (estimations: CostCalculatorEmployment[]) => {\n if (estimations.length < 2) {\n return {\n currency: null,\n costsPerCountry: [],\n employeesCost: null,\n };\n }\n const currency = estimations[0]?.employer_currency_costs.currency;\n const costsPerCountry = estimations.reduce(\n (acc, estimation) => {\n const countryName = estimation.country.name;\n\n acc[countryName] = {\n country: estimation.country,\n monthlyTotal:\n (acc[countryName]?.monthlyTotal || 0) +\n estimation.employer_currency_costs.monthly_total,\n annualTotal:\n (acc[countryName]?.annualTotal || 0) +\n estimation.employer_currency_costs.annual_total,\n };\n\n return acc;\n },\n {} as Record<\n string,\n {\n country: (typeof estimations)[0]['country'];\n monthlyTotal: number;\n annualTotal: number;\n }\n >,\n );\n\n const groupedCostsPerCountry = Object.values(costsPerCountry).map(\n ({ country, monthlyTotal, annualTotal }) => ({\n country,\n monthlyCost: formatCurrency(monthlyTotal, currency.symbol),\n annualCost: formatCurrency(annualTotal, currency.symbol),\n }),\n );\n\n const employeesCost = {\n monthlyTotal: formatCurrency(\n estimations.reduce((acc, estimation) => {\n return acc + estimation.employer_currency_costs.monthly_total;\n }, 0),\n currency.symbol,\n ),\n annualTotal: formatCurrency(\n estimations.reduce((acc, estimation) => {\n return acc + estimation.employer_currency_costs.annual_total;\n }, 0),\n currency.symbol,\n ),\n };\n return { currency, costsPerCountry: groupedCostsPerCountry, employeesCost };\n};\n\nconst SummaryHeader = ({\n currency,\n title,\n}: {\n currency: Currency;\n title: string;\n}) => {\n return (\n <div className=\"flex items-center justify-between w-full\">\n <div className=\"flex flex-row items-center gap-6\">\n <div className=\"flex h-12 w-12 items-center justify-center rounded-lg bg-[#F4F4F5]\">\n <Globe className=\"h-6 w-6 text-[#000000]\" />\n </div>\n <div className=\"space-y-1\">\n <h2 className=\"text-lg font-medium leading-none text-[#181818]\">\n {title}\n </h2>\n <p className=\"text-xs text-[#71717A]\">\n Employer billing currency: {currency.code}\n </p>\n </div>\n </div>\n </div>\n );\n};\n\nconst MultiColumnAccordion = ({\n label,\n columns,\n rows,\n defaultValue = 'accordion',\n className,\n}: {\n label: React.ReactNode;\n columns: string[];\n rows: Array<{\n label: React.ReactNode;\n values: string[];\n }>;\n defaultValue?: string;\n className?: string;\n}) => {\n const gridCols = columns.length === 1 ? 'grid-cols-2' : 'grid-cols-3';\n\n return (\n <Accordion\n type=\"single\"\n collapsible\n defaultValue={defaultValue}\n className={cn('w-full', className)}\n >\n <AccordionItem value={defaultValue} className=\"border-none\">\n <AccordionTrigger className=\"hover:no-underline px-0 py-3 [&>svg]:hidden group\">\n <div className={cn('grid items-center w-full', gridCols)}>\n <div className=\"flex items-center gap-2\">\n {label}\n <ChevronDown className=\"h-4 w-4 text-muted-foreground transition-transform group-data-[state=open]:rotate-180\" />\n </div>\n {columns.length === 1 ? (\n <span className=\"text-xs text-[#27272A] text-right\">\n {columns[0]}\n </span>\n ) : (\n columns.map((column, index) => (\n <span key={index} className=\"text-xs text-[#27272A] text-right\">\n {column}\n </span>\n ))\n )}\n </div>\n </AccordionTrigger>\n\n <AccordionContent className=\"px-0 pb-4\">\n <div className=\"space-y-3\">\n {rows.map((row, index) => (\n <div key={index} className={cn('grid items-center', gridCols)}>\n <div className=\"flex items-center gap-2\">{row.label}</div>\n {columns.length === 1 ? (\n <span className=\"text-sm text-[#09090B] text-right\">\n {row.values[0]}\n </span>\n ) : (\n row.values.map((value, valueIndex) => (\n <span\n key={valueIndex}\n className=\"text-sm text-[#09090B] text-right\"\n >\n {value}\n </span>\n ))\n )}\n </div>\n ))}\n </div>\n </AccordionContent>\n </AccordionItem>\n </Accordion>\n );\n};\n\nconst CostForAllEmployees = ({\n employeesCost,\n}: {\n employeesCost: { monthlyTotal: string; annualTotal: string };\n}) => {\n return (\n <MultiColumnAccordion\n label={\n <span className=\"text-sm font-medium text-[#0F172A]\">\n Cost for all employees\n </span>\n }\n columns={['Total cost']}\n rows={[\n {\n label: (\n <>\n <span className=\"w-1 h-1 bg-[#09090B] rounded-full flex-shrink-0\" />\n <span className=\"text-sm text-[#09090B]\">Monthly cost</span>\n </>\n ),\n values: [employeesCost.monthlyTotal],\n },\n {\n label: (\n <>\n <span className=\"w-1 h-1 bg-[#09090B] rounded-full flex-shrink-0\" />\n <span className=\"text-sm text-[#09090B]\">Annual cost</span>\n </>\n ),\n values: [employeesCost.annualTotal],\n },\n ]}\n defaultValue=\"cost-breakdown\"\n />\n );\n};\n\nconst CostsPerCountry = ({\n costsPerCountry,\n}: {\n costsPerCountry: Array<{\n country: { name: string };\n monthlyCost: string;\n annualCost: string;\n }>;\n}) => {\n return (\n <MultiColumnAccordion\n label={\n <span className=\"text-sm font-medium text-[#0F172A]\">\n Cost per country\n </span>\n }\n columns={['Monthly cost', 'Annual cost']}\n rows={costsPerCountry.map((cost) => ({\n label: (\n <>\n <span className=\"w-1 h-1 bg-[#09090B] rounded-full flex-shrink-0\" />\n <span className=\"text-sm text-[#09090B]\">{cost.country.name}</span>\n </>\n ),\n values: [cost.monthlyCost, cost.annualCost],\n }))}\n defaultValue=\"country-breakdown\"\n />\n );\n};\n\ntype SummaryResultsProps = {\n /**\n * Array of employments to compare costs for.\n * 2 estimations required for the component to render\n */\n estimations: CostCalculatorEmployment[];\n};\n\n/**\n * Displays a summary comparison of costs across multiple estimations.\n * The component will return null if you pass less than 2 estimations.\n */\nexport const SummaryResults = ({ estimations }: SummaryResultsProps) => {\n const { currency, costsPerCountry, employeesCost } =\n useSummaryResults(estimations);\n\n const [accordionValue, setAccordionValue] = useState('summary');\n\n if (\n !currency ||\n costsPerCountry.length === 0 ||\n Object.keys(employeesCost).length === 0\n ) {\n return null;\n }\n\n return (\n <Card className=\"RemoteFlows__SummaryResults__Card p-10\">\n <Accordion\n type=\"single\"\n collapsible\n defaultValue={accordionValue}\n onValueChange={setAccordionValue}\n className=\"RemoteFlows__SummaryResults__Accordion w-full\"\n >\n <AccordionItem value=\"summary\" className=\"border-border\">\n <div\n className={cn({\n RemoteFlows__Separator: accordionValue === 'summary',\n })}\n >\n <AccordionTrigger\n iconClassName=\"size-6\"\n className=\"hover:no-underline px-0 py-4\"\n >\n <SummaryHeader currency={currency} title=\"Summary Overview\" />\n </AccordionTrigger>\n </div>\n <AccordionContent className=\"px-0 pb-4 mt-6\">\n <div className=\"RemoteFlows__Separator\">\n <CostForAllEmployees employeesCost={employeesCost} />\n </div>\n <div className=\"mt-6\">\n <CostsPerCountry costsPerCountry={costsPerCountry} />\n </div>\n </AccordionContent>\n </AccordionItem>\n </Accordion>\n </Card>\n );\n};\n"],"mappings":"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","names":["ChevronDown","Globe","useState","Fragment","jsx","jsxs","useSummaryResults","__name","estimations","currency","costsPerCountry","acc","estimation","countryName","groupedCostsPerCountry","country","monthlyTotal","annualTotal","formatCurrency","employeesCost","SummaryHeader","title","Globe","MultiColumnAccordion","label","columns","rows","defaultValue","className","gridCols","Accordion","cn","AccordionItem","AccordionTrigger","ChevronDown","column","index","AccordionContent","row","value","valueIndex","CostForAllEmployees","CostsPerCountry","cost","SummaryResults","accordionValue","setAccordionValue","useState","Card"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as H}from"./chunk-JKYTL5QY.js";import{a as T}from"./chunk-NPZ5QJSG.js";import{a as U,b as G,c as $,e as z}from"./chunk-5E44DBDD.js";import{a as q}from"./chunk-CFIJKJXD.js";import{c as F}from"./chunk-MXFDOIUA.js";import{a as n}from"./chunk-P37U34EQ.js";import{object as ye}from"yup";import{createHeadlessForm as le,modify as ce}from"@remoteoss/json-schema-form";import{useCallback as ue,useEffect as I,useMemo as me,useState as v}from"react";import{string as N,ValidationError as D}from"yup";import{jsx as fe}from"react/jsx-runtime";var A={title:"Estimation",includeBenefits:!1,includeCostBreakdowns:!1,includePremiumBenefits:!1,enableCurrencyConversion:!1,includeManagementFee:!1},de=n(t=>{let{schema:s}=ce(T.data.schema,t?.jsfModify||{});return le(s)},"useStaticSchema"),je=n(({defaultRegion:t,defaultCurrency:s,defaultSalary:a,estimationOptions:o,options:i,version:g}={estimationOptions:A})=>{let[w,E]=v(t),[j,R]=v(),[u,J]=v(),{data:d,isLoading:W}=U({includePremiumBenefits:o.includePremiumBenefits}),{data:f,isLoading:X}=G(),Y=w||j?.value,{data:P,isLoading:Z}=z(Y,{includePremiumBenefits:o.includePremiumBenefits,options:i}),L=$(),m=j?.currency,y=i?.jsfModify?.fields?.salary,S=y&&typeof y=="object"&&"presentation"in y?y.presentation:void 0,ee=ue(()=>{let e=m&&u?m!==u:!1;return m!==u?{from:u,to:m,shouldSwapOrder:e}:{from:m,to:u,shouldSwapOrder:e}},[m,u]),re=me(()=>{let{from:e,to:r,shouldSwapOrder:l}=ee();return{fields:{salary:{...y,presentation:{salary_conversion_properties:{label:S?.salary_conversion_properties?.label,description:S?.salary_conversion_properties?.description},currencies:{from:e,to:r},Component:n(c=>fe(H,{...c,shouldSwapOrder:l,conversionType:g==="marketing"?"no_spread":"spread",defaultValue:a}),"Component")}}}}},[m,u,y,S?.salary_conversion_properties?.description,S?.salary_conversion_properties?.label]),p=de({jsfModify:{fields:{...i?.jsfModify?.fields,...re?.fields}}});I(()=>{if(t&&d){let e=d.find(({value:r})=>r===t);e&&R(e)}},[t,d]),I(()=>{if(s&&f){let e=f.find(({value:r})=>r===s);e&&J(e.label)}},[s,f]);async function te(e){try{await O.validate(e,{abortEarly:!1})}catch(r){return{data:null,error:r}}return new Promise((r,l)=>{L.mutate(Q(e,o,g),{onSuccess:n(c=>{c.data?r({data:c.data,error:null}):r({data:null,error:new Error("Something went wrong. Please try again later.")})},"onSuccess"),onError:n(c=>{l({data:null,error:c})},"onError")})})}n(te,"onSubmit");function ne(e){let r=d?.find(({value:l})=>l===e);r&&r.childRegions.length===0&&r.hasAdditionalFields?E(r.regionSlug):E(void 0),R(r)}n(ne,"onCountryChange");function oe(e){E(e)}n(oe,"onRegionChange");function se(e){let r=f?.find(l=>l.value===e)?.label;J(r)}n(se,"onChangeCurrency");let C=p.fields.find(e=>e.name==="region");if(C){let e=j?.childRegions.map(r=>({value:r.slug,label:r.name}))??[];C.options=e,C.isVisible=e.length>0,C.required=e.length>0,C.onChange=oe,C.schema=e.length>0?N().transform(r=>typeof r=="string"?r:"").required("Region is required"):N()}if(f){let e=p.fields.find(r=>r.name==="currency");e&&(e.options=f,e.onChange=se)}if(d){let e=p.fields.find(r=>r.name==="country");e&&(e.options=d,e.onChange=ne)}let ie=n(()=>{R(void 0),E(t)},"resetForm"),k=[...p.fields,...P?.fields||[]],O=K(p.fields);async function ae(e){let r=null,l=F(e,k);try{await O.validate(l,{abortEarly:!1}),r={formErrors:{},yupError:new D([],e)}}catch(_){let V=q(_);r={formErrors:Object.entries(V).reduce((x,[M,B])=>({...x,[M]:B.message}),{}),yupError:_}}let c=P?.handleValidation(l),b=[...r?.yupError.inner||[],...c?.yupError?.inner||[]],h={...r?.yupError?.value||{},...c?.yupError?.value||{}};return{formErrors:{...r?.formErrors||{},...c?.formErrors||{}},yupError:new D(b,h)}}return n(ae,"handleValidation"),{stepState:{current:0,total:1,isLastStep:!0},fields:k,validationSchema:O,parseFormValues:n(e=>{let{country:r,region:l,currency:c,salary_converted:b,salary_conversion:h,..._}=e,V=e.salary;b==="salary_conversion"&&(V=h);let M=F({country:r,region:l,salary:V,salary_converted:b,salary_conversion:h,currency:c},p.fields),B=F(_,P?.fields||[]);return{...M,...B}},"parseFormValues"),handleValidation:ae,isSubmitting:L.isPending,isLoading:W&&X&&Z,onSubmit:te,resetForm:ie}},"useCostCalculator");function K(t){let s=t.reduce((a,o)=>{return o.name==="salary"||o.name==="salary_conversion"?a[o.name]=o.schema.when("salary_converted",{is:n(i=>i===o.name,"is"),then:n(i=>i.required("Salary is required"),"then"),otherwise:n(i=>i.optional(),"otherwise")}):a[o.name]=o.schema,a;return a},{});return ye(s)}n(K,"buildValidationSchema");function pe(t){let s="benefit-";return Object.keys(t).reduce((a,o)=>{let i=t[o];if(i==="none")return a;let w={benefit_group_slug:o.replace(s,""),benefit_tier_slug:i};return[...a,w]},[])}n(pe,"formatBenefits");function Ce(t,s,a){return{region_slug:t.region||t.country,employment_term:t.contract_duration_type??"fixed",title:s.title,age:t.age??void 0,...t.benefits&&{benefits:pe(t.benefits)},...(a=="marketing"||t.salary_converted==="salary_conversion")&&{annual_gross_salary_in_employer_currency:t.salary},...a==="standard"&&t.salary_converted==="salary"&&{annual_gross_salary:t.salary}}}n(Ce,"mapValueToEmployment");function Q(t,s=A,a="standard"){let o=Array.isArray(t)?t:[t];if(o.length===0)throw new Error("At least one employment value is required");return o.length>1&&new Set(o.map(g=>g.currency)).size>1&&console.warn("Multiple currencies detected in array. Using currency from first employment."),{employer_currency_slug:o[0].currency,include_benefits:s.includeBenefits,include_cost_breakdowns:s.includeCostBreakdowns,include_premium_benefits:s.includePremiumBenefits,include_management_fee:s.includeManagementFee,employments:o.map(i=>Ce(i,s,a))}}n(Q,"buildPayload");export{K as a,Q as b,A as c,je as d};
|
|
2
|
+
//# sourceMappingURL=chunk-5CUF63YR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/CostCalculator/utils.ts","../src/flows/CostCalculator/hooks.tsx"],"sourcesContent":["import type { CostCalculatorEstimateParams } from '@/src/client';\n\nimport { $TSFixMe } from '@/src/types/remoteFlows';\nimport { AnyObjectSchema, object } from 'yup';\nimport { CostCalculatorVersion, 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 // Special handling for salary fields\n if (field.name === 'salary' || field.name === 'salary_conversion') {\n fieldsSchemaAcc[field.name] = (field.schema as AnyObjectSchema).when(\n 'salary_converted',\n {\n is: (val: string | null) => val === field.name,\n then: (schema) => schema.required('Salary is required'),\n otherwise: (schema) => schema.optional(),\n },\n );\n } else {\n fieldsSchemaAcc[field.name] = field.schema as AnyObjectSchema;\n }\n return fieldsSchemaAcc;\n return fieldsSchemaAcc;\n },\n {},\n );\n return object(fieldsSchema) as AnyObjectSchema;\n}\n\n/**\n * Format the benefits to the expected format by the API.\n * @param benefits\n * @returns\n */\nfunction formatBenefits(benefits: Record<string, string>) {\n const needle = 'benefit-';\n return Object.keys(benefits).reduce<\n Array<{ benefit_group_slug: string; benefit_tier_slug: string }>\n >((acc, key) => {\n const benefitTierSlug = benefits[key];\n if (benefitTierSlug === 'none') {\n return acc;\n }\n const benefitGroupSlug = key.replace(needle, '');\n const benefitEntry = {\n benefit_group_slug: benefitGroupSlug,\n benefit_tier_slug: benefitTierSlug,\n };\n return [...acc, benefitEntry];\n }, []);\n}\n\nfunction mapValueToEmployment(\n value: CostCalculatorEstimationSubmitValues,\n estimationOptions: CostCalculatorEstimationOptions,\n version: CostCalculatorVersion,\n) {\n return {\n region_slug: value.region || value.country,\n employment_term: value.contract_duration_type ?? 'fixed',\n title: estimationOptions.title,\n age: value.age ?? undefined,\n ...(value.benefits && { benefits: formatBenefits(value.benefits) }),\n ...((version == 'marketing' ||\n value.salary_converted === 'salary_conversion') && {\n annual_gross_salary_in_employer_currency: value.salary,\n }),\n ...(version === 'standard' &&\n value.salary_converted === 'salary' && {\n annual_gross_salary: value.salary,\n }),\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:\n | CostCalculatorEstimationSubmitValues\n | CostCalculatorEstimationSubmitValues[],\n estimationOptions: CostCalculatorEstimationOptions = defaultEstimationOptions,\n version: CostCalculatorVersion = 'standard',\n): CostCalculatorEstimateParams {\n const employments = Array.isArray(values) ? values : [values];\n\n if (employments.length === 0) {\n throw new Error('At least one employment value is required');\n }\n\n if (employments.length > 1) {\n const currencies = new Set(employments.map((v) => v.currency));\n if (currencies.size > 1) {\n console.warn(\n 'Multiple currencies detected in array. Using currency from first employment.',\n );\n }\n }\n\n return {\n employer_currency_slug: employments[0].currency,\n include_benefits: estimationOptions.includeBenefits,\n include_cost_breakdowns: estimationOptions.includeCostBreakdowns,\n include_premium_benefits: estimationOptions.includePremiumBenefits,\n include_management_fee: estimationOptions.includeManagementFee,\n employments: employments.map((value) =>\n mapValueToEmployment(value, estimationOptions, version),\n ),\n };\n}\n","import {\n CostCalculatorEstimateResponse,\n MinimalRegion,\n PostCreateEstimationError,\n} from '@/src/client';\nimport { jsonSchema } from '@/src/flows/CostCalculator/jsonSchema';\nimport type {\n CostCalculatorEstimationFormValues,\n CostCalculatorEstimationOptions,\n CostCalculatorEstimationSubmitValues,\n EstimationError,\n UseCostCalculatorOptions,\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 { createHeadlessForm, modify } from '@remoteoss/json-schema-form';\nimport { useCallback, useEffect, useMemo, useState } from 'react';\nimport { string, ValidationError } from 'yup';\nimport { buildPayload, buildValidationSchema } from './utils';\nimport {\n useCompanyCurrencies,\n useCostCalculatorCountries,\n useCostCalculatorEstimation,\n useRegionFields,\n} from '@/src/flows/CostCalculator/api';\nimport { JSFField } from '@/src/types/remoteFlows';\nimport { SalaryField } from '@/src/flows/CostCalculator/components/SalaryField';\n\nexport type CostCalculatorVersion = 'standard' | 'marketing';\n\ntype CostCalculatorCountry = {\n value: string;\n label: string;\n childRegions: MinimalRegion[];\n hasAdditionalFields: boolean | undefined;\n regionSlug: string;\n currency: string;\n};\n\ntype JSFValidationError = {\n formErrors: Record<\n string,\n {\n type: string;\n message: string;\n }\n >;\n yupError: ValidationError;\n};\n\nexport const defaultEstimationOptions: CostCalculatorEstimationOptions = {\n title: 'Estimation',\n includeBenefits: false,\n includeCostBreakdowns: false,\n includePremiumBenefits: false,\n enableCurrencyConversion: false,\n includeManagementFee: false,\n};\n\ntype UseCostCalculatorParams = {\n /**\n * The default region slug to preselect a country and a region.\n */\n defaultRegion?: string;\n /**\n * The default currency slug to preselect a currency.\n */\n defaultCurrency?: string;\n\n /**\n * The default salary to preselect a salary.\n */\n defaultSalary?: string;\n /**\n * The estimation options.\n */\n estimationOptions: CostCalculatorEstimationOptions;\n options?: UseCostCalculatorOptions;\n version?: CostCalculatorVersion;\n};\n\nconst useStaticSchema = (options?: { jsfModify?: JSFModify }) => {\n const { schema: jsonSchemaModified } = modify(\n jsonSchema.data.schema,\n options?.jsfModify || {},\n );\n\n return createHeadlessForm(jsonSchemaModified);\n};\n\n/**\n * Hook to use the cost calculator.\n */\nexport const useCostCalculator = (\n {\n defaultRegion,\n defaultCurrency,\n defaultSalary,\n estimationOptions,\n options,\n version,\n }: UseCostCalculatorParams = {\n estimationOptions: defaultEstimationOptions,\n },\n) => {\n const [selectedRegion, setSelectedRegion] = useState<string | undefined>(\n defaultRegion,\n );\n const [selectedCountry, setSelectedCountry] =\n useState<CostCalculatorCountry>();\n const [employerBillingCurrency, setEmployerBillingCurrency] = useState<\n string | undefined\n >();\n const { data: countries, isLoading: isLoadingCountries } =\n useCostCalculatorCountries({\n includePremiumBenefits: estimationOptions.includePremiumBenefits,\n });\n const { data: currencies, isLoading: isLoadingCurrencies } =\n useCompanyCurrencies();\n\n const jsonSchemaRegionSlug = selectedRegion || selectedCountry?.value;\n\n const { data: jsonSchemaRegionFields, isLoading: isLoadingRegionFields } =\n useRegionFields(jsonSchemaRegionSlug, {\n includePremiumBenefits: estimationOptions.includePremiumBenefits,\n options,\n });\n const costCalculatorEstimationMutation = useCostCalculatorEstimation();\n const employeeBillingCurrency = selectedCountry?.currency;\n\n const salaryField = options?.jsfModify?.fields?.salary;\n const salaryFieldPresentation =\n salaryField &&\n typeof salaryField === 'object' &&\n 'presentation' in salaryField\n ? (\n salaryField as {\n presentation?: {\n salary_conversion_properties?: {\n label?: string;\n description?: string;\n };\n };\n }\n ).presentation\n : undefined;\n\n const getCurrencies = useCallback(() => {\n const shouldSwapOrder =\n employeeBillingCurrency && employerBillingCurrency\n ? employeeBillingCurrency !== employerBillingCurrency\n : false;\n\n if (employeeBillingCurrency !== employerBillingCurrency) {\n return {\n from: employerBillingCurrency,\n to: employeeBillingCurrency,\n shouldSwapOrder,\n };\n }\n\n return {\n from: employeeBillingCurrency,\n to: employerBillingCurrency,\n shouldSwapOrder,\n };\n }, [employeeBillingCurrency, employerBillingCurrency]);\n\n const customFields = useMemo(() => {\n const { from, to, shouldSwapOrder } = getCurrencies();\n\n return {\n fields: {\n salary: {\n ...salaryField,\n presentation: {\n salary_conversion_properties: {\n label:\n salaryFieldPresentation?.salary_conversion_properties?.label,\n description:\n salaryFieldPresentation?.salary_conversion_properties\n ?.description,\n },\n currencies: { from, to },\n Component: (\n props: JSFField & { currencies: { from: string; to: string } },\n ) => {\n return (\n <SalaryField\n {...props}\n shouldSwapOrder={shouldSwapOrder}\n conversionType={\n version === 'marketing' ? 'no_spread' : 'spread'\n }\n defaultValue={defaultSalary}\n />\n );\n },\n },\n },\n },\n };\n }, [\n employeeBillingCurrency,\n employerBillingCurrency,\n salaryField,\n salaryFieldPresentation?.salary_conversion_properties?.description,\n salaryFieldPresentation?.salary_conversion_properties?.label,\n ]);\n\n const fieldsJSONSchema = useStaticSchema({\n jsfModify: {\n fields: {\n ...options?.jsfModify?.fields,\n ...customFields?.fields,\n },\n },\n });\n\n useEffect(() => {\n // Initialize selectedCountry from defaultRegion\n if (defaultRegion && countries) {\n const defaultCountry = countries.find(\n ({ value }) => value === defaultRegion,\n );\n if (defaultCountry) {\n setSelectedCountry(defaultCountry);\n }\n }\n }, [defaultRegion, countries]);\n\n useEffect(() => {\n // Initialize selectedCurrency from defaultCurrency\n if (defaultCurrency && currencies) {\n const defaultCurrencyObj = currencies.find(\n ({ value }) => value === defaultCurrency,\n );\n if (defaultCurrencyObj) {\n setEmployerBillingCurrency(defaultCurrencyObj.label);\n }\n }\n }, [defaultCurrency, currencies]);\n\n /**\n * Submit the estimation form with the given values.\n * @param values\n */\n async function onSubmit(\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, version),\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 function onChangeCurrency(currency: string) {\n const selectedCurrency = currencies?.find(\n (c) => c.value === currency,\n )?.label;\n setEmployerBillingCurrency(selectedCurrency);\n }\n\n const regionField = fieldsJSONSchema.fields.find(\n (field) => field.name === 'region',\n );\n\n if (regionField) {\n const regions =\n selectedCountry?.childRegions.map((region) => ({\n value: region.slug,\n label: region.name,\n })) ?? [];\n regionField.options = regions;\n regionField.isVisible = regions.length > 0;\n regionField.required = regions.length > 0;\n regionField.onChange = onRegionChange;\n regionField.schema =\n regions.length > 0\n ? string()\n .transform((value) => (typeof value === 'string' ? value : ''))\n .required('Region is required')\n : string();\n }\n\n if (currencies) {\n const currencyField = fieldsJSONSchema.fields.find(\n (field) => field.name === 'currency',\n );\n if (currencyField) {\n currencyField.options = currencies;\n currencyField.onChange = onChangeCurrency;\n }\n }\n\n 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 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 {\n country,\n region,\n currency,\n salary_converted,\n salary_conversion,\n ...rest\n } = values;\n\n // If the salary has been converted, we take the one the user has inputted\n let salary = values.salary;\n if (salary_converted === 'salary_conversion') {\n salary = salary_conversion;\n }\n\n const jsonSchemaStaticFieldValues = {\n country,\n region,\n salary,\n salary_converted,\n salary_conversion,\n currency,\n };\n\n const parsedStaticFields = parseJSFToValidate(\n jsonSchemaStaticFieldValues,\n fieldsJSONSchema.fields,\n );\n\n const parsedRegionFields = parseJSFToValidate(\n rest,\n jsonSchemaRegionFields?.fields || [],\n );\n\n 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","useCallback","useEffect","useMemo","useState","string","ValidationError","jsx","defaultEstimationOptions","useStaticSchema","__name","options","jsonSchemaModified","modify","jsonSchema","createHeadlessForm","useCostCalculator","defaultRegion","defaultCurrency","defaultSalary","estimationOptions","version","selectedRegion","setSelectedRegion","useState","selectedCountry","setSelectedCountry","employerBillingCurrency","setEmployerBillingCurrency","countries","isLoadingCountries","useCostCalculatorCountries","currencies","isLoadingCurrencies","useCompanyCurrencies","jsonSchemaRegionSlug","jsonSchemaRegionFields","isLoadingRegionFields","useRegionFields","costCalculatorEstimationMutation","useCostCalculatorEstimation","employeeBillingCurrency","salaryField","salaryFieldPresentation","getCurrencies","useCallback","shouldSwapOrder","customFields","useMemo","from","to","props","SalaryField","fieldsJSONSchema","useEffect","defaultCountry","value","defaultCurrencyObj","onSubmit","values","validationSchema","err","resolve","reject","buildPayload","response","error","onCountryChange","country","currentCountry","onRegionChange","region","onChangeCurrency","currency","selectedCurrency","c","regionField","field","regions","string","currencyField","countryField","resetForm","allFields","buildValidationSchema","handleValidation","errors","parsedValues","parseJSFToValidate","ValidationError","iterateResult","iterateErrors","acc","key","handleValidationResult","combinedInnerErrors","combinedValues","salary_converted","salary_conversion","rest","salary","parsedStaticFields","parsedRegionFields","buildValidationSchema","fields","fieldsSchema","fieldsSchemaAcc","field","__name","val","schema","object","formatBenefits","benefits","needle","acc","key","benefitTierSlug","benefitEntry","mapValueToEmployment","value","estimationOptions","version","buildPayload","values","defaultEstimationOptions","employments","v"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{g as l,k as u,p as c,t as m,y as d}from"./chunk-EGQJ7UBR.js";import{d as s}from"./chunk-3ZWDIEEM.js";import{a as e}from"./chunk-P37U34EQ.js";import{useMutation as C,useQuery as a}from"@tanstack/react-query";import{createHeadlessForm as y,modify as g}from"@remoteoss/json-schema-form";var b=e(({includePremiumBenefits:t})=>{let{client:i}=s();return a({queryKey:["cost-calculator-countries",t],queryFn:e(()=>c({client:i,query:{include_premium_benefits:t}}),"queryFn"),select:e(n=>n.data?.data.map(o=>({value:o.region_slug,label:o.name,childRegions:o.child_regions,hasAdditionalFields:o.has_additional_fields,regionSlug:o.region_slug,currency:o.currency.code})),"select")})},"useCostCalculatorCountries"),x=e(()=>{let{client:t}=s();return a({queryKey:["company-currencies"],queryFn:e(()=>d({client:t}),"queryFn"),select:e(i=>i.data?.data?.company_currencies.map(n=>({value:n.slug,label:n.code})),"select")})},"useCompanyCurrencies"),P=e(()=>{let{client:t}=s();return C({mutationFn:e(i=>l({client:t,body:i}),"mutationFn")})},"useCostCalculatorEstimation"),M=e(()=>{let{client:t}=s();return C({mutationFn:e(i=>u({client:t,body:i}),"mutationFn")})},"useCostCalculatorEstimationPdf"),S=e((t,{includePremiumBenefits:i,options:n})=>{let{client:o}=s();return a({queryKey:["cost-calculator-region-fields",t,i],queryFn:e(()=>m({client:o,path:{slug:t},query:{include_premium_benefits:i}}),"queryFn"),enabled:!!t,select:e(({data:f})=>{let r=f?.data?.schema||{};if(n&&n.jsfModify){let{schema:p}=g(r,n.jsfModify);r=p}return y(r)},"select")})},"useRegionFields");export{b as a,x as b,P as c,M as d,S as e};
|
|
2
|
+
//# sourceMappingURL=chunk-5E44DBDD.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/CostCalculator/api.ts"],"sourcesContent":["import {\n CostCalculatorEstimateParams,\n getIndexCompanyCurrency,\n getIndexCountry,\n getShowRegionField,\n postCreateEstimation,\n postCreateEstimationPdf,\n} from '@/src/client';\nimport { Client } from '@hey-api/client-fetch';\nimport { useClient } from '@/src/context';\nimport { useMutation, useQuery } from '@tanstack/react-query';\nimport { CostCalculatorEstimationOptions } from '@/src/flows/CostCalculator/types';\nimport { JSFModify } from '@/src/flows/types';\nimport { createHeadlessForm, modify } from '@remoteoss/json-schema-form';\n\n/**\n * Hook to fetch the countries for the cost calculator.\n * @returns\n */\nexport const useCostCalculatorCountries = ({\n includePremiumBenefits,\n}: {\n includePremiumBenefits: CostCalculatorEstimationOptions['includePremiumBenefits'];\n}) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['cost-calculator-countries', includePremiumBenefits],\n queryFn: () => {\n return getIndexCountry({\n client: client as Client,\n query: {\n include_premium_benefits: includePremiumBenefits,\n },\n });\n },\n select: (data) =>\n data.data?.data.map((country) => ({\n value: country.region_slug,\n label: country.name,\n childRegions: country.child_regions,\n hasAdditionalFields: country.has_additional_fields,\n regionSlug: country.region_slug,\n currency: country.currency.code,\n })),\n });\n};\n\n/**\n * Hook to fetch the company currencies.\n * @returns\n */\nexport const useCompanyCurrencies = () => {\n const { client } = useClient();\n\n return useQuery({\n queryKey: ['company-currencies'],\n queryFn: () => {\n return getIndexCompanyCurrency({\n client: client as Client,\n });\n },\n select: (data) =>\n data.data?.data?.company_currencies.map((currency) => ({\n value: currency.slug,\n label: currency.code,\n })),\n });\n};\n\n/**\n * Hook to create an estimation.\n * @returns\n */\nexport const useCostCalculatorEstimation = () => {\n const { client } = useClient();\n\n return useMutation({\n mutationFn: (payload: CostCalculatorEstimateParams) => {\n return postCreateEstimation({\n client: client as Client,\n body: payload,\n });\n },\n });\n};\n\n/**\n * Custom hook to create a PDF estimation.\n *\n * @returns\n */\nexport const useCostCalculatorEstimationPdf = () => {\n const { client } = useClient();\n\n return useMutation({\n mutationFn: (payload: CostCalculatorEstimateParams) => {\n return postCreateEstimationPdf({\n client: client as Client,\n body: payload,\n });\n },\n });\n};\n\n/**\n * Hook to fetch the region fields.\n * @param region\n * @returns\n */\nexport const useRegionFields = (\n region: string | undefined,\n {\n includePremiumBenefits,\n options,\n }: {\n includePremiumBenefits: CostCalculatorEstimationOptions['includePremiumBenefits'];\n options?: {\n jsfModify?: JSFModify;\n };\n },\n) => {\n const { client } = useClient();\n\n return useQuery({\n queryKey: ['cost-calculator-region-fields', region, includePremiumBenefits],\n queryFn: () => {\n return getShowRegionField({\n client: client as Client,\n path: { slug: region as string },\n query: {\n include_premium_benefits: includePremiumBenefits,\n },\n });\n },\n enabled: !!region,\n select: ({ data }) => {\n let jsfSchema = data?.data?.schema || {};\n if (options && options.jsfModify) {\n const { schema } = modify(jsfSchema, options.jsfModify);\n jsfSchema = schema;\n }\n return createHeadlessForm(jsfSchema);\n },\n });\n};\n"],"mappings":"oJAUA,OAAS,eAAAA,EAAa,YAAAC,MAAgB,wBAGtC,OAAS,sBAAAC,EAAoB,UAAAC,MAAc,8BAMpC,IAAMC,EAA6BC,EAAA,CAAC,CACzC,uBAAAC,CACF,IAEM,CACJ,GAAM,CAAE,OAAAC,CAAO,EAAIC,EAAU,EAC7B,OAAOC,EAAS,CACd,SAAU,CAAC,4BAA6BH,CAAsB,EAC9D,QAASD,EAAA,IACAK,EAAgB,CACrB,OAAQH,EACR,MAAO,CACL,yBAA0BD,CAC5B,CACF,CAAC,EANM,WAQT,OAAQD,EAACM,GACPA,EAAK,MAAM,KAAK,IAAKC,IAAa,CAChC,MAAOA,EAAQ,YACf,MAAOA,EAAQ,KACf,aAAcA,EAAQ,cACtB,oBAAqBA,EAAQ,sBAC7B,WAAYA,EAAQ,YACpB,SAAUA,EAAQ,SAAS,IAC7B,EAAE,EARI,SASV,CAAC,CACH,EA1B0C,8BAgC7BC,EAAuBR,EAAA,IAAM,CACxC,GAAM,CAAE,OAAAE,CAAO,EAAIC,EAAU,EAE7B,OAAOC,EAAS,CACd,SAAU,CAAC,oBAAoB,EAC/B,QAASJ,EAAA,IACAS,EAAwB,CAC7B,OAAQP,CACV,CAAC,EAHM,WAKT,OAAQF,EAACM,GACPA,EAAK,MAAM,MAAM,mBAAmB,IAAKI,IAAc,CACrD,MAAOA,EAAS,KAChB,MAAOA,EAAS,IAClB,EAAE,EAJI,SAKV,CAAC,CACH,EAhBoC,wBAsBvBC,EAA8BX,EAAA,IAAM,CAC/C,GAAM,CAAE,OAAAE,CAAO,EAAIC,EAAU,EAE7B,OAAOS,EAAY,CACjB,WAAYZ,EAACa,GACJC,EAAqB,CAC1B,OAAQZ,EACR,KAAMW,CACR,CAAC,EAJS,aAMd,CAAC,CACH,EAX2C,+BAkB9BE,EAAiCf,EAAA,IAAM,CAClD,GAAM,CAAE,OAAAE,CAAO,EAAIC,EAAU,EAE7B,OAAOS,EAAY,CACjB,WAAYZ,EAACa,GACJG,EAAwB,CAC7B,OAAQd,EACR,KAAMW,CACR,CAAC,EAJS,aAMd,CAAC,CACH,EAX8C,kCAkBjCI,EAAkBjB,EAAA,CAC7BkB,EACA,CACE,uBAAAjB,EACA,QAAAkB,CACF,IAMG,CACH,GAAM,CAAE,OAAAjB,CAAO,EAAIC,EAAU,EAE7B,OAAOC,EAAS,CACd,SAAU,CAAC,gCAAiCc,EAAQjB,CAAsB,EAC1E,QAASD,EAAA,IACAoB,EAAmB,CACxB,OAAQlB,EACR,KAAM,CAAE,KAAMgB,CAAiB,EAC/B,MAAO,CACL,yBAA0BjB,CAC5B,CACF,CAAC,EAPM,WAST,QAAS,CAAC,CAACiB,EACX,OAAQlB,EAAA,CAAC,CAAE,KAAAM,CAAK,IAAM,CACpB,IAAIe,EAAYf,GAAM,MAAM,QAAU,CAAC,EACvC,GAAIa,GAAWA,EAAQ,UAAW,CAChC,GAAM,CAAE,OAAAG,CAAO,EAAIC,EAAOF,EAAWF,EAAQ,SAAS,EACtDE,EAAYC,CACd,CACA,OAAOE,EAAmBH,CAAS,CACrC,EAPQ,SAQV,CAAC,CACH,EAnC+B","names":["useMutation","useQuery","createHeadlessForm","modify","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"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as r}from"./chunk-3LOVCTCN.js";import{a as t}from"./chunk-P37U34EQ.js";import{jsx as a}from"react/jsx-runtime";function c({className:e,direction:o="col",...d}){return a("div",{"data-slot":"card",className:r("RemoteFlows__Card bg-white text-card-foreground rounded-[10px] gap-4 border border-gray-200 px-10 py-14",o==="row"?"flex flex-row":"flex flex-col",e),...d})}t(c,"Card");function s({className:e,...o}){return a("div",{"data-slot":"card-header",className:r("flex flex-col gap-1.5 px-6",e),...o})}t(s,"CardHeader");function i({className:e,...o}){return a("div",{"data-slot":"card-title",className:r("leading-none font-semibold",e),...o})}t(i,"CardTitle");function l({className:e,...o}){return a("div",{"data-slot":"card-description",className:r("text-sm",e),...o})}t(l,"CardDescription");function p({className:e,...o}){return a("div",{"data-slot":"card-content",className:r("px-6",e),...o})}t(p,"CardContent");function f({className:e,...o}){return a("div",{"data-slot":"card-footer",className:r("flex items-center px-6",e),...o})}t(f,"CardFooter");export{c as a,s as b,i as c,l as d,p as e,f};
|
|
2
|
+
//# sourceMappingURL=chunk-5I6VWJSC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/card.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { cn } from '@/src/lib/utils';\n\ninterface CardProps extends React.ComponentProps<'div'> {\n direction?: 'row' | 'col';\n}\n\nfunction Card({ className, direction = 'col', ...props }: CardProps) {\n return (\n <div\n data-slot=\"card\"\n className={cn(\n 'RemoteFlows__Card bg-white text-card-foreground rounded-[10px] gap-4 border border-gray-200 px-10 py-14',\n direction === 'row' ? 'flex flex-row' : 'flex flex-col',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-header\"\n className={cn('flex flex-col gap-1.5 px-6', className)}\n {...props}\n />\n );\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-title\"\n className={cn('leading-none font-semibold', className)}\n {...props}\n />\n );\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-description\"\n className={cn('text-sm', className)}\n {...props}\n />\n );\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-content\"\n className={cn('px-6', className)}\n {...props}\n />\n );\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-footer\"\n className={cn('flex items-center px-6', className)}\n {...props}\n />\n );\n}\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardDescription,\n CardContent,\n};\n"],"mappings":"gFAUI,cAAAA,MAAA,oBAFJ,SAASC,EAAK,CAAE,UAAAC,EAAW,UAAAC,EAAY,MAAO,GAAGC,CAAM,EAAc,CACnE,OACEJ,EAAC,OACC,YAAU,OACV,UAAWK,EACT,0GACAF,IAAc,MAAQ,gBAAkB,gBACxCD,CACF,EACC,GAAGE,EACN,CAEJ,CAZSE,EAAAL,EAAA,QAcT,SAASM,EAAW,CAAE,UAAAL,EAAW,GAAGE,CAAM,EAAgC,CACxE,OACEJ,EAAC,OACC,YAAU,cACV,UAAWK,EAAG,6BAA8BH,CAAS,EACpD,GAAGE,EACN,CAEJ,CARSE,EAAAC,EAAA,cAUT,SAASC,EAAU,CAAE,UAAAN,EAAW,GAAGE,CAAM,EAAgC,CACvE,OACEJ,EAAC,OACC,YAAU,aACV,UAAWK,EAAG,6BAA8BH,CAAS,EACpD,GAAGE,EACN,CAEJ,CARSE,EAAAE,EAAA,aAUT,SAASC,EAAgB,CAAE,UAAAP,EAAW,GAAGE,CAAM,EAAgC,CAC7E,OACEJ,EAAC,OACC,YAAU,mBACV,UAAWK,EAAG,UAAWH,CAAS,EACjC,GAAGE,EACN,CAEJ,CARSE,EAAAG,EAAA,mBAUT,SAASC,EAAY,CAAE,UAAAR,EAAW,GAAGE,CAAM,EAAgC,CACzE,OACEJ,EAAC,OACC,YAAU,eACV,UAAWK,EAAG,OAAQH,CAAS,EAC9B,GAAGE,EACN,CAEJ,CARSE,EAAAI,EAAA,eAUT,SAASC,EAAW,CAAE,UAAAT,EAAW,GAAGE,CAAM,EAAgC,CACxE,OACEJ,EAAC,OACC,YAAU,cACV,UAAWK,EAAG,yBAA0BH,CAAS,EAChD,GAAGE,EACN,CAEJ,CARSE,EAAAK,EAAA","names":["jsx","Card","className","direction","props","cn","__name","CardHeader","CardTitle","CardDescription","CardContent","CardFooter"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as i}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as i}from"./chunk-3LOVCTCN.js";import{a as s}from"./chunk-P37U34EQ.js";import*as n from"react";import{Drawer as r}from"vaul";import{jsx as a,jsxs as l}from"react/jsx-runtime";var d=s(({shouldScaleBackground:e=!0,...t})=>a(r.Root,{shouldScaleBackground:e,...t}),"Drawer");d.displayName="Drawer";var N=r.Trigger,f=r.Portal,P=r.Close,m=n.forwardRef(({className:e,...t},o)=>a(r.Overlay,{ref:o,className:i("fixed inset-0 z-50 bg-black/80",e),...t}));m.displayName=r.Overlay.displayName;var D=n.forwardRef(({className:e,children:t,showHandle:o=!0,...c},p)=>l(f,{children:[a(m,{}),l(r.Content,{ref:p,className:i("fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border bg-background",e),...c,children:[o&&a("div",{className:"mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted"}),t]})]}));D.displayName="DrawerContent";var w=s(({className:e,...t})=>a("div",{className:i("grid gap-1.5 p-4 text-center sm:text-left",e),...t}),"DrawerHeader");w.displayName="DrawerHeader";var R=s(({className:e,...t})=>a("div",{className:i("mt-auto flex flex-col gap-2 p-4",e),...t}),"DrawerFooter");R.displayName="DrawerFooter";var u=n.forwardRef(({className:e,...t},o)=>a(r.Title,{ref:o,className:i("text-lg font-semibold leading-none tracking-tight",e),...t}));u.displayName=r.Title.displayName;var g=n.forwardRef(({className:e,...t},o)=>a(r.Description,{ref:o,className:i("text-sm text-muted-foreground",e),...t}));g.displayName=r.Description.displayName;export{d as a,N as b,P as c,D as d,w as e,u as f,g};
|
|
2
|
+
//# sourceMappingURL=chunk-77AF2QOD.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as l}from"./chunk-ILMVHOL2.js";import{a as p}from"./chunk-MDSGLUUB.js";import{a as i}from"./chunk-Y4VNFI7K.js";import{b as m}from"./chunk-CSK44J23.js";import{b as a}from"./chunk-3LOVCTCN.js";import{a as o}from"./chunk-P37U34EQ.js";import{Info as f}from"lucide-react";import{Fragment as d,jsx as e,jsxs as s}from"react/jsx-runtime";function B({contributionsTotal:u,currency:n,contributionsBreakdown:r}){return s("div",{children:[s("div",{className:"flex justify-between items-center mb-2",children:[e("h3",{className:"font-medium text-primary-foreground",children:"Employer Contributions"}),e("span",{className:"font-semibold text-lg",children:a(u,n)})]}),r?s(d,{children:[e(p,{className:"mb-3"}),e("div",{className:"space-y-3 pl-2",children:r.map((t,c)=>s("div",{className:"flex justify-between items-start text-sm",children:[s("div",{className:"flex items-start gap-2",children:[e("span",{children:t.name}),t.description&&e(l,{content:s(d,{children:[e("span",{children:t.description})," ",t.zendesk_article_url&&e(i,{zendeskId:Number(t.zendesk_article_id),children:"Learn more"})]}),children:s(m,{variant:"ghost",size:"icon",className:"h-4 w-4 p-0",children:[e(f,{className:"h-3 w-3 text-gray-400"}),e("span",{className:"sr-only",children:"Info"})]})})]}),e("span",{children:a(t.amount,n)})]},c))})]}):null]})}o(B,"CostCalculatorContributionsBreakdown");export{B as a};
|
|
2
|
+
//# sourceMappingURL=chunk-7TIIT23F.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/CostCalculator/Results/CostCalculatorContributionsBreakdown.tsx"],"sourcesContent":["import { Info } from 'lucide-react';\n\nimport { BasicTooltip } from '@/src/components/ui/basic-tooltip';\n\nimport { Button } from '@/src/components/ui/button';\nimport { Separator } from '@/src/components/ui/separator';\nimport { formatCurrency } from '@/src/lib/utils';\nimport { ZendeskTriggerButton } from '@/src/components/shared/zendesk-drawer/ZendeskTriggerButton';\n\ntype CostCalculatorContributionsBreakdownProps = {\n contributionsTotal: number;\n currency: string;\n contributionsBreakdown:\n | {\n name: string;\n description: string | null;\n amount: number;\n zendesk_article_url: string | null;\n zendesk_article_id: string | null;\n }[]\n | undefined;\n};\n\nexport function CostCalculatorContributionsBreakdown({\n contributionsTotal,\n currency,\n contributionsBreakdown,\n}: CostCalculatorContributionsBreakdownProps) {\n return (\n <div>\n <div className=\"flex justify-between items-center mb-2\">\n <h3 className=\"font-medium text-primary-foreground\">\n Employer Contributions\n </h3>\n <span className=\"font-semibold text-lg\">\n {formatCurrency(contributionsTotal, currency)}\n </span>\n </div>\n {contributionsBreakdown ? (\n <>\n <Separator className=\"mb-3\" />\n <div className=\"space-y-3 pl-2\">\n {contributionsBreakdown.map((contribution, index) => (\n <div\n key={index}\n className=\"flex justify-between items-start text-sm\"\n >\n <div className=\"flex items-start gap-2\">\n <span>{contribution.name}</span>\n {contribution.description && (\n <BasicTooltip\n content={\n <>\n <span>{contribution.description}</span>{' '}\n {contribution.zendesk_article_url && (\n <ZendeskTriggerButton\n zendeskId={Number(\n contribution.zendesk_article_id,\n )}\n >\n Learn more\n </ZendeskTriggerButton>\n )}\n </>\n }\n >\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"h-4 w-4 p-0\"\n >\n <Info className=\"h-3 w-3 text-gray-400\" />\n <span className=\"sr-only\">Info</span>\n </Button>\n </BasicTooltip>\n )}\n </div>\n <span>{formatCurrency(contribution.amount, currency)}</span>\n </div>\n ))}\n </div>\n </>\n ) : null}\n </div>\n );\n}\n"],"mappings":"gPAAA,OAAS,QAAAA,MAAY,eA8Bf,OAsBkB,YAAAC,EArBhB,OAAAC,EADF,QAAAC,MAAA,oBAPC,SAASC,EAAqC,CACnD,mBAAAC,EACA,SAAAC,EACA,uBAAAC,CACF,EAA8C,CAC5C,OACEJ,EAAC,OACC,UAAAA,EAAC,OAAI,UAAU,yCACb,UAAAD,EAAC,MAAG,UAAU,sCAAsC,kCAEpD,EACAA,EAAC,QAAK,UAAU,wBACb,SAAAM,EAAeH,EAAoBC,CAAQ,EAC9C,GACF,EACCC,EACCJ,EAAAF,EAAA,CACE,UAAAC,EAACO,EAAA,CAAU,UAAU,OAAO,EAC5BP,EAAC,OAAI,UAAU,iBACZ,SAAAK,EAAuB,IAAI,CAACG,EAAcC,IACzCR,EAAC,OAEC,UAAU,2CAEV,UAAAA,EAAC,OAAI,UAAU,yBACb,UAAAD,EAAC,QAAM,SAAAQ,EAAa,KAAK,EACxBA,EAAa,aACZR,EAACU,EAAA,CACC,QACET,EAAAF,EAAA,CACE,UAAAC,EAAC,QAAM,SAAAQ,EAAa,YAAY,EAAQ,IACvCA,EAAa,qBACZR,EAACW,EAAA,CACC,UAAW,OACTH,EAAa,kBACf,EACD,sBAED,GAEJ,EAGF,SAAAP,EAACW,EAAA,CACC,QAAQ,QACR,KAAK,OACL,UAAU,cAEV,UAAAZ,EAACa,EAAA,CAAK,UAAU,wBAAwB,EACxCb,EAAC,QAAK,UAAU,UAAU,gBAAI,GAChC,EACF,GAEJ,EACAA,EAAC,QAAM,SAAAM,EAAeE,EAAa,OAAQJ,CAAQ,EAAE,IAjChDK,CAkCP,CACD,EACH,GACF,EACE,MACN,CAEJ,CA9DgBK,EAAAZ,EAAA","names":["Info","Fragment","jsx","jsxs","CostCalculatorContributionsBreakdown","contributionsTotal","currency","contributionsBreakdown","formatCurrency","Separator","contribution","index","BasicTooltip","ZendeskTriggerButton","Button","Info","__name"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as r}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as r}from"./chunk-CSLZUVU4.js";import{a}from"./chunk-R7L6CI5J.js";import{a as c}from"./chunk-DHT7HDHC.js";import{a as e}from"./chunk-GBD3OCAW.js";import{a as m}from"./chunk-N7PSO5ZD.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-AXU5ZCUE.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as r}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b as r}from"./chunk-3LOVCTCN.js";import{a as o}from"./chunk-P37U34EQ.js";import{jsx as t,jsxs as e}from"react/jsx-runtime";function n({totalCost:a,currency:s}){return t("div",{className:"pt-2 mt-4 border-t-2 border-gray-200",children:e("div",{className:"flex justify-between items-center",children:[t("h3",{className:"font-bold text-primary-foreground-800",children:"Total Cost"}),t("span",{className:"font-bold text-xl",children:r(a,s)})]})})}o(n,"CostCalculatorTotalCost");export{n as a};
|
|
2
|
+
//# sourceMappingURL=chunk-BDZEPXIS.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as g}from"./chunk-PGWKJ6FK.js";import{d as f,e as w}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b as g}from"./chunk-PGWKJ6FK.js";import{d as f,e as w}from"./chunk-47VYBPE2.js";import{a as m}from"./chunk-QW4JPW6J.js";import{b as y}from"./chunk-3ZWDIEEM.js";import{b as E}from"./chunk-CSK44J23.js";import{a}from"./chunk-P37U34EQ.js";import{jsx as R}from"react/jsx-runtime";function A({onSubmit:S,onSuccess:d,onError:o,render:u,...r}){let{components:I}=y(),{onboardingBag:t,setCreditScore:c}=g(),n=f(),i=w(),{mutateAsync:b}=m(n),{mutateAsync:_}=m(i),l=a(async()=>{try{if(await S?.(),t.creditRiskStatus==="deposit_required"&&t.employmentId&&t.employment?.status&&!t.isEmploymentReadOnly){let e=await _({employment_slug:t.employmentId});if(e.data){await d?.({data:e.data,employmentStatus:"created_awaiting_reserve"}),c?.(s=>({...s,showReserveInvoice:!0})),t.refetchEmployment();return}e.error&&o?.({error:e.error,rawError:e.rawError,fieldErrors:[]})}else if(t.employmentId){let e=await b({employment_id:t.employmentId});if(e.data){await d?.({data:e.data,employmentStatus:"invited"}),c?.(s=>({...s,showInviteSuccessful:!0})),t.refetchEmployment();return}e.error&&o?.({error:e.error,rawError:e.rawError,fieldErrors:[]})}}catch(e){o?.({error:e,rawError:e,fieldErrors:[]})}},"handleSubmit"),p=t.creditRiskStatus==="deposit_required"&&t.employment?.status&&!t.isEmploymentReadOnly,v=I?.button;return v?R(v,{...r,disabled:n.isPending||i.isPending||r.disabled,onClick:e=>{l(),r.onClick?.(e)},children:u({employmentStatus:p?"created_awaiting_reserve":"invited"})}):R(E,{...r,disabled:n.isPending||i.isPending||r.disabled,onClick:()=>{l()},children:u({employmentStatus:p?"created_awaiting_reserve":"invited"})})}a(A,"OnboardingInvite");export{A as a};
|
|
2
|
+
//# sourceMappingURL=chunk-BY5S6EQJ.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as t}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as t}from"./chunk-3LOVCTCN.js";import{a as e}from"./chunk-P37U34EQ.js";import{jsx as o}from"react/jsx-runtime";function a({className:i,type:r,...n}){return o("input",{type:r,"data-slot":"input",className:t("shadow-xs border-input file:text-foreground placeholder:text-muted-foreground flex h-9 w-full min-w-0 rounded-xl border bg-transparent px-4 py-7 text-sm transition-[color] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-focused","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",i),...n})}e(a,"Input");export{a};
|
|
2
|
+
//# sourceMappingURL=chunk-CHSULXMN.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as s}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as s}from"./chunk-DVQO5MHI.js";import{b as t}from"./chunk-PGWKJ6FK.js";import{b as e}from"./chunk-QW4JPW6J.js";import{a as i}from"./chunk-P37U34EQ.js";import{jsx as c}from"react/jsx-runtime";function S({onSubmit:m,onSuccess:d,onError:a}){let{onboardingBag:o}=t(),l=i(async n=>{try{await m?.(o.parseFormValues(n));let r=await o.onSubmit(n);if(r?.data){await d?.(r?.data),o?.next();return}if(r?.error){let p=e(r?.fieldErrors||[],o.meta?.fields?.basic_information);a?.({error:r?.error,rawError:r?.rawError,fieldErrors:p})}}catch(r){a?.({error:r,rawError:r,fieldErrors:[]})}},"handleSubmit"),f=o.stepState.values?.basic_information||o.initialValues.basic_information;return c(s,{defaultValues:f,onSubmit:l})}i(S,"BasicInformationStep");export{S as a};
|
|
2
|
+
//# sourceMappingURL=chunk-CS3U6LJU.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as e}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as e}from"./chunk-3LOVCTCN.js";import{a as t}from"./chunk-P37U34EQ.js";import{Slot as i}from"@radix-ui/react-slot";import{cva as d}from"class-variance-authority";import{jsx as p}from"react/jsx-runtime";var u=d("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-[color,box-shadow] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none aria-invalid:ring-destructive/20 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",destructive:"bg-destructive text-white shadow-xs hover:bg-destructive/90",outline:"border border-input bg-background shadow-xs",secondary:"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-link-button-primary underline-offset-4 hover:underline button-link"},size:{default:"h-9 px-4 py-7 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9",link:"px-0"}},defaultVariants:{variant:"default",size:"default"}});function b({className:o,variant:n,size:r,asChild:a=!1,...s}){return p(a?i:"button",{"data-slot":"button",className:e(u({variant:n,size:r,className:o}),"RemoteFlows__Button"),...s})}t(b,"Button");export{u as a,b};
|
|
2
|
+
//# sourceMappingURL=chunk-CSK44J23.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as F}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as F}from"./chunk-SUQURI2J.js";import{b as l}from"./chunk-CFIJKJXD.js";import{f,g as p}from"./chunk-GAOBYAJE.js";import{c as u}from"./chunk-MXFDOIUA.js";import{b as _}from"./chunk-TVZAFTPT.js";import{a as r}from"./chunk-P37U34EQ.js";import{useEffect as R}from"react";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:b,onError:m,onSuccess:A}){let{formId:C,contractAmendment:{checkFieldUpdates:h,fields:s,onSubmit:S,stepState:g,initialValues:i,handleValidation:y}}=_(),V=l(y),e=f({resolver:V,defaultValues:g.values?.form||i,shouldUnregister:!0,mode:"onBlur"});R(()=>{let t=e?.watch(o=>{(Object.keys(e.formState.dirtyFields).length>0||e.formState.isDirty)&&h(o)});return()=>t?.unsubscribe()},[]);let v=r(async t=>{let o=!1;for(let[c,P]of Object.entries(t))if(!w.includes(c)&&i[c]!==P){o=!0;break}if(!o)return m?.({message:"no_changes_detected_contract_details"});let d=u(t,s,{isPartialValidation:!1});await b?.(d);let n=await S(t);n.error?m?.(n.error):await A?.(n.data)},"handleSubmit");return a(p,{...e,children:a("form",{id:C,"data-testid":"contract-amendment-form",onSubmit:e.handleSubmit(v),className:"space-y-4 RemoteFlows__ContractAmendmentForm",children:a(F,{fields:s})})})}r(x,"ContractAmendmentForm");export{x as a};
|
|
2
|
+
//# sourceMappingURL=chunk-CSLZUVU4.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as v}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as v}from"./chunk-GGBEM452.js";import{a as A}from"./chunk-QW4JPW6J.js";import{a as l,b as _}from"./chunk-AYJ63EZH.js";import{c as E,n as w,x as b}from"./chunk-EGQJ7UBR.js";import{a as M}from"./chunk-PJBAQZ6G.js";import{d}from"./chunk-3ZWDIEEM.js";import{a as j,c as S}from"./chunk-MXFDOIUA.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 E({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?j(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=>w({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=>b({client:r,headers:{Authorization:""},body:e,query:{...n}}),"mutationFn")})},"useAutomatableContractAmendmentMutation"),ae=t(({employmentId:a,countryCode:r,options:n})=>{let{fieldValues:e,setFieldValues:u,stepState:m,nextStep:o,previousStep:c}=M(l),{data:s,isLoading: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-DHT7HDHC.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as d}from"./chunk-MRYRNB7Y.js";import{a as f}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b as d}from"./chunk-MRYRNB7Y.js";import{a as f}from"./chunk-SUQURI2J.js";import{b as s}from"./chunk-CFIJKJXD.js";import{f as a,g as l}from"./chunk-GAOBYAJE.js";import{a as n}from"./chunk-P37U34EQ.js";import{useEffect as T}from"react";import{jsx as e}from"react/jsx-runtime";function A({fields:m,onSubmit:F}){let{formId:u,terminationBag:o}=d(),c=s(o.handleValidation),i=a({resolver:c,defaultValues:o?.initialValues,shouldUnregister:!1,mode:"onBlur"});T(()=>{let y=i?.watch(r=>{Object.keys(r).some(t=>r[t]!==o?.initialValues?.[t])&&o?.checkFieldUpdates(r)});return()=>y?.unsubscribe()},[]);let p=m||(o?.fields??[]);return e(l,{...i,children:e("form",{id:u,onSubmit:i.handleSubmit(F),className:"space-y-4 RemoteFlows__TerminationForm",children:e(f,{fields:p})})})}n(A,"TerminationForm");export{A as a};
|
|
2
|
+
//# sourceMappingURL=chunk-DOILOCWU.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as i}from"./chunk-XSHHMBMT.js";import{a as o}from"./chunk-JODJFARP.js";import{a as m}from"./chunk-W5DG5WWJ.js";import{a as e}from"./chunk-VX2UC3HG.js";var p={employee_communication:o,termination_details:e,paid_time_off:m,additional_information:i};export{p as a};
|
|
2
|
+
//# sourceMappingURL=chunk-DR7VGNO2.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b}from"./chunk-PGWKJ6FK.js";import{a as u}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b}from"./chunk-PGWKJ6FK.js";import{a as u}from"./chunk-SUQURI2J.js";import{b as f}from"./chunk-CFIJKJXD.js";import{b as y}from"./chunk-QW4JPW6J.js";import{f as p,g as F}from"./chunk-GAOBYAJE.js";import{a as m}from"./chunk-P37U34EQ.js";import{useEffect as S}from"react";import{jsx as d}from"react/jsx-runtime";function N({defaultValues:l,onSubmit:g,components:E}){let{formId:w,onboardingBag:o}=b(),h=f(o.handleValidation),r=p({resolver:h,defaultValues:l,shouldUnregister:!1,mode:"onBlur"});S(()=>{o.employmentId&&o?.checkFieldUpdates(r.getValues())},[]),S(()=>{let t=r?.watch(e=>{Object.keys(e).some(i=>e[i]!==l[i])&&o?.checkFieldUpdates(e)});return()=>t?.unsubscribe()},[]);let k=m(async(t,e)=>{let s=e?.nativeEvent;if(s?.isDraftSubmission){let{onSuccess:i,onError:c}=s.draftCallbacks;try{if(!await r.trigger())return;let n=await o.onSubmit(t);if(n?.data)i?.();else if(n?.error){let B=o.stepState.currentStep.name,P=o.meta?.fields?.[B],O=y(n?.fieldErrors||[],P);c?.({error:n.error,rawError:n.rawError,fieldErrors:O})}}catch(a){c?.({error:a,rawError:a,fieldErrors:[]})}}else g(t)},"handleSubmit");return d(F,{...r,children:d("form",{id:w,onSubmit:r.handleSubmit(k),className:"space-y-4 RemoteFlows__OnboardingForm",children:d(u,{components:E,fields:o.fields,fieldsets:o.meta.fieldsets,fieldValues:o.fieldValues})})})}m(N,"OnboardingForm");export{N as a};
|
|
2
|
+
//# sourceMappingURL=chunk-DVQO5MHI.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as s}from"./chunk-PGWKJ6FK.js";import{b as i}from"./chunk-3ZWDIEEM.js";import{b as u}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b as s}from"./chunk-PGWKJ6FK.js";import{b as i}from"./chunk-3ZWDIEEM.js";import{b as u}from"./chunk-CSK44J23.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-EE54SK65.js.map
|
|
@@ -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"},{scheme:"bearer",type:"http"}],url:"/v1/contract-amendments/schema",...e}),"getShowContractAmendmentSchema");var m=t(e=>(e.client??r).post({security:[{scheme:"bearer",type:"http"}],url:"/v1/currency-converter/raw",...e,headers:{"Content-Type":"application/json",...e?.headers}}),"postConvertRawCurrencyConverter");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"),y=t(e=>(e.client??r).get({security:[{scheme:"bearer",type:"http"},{scheme:"bearer",type:"http"}],url:"/v1/help-center-articles/{id}",...e}),"getShowHelpCenterArticle");var E=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 u=t(e=>(e.client??r).get({security:[{scheme:"bearer",type:"http"},{scheme:"bearer",type:"http"}],url:"/v1/employments/{employment_id}/benefit-offers",...e}),"getIndexBenefitOffer"),w=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 C=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 T=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 O=t(e=>(e.client??r).post({security:[{scheme:"bearer",type:"http"},{scheme:"bearer",type:"http"}],url:"/v1/risk-reserve",...e,headers:{"Content-Type":"application/json",...e?.headers}}),"postCreateRiskReserve"),x=t(e=>(e.client??r).get({security:[{scheme:"bearer",type:"http"}],url:"/v1/companies/{company_id}",...e}),"getShowCompany");var f=t(e=>(e.client??r).post({security:[{scheme:"bearer",type:"http"},{scheme:"bearer",type:"http"}],url:"/v1/contract-amendments",...e,headers:{"Content-Type":"application/json",...e?.headers}}),"postCreateContractAmendment");var b=t(e=>(e.client??r).get({security:[{scheme:"bearer",type:"http"},{scheme:"bearer",type:"http"}],url:"/v1/countries/{country_code}/{form}",...e}),"getShowFormCountry");var P=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 R=t(e=>(e.client??r).get({security:[{scheme:"bearer",type:"http"},{scheme:"bearer",type:"http"}],url:"/v1/employments/{employment_id}/benefit-offers/schema",...e}),"getShowSchema");var D=t(e=>(e.client??r).get({security:[{scheme:"bearer",type:"http"}],url:"/v1/employments/{employment_id}",...e}),"getShowEmployment"),G=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 v=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).post({security:[{scheme:"bearer",type:"http"},{scheme:"bearer",type:"http"}],url:"/v1/employments/{employment_id}/contract-eligibility",...e,headers:{"Content-Type":"application/json",...e?.headers}}),"postCreateContractEligibility"),I=t(e=>(e.client??r).get({security:[{scheme:"bearer",type:"http"}],url:"/v1/countries",...e}),"getSupportedCountry");var S=t(e=>(e.client??r).post({security:[{scheme:"bearer",type:"http"}],url:"/v1/currency-converter/effective",...e,headers:{"Content-Type":"application/json",...e?.headers}}),"postConvertWithSpreadCurrencyConverter");var U=t(e=>(e.client??r).post({security:[{scheme:"bearer",type:"http"},{scheme:"bearer",type:"http"}],url:"/v1/contract-amendments/automatable",...e,headers:{"Content-Type":"application/json",...e?.headers}}),"postAutomatableContractAmendment");var k=t(e=>(e?.client??r).get({security:[{scheme:"bearer",type:"http"},{scheme:"bearer",type:"http"}],url:"/v1/company-currencies",...e}),"getIndexCompanyCurrency");var B=t(e=>(e.client??r).post({security:[{scheme:"bearer",type:"http"},{scheme:"bearer",type:"http"}],url:"/v1/employments/{employment_id}/invite",...e}),"postInviteEmploymentInvitation");var q=t(e=>(e.client??r).get({security:[{scheme:"bearer",type:"http"},{scheme:"bearer",type:"http"}],url:"/v1/timeoff",...e}),"getIndexTimeoff");export{r as a,c as b,h as c,m as d,d as e,y as f,E as g,u as h,w as i,C as j,T as k,O as l,x as m,f as n,b as o,P as p,R as q,D as r,G as s,v as t,g as u,I as v,S as w,U as x,k as y,B as z,q as A};
|
|
2
|
+
//# sourceMappingURL=chunk-EGQJ7UBR.js.map
|