@remoteoss/remote-flows 0.4.0-alpha.6 → 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/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-HCAVC2KN.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-4PNVFAMJ.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-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-AU36GYLZ.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-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-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-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-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/index.d.ts +2 -1
- package/dist/flows/ContractAmendment/index.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 +4 -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/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/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 +3 -2
- package/dist/chunk-3FVI5JIC.js +0 -2
- package/dist/chunk-3IOMT3AE.js +0 -2
- package/dist/chunk-3IOMT3AE.js.map +0 -1
- package/dist/chunk-43345OYS.js +0 -2
- package/dist/chunk-43345OYS.js.map +0 -1
- package/dist/chunk-4KIKAZNO.js +0 -2
- package/dist/chunk-4KIKAZNO.js.map +0 -1
- package/dist/chunk-4PNVFAMJ.js +0 -2
- package/dist/chunk-56BNVYTD.js +0 -2
- package/dist/chunk-6A3F6JG6.js +0 -2
- package/dist/chunk-6A3F6JG6.js.map +0 -1
- package/dist/chunk-76MP23BL.js +0 -2
- package/dist/chunk-76MP23BL.js.map +0 -1
- package/dist/chunk-7CYG2RHP.js +0 -2
- package/dist/chunk-7CYG2RHP.js.map +0 -1
- package/dist/chunk-AU36GYLZ.js +0 -2
- 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-EWUUVK2K.js +0 -2
- package/dist/chunk-EWUUVK2K.js.map +0 -1
- package/dist/chunk-FMT2OTOL.js +0 -2
- package/dist/chunk-FMT2OTOL.js.map +0 -1
- package/dist/chunk-GFBF55NR.js +0 -2
- package/dist/chunk-GHOJ3LWH.js +0 -2
- package/dist/chunk-GHOJ3LWH.js.map +0 -1
- package/dist/chunk-GMGKIQLI.js +0 -2
- package/dist/chunk-HCAVC2KN.js +0 -2
- package/dist/chunk-HS4YNYBH.js +0 -2
- package/dist/chunk-HS4YNYBH.js.map +0 -1
- 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-JDDP3DHS.js +0 -2
- package/dist/chunk-JDDP3DHS.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-M7WCW7WD.js +0 -2
- package/dist/chunk-M7WCW7WD.js.map +0 -1
- package/dist/chunk-MCGCUNZW.js +0 -2
- package/dist/chunk-MCGCUNZW.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-N4L6QFI4.js +0 -2
- package/dist/chunk-N4L6QFI4.js.map +0 -1
- package/dist/chunk-OLJ2S6A6.js.map +0 -1
- package/dist/chunk-PZTCP3TY.js +0 -2
- package/dist/chunk-PZTCP3TY.js.map +0 -1
- package/dist/chunk-QEMBR67V.js +0 -2
- package/dist/chunk-QEMBR67V.js.map +0 -1
- package/dist/chunk-SCMGXEPG.js +0 -2
- package/dist/chunk-SCMGXEPG.js.map +0 -1
- package/dist/chunk-T4GDGH4D.js +0 -2
- package/dist/chunk-T4GDGH4D.js.map +0 -1
- package/dist/chunk-T5UW2DG3.js +0 -2
- package/dist/chunk-T5UW2DG3.js.map +0 -1
- package/dist/chunk-TGYPE2O2.js +0 -2
- package/dist/chunk-TGYPE2O2.js.map +0 -1
- package/dist/chunk-TICIER55.js +0 -2
- package/dist/chunk-TICIER55.js.map +0 -1
- package/dist/chunk-VURWIX6S.js +0 -2
- package/dist/chunk-VURWIX6S.js.map +0 -1
- package/dist/chunk-WQHKB5T7.js +0 -2
- package/dist/chunk-WQHKB5T7.js.map +0 -1
- package/dist/chunk-X56KZDDQ.js +0 -2
- package/dist/chunk-X56KZDDQ.js.map +0 -1
- package/dist/chunk-XLFHHYVS.js +0 -2
- package/dist/chunk-XLFHHYVS.js.map +0 -1
- package/dist/chunk-YOC3VDC7.js +0 -2
- package/dist/chunk-YOC3VDC7.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/Termination/AdditionalDetailsForm.tsx"],"sourcesContent":["import React from 'react';\nimport { 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":"wHAAA,OAAOA,MAAW,QA2BX,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,OAAOC,EAAA,cAACC,EAAA,CAAgB,OAAQH,EAAe,SAAUJ,EAAc,CACzE,CArCgBC,EAAAR,EAAA","names":["React","AdditionalDetailsForm","requesterName","onSubmit","onSuccess","onError","terminationBag","useTerminationContext","handleSubmit","__name","values","terminationResult","updatedFields","field","React","TerminationForm"]}
|
package/dist/chunk-TICIER55.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as x}from"./chunk-J55S4SEH.js";import{a as N}from"./chunk-6A3F6JG6.js";import{a as g,b as _,c as h,d as v,e as T}from"./chunk-GMGKIQLI.js";import{a as P}from"./chunk-WQHKB5T7.js";import{a as w}from"./chunk-KH6QS5OU.js";import{a as y}from"./chunk-GFBF55NR.js";import{a as l}from"./chunk-5ETXP2QF.js";import{a as n}from"./chunk-AYDF3IFZ.js";import{Euro as j}from"lucide-react";import t,{lazy as z,useState as E}from"react";import*as c from"react";import*as r from"@radix-ui/react-tabs";function k({className:a,...o}){return c.createElement(r.Root,{"data-slot":"tabs",className:l("flex flex-col gap-2",a),...o})}n(k,"Tabs");function B({className:a,...o}){return c.createElement(r.List,{"data-slot":"tabs-list",className:l("bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-1",a),...o})}n(B,"TabsList");function d({className:a,...o}){return c.createElement(r.Trigger,{"data-slot":"tabs-trigger",className:l("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",a),...o})}n(d,"TabsTrigger");var H=z(()=>import("./flows/CostCalculator/Results/CostCalculatorResultsChart.js"));function X({employmentData:a,options:o}){let[e,S]=E("monthly"),i=a.employments?.[0];if(!i)return null;let s=i.employer_currency_costs,m=s.currency.symbol,b=e==="monthly"?s.monthly_gross_salary:s.annual_gross_salary,f=e==="monthly"?s.monthly_benefits_total:s.annual_benefits_total,C=e==="monthly"?s.monthly_contributions_total:s.annual_contributions_total,D=e==="monthly"?s.monthly_total:s.annual_total,u=e==="monthly"?s.monthly_benefits_breakdown:s.annual_benefits_breakdown,L=e==="monthly"?s.monthly_contributions_breakdown:s.annual_contributions_breakdown,p=[{name:"Gross Salary",value:b,color:o?.chartColors?.grossSalary??"#3b82f6"},{name:"Contributions",value:C,color:o?.chartColors?.contributions??"#f59e0b"}];return u&&p.push({name:"Benefits",value:f??0,color:o?.chartColors?.benefits??"#10b981"}),t.createElement(t.Fragment,null,t.createElement("div",{className:"flex flex-col md:flex-row gap-4 md:items-center justify-between mb-6 RemoteFlows__CostCalculatorResults"},t.createElement("div",{className:"RemoteFlows__CostCalculatorResults__Header"},t.createElement("h2",{className:"text-xl font-semibold flex items-center gap-2"},t.createElement("span",{className:"flex items-center gap-1"},t.createElement(j,{className:"h-5 w-5 text-gray-600"}),o?.title??"Cost Calculator"),t.createElement(y,{className:"ml-2"},i.country.name)),t.createElement("p",{className:"text-primary-foreground font-medium mt-1"},o?.description??`Total cost of employment in ${i.country.name}`)),t.createElement(k,{value:e,onValueChange:F=>S(F),className:"w-full md:w-auto RemoteFlows__CostCalculatorResults__Tabs"},t.createElement(B,{className:"grid w-full md:w-[200px] grid-cols-2"},t.createElement(d,{value:"monthly"},"Monthly"),t.createElement(d,{value:"annual"},"Annual")))),t.createElement("div",{className:l("grid grid-cols-1 gap-6",o?.showChart?"md:grid-cols-3":"","RemoteFlows__CostCalculatorResults_CostBreakdown")},t.createElement(g,{className:"md:col-span-2 rounded-lg"},t.createElement(_,{className:"pb-2"},t.createElement(h,null,"Cost Breakdown"),t.createElement(v,null,"Detailed breakdown of all employer costs")),t.createElement(T,null,t.createElement("div",{className:"space-y-6"},t.createElement(N,{grossSalary:b,currency:m}),u?t.createElement(w,{benefitsBreakdown:u,benefitsTotal:f,currency:m}):null,t.createElement(x,{contributionsBreakdown:L,contributionsTotal:C,currency:m}),t.createElement(P,{totalCost:D,currency:m})))),o?.showChart&&t.createElement(H,{chartData:p,currency:m})))}n(X,"CostCalculatorResults");export{X as a};
|
|
2
|
-
//# sourceMappingURL=chunk-TICIER55.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/CostCalculator/Results/CostCalculatorResults.tsx","../src/components/ui/tabs.tsx"],"sourcesContent":["import { Euro } from 'lucide-react';\nimport React, { 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","React","lazy","useState","React","TabsPrimitive","Tabs","className","props","cn","__name","TabsList","TabsTrigger","CostCalculatorResultsChart","lazy","CostCalculatorResults","employmentData","options","view","setView","useState","employment","costs","currency","grossSalary","benefitsTotal","contributionsTotal","totalCost","benefitsBreakdown","contributionsBreakdown","chartData","React","Euro","Badge","Tabs","v","TabsList","TabsTrigger","cn","Card","CardHeader","CardTitle","CardDescription","CardContent","CostCalculatorGrossSalary","CostCalculatorBenefitsBreakdown","CostCalculatorContributionsBreakdown","CostCalculatorTotalCost","__name"]}
|
package/dist/chunk-VURWIX6S.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as x}from"./chunk-UPRUP24B.js";import{e as j,i as M,n as w,r as B,u as O}from"./chunk-GMU3QGAR.js";import{a as V}from"./chunk-A4RX3KRZ.js";import{d as f}from"./chunk-WRDKLT4N.js";import{a as y,c as A}from"./chunk-TPRGCMIZ.js";import{a as r}from"./chunk-AYDF3IFZ.js";import{object as se}from"yup";import{createHeadlessForm as k,modify as I}from"@remoteoss/json-schema-form";import{useMutation as K,useQuery as p}from"@tanstack/react-query";import{useState as q}from"react";import{string as L,ValidationError as J}from"yup";var oe=r(({includePremiumBenefits:e})=>{let{client:o}=f();return p({queryKey:["cost-calculator-countries",e],queryFn:r(()=>w({client:o,headers:{Authorization:""},query:{include_premium_benefits:e}}),"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"),ie=r(()=>{let{client:e}=f();return p({queryKey:["company-currencies"],queryFn:r(()=>O({client:e,headers:{Authorization:""}}),"queryFn"),select:r(o=>o.data?.data?.company_currencies.map(n=>({value:n.slug,label:n.code})),"select")})},"useCompanyCurrencies"),ne=r(()=>{let{client:e}=f();return K({mutationFn:r(o=>j({client:e,headers:{Authorization:""},body:o}),"mutationFn")})},"useCostCalculatorEstimation"),Fe=r(()=>{let{client:e}=f();return K({mutationFn:r(o=>M({client:e,headers:{Authorization:""},body:o}),"mutationFn")})},"useCostCalculatorEstimationPdf"),ae=r((e,{includePremiumBenefits:o,options:n})=>{let{client:a}=f();return p({queryKey:["cost-calculator-region-fields",e,o],queryFn:r(()=>B({client:a,headers:{Authorization:""},path:{slug:e},query:{include_premium_benefits:o}}),"queryFn"),enabled:!!e,select:r(({data:s})=>{let u=s?.data?.schema||{};if(n&&n.jsfModify){let{schema:c}=I(u,n.jsfModify);u=c}return k(u)},"select")})},"useRegionFields"),E={title:"Estimation",includeBenefits:!1,includeCostBreakdowns:!1,includePremiumBenefits:!1},Pe=r(({defaultRegion:e,estimationOptions:o,options:n}={estimationOptions:E})=>{let{schema:a}=I(x.data.schema,n?.jsfModify||{}),s=k(a),[u,c]=q(e),[h,b]=q(),{data:g,isLoading:G}=oe({includePremiumBenefits:o.includePremiumBenefits}),{data:_,isLoading:U}=ie(),$=u||h?.value,{data:S,isLoading:H}=ae($,{includePremiumBenefits:o.includePremiumBenefits,options:n}),F=ne();async function N(i){try{await C.validate(i,{abortEarly:!1})}catch(t){return{data:null,error:t}}return new Promise((t,d)=>{F.mutate(T(i,o),{onSuccess:r(l=>{l.data?t({data:l.data,error:null}):t({data:null,error:new Error("Something went wrong. Please try again later.")})},"onSuccess"),onError:r(l=>{d({data:null,error:l})},"onError")})})}r(N,"onSubmit");function Q(i){let t=g?.find(({value:d})=>d===i);t&&t.childRegions.length===0&&t.hasAdditionalFields?c(t.regionSlug):c(void 0),b(t)}r(Q,"onCountryChange");function D(i){c(i)}r(D,"onRegionChange");let m=s.fields.find(i=>i.name==="region");if(m){let i=h?.childRegions.map(t=>({value:t.slug,label:t.name}))??[];m.options=i,m.isVisible=i.length>0,m.required=i.length>0,m.onChange=D,m.schema=i.length>0?L().transform(t=>typeof t=="string"?t:"").required("Region is required"):L()}if(_){let i=s.fields.find(t=>t.name==="currency");i&&(i.options=_)}if(g){let i=s.fields.find(t=>t.name==="country");i&&(i.options=g,i.onChange=Q)}let W=r(()=>{b(void 0),c(e)},"resetForm"),P=[...s.fields,...S?.fields||[]],C=z(s.fields);async function X(i){let t=null,d=A(i,P);try{await C.validate(d,{abortEarly:!1}),t={formErrors:{},yupError:new J([],i)}}catch(R){let v=V(R);t={formErrors:Object.entries(v).reduce((ee,[te,re])=>({...ee,[te]:re.message}),{}),yupError:R}}let l=S?.handleValidation(d),Y=[...t?.yupError.inner||[],...l?.yupError?.inner||[]],Z={...t?.yupError?.value||{},...l?.yupError?.value||{}};return{formErrors:{...t?.formErrors||{},...l?.formErrors||{}},yupError:new J(Y,Z)}}return r(X,"handleValidation"),{stepState:{current:0,total:1,isLastStep:!0},fields:P,validationSchema:C,handleValidation:X,isSubmitting:F.isPending,isLoading:G&&U&&H,onSubmit:N,resetForm:W}},"useCostCalculator");function z(e){let o=e.reduce((n,a)=>(n[a.name]=a.schema,n),{});return se(o)}r(z,"buildValidationSchema");function le(e){let o="benefit-";return Object.keys(e).reduce((n,a)=>{let u={benefit_group_slug:a.replace(o,""),benefit_tier_slug:e[a]};return[...n,u]},[])}r(le,"formatBenefits");function T(e,o=E){return{employer_currency_slug:e.currency,include_benefits:o.includeBenefits,include_cost_breakdowns:o.includeCostBreakdowns,include_premium_benefits:o.includePremiumBenefits,employments:[{region_slug:e.region||e.country,annual_gross_salary:y(e.salary),annual_gross_salary_in_employer_currency:y(e.salary),employment_term:e.contract_duration_type??"fixed",title:o.title,regional_to_employer_exchange_rate:"1",age:e.age??void 0,...e.benefits&&{benefits:le(e.benefits)}}]}}r(T,"buildPayload");export{z as a,T as b,Fe as c,E as d,Pe as e};
|
|
2
|
-
//# sourceMappingURL=chunk-VURWIX6S.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/CostCalculator/utils.ts","../src/flows/CostCalculator/hooks.ts"],"sourcesContent":["import type { CostCalculatorEstimateParams } from '@/src/client';\n\nimport { convertToCents } from '@/src/components/form/utils';\nimport { $TSFixMe } from '@remoteoss/json-schema-form';\nimport { AnyObjectSchema, object } from 'yup';\nimport { defaultEstimationOptions } from './hooks';\nimport type {\n CostCalculatorEstimationFormValues,\n CostCalculatorEstimationOptions,\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: CostCalculatorEstimationFormValues,\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: convertToCents(values.salary) as number,\n annual_gross_salary_in_employer_currency: convertToCents(\n values.salary,\n ) as number,\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 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: CostCalculatorEstimationFormValues,\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 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","buildValidationSchema","fields","fieldsSchema","fieldsSchemaAcc","field","object","__name","formatBenefits","benefits","needle","acc","key","benefitEntry","buildPayload","values","estimationOptions","defaultEstimationOptions","convertToCents"]}
|
package/dist/chunk-WQHKB5T7.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{b as r}from"./chunk-5ETXP2QF.js";import{a as o}from"./chunk-AYDF3IFZ.js";import t from"react";function n({totalCost:s,currency:a}){return t.createElement("div",{className:"pt-2 mt-4 border-t-2 border-gray-200"},t.createElement("div",{className:"flex justify-between items-center"},t.createElement("h3",{className:"font-bold text-primary-foreground-800"},"Total Cost"),t.createElement("span",{className:"font-bold text-xl"},r(s,a))))}o(n,"CostCalculatorTotalCost");export{n as a};
|
|
2
|
-
//# sourceMappingURL=chunk-WQHKB5T7.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/CostCalculator/Results/CostCalculatorTotalCost.tsx"],"sourcesContent":["import React from 'react';\n\nimport { formatCurrency } from '@/src/lib/utils';\n\ntype CostCalculatorTotalCostProps = {\n totalCost: number;\n currency: string;\n};\n\nexport function CostCalculatorTotalCost({\n totalCost,\n currency,\n}: CostCalculatorTotalCostProps) {\n return (\n <div className=\"pt-2 mt-4 border-t-2 border-gray-200\">\n <div className=\"flex justify-between items-center\">\n <h3 className=\"font-bold text-primary-foreground-800\">Total Cost</h3>\n <span className=\"font-bold text-xl\">\n {formatCurrency(totalCost, currency)}\n </span>\n </div>\n </div>\n );\n}\n"],"mappings":"gFAAA,OAAOA,MAAW,QASX,SAASC,EAAwB,CACtC,UAAAC,EACA,SAAAC,CACF,EAAiC,CAC/B,OACEC,EAAA,cAAC,OAAI,UAAU,wCACbA,EAAA,cAAC,OAAI,UAAU,qCACbA,EAAA,cAAC,MAAG,UAAU,yCAAwC,YAAU,EAChEA,EAAA,cAAC,QAAK,UAAU,qBACbC,EAAeH,EAAWC,CAAQ,CACrC,CACF,CACF,CAEJ,CAdgBG,EAAAL,EAAA","names":["React","CostCalculatorTotalCost","totalCost","currency","React","formatCurrency","__name"]}
|
package/dist/chunk-X56KZDDQ.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a}from"./chunk-XLFHHYVS.js";import{a as c}from"./chunk-RJGJMVJP.js";import{a as e}from"./chunk-FMT2OTOL.js";import{a as m}from"./chunk-HS4YNYBH.js";import{a as r}from"./chunk-EWUUVK2K.js";import{a as o}from"./chunk-6HGUGIYJ.js";import{a as n}from"./chunk-AYDF3IFZ.js";import f,{useId as s}from"react";function k({employmentId:d,countryCode:C,options:p,render:A}){let t=c({employmentId:d,countryCode:C,options:p}),i=s();return f.createElement(o.Provider,{value:{formId:i,contractAmendmentBag:t}},A({contractAmendmentBag:t,components:{Form:r,SubmitButton:a,ConfirmationForm:m,BackButton:e}}))}n(k,"ContractAmendmentFlow");export{k as a};
|
|
2
|
-
//# sourceMappingURL=chunk-X56KZDDQ.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/ContractAmendment/ContractAmendmentFlow.tsx"],"sourcesContent":["import React, { useId } from 'react';\nimport { ContractAmendmentContext } from './context';\nimport { ContractAmendmentBack } from './ContractAmendmentBack';\nimport { ContractAmendmentConfirmationForm } from './ContractAmendmentConfirmationForm';\nimport { ContractAmendmentForm } from './ContractAmendmentForm';\nimport { ContractAmendmentSubmit } from './ContractAmendmentSubmit';\nimport { useContractAmendment } from './hooks';\nimport { ContractAmendmentParams } from './types';\n\ntype TUseContractAmendment = ReturnType<typeof useContractAmendment>;\n\nexport type ContractAmendmentRenderProps = {\n /**\n * The contract amendment bag returned by the useContractAmendment hook.\n * This bag contains all the methods and properties needed to handle the contract amendment flow.\n * @see {@link useContractAmendment}\n */\n contractAmendmentBag: TUseContractAmendment;\n /**\n * The components used in the contract amendment flow.\n * This includes the form, submit button, and confirmation form.\n * @see {@link ContractAmendmentForm}\n * @see {@link ContractAmendmentSubmit}\n * @see {@link ContractAmendmentConfirmationForm}\n */\n components: {\n Form: typeof ContractAmendmentForm;\n SubmitButton: typeof ContractAmendmentSubmit;\n ConfirmationForm: typeof ContractAmendmentConfirmationForm;\n BackButton: typeof ContractAmendmentBack;\n };\n};\n\ntype ContractAmendmentFlowProps = ContractAmendmentParams & {\n render: ({\n contractAmendmentBag,\n components,\n }: ContractAmendmentRenderProps) => React.ReactNode;\n};\n\nexport function ContractAmendmentFlow({\n employmentId,\n countryCode,\n options,\n render,\n}: ContractAmendmentFlowProps) {\n const contractAmendmentBag = useContractAmendment({\n employmentId,\n countryCode,\n options,\n });\n const formId = useId();\n\n return (\n <ContractAmendmentContext.Provider\n value={{\n formId: formId,\n contractAmendmentBag,\n }}\n >\n {render({\n contractAmendmentBag,\n components: {\n Form: ContractAmendmentForm,\n SubmitButton: ContractAmendmentSubmit,\n ConfirmationForm: ContractAmendmentConfirmationForm,\n BackButton: ContractAmendmentBack,\n },\n })}\n </ContractAmendmentContext.Provider>\n );\n}\n"],"mappings":"mRAAA,OAAOA,GAAS,SAAAC,MAAa,QAwCtB,SAASC,EAAsB,CACpC,aAAAC,EACA,YAAAC,EACA,QAAAC,EACA,OAAAC,CACF,EAA+B,CAC7B,IAAMC,EAAuBC,EAAqB,CAChD,aAAAL,EACA,YAAAC,EACA,QAAAC,CACF,CAAC,EACKI,EAASC,EAAM,EAErB,OACEC,EAAA,cAACC,EAAyB,SAAzB,CACC,MAAO,CACL,OAAQH,EACR,qBAAAF,CACF,GAECD,EAAO,CACN,qBAAAC,EACA,WAAY,CACV,KAAMM,EACN,aAAcC,EACd,iBAAkBC,EAClB,WAAYC,CACd,CACF,CAAC,CACH,CAEJ,CA/BgBC,EAAAf,EAAA","names":["React","useId","ContractAmendmentFlow","employmentId","countryCode","options","render","contractAmendmentBag","useContractAmendment","formId","useId","React","ContractAmendmentContext","ContractAmendmentForm","ContractAmendmentSubmit","ContractAmendmentConfirmationForm","ContractAmendmentBack","__name"]}
|
package/dist/chunk-XLFHHYVS.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{b as o}from"./chunk-56BNVYTD.js";import{b as n}from"./chunk-6HGUGIYJ.js";import{a as t}from"./chunk-AYDF3IFZ.js";import i from"react";function B({children:r,...e}){let{formId:m}=n();return i.createElement(o,{...e,form:m},r)}t(B,"ContractAmendmentSubmit");export{B as a};
|
|
2
|
-
//# sourceMappingURL=chunk-XLFHHYVS.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/ContractAmendment/ContractAmendmentSubmit.tsx"],"sourcesContent":["import { Button } from '@/src/components/ui/button';\nimport React, { ButtonHTMLAttributes, PropsWithChildren } from 'react';\nimport { useContractAmendmentContext } from './context';\n\nexport function ContractAmendmentSubmit({\n children,\n ...props\n}: PropsWithChildren<ButtonHTMLAttributes<HTMLButtonElement>>) {\n const { formId } = useContractAmendmentContext();\n\n return (\n <Button {...props} form={formId}>\n {children}\n </Button>\n );\n}\n"],"mappings":"wHACA,OAAOA,MAAwD,QAGxD,SAASC,EAAwB,CACtC,SAAAC,EACA,GAAGC,CACL,EAA+D,CAC7D,GAAM,CAAE,OAAAC,CAAO,EAAIC,EAA4B,EAE/C,OACEC,EAAA,cAACC,EAAA,CAAQ,GAAGJ,EAAO,KAAMC,GACtBF,CACH,CAEJ,CAXgBM,EAAAP,EAAA","names":["React","ContractAmendmentSubmit","children","props","formId","useContractAmendmentContext","React","Button","__name"]}
|
package/dist/chunk-YOC3VDC7.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{b as n}from"./chunk-DZYFSFZ7.js";import{b as o}from"./chunk-56BNVYTD.js";import{a as t}from"./chunk-AYDF3IFZ.js";import m from"react";function c({children:r,...i}){let{terminationBag:{back:e}}=n();return m.createElement(o,{...i,onClick:()=>{e()}},r)}t(c,"TerminationBack");export{c as a};
|
|
2
|
-
//# sourceMappingURL=chunk-YOC3VDC7.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/Termination/TerminationBack.tsx"],"sourcesContent":["import { Button } from '@/src/components/ui/button';\nimport React, { ButtonHTMLAttributes, PropsWithChildren } from 'react';\nimport { useTerminationContext } from '@/src/flows/Termination/context';\n\nexport function TerminationBack({\n children,\n ...props\n}: PropsWithChildren<ButtonHTMLAttributes<HTMLButtonElement>>) {\n const {\n terminationBag: { back },\n } = useTerminationContext();\n\n return (\n <Button\n {...props}\n onClick={() => {\n back();\n }}\n >\n {children}\n </Button>\n );\n}\n"],"mappings":"wHACA,OAAOA,MAAwD,QAGxD,SAASC,EAAgB,CAC9B,SAAAC,EACA,GAAGC,CACL,EAA+D,CAC7D,GAAM,CACJ,eAAgB,CAAE,KAAAC,CAAK,CACzB,EAAIC,EAAsB,EAE1B,OACEC,EAAA,cAACC,EAAA,CACE,GAAGJ,EACJ,QAAS,IAAM,CACbC,EAAK,CACP,GAECF,CACH,CAEJ,CAlBgBM,EAAAP,EAAA","names":["React","TerminationBack","children","props","back","useTerminationContext","React","Button","__name"]}
|