@remoteoss/remote-flows 0.4.0-alpha.5 → 0.4.0-alpha.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -0
- package/dist/chunk-47DB6L3S.js +2 -0
- package/dist/chunk-47DB6L3S.js.map +1 -0
- package/dist/chunk-4LMZ7PNB.js +2 -0
- package/dist/chunk-4LMZ7PNB.js.map +1 -0
- package/dist/chunk-4YNOSVYQ.js +2 -0
- package/dist/chunk-4YNOSVYQ.js.map +1 -0
- package/dist/chunk-5JH7GALK.js +2 -0
- package/dist/chunk-5JH7GALK.js.map +1 -0
- package/dist/chunk-6T3A6GWH.js +2 -0
- package/dist/chunk-6T3A6GWH.js.map +1 -0
- package/dist/chunk-6W5KUXEP.js +2 -0
- package/dist/chunk-6W5KUXEP.js.map +1 -0
- package/dist/chunk-75YWGTNG.js +2 -0
- package/dist/chunk-75YWGTNG.js.map +1 -0
- package/dist/chunk-CAKNEET3.js +2 -0
- package/dist/chunk-CAKNEET3.js.map +1 -0
- package/dist/chunk-DBIPVIBO.js +2 -0
- package/dist/{chunk-PX72OIDO.js.map → chunk-DBIPVIBO.js.map} +1 -1
- package/dist/chunk-DIR3VPZR.js +2 -0
- package/dist/chunk-DIR3VPZR.js.map +1 -0
- package/dist/chunk-EMVYCKDC.js +2 -0
- package/dist/{chunk-56BNVYTD.js.map → chunk-EMVYCKDC.js.map} +1 -1
- package/dist/chunk-ENMJ56WK.js +2 -0
- package/dist/chunk-ENMJ56WK.js.map +1 -0
- package/dist/chunk-FK3IA6VY.js +2 -0
- package/dist/{chunk-ASMIUBMG.js.map → chunk-FK3IA6VY.js.map} +1 -1
- package/dist/chunk-HSY5OO7D.js +2 -0
- package/dist/chunk-HSY5OO7D.js.map +1 -0
- package/dist/chunk-I5THC7XD.js +2 -0
- package/dist/chunk-I5THC7XD.js.map +1 -0
- package/dist/chunk-IAHI4OUM.js +2 -0
- package/dist/chunk-IAHI4OUM.js.map +1 -0
- package/dist/chunk-JGUJV45B.js +2 -0
- package/dist/chunk-JGUJV45B.js.map +1 -0
- package/dist/chunk-MCGIIIED.js +2 -0
- package/dist/chunk-MCGIIIED.js.map +1 -0
- package/dist/chunk-N6RPXNGN.js +2 -0
- package/dist/chunk-N6RPXNGN.js.map +1 -0
- package/dist/chunk-NEFNFYRS.js +2 -0
- package/dist/{chunk-GFBF55NR.js.map → chunk-NEFNFYRS.js.map} +1 -1
- package/dist/chunk-NPRFMPTB.js +2 -0
- package/dist/chunk-NPRFMPTB.js.map +1 -0
- package/dist/{chunk-NVMRRBRE.js → chunk-O3QLBSMV.js} +2 -2
- package/dist/chunk-OIXUBXFU.js +2 -0
- package/dist/{chunk-GMGKIQLI.js.map → chunk-OIXUBXFU.js.map} +1 -1
- package/dist/chunk-ONZPO4GN.js +2 -0
- package/dist/{chunk-IDSJI7KQ.js.map → chunk-ONZPO4GN.js.map} +1 -1
- package/dist/chunk-P5VTRXW3.js +2 -0
- package/dist/chunk-P5VTRXW3.js.map +1 -0
- package/dist/chunk-PH5CQN7X.js +2 -0
- package/dist/{chunk-MESREYTZ.js.map → chunk-PH5CQN7X.js.map} +1 -1
- package/dist/chunk-PPRTHZVC.js +2 -0
- package/dist/chunk-PPRTHZVC.js.map +1 -0
- package/dist/chunk-Q6U6K2S6.js +2 -0
- package/dist/chunk-Q6U6K2S6.js.map +1 -0
- package/dist/chunk-QH7YYTRC.js +2 -0
- package/dist/{chunk-6UHKKHB6.js.map → chunk-QH7YYTRC.js.map} +1 -1
- package/dist/chunk-QHN4PPHD.js +2 -0
- package/dist/{chunk-3FVI5JIC.js.map → chunk-QHN4PPHD.js.map} +1 -1
- package/dist/chunk-R7Z2AN42.js +2 -0
- package/dist/chunk-R7Z2AN42.js.map +1 -0
- package/dist/chunk-RBYMQQZC.js +2 -0
- package/dist/chunk-RBYMQQZC.js.map +1 -0
- package/dist/{chunk-VT2PJJC7.js → chunk-RJGJMVJP.js} +2 -2
- package/dist/chunk-SNMWJPBW.js +2 -0
- package/dist/chunk-SNMWJPBW.js.map +1 -0
- package/dist/chunk-SQ73CU3B.js +2 -0
- package/dist/chunk-SQ73CU3B.js.map +1 -0
- package/dist/{chunk-N25EBX6R.js → chunk-TPRGCMIZ.js} +2 -2
- package/dist/{chunk-N25EBX6R.js.map → chunk-TPRGCMIZ.js.map} +1 -1
- package/dist/chunk-U4M5QBBG.js +2 -0
- package/dist/chunk-U4M5QBBG.js.map +1 -0
- package/dist/chunk-VH5XUW4V.js +2 -0
- package/dist/chunk-VH5XUW4V.js.map +1 -0
- package/dist/chunk-VKGIGQWC.js +2 -0
- package/dist/chunk-VKGIGQWC.js.map +1 -0
- package/dist/{chunk-PBUHBIVK.js → chunk-VUCFEWCR.js} +2 -2
- package/dist/{chunk-PBUHBIVK.js.map → chunk-VUCFEWCR.js.map} +1 -1
- package/dist/chunk-WF4FKBRR.js +2 -0
- package/dist/chunk-WF4FKBRR.js.map +1 -0
- package/dist/chunk-WU77JQYU.js +2 -0
- package/dist/chunk-WU77JQYU.js.map +1 -0
- package/dist/chunk-X2LVNPXB.js +2 -0
- package/dist/chunk-X2LVNPXB.js.map +1 -0
- package/dist/{chunk-OLJ2S6A6.js → chunk-YG5FFTC4.js} +1 -1
- package/dist/chunk-YG5FFTC4.js.map +1 -0
- package/dist/chunk-YLWCN7R2.js +2 -0
- package/dist/chunk-YLWCN7R2.js.map +1 -0
- package/dist/{chunk-A36XQBXQ.js → chunk-YM5PKRUW.js} +2 -2
- package/dist/chunk-ZJT4Y4TA.js +2 -0
- package/dist/chunk-ZJT4Y4TA.js.map +1 -0
- package/dist/flows/ContractAmendment/ContractAmendmentBack.d.ts +3 -2
- package/dist/flows/ContractAmendment/ContractAmendmentBack.js +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.d.ts +2 -2
- package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.js +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentFlow.d.ts +4 -3
- package/dist/flows/ContractAmendment/ContractAmendmentFlow.js +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentForm.d.ts +2 -2
- package/dist/flows/ContractAmendment/ContractAmendmentForm.js +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentSubmit.d.ts +3 -2
- package/dist/flows/ContractAmendment/ContractAmendmentSubmit.js +1 -1
- package/dist/flows/ContractAmendment/context.d.ts +3 -3
- package/dist/flows/ContractAmendment/hooks.d.ts +2 -2
- package/dist/flows/ContractAmendment/hooks.js +1 -1
- package/dist/flows/ContractAmendment/index.d.ts +2 -1
- package/dist/flows/ContractAmendment/index.js +1 -1
- package/dist/flows/ContractAmendment/utils.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorDisclaimer.d.ts +2 -2
- package/dist/flows/CostCalculator/CostCalculatorDisclaimer.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorFlow.d.ts +4 -3
- package/dist/flows/CostCalculator/CostCalculatorFlow.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorForm.d.ts +8 -4
- package/dist/flows/CostCalculator/CostCalculatorForm.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorResetButton.d.ts +3 -2
- package/dist/flows/CostCalculator/CostCalculatorResetButton.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorSubmitButton.d.ts +3 -2
- package/dist/flows/CostCalculator/CostCalculatorSubmitButton.js +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorBenefitsBreakdown.d.ts +2 -2
- package/dist/flows/CostCalculator/Results/CostCalculatorBenefitsBreakdown.js +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorContributionsBreakdown.d.ts +2 -2
- package/dist/flows/CostCalculator/Results/CostCalculatorContributionsBreakdown.js +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorGrossSalary.d.ts +2 -2
- package/dist/flows/CostCalculator/Results/CostCalculatorGrossSalary.js +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorResults.d.ts +2 -2
- package/dist/flows/CostCalculator/Results/CostCalculatorResults.js +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorResultsChart.d.ts +2 -2
- package/dist/flows/CostCalculator/Results/CostCalculatorResultsChart.js +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorResultsChart.js.map +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorTotalCost.d.ts +2 -2
- package/dist/flows/CostCalculator/Results/CostCalculatorTotalCost.js +1 -1
- package/dist/flows/CostCalculator/context.d.ts +8 -5
- package/dist/flows/CostCalculator/context.js +1 -1
- package/dist/flows/CostCalculator/hooks.d.ts +3 -2
- package/dist/flows/CostCalculator/hooks.js +1 -1
- package/dist/flows/CostCalculator/index.d.ts +4 -0
- package/dist/flows/CostCalculator/index.js +1 -1
- package/dist/flows/CostCalculator/types.d.ts +11 -1
- package/dist/flows/CostCalculator/utils.d.ts +7 -3
- package/dist/flows/CostCalculator/utils.js +1 -1
- package/dist/flows/Onboarding/BasicInformationStep.d.ts +2 -2
- package/dist/flows/Onboarding/BasicInformationStep.js +1 -1
- package/dist/flows/Onboarding/BenefitsStep.d.ts +4 -3
- package/dist/flows/Onboarding/BenefitsStep.js +1 -1
- package/dist/flows/Onboarding/ContractDetailsStep.d.ts +2 -2
- package/dist/flows/Onboarding/ContractDetailsStep.js +1 -1
- package/dist/flows/Onboarding/OnboardingBack.d.ts +3 -2
- package/dist/flows/Onboarding/OnboardingBack.js +1 -1
- package/dist/flows/Onboarding/OnboardingFlow.d.ts +5 -4
- package/dist/flows/Onboarding/OnboardingFlow.js +1 -1
- package/dist/flows/Onboarding/OnboardingForm.d.ts +4 -3
- package/dist/flows/Onboarding/OnboardingForm.js +1 -1
- package/dist/flows/Onboarding/OnboardingInvite.d.ts +3 -2
- package/dist/flows/Onboarding/OnboardingInvite.js +1 -1
- package/dist/flows/Onboarding/OnboardingSubmit.d.ts +3 -2
- package/dist/flows/Onboarding/OnboardingSubmit.js +1 -1
- package/dist/flows/Onboarding/SelectCountryStep.d.ts +2 -2
- package/dist/flows/Onboarding/SelectCountryStep.js +1 -1
- package/dist/flows/Onboarding/api.js +1 -1
- package/dist/flows/Onboarding/context.d.ts +3 -3
- package/dist/flows/Onboarding/hooks.d.ts +2 -2
- package/dist/flows/Onboarding/hooks.js +1 -1
- package/dist/flows/Onboarding/index.d.ts +2 -1
- package/dist/flows/Onboarding/index.js +1 -1
- package/dist/flows/Onboarding/types.d.ts +2 -1
- package/dist/flows/Termination/AdditionalDetailsForm.d.ts +2 -2
- package/dist/flows/Termination/AdditionalDetailsForm.js +1 -1
- package/dist/flows/Termination/EmployeeComunicationForm.d.ts +2 -2
- package/dist/flows/Termination/EmployeeComunicationForm.js +1 -1
- package/dist/flows/Termination/PaidTimeOffForm.d.ts +2 -2
- package/dist/flows/Termination/PaidTimeOffForm.js +1 -1
- package/dist/flows/Termination/TerminationBack.d.ts +3 -2
- package/dist/flows/Termination/TerminationBack.js +1 -1
- package/dist/flows/Termination/TerminationDetailsForm.d.ts +2 -2
- package/dist/flows/Termination/TerminationDetailsForm.js +1 -1
- package/dist/flows/Termination/TerminationFlow.d.ts +4 -3
- package/dist/flows/Termination/TerminationFlow.js +1 -1
- package/dist/flows/Termination/TerminationForm.d.ts +2 -2
- package/dist/flows/Termination/TerminationForm.js +1 -1
- package/dist/flows/Termination/TerminationSubmit.d.ts +3 -2
- package/dist/flows/Termination/TerminationSubmit.js +1 -1
- package/dist/flows/Termination/TimeOff.d.ts +3 -3
- package/dist/flows/Termination/context.d.ts +2 -2
- package/dist/flows/Termination/hooks.js +1 -1
- package/dist/flows/Termination/index.d.ts +1 -0
- package/dist/flows/Termination/index.js +1 -1
- package/dist/flows/useStepState.d.ts +2 -2
- package/dist/index.d.ts +7 -6
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/{remoteFlows-DgAmG_TD.d.ts → remoteFlows-iMN5oBtU.d.ts} +2 -1
- package/package.json +17 -3
- package/dist/chunk-2SDJ4PZ5.js +0 -2
- package/dist/chunk-2SDJ4PZ5.js.map +0 -1
- package/dist/chunk-3EQND6W7.js +0 -2
- package/dist/chunk-3EQND6W7.js.map +0 -1
- package/dist/chunk-3FVI5JIC.js +0 -2
- package/dist/chunk-4B7QPI2R.js +0 -2
- package/dist/chunk-4B7QPI2R.js.map +0 -1
- package/dist/chunk-56BNVYTD.js +0 -2
- package/dist/chunk-66UY5UHP.js +0 -2
- package/dist/chunk-66UY5UHP.js.map +0 -1
- package/dist/chunk-6A3F6JG6.js +0 -2
- package/dist/chunk-6A3F6JG6.js.map +0 -1
- package/dist/chunk-6UHKKHB6.js +0 -2
- package/dist/chunk-7CP4PNU4.js +0 -2
- package/dist/chunk-7CP4PNU4.js.map +0 -1
- package/dist/chunk-7CYG2RHP.js +0 -2
- package/dist/chunk-7CYG2RHP.js.map +0 -1
- package/dist/chunk-ASMIUBMG.js +0 -2
- package/dist/chunk-BLPOQIGB.js +0 -2
- package/dist/chunk-BLPOQIGB.js.map +0 -1
- package/dist/chunk-CIGSCITX.js +0 -2
- package/dist/chunk-CIGSCITX.js.map +0 -1
- package/dist/chunk-DGPRFQYK.js +0 -2
- package/dist/chunk-DGPRFQYK.js.map +0 -1
- package/dist/chunk-EAAIAMTY.js +0 -2
- package/dist/chunk-EAAIAMTY.js.map +0 -1
- package/dist/chunk-EAB7VHAW.js +0 -2
- package/dist/chunk-EAB7VHAW.js.map +0 -1
- package/dist/chunk-FMT2OTOL.js +0 -2
- package/dist/chunk-FMT2OTOL.js.map +0 -1
- package/dist/chunk-FQLSGKCJ.js +0 -2
- package/dist/chunk-FQLSGKCJ.js.map +0 -1
- package/dist/chunk-GFBF55NR.js +0 -2
- package/dist/chunk-GHT53KSP.js +0 -2
- package/dist/chunk-GHT53KSP.js.map +0 -1
- package/dist/chunk-GMGKIQLI.js +0 -2
- package/dist/chunk-IDSJI7KQ.js +0 -2
- package/dist/chunk-J55S4SEH.js +0 -2
- package/dist/chunk-J55S4SEH.js.map +0 -1
- package/dist/chunk-KDRQW7SO.js +0 -2
- package/dist/chunk-KDRQW7SO.js.map +0 -1
- package/dist/chunk-KH6QS5OU.js +0 -2
- package/dist/chunk-KH6QS5OU.js.map +0 -1
- package/dist/chunk-KSGPQCSG.js +0 -2
- package/dist/chunk-KSGPQCSG.js.map +0 -1
- package/dist/chunk-LRVJ53MM.js +0 -2
- package/dist/chunk-LRVJ53MM.js.map +0 -1
- package/dist/chunk-M7WCW7WD.js +0 -2
- package/dist/chunk-M7WCW7WD.js.map +0 -1
- package/dist/chunk-MESREYTZ.js +0 -2
- package/dist/chunk-MHKNAQLP.js +0 -2
- package/dist/chunk-MHKNAQLP.js.map +0 -1
- package/dist/chunk-NJPLL3RR.js +0 -2
- package/dist/chunk-NJPLL3RR.js.map +0 -1
- package/dist/chunk-OLJ2S6A6.js.map +0 -1
- package/dist/chunk-PX72OIDO.js +0 -2
- package/dist/chunk-PZKA77DU.js +0 -2
- package/dist/chunk-PZKA77DU.js.map +0 -1
- package/dist/chunk-TICIER55.js +0 -2
- package/dist/chunk-TICIER55.js.map +0 -1
- package/dist/chunk-WQHKB5T7.js +0 -2
- package/dist/chunk-WQHKB5T7.js.map +0 -1
- package/dist/chunk-X7BVA4MH.js +0 -2
- package/dist/chunk-X7BVA4MH.js.map +0 -1
- package/dist/chunk-XLFHHYVS.js +0 -2
- package/dist/chunk-XLFHHYVS.js.map +0 -1
- package/dist/chunk-Y4RTK2VE.js +0 -2
- package/dist/chunk-Y4RTK2VE.js.map +0 -1
- package/dist/chunk-Y4ZFQBM3.js +0 -2
- package/dist/chunk-Y4ZFQBM3.js.map +0 -1
- package/dist/chunk-YOC3VDC7.js +0 -2
- package/dist/chunk-YOC3VDC7.js.map +0 -1
- package/dist/chunk-ZKZDAXNJ.js +0 -2
- package/dist/chunk-ZKZDAXNJ.js.map +0 -1
- /package/dist/{chunk-NVMRRBRE.js.map → chunk-O3QLBSMV.js.map} +0 -0
- /package/dist/{chunk-VT2PJJC7.js.map → chunk-RJGJMVJP.js.map} +0 -0
- /package/dist/{chunk-A36XQBXQ.js.map → chunk-YM5PKRUW.js.map} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as P}from"./chunk-WWANHPT7.js";import{a as h}from"./chunk-2Y22JKVE.js";import{a as S}from"./chunk-XFD3ULUF.js";import{a as F}from"./chunk-S4XU4SE7.js";import{a as T}from"./chunk-G7BISHWK.js";import{a as y}from"./chunk-JRQSZHUU.js";import{b as p}from"./chunk-GMU3QGAR.js";import{a as V}from"./chunk-2URGWNSM.js";import{d as _}from"./chunk-WRDKLT4N.js";import{c as s}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as P}from"./chunk-WWANHPT7.js";import{a as h}from"./chunk-2Y22JKVE.js";import{a as S}from"./chunk-XFD3ULUF.js";import{a as F}from"./chunk-S4XU4SE7.js";import{a as T}from"./chunk-G7BISHWK.js";import{a as y}from"./chunk-JRQSZHUU.js";import{b as p}from"./chunk-GMU3QGAR.js";import{a as V}from"./chunk-2URGWNSM.js";import{d as _}from"./chunk-WRDKLT4N.js";import{c as s}from"./chunk-TPRGCMIZ.js";import{a as e}from"./chunk-AYDF3IFZ.js";import{createHeadlessForm as g,modify as x}from"@remoteoss/json-schema-form";import{useMutation as A,useQuery as K}from"@tanstack/react-query";import L from"lodash.omitby";import q from"lodash.isnull";import z from"lodash.omit";function R(o){return{confidential:"",customer_informed_employee:"",customer_informed_employee_date:"",customer_informed_employee_description:"",personal_email:"",termination_reason:void 0,reason_description:"",termination_reason_files:[],will_challenge_termination:"",will_challenge_termination_description:null,agrees_to_pto_amount:"",agrees_to_pto_amount_notes:null,acknowledge_termination_procedure:!1,additional_comments:"",proposed_termination_date:"",risk_assessment_reasons:[],timesheet_file:void 0,...o}}e(R,"buildInitialValues");var B=e(()=>{let{client:o}=_();return A({mutationFn:e(n=>p({client:o,headers:{Authorization:""},body:n}),"mutationFn")})},"useCreateTermination"),I=e(({formValues:o,jsfModify:n,step:m})=>K({queryKey:["rmt-flows-termination-schema",m],queryFn:e(()=>h[m]??S,"queryFn"),select:e(({data:u})=>{let i=u?.schema||{};if(n){let{schema:d}=x(i,n);i=d}return g(i||{},{initialValues:o||{}})},"select")}),"useTerminationSchema"),ue=e(({employmentId:o,options:n})=>{let{fieldValues:m,setFieldValues:u,stepState:i,previousStep:f,nextStep:d}=V(F),k={...i.values?.[i.currentStep.name],...m},{data:r,isLoading:w}=I({formValues:k,jsfModify:n?.jsfModify,step:i.currentStep.name}),l=g(P.data.schema),c=B(),{mutateAsync:b}=y(c);async function C(a){if(!o)throw new Error("Employment id is missing");if(r){let t=s(a,l.fields,{isPartialValidation:!0}),{customer_informed_employee:j}=t,D=j==="yes"?{employee_awareness:{date:t.customer_informed_employee_date,note:t.customer_informed_employee_description}}:void 0,H=T(t,["agrees_to_pto_amount","confidential","customer_informed_employee","will_challenge_termination"]),J=z(H,"customer_informed_employee_date","customer_informed_employee_description"),O=L({...J,...D},q);return b({employment_id:o,termination_details:O,type:"termination"})}}e(C,"onSubmit");function M(){f()}e(M,"back");function v(){d()}e(v,"next");let E=R({...i.values?.employee_communication,...i.values?.termination_details,...i.values?.paid_time_off,...i.values?.additional_information});return{employmentId:o,stepState:i,fields:r?.fields||[],isLoading:w,isSubmitting:c.isPending,initialValues:E,handleValidation:e(a=>{if(r){let t=s(a,r?.fields);return r?.handleValidation(t)}return null},"handleValidation"),checkFieldUpdates:e(a=>{if(l){let t=s(a,l?.fields,{isPartialValidation:!0});u(t)}},"checkFieldUpdates"),parseFormValues:e(a=>s(a,l.fields,{isPartialValidation:!0}),"parseFormValues"),onSubmit:C,back:M,next:v}},"useTermination");export{ue as a};
|
|
2
|
+
//# sourceMappingURL=chunk-VUCFEWCR.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/Termination/hooks.ts"],"sourcesContent":["import {\n CreateOffboardingParams,\n postCreateOffboarding,\n TerminationDetailsParams,\n} from '@/src/client';\nimport { mutationToPromise } from '@/src/lib/mutations';\nimport { Client } from '@hey-api/client-fetch';\nimport { createHeadlessForm, modify } from '@remoteoss/json-schema-form';\nimport { useMutation, useQuery } from '@tanstack/react-query';\nimport omitBy from 'lodash/omitBy';\nimport isNull from 'lodash/isNull';\nimport { parseJSFToValidate } from '@/src/components/form/utils';\nimport { JSFModify } from '@/src/flows/CostCalculator/types';\nimport { TerminationFormValues } from '@/src/flows/Termination/types';\nimport { useClient } from '@/src/context';\nimport omit from 'lodash/omit';\nimport { parseFormRadioValues } from '@/src/flows/utils';\nimport { useStepState } from '@/src/flows/useStepState';\nimport { STEPS } from '@/src/flows/Termination/utils';\nimport { defaultSchema } from '@/src/flows/Termination/json-schemas/defaultSchema';\nimport { schema } from '@/src/flows/Termination/json-schemas/schema';\nimport { jsonSchema } from '@/src/flows/Termination/json-schemas/jsonSchema';\n\nfunction buildInitialValues(\n stepsInitialValues: Partial<TerminationFormValues>,\n): TerminationFormValues {\n const initialValues: TerminationFormValues = {\n confidential: '',\n customer_informed_employee: '',\n customer_informed_employee_date: '',\n customer_informed_employee_description: '',\n personal_email: '',\n termination_reason: undefined,\n reason_description: '',\n termination_reason_files: [],\n will_challenge_termination: '',\n will_challenge_termination_description: null,\n agrees_to_pto_amount: '',\n agrees_to_pto_amount_notes: null,\n acknowledge_termination_procedure: false,\n additional_comments: '',\n proposed_termination_date: '',\n risk_assessment_reasons: [],\n timesheet_file: undefined,\n ...stepsInitialValues,\n };\n\n return initialValues;\n}\n\nconst useCreateTermination = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: (payload: CreateOffboardingParams) => {\n return postCreateOffboarding({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n body: payload,\n });\n },\n });\n};\n\nconst useTerminationSchema = ({\n formValues,\n jsfModify,\n step,\n}: {\n formValues?: TerminationFormValues;\n jsfModify?: JSFModify;\n step?: string;\n}) => {\n return useQuery({\n queryKey: ['rmt-flows-termination-schema', step],\n queryFn: () => {\n return schema[step as keyof typeof schema] ?? defaultSchema;\n },\n select: ({ data }) => {\n let jsfSchema = data?.schema || {};\n if (jsfModify) {\n const { schema } = modify(jsfSchema, jsfModify);\n jsfSchema = schema;\n }\n const form = createHeadlessForm(jsfSchema || {}, {\n initialValues: formValues || {},\n });\n return form;\n },\n });\n};\n\ntype TerminationHookProps = {\n employmentId: string;\n options?: {\n jsfModify?: JSFModify;\n };\n};\n\nexport const useTermination = ({\n employmentId,\n options,\n}: TerminationHookProps) => {\n const { fieldValues, setFieldValues, stepState, previousStep, nextStep } =\n useStepState<keyof typeof STEPS, TerminationFormValues>(STEPS);\n\n const formValues = {\n ...stepState.values?.[stepState.currentStep.name as keyof typeof STEPS], // Restore values for the current step\n ...fieldValues,\n };\n\n const { data: terminationHeadlessForm, isLoading: isLoadingTermination } =\n useTerminationSchema({\n formValues: formValues,\n jsfModify: options?.jsfModify,\n step: stepState.currentStep.name,\n });\n\n const entireTerminationSchema = createHeadlessForm(jsonSchema.data.schema);\n\n const createTermination = useCreateTermination();\n const { mutateAsync } = mutationToPromise(createTermination);\n\n async function onSubmit(values: TerminationFormValues) {\n if (!employmentId) {\n throw new Error('Employment id is missing');\n }\n\n if (terminationHeadlessForm) {\n // this is a hack because I need to validate all form values with the entire schema\n const parsedValues = parseJSFToValidate(\n values,\n entireTerminationSchema.fields,\n { isPartialValidation: true },\n );\n\n const { customer_informed_employee: customerInformedEmployee } =\n parsedValues;\n\n const employeeAwareness =\n customerInformedEmployee === 'yes'\n ? {\n employee_awareness: {\n date: parsedValues.customer_informed_employee_date,\n note: parsedValues.customer_informed_employee_description,\n },\n }\n : undefined;\n\n const radioFieldKeys = [\n 'agrees_to_pto_amount',\n 'confidential',\n 'customer_informed_employee',\n 'will_challenge_termination',\n ];\n\n const parsedRadioValues = parseFormRadioValues(\n parsedValues,\n radioFieldKeys,\n );\n\n const normalizedValues = omit(\n parsedRadioValues,\n 'customer_informed_employee_date',\n 'customer_informed_employee_description',\n );\n\n const terminationDetails: TerminationDetailsParams = omitBy(\n {\n ...normalizedValues,\n ...employeeAwareness,\n },\n isNull,\n ) as unknown as TerminationDetailsParams;\n\n const terminationPayload: CreateOffboardingParams = {\n employment_id: employmentId,\n termination_details: terminationDetails,\n type: 'termination',\n };\n\n return mutateAsync(terminationPayload);\n }\n\n return;\n }\n\n function back() {\n previousStep();\n }\n\n function next() {\n nextStep();\n }\n\n const initialValues = buildInitialValues({\n ...stepState.values?.employee_communication,\n ...stepState.values?.termination_details,\n ...stepState.values?.paid_time_off,\n ...stepState.values?.additional_information,\n });\n\n return {\n /**\n * Employment id passed useful to be used between components\n */\n employmentId,\n /**\n * Current step state containing the current step and total number of steps\n */\n stepState,\n /**\n * Array of form fields from the contract amendment schema\n */\n fields: terminationHeadlessForm?.fields || [],\n /**\n * Loading state indicating if the termination schema is being fetched\n */\n isLoading: isLoadingTermination,\n /**\n * Loading state indicating if a contract amendment mutation is in progress\n */\n isSubmitting: createTermination.isPending,\n /**\n * Initial form values\n */\n initialValues: initialValues,\n /**\n * Function to validate form values against the contract amendment schema\n * @param values - Form values to validate\n * @returns Validation result or null if no schema is available\n */\n handleValidation: (values: TerminationFormValues) => {\n if (terminationHeadlessForm) {\n const parsedValues = parseJSFToValidate(\n values,\n terminationHeadlessForm?.fields,\n );\n return terminationHeadlessForm?.handleValidation(parsedValues);\n }\n return null;\n },\n /**\n * Function to update the current form field values\n * @param values - New form values to set\n */\n checkFieldUpdates: (values: Partial<TerminationFormValues>) => {\n if (entireTerminationSchema) {\n const parsedValues = parseJSFToValidate(\n values,\n entireTerminationSchema?.fields,\n { isPartialValidation: true },\n );\n setFieldValues(parsedValues as TerminationFormValues);\n }\n },\n /**\n * Function to parse form values before submission\n * @param values - Form values to parse\n * @returns Parsed form values\n */\n parseFormValues: (values: TerminationFormValues) => {\n return parseJSFToValidate(values, entireTerminationSchema.fields, {\n isPartialValidation: true,\n });\n },\n /**\n * Function to handle form submission\n * @param values - Form values to submit\n * @returns Promise resolving to the mutation result\n */\n onSubmit,\n\n /**\n * Function to handle going back to the previous step\n * @returns {void}\n */\n back,\n\n /**\n * Function to handle going to the next step\n * @returns {void}\n */\n next,\n };\n};\n"],"mappings":"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","names":["createHeadlessForm","modify","useMutation","useQuery","omitBy","isNull","omit","buildInitialValues","stepsInitialValues","__name","useCreateTermination","client","useClient","useMutation","payload","postCreateOffboarding","useTerminationSchema","formValues","jsfModify","step","useQuery","schema","defaultSchema","data","jsfSchema","modify","createHeadlessForm","useTermination","employmentId","options","fieldValues","setFieldValues","stepState","previousStep","nextStep","useStepState","STEPS","terminationHeadlessForm","isLoadingTermination","entireTerminationSchema","jsonSchema","createTermination","mutateAsync","mutationToPromise","onSubmit","values","parsedValues","parseJSFToValidate","customerInformedEmployee","employeeAwareness","parsedRadioValues","parseFormRadioValues","normalizedValues","omit","terminationDetails","omitBy","isNull","back","next","initialValues"]}
|
|
1
|
+
{"version":3,"sources":["../src/flows/Termination/hooks.ts"],"sourcesContent":["import {\n CreateOffboardingParams,\n postCreateOffboarding,\n TerminationDetailsParams,\n} from '@/src/client';\nimport { mutationToPromise } from '@/src/lib/mutations';\nimport { Client } from '@hey-api/client-fetch';\nimport { createHeadlessForm, modify } from '@remoteoss/json-schema-form';\nimport { useMutation, useQuery } from '@tanstack/react-query';\nimport omitBy from 'lodash.omitby';\nimport isNull from 'lodash.isnull';\nimport { parseJSFToValidate } from '@/src/components/form/utils';\nimport { JSFModify } from '@/src/flows/CostCalculator/types';\nimport { TerminationFormValues } from '@/src/flows/Termination/types';\nimport { useClient } from '@/src/context';\nimport omit from 'lodash.omit';\nimport { parseFormRadioValues } from '@/src/flows/utils';\nimport { useStepState } from '@/src/flows/useStepState';\nimport { STEPS } from '@/src/flows/Termination/utils';\nimport { defaultSchema } from '@/src/flows/Termination/json-schemas/defaultSchema';\nimport { schema } from '@/src/flows/Termination/json-schemas/schema';\nimport { jsonSchema } from '@/src/flows/Termination/json-schemas/jsonSchema';\n\nfunction buildInitialValues(\n stepsInitialValues: Partial<TerminationFormValues>,\n): TerminationFormValues {\n const initialValues: TerminationFormValues = {\n confidential: '',\n customer_informed_employee: '',\n customer_informed_employee_date: '',\n customer_informed_employee_description: '',\n personal_email: '',\n termination_reason: undefined,\n reason_description: '',\n termination_reason_files: [],\n will_challenge_termination: '',\n will_challenge_termination_description: null,\n agrees_to_pto_amount: '',\n agrees_to_pto_amount_notes: null,\n acknowledge_termination_procedure: false,\n additional_comments: '',\n proposed_termination_date: '',\n risk_assessment_reasons: [],\n timesheet_file: undefined,\n ...stepsInitialValues,\n };\n\n return initialValues;\n}\n\nconst useCreateTermination = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: (payload: CreateOffboardingParams) => {\n return postCreateOffboarding({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n body: payload,\n });\n },\n });\n};\n\nconst useTerminationSchema = ({\n formValues,\n jsfModify,\n step,\n}: {\n formValues?: TerminationFormValues;\n jsfModify?: JSFModify;\n step?: string;\n}) => {\n return useQuery({\n queryKey: ['rmt-flows-termination-schema', step],\n queryFn: () => {\n return schema[step as keyof typeof schema] ?? defaultSchema;\n },\n select: ({ data }) => {\n let jsfSchema = data?.schema || {};\n if (jsfModify) {\n const { schema } = modify(jsfSchema, jsfModify);\n jsfSchema = schema;\n }\n const form = createHeadlessForm(jsfSchema || {}, {\n initialValues: formValues || {},\n });\n return form;\n },\n });\n};\n\ntype TerminationHookProps = {\n employmentId: string;\n options?: {\n jsfModify?: JSFModify;\n };\n};\n\nexport const useTermination = ({\n employmentId,\n options,\n}: TerminationHookProps) => {\n const { fieldValues, setFieldValues, stepState, previousStep, nextStep } =\n useStepState<keyof typeof STEPS, TerminationFormValues>(STEPS);\n\n const formValues = {\n ...stepState.values?.[stepState.currentStep.name as keyof typeof STEPS], // Restore values for the current step\n ...fieldValues,\n };\n\n const { data: terminationHeadlessForm, isLoading: isLoadingTermination } =\n useTerminationSchema({\n formValues: formValues,\n jsfModify: options?.jsfModify,\n step: stepState.currentStep.name,\n });\n\n const entireTerminationSchema = createHeadlessForm(jsonSchema.data.schema);\n\n const createTermination = useCreateTermination();\n const { mutateAsync } = mutationToPromise(createTermination);\n\n async function onSubmit(values: TerminationFormValues) {\n if (!employmentId) {\n throw new Error('Employment id is missing');\n }\n\n if (terminationHeadlessForm) {\n // this is a hack because I need to validate all form values with the entire schema\n const parsedValues = parseJSFToValidate(\n values,\n entireTerminationSchema.fields,\n { isPartialValidation: true },\n );\n\n const { customer_informed_employee: customerInformedEmployee } =\n parsedValues;\n\n const employeeAwareness =\n customerInformedEmployee === 'yes'\n ? {\n employee_awareness: {\n date: parsedValues.customer_informed_employee_date,\n note: parsedValues.customer_informed_employee_description,\n },\n }\n : undefined;\n\n const radioFieldKeys = [\n 'agrees_to_pto_amount',\n 'confidential',\n 'customer_informed_employee',\n 'will_challenge_termination',\n ];\n\n const parsedRadioValues = parseFormRadioValues(\n parsedValues,\n radioFieldKeys,\n );\n\n const normalizedValues = omit(\n parsedRadioValues,\n 'customer_informed_employee_date',\n 'customer_informed_employee_description',\n );\n\n const terminationDetails: TerminationDetailsParams = omitBy(\n {\n ...normalizedValues,\n ...employeeAwareness,\n },\n isNull,\n ) as unknown as TerminationDetailsParams;\n\n const terminationPayload: CreateOffboardingParams = {\n employment_id: employmentId,\n termination_details: terminationDetails,\n type: 'termination',\n };\n\n return mutateAsync(terminationPayload);\n }\n\n return;\n }\n\n function back() {\n previousStep();\n }\n\n function next() {\n nextStep();\n }\n\n const initialValues = buildInitialValues({\n ...stepState.values?.employee_communication,\n ...stepState.values?.termination_details,\n ...stepState.values?.paid_time_off,\n ...stepState.values?.additional_information,\n });\n\n return {\n /**\n * Employment id passed useful to be used between components\n */\n employmentId,\n /**\n * Current step state containing the current step and total number of steps\n */\n stepState,\n /**\n * Array of form fields from the contract amendment schema\n */\n fields: terminationHeadlessForm?.fields || [],\n /**\n * Loading state indicating if the termination schema is being fetched\n */\n isLoading: isLoadingTermination,\n /**\n * Loading state indicating if a contract amendment mutation is in progress\n */\n isSubmitting: createTermination.isPending,\n /**\n * Initial form values\n */\n initialValues: initialValues,\n /**\n * Function to validate form values against the contract amendment schema\n * @param values - Form values to validate\n * @returns Validation result or null if no schema is available\n */\n handleValidation: (values: TerminationFormValues) => {\n if (terminationHeadlessForm) {\n const parsedValues = parseJSFToValidate(\n values,\n terminationHeadlessForm?.fields,\n );\n return terminationHeadlessForm?.handleValidation(parsedValues);\n }\n return null;\n },\n /**\n * Function to update the current form field values\n * @param values - New form values to set\n */\n checkFieldUpdates: (values: Partial<TerminationFormValues>) => {\n if (entireTerminationSchema) {\n const parsedValues = parseJSFToValidate(\n values,\n entireTerminationSchema?.fields,\n { isPartialValidation: true },\n );\n setFieldValues(parsedValues as TerminationFormValues);\n }\n },\n /**\n * Function to parse form values before submission\n * @param values - Form values to parse\n * @returns Parsed form values\n */\n parseFormValues: (values: TerminationFormValues) => {\n return parseJSFToValidate(values, entireTerminationSchema.fields, {\n isPartialValidation: true,\n });\n },\n /**\n * Function to handle form submission\n * @param values - Form values to submit\n * @returns Promise resolving to the mutation result\n */\n onSubmit,\n\n /**\n * Function to handle going back to the previous step\n * @returns {void}\n */\n back,\n\n /**\n * Function to handle going to the next step\n * @returns {void}\n */\n next,\n };\n};\n"],"mappings":"wbAOA,OAAS,sBAAAA,EAAoB,UAAAC,MAAc,8BAC3C,OAAS,eAAAC,EAAa,YAAAC,MAAgB,wBACtC,OAAOC,MAAY,gBACnB,OAAOC,MAAY,gBAKnB,OAAOC,MAAU,cAQjB,SAASC,EACPC,EACuB,CAsBvB,MArB6C,CAC3C,aAAc,GACd,2BAA4B,GAC5B,gCAAiC,GACjC,uCAAwC,GACxC,eAAgB,GAChB,mBAAoB,OACpB,mBAAoB,GACpB,yBAA0B,CAAC,EAC3B,2BAA4B,GAC5B,uCAAwC,KACxC,qBAAsB,GACtB,2BAA4B,KAC5B,kCAAmC,GACnC,oBAAqB,GACrB,0BAA2B,GAC3B,wBAAyB,CAAC,EAC1B,eAAgB,OAChB,GAAGA,CACL,CAGF,CAzBSC,EAAAF,EAAA,sBA2BT,IAAMG,EAAuBD,EAAA,IAAM,CACjC,GAAM,CAAE,OAAAE,CAAO,EAAIC,EAAU,EAC7B,OAAOC,EAAY,CACjB,WAAYJ,EAACK,GACJC,EAAsB,CAC3B,OAAQJ,EACR,QAAS,CACP,cAAe,EACjB,EACA,KAAMG,CACR,CAAC,EAPS,aASd,CAAC,CACH,EAb6B,wBAevBE,EAAuBP,EAAA,CAAC,CAC5B,WAAAQ,EACA,UAAAC,EACA,KAAAC,CACF,IAKSC,EAAS,CACd,SAAU,CAAC,+BAAgCD,CAAI,EAC/C,QAASV,EAAA,IACAY,EAAOF,CAA2B,GAAKG,EADvC,WAGT,OAAQb,EAAA,CAAC,CAAE,KAAAc,CAAK,IAAM,CACpB,IAAIC,EAAYD,GAAM,QAAU,CAAC,EACjC,GAAIL,EAAW,CACb,GAAM,CAAE,OAAAG,CAAO,EAAII,EAAOD,EAAWN,CAAS,EAC9CM,EAAYH,CACd,CAIA,OAHaK,EAAmBF,GAAa,CAAC,EAAG,CAC/C,cAAeP,GAAc,CAAC,CAChC,CAAC,CAEH,EAVQ,SAWV,CAAC,EAzB0B,wBAmChBU,GAAiBlB,EAAA,CAAC,CAC7B,aAAAmB,EACA,QAAAC,CACF,IAA4B,CAC1B,GAAM,CAAE,YAAAC,EAAa,eAAAC,EAAgB,UAAAC,EAAW,aAAAC,EAAc,SAAAC,CAAS,EACrEC,EAAwDC,CAAK,EAEzDnB,EAAa,CACjB,GAAGe,EAAU,SAASA,EAAU,YAAY,IAA0B,EACtE,GAAGF,CACL,EAEM,CAAE,KAAMO,EAAyB,UAAWC,CAAqB,EACrEtB,EAAqB,CACnB,WAAYC,EACZ,UAAWY,GAAS,UACpB,KAAMG,EAAU,YAAY,IAC9B,CAAC,EAEGO,EAA0Bb,EAAmBc,EAAW,KAAK,MAAM,EAEnEC,EAAoB/B,EAAqB,EACzC,CAAE,YAAAgC,CAAY,EAAIC,EAAkBF,CAAiB,EAE3D,eAAeG,EAASC,EAA+B,CACrD,GAAI,CAACjB,EACH,MAAM,IAAI,MAAM,0BAA0B,EAG5C,GAAIS,EAAyB,CAE3B,IAAMS,EAAeC,EACnBF,EACAN,EAAwB,OACxB,CAAE,oBAAqB,EAAK,CAC9B,EAEM,CAAE,2BAA4BS,CAAyB,EAC3DF,EAEIG,EACJD,IAA6B,MACzB,CACE,mBAAoB,CAClB,KAAMF,EAAa,gCACnB,KAAMA,EAAa,sCACrB,CACF,EACA,OASAI,EAAoBC,EACxBL,EARqB,CACrB,uBACA,eACA,6BACA,4BACF,CAKA,EAEMM,EAAmBC,EACvBH,EACA,kCACA,wCACF,EAEMI,EAA+CC,EACnD,CACE,GAAGH,EACH,GAAGH,CACL,EACAO,CACF,EAQA,OAAOd,EAN6C,CAClD,cAAed,EACf,oBAAqB0B,EACrB,KAAM,aACR,CAEqC,CACvC,CAGF,CA9De7C,EAAAmC,EAAA,YAgEf,SAASa,GAAO,CACdxB,EAAa,CACf,CAFSxB,EAAAgD,EAAA,QAIT,SAASC,GAAO,CACdxB,EAAS,CACX,CAFSzB,EAAAiD,EAAA,QAIT,IAAMC,EAAgBpD,EAAmB,CACvC,GAAGyB,EAAU,QAAQ,uBACrB,GAAGA,EAAU,QAAQ,oBACrB,GAAGA,EAAU,QAAQ,cACrB,GAAGA,EAAU,QAAQ,sBACvB,CAAC,EAED,MAAO,CAIL,aAAAJ,EAIA,UAAAI,EAIA,OAAQK,GAAyB,QAAU,CAAC,EAI5C,UAAWC,EAIX,aAAcG,EAAkB,UAIhC,cAAekB,EAMf,iBAAkBlD,EAACoC,GAAkC,CACnD,GAAIR,EAAyB,CAC3B,IAAMS,EAAeC,EACnBF,EACAR,GAAyB,MAC3B,EACA,OAAOA,GAAyB,iBAAiBS,CAAY,CAC/D,CACA,OAAO,IACT,EATkB,oBAclB,kBAAmBrC,EAACoC,GAA2C,CAC7D,GAAIN,EAAyB,CAC3B,IAAMO,EAAeC,EACnBF,EACAN,GAAyB,OACzB,CAAE,oBAAqB,EAAK,CAC9B,EACAR,EAAee,CAAqC,CACtD,CACF,EATmB,qBAenB,gBAAiBrC,EAACoC,GACTE,EAAmBF,EAAQN,EAAwB,OAAQ,CAChE,oBAAqB,EACvB,CAAC,EAHc,mBAUjB,SAAAK,EAMA,KAAAa,EAMA,KAAAC,CACF,CACF,EA1L8B","names":["createHeadlessForm","modify","useMutation","useQuery","omitBy","isNull","omit","buildInitialValues","stepsInitialValues","__name","useCreateTermination","client","useClient","useMutation","payload","postCreateOffboarding","useTerminationSchema","formValues","jsfModify","step","useQuery","schema","defaultSchema","data","jsfSchema","modify","createHeadlessForm","useTermination","employmentId","options","fieldValues","setFieldValues","stepState","previousStep","nextStep","useStepState","STEPS","terminationHeadlessForm","isLoadingTermination","entireTerminationSchema","jsonSchema","createTermination","mutateAsync","mutationToPromise","onSubmit","values","parsedValues","parseJSFToValidate","customerInformedEmployee","employeeAwareness","parsedRadioValues","parseFormRadioValues","normalizedValues","omit","terminationDetails","omitBy","isNull","back","next","initialValues"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{b as n}from"./chunk-EMVYCKDC.js";import{b as o}from"./chunk-6HGUGIYJ.js";import{a as t}from"./chunk-AYDF3IFZ.js";import{jsx as i}from"react/jsx-runtime";function p({children:r,...e}){let{contractAmendment:{back:m}}=o();return i(n,{...e,onClick:()=>{m()},children:r})}t(p,"ContractAmendmentBack");export{p as a};
|
|
2
|
+
//# sourceMappingURL=chunk-WF4FKBRR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/ContractAmendment/ContractAmendmentBack.tsx"],"sourcesContent":["import { Button } from '@/src/components/ui/button';\nimport { ButtonHTMLAttributes, PropsWithChildren } from 'react';\nimport { useContractAmendmentContext } from './context';\n\nexport function ContractAmendmentBack({\n children,\n ...props\n}: PropsWithChildren<ButtonHTMLAttributes<HTMLButtonElement>>) {\n const {\n contractAmendment: { back },\n } = useContractAmendmentContext();\n\n return (\n <Button\n {...props}\n onClick={() => {\n back();\n }}\n >\n {children}\n </Button>\n );\n}\n"],"mappings":"wHAaI,cAAAA,MAAA,oBATG,SAASC,EAAsB,CACpC,SAAAC,EACA,GAAGC,CACL,EAA+D,CAC7D,GAAM,CACJ,kBAAmB,CAAE,KAAAC,CAAK,CAC5B,EAAIC,EAA4B,EAEhC,OACEL,EAACM,EAAA,CACE,GAAGH,EACJ,QAAS,IAAM,CACbC,EAAK,CACP,EAEC,SAAAF,EACH,CAEJ,CAlBgBK,EAAAN,EAAA","names":["jsx","ContractAmendmentBack","children","props","back","useContractAmendmentContext","Button","__name"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as J}from"./chunk-UPRUP24B.js";import{e as O,i as x,n as A,r as q,u as L}from"./chunk-GMU3QGAR.js";import{a as B}from"./chunk-A4RX3KRZ.js";import{d as f}from"./chunk-WRDKLT4N.js";import{c as C}from"./chunk-TPRGCMIZ.js";import{a as r}from"./chunk-AYDF3IFZ.js";import{object as at}from"yup";import{createHeadlessForm as G,modify as U}from"@remoteoss/json-schema-form";import{useMutation as $,useQuery as F}from"@tanstack/react-query";import{useState as z}from"react";import{string as k,ValidationError as I}from"yup";var rt=r(({includePremiumBenefits:t})=>{let{client:i}=f();return F({queryKey:["cost-calculator-countries",t],queryFn:r(()=>A({client:i,headers:{Authorization:""},query:{include_premium_benefits:t}}),"queryFn"),select:r(n=>n.data?.data.map(a=>({value:a.region_slug,label:a.name,childRegions:a.child_regions,hasAdditionalFields:a.has_additional_fields,regionSlug:a.region_slug})),"select")})},"useCostCalculatorCountries"),ot=r(()=>{let{client:t}=f();return F({queryKey:["company-currencies"],queryFn:r(()=>L({client:t,headers:{Authorization:""}}),"queryFn"),select:r(i=>i.data?.data?.company_currencies.map(n=>({value:n.slug,label:n.code})),"select")})},"useCompanyCurrencies"),it=r(()=>{let{client:t}=f();return $({mutationFn:r(i=>O({client:t,headers:{Authorization:""},body:i}),"mutationFn")})},"useCostCalculatorEstimation"),_t=r(()=>{let{client:t}=f();return $({mutationFn:r(i=>x({client:t,headers:{Authorization:""},body:i}),"mutationFn")})},"useCostCalculatorEstimationPdf"),nt=r((t,{includePremiumBenefits:i,options:n})=>{let{client:a}=f();return F({queryKey:["cost-calculator-region-fields",t,i],queryFn:r(()=>q({client:a,headers:{Authorization:""},path:{slug:t},query:{include_premium_benefits:i}}),"queryFn"),enabled:!!t,select:r(({data:l})=>{let c=l?.data?.schema||{};if(n&&n.jsfModify){let{schema:m}=U(c,n.jsfModify);c=m}return G(c)},"select")})},"useRegionFields"),V={title:"Estimation",includeBenefits:!1,includeCostBreakdowns:!1,includePremiumBenefits:!1},Ft=r(({defaultRegion:t,estimationOptions:i,options:n}={estimationOptions:V})=>{let{schema:a}=U(J.data.schema,n?.jsfModify||{}),l=G(a),[c,m]=z(t),[P,R]=z(),{data:g,isLoading:H}=rt({includePremiumBenefits:i.includePremiumBenefits}),{data:j,isLoading:N}=ot(),Q=c||P?.value,{data:y,isLoading:D}=nt(Q,{includePremiumBenefits:i.includePremiumBenefits,options:n}),M=it();async function W(o){try{await p.validate(o,{abortEarly:!1})}catch(e){return{data:null,error:e}}return new Promise((e,u)=>{M.mutate(T(o,i),{onSuccess:r(s=>{s.data?e({data:s.data,error:null}):e({data:null,error:new Error("Something went wrong. Please try again later.")})},"onSuccess"),onError:r(s=>{u({data:null,error:s})},"onError")})})}r(W,"onSubmit");function X(o){let e=g?.find(({value:u})=>u===o);e&&e.childRegions.length===0&&e.hasAdditionalFields?m(e.regionSlug):m(void 0),R(e)}r(X,"onCountryChange");function Y(o){m(o)}r(Y,"onRegionChange");let d=l.fields.find(o=>o.name==="region");if(d){let o=P?.childRegions.map(e=>({value:e.slug,label:e.name}))??[];d.options=o,d.isVisible=o.length>0,d.required=o.length>0,d.onChange=Y,d.schema=o.length>0?k().transform(e=>typeof e=="string"?e:"").required("Region is required"):k()}if(j){let o=l.fields.find(e=>e.name==="currency");o&&(o.options=j)}if(g){let o=l.fields.find(e=>e.name==="country");o&&(o.options=g,o.onChange=X)}let Z=r(()=>{R(void 0),m(t)},"resetForm"),w=[...l.fields,...y?.fields||[]],p=K(l.fields);async function v(o){let e=null,u=C(o,w);try{await p.validate(u,{abortEarly:!1}),e={formErrors:{},yupError:new I([],o)}}catch(S){let b=B(S);e={formErrors:Object.entries(b).reduce((_,[tt,et])=>({..._,[tt]:et.message}),{}),yupError:S}}let s=y?.handleValidation(u),E=[...e?.yupError.inner||[],...s?.yupError?.inner||[]],h={...e?.yupError?.value||{},...s?.yupError?.value||{}};return{formErrors:{...e?.formErrors||{},...s?.formErrors||{}},yupError:new I(E,h)}}return r(v,"handleValidation"),{stepState:{current:0,total:1,isLastStep:!0},fields:w,validationSchema:p,parseFormValues:r(o=>{let{country:e,region:u,salary:s,currency:E,...h}=o,b=C({country:e,region:u,salary:s,currency:E},l.fields),_=C(h,y?.fields||[]);return{...b,..._}},"parseFormValues"),handleValidation:v,isSubmitting:M.isPending,isLoading:H&&N&&D,onSubmit:W,resetForm:Z}},"useCostCalculator");function K(t){let i=t.reduce((n,a)=>(n[a.name]=a.schema,n),{});return at(i)}r(K,"buildValidationSchema");function st(t){let i="benefit-";return Object.keys(t).reduce((n,a)=>{let c={benefit_group_slug:a.replace(i,""),benefit_tier_slug:t[a]};return[...n,c]},[])}r(st,"formatBenefits");function T(t,i=V){return{employer_currency_slug:t.currency,include_benefits:i.includeBenefits,include_cost_breakdowns:i.includeCostBreakdowns,include_premium_benefits:i.includePremiumBenefits,employments:[{region_slug:t.region||t.country,annual_gross_salary:t.salary,annual_gross_salary_in_employer_currency:t.salary,employment_term:t.contract_duration_type??"fixed",title:i.title,regional_to_employer_exchange_rate:"1",age:t.age??void 0,...t.benefits&&{benefits:st(t.benefits)}}]}}r(T,"buildPayload");export{K as a,T as b,_t as c,V as d,Ft as e};
|
|
2
|
+
//# sourceMappingURL=chunk-WU77JQYU.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/CostCalculator/utils.ts","../src/flows/CostCalculator/hooks.ts"],"sourcesContent":["import type { CostCalculatorEstimateParams } from '@/src/client';\n\nimport { $TSFixMe } from '@/src/types/remoteFlows';\nimport { AnyObjectSchema, object } from 'yup';\nimport { defaultEstimationOptions } from './hooks';\nimport type {\n CostCalculatorEstimationOptions,\n CostCalculatorEstimationSubmitValues,\n} from './types';\n\n/**\n * Build the validation schema for the form.\n * @returns\n */\nexport function buildValidationSchema(fields: $TSFixMe[]) {\n const fieldsSchema = fields.reduce<Record<string, AnyObjectSchema>>(\n (fieldsSchemaAcc, field) => {\n fieldsSchemaAcc[field.name] = field.schema as AnyObjectSchema;\n return fieldsSchemaAcc;\n },\n {},\n );\n return object(fieldsSchema) as AnyObjectSchema;\n}\n\n/**\n * Format the benefits to the expected format by the API.\n * @param benefits\n * @returns\n */\nfunction formatBenefits(benefits: Record<string, string>) {\n const needle = 'benefit-';\n return Object.keys(benefits).reduce<\n Array<{ benefit_group_slug: string; benefit_tier_slug: string }>\n >((acc, key) => {\n const benefitGroupSlug = key.replace(needle, '');\n const benefitEntry = {\n benefit_group_slug: benefitGroupSlug,\n benefit_tier_slug: benefits[key],\n };\n return [...acc, benefitEntry];\n }, []);\n}\n\n/**\n * Build the payload for the cost calculator estimation.\n * @param values\n * @param estimationOptions\n * @returns\n */\nexport function buildPayload(\n values: CostCalculatorEstimationSubmitValues,\n estimationOptions: CostCalculatorEstimationOptions = defaultEstimationOptions,\n): CostCalculatorEstimateParams {\n return {\n employer_currency_slug: values.currency,\n include_benefits: estimationOptions.includeBenefits,\n include_cost_breakdowns: estimationOptions.includeCostBreakdowns,\n include_premium_benefits: estimationOptions.includePremiumBenefits,\n employments: [\n {\n region_slug: values.region || values.country,\n annual_gross_salary: values.salary,\n annual_gross_salary_in_employer_currency: values.salary,\n employment_term: values.contract_duration_type ?? 'fixed',\n title: estimationOptions.title,\n regional_to_employer_exchange_rate: '1',\n age: values.age ?? undefined,\n ...(values.benefits && { benefits: formatBenefits(values.benefits) }),\n },\n ],\n };\n}\n","import {\n CostCalculatorEstimateParams,\n CostCalculatorEstimateResponse,\n getIndexCompanyCurrency,\n getIndexCountry,\n getShowRegionField,\n MinimalRegion,\n postCreateEstimation,\n PostCreateEstimationError,\n postCreateEstimationPdf,\n} from '@/src/client';\nimport { jsonSchema } from '@/src/flows/CostCalculator/jsonSchema';\nimport type {\n CostCalculatorEstimationFormValues,\n CostCalculatorEstimationOptions,\n CostCalculatorEstimationSubmitValues,\n JSFModify,\n} from '@/src/flows/CostCalculator/types';\nimport type { Result } from '@/src/flows/types';\n\nimport { parseJSFToValidate } from '@/src/components/form/utils';\nimport { iterateErrors } from '@/src/components/form/yupValidationResolver';\nimport { useClient } from '@/src/context';\nimport { Client } from '@hey-api/client-fetch';\nimport { createHeadlessForm, modify } from '@remoteoss/json-schema-form';\nimport { useMutation, useQuery } from '@tanstack/react-query';\nimport { useState } from 'react';\nimport { string, ValidationError } from 'yup';\nimport { buildPayload, buildValidationSchema } from './utils';\n\ntype CostCalculatorCountry = {\n value: string;\n label: string;\n childRegions: MinimalRegion[];\n hasAdditionalFields: boolean | undefined;\n regionSlug: string;\n};\n\ntype JSFValidationError = {\n formErrors: Record<\n string,\n {\n type: string;\n message: string;\n }\n >;\n yupError: ValidationError;\n};\n\n/**\n * Hook to fetch the countries for the cost calculator.\n * @returns\n */\nconst useCostCalculatorCountries = ({\n includePremiumBenefits,\n}: {\n includePremiumBenefits: CostCalculatorEstimationOptions['includePremiumBenefits'];\n}) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['cost-calculator-countries', includePremiumBenefits],\n queryFn: () => {\n return getIndexCountry({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n query: {\n include_premium_benefits: includePremiumBenefits,\n },\n });\n },\n select: (data) =>\n data.data?.data.map((country) => ({\n value: country.region_slug,\n label: country.name,\n childRegions: country.child_regions,\n hasAdditionalFields: country.has_additional_fields,\n regionSlug: country.region_slug,\n })),\n });\n};\n\n/**\n * Hook to fetch the company currencies.\n * @returns\n */\nconst useCompanyCurrencies = () => {\n const { client } = useClient();\n\n return useQuery({\n queryKey: ['company-currencies'],\n queryFn: () => {\n return getIndexCompanyCurrency({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n });\n },\n select: (data) =>\n data.data?.data?.company_currencies.map((currency) => ({\n value: currency.slug,\n label: currency.code,\n })),\n });\n};\n\n/**\n * Hook to create an estimation.\n * @returns\n */\nconst useCostCalculatorEstimation = () => {\n const { client } = useClient();\n\n return useMutation({\n mutationFn: (payload: CostCalculatorEstimateParams) => {\n return postCreateEstimation({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n body: payload,\n });\n },\n });\n};\n\n/**\n * Custom hook to create a PDF estimation.\n *\n * @returns\n */\nexport const useCostCalculatorEstimationPdf = () => {\n const { client } = useClient();\n\n return useMutation({\n mutationFn: (payload: CostCalculatorEstimateParams) => {\n return postCreateEstimationPdf({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n body: payload,\n });\n },\n });\n};\n\n/**\n * Hook to fetch the region fields.\n * @param region\n * @returns\n */\nconst useRegionFields = (\n region: string | undefined,\n {\n includePremiumBenefits,\n options,\n }: {\n includePremiumBenefits: CostCalculatorEstimationOptions['includePremiumBenefits'];\n options?: {\n jsfModify?: JSFModify;\n };\n },\n) => {\n const { client } = useClient();\n\n return useQuery({\n queryKey: ['cost-calculator-region-fields', region, includePremiumBenefits],\n queryFn: () => {\n return getShowRegionField({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n path: { slug: region as string },\n query: {\n include_premium_benefits: includePremiumBenefits,\n },\n });\n },\n enabled: !!region,\n select: ({ data }) => {\n let jsfSchema = data?.data?.schema || {};\n if (options && options.jsfModify) {\n const { schema } = modify(jsfSchema, options.jsfModify);\n jsfSchema = schema;\n }\n return createHeadlessForm(jsfSchema);\n },\n });\n};\n\nexport const defaultEstimationOptions: CostCalculatorEstimationOptions = {\n title: 'Estimation',\n includeBenefits: false,\n includeCostBreakdowns: false,\n includePremiumBenefits: false,\n};\n\ntype UseCostCalculatorParams = {\n /**\n * The default region slug to preselect a country and a region.\n */\n defaultRegion?: string;\n /**\n * The estimation options.\n */\n estimationOptions: CostCalculatorEstimationOptions;\n options?: {\n jsfModify?: JSFModify;\n };\n};\n\nexport type EstimationError = PostCreateEstimationError | ValidationError;\n\n/**\n * Hook to use the cost calculator.\n */\nexport const useCostCalculator = (\n { defaultRegion, estimationOptions, options }: UseCostCalculatorParams = {\n estimationOptions: defaultEstimationOptions,\n },\n) => {\n const { schema: jsonSchemaModified } = modify(\n jsonSchema.data.schema,\n options?.jsfModify || {},\n );\n\n const fieldsJSONSchema = createHeadlessForm(jsonSchemaModified);\n\n const [selectedRegion, setSelectedRegion] = useState<string | undefined>(\n defaultRegion,\n );\n const [selectedCountry, setSelectedCountry] =\n useState<CostCalculatorCountry>();\n const { data: countries, isLoading: isLoadingCountries } =\n useCostCalculatorCountries({\n includePremiumBenefits: estimationOptions.includePremiumBenefits,\n });\n const { data: currencies, isLoading: isLoadingCurrencies } =\n useCompanyCurrencies();\n\n const jsonSchemaRegionSlug = selectedRegion || selectedCountry?.value;\n\n const { data: jsonSchemaRegionFields, isLoading: isLoadingRegionFields } =\n useRegionFields(jsonSchemaRegionSlug, {\n includePremiumBenefits: estimationOptions.includePremiumBenefits,\n options,\n });\n const costCalculatorEstimationMutation = useCostCalculatorEstimation();\n\n /**\n * Submit the estimation form with the given values.\n * @param values\n */\n async function onSubmit(\n values: CostCalculatorEstimationSubmitValues,\n ): Promise<Result<CostCalculatorEstimateResponse, EstimationError>> {\n try {\n await validationSchema.validate(values, { abortEarly: false });\n } catch (err) {\n return {\n data: null,\n error: err as ValidationError,\n };\n }\n\n return new Promise((resolve, reject) => {\n costCalculatorEstimationMutation.mutate(\n buildPayload(values, estimationOptions),\n {\n onSuccess: (response) => {\n if (response.data) {\n resolve({\n data: response.data,\n error: null,\n });\n } else {\n resolve({\n data: null,\n error: new Error(\n 'Something went wrong. Please try again later.',\n ),\n });\n }\n },\n onError: (error) => {\n reject({\n data: null,\n error: error as PostCreateEstimationError,\n });\n },\n },\n );\n });\n }\n\n /**\n * If the selected country has no child regions and has additional fields,\n * set the current region to the country's region slug and fetch the region fields.\n * @param country\n */\n function onCountryChange(country: string) {\n const currentCountry = countries?.find(({ value }) => value === country);\n\n if (\n currentCountry &&\n currentCountry.childRegions.length === 0 &&\n currentCountry.hasAdditionalFields\n ) {\n setSelectedRegion(currentCountry.regionSlug);\n } else {\n setSelectedRegion(undefined);\n }\n setSelectedCountry(currentCountry);\n }\n\n /**\n * Update the selected region and fetch the region fields.\n * @param region\n */\n function onRegionChange(region: string) {\n setSelectedRegion(region);\n }\n\n const regionField = fieldsJSONSchema.fields.find(\n (field) => field.name === 'region',\n );\n\n if (regionField) {\n const regions =\n selectedCountry?.childRegions.map((region) => ({\n value: region.slug,\n label: region.name,\n })) ?? [];\n regionField.options = regions;\n regionField.isVisible = regions.length > 0;\n regionField.required = regions.length > 0;\n regionField.onChange = onRegionChange;\n regionField.schema =\n regions.length > 0\n ? string()\n .transform((value) => (typeof value === 'string' ? value : ''))\n .required('Region is required')\n : string();\n }\n\n if (currencies) {\n const currencyField = fieldsJSONSchema.fields.find(\n (field) => field.name === 'currency',\n );\n if (currencyField) {\n currencyField.options = currencies;\n }\n }\n\n if (countries) {\n const countryField = fieldsJSONSchema.fields.find(\n (field) => field.name === 'country',\n );\n if (countryField) {\n countryField.options = countries;\n countryField.onChange = onCountryChange;\n }\n }\n\n const resetForm = () => {\n setSelectedCountry(undefined);\n setSelectedRegion(defaultRegion);\n };\n\n const allFields = [\n ...fieldsJSONSchema.fields,\n ...(jsonSchemaRegionFields?.fields || []),\n ];\n\n const validationSchema = buildValidationSchema(fieldsJSONSchema.fields);\n\n async function handleValidation(values: CostCalculatorEstimationFormValues) {\n let errors: JSFValidationError | null = null;\n\n const parsedValues = parseJSFToValidate(values, allFields);\n\n // 1. validate static fields first using Yup validate function\n try {\n await validationSchema.validate(parsedValues, {\n abortEarly: false,\n });\n errors = {\n formErrors: {},\n yupError: new ValidationError([], values),\n };\n } catch (error) {\n const iterateResult = iterateErrors(error as ValidationError);\n\n errors = {\n // convert the errors to a format that can be used in the form\n formErrors: Object.entries(iterateResult).reduce(\n (acc, [key, value]) => ({ ...acc, [key]: value.message }),\n {},\n ),\n yupError: error as ValidationError,\n };\n }\n\n // 2. validate json schema fields using the handleValidation (from json-schema-form)\n const handleValidationResult =\n jsonSchemaRegionFields?.handleValidation(parsedValues);\n\n // 3. combine the errors from both validations\n const combinedInnerErrors = [\n ...(errors?.yupError.inner || []),\n ...(handleValidationResult?.yupError?.inner || []),\n ];\n const combinedValues = {\n ...(errors?.yupError?.value || {}),\n ...(handleValidationResult?.yupError?.value || {}),\n };\n\n return {\n formErrors: {\n ...(errors?.formErrors || {}),\n ...(handleValidationResult?.formErrors || {}),\n },\n yupError: new ValidationError(combinedInnerErrors, combinedValues),\n };\n }\n\n return {\n stepState: {\n current: 0,\n total: 1,\n isLastStep: true,\n },\n fields: allFields,\n validationSchema,\n parseFormValues: (\n values: CostCalculatorEstimationFormValues,\n ): CostCalculatorEstimationSubmitValues => {\n const { country, region, salary, currency, ...rest } = values;\n const jsonSchemaStaticFieldValues = {\n country,\n region,\n salary,\n currency,\n };\n const parsedStaticFields = parseJSFToValidate(\n jsonSchemaStaticFieldValues,\n fieldsJSONSchema.fields,\n );\n\n const parsedRegionFields = parseJSFToValidate(\n rest,\n jsonSchemaRegionFields?.fields || [],\n );\n\n return {\n ...parsedStaticFields,\n ...parsedRegionFields,\n } as CostCalculatorEstimationSubmitValues;\n },\n handleValidation,\n isSubmitting: costCalculatorEstimationMutation.isPending,\n isLoading:\n isLoadingCountries && isLoadingCurrencies && isLoadingRegionFields,\n onSubmit,\n resetForm,\n };\n};\n"],"mappings":"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","names":["object","createHeadlessForm","modify","useMutation","useQuery","useState","string","ValidationError","useCostCalculatorCountries","__name","includePremiumBenefits","client","useClient","useQuery","getIndexCountry","data","country","useCompanyCurrencies","getIndexCompanyCurrency","currency","useCostCalculatorEstimation","useMutation","payload","postCreateEstimation","useCostCalculatorEstimationPdf","postCreateEstimationPdf","useRegionFields","region","options","getShowRegionField","jsfSchema","schema","modify","createHeadlessForm","defaultEstimationOptions","useCostCalculator","defaultRegion","estimationOptions","jsonSchemaModified","jsonSchema","fieldsJSONSchema","selectedRegion","setSelectedRegion","useState","selectedCountry","setSelectedCountry","countries","isLoadingCountries","currencies","isLoadingCurrencies","jsonSchemaRegionSlug","jsonSchemaRegionFields","isLoadingRegionFields","costCalculatorEstimationMutation","onSubmit","values","validationSchema","err","resolve","reject","buildPayload","response","error","onCountryChange","currentCountry","value","onRegionChange","regionField","field","regions","string","currencyField","countryField","resetForm","allFields","buildValidationSchema","handleValidation","errors","parsedValues","parseJSFToValidate","ValidationError","iterateResult","iterateErrors","acc","key","handleValidationResult","combinedInnerErrors","combinedValues","salary","rest","parsedStaticFields","parsedRegionFields","buildValidationSchema","fields","fieldsSchema","fieldsSchemaAcc","field","object","__name","formatBenefits","benefits","needle","acc","key","benefitEntry","buildPayload","values","estimationOptions","defaultEstimationOptions"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as R}from"./chunk-4YNOSVYQ.js";import{a as N}from"./chunk-HSY5OO7D.js";import{a as _,b as h,c as v,d as T,e as w}from"./chunk-OIXUBXFU.js";import{a as P}from"./chunk-IAHI4OUM.js";import{a as x}from"./chunk-P5VTRXW3.js";import{a as g}from"./chunk-NEFNFYRS.js";import{a as i}from"./chunk-5ETXP2QF.js";import{a as l}from"./chunk-AYDF3IFZ.js";import{Euro as z}from"lucide-react";import{lazy as E,useState as H}from"react";import*as n from"@radix-ui/react-tabs";import{jsx as b}from"react/jsx-runtime";function k({className:r,...o}){return b(n.Root,{"data-slot":"tabs",className:i("flex flex-col gap-2",r),...o})}l(k,"Tabs");function B({className:r,...o}){return b(n.List,{"data-slot":"tabs-list",className:i("bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-1",r),...o})}l(B,"TabsList");function d({className:r,...o}){return b(n.Trigger,{"data-slot":"tabs-trigger",className:i("data-[state=active]:bg-background data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring inline-flex flex-1 items-center justify-center gap-1.5 rounded-md px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",r),...o})}l(d,"TabsTrigger");import{Fragment as V,jsx as t,jsxs as a}from"react/jsx-runtime";var G=E(()=>import("./flows/CostCalculator/Results/CostCalculatorResultsChart.js"));function Z({employmentData:r,options:o}){let[s,S]=H("monthly"),c=r.employments?.[0];if(!c)return null;let e=c.employer_currency_costs,m=e.currency.symbol,f=s==="monthly"?e.monthly_gross_salary:e.annual_gross_salary,C=s==="monthly"?e.monthly_benefits_total:e.annual_benefits_total,p=s==="monthly"?e.monthly_contributions_total:e.annual_contributions_total,D=s==="monthly"?e.monthly_total:e.annual_total,u=s==="monthly"?e.monthly_benefits_breakdown:e.annual_benefits_breakdown,L=s==="monthly"?e.monthly_contributions_breakdown:e.annual_contributions_breakdown,y=[{name:"Gross Salary",value:f,color:o?.chartColors?.grossSalary??"#3b82f6"},{name:"Contributions",value:p,color:o?.chartColors?.contributions??"#f59e0b"}];return u&&y.push({name:"Benefits",value:C??0,color:o?.chartColors?.benefits??"#10b981"}),a(V,{children:[a("div",{className:"flex flex-col md:flex-row gap-4 md:items-center justify-between mb-6 RemoteFlows__CostCalculatorResults",children:[a("div",{className:"RemoteFlows__CostCalculatorResults__Header",children:[a("h2",{className:"text-xl font-semibold flex items-center gap-2",children:[a("span",{className:"flex items-center gap-1",children:[t(z,{className:"h-5 w-5 text-gray-600"}),o?.title??"Cost Calculator"]}),t(g,{className:"ml-2",children:c.country.name})]}),t("p",{className:"text-primary-foreground font-medium mt-1",children:o?.description??`Total cost of employment in ${c.country.name}`})]}),t(k,{value:s,onValueChange:F=>S(F),className:"w-full md:w-auto RemoteFlows__CostCalculatorResults__Tabs",children:a(B,{className:"grid w-full md:w-[200px] grid-cols-2",children:[t(d,{value:"monthly",children:"Monthly"}),t(d,{value:"annual",children:"Annual"})]})})]}),a("div",{className:i("grid grid-cols-1 gap-6",o?.showChart?"md:grid-cols-3":"","RemoteFlows__CostCalculatorResults_CostBreakdown"),children:[a(_,{className:"md:col-span-2 rounded-lg",children:[a(h,{className:"pb-2",children:[t(v,{children:"Cost Breakdown"}),t(T,{children:"Detailed breakdown of all employer costs"})]}),t(w,{children:a("div",{className:"space-y-6",children:[t(N,{grossSalary:f,currency:m}),u?t(x,{benefitsBreakdown:u,benefitsTotal:C,currency:m}):null,t(R,{contributionsBreakdown:L,contributionsTotal:p,currency:m}),t(P,{totalCost:D,currency:m})]})})]}),o?.showChart&&t(G,{chartData:y,currency:m})]})]})}l(Z,"CostCalculatorResults");export{Z as a};
|
|
2
|
+
//# sourceMappingURL=chunk-X2LVNPXB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/CostCalculator/Results/CostCalculatorResults.tsx","../src/components/ui/tabs.tsx"],"sourcesContent":["import { Euro } from 'lucide-react';\nimport { lazy, useState } from 'react';\n\nimport { CostCalculatorEstimateResponse } from '@/src/client';\nimport { Badge } from '@/src/components/ui/badge';\nimport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from '@/src/components/ui/card';\nimport { Tabs, TabsList, TabsTrigger } from '@/src/components/ui/tabs';\nimport { cn } from '@/src/lib/utils';\nimport { CostCalculatorBenefitsBreakdown } from './CostCalculatorBenefitsBreakdown';\nimport { CostCalculatorContributionsBreakdown } from './CostCalculatorContributionsBreakdown';\nimport { CostCalculatorGrossSalary } from './CostCalculatorGrossSalary';\nimport { CostCalculatorTotalCost } from './CostCalculatorTotalCost';\n\nconst CostCalculatorResultsChart = lazy(\n () => import('./CostCalculatorResultsChart'),\n);\n\ninterface CostCalculatorResultProps {\n employmentData: CostCalculatorEstimateResponse['data'];\n options?: Partial<{\n title: string;\n description: string;\n showChart: boolean;\n chartColors: {\n grossSalary: string;\n contributions: string;\n benefits: string;\n };\n }>;\n}\n\nexport function CostCalculatorResults({\n employmentData,\n options,\n}: CostCalculatorResultProps) {\n const [view, setView] = useState<'monthly' | 'annual'>('monthly');\n const employment = employmentData.employments?.[0];\n\n if (!employment) {\n return null;\n }\n\n const costs =\n view === 'monthly'\n ? employment.employer_currency_costs\n : employment.employer_currency_costs;\n\n const currency = costs.currency.symbol;\n const grossSalary =\n view === 'monthly' ? costs.monthly_gross_salary : costs.annual_gross_salary;\n const benefitsTotal =\n view === 'monthly'\n ? costs.monthly_benefits_total\n : costs.annual_benefits_total;\n const contributionsTotal =\n view === 'monthly'\n ? costs.monthly_contributions_total\n : costs.annual_contributions_total;\n const totalCost =\n view === 'monthly' ? costs.monthly_total : costs.annual_total;\n\n const benefitsBreakdown =\n view === 'monthly'\n ? costs.monthly_benefits_breakdown\n : costs.annual_benefits_breakdown;\n const contributionsBreakdown =\n view === 'monthly'\n ? costs.monthly_contributions_breakdown\n : costs.annual_contributions_breakdown;\n\n const chartData = [\n {\n name: 'Gross Salary',\n value: grossSalary,\n color: options?.chartColors?.grossSalary ?? '#3b82f6',\n },\n {\n name: 'Contributions',\n value: contributionsTotal,\n color: options?.chartColors?.contributions ?? '#f59e0b',\n },\n ];\n\n if (benefitsBreakdown) {\n chartData.push({\n name: 'Benefits',\n value: benefitsTotal ?? 0,\n color: options?.chartColors?.benefits ?? '#10b981',\n });\n }\n\n return (\n <>\n <div className=\"flex flex-col md:flex-row gap-4 md:items-center justify-between mb-6 RemoteFlows__CostCalculatorResults\">\n <div className=\"RemoteFlows__CostCalculatorResults__Header\">\n <h2 className=\"text-xl font-semibold flex items-center gap-2\">\n <span className=\"flex items-center gap-1\">\n <Euro className=\"h-5 w-5 text-gray-600\" />\n {options?.title ?? 'Cost Calculator'}\n </span>\n <Badge className=\"ml-2\">{employment.country.name}</Badge>\n </h2>\n <p className=\"text-primary-foreground font-medium mt-1\">\n {options?.description ??\n `Total cost of employment in ${employment.country.name}`}\n </p>\n </div>\n\n <Tabs\n value={view}\n onValueChange={(v) => setView(v as 'monthly' | 'annual')}\n className=\"w-full md:w-auto RemoteFlows__CostCalculatorResults__Tabs\"\n >\n <TabsList className=\"grid w-full md:w-[200px] grid-cols-2\">\n <TabsTrigger value=\"monthly\">Monthly</TabsTrigger>\n <TabsTrigger value=\"annual\">Annual</TabsTrigger>\n </TabsList>\n </Tabs>\n </div>\n\n <div\n className={cn(\n 'grid grid-cols-1 gap-6',\n options?.showChart ? 'md:grid-cols-3' : '',\n 'RemoteFlows__CostCalculatorResults_CostBreakdown',\n )}\n >\n <Card className=\"md:col-span-2 rounded-lg\">\n <CardHeader className=\"pb-2\">\n <CardTitle>Cost Breakdown</CardTitle>\n <CardDescription>\n Detailed breakdown of all employer costs\n </CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"space-y-6\">\n {/* Salary Section */}\n <CostCalculatorGrossSalary\n grossSalary={grossSalary}\n currency={currency}\n />\n {/* Benefits Section */}\n {benefitsBreakdown ? (\n <CostCalculatorBenefitsBreakdown\n benefitsBreakdown={benefitsBreakdown}\n benefitsTotal={benefitsTotal}\n currency={currency}\n />\n ) : null}\n {/* Contributions Section */}\n <CostCalculatorContributionsBreakdown\n contributionsBreakdown={contributionsBreakdown}\n contributionsTotal={contributionsTotal}\n currency={currency}\n />\n {/* Total */}\n <CostCalculatorTotalCost\n totalCost={totalCost}\n currency={currency}\n />\n </div>\n </CardContent>\n </Card>\n\n {options?.showChart && (\n <CostCalculatorResultsChart\n chartData={chartData}\n currency={currency}\n />\n )}\n </div>\n </>\n );\n}\n","import * as React from 'react';\nimport * as TabsPrimitive from '@radix-ui/react-tabs';\n\nimport { cn } from '@/src/lib/utils';\n\nfunction Tabs({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Root>) {\n return (\n <TabsPrimitive.Root\n data-slot=\"tabs\"\n className={cn('flex flex-col gap-2', className)}\n {...props}\n />\n );\n}\n\nfunction TabsList({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.List>) {\n return (\n <TabsPrimitive.List\n data-slot=\"tabs-list\"\n className={cn(\n 'bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-1',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TabsTrigger({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Trigger>) {\n return (\n <TabsPrimitive.Trigger\n data-slot=\"tabs-trigger\"\n className={cn(\n \"data-[state=active]:bg-background data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring inline-flex flex-1 items-center justify-center gap-1.5 rounded-md px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TabsContent({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Content>) {\n return (\n <TabsPrimitive.Content\n data-slot=\"tabs-content\"\n className={cn('flex-1 outline-none', className)}\n {...props}\n />\n );\n}\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent };\n"],"mappings":"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","names":["Euro","lazy","useState","TabsPrimitive","jsx","Tabs","className","props","cn","__name","TabsList","TabsTrigger","Fragment","jsx","jsxs","CostCalculatorResultsChart","lazy","CostCalculatorResults","employmentData","options","view","setView","useState","employment","costs","currency","grossSalary","benefitsTotal","contributionsTotal","totalCost","benefitsBreakdown","contributionsBreakdown","chartData","Euro","Badge","Tabs","v","TabsList","TabsTrigger","cn","Card","CardHeader","CardTitle","CardDescription","CardContent","CostCalculatorGrossSalary","CostCalculatorBenefitsBreakdown","CostCalculatorContributionsBreakdown","CostCalculatorTotalCost","__name"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{a as t}from"./chunk-AYDF3IFZ.js";import{createContext as r,useContext as e}from"react";var a=r({form:null,formId:void 0,costCalculatorBag:void 0}),n=t(()=>{let o=e(a);if(!o.form)throw new Error("useCostCalculatorContext must be used within a CostCalculatorProvider");return{form:o.form,formId:o.formId,costCalculatorBag:o.costCalculatorBag}},"useCostCalculatorContext");export{a,n as b};
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
2
|
+
//# sourceMappingURL=chunk-YG5FFTC4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/CostCalculator/context.ts"],"sourcesContent":["import { useCostCalculator } from '@/src/flows/CostCalculator/hooks';\nimport { $TSFixMe } from '@/src/types/remoteFlows';\nimport { createContext, useContext } from 'react';\nimport { UseFormReturn } from 'react-hook-form';\n\nexport const CostCalculatorContext = createContext<{\n form: UseFormReturn<$TSFixMe> | null;\n formId: string | undefined;\n costCalculatorBag?: ReturnType<typeof useCostCalculator>;\n}>({\n form: null,\n formId: undefined,\n costCalculatorBag: undefined,\n});\n\nexport const useCostCalculatorContext = () => {\n const context = useContext(CostCalculatorContext);\n if (!context.form) {\n throw new Error(\n 'useCostCalculatorContext must be used within a CostCalculatorProvider',\n );\n }\n\n return {\n form: context.form,\n formId: context.formId,\n costCalculatorBag: context.costCalculatorBag,\n } as const;\n};\n"],"mappings":"wCAEA,OAAS,iBAAAA,EAAe,cAAAC,MAAkB,QAGnC,IAAMC,EAAwBC,EAIlC,CACD,KAAM,KACN,OAAQ,OACR,kBAAmB,MACrB,CAAC,EAEYC,EAA2BC,EAAA,IAAM,CAC5C,IAAMC,EAAUC,EAAWL,CAAqB,EAChD,GAAI,CAACI,EAAQ,KACX,MAAM,IAAI,MACR,uEACF,EAGF,MAAO,CACL,KAAMA,EAAQ,KACd,OAAQA,EAAQ,OAChB,kBAAmBA,EAAQ,iBAC7B,CACF,EAbwC","names":["createContext","useContext","CostCalculatorContext","createContext","useCostCalculatorContext","__name","context","useContext"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as p}from"./chunk-ENMJ56WK.js";import{b as l}from"./chunk-A4RX3KRZ.js";import{a as f}from"./chunk-ONZPO4GN.js";import{c as u}from"./chunk-TPRGCMIZ.js";import{b as F}from"./chunk-6HGUGIYJ.js";import{a as r}from"./chunk-AYDF3IFZ.js";import{useEffect as P}from"react";import{useForm as R}from"react-hook-form";import{jsx as a}from"react/jsx-runtime";var w=["effective_date","reason_for_change","reason_for_change_description","additional_comments","additional_comments_toggle"];function x({onSubmit:_,onError:m,onSuccess:b}){let{formId:A,contractAmendment:{checkFieldUpdates:C,fields:s,onSubmit:h,stepState:S,initialValues:i,handleValidation:g}}=F(),y=l(g),e=R({resolver:y,defaultValues:S.values?.form||i,shouldUnregister:!0,mode:"onBlur"});P(()=>{let t=e?.watch(o=>{(Object.keys(e.formState.dirtyFields).length>0||e.formState.isDirty)&&C(o)});return()=>t?.unsubscribe()},[]);let V=r(async t=>{let o=!1;for(let[c,v]of Object.entries(t))if(!w.includes(c)&&i[c]!==v){o=!0;break}if(!o)return m?.({message:"no_changes_detected_contract_details"});let d=u(t,s,{isPartialValidation:!1});await _?.(d);let n=await h(t);n.error?m?.(n.error):await b?.(n.data)},"handleSubmit");return a(f,{...e,children:a("form",{id:A,"data-testid":"contract-amendment-form",onSubmit:e.handleSubmit(V),className:"space-y-4 RemoteFlows__ContractAmendmentForm",children:a(p,{fields:s})})})}r(x,"ContractAmendmentForm");export{x as a};
|
|
2
|
+
//# sourceMappingURL=chunk-YLWCN7R2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/ContractAmendment/ContractAmendmentForm.tsx"],"sourcesContent":["import {\n ContractAmendmentAutomatableResponse,\n PostAutomatableContractAmendmentError,\n} from '@/src/client';\nimport { JSONSchemaFormFields } from '@/src/components/form/JSONSchemaForm';\nimport { parseJSFToValidate } from '@/src/components/form/utils';\nimport { useJsonSchemasValidationFormResolver } from '@/src/components/form/yupValidationResolver';\nimport { Form } from '@/src/components/ui/form';\nimport { useEffect } from 'react';\nimport { FieldValues, useForm } from 'react-hook-form';\nimport { useContractAmendmentContext } from './context';\n\ntype ContractAmendmentFormProps = {\n /**\n * Callback function to be called when the contract amendment form is submitted.\n * This function is called before the contract amendment is submitted.\n * It can be used to perform any additional validation or processing before\n * the contract amendment is submitted.\n * @param values\n * @returns\n */\n onSubmit?: (values: FieldValues) => void | Promise<void>;\n /**\n * Callback function to be called when the contract amendment fails.\n * @param error\n * @returns\n */\n onError?: (\n error:\n | PostAutomatableContractAmendmentError\n | { message: 'no_changes_detected_contract_details' },\n ) => void;\n /**\n * Callback function to be called when the contract amendment is successfully submitted.\n * This function is called after the contract amendment is submitted.\n * @param data\n * @returns\n */\n onSuccess?: (\n data: ContractAmendmentAutomatableResponse,\n ) => void | Promise<void>;\n};\n\nconst commonFields = [\n 'effective_date',\n 'reason_for_change',\n 'reason_for_change_description',\n 'additional_comments',\n 'additional_comments_toggle',\n] as const;\n\ntype CommonFields = (typeof commonFields)[number];\n\nexport function ContractAmendmentForm({\n onSubmit,\n onError,\n onSuccess,\n}: ContractAmendmentFormProps) {\n const {\n formId,\n contractAmendment: {\n checkFieldUpdates,\n fields,\n onSubmit: submitContractAmendment,\n stepState,\n initialValues,\n handleValidation,\n },\n } = useContractAmendmentContext();\n\n const resolver = useJsonSchemasValidationFormResolver(\n // @ts-expect-error no matching type\n handleValidation,\n );\n\n const form = useForm({\n resolver,\n defaultValues:\n // stepState.values is used as defaultValues for the form when the form is\n // rendered when clicking on the back button after the user has submitted the form\n // and the confirmation form is displayed.\n // This is because the form is unmounted when the user submits the form.\n stepState.values?.form || initialValues,\n shouldUnregister: true,\n mode: 'onBlur',\n });\n\n useEffect(() => {\n const subscription = form?.watch((values) => {\n const isFormDirty =\n Object.keys(form.formState.dirtyFields).length > 0 ||\n form.formState.isDirty;\n if (isFormDirty) {\n checkFieldUpdates(values);\n }\n });\n return () => subscription?.unsubscribe();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleSubmit = async (values: FieldValues) => {\n let hasContractDetailsChanges = false;\n for (const [key, value] of Object.entries(values)) {\n if (\n !commonFields.includes(key as CommonFields) &&\n // @ts-expect-error error\n initialValues[key] !== value\n ) {\n hasContractDetailsChanges = true;\n break;\n }\n }\n\n if (!hasContractDetailsChanges) {\n return onError?.({\n message: 'no_changes_detected_contract_details',\n });\n }\n\n const parsedValues = parseJSFToValidate(values, fields, {\n isPartialValidation: false,\n });\n\n await onSubmit?.(parsedValues);\n\n const contractAmendmentResult = await submitContractAmendment(values);\n\n if (contractAmendmentResult.error) {\n onError?.(contractAmendmentResult.error);\n } else {\n await onSuccess?.(\n contractAmendmentResult.data as ContractAmendmentAutomatableResponse,\n );\n }\n };\n\n return (\n <Form {...form}>\n <form\n id={formId}\n data-testid=\"contract-amendment-form\"\n onSubmit={form.handleSubmit(handleSubmit)}\n className=\"space-y-4 RemoteFlows__ContractAmendmentForm\"\n >\n <JSONSchemaFormFields fields={fields} />\n </form>\n </Form>\n );\n}\n"],"mappings":"gPAQA,OAAS,aAAAA,MAAiB,QAC1B,OAAsB,WAAAC,MAAe,kBAuI7B,cAAAC,MAAA,oBArGR,IAAMC,EAAe,CACnB,iBACA,oBACA,gCACA,sBACA,4BACF,EAIO,SAASC,EAAsB,CACpC,SAAAC,EACA,QAAAC,EACA,UAAAC,CACF,EAA+B,CAC7B,GAAM,CACJ,OAAAC,EACA,kBAAmB,CACjB,kBAAAC,EACA,OAAAC,EACA,SAAUC,EACV,UAAAC,EACA,cAAAC,EACA,iBAAAC,CACF,CACF,EAAIC,EAA4B,EAE1BC,EAAWC,EAEfH,CACF,EAEMI,EAAOC,EAAQ,CACnB,SAAAH,EACA,cAKEJ,EAAU,QAAQ,MAAQC,EAC5B,iBAAkB,GAClB,KAAM,QACR,CAAC,EAEDO,EAAU,IAAM,CACd,IAAMC,EAAeH,GAAM,MAAOI,GAAW,EAEzC,OAAO,KAAKJ,EAAK,UAAU,WAAW,EAAE,OAAS,GACjDA,EAAK,UAAU,UAEfT,EAAkBa,CAAM,CAE5B,CAAC,EACD,MAAO,IAAMD,GAAc,YAAY,CAEzC,EAAG,CAAC,CAAC,EAEL,IAAME,EAAeC,EAAA,MAAOF,GAAwB,CAClD,IAAIG,EAA4B,GAChC,OAAW,CAACC,EAAKC,CAAK,IAAK,OAAO,QAAQL,CAAM,EAC9C,GACE,CAACnB,EAAa,SAASuB,CAAmB,GAE1Cb,EAAca,CAAG,IAAMC,EACvB,CACAF,EAA4B,GAC5B,KACF,CAGF,GAAI,CAACA,EACH,OAAOnB,IAAU,CACf,QAAS,sCACX,CAAC,EAGH,IAAMsB,EAAeC,EAAmBP,EAAQZ,EAAQ,CACtD,oBAAqB,EACvB,CAAC,EAED,MAAML,IAAWuB,CAAY,EAE7B,IAAME,EAA0B,MAAMnB,EAAwBW,CAAM,EAEhEQ,EAAwB,MAC1BxB,IAAUwB,EAAwB,KAAK,EAEvC,MAAMvB,IACJuB,EAAwB,IAC1B,CAEJ,EAlCqB,gBAoCrB,OACE5B,EAAC6B,EAAA,CAAM,GAAGb,EACR,SAAAhB,EAAC,QACC,GAAIM,EACJ,cAAY,0BACZ,SAAUU,EAAK,aAAaK,CAAY,EACxC,UAAU,+CAEV,SAAArB,EAAC8B,EAAA,CAAqB,OAAQtB,EAAQ,EACxC,EACF,CAEJ,CA/FgBc,EAAApB,EAAA","names":["useEffect","useForm","jsx","commonFields","ContractAmendmentForm","onSubmit","onError","onSuccess","formId","checkFieldUpdates","fields","submitContractAmendment","stepState","initialValues","handleValidation","useContractAmendmentContext","resolver","useJsonSchemasValidationFormResolver","form","useForm","useEffect","subscription","values","handleSubmit","__name","hasContractDetailsChanges","key","value","parsedValues","parseJSFToValidate","contractAmendmentResult","Form","JSONSchemaFormFields"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as P}from"./chunk-WVJDCDGZ.js";import{b as A}from"./chunk-G7BISHWK.js";import{d as g,f as C,g as b,h as w,j as S,k as _,m as E,o as j,p as q,q as v,s as O,v as x}from"./chunk-GMU3QGAR.js";import{d as o}from"./chunk-WRDKLT4N.js";import{a as z}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as P}from"./chunk-WVJDCDGZ.js";import{b as A}from"./chunk-G7BISHWK.js";import{d as g,f as C,g as b,h as w,j as S,k as _,m as E,o as j,p as q,q as v,s as O,v as x}from"./chunk-GMU3QGAR.js";import{d as o}from"./chunk-WRDKLT4N.js";import{a as z}from"./chunk-TPRGCMIZ.js";import{a as n}from"./chunk-AYDF3IFZ.js";import{createHeadlessForm as y,modify as h}from"@remoteoss/json-schema-form";import{useMutation as l,useQuery as u}from"@tanstack/react-query";var G=n(e=>{let{client:t}=o();return u({queryKey:["employment",e],retry:!1,enabled:!!e,queryFn:n(async()=>{let r=await q({client:t,headers:{Authorization:""},path:{employment_id:e}});if(r.error||!r.data)throw new Error("Failed to fetch employment data");return r},"queryFn")})},"useEmployment"),H=n(e=>{let{client:t}=o();return u({queryKey:["company",e],retry:!1,enabled:!!e,queryFn:n(async()=>{let r=await _({client:t,headers:{Authorization:""},path:{company_id:e}});if(r.error||!r.data)throw new Error("Failed to fetch employment data");return r},"queryFn"),select:n(({data:r})=>r.data.company,"select")})},"useCompany"),W=n(e=>{let{client:t}=o();return u({queryKey:["benefit-offers",e],retry:!1,enabled:!!e,queryFn:n(async()=>C({client:t,headers:{Authorization:""},path:{employment_id:e}}).then(r=>{if(r.error||!r.data)throw new Error("Failed to fetch benefit offers data");return r}),"queryFn"),select:n(({data:r})=>r?.data?.reduce((s,i)=>({...s,[i.benefit_group.slug]:{value:i.benefit_tier?.slug??""}}),{}),"select")})},"useBenefitOffers"),X=n(()=>{let{client:e}=o();return l({mutationFn:n(t=>x({client:e,headers:{Authorization:""},path:t}),"mutationFn")})},"useEmploymentInvite"),Y=n(()=>{let{client:e}=o();return l({mutationFn:n(t=>S({client:e,headers:{Authorization:""},body:t}),"mutationFn")})},"useCreateReserveInvoice"),Z=n(({countryCode:e,form:t,fieldValues:r,options:s,enabled:i})=>{let{client:a}=o(),c=s?.jsonSchemaVersion?.form_schema?.[t]?{json_schema_version:s.jsonSchemaVersion.form_schema[t]}:{};return u({queryKey:["onboarding-json-schema-form",e,t],retry:!1,queryFn:n(async()=>{let m=await E({client:a,headers:{Authorization:""},path:{country_code:e,form:t},query:{skip_benefits:!0,...c}});if(m.error||!m.data)throw new Error("Failed to fetch onboarding schema");return m},"queryFn"),enabled:i,select:n(({data:m})=>{let f=m?.data||{};if(s&&s.jsfModify){let{schema:d}=h(f,s.jsfModify);f=d}let M=A(f.properties||{},"money").reduce((d,F)=>(d[F]=z(r[F]),d),{});return y(f,{initialValues:{...r,...M}})},"select")})},"useJSONSchemaForm"),$=n((e,t,r)=>{let s=r?.jsonSchemaVersion?.benefit_offers_form_schema?{json_schema_version:r.jsonSchemaVersion.benefit_offers_form_schema}:{},{client:i}=o();return u({queryKey:["benefit-offers-schema",e],retry:!1,enabled:!!e,queryFn:n(async()=>{let a=await j({client:i,headers:{Authorization:""},path:{employment_id:e},query:s});if(a.error||!a.data)throw new Error("Failed to fetch benefit offers schema");return a},"queryFn"),select:n(({data:a})=>{let c=a?.data?.schema||{};if(r&&r.jsfModify){let{schema:p}=h(c,r.jsfModify);c=p}let m=Object.keys(t).length>0;return y(c,{initialValues:m?{...t}:{}})},"select")})},"useBenefitOffersSchema"),ee=n(()=>{let{client:e}=o();return l({mutationFn:n(t=>g({client:e,headers:{Authorization:""},body:t}),"mutationFn")})},"useCreateEmployment"),te=n(()=>{let{client:e}=o();return l({mutationFn:n(({employmentId:t,...r})=>v({client:e,headers:{Authorization:""},body:r,path:{employment_id:t},query:{skip_benefits:!0}}),"mutationFn")})},"useUpdateEmployment"),re=n(()=>{let{client:e}=o();return l({mutationFn:n(({employmentId:t,...r})=>b({client:e,headers:{Authorization:""},body:r,path:{employment_id:t}}),"mutationFn")})},"useUpdateBenefitsOffers"),ne=n(()=>{let{client:e}=o();return l({mutationFn:n(t=>w({client:e,headers:{Authorization:""},body:t}),"mutationFn")})},"useMagicLink"),V=n(()=>{let{client:e}=o();return u({queryKey:["countries"],retry:!1,queryFn:n(async()=>{let t=await O({client:e,headers:{Authorization:""}});if(t.error||!t.data)throw new Error("Failed to fetch supported countries");return t},"queryFn"),select:n(({data:t})=>t?.data?.map(r=>({label:r.name,value:r.code}))||[],"select")})},"useCountries"),oe=n(e=>{let{data:t,isLoading:r}=V(),{schema:s}=h(P.data.schema,e?.jsfModify||{}),i=y(s);if(t){let a=i.fields.find(c=>c.name==="country");a&&(a.options=t)}return{isLoading:r,selectCountryForm:i}},"useCountriesSchemaField");export{G as a,H as b,W as c,X as d,Y as e,Z as f,$ as g,ee as h,te as i,re as j,ne as k,oe as l};
|
|
2
|
+
//# sourceMappingURL=chunk-YM5PKRUW.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as t}from"./chunk-6W5KUXEP.js";import{b as a}from"./chunk-DZYFSFZ7.js";import{a as i}from"./chunk-AYDF3IFZ.js";import{jsx as p}from"react/jsx-runtime";function F({requesterName:n,onSubmit:s,onSuccess:m,onError:d}){let{terminationBag:e}=a(),l=i(async o=>{await s?.(e?.parseFormValues(o));let r=await e?.onSubmit(o);r?.error?d?.(r.error):r?.data&&await m?.(r.data)},"handleSubmit"),u=e?.fields.map(o=>o.name==="acknowledge_termination_procedure"?{...o,label:o.label.replace("{{requesterName}}",n)}:o);return p(t,{fields:u,onSubmit:l})}i(F,"AdditionalDetailsForm");export{F as a};
|
|
2
|
+
//# sourceMappingURL=chunk-ZJT4Y4TA.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/Termination/AdditionalDetailsForm.tsx"],"sourcesContent":["import { useTerminationContext } from './context';\nimport { TerminationFormValues } from '@/src/flows/Termination/types';\nimport { OffboardingResponse } from '@/src/client';\nimport { TerminationForm } from '@/src/flows/Termination/TerminationForm';\n\ntype AdditionalDetailsFormProps = {\n /*\n * The name of the person who initiates the termination, used to personalize the label of the\n * acknowledge_termination_procedure field.\n */\n requesterName: string;\n /*\n * The function is called when the form is submitted. It receives the form values as an argument.\n */\n onSubmit?: (payload: TerminationFormValues) => void | Promise<void>;\n /*\n * The function is called when the form submission has failed.\n */\n onError?: (error: Error) => void;\n /*\n * The function is called when the form submission is successful. It receives the response data as\n * an argument.\n */\n onSuccess?: (data: OffboardingResponse) => void | Promise<void>;\n};\n\nexport function AdditionalDetailsForm({\n requesterName,\n onSubmit,\n onSuccess,\n onError,\n}: AdditionalDetailsFormProps) {\n const { terminationBag } = useTerminationContext();\n\n const handleSubmit = async (values: TerminationFormValues) => {\n await onSubmit?.(\n terminationBag?.parseFormValues(values) as TerminationFormValues,\n );\n const terminationResult = await terminationBag?.onSubmit(values);\n\n if (terminationResult?.error) {\n onError?.(terminationResult.error);\n } else {\n if (terminationResult?.data) {\n await onSuccess?.(terminationResult.data as OffboardingResponse);\n }\n }\n };\n\n const updatedFields = terminationBag?.fields.map((field) => {\n if (field.name === 'acknowledge_termination_procedure') {\n return {\n ...field,\n label: (field.label as string).replace(\n '{{requesterName}}',\n requesterName,\n ),\n };\n }\n return field;\n });\n\n return <TerminationForm fields={updatedFields} onSubmit={handleSubmit} />;\n}\n"],"mappings":"wHA8DS,cAAAA,MAAA,oBApCF,SAASC,EAAsB,CACpC,cAAAC,EACA,SAAAC,EACA,UAAAC,EACA,QAAAC,CACF,EAA+B,CAC7B,GAAM,CAAE,eAAAC,CAAe,EAAIC,EAAsB,EAE3CC,EAAeC,EAAA,MAAOC,GAAkC,CAC5D,MAAMP,IACJG,GAAgB,gBAAgBI,CAAM,CACxC,EACA,IAAMC,EAAoB,MAAML,GAAgB,SAASI,CAAM,EAE3DC,GAAmB,MACrBN,IAAUM,EAAkB,KAAK,EAE7BA,GAAmB,MACrB,MAAMP,IAAYO,EAAkB,IAA2B,CAGrE,EAbqB,gBAefC,EAAgBN,GAAgB,OAAO,IAAKO,GAC5CA,EAAM,OAAS,oCACV,CACL,GAAGA,EACH,MAAQA,EAAM,MAAiB,QAC7B,oBACAX,CACF,CACF,EAEKW,CACR,EAED,OAAOb,EAACc,EAAA,CAAgB,OAAQF,EAAe,SAAUJ,EAAc,CACzE,CArCgBC,EAAAR,EAAA","names":["jsx","AdditionalDetailsForm","requesterName","onSubmit","onSuccess","onError","terminationBag","useTerminationContext","handleSubmit","__name","values","terminationResult","updatedFields","field","TerminationForm"]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { PropsWithChildren, ButtonHTMLAttributes } from 'react';
|
|
2
3
|
|
|
3
|
-
declare function ContractAmendmentBack({ children, ...props }: PropsWithChildren<ButtonHTMLAttributes<HTMLButtonElement>>):
|
|
4
|
+
declare function ContractAmendmentBack({ children, ...props }: PropsWithChildren<ButtonHTMLAttributes<HTMLButtonElement>>): react_jsx_runtime.JSX.Element;
|
|
4
5
|
|
|
5
6
|
export { ContractAmendmentBack };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"../../chunk-
|
|
1
|
+
import{a}from"../../chunk-WF4FKBRR.js";import"../../chunk-EMVYCKDC.js";import"../../chunk-6HGUGIYJ.js";import"../../chunk-5ETXP2QF.js";import"../../chunk-AYDF3IFZ.js";export{a as ContractAmendmentBack};
|
|
2
2
|
//# sourceMappingURL=ContractAmendmentBack.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
1
2
|
import { b as PostCreateContractAmendmentError, a as ContractAmendmentResponse } from '../../types.gen-CAOUvsW-.js';
|
|
2
|
-
import React__default from 'react';
|
|
3
3
|
import { FieldValues } from 'react-hook-form';
|
|
4
4
|
|
|
5
5
|
type ContractAmendmentConfirmationFormProps = {
|
|
@@ -25,6 +25,6 @@ type ContractAmendmentConfirmationFormProps = {
|
|
|
25
25
|
*/
|
|
26
26
|
onSuccess?: (data: ContractAmendmentResponse) => void | Promise<void>;
|
|
27
27
|
};
|
|
28
|
-
declare function ContractAmendmentConfirmationForm({ onSubmit, onError, onSuccess, }: ContractAmendmentConfirmationFormProps):
|
|
28
|
+
declare function ContractAmendmentConfirmationForm({ onSubmit, onError, onSuccess, }: ContractAmendmentConfirmationFormProps): react_jsx_runtime.JSX.Element | null;
|
|
29
29
|
|
|
30
30
|
export { ContractAmendmentConfirmationForm };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"../../chunk-
|
|
1
|
+
import{a}from"../../chunk-6T3A6GWH.js";import"../../chunk-ONZPO4GN.js";import"../../chunk-TPRGCMIZ.js";import"../../chunk-6HGUGIYJ.js";import"../../chunk-5ETXP2QF.js";import"../../chunk-AYDF3IFZ.js";export{a as ContractAmendmentConfirmationForm};
|
|
2
2
|
//# sourceMappingURL=ContractAmendmentConfirmationForm.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ContractAmendmentConfirmationForm } from './ContractAmendmentConfirmationForm.js';
|
|
2
|
-
import
|
|
2
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
3
3
|
import { ContractAmendmentBack } from './ContractAmendmentBack.js';
|
|
4
4
|
import { ContractAmendmentForm } from './ContractAmendmentForm.js';
|
|
5
5
|
import { ContractAmendmentSubmit } from './ContractAmendmentSubmit.js';
|
|
@@ -7,6 +7,7 @@ import { useContractAmendment } from './hooks.js';
|
|
|
7
7
|
import { ContractAmendmentParams } from './types.js';
|
|
8
8
|
import '../../types.gen-CAOUvsW-.js';
|
|
9
9
|
import 'react-hook-form';
|
|
10
|
+
import 'react';
|
|
10
11
|
import '../../mutations-v9H353tz.js';
|
|
11
12
|
import '@remoteoss/json-schema-form';
|
|
12
13
|
import '../useStepState.js';
|
|
@@ -36,8 +37,8 @@ type ContractAmendmentRenderProps = {
|
|
|
36
37
|
};
|
|
37
38
|
};
|
|
38
39
|
type ContractAmendmentFlowProps = ContractAmendmentParams & {
|
|
39
|
-
render: ({ contractAmendmentBag, components, }: ContractAmendmentRenderProps) =>
|
|
40
|
+
render: ({ contractAmendmentBag, components, }: ContractAmendmentRenderProps) => React.ReactNode;
|
|
40
41
|
};
|
|
41
|
-
declare function ContractAmendmentFlow({ employmentId, countryCode, options, render, }: ContractAmendmentFlowProps):
|
|
42
|
+
declare function ContractAmendmentFlow({ employmentId, countryCode, options, render, }: ContractAmendmentFlowProps): react_jsx_runtime.JSX.Element;
|
|
42
43
|
|
|
43
44
|
export { ContractAmendmentFlow, type ContractAmendmentRenderProps };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"../../chunk-
|
|
1
|
+
import{a}from"../../chunk-DIR3VPZR.js";import"../../chunk-Q6U6K2S6.js";import"../../chunk-RJGJMVJP.js";import"../../chunk-3PH5E6CZ.js";import"../../chunk-JRQSZHUU.js";import"../../chunk-O3QLBSMV.js";import"../../chunk-GMU3QGAR.js";import"../../chunk-2URGWNSM.js";import"../../chunk-WF4FKBRR.js";import"../../chunk-6T3A6GWH.js";import"../../chunk-YLWCN7R2.js";import"../../chunk-ENMJ56WK.js";import"../../chunk-NEFNFYRS.js";import"../../chunk-A4RX3KRZ.js";import"../../chunk-WRDKLT4N.js";import"../../chunk-EMVYCKDC.js";import"../../chunk-ONZPO4GN.js";import"../../chunk-TPRGCMIZ.js";import"../../chunk-6HGUGIYJ.js";import"../../chunk-5ETXP2QF.js";import"../../chunk-AYDF3IFZ.js";export{a as ContractAmendmentFlow};
|
|
2
2
|
//# sourceMappingURL=ContractAmendmentFlow.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
1
2
|
import { P as PostAutomatableContractAmendmentError, C as ContractAmendmentAutomatableResponse } from '../../types.gen-CAOUvsW-.js';
|
|
2
|
-
import React__default from 'react';
|
|
3
3
|
import { FieldValues } from 'react-hook-form';
|
|
4
4
|
|
|
5
5
|
type ContractAmendmentFormProps = {
|
|
@@ -28,6 +28,6 @@ type ContractAmendmentFormProps = {
|
|
|
28
28
|
*/
|
|
29
29
|
onSuccess?: (data: ContractAmendmentAutomatableResponse) => void | Promise<void>;
|
|
30
30
|
};
|
|
31
|
-
declare function ContractAmendmentForm({ onSubmit, onError, onSuccess, }: ContractAmendmentFormProps):
|
|
31
|
+
declare function ContractAmendmentForm({ onSubmit, onError, onSuccess, }: ContractAmendmentFormProps): react_jsx_runtime.JSX.Element;
|
|
32
32
|
|
|
33
33
|
export { ContractAmendmentForm };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"../../chunk-
|
|
1
|
+
import{a}from"../../chunk-YLWCN7R2.js";import"../../chunk-ENMJ56WK.js";import"../../chunk-NEFNFYRS.js";import"../../chunk-A4RX3KRZ.js";import"../../chunk-WRDKLT4N.js";import"../../chunk-EMVYCKDC.js";import"../../chunk-ONZPO4GN.js";import"../../chunk-TPRGCMIZ.js";import"../../chunk-6HGUGIYJ.js";import"../../chunk-5ETXP2QF.js";import"../../chunk-AYDF3IFZ.js";export{a as ContractAmendmentForm};
|
|
2
2
|
//# sourceMappingURL=ContractAmendmentForm.js.map
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { PropsWithChildren, ButtonHTMLAttributes } from 'react';
|
|
2
3
|
|
|
3
|
-
declare function ContractAmendmentSubmit({ children, ...props }: PropsWithChildren<ButtonHTMLAttributes<HTMLButtonElement>>):
|
|
4
|
+
declare function ContractAmendmentSubmit({ children, ...props }: PropsWithChildren<ButtonHTMLAttributes<HTMLButtonElement>>): react_jsx_runtime.JSX.Element;
|
|
4
5
|
|
|
5
6
|
export { ContractAmendmentSubmit };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"../../chunk-
|
|
1
|
+
import{a}from"../../chunk-Q6U6K2S6.js";import"../../chunk-EMVYCKDC.js";import"../../chunk-6HGUGIYJ.js";import"../../chunk-5ETXP2QF.js";import"../../chunk-AYDF3IFZ.js";export{a as ContractAmendmentSubmit};
|
|
2
2
|
//# sourceMappingURL=ContractAmendmentSubmit.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { S as SuccessResponse, E as ErrorResponse } from '../../mutations-v9H353tz.js';
|
|
2
2
|
import { C as ContractAmendmentAutomatableResponse, P as PostAutomatableContractAmendmentError, a as ContractAmendmentResponse, b as PostCreateContractAmendmentError } from '../../types.gen-CAOUvsW-.js';
|
|
3
3
|
import * as _remoteoss_json_schema_form from '@remoteoss/json-schema-form';
|
|
4
|
-
import * as
|
|
4
|
+
import * as react from 'react';
|
|
5
5
|
import * as react_hook_form from 'react-hook-form';
|
|
6
6
|
import { useContractAmendment } from './hooks.js';
|
|
7
7
|
import { Step } from '../useStepState.js';
|
|
@@ -9,7 +9,7 @@ import './types.js';
|
|
|
9
9
|
import '../types.js';
|
|
10
10
|
import '../CostCalculator/types.js';
|
|
11
11
|
|
|
12
|
-
declare const ContractAmendmentContext:
|
|
12
|
+
declare const ContractAmendmentContext: react.Context<{
|
|
13
13
|
formId: string | undefined;
|
|
14
14
|
contractAmendmentBag: ReturnType<typeof useContractAmendment> | null;
|
|
15
15
|
}>;
|
|
@@ -35,7 +35,7 @@ declare const useContractAmendmentContext: () => {
|
|
|
35
35
|
yupError: _remoteoss_json_schema_form.$TSFixMe;
|
|
36
36
|
formErrors: _remoteoss_json_schema_form.$TSFixMe;
|
|
37
37
|
} | null;
|
|
38
|
-
checkFieldUpdates:
|
|
38
|
+
checkFieldUpdates: react.Dispatch<react.SetStateAction<react_hook_form.FieldValues>>;
|
|
39
39
|
onSubmit: (values: react_hook_form.FieldValues) => Promise<SuccessResponse<({
|
|
40
40
|
data: ContractAmendmentAutomatableResponse;
|
|
41
41
|
error: undefined;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { S as SuccessResponse, E as ErrorResponse } from '../../mutations-v9H353tz.js';
|
|
2
2
|
import { C as ContractAmendmentAutomatableResponse, P as PostAutomatableContractAmendmentError, a as ContractAmendmentResponse, b as PostCreateContractAmendmentError } from '../../types.gen-CAOUvsW-.js';
|
|
3
|
-
import * as
|
|
3
|
+
import * as react from 'react';
|
|
4
4
|
import * as _remoteoss_json_schema_form from '@remoteoss/json-schema-form';
|
|
5
5
|
import { Step } from '../useStepState.js';
|
|
6
6
|
import { ContractAmendmentParams } from './types.js';
|
|
@@ -61,7 +61,7 @@ declare const useContractAmendment: ({ employmentId, countryCode, options, }: Co
|
|
|
61
61
|
* Function to update the current form field values
|
|
62
62
|
* @param values - New form values to set
|
|
63
63
|
*/
|
|
64
|
-
checkFieldUpdates:
|
|
64
|
+
checkFieldUpdates: react.Dispatch<react.SetStateAction<FieldValues>>;
|
|
65
65
|
/**
|
|
66
66
|
* Function to handle form submission
|
|
67
67
|
* @param values - Form values to submit
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"../../chunk-
|
|
1
|
+
import{a}from"../../chunk-RJGJMVJP.js";import"../../chunk-3PH5E6CZ.js";import"../../chunk-JRQSZHUU.js";import"../../chunk-O3QLBSMV.js";import"../../chunk-GMU3QGAR.js";import"../../chunk-2URGWNSM.js";import"../../chunk-WRDKLT4N.js";import"../../chunk-TPRGCMIZ.js";import"../../chunk-AYDF3IFZ.js";export{a as useContractAmendment};
|
|
2
2
|
//# sourceMappingURL=hooks.js.map
|
|
@@ -3,10 +3,11 @@ export { ContractAmendmentFlow, ContractAmendmentRenderProps } from './ContractA
|
|
|
3
3
|
export { ContractAmendmentForm } from './ContractAmendmentForm.js';
|
|
4
4
|
export { ContractAmendmentSubmit } from './ContractAmendmentSubmit.js';
|
|
5
5
|
export { useContractAmendment } from './hooks.js';
|
|
6
|
+
import 'react/jsx-runtime';
|
|
6
7
|
import '../../types.gen-CAOUvsW-.js';
|
|
7
|
-
import 'react';
|
|
8
8
|
import 'react-hook-form';
|
|
9
9
|
import './ContractAmendmentBack.js';
|
|
10
|
+
import 'react';
|
|
10
11
|
import './types.js';
|
|
11
12
|
import '../types.js';
|
|
12
13
|
import '../CostCalculator/types.js';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../../chunk-A7ZJQCNU.js";import{a as e}from"../../chunk-
|
|
1
|
+
import"../../chunk-A7ZJQCNU.js";import{a as e}from"../../chunk-DIR3VPZR.js";import{a as c}from"../../chunk-Q6U6K2S6.js";import{a as d}from"../../chunk-RJGJMVJP.js";import"../../chunk-3PH5E6CZ.js";import"../../chunk-JRQSZHUU.js";import"../../chunk-O3QLBSMV.js";import"../../chunk-GMU3QGAR.js";import"../../chunk-2URGWNSM.js";import"../../chunk-WF4FKBRR.js";import{a}from"../../chunk-6T3A6GWH.js";import{a as b}from"../../chunk-YLWCN7R2.js";import"../../chunk-ENMJ56WK.js";import"../../chunk-NEFNFYRS.js";import"../../chunk-A4RX3KRZ.js";import"../../chunk-WRDKLT4N.js";import"../../chunk-EMVYCKDC.js";import"../../chunk-ONZPO4GN.js";import"../../chunk-TPRGCMIZ.js";import"../../chunk-6HGUGIYJ.js";import"../../chunk-5ETXP2QF.js";import"../../chunk-AYDF3IFZ.js";export{a as ContractAmendmentConfirmationForm,e as ContractAmendmentFlow,b as ContractAmendmentForm,c as ContractAmendmentSubmit,d as useContractAmendment};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a,b}from"../../chunk-
|
|
1
|
+
import{a,b}from"../../chunk-O3QLBSMV.js";import"../../chunk-TPRGCMIZ.js";import"../../chunk-AYDF3IFZ.js";export{a as STEPS,b as buildInitialValues};
|
|
2
2
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
|
|
3
3
|
type CostCalculatorDisclaimerProps = {
|
|
4
4
|
label?: string;
|
|
5
5
|
};
|
|
6
|
-
declare const CostCalculatorDisclaimer: ({ label, }: CostCalculatorDisclaimerProps) =>
|
|
6
|
+
declare const CostCalculatorDisclaimer: ({ label, }: CostCalculatorDisclaimerProps) => react_jsx_runtime.JSX.Element;
|
|
7
7
|
|
|
8
8
|
export { CostCalculatorDisclaimer };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"../../chunk-
|
|
1
|
+
import{a}from"../../chunk-U4M5QBBG.js";import"../../chunk-DYB3RWP7.js";import"../../chunk-EMVYCKDC.js";import"../../chunk-5ETXP2QF.js";import"../../chunk-AYDF3IFZ.js";export{a as CostCalculatorDisclaimer};
|
|
2
2
|
//# sourceMappingURL=CostCalculatorDisclaimer.js.map
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
1
2
|
import { useCostCalculator } from './hooks.js';
|
|
2
3
|
import { CostCalculatorEstimationOptions, JSFModify } from './types.js';
|
|
3
|
-
import
|
|
4
|
+
import react__default from 'react';
|
|
4
5
|
import 'yup';
|
|
5
6
|
import '@tanstack/react-query';
|
|
6
7
|
import '../../types.gen-CAOUvsW-.js';
|
|
@@ -32,8 +33,8 @@ type CostCalculatorFlowProps = {
|
|
|
32
33
|
options?: {
|
|
33
34
|
jsfModify?: JSFModify;
|
|
34
35
|
};
|
|
35
|
-
render: (costCalculatorBag: ReturnType<typeof useCostCalculator>) =>
|
|
36
|
+
render: (costCalculatorBag: ReturnType<typeof useCostCalculator>) => react__default.ReactNode;
|
|
36
37
|
};
|
|
37
|
-
declare const CostCalculatorFlow: ({ estimationOptions, defaultValues, options, render, }: CostCalculatorFlowProps) =>
|
|
38
|
+
declare const CostCalculatorFlow: ({ estimationOptions, defaultValues, options, render, }: CostCalculatorFlowProps) => react_jsx_runtime.JSX.Element;
|
|
38
39
|
|
|
39
40
|
export { CostCalculatorFlow, type CostCalculatorFlowProps };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"../../chunk-
|
|
1
|
+
import{a}from"../../chunk-DBIPVIBO.js";import"../../chunk-YG5FFTC4.js";import"../../chunk-WU77JQYU.js";import"../../chunk-UPRUP24B.js";import"../../chunk-GMU3QGAR.js";import"../../chunk-A4RX3KRZ.js";import"../../chunk-WRDKLT4N.js";import"../../chunk-TPRGCMIZ.js";import"../../chunk-AYDF3IFZ.js";export{a as CostCalculatorFlow};
|
|
2
2
|
//# sourceMappingURL=CostCalculatorFlow.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
1
2
|
import { c as CostCalculatorEstimateResponse } from '../../types.gen-CAOUvsW-.js';
|
|
2
3
|
import { EstimationError } from './hooks.js';
|
|
3
|
-
import {
|
|
4
|
-
import React__default from 'react';
|
|
4
|
+
import { CostCalculatorEstimationSubmitValues } from './types.js';
|
|
5
5
|
import 'yup';
|
|
6
6
|
import '@tanstack/react-query';
|
|
7
7
|
import '../types.js';
|
|
@@ -12,7 +12,7 @@ type CostCalculatorFormProps = Partial<{
|
|
|
12
12
|
* Callback function that handles form submission. When form is submit, the form values are sent to the consumer app before behind submitted to Remote.
|
|
13
13
|
* @param data - The payload sent to the /cost-calculator/estimation endpoint.
|
|
14
14
|
*/
|
|
15
|
-
onSubmit: (data:
|
|
15
|
+
onSubmit: (data: CostCalculatorEstimationSubmitValues) => Promise<void> | void;
|
|
16
16
|
/**
|
|
17
17
|
* Callback function to handle the success when the estimation succeeds. The CostCalculatorEstimateResponse is sent back to you.
|
|
18
18
|
* @param data - The response data from the /cost-calculator/estimation endpoint.
|
|
@@ -23,7 +23,11 @@ type CostCalculatorFormProps = Partial<{
|
|
|
23
23
|
* @param error - The error object.
|
|
24
24
|
*/
|
|
25
25
|
onError: (error: EstimationError) => void;
|
|
26
|
+
/**
|
|
27
|
+
* Whether to reset the form when the form is successfully submitted.
|
|
28
|
+
*/
|
|
29
|
+
shouldResetForm?: boolean;
|
|
26
30
|
}>;
|
|
27
|
-
declare function CostCalculatorForm({ onSubmit, onError, onSuccess, }: CostCalculatorFormProps):
|
|
31
|
+
declare function CostCalculatorForm({ onSubmit, onError, onSuccess, shouldResetForm, }: CostCalculatorFormProps): react_jsx_runtime.JSX.Element;
|
|
28
32
|
|
|
29
33
|
export { CostCalculatorForm };
|