@remoteoss/remote-flows 0.4.0-alpha.7 → 0.4.0-alpha.8
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-2CIPNPU5.js +2 -0
- package/dist/chunk-2CIPNPU5.js.map +1 -0
- package/dist/chunk-6I6RMJXC.js +2 -0
- package/dist/chunk-6I6RMJXC.js.map +1 -0
- package/dist/{chunk-VH5XUW4V.js → chunk-CLBAB4TV.js} +2 -2
- package/dist/{chunk-I5THC7XD.js → chunk-CX7YH3EY.js} +2 -2
- package/dist/{chunk-RJGJMVJP.js → chunk-ENBY6GBG.js} +2 -2
- package/dist/{chunk-NPRFMPTB.js → chunk-FBJNIQRT.js} +2 -2
- package/dist/chunk-GFGXPHZP.js +2 -0
- package/dist/chunk-GFGXPHZP.js.map +1 -0
- package/dist/{chunk-X2LVNPXB.js → chunk-HBH2PSYQ.js} +2 -2
- package/dist/chunk-JI4NYTW4.js +2 -0
- package/dist/chunk-JI4NYTW4.js.map +1 -0
- package/dist/{chunk-DIR3VPZR.js → chunk-KFQTQ6MF.js} +2 -2
- package/dist/chunk-O562EWKG.js +2 -0
- package/dist/chunk-O562EWKG.js.map +1 -0
- package/dist/{chunk-VKGIGQWC.js → chunk-RS6OHJ7D.js} +2 -2
- package/dist/{chunk-CAKNEET3.js → chunk-U5ZTX2JG.js} +2 -2
- package/dist/chunk-U6GTSXBM.js +2 -0
- package/dist/chunk-U6GTSXBM.js.map +1 -0
- package/dist/{chunk-RBYMQQZC.js → chunk-UFKVREEJ.js} +2 -2
- package/dist/chunk-VYT6PSLL.js +2 -0
- package/dist/chunk-VYT6PSLL.js.map +1 -0
- package/dist/{chunk-VUCFEWCR.js → chunk-XQRRFXRN.js} +2 -2
- package/dist/{chunk-FK3IA6VY.js → chunk-XSS46DGP.js} +2 -2
- package/dist/{chunk-5JH7GALK.js → chunk-XTE3FJRR.js} +2 -2
- package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.d.ts +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentFlow.d.ts +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentFlow.js +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentForm.d.ts +1 -1
- package/dist/flows/ContractAmendment/context.d.ts +1 -1
- package/dist/flows/ContractAmendment/hooks.d.ts +1 -1
- package/dist/flows/ContractAmendment/hooks.js +1 -1
- package/dist/flows/ContractAmendment/index.d.ts +1 -1
- package/dist/flows/ContractAmendment/index.js +1 -1
- package/dist/flows/ContractAmendment/types.d.ts +1 -1
- package/dist/flows/ContractAmendment/utils.d.ts +1 -1
- package/dist/flows/CostCalculator/CostCalculatorFlow.d.ts +1 -1
- package/dist/flows/CostCalculator/CostCalculatorForm.d.ts +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorResults.d.ts +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorResults.js +1 -1
- package/dist/flows/CostCalculator/context.d.ts +1 -1
- package/dist/flows/CostCalculator/hooks.d.ts +1 -1
- package/dist/flows/CostCalculator/index.d.ts +1 -1
- package/dist/flows/CostCalculator/index.js +1 -1
- package/dist/flows/CostCalculator/types.d.ts +1 -1
- package/dist/flows/CostCalculator/utils.d.ts +1 -1
- package/dist/flows/Onboarding/BasicInformationStep.d.ts +1 -1
- package/dist/flows/Onboarding/BasicInformationStep.js +1 -1
- package/dist/flows/Onboarding/BenefitsStep.d.ts +1 -1
- package/dist/flows/Onboarding/BenefitsStep.js +1 -1
- package/dist/flows/Onboarding/ContractDetailsStep.d.ts +1 -1
- package/dist/flows/Onboarding/ContractDetailsStep.js +1 -1
- package/dist/flows/Onboarding/OnboardingBack.js +1 -1
- package/dist/flows/Onboarding/OnboardingFlow.d.ts +6 -1
- package/dist/flows/Onboarding/OnboardingFlow.js +1 -1
- package/dist/flows/Onboarding/OnboardingForm.d.ts +1 -1
- package/dist/flows/Onboarding/OnboardingForm.js +1 -1
- package/dist/flows/Onboarding/OnboardingInvite.d.ts +13 -7
- package/dist/flows/Onboarding/OnboardingInvite.js +1 -1
- package/dist/flows/Onboarding/OnboardingSubmit.js +1 -1
- package/dist/flows/Onboarding/ReviewStep.d.ts +38 -0
- package/dist/flows/Onboarding/ReviewStep.js +2 -0
- package/dist/flows/Onboarding/ReviewStep.js.map +1 -0
- package/dist/flows/Onboarding/SelectCountryStep.d.ts +1 -1
- package/dist/flows/Onboarding/SelectCountryStep.js +1 -1
- package/dist/flows/Onboarding/api.d.ts +4 -8
- package/dist/flows/Onboarding/api.js +1 -1
- package/dist/flows/Onboarding/context.d.ts +24 -1
- package/dist/flows/Onboarding/context.js +1 -1
- package/dist/flows/Onboarding/hooks.d.ts +15 -1
- package/dist/flows/Onboarding/hooks.js +1 -1
- package/dist/flows/Onboarding/index.d.ts +5 -3
- package/dist/flows/Onboarding/index.js +1 -1
- package/dist/flows/Onboarding/types.d.ts +9 -2
- package/dist/flows/Termination/AdditionalDetailsForm.d.ts +1 -1
- package/dist/flows/Termination/EmployeeComunicationForm.d.ts +1 -1
- package/dist/flows/Termination/PaidTimeOffForm.d.ts +1 -1
- package/dist/flows/Termination/TerminationDetailsForm.d.ts +1 -1
- package/dist/flows/Termination/TerminationFlow.d.ts +1 -1
- package/dist/flows/Termination/TerminationFlow.js +1 -1
- package/dist/flows/Termination/TerminationForm.d.ts +1 -1
- package/dist/flows/Termination/TimeOff.d.ts +1 -1
- package/dist/flows/Termination/context.d.ts +1 -1
- package/dist/flows/Termination/hooks.d.ts +1 -1
- package/dist/flows/Termination/hooks.js +1 -1
- package/dist/flows/Termination/index.d.ts +1 -1
- package/dist/flows/Termination/index.js +1 -1
- package/dist/flows/Termination/types.d.ts +1 -1
- package/dist/flows/types.d.ts +1 -1
- package/dist/flows/useStepState.d.ts +7 -0
- package/dist/flows/useStepState.js +1 -1
- package/dist/index.d.ts +6 -4
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/{types.gen-CAOUvsW-.d.ts → types.gen-Ctv2nomK.d.ts} +1 -1
- package/package.json +1 -1
- package/dist/chunk-2URGWNSM.js +0 -2
- package/dist/chunk-2URGWNSM.js.map +0 -1
- package/dist/chunk-4LMZ7PNB.js +0 -2
- package/dist/chunk-4LMZ7PNB.js.map +0 -1
- package/dist/chunk-QH7YYTRC.js +0 -2
- package/dist/chunk-QH7YYTRC.js.map +0 -1
- package/dist/chunk-SNMWJPBW.js +0 -2
- package/dist/chunk-SNMWJPBW.js.map +0 -1
- package/dist/chunk-WS3C3WIJ.js +0 -2
- package/dist/chunk-WS3C3WIJ.js.map +0 -1
- package/dist/chunk-YM5PKRUW.js +0 -2
- package/dist/chunk-YM5PKRUW.js.map +0 -1
- /package/dist/{chunk-VH5XUW4V.js.map → chunk-CLBAB4TV.js.map} +0 -0
- /package/dist/{chunk-I5THC7XD.js.map → chunk-CX7YH3EY.js.map} +0 -0
- /package/dist/{chunk-RJGJMVJP.js.map → chunk-ENBY6GBG.js.map} +0 -0
- /package/dist/{chunk-NPRFMPTB.js.map → chunk-FBJNIQRT.js.map} +0 -0
- /package/dist/{chunk-X2LVNPXB.js.map → chunk-HBH2PSYQ.js.map} +0 -0
- /package/dist/{chunk-DIR3VPZR.js.map → chunk-KFQTQ6MF.js.map} +0 -0
- /package/dist/{chunk-VKGIGQWC.js.map → chunk-RS6OHJ7D.js.map} +0 -0
- /package/dist/{chunk-CAKNEET3.js.map → chunk-U5ZTX2JG.js.map} +0 -0
- /package/dist/{chunk-RBYMQQZC.js.map → chunk-UFKVREEJ.js.map} +0 -0
- /package/dist/{chunk-VUCFEWCR.js.map → chunk-XQRRFXRN.js.map} +0 -0
- /package/dist/{chunk-FK3IA6VY.js.map → chunk-XSS46DGP.js.map} +0 -0
- /package/dist/{chunk-5JH7GALK.js.map → chunk-XTE3FJRR.js.map} +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as N,b as U,c as l}from"./chunk-CVGR3FDH.js";import{a as J,b as x,c as H,f as j,g as q,h as D,i as W,j as K,l as Y}from"./chunk-VYT6PSLL.js";import{a as g}from"./chunk-JRQSZHUU.js";import{a as A}from"./chunk-JI4NYTW4.js";import{c as b,d as m}from"./chunk-TPRGCMIZ.js";import{a as c}from"./chunk-AYDF3IFZ.js";import{useEffect as Fe,useMemo as z,useRef as Ve,useState as G}from"react";import Oe from"lodash.mergewith";var Pe={employment_basic_information:"basic_information",contract_details:"contract_details"},Te={select_country:null,basic_information:"employment_basic_information",contract_details:"contract_details",benefits:null,review:null},Ce=["invited","created_awaiting_reserve","created_reserve_paid"],Ae=c(({employmentId:y,companyId:Q,countryCode:P,type:X,options:E})=>{let h=Ve({}),[r,Z]=G(y),[i,$]=G(P||null),{data:o,isLoading:ee,refetch:te}=J(r),{data:T,isLoading:ne}=H(r),{data:C,isLoading:oe,refetch:w}=x(Q),ae=P?U:N,{fieldValues:u,stepState:e,setFieldValues:re,previousStep:ie,nextStep:se,goToStep:F,setStepValues:k}=A(ae),{selectCountryForm:S,isLoading:ce}=Y(E),L=D(),I=W(),v=K(),{mutateAsync:me}=g(L),{mutateAsync:B}=g(I),{mutateAsync:le}=g(v),R=Te[e.currentStep.name]||"employment_basic_information",ue=Pe[R],de=o?.[ue]||{},fe=!!(i&&(e.currentStep.name==="basic_information"||e.currentStep.name==="contract_details"||y)),{data:s,isLoading:pe}=j({countryCode:i,form:R,fieldValues:Object.keys(u).length>0?{...e.values?.[e.currentStep.name],...u}:de,options:E,enabled:fe}),{data:d,isLoading:ye}=q(r,u,E),V=z(()=>{if(e.currentStep.name==="benefits"){let t={...e.values?.[e.currentStep.name],...u};return Oe({},T,t)}return{}},[e.currentStep.name,T,e.values,u]),n=z(()=>({select_country:S?.fields||[],basic_information:s?.fields||[],contract_details:s?.fields||[],benefits:d?.fields||[],review:[]}),[S?.fields,s?.fields,d?.fields]),Se={select_country:m(n[e.currentStep.name],{country:i||o?.country.code||""}),basic_information:m(n[e.currentStep.name],o?.basic_information||{}),contract_details:m(n[e.currentStep.name],o?.contract_details||{}),benefits:V||{}},O=pe||ee||ye||ne||oe||ce;Fe(()=>{if(y&&o&&Ce.includes(o?.status)&&!O&&e.currentStep.name!=="review"){let t=m(n.select_country,{country:i||o?.country.code||""}),a=m(n.basic_information,o?.basic_information||{}),f=m(n.contract_details,o?.contract_details||{}),_=m(n.benefits,V||{});h.current={select_country:l(t,n.select_country),basic_information:l(a,n.basic_information),contract_details:l(f,n.contract_details),benefits:l(_,n.benefits)},k({select_country:t,basic_information:a,contract_details:f,benefits:_,review:{}}),F("review")}},[y,o,O,i,F,V,n,e.currentStep.name,k]);function M(t){return S&&e.currentStep.name==="select_country"?t:s?b(t,s?.fields,{isPartialValidation:!0}):{}}c(M,"parseFormValues");async function _e(t){h.current[e.currentStep.name]=l(t,n[e.currentStep.name]);let a=M(t);switch(w(),e.currentStep.name){case"select_country":return $(a.country),Promise.resolve({data:{countryCode:a.country}});case"basic_information":{let f=!r&&i,_=r&&i&&o?.country&&o?.country.code!==i;if(f||_){let he={basic_information:a,type:X,country_code:i};try{let p=await me(he);return await w(),Z(p.data?.data?.employment?.id),p}catch(p){throw console.error("Error creating onboarding:",p),p}}else if(r)return B({employmentId:r,basic_information:a,pricing_plan_details:{frequency:"monthly"}});return}case"contract_details":return B({employmentId:r,...{contract_details:a,pricing_plan_details:{frequency:"monthly"}}});case"benefits":return le({employmentId:r,...t})}}c(_e,"onSubmit");function be(){ie()}c(be,"back");function ge(){se()}c(ge,"next");function Ee(t){F(t)}return c(Ee,"goTo"),{employmentId:r,creditRiskStatus:C?.default_legal_entity_credit_risk_status,owner_id:C?.company_owner_user_id,stepState:e,fields:n[e.currentStep.name],isLoading:O,isSubmitting:L.isPending||I.isPending||v.isPending,initialValues:Se,handleValidation:c(t=>{if(e.currentStep.name==="select_country")return S.handleValidation(t);if(e.currentStep.name==="benefits"&&d){let a=b(t,d?.fields);return d?.handleValidation(a)}if(s){let a=b(t,s?.fields);return s?.handleValidation(a)}return null},"handleValidation"),checkFieldUpdates:re,parseFormValues:M,onSubmit:_e,back:be,next:ge,goTo:Ee,meta:{fields:h.current},refetchEmployment:te,employment:o}},"useOnboarding");export{Ae as a};
|
|
2
|
+
//# sourceMappingURL=chunk-2CIPNPU5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/Onboarding/hooks.ts"],"sourcesContent":["import {\n Employment,\n EmploymentCreateParams,\n EmploymentFullParams,\n} from '@/src/client';\nimport { Fields } from '@remoteoss/json-schema-form';\n\nimport { useStepState, Step } from '@/src/flows/useStepState';\nimport {\n prettifyFormValues,\n STEPS,\n STEPS_WITHOUT_SELECT_COUNTRY,\n} from '@/src/flows/Onboarding/utils';\nimport {\n getInitialValues,\n parseJSFToValidate,\n} from '@/src/components/form/utils';\nimport { mutationToPromise } from '@/src/lib/mutations';\nimport { FieldValues } from 'react-hook-form';\nimport { OnboardingFlowParams } from '@/src/flows/Onboarding/types';\nimport { useEffect, useMemo, useRef, useState } from 'react';\nimport mergeWith from 'lodash.mergewith';\nimport {\n useBenefitOffers,\n useBenefitOffersSchema,\n useCompany,\n useCountriesSchemaField,\n useCreateEmployment,\n useEmployment,\n useJSONSchemaForm,\n useUpdateBenefitsOffers,\n useUpdateEmployment,\n} from '@/src/flows/Onboarding/api';\nimport { JSONSchemaFormType } from '@/src/flows/types';\n\ntype OnboardingHookProps = OnboardingFlowParams;\n\nconst jsonSchemaToEmployment: Partial<\n Record<JSONSchemaFormType, keyof Employment>\n> = {\n employment_basic_information: 'basic_information',\n contract_details: 'contract_details',\n};\n\nconst stepToFormSchemaMap: Record<\n keyof typeof STEPS,\n JSONSchemaFormType | null\n> = {\n select_country: null,\n basic_information: 'employment_basic_information',\n contract_details: 'contract_details',\n benefits: null,\n review: null,\n};\n\nconst reviewStepAllowedEmploymentStatus: Employment['status'][] = [\n 'invited',\n 'created_awaiting_reserve',\n 'created_reserve_paid',\n];\n\nexport const useOnboarding = ({\n employmentId,\n companyId,\n countryCode,\n type,\n options,\n}: OnboardingHookProps) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const fieldsMetaRef = useRef<Record<string, any>>({});\n const [internalEmploymentId, setInternalEmploymentId] = useState<\n string | undefined\n >(employmentId);\n const [internalCountryCode, setInternalCountryCode] = useState<string | null>(\n countryCode || null,\n );\n const {\n data: employment,\n isLoading: isLoadingEmployment,\n refetch: refetchEmployment,\n } = useEmployment(internalEmploymentId);\n\n const { data: benefitOffers, isLoading: isLoadingBenefitOffers } =\n useBenefitOffers(internalEmploymentId);\n const {\n data: company,\n isLoading: isLoadingCompany,\n refetch: refetchCompany,\n } = useCompany(companyId);\n const stepsToUse = countryCode ? STEPS_WITHOUT_SELECT_COUNTRY : STEPS;\n\n const {\n fieldValues,\n stepState,\n setFieldValues,\n previousStep,\n nextStep,\n goToStep,\n setStepValues,\n } = useStepState(\n stepsToUse as Record<keyof typeof STEPS, Step<keyof typeof STEPS>>,\n );\n\n const { selectCountryForm, isLoading: isLoadingCountries } =\n useCountriesSchemaField(options);\n\n const createEmploymentMutation = useCreateEmployment();\n const updateEmploymentMutation = useUpdateEmployment();\n const updateBenefitsOffersMutation = useUpdateBenefitsOffers();\n const { mutateAsync: createEmploymentMutationAsync } = mutationToPromise(\n createEmploymentMutation,\n );\n const { mutateAsync: updateEmploymentMutationAsync } = mutationToPromise(\n updateEmploymentMutation,\n );\n const { mutateAsync: updateBenefitsOffersMutationAsync } = mutationToPromise(\n updateBenefitsOffersMutation,\n );\n\n const formType =\n stepToFormSchemaMap[stepState.currentStep.name] ||\n 'employment_basic_information';\n const employmentKey = jsonSchemaToEmployment[formType] as keyof Employment;\n const serverEmploymentData = (employment?.[employmentKey] || {}) as Record<\n string,\n unknown\n >;\n\n const isOnboardingFormEnabled = Boolean(\n internalCountryCode &&\n (stepState.currentStep.name === 'basic_information' ||\n stepState.currentStep.name === 'contract_details' ||\n Boolean(employmentId)),\n );\n\n const { data: onboardingForm, isLoading: isLoadingOnboardingForm } =\n useJSONSchemaForm({\n countryCode: internalCountryCode as string,\n form: formType,\n fieldValues:\n Object.keys(fieldValues).length > 0\n ? {\n ...stepState.values?.[stepState.currentStep.name], // Restore values for the current step\n ...fieldValues,\n }\n : serverEmploymentData,\n options: options,\n enabled: isOnboardingFormEnabled,\n });\n\n const {\n data: benefitOffersSchema,\n isLoading: isLoadingBenefitsOffersSchema,\n } = useBenefitOffersSchema(\n internalEmploymentId as string,\n fieldValues,\n options,\n );\n\n const initialValuesBenefitOffers = useMemo(() => {\n if (stepState.currentStep.name === 'benefits') {\n const benefitsFormValues = {\n ...stepState.values?.[stepState.currentStep.name as keyof typeof STEPS], // Restore values for the current step\n ...fieldValues,\n };\n return mergeWith({}, benefitOffers, benefitsFormValues);\n }\n return {};\n }, [\n stepState.currentStep.name,\n benefitOffers,\n stepState.values,\n fieldValues,\n ]);\n\n const stepFields: Record<keyof typeof STEPS, Fields> = useMemo(\n () => ({\n select_country: selectCountryForm?.fields || [],\n basic_information: onboardingForm?.fields || [],\n contract_details: onboardingForm?.fields || [],\n benefits: benefitOffersSchema?.fields || [],\n review: [],\n }),\n [\n selectCountryForm?.fields,\n onboardingForm?.fields,\n benefitOffersSchema?.fields,\n ],\n );\n\n const initialValues = {\n select_country: getInitialValues(stepFields[stepState.currentStep.name], {\n country: internalCountryCode || employment?.country.code || '',\n }),\n basic_information: getInitialValues(\n stepFields[stepState.currentStep.name],\n employment?.basic_information || {},\n ),\n contract_details: getInitialValues(\n stepFields[stepState.currentStep.name],\n employment?.contract_details || {},\n ),\n benefits: initialValuesBenefitOffers || {},\n };\n\n const isLoading =\n isLoadingOnboardingForm ||\n isLoadingEmployment ||\n isLoadingBenefitsOffersSchema ||\n isLoadingBenefitOffers ||\n isLoadingCompany ||\n isLoadingCountries;\n\n useEffect(() => {\n if (\n employmentId &&\n employment &&\n reviewStepAllowedEmploymentStatus.includes(employment?.status) &&\n !isLoading &&\n stepState.currentStep.name !== 'review'\n ) {\n const selectCountryInitialValues = getInitialValues(\n stepFields['select_country'],\n {\n country: internalCountryCode || employment?.country.code || '',\n },\n );\n\n const basicInformationInitialValues = getInitialValues(\n stepFields['basic_information'],\n employment?.basic_information || {},\n );\n\n const contractDetailsInitialValues = getInitialValues(\n stepFields['contract_details'],\n employment?.contract_details || {},\n );\n\n const benefitsInitialValues = getInitialValues(\n stepFields['benefits'],\n initialValuesBenefitOffers || {},\n );\n fieldsMetaRef.current = {\n select_country: prettifyFormValues(\n selectCountryInitialValues,\n stepFields['select_country'],\n ),\n basic_information: prettifyFormValues(\n basicInformationInitialValues,\n stepFields['basic_information'],\n ),\n contract_details: prettifyFormValues(\n contractDetailsInitialValues,\n stepFields['contract_details'],\n ),\n benefits: prettifyFormValues(\n benefitsInitialValues,\n stepFields['benefits'],\n ),\n };\n\n setStepValues({\n select_country: selectCountryInitialValues,\n basic_information: basicInformationInitialValues,\n contract_details: contractDetailsInitialValues,\n benefits: benefitsInitialValues,\n review: {},\n });\n\n goToStep('review');\n }\n }, [\n employmentId,\n employment,\n isLoading,\n internalCountryCode,\n goToStep,\n initialValuesBenefitOffers,\n stepFields,\n stepState.currentStep.name,\n setStepValues,\n ]);\n\n function parseFormValues(values: FieldValues) {\n if (selectCountryForm && stepState.currentStep.name === 'select_country') {\n return values;\n }\n if (onboardingForm) {\n return parseJSFToValidate(values, onboardingForm?.fields, {\n isPartialValidation: true,\n });\n }\n\n return {};\n }\n\n async function onSubmit(values: FieldValues) {\n // Prettify values for the current step\n fieldsMetaRef.current[stepState.currentStep.name] = prettifyFormValues(\n values,\n stepFields[stepState.currentStep.name],\n );\n\n const parsedValues = parseFormValues(values);\n refetchCompany();\n switch (stepState.currentStep.name) {\n case 'select_country': {\n setInternalCountryCode(parsedValues.country);\n return Promise.resolve({ data: { countryCode: parsedValues.country } });\n }\n case 'basic_information': {\n const isEmploymentNotLoaded =\n !internalEmploymentId && internalCountryCode;\n const hasChangedCountry =\n internalEmploymentId &&\n internalCountryCode &&\n employment?.country &&\n employment?.country.code !== internalCountryCode;\n if (isEmploymentNotLoaded || hasChangedCountry) {\n const payload: EmploymentCreateParams = {\n basic_information: parsedValues,\n type: type,\n country_code: internalCountryCode,\n };\n try {\n const response = await createEmploymentMutationAsync(payload);\n await refetchCompany();\n setInternalEmploymentId(\n // @ts-expect-error the types from the response are not matching\n response.data?.data?.employment?.id,\n );\n return response;\n } catch (error) {\n console.error('Error creating onboarding:', error);\n throw error;\n }\n } else if (internalEmploymentId) {\n return updateEmploymentMutationAsync({\n employmentId: internalEmploymentId,\n basic_information: parsedValues,\n pricing_plan_details: {\n frequency: 'monthly',\n },\n });\n }\n\n return;\n }\n case 'contract_details': {\n const payload: EmploymentFullParams = {\n contract_details: parsedValues,\n pricing_plan_details: {\n frequency: 'monthly',\n },\n };\n return updateEmploymentMutationAsync({\n employmentId: internalEmploymentId as string,\n ...payload,\n });\n }\n\n case 'benefits': {\n return updateBenefitsOffersMutationAsync({\n employmentId: internalEmploymentId as string,\n ...values,\n });\n }\n }\n return;\n }\n\n function back() {\n previousStep();\n }\n\n function next() {\n nextStep();\n }\n\n function goTo(step: keyof typeof STEPS) {\n goToStep(step);\n }\n\n return {\n /**\n * Employment id passed useful to be used between components\n */\n employmentId: internalEmploymentId,\n\n /**\n * Credit risk status of the company, useful to know what to to show in the review step\n * The possible values are:\n * - not_started\n * - ready\n * - in_progress\n * - referred\n * - fail\n * - deposit_required\n * - no_deposit_required\n */\n\n creditRiskStatus: company?.default_legal_entity_credit_risk_status,\n\n owner_id: company?.company_owner_user_id,\n /**\n * Current step state containing the current step and total number of steps\n */\n stepState,\n /**\n * Array of form fields from the onboarding schema\n */\n fields: stepFields[stepState.currentStep.name],\n /**\n * Loading state indicating if the onboarding schema is being fetched\n */\n isLoading: isLoading,\n /**\n * Loading state indicating if the onboarding mutation is in progress\n */\n isSubmitting:\n createEmploymentMutation.isPending ||\n updateEmploymentMutation.isPending ||\n updateBenefitsOffersMutation.isPending,\n /**\n * Initial form values\n */\n initialValues,\n /**\n * Function to validate form values against the onboarding schema\n * @param values - Form values to validate\n * @returns Validation result or null if no schema is available\n */\n handleValidation: (values: FieldValues) => {\n if (stepState.currentStep.name === 'select_country') {\n return selectCountryForm.handleValidation(values);\n }\n if (stepState.currentStep.name === 'benefits' && benefitOffersSchema) {\n const parsedValues = parseJSFToValidate(\n values,\n benefitOffersSchema?.fields,\n );\n\n return benefitOffersSchema?.handleValidation(parsedValues);\n }\n if (onboardingForm) {\n const parsedValues = parseJSFToValidate(values, onboardingForm?.fields);\n return onboardingForm?.handleValidation(parsedValues);\n }\n\n return null;\n },\n /**\n * Function to update the current form field values\n * @param values - New form values to set\n */\n checkFieldUpdates: setFieldValues,\n\n /**\n * Function to parse form values before submission\n * @param values - Form values to parse\n * @returns Parsed form values\n */\n parseFormValues,\n\n /**\n * Function to handle form submission\n * @param values - Form values to submit\n * @returns Promise resolving to the mutation result\n */\n onSubmit,\n\n /**\n * Function to handle going back to the previous step\n * @returns {void}\n */\n back,\n\n /**\n * Function to handle going to the next step\n * @returns {void}\n */\n next,\n\n /**\n * Function to handle going to a specific step\n * @param step The step to go to.\n * @returns {void}\n */\n goTo,\n\n /**\n * Fields metadata for each step\n */\n meta: {\n fields: fieldsMetaRef.current,\n },\n\n /**\n * Function to refetch the employment data\n * @returns {void}\n */\n refetchEmployment,\n /**\n * Employment data\n */\n employment,\n };\n};\n"],"mappings":"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","names":["useEffect","useMemo","useRef","useState","mergeWith","jsonSchemaToEmployment","stepToFormSchemaMap","reviewStepAllowedEmploymentStatus","useOnboarding","__name","employmentId","companyId","countryCode","type","options","fieldsMetaRef","useRef","internalEmploymentId","setInternalEmploymentId","useState","internalCountryCode","setInternalCountryCode","employment","isLoadingEmployment","refetchEmployment","useEmployment","benefitOffers","isLoadingBenefitOffers","useBenefitOffers","company","isLoadingCompany","refetchCompany","useCompany","stepsToUse","STEPS_WITHOUT_SELECT_COUNTRY","STEPS","fieldValues","stepState","setFieldValues","previousStep","nextStep","goToStep","setStepValues","useStepState","selectCountryForm","isLoadingCountries","useCountriesSchemaField","createEmploymentMutation","useCreateEmployment","updateEmploymentMutation","useUpdateEmployment","updateBenefitsOffersMutation","useUpdateBenefitsOffers","createEmploymentMutationAsync","mutationToPromise","updateEmploymentMutationAsync","updateBenefitsOffersMutationAsync","formType","employmentKey","serverEmploymentData","isOnboardingFormEnabled","onboardingForm","isLoadingOnboardingForm","useJSONSchemaForm","benefitOffersSchema","isLoadingBenefitsOffersSchema","useBenefitOffersSchema","initialValuesBenefitOffers","useMemo","benefitsFormValues","mergeWith","stepFields","initialValues","getInitialValues","isLoading","useEffect","selectCountryInitialValues","basicInformationInitialValues","contractDetailsInitialValues","benefitsInitialValues","prettifyFormValues","parseFormValues","values","parseJSFToValidate","onSubmit","parsedValues","isEmploymentNotLoaded","hasChangedCountry","payload","response","error","back","next","goTo","step"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{b as r}from"./chunk-O562EWKG.js";import{a as e}from"./chunk-AYDF3IFZ.js";var S=["invited","created_reserve_paid"],R=["deposit_required","referred"];function l({render:o}){let{onboardingBag:t,creditScore:s}=r(),d=t.creditRiskStatus==="deposit_required",i=t.employment?.status&&S.includes(t.employment.status),n=t.creditRiskStatus&&R.includes(t.creditRiskStatus),u=d&&t.employment?.status&&!i,c=t.creditRiskStatus&&!n||t.employment?.status&&i,a=e(()=>u?s.showReserveInvoice?"deposit_required_successful":"deposit_required":c?s.showInviteSuccessful?"invite_successful":"invite":null,"getCreditRiskState")();return o({creditRiskState:a,creditRiskStatus:t.creditRiskStatus})}e(l,"ReviewStep");export{l as a};
|
|
2
|
+
//# sourceMappingURL=chunk-6I6RMJXC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/Onboarding/ReviewStep.tsx"],"sourcesContent":["import { useOnboardingContext } from '@/src/flows/Onboarding/context';\nimport {\n CreditRiskStatus,\n CreditRiskState,\n Employment,\n} from '@/src/flows/Onboarding/types';\n\ntype ReviewStepProps = {\n /**\n * Render prop function for customizing the review step credit risk flow UI\n *\n * @param props - Object containing credit risk information\n * @param props.creditRiskState - Current state of the credit risk flow\n * - 'deposit_required': Deposit payment is required but not yet paid\n * - 'deposit_required_successful': Deposit payment has been successfully processed\n * - 'invite': Regular invite flow is available (no deposit required)\n * - 'invite_successful': Invitation has been successfully sent\n * - null: No specific credit risk state applies\n *\n * @param props.creditRiskStatus - Credit risk status from the backend\n * - 'not_started': Credit risk assessment has not been initiated\n * - 'ready': Ready for credit risk assessment\n * - 'in_progress': Credit risk assessment is in progress\n * - 'referred': Company has been referred for manual review\n * - 'fail': Credit risk assessment failed\n * - 'deposit_required': Company requires a deposit payment\n * - 'no_deposit_required': No deposit is required for this company\n * - undefined: Credit risk status not yet determined\n * @returns React.ReactNode to render for the review step\n */\n render: (props: {\n creditRiskState: CreditRiskState;\n creditRiskStatus: CreditRiskStatus | undefined;\n }) => React.ReactNode;\n};\n\nconst statusesToNotShowDeposit: Employment['status'][] = [\n 'invited',\n 'created_reserve_paid',\n];\n\nconst CREDIT_RISK_STATUSES: CreditRiskStatus[] = [\n 'deposit_required',\n 'referred',\n];\n\nexport function ReviewStep({ render }: ReviewStepProps) {\n const { onboardingBag, creditScore } = useOnboardingContext();\n\n // Helper variables to make logic more readable\n const isDepositRequiredCreditRisk =\n onboardingBag.creditRiskStatus === 'deposit_required';\n\n const hasEmploymentStatusThatHidesDeposit =\n onboardingBag.employment?.status &&\n statusesToNotShowDeposit.includes(onboardingBag.employment.status);\n\n const isCreditRiskStatusInExclusionList =\n onboardingBag.creditRiskStatus &&\n CREDIT_RISK_STATUSES.includes(onboardingBag.creditRiskStatus);\n\n const shouldShowDepositFlow =\n isDepositRequiredCreditRisk &&\n onboardingBag.employment?.status &&\n !hasEmploymentStatusThatHidesDeposit;\n\n const shouldShowInviteFlow =\n (onboardingBag.creditRiskStatus && !isCreditRiskStatusInExclusionList) ||\n (onboardingBag.employment?.status && hasEmploymentStatusThatHidesDeposit);\n\n const getCreditRiskState = (): CreditRiskState => {\n // Priority 1: Deposit required flow\n if (shouldShowDepositFlow) {\n return creditScore.showReserveInvoice\n ? 'deposit_required_successful'\n : 'deposit_required';\n }\n\n // Priority 2: Invite flow\n if (shouldShowInviteFlow) {\n return creditScore.showInviteSuccessful ? 'invite_successful' : 'invite';\n }\n\n // Default case\n return null;\n };\n\n const creditRiskState = getCreditRiskState();\n\n return render({\n creditRiskState,\n creditRiskStatus: onboardingBag.creditRiskStatus,\n });\n}\n"],"mappings":"gFAoCA,IAAMA,EAAmD,CACvD,UACA,sBACF,EAEMC,EAA2C,CAC/C,mBACA,UACF,EAEO,SAASC,EAAW,CAAE,OAAAC,CAAO,EAAoB,CACtD,GAAM,CAAE,cAAAC,EAAe,YAAAC,CAAY,EAAIC,EAAqB,EAGtDC,EACJH,EAAc,mBAAqB,mBAE/BI,EACJJ,EAAc,YAAY,QAC1BJ,EAAyB,SAASI,EAAc,WAAW,MAAM,EAE7DK,EACJL,EAAc,kBACdH,EAAqB,SAASG,EAAc,gBAAgB,EAExDM,EACJH,GACAH,EAAc,YAAY,QAC1B,CAACI,EAEGG,EACHP,EAAc,kBAAoB,CAACK,GACnCL,EAAc,YAAY,QAAUI,EAmBjCI,EAjBqBC,EAAA,IAErBH,EACKL,EAAY,mBACf,8BACA,mBAIFM,EACKN,EAAY,qBAAuB,oBAAsB,SAI3D,KAdkB,sBAiBgB,EAE3C,OAAOF,EAAO,CACZ,gBAAAS,EACA,iBAAkBR,EAAc,gBAClC,CAAC,CACH,CA/CgBS,EAAAX,EAAA","names":["statusesToNotShowDeposit","CREDIT_RISK_STATUSES","ReviewStep","render","onboardingBag","creditScore","useOnboardingContext","isDepositRequiredCreditRisk","hasEmploymentStatusThatHidesDeposit","isCreditRiskStatusInExclusionList","shouldShowDepositFlow","shouldShowInviteFlow","creditRiskState","__name"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as e}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as e}from"./chunk-U5ZTX2JG.js";import{b as t}from"./chunk-O562EWKG.js";import{a}from"./chunk-AYDF3IFZ.js";import{jsx as f}from"react/jsx-runtime";function u({onSubmit:s,onSuccess:m,onError:i}){let{onboardingBag:r}=t(),p=a(async n=>{try{await s?.(r.parseFormValues(n));let o=await r.onSubmit(n);if(o?.data){await m?.(o?.data),r?.next();return}o?.error&&i?.(o?.error)}catch(o){i?.(o)}},"handleSubmit"),c=r.stepState.values?.basic_information||r.initialValues.basic_information;return f(e,{defaultValues:c,onSubmit:p})}a(u,"BasicInformationStep");export{u as a};
|
|
2
|
+
//# sourceMappingURL=chunk-CLBAB4TV.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as i}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as i}from"./chunk-U5ZTX2JG.js";import{b as n}from"./chunk-O562EWKG.js";import{a as r}from"./chunk-AYDF3IFZ.js";import{jsx as l}from"react/jsx-runtime";function u({onSubmit:s,onError:a,onSuccess:m}){let{onboardingBag:t}=n(),p=r(async e=>{try{await s?.(t.parseFormValues(e));let o=await t.onSubmit(e);if(o?.data){await m?.(o.data),t?.next();return}o?.error&&a?.(o.error)}catch(o){a?.(o)}},"handleSubmit");return l(i,{defaultValues:t.stepState.values?.contract_details||t.initialValues.contract_details,onSubmit:p})}r(u,"ContractDetailsStep");export{u as a};
|
|
2
|
+
//# sourceMappingURL=chunk-CX7YH3EY.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as v}from"./chunk-3PH5E6CZ.js";import{a as S}from"./chunk-JRQSZHUU.js";import{a as l,b as V}from"./chunk-O3QLBSMV.js";import{c as P,l as b,t as w}from"./chunk-GMU3QGAR.js";import{a as M}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as v}from"./chunk-3PH5E6CZ.js";import{a as S}from"./chunk-JRQSZHUU.js";import{a as l,b as V}from"./chunk-O3QLBSMV.js";import{c as P,l as b,t as w}from"./chunk-GMU3QGAR.js";import{a as M}from"./chunk-JI4NYTW4.js";import{d}from"./chunk-WRDKLT4N.js";import{a as j,c as A}from"./chunk-TPRGCMIZ.js";import{a as e}from"./chunk-AYDF3IFZ.js";import{createHeadlessForm as R,modify as B}from"@remoteoss/json-schema-form";import{useMutation as L,useQuery as J}from"@tanstack/react-query";var K=e(({countryCode:a,employment:t,fieldValues:i,options:n})=>{let{client:u}=d(),s=n?.jsonSchemaVersion?.contract_amendments?{json_schema_version:n.jsonSchemaVersion.contract_amendments}:{};return J({queryKey:["contract-amendment-schema"],retry:!1,queryFn:e(async()=>{let r=await P({client:u,headers:{Authorization:""},query:{employment_id:t?.data?.employment?.id,country_code:a,...s}});if(r.error||!r.data)throw new Error("Failed to fetch contract amendment schema");return r},"queryFn"),enabled:!!t,select:e(({data:r})=>{let c=r?.data||{};if(n&&n.jsfModify){let{schema:f}=B(c,n.jsfModify);c=f}let o={...i,annual_gross_salary:i?.annual_gross_salary?j(i?.annual_gross_salary):void 0},p=Object.keys(o).length>0;return R(c,{initialValues:p?o:V(t)})},"select")})},"useContractAmendmentSchemaQuery"),O=e(()=>{let{client:a}=d();return L({mutationFn:e(t=>b({client:a,headers:{Authorization:""},body:t}),"mutationFn")})},"useCreateContractAmendmentMutation"),U=e(()=>{let{client:a}=d();return L({mutationFn:e(t=>w({client:a,headers:{Authorization:""},body:t}),"mutationFn")})},"useAutomatableContractAmendmentMutation"),ae=e(({employmentId:a,countryCode:t,options:i})=>{let{fieldValues:n,setFieldValues:u,stepState:s,nextStep:r,previousStep:c}=M(l),{data:o,isLoading:p,isError:_,error:f}=v({employmentId:a}),{data:m,isLoading:T,isError:k,error:Q}=K({employment:o,countryCode:t,fieldValues:{...s.values?.[s.currentStep.name],...n},options:i}),q=V(o,m?.fields),g=O(),E=U();async function z(y){let C=A(y,m?.fields||[],{isPartialValidation:!1}),F={employment_id:o?.data.employment?.id,amendment_contract_id:o?.data.employment?.active_contract_id,contract_amendment:{...C}};switch(s.currentStep.name){case l.form.name:{let{mutateAsync:h}=S(E),I=await h(F);return r(),I}case l.confirmation_form.name:{let{mutateAsync:h}=S(g);return h(F)}default:throw new Error("Invalid step state")}}e(z,"onSubmit");function x(y){if(m){let C=A(y,m?.fields);return m?.handleValidation(C)}return null}e(x,"handleValidation");function H(){c()}return e(H,"back"),{stepState:s,fields:m?.fields||[],isLoading:p||T,isError:_||k,error:f||Q,isSubmitting:E.isPending||g.isPending,initialValues:q,values:n,handleValidation:x,checkFieldUpdates:u,onSubmit:z,back:H}},"useContractAmendment");export{ae as a};
|
|
2
|
+
//# sourceMappingURL=chunk-ENBY6GBG.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as n}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b as n}from"./chunk-O562EWKG.js";import{b as o}from"./chunk-EMVYCKDC.js";import{a as t}from"./chunk-AYDF3IFZ.js";import{jsx as e}from"react/jsx-runtime";function m({children:r,...i}){let{onboardingBag:{back:u}}=n();return e(o,{...i,onClick:()=>{u()},children:r})}t(m,"OnboardingBack");export{m as a};
|
|
2
|
+
//# sourceMappingURL=chunk-FBJNIQRT.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{d as p,e as l}from"./chunk-VYT6PSLL.js";import{b as v}from"./chunk-O562EWKG.js";import{a as i}from"./chunk-JRQSZHUU.js";import{b as c}from"./chunk-EMVYCKDC.js";import{a as s}from"./chunk-AYDF3IFZ.js";import{jsx as R}from"react/jsx-runtime";var y=["invited","created_awaiting_reserve","created_reserve_paid"];function B({onSubmit:f,onSuccess:r,onError:n,render:S,...a}){let{onboardingBag:e,setCreditScore:m}=v(),d=p(),u=l(),{mutateAsync:_}=i(d),{mutateAsync:I}=i(u),g=s(async()=>{try{if(await f?.(),e.creditRiskStatus==="deposit_required"&&e.employmentId&&e.employment?.status&&!y.includes(e.employment?.status)){let t=await I({employment_slug:e.employmentId});if(t.data){await r?.({data:t.data,employmentStatus:"created_awaiting_reserve"}),m?.(o=>({...o,showReserveInvoice:!0})),e.refetchEmployment();return}t.error&&n?.(t.error)}else if(e.employmentId){let t=await _({employment_id:e.employmentId});if(t.data){await r?.({data:t.data,employmentStatus:"invited"}),m?.(o=>({...o,showInviteSuccessful:!0})),e.refetchEmployment();return}t.error&&n?.(t.error)}}catch(t){n?.(t)}},"handleSubmit"),w=e.creditRiskStatus==="deposit_required"&&e.employment?.status&&!y.includes(e.employment.status);return R(c,{...a,disabled:d.isPending||u.isPending||a.disabled,onClick:()=>{g()},children:S({employmentStatus:w?"created_awaiting_reserve":"invited"})})}s(B,"OnboardingInvite");export{B as a};
|
|
2
|
+
//# sourceMappingURL=chunk-GFGXPHZP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/Onboarding/OnboardingInvite.tsx"],"sourcesContent":["import { ButtonHTMLAttributes, ReactNode } from 'react';\nimport { useEmploymentInvite } from './api';\nimport { Button } from '@/src/components/ui/button';\nimport { useCreateReserveInvoice } from '@/src/flows/Onboarding/api';\nimport { mutationToPromise } from '@/src/lib/mutations';\nimport { Employment, SuccessResponse } from '@/src/client';\nimport { useOnboardingContext } from './context';\n\nexport type OnboardingInviteProps = ButtonHTMLAttributes<HTMLButtonElement> & {\n onSuccess?: ({\n data,\n employmentStatus,\n }: {\n data: SuccessResponse;\n employmentStatus: 'invited' | 'created_awaiting_reserve';\n }) => void | Promise<void>;\n onError?: (error: unknown) => void;\n onSubmit?: () => void | Promise<void>;\n render: (props: {\n employmentStatus: 'invited' | 'created_awaiting_reserve';\n }) => ReactNode;\n};\n\nconst employmentStatusList: Employment['status'][] = [\n 'invited',\n 'created_awaiting_reserve',\n 'created_reserve_paid',\n];\n\nexport function OnboardingInvite({\n onSubmit,\n onSuccess,\n onError,\n render,\n ...props\n}: OnboardingInviteProps) {\n const { onboardingBag, setCreditScore } = useOnboardingContext();\n const employmentInviteMutation = useEmploymentInvite();\n const useCreateReserveInvoiceMutation = useCreateReserveInvoice();\n\n const { mutateAsync: employmentInviteMutationAsync } = mutationToPromise(\n employmentInviteMutation,\n );\n\n const { mutateAsync: createReserveInvoiceMutationAsync } = mutationToPromise(\n useCreateReserveInvoiceMutation,\n );\n\n const handleSubmit = async () => {\n try {\n await onSubmit?.();\n if (\n onboardingBag.creditRiskStatus === 'deposit_required' &&\n onboardingBag.employmentId &&\n onboardingBag.employment?.status &&\n !employmentStatusList.includes(onboardingBag.employment?.status)\n ) {\n const response = await createReserveInvoiceMutationAsync({\n employment_slug: onboardingBag.employmentId,\n });\n if (response.data) {\n await onSuccess?.({\n data: response.data as SuccessResponse,\n employmentStatus: 'created_awaiting_reserve',\n });\n setCreditScore?.((prev) => ({\n ...prev,\n showReserveInvoice: true,\n }));\n onboardingBag.refetchEmployment();\n return;\n }\n\n if (response.error) {\n onError?.(response.error);\n }\n } else if (onboardingBag.employmentId) {\n const response = await employmentInviteMutationAsync({\n employment_id: onboardingBag.employmentId,\n });\n if (response.data) {\n await onSuccess?.({\n data: response.data as SuccessResponse,\n employmentStatus: 'invited',\n });\n setCreditScore?.((prev) => ({\n ...prev,\n showInviteSuccessful: true,\n }));\n onboardingBag.refetchEmployment();\n return;\n }\n if (response.error) {\n onError?.(response.error);\n }\n }\n } catch (error) {\n onError?.(error);\n }\n };\n\n const isReserveFlow =\n onboardingBag.creditRiskStatus === 'deposit_required' &&\n onboardingBag.employment?.status &&\n !employmentStatusList.includes(onboardingBag.employment.status);\n\n return (\n <Button\n {...props}\n disabled={\n employmentInviteMutation.isPending ||\n useCreateReserveInvoiceMutation.isPending ||\n props.disabled\n }\n onClick={() => {\n handleSubmit();\n }}\n >\n {render({\n employmentStatus: isReserveFlow\n ? 'created_awaiting_reserve'\n : 'invited',\n })}\n </Button>\n );\n}\n"],"mappings":"+MA2GI,cAAAA,MAAA,oBApFJ,IAAMC,EAA+C,CACnD,UACA,2BACA,sBACF,EAEO,SAASC,EAAiB,CAC/B,SAAAC,EACA,UAAAC,EACA,QAAAC,EACA,OAAAC,EACA,GAAGC,CACL,EAA0B,CACxB,GAAM,CAAE,cAAAC,EAAe,eAAAC,CAAe,EAAIC,EAAqB,EACzDC,EAA2BC,EAAoB,EAC/CC,EAAkCC,EAAwB,EAE1D,CAAE,YAAaC,CAA8B,EAAIC,EACrDL,CACF,EAEM,CAAE,YAAaM,CAAkC,EAAID,EACzDH,CACF,EAEMK,EAAeC,EAAA,SAAY,CAC/B,GAAI,CAEF,GADA,MAAMhB,IAAW,EAEfK,EAAc,mBAAqB,oBACnCA,EAAc,cACdA,EAAc,YAAY,QAC1B,CAACP,EAAqB,SAASO,EAAc,YAAY,MAAM,EAC/D,CACA,IAAMY,EAAW,MAAMH,EAAkC,CACvD,gBAAiBT,EAAc,YACjC,CAAC,EACD,GAAIY,EAAS,KAAM,CACjB,MAAMhB,IAAY,CAChB,KAAMgB,EAAS,KACf,iBAAkB,0BACpB,CAAC,EACDX,IAAkBY,IAAU,CAC1B,GAAGA,EACH,mBAAoB,EACtB,EAAE,EACFb,EAAc,kBAAkB,EAChC,MACF,CAEIY,EAAS,OACXf,IAAUe,EAAS,KAAK,CAE5B,SAAWZ,EAAc,aAAc,CACrC,IAAMY,EAAW,MAAML,EAA8B,CACnD,cAAeP,EAAc,YAC/B,CAAC,EACD,GAAIY,EAAS,KAAM,CACjB,MAAMhB,IAAY,CAChB,KAAMgB,EAAS,KACf,iBAAkB,SACpB,CAAC,EACDX,IAAkBY,IAAU,CAC1B,GAAGA,EACH,qBAAsB,EACxB,EAAE,EACFb,EAAc,kBAAkB,EAChC,MACF,CACIY,EAAS,OACXf,IAAUe,EAAS,KAAK,CAE5B,CACF,OAASE,EAAO,CACdjB,IAAUiB,CAAK,CACjB,CACF,EAnDqB,gBAqDfC,EACJf,EAAc,mBAAqB,oBACnCA,EAAc,YAAY,QAC1B,CAACP,EAAqB,SAASO,EAAc,WAAW,MAAM,EAEhE,OACER,EAACwB,EAAA,CACE,GAAGjB,EACJ,SACEI,EAAyB,WACzBE,EAAgC,WAChCN,EAAM,SAER,QAAS,IAAM,CACbW,EAAa,CACf,EAEC,SAAAZ,EAAO,CACN,iBAAkBiB,EACd,2BACA,SACN,CAAC,EACH,CAEJ,CAhGgBJ,EAAAjB,EAAA","names":["jsx","employmentStatusList","OnboardingInvite","onSubmit","onSuccess","onError","render","props","onboardingBag","setCreditScore","useOnboardingContext","employmentInviteMutation","useEmploymentInvite","useCreateReserveInvoiceMutation","useCreateReserveInvoice","employmentInviteMutationAsync","mutationToPromise","createReserveInvoiceMutationAsync","handleSubmit","__name","response","prev","error","isReserveFlow","Button"]}
|
|
@@ -1,2 +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
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as x}from"./chunk-P5VTRXW3.js";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 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-HBH2PSYQ.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as s}from"./chunk-AYDF3IFZ.js";import{useState as d}from"react";var x=s(n=>{let i=Object.keys(n);if(i.length===0)throw new Error("No steps provided to useStepState");let[p,c]=d({}),[r,a]=d({currentStep:n[i[0]],totalSteps:i.length,values:null});function S(){let{index:t}=r.currentStep,u=Object.values(n).find(e=>e.index===t+1);u&&(a(e=>({...e,currentStep:u,values:{...e.values,[e.currentStep.name]:{...e.values?.[e.currentStep.name],...p}}})),c({}))}s(S,"nextStep");function o(){let{index:t}=r.currentStep,u=Object.values(n).find(e=>e.index===t-1);u&&(a(e=>({...e,currentStep:u,values:{...e.values,[e.currentStep.name]:{...e.values?.[e.currentStep.name],...p}}})),c({}))}s(o,"previousStep");function T(t){r.values?.[t]&&a(l=>({...l,currentStep:n[t]}))}s(T,"goToStep");function f(t){a(l=>({...l,values:t}))}return s(f,"setStepValues"),{nextStep:S,previousStep:o,stepState:r,goToStep:T,fieldValues:p,setFieldValues:c,setStepValues:f}},"useStepState");export{x as a};
|
|
2
|
+
//# sourceMappingURL=chunk-JI4NYTW4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/useStepState.ts"],"sourcesContent":["import { useState } from 'react';\nimport { FieldValues } from 'react-hook-form';\n\nexport type Step<T extends string> = {\n index: number;\n name: T;\n};\n\ntype StepState<T extends string, Fields = FieldValues> = {\n currentStep: Step<T>;\n totalSteps: number;\n values:\n | {\n [key in T]: Fields;\n }\n | null;\n};\n\nexport const useStepState = <T extends string, Fields = FieldValues>(\n steps: Record<T, Step<T>>,\n) => {\n const stepKeys = Object.keys(steps) as Array<keyof typeof steps>;\n\n if (stepKeys.length === 0) {\n throw new Error('No steps provided to useStepState');\n }\n\n const [fieldValues, setFieldValues] = useState<Fields>({} as Fields);\n const [stepState, setStepState] = useState<StepState<T, Fields>>({\n currentStep: steps[stepKeys[0]],\n totalSteps: stepKeys.length,\n values: null,\n });\n\n function nextStep() {\n const { index } = stepState.currentStep;\n const stepValues = Object.values<Step<T>>(steps);\n const nextStep = stepValues.find((step) => step.index === index + 1);\n\n if (nextStep) {\n setStepState((previousState) => ({\n ...previousState,\n currentStep: nextStep,\n values: {\n ...previousState.values,\n [previousState.currentStep.name]: {\n ...previousState.values?.[previousState.currentStep.name as T],\n ...fieldValues,\n },\n } as { [key in T]: Fields },\n }));\n setFieldValues({} as Fields); // Reset field values for the next step\n }\n }\n\n function previousStep() {\n const { index } = stepState.currentStep;\n const stepValues = Object.values<Step<T>>(steps);\n const previousStep = stepValues.find((step) => step.index === index - 1);\n\n if (previousStep) {\n setStepState((previousState) => ({\n ...previousState,\n currentStep: previousStep,\n values: {\n ...previousState.values,\n [previousState.currentStep.name]: {\n ...previousState.values?.[previousState.currentStep.name as T],\n ...fieldValues,\n },\n } as { [key in T]: Fields },\n }));\n setFieldValues({} as Fields); // Reset field values for the previous step\n }\n }\n\n function goToStep(step: T) {\n // to avoid going to a steps that hasn't been filled yetç\n if (stepState.values?.[step]) {\n setStepState((previousState) => ({\n ...previousState,\n currentStep: steps[step],\n }));\n }\n }\n\n function setStepValues(values: Record<T, Fields>) {\n setStepState((previousState) => ({\n ...previousState,\n values: values,\n }));\n }\n\n return {\n /**\n * Moves to the next step in the step state.\n * It updates the current step and resets the field values for the next step.\n * The field values for the current step are stored in the step state.\n * @returns {void}\n */\n nextStep,\n /**\n * Moves to the previous step in the step state.\n * It updates the current step and resets the field values for the previous step.\n * The field values for the current step are stored in the step state.\n * @returns {void}\n */\n previousStep,\n /**\n * The current step state containing the current step, total number of steps and\n * the form values for each step.\n * @returns {StepState<T>} The current step state.\n */\n stepState,\n /**\n * Goes to a specific step in the step state.\n * @param step The step to go to.\n * @returns {void}\n */\n goToStep,\n /**\n * The field values for the current step.\n * @returns {FieldValues} The field values for the current step.\n */\n fieldValues,\n /**\n * Sets the field values for the current step.\n * @param values The field values to set.\n * @returns {void}\n */\n setFieldValues,\n /**\n * Sets the step values for the step state.\n * This is used to update all values in the step state.\n * @param values The values to set for the all steps.\n * @returns {void}\n */\n setStepValues,\n };\n};\n"],"mappings":"wCAAA,OAAS,YAAAA,MAAgB,QAkBlB,IAAMC,EAAeC,EAC1BC,GACG,CACH,IAAMC,EAAW,OAAO,KAAKD,CAAK,EAElC,GAAIC,EAAS,SAAW,EACtB,MAAM,IAAI,MAAM,mCAAmC,EAGrD,GAAM,CAACC,EAAaC,CAAc,EAAIC,EAAiB,CAAC,CAAW,EAC7D,CAACC,EAAWC,CAAY,EAAIF,EAA+B,CAC/D,YAAaJ,EAAMC,EAAS,CAAC,CAAC,EAC9B,WAAYA,EAAS,OACrB,OAAQ,IACV,CAAC,EAED,SAASM,GAAW,CAClB,GAAM,CAAE,MAAAC,CAAM,EAAIH,EAAU,YAEtBE,EADa,OAAO,OAAgBP,CAAK,EACnB,KAAMS,GAASA,EAAK,QAAUD,EAAQ,CAAC,EAE/DD,IACFD,EAAcI,IAAmB,CAC/B,GAAGA,EACH,YAAaH,EACb,OAAQ,CACN,GAAGG,EAAc,OACjB,CAACA,EAAc,YAAY,IAAI,EAAG,CAChC,GAAGA,EAAc,SAASA,EAAc,YAAY,IAAS,EAC7D,GAAGR,CACL,CACF,CACF,EAAE,EACFC,EAAe,CAAC,CAAW,EAE/B,CAnBSJ,EAAAQ,EAAA,YAqBT,SAASI,GAAe,CACtB,GAAM,CAAE,MAAAH,CAAM,EAAIH,EAAU,YAEtBM,EADa,OAAO,OAAgBX,CAAK,EACf,KAAMS,GAASA,EAAK,QAAUD,EAAQ,CAAC,EAEnEG,IACFL,EAAcI,IAAmB,CAC/B,GAAGA,EACH,YAAaC,EACb,OAAQ,CACN,GAAGD,EAAc,OACjB,CAACA,EAAc,YAAY,IAAI,EAAG,CAChC,GAAGA,EAAc,SAASA,EAAc,YAAY,IAAS,EAC7D,GAAGR,CACL,CACF,CACF,EAAE,EACFC,EAAe,CAAC,CAAW,EAE/B,CAnBSJ,EAAAY,EAAA,gBAqBT,SAASC,EAASH,EAAS,CAErBJ,EAAU,SAASI,CAAI,GACzBH,EAAcI,IAAmB,CAC/B,GAAGA,EACH,YAAaV,EAAMS,CAAI,CACzB,EAAE,CAEN,CARSV,EAAAa,EAAA,YAUT,SAASC,EAAcC,EAA2B,CAChDR,EAAcI,IAAmB,CAC/B,GAAGA,EACH,OAAQI,CACV,EAAE,CACJ,CALS,OAAAf,EAAAc,EAAA,iBAOF,CAOL,SAAAN,EAOA,aAAAI,EAMA,UAAAN,EAMA,SAAAO,EAKA,YAAAV,EAMA,eAAAC,EAOA,cAAAU,CACF,CACF,EAzH4B","names":["useState","useStepState","__name","steps","stepKeys","fieldValues","setFieldValues","useState","stepState","setStepState","nextStep","index","step","previousState","previousStep","goToStep","setStepValues","values"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"./chunk-Q6U6K2S6.js";import{a as c}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a}from"./chunk-Q6U6K2S6.js";import{a as c}from"./chunk-ENBY6GBG.js";import{a as e}from"./chunk-WF4FKBRR.js";import{a as m}from"./chunk-6T3A6GWH.js";import{a as r}from"./chunk-YLWCN7R2.js";import{a as o}from"./chunk-6HGUGIYJ.js";import{a as n}from"./chunk-AYDF3IFZ.js";import{useId as f}from"react";import{jsx as s}from"react/jsx-runtime";function k({employmentId:d,countryCode:C,options:p,render:A}){let t=c({employmentId:d,countryCode:C,options:p}),i=f();return s(o.Provider,{value:{formId:i,contractAmendmentBag:t},children:A({contractAmendmentBag:t,components:{Form:r,SubmitButton:a,ConfirmationForm:m,BackButton:e}})})}n(k,"ContractAmendmentFlow");export{k as a};
|
|
2
|
+
//# sourceMappingURL=chunk-KFQTQ6MF.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as o}from"./chunk-AYDF3IFZ.js";import{createContext as n,useContext as r}from"react";var t=n({formId:void 0,onboardingBag:null,creditScore:{showReserveInvoice:!1,showInviteSuccessful:!1},setCreditScore:o(()=>{},"setCreditScore")}),i=o(()=>{let e=r(t);if(!e.formId||!e.onboardingBag)throw new Error("useOnboardingContext must be used within a OnboardingContextProvider");return{formId:e.formId,onboardingBag:e.onboardingBag,creditScore:e.creditScore,setCreditScore:e.setCreditScore}},"useOnboardingContext");export{t as a,i as b};
|
|
2
|
+
//# sourceMappingURL=chunk-O562EWKG.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/Onboarding/context.ts"],"sourcesContent":["import type { useOnboarding } from '@/src/flows/Onboarding/hooks';\nimport { createContext, useContext } from 'react';\n\nexport const OnboardingContext = createContext<{\n formId: string | undefined;\n onboardingBag: ReturnType<typeof useOnboarding> | null;\n creditScore: {\n showReserveInvoice: boolean;\n showInviteSuccessful: boolean;\n };\n setCreditScore: React.Dispatch<\n React.SetStateAction<{\n showReserveInvoice: boolean;\n showInviteSuccessful: boolean;\n }>\n >;\n}>({\n formId: undefined,\n onboardingBag: null,\n creditScore: {\n showReserveInvoice: false,\n showInviteSuccessful: false,\n },\n setCreditScore: () => {},\n});\n\nexport const useOnboardingContext = () => {\n const context = useContext(OnboardingContext);\n if (!context.formId || !context.onboardingBag) {\n throw new Error(\n 'useOnboardingContext must be used within a OnboardingContextProvider',\n );\n }\n\n return {\n formId: context.formId,\n onboardingBag: context.onboardingBag,\n creditScore: context.creditScore,\n setCreditScore: context.setCreditScore,\n } as const;\n};\n"],"mappings":"wCACA,OAAS,iBAAAA,EAAe,cAAAC,MAAkB,QAEnC,IAAMC,EAAoBC,EAa9B,CACD,OAAQ,OACR,cAAe,KACf,YAAa,CACX,mBAAoB,GACpB,qBAAsB,EACxB,EACA,eAAgBC,EAAA,IAAM,CAAC,EAAP,iBAClB,CAAC,EAEYC,EAAuBD,EAAA,IAAM,CACxC,IAAME,EAAUC,EAAWL,CAAiB,EAC5C,GAAI,CAACI,EAAQ,QAAU,CAACA,EAAQ,cAC9B,MAAM,IAAI,MACR,sEACF,EAGF,MAAO,CACL,OAAQA,EAAQ,OAChB,cAAeA,EAAQ,cACvB,YAAaA,EAAQ,YACrB,eAAgBA,EAAQ,cAC1B,CACF,EAdoC","names":["createContext","useContext","OnboardingContext","createContext","__name","useOnboardingContext","context","useContext"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a}from"./chunk-U5ZTX2JG.js";import{b as i}from"./chunk-O562EWKG.js";import{d as s}from"./chunk-TPRGCMIZ.js";import{a as t}from"./chunk-AYDF3IFZ.js";import{jsx as d}from"react/jsx-runtime";function P({components:m,onSubmit:p,onError:n,onSuccess:f}){let{onboardingBag:e}=i(),u=e.fields??[],c=s(u,e.initialValues.benefits);return d(a,{defaultValues:c,components:m,onSubmit:t(async r=>{try{await p?.(r);let o=await e.onSubmit(r);if(o?.data){await f?.(o.data),e?.next();return}o?.error&&n?.(o.error)}catch(o){n?.(o)}},"handleSubmit")})}t(P,"BenefitsStep");export{P as a};
|
|
2
|
+
//# sourceMappingURL=chunk-RS6OHJ7D.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as l}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b as l}from"./chunk-O562EWKG.js";import{a as d}from"./chunk-ENMJ56WK.js";import{b as s}from"./chunk-A4RX3KRZ.js";import{a}from"./chunk-ONZPO4GN.js";import{a as t}from"./chunk-AYDF3IFZ.js";import{useEffect as f}from"react";import{useForm as b}from"react-hook-form";import{jsx as e}from"react/jsx-runtime";function w({defaultValues:i,onSubmit:c,components:p}){let{formId:F,onboardingBag:o}=l(),u=s(o.handleValidation),r=b({resolver:u,defaultValues:i,shouldUnregister:!1,mode:"onBlur"});return f(()=>{o.employmentId&&o?.checkFieldUpdates(r.getValues())},[]),f(()=>{let y=r?.watch(n=>{Object.keys(n).some(m=>n[m]!==i[m])&&o?.checkFieldUpdates(n)});return()=>y?.unsubscribe()},[]),e(a,{...r,children:e("form",{id:F,onSubmit:r.handleSubmit(c),className:"space-y-4 RemoteFlows__OnboardingForm",children:e(d,{components:p,fields:o.fields})})})}t(w,"OnboardingForm");export{w as a};
|
|
2
|
+
//# sourceMappingURL=chunk-U5ZTX2JG.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as p}from"./chunk-GFGXPHZP.js";import{a as i}from"./chunk-UFKVREEJ.js";import{a as f}from"./chunk-6I6RMJXC.js";import{a as c}from"./chunk-XTE3FJRR.js";import{a as t}from"./chunk-2CIPNPU5.js";import{a as r}from"./chunk-CLBAB4TV.js";import{a as m}from"./chunk-RS6OHJ7D.js";import{a as s}from"./chunk-CX7YH3EY.js";import{a}from"./chunk-FBJNIQRT.js";import{a as n}from"./chunk-O562EWKG.js";import{a as e}from"./chunk-AYDF3IFZ.js";import{useId as y,useState as I}from"react";import{jsx as w}from"react/jsx-runtime";var A=e(({employmentId:d,companyId:S,countryCode:b,type:g="employee",render:u,options:l})=>{let B=y(),o=t({companyId:S,countryCode:b,employmentId:d,type:g,options:l}),[O,v]=I({showReserveInvoice:!1,showInviteSuccessful:!1});return w(n.Provider,{value:{formId:B,onboardingBag:o,creditScore:O,setCreditScore:v},children:u({onboardingBag:o,components:{BasicInformationStep:r,ContractDetailsStep:s,BenefitsStep:m,SubmitButton:i,BackButton:a,OnboardingInvite:p,SelectCountryStep:c,ReviewStep:f}})})},"OnboardingFlow");export{A as a};
|
|
2
|
+
//# sourceMappingURL=chunk-U6GTSXBM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/Onboarding/OnboardingFlow.tsx"],"sourcesContent":["import React, { useId, useState } from 'react';\nimport { useOnboarding } from '@/src/flows/Onboarding/hooks';\nimport { BasicInformationStep } from '@/src/flows/Onboarding/BasicInformationStep';\nimport { OnboardingContext } from '@/src/flows/Onboarding/context';\nimport { OnboardingSubmit } from '@/src/flows/Onboarding/OnboardingSubmit';\nimport { OnboardingBack } from '@/src/flows/Onboarding/OnboardingBack';\nimport { OnboardingFlowParams } from '@/src/flows/Onboarding/types';\nimport { OnboardingInvite } from '@/src/flows/Onboarding/OnboardingInvite';\nimport { ContractDetailsStep } from '@/src/flows/Onboarding/ContractDetailsStep';\nimport { BenefitsStep } from '@/src/flows/Onboarding/BenefitsStep';\nimport { SelectCountryStep } from '@/src/flows/Onboarding/SelectCountryStep';\nimport { ReviewStep } from '@/src/flows/Onboarding/ReviewStep';\n\nexport type OnboardingRenderProps = {\n /**\n * The onboarding bag returned by the useOnboarding hook.\n * This bag contains all the methods and properties needed to handle the onboarding flow.\n * @see {@link useOnboarding}\n */\n onboardingBag: ReturnType<typeof useOnboarding>;\n /**\n * The components used in the onboarding flow.\n * This includes different steps, submit button, back button.\n * @see {@link BasicInformationStep}\n * @see {@link ContractDetailsStep}\n * @see {@link OnboardingSubmit}\n * @see {@link OnboardingBack}\n * @see {@link OnboardingInvite}\n * @see {@link BenefitsStep}\n * @see {@link OnboardingCreateReserve}\n * @see {@link InvitationSection}\n * @see {@link SelectCountryStep}\n * @see {@link ReviewStep}\n */\n components: {\n SubmitButton: typeof OnboardingSubmit;\n BackButton: typeof OnboardingBack;\n BasicInformationStep: typeof BasicInformationStep;\n OnboardingInvite: typeof OnboardingInvite;\n ContractDetailsStep: typeof ContractDetailsStep;\n BenefitsStep: typeof BenefitsStep;\n SelectCountryStep: typeof SelectCountryStep;\n ReviewStep: typeof ReviewStep;\n };\n};\n\ntype OnboardingFlowProps = OnboardingFlowParams & {\n render: ({\n onboardingBag,\n components,\n }: OnboardingRenderProps) => React.ReactNode;\n};\n\nexport const OnboardingFlow = ({\n employmentId,\n companyId,\n countryCode,\n type = 'employee',\n render,\n options,\n}: OnboardingFlowProps) => {\n const formId = useId();\n const onboardingBag = useOnboarding({\n companyId,\n countryCode,\n employmentId,\n type,\n options,\n });\n\n const [creditScore, setCreditScore] = useState<{\n showReserveInvoice: boolean;\n showInviteSuccessful: boolean;\n }>({\n showReserveInvoice: false,\n showInviteSuccessful: false,\n });\n\n return (\n <OnboardingContext.Provider\n value={{\n formId: formId,\n onboardingBag,\n creditScore,\n setCreditScore: setCreditScore,\n }}\n >\n {render({\n onboardingBag,\n components: {\n BasicInformationStep: BasicInformationStep,\n ContractDetailsStep: ContractDetailsStep,\n BenefitsStep: BenefitsStep,\n SubmitButton: OnboardingSubmit,\n BackButton: OnboardingBack,\n OnboardingInvite: OnboardingInvite,\n SelectCountryStep: SelectCountryStep,\n ReviewStep: ReviewStep,\n },\n })}\n </OnboardingContext.Provider>\n );\n};\n"],"mappings":"mbAAA,OAAgB,SAAAA,EAAO,YAAAC,MAAgB,QA+EnC,cAAAC,MAAA,oBA1BG,IAAMC,EAAiBC,EAAA,CAAC,CAC7B,aAAAC,EACA,UAAAC,EACA,YAAAC,EACA,KAAAC,EAAO,WACP,OAAAC,EACA,QAAAC,CACF,IAA2B,CACzB,IAAMC,EAASC,EAAM,EACfC,EAAgBC,EAAc,CAClC,UAAAR,EACA,YAAAC,EACA,aAAAF,EACA,KAAAG,EACA,QAAAE,CACF,CAAC,EAEK,CAACK,EAAaC,CAAc,EAAIC,EAGnC,CACD,mBAAoB,GACpB,qBAAsB,EACxB,CAAC,EAED,OACEf,EAACgB,EAAkB,SAAlB,CACC,MAAO,CACL,OAAQP,EACR,cAAAE,EACA,YAAAE,EACA,eAAgBC,CAClB,EAEC,SAAAP,EAAO,CACN,cAAAI,EACA,WAAY,CACV,qBAAsBM,EACtB,oBAAqBC,EACrB,aAAcC,EACd,aAAcC,EACd,WAAYC,EACZ,iBAAkBC,EAClB,kBAAmBC,EACnB,WAAYC,CACd,CACF,CAAC,EACH,CAEJ,EAjD8B","names":["useId","useState","jsx","OnboardingFlow","__name","employmentId","companyId","countryCode","type","render","options","formId","useId","onboardingBag","useOnboarding","creditScore","setCreditScore","useState","OnboardingContext","BasicInformationStep","ContractDetailsStep","BenefitsStep","OnboardingSubmit","OnboardingBack","OnboardingInvite","SelectCountryStep","ReviewStep"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as r}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b as r}from"./chunk-O562EWKG.js";import{b as o}from"./chunk-EMVYCKDC.js";import{a as t}from"./chunk-AYDF3IFZ.js";import{jsx as m}from"react/jsx-runtime";function p({children:n,...i}){let{formId:u}=r();return m(o,{...i,form:u,children:n})}t(p,"OnboardingSubmit");export{p as a};
|
|
2
|
+
//# sourceMappingURL=chunk-UFKVREEJ.js.map
|
|
@@ -0,0 +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-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(t=>{let{client:r}=o();return u({queryKey:["employment",t],retry:!1,enabled:!!t,select:n(({data:e})=>e?.data.employment,"select"),queryFn:n(async()=>{let e=await q({client:r,headers:{Authorization:""},path:{employment_id:t}});if(e.error||!e.data)throw new Error("Failed to fetch employment data");return e},"queryFn")})},"useEmployment"),H=n(t=>{let{client:r}=o();return u({queryKey:["company",t],retry:!1,enabled:!!t,queryFn:n(async()=>{let e=await _({client:r,headers:{Authorization:""},path:{company_id:t}});if(e.error||!e.data)throw new Error("Failed to fetch employment data");return e},"queryFn"),select:n(({data:e})=>e.data.company,"select")})},"useCompany"),W=n(t=>{let{client:r}=o();return u({queryKey:["benefit-offers",t],retry:!1,enabled:!!t,queryFn:n(async()=>C({client:r,headers:{Authorization:""},path:{employment_id:t}}).then(e=>{if(e.error||!e.data)throw new Error("Failed to fetch benefit offers data");return e}),"queryFn"),select:n(({data:e})=>e?.data?.reduce((s,i)=>({...s,[i.benefit_group.slug]:{value:i.benefit_tier?.slug??""}}),{}),"select")})},"useBenefitOffers"),X=n(()=>{let{client:t}=o();return l({mutationFn:n(r=>x({client:t,headers:{Authorization:""},path:r}),"mutationFn")})},"useEmploymentInvite"),Y=n(()=>{let{client:t}=o();return l({mutationFn:n(r=>S({client:t,headers:{Authorization:""},body:r}),"mutationFn")})},"useCreateReserveInvoice"),Z=n(({countryCode:t,form:r,fieldValues:e,options:s,enabled:i})=>{let{client:a}=o(),c=s?.jsonSchemaVersion?.form_schema?.[r]?{json_schema_version:s.jsonSchemaVersion.form_schema[r]}:{};return u({queryKey:["onboarding-json-schema-form",t,r],retry:!1,queryFn:n(async()=>{let m=await E({client:a,headers:{Authorization:""},path:{country_code:t,form:r},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(e[F]),d),{});return y(f,{initialValues:{...e,...M}})},"select")})},"useJSONSchemaForm"),$=n((t,r,e)=>{let s=e?.jsonSchemaVersion?.benefit_offers_form_schema?{json_schema_version:e.jsonSchemaVersion.benefit_offers_form_schema}:{},{client:i}=o();return u({queryKey:["benefit-offers-schema",t],retry:!1,enabled:!!t,queryFn:n(async()=>{let a=await j({client:i,headers:{Authorization:""},path:{employment_id:t},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(e&&e.jsfModify){let{schema:p}=h(c,e.jsfModify);c=p}let m=Object.keys(r).length>0;return y(c,{initialValues:m?{...r}:{}})},"select")})},"useBenefitOffersSchema"),ee=n(()=>{let{client:t}=o();return l({mutationFn:n(r=>g({client:t,headers:{Authorization:""},body:r}),"mutationFn")})},"useCreateEmployment"),te=n(()=>{let{client:t}=o();return l({mutationFn:n(({employmentId:r,...e})=>v({client:t,headers:{Authorization:""},body:e,path:{employment_id:r},query:{skip_benefits:!0}}),"mutationFn")})},"useUpdateEmployment"),re=n(()=>{let{client:t}=o();return l({mutationFn:n(({employmentId:r,...e})=>b({client:t,headers:{Authorization:""},body:e,path:{employment_id:r}}),"mutationFn")})},"useUpdateBenefitsOffers"),ne=n(()=>{let{client:t}=o();return l({mutationFn:n(r=>w({client:t,headers:{Authorization:""},body:r}),"mutationFn")})},"useMagicLink"),V=n(()=>{let{client:t}=o();return u({queryKey:["countries"],retry:!1,queryFn:n(async()=>{let r=await O({client:t,headers:{Authorization:""}});if(r.error||!r.data)throw new Error("Failed to fetch supported countries");return r},"queryFn"),select:n(({data:r})=>r?.data?.map(e=>({label:e.name,value:e.code}))||[],"select")})},"useCountries"),oe=n(t=>{let{data:r,isLoading:e}=V(),{schema:s}=h(P.data.schema,t?.jsfModify||{}),i=y(s);if(r){let a=i.fields.find(c=>c.name==="country");a&&(a.options=r)}return{isLoading:e,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-VYT6PSLL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/Onboarding/api.ts"],"sourcesContent":["import {\n EmploymentCreateParams,\n EmploymentFullParams,\n getIndexBenefitOffer,\n getShowCompany,\n getShowEmployment,\n getShowFormCountry,\n getShowSchema,\n getSupportedCountry,\n MagicLinkParams,\n patchUpdateEmployment2,\n postCreateEmployment2,\n postCreateRiskReserve,\n postGenerateMagicLink,\n postInviteEmploymentInvitation,\n PostInviteEmploymentInvitationData,\n putUpdateBenefitOffer,\n UnifiedEmploymentUpsertBenefitOffersRequest,\n} from '@/src/client';\nimport { convertToCents } from '@/src/components/form/utils';\nimport { useClient } from '@/src/context';\nimport { selectCountryStepSchema } from '@/src/flows/Onboarding/json-schemas/selectCountryStep';\nimport { OnboardingFlowParams } from '@/src/flows/Onboarding/types';\nimport { FlowOptions, JSONSchemaFormType } from '@/src/flows/types';\nimport { findFieldsByType } from '@/src/flows/utils';\nimport { Client } from '@hey-api/client-fetch';\nimport { createHeadlessForm, modify } from '@remoteoss/json-schema-form';\nimport { useMutation, useQuery } from '@tanstack/react-query';\nimport { FieldValues } from 'react-hook-form';\n\nexport const useEmployment = (employmentId: string | undefined) => {\n const { client } = useClient();\n\n return useQuery({\n queryKey: ['employment', employmentId],\n retry: false,\n enabled: !!employmentId,\n select: ({ data }) => {\n return data?.data.employment;\n },\n queryFn: async () => {\n const response = await getShowEmployment({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n path: {\n employment_id: employmentId as string,\n },\n });\n\n // If response status is 404 or other error, throw an error to trigger isError\n if (response.error || !response.data) {\n throw new Error('Failed to fetch employment data');\n }\n\n return response;\n },\n });\n};\n\nexport const useCompany = (companyId: string) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['company', companyId],\n retry: false,\n enabled: !!companyId,\n queryFn: async () => {\n const response = await getShowCompany({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n path: {\n company_id: companyId,\n },\n });\n\n if (response.error || !response.data) {\n throw new Error('Failed to fetch employment data');\n }\n\n return response;\n },\n select: ({ data }) => {\n return data.data.company;\n },\n });\n};\n\nexport const useBenefitOffers = (employmentId: string | undefined) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['benefit-offers', employmentId],\n retry: false,\n enabled: !!employmentId,\n queryFn: async () => {\n return getIndexBenefitOffer({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n path: {\n employment_id: employmentId as string,\n },\n }).then((response) => {\n // If response status is 404 or other error, throw an error to trigger isError\n if (response.error || !response.data) {\n throw new Error('Failed to fetch benefit offers data');\n }\n\n return response;\n });\n },\n select: ({ data }) =>\n data?.data?.reduce(\n (acc, item) => {\n return {\n ...acc,\n [item.benefit_group.slug]: {\n value: item.benefit_tier?.slug ?? '',\n },\n };\n },\n {} as Record<string, { value: string }>,\n ),\n });\n};\n/**\n * Use this hook to invite an employee to the onboarding flow\n * @returns\n */\nexport const useEmploymentInvite = () => {\n const { client } = useClient();\n\n return useMutation({\n mutationFn: (payload: PostInviteEmploymentInvitationData['path']) => {\n return postInviteEmploymentInvitation({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n path: payload,\n });\n },\n });\n};\n\nexport const useCreateReserveInvoice = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: (payload: { employment_slug: string }) => {\n return postCreateRiskReserve({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n body: payload,\n });\n },\n });\n};\n\n/**\n * Use this hook to get the JSON schema form for the onboarding flow\n * @param param0\n * @returns\n */\nexport const useJSONSchemaForm = ({\n countryCode,\n form,\n fieldValues,\n options,\n enabled,\n}: {\n countryCode: string;\n form: JSONSchemaFormType;\n fieldValues: FieldValues;\n options?: FlowOptions;\n enabled?: boolean;\n}) => {\n const { client } = useClient();\n const jsonSchemaQueryParam = options?.jsonSchemaVersion?.form_schema?.[form]\n ? {\n json_schema_version: options.jsonSchemaVersion.form_schema[form],\n }\n : {};\n return useQuery({\n queryKey: ['onboarding-json-schema-form', countryCode, form],\n retry: false,\n queryFn: async () => {\n const response = await getShowFormCountry({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n path: {\n country_code: countryCode,\n form: form,\n },\n query: {\n skip_benefits: true,\n ...jsonSchemaQueryParam,\n },\n });\n\n // If response status is 404 or other error, throw an error to trigger isError\n if (response.error || !response.data) {\n throw new Error('Failed to fetch onboarding schema');\n }\n\n return response;\n },\n enabled: enabled,\n select: ({ data }) => {\n let jsfSchema = data?.data || {};\n if (options && options.jsfModify) {\n const { schema } = modify(jsfSchema, options.jsfModify);\n jsfSchema = schema;\n }\n\n // Contract details contains x-jsf-logic that need to be calculated every time a form value changes\n // In particular there are calculations involving the annual_gross_salary field. However this field value doesn't get\n // here in cents. So we need to convert the money fields to cents, so that the calculations are correct.\n const moneyFields = findFieldsByType(jsfSchema.properties || {}, 'money');\n const moneyFieldsData = moneyFields.reduce<Record<string, number | null>>(\n (acc, field) => {\n acc[field] = convertToCents(fieldValues[field]);\n return acc;\n },\n {},\n );\n\n return createHeadlessForm(jsfSchema, {\n initialValues: {\n ...fieldValues,\n ...moneyFieldsData,\n },\n });\n },\n });\n};\n\nexport const useBenefitOffersSchema = (\n employmentId: string,\n fieldValues: FieldValues,\n options: OnboardingFlowParams['options'],\n) => {\n const jsonSchemaQueryParam = options?.jsonSchemaVersion\n ?.benefit_offers_form_schema\n ? {\n json_schema_version:\n options.jsonSchemaVersion.benefit_offers_form_schema,\n }\n : {};\n const { client } = useClient();\n return useQuery({\n queryKey: ['benefit-offers-schema', employmentId],\n retry: false,\n enabled: !!employmentId,\n queryFn: async () => {\n const response = await getShowSchema({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n path: {\n employment_id: employmentId,\n },\n query: jsonSchemaQueryParam,\n });\n\n // If response status is 404 or other error, throw an error to trigger isError\n if (response.error || !response.data) {\n throw new Error('Failed to fetch benefit offers schema');\n }\n\n return response;\n },\n select: ({ data }) => {\n let jsfSchema = data?.data?.schema || {};\n\n if (options && options.jsfModify) {\n const { schema } = modify(jsfSchema, options.jsfModify);\n jsfSchema = schema;\n }\n const hasFieldValues = Object.keys(fieldValues).length > 0;\n const result = createHeadlessForm(jsfSchema, {\n // we need to clone the fieldValues to prevent side effects\n // if we don't do this, the benefits get included in the other steps\n initialValues: hasFieldValues ? { ...fieldValues } : {},\n });\n return result;\n },\n });\n};\n\n/**\n * Use this hook to create an employment\n * @returns\n */\nexport const useCreateEmployment = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: (payload: EmploymentCreateParams) => {\n return postCreateEmployment2({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n body: payload,\n });\n },\n });\n};\n\nexport const useUpdateEmployment = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: ({\n employmentId,\n ...payload\n }: EmploymentFullParams & { employmentId: string }) => {\n return patchUpdateEmployment2({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n body: payload,\n path: {\n employment_id: employmentId,\n },\n query: {\n skip_benefits: true,\n },\n });\n },\n });\n};\n\nexport const useUpdateBenefitsOffers = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: ({\n employmentId,\n ...payload\n }: UnifiedEmploymentUpsertBenefitOffersRequest & {\n employmentId: string;\n }) => {\n return putUpdateBenefitOffer({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n body: payload,\n path: {\n employment_id: employmentId,\n },\n });\n },\n });\n};\n\nexport const useMagicLink = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: (params: MagicLinkParams) => {\n return postGenerateMagicLink({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n body: params,\n });\n },\n });\n};\n\nconst useCountries = () => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['countries'],\n retry: false,\n queryFn: async () => {\n const response = await getSupportedCountry({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n });\n\n // If response status is 404 or other error, throw an error to trigger isError\n if (response.error || !response.data) {\n throw new Error('Failed to fetch supported countries');\n }\n\n return response;\n },\n select: ({ data }) => {\n return (\n data?.data?.map((country) => {\n return {\n label: country.name,\n value: country.code,\n };\n }) || []\n );\n },\n });\n};\n\nexport const useCountriesSchemaField = (options?: FlowOptions) => {\n const { data: countries, isLoading } = useCountries();\n\n const { schema: selectCountrySchema } = modify(\n selectCountryStepSchema.data.schema,\n options?.jsfModify || {},\n );\n\n const selectCountryForm = createHeadlessForm(selectCountrySchema);\n\n if (countries) {\n const countryField = selectCountryForm.fields.find(\n (field) => field.name === 'country',\n );\n if (countryField) {\n countryField.options = countries;\n }\n }\n\n return {\n isLoading,\n selectCountryForm,\n };\n};\n"],"mappings":"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","names":["createHeadlessForm","modify","useMutation","useQuery","useEmployment","__name","employmentId","client","useClient","useQuery","data","response","getShowEmployment","useCompany","companyId","getShowCompany","useBenefitOffers","getIndexBenefitOffer","acc","item","useEmploymentInvite","useMutation","payload","postInviteEmploymentInvitation","useCreateReserveInvoice","postCreateRiskReserve","useJSONSchemaForm","countryCode","form","fieldValues","options","enabled","jsonSchemaQueryParam","getShowFormCountry","jsfSchema","schema","modify","moneyFieldsData","findFieldsByType","field","convertToCents","createHeadlessForm","useBenefitOffersSchema","getShowSchema","hasFieldValues","useCreateEmployment","postCreateEmployment2","useUpdateEmployment","patchUpdateEmployment2","useUpdateBenefitsOffers","putUpdateBenefitOffer","useMagicLink","params","postGenerateMagicLink","useCountries","getSupportedCountry","country","useCountriesSchemaField","countries","isLoading","selectCountrySchema","selectCountryStepSchema","selectCountryForm","countryField"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as S}from"./chunk-XFD3ULUF.js";import{a as P}from"./chunk-WWANHPT7.js";import{a as h}from"./chunk-2Y22JKVE.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-JI4NYTW4.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-XQRRFXRN.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as m}from"./chunk-47DB6L3S.js";import{a as n}from"./chunk-WEIRXEXU.js";import{a as e}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as m}from"./chunk-47DB6L3S.js";import{a as n}from"./chunk-WEIRXEXU.js";import{a as e}from"./chunk-XQRRFXRN.js";import{a as T}from"./chunk-ZJT4Y4TA.js";import{a}from"./chunk-SQ73CU3B.js";import{a as f}from"./chunk-N6RPXNGN.js";import{a as r}from"./chunk-JGUJV45B.js";import{a as p}from"./chunk-75YWGTNG.js";import{a as t}from"./chunk-DZYFSFZ7.js";import{a as i}from"./chunk-AYDF3IFZ.js";import{useId as c}from"react";import{jsx as u}from"react/jsx-runtime";var A=i(({employmentId:d,render:s,options:l})=>{let y=c(),o=e({employmentId:d,options:l});return u(t.Provider,{value:{formId:y,terminationBag:o},children:s({terminationBag:o,components:{SubmitButton:m,TimeOff:n,Back:r,EmployeeComunicationStep:a,TerminationDetailsStep:p,PaidTimeOffStep:f,AdditionalDetailsStep:T}})})},"TerminationFlow");export{A as a};
|
|
2
|
+
//# sourceMappingURL=chunk-XSS46DGP.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as i}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as i}from"./chunk-U5ZTX2JG.js";import{b as a}from"./chunk-O562EWKG.js";import{a as r}from"./chunk-AYDF3IFZ.js";import{jsx as l}from"react/jsx-runtime";function m({onSubmit:c,onSuccess:u,onError:e}){let{onboardingBag:t}=a(),s=r(async n=>{try{await c?.({countryCode:n.country});let o=await t.onSubmit(n);if(o?.data){await u?.(o?.data),t?.next();return}o?.error&&e?.(o?.error)}catch(o){e?.(o)}},"handleSubmit"),S=t.stepState.values?.select_country||t.initialValues.select_country;return l(i,{defaultValues:S,onSubmit:s})}r(m,"SelectCountryStep");export{m as a};
|
|
2
|
+
//# sourceMappingURL=chunk-XTE3FJRR.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { b as PostCreateContractAmendmentError, a as ContractAmendmentResponse } from '../../types.gen-
|
|
2
|
+
import { b as PostCreateContractAmendmentError, a as ContractAmendmentResponse } from '../../types.gen-Ctv2nomK.js';
|
|
3
3
|
import { FieldValues } from 'react-hook-form';
|
|
4
4
|
|
|
5
5
|
type ContractAmendmentConfirmationFormProps = {
|
|
@@ -5,7 +5,7 @@ import { ContractAmendmentForm } from './ContractAmendmentForm.js';
|
|
|
5
5
|
import { ContractAmendmentSubmit } from './ContractAmendmentSubmit.js';
|
|
6
6
|
import { useContractAmendment } from './hooks.js';
|
|
7
7
|
import { ContractAmendmentParams } from './types.js';
|
|
8
|
-
import '../../types.gen-
|
|
8
|
+
import '../../types.gen-Ctv2nomK.js';
|
|
9
9
|
import 'react-hook-form';
|
|
10
10
|
import 'react';
|
|
11
11
|
import '../../mutations-v9H353tz.js';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"../../chunk-
|
|
1
|
+
import{a}from"../../chunk-KFQTQ6MF.js";import"../../chunk-Q6U6K2S6.js";import"../../chunk-ENBY6GBG.js";import"../../chunk-3PH5E6CZ.js";import"../../chunk-JRQSZHUU.js";import"../../chunk-O3QLBSMV.js";import"../../chunk-GMU3QGAR.js";import"../../chunk-JI4NYTW4.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
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { P as PostAutomatableContractAmendmentError, C as ContractAmendmentAutomatableResponse } from '../../types.gen-
|
|
2
|
+
import { P as PostAutomatableContractAmendmentError, C as ContractAmendmentAutomatableResponse } from '../../types.gen-Ctv2nomK.js';
|
|
3
3
|
import { FieldValues } from 'react-hook-form';
|
|
4
4
|
|
|
5
5
|
type ContractAmendmentFormProps = {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { S as SuccessResponse, E as ErrorResponse } from '../../mutations-v9H353tz.js';
|
|
2
|
-
import { C as ContractAmendmentAutomatableResponse, P as PostAutomatableContractAmendmentError, a as ContractAmendmentResponse, b as PostCreateContractAmendmentError } from '../../types.gen-
|
|
2
|
+
import { C as ContractAmendmentAutomatableResponse, P as PostAutomatableContractAmendmentError, a as ContractAmendmentResponse, b as PostCreateContractAmendmentError } from '../../types.gen-Ctv2nomK.js';
|
|
3
3
|
import * as _remoteoss_json_schema_form from '@remoteoss/json-schema-form';
|
|
4
4
|
import * as react from 'react';
|
|
5
5
|
import * as react_hook_form from 'react-hook-form';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { S as SuccessResponse, E as ErrorResponse } from '../../mutations-v9H353tz.js';
|
|
2
|
-
import { C as ContractAmendmentAutomatableResponse, P as PostAutomatableContractAmendmentError, a as ContractAmendmentResponse, b as PostCreateContractAmendmentError } from '../../types.gen-
|
|
2
|
+
import { C as ContractAmendmentAutomatableResponse, P as PostAutomatableContractAmendmentError, a as ContractAmendmentResponse, b as PostCreateContractAmendmentError } from '../../types.gen-Ctv2nomK.js';
|
|
3
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';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"../../chunk-
|
|
1
|
+
import{a}from"../../chunk-ENBY6GBG.js";import"../../chunk-3PH5E6CZ.js";import"../../chunk-JRQSZHUU.js";import"../../chunk-O3QLBSMV.js";import"../../chunk-GMU3QGAR.js";import"../../chunk-JI4NYTW4.js";import"../../chunk-WRDKLT4N.js";import"../../chunk-TPRGCMIZ.js";import"../../chunk-AYDF3IFZ.js";export{a as useContractAmendment};
|
|
2
2
|
//# sourceMappingURL=hooks.js.map
|
|
@@ -4,7 +4,7 @@ export { ContractAmendmentForm } from './ContractAmendmentForm.js';
|
|
|
4
4
|
export { ContractAmendmentSubmit } from './ContractAmendmentSubmit.js';
|
|
5
5
|
export { useContractAmendment } from './hooks.js';
|
|
6
6
|
import 'react/jsx-runtime';
|
|
7
|
-
import '../../types.gen-
|
|
7
|
+
import '../../types.gen-Ctv2nomK.js';
|
|
8
8
|
import 'react-hook-form';
|
|
9
9
|
import './ContractAmendmentBack.js';
|
|
10
10
|
import 'react';
|
|
@@ -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-KFQTQ6MF.js";import{a as c}from"../../chunk-Q6U6K2S6.js";import{a as d}from"../../chunk-ENBY6GBG.js";import"../../chunk-3PH5E6CZ.js";import"../../chunk-JRQSZHUU.js";import"../../chunk-O3QLBSMV.js";import"../../chunk-GMU3QGAR.js";import"../../chunk-JI4NYTW4.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
|
|
@@ -4,7 +4,7 @@ import { CostCalculatorEstimationOptions, JSFModify } from './types.js';
|
|
|
4
4
|
import react__default from 'react';
|
|
5
5
|
import 'yup';
|
|
6
6
|
import '@tanstack/react-query';
|
|
7
|
-
import '../../types.gen-
|
|
7
|
+
import '../../types.gen-Ctv2nomK.js';
|
|
8
8
|
import '../types.js';
|
|
9
9
|
import '@remoteoss/json-schema-form';
|
|
10
10
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { c as CostCalculatorEstimateResponse } from '../../types.gen-
|
|
2
|
+
import { c as CostCalculatorEstimateResponse } from '../../types.gen-Ctv2nomK.js';
|
|
3
3
|
import { EstimationError } from './hooks.js';
|
|
4
4
|
import { CostCalculatorEstimationSubmitValues } from './types.js';
|
|
5
5
|
import 'yup';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { c as CostCalculatorEstimateResponse } from '../../../types.gen-
|
|
2
|
+
import { c as CostCalculatorEstimateResponse } from '../../../types.gen-Ctv2nomK.js';
|
|
3
3
|
|
|
4
4
|
interface CostCalculatorResultProps {
|
|
5
5
|
employmentData: CostCalculatorEstimateResponse['data'];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"../../../chunk-
|
|
1
|
+
import{a}from"../../../chunk-HBH2PSYQ.js";import"../../../chunk-P5VTRXW3.js";import"../../../chunk-4YNOSVYQ.js";import"../../../chunk-QHN4PPHD.js";import"../../../chunk-HSY5OO7D.js";import"../../../chunk-PH5CQN7X.js";import"../../../chunk-OIXUBXFU.js";import"../../../chunk-IAHI4OUM.js";import"../../../chunk-NEFNFYRS.js";import"../../../chunk-EMVYCKDC.js";import"../../../chunk-5ETXP2QF.js";import"../../../chunk-AYDF3IFZ.js";export{a as CostCalculatorResults};
|
|
2
2
|
//# sourceMappingURL=CostCalculatorResults.js.map
|
|
@@ -2,7 +2,7 @@ import { Result } from '../types.js';
|
|
|
2
2
|
import { useCostCalculator, EstimationError } from './hooks.js';
|
|
3
3
|
import { CostCalculatorEstimationFormValues, CostCalculatorEstimationSubmitValues } from './types.js';
|
|
4
4
|
import * as react from 'react';
|
|
5
|
-
import { c as CostCalculatorEstimateResponse } from '../../types.gen-
|
|
5
|
+
import { c as CostCalculatorEstimateResponse } from '../../types.gen-Ctv2nomK.js';
|
|
6
6
|
import { $ as $TSFixMe } from '../../remoteFlows-iMN5oBtU.js';
|
|
7
7
|
import * as yup from 'yup';
|
|
8
8
|
import { UseFormReturn } from 'react-hook-form';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as yup from 'yup';
|
|
2
2
|
import { ValidationError } from 'yup';
|
|
3
3
|
import * as _tanstack_react_query from '@tanstack/react-query';
|
|
4
|
-
import { c as CostCalculatorEstimateResponse, d as PostCreateEstimationError, e as CostCalculatorEstimatePdfResponse, f as PostCreateEstimationPdfError, g as CostCalculatorEstimateParams } from '../../types.gen-
|
|
4
|
+
import { c as CostCalculatorEstimateResponse, d as PostCreateEstimationError, e as CostCalculatorEstimatePdfResponse, f as PostCreateEstimationPdfError, g as CostCalculatorEstimateParams } from '../../types.gen-Ctv2nomK.js';
|
|
5
5
|
import { CostCalculatorEstimationOptions, JSFModify, CostCalculatorEstimationFormValues, CostCalculatorEstimationSubmitValues } from './types.js';
|
|
6
6
|
import { Result } from '../types.js';
|
|
7
7
|
import '@remoteoss/json-schema-form';
|
|
@@ -9,7 +9,7 @@ export { CostCalculatorResults } from './Results/CostCalculatorResults.js';
|
|
|
9
9
|
export { buildPayload as buildCostCalculatorEstimationPayload } from './utils.js';
|
|
10
10
|
import 'react/jsx-runtime';
|
|
11
11
|
import './types.js';
|
|
12
|
-
import '../../types.gen-
|
|
12
|
+
import '../../types.gen-Ctv2nomK.js';
|
|
13
13
|
import '@remoteoss/json-schema-form';
|
|
14
14
|
import 'react';
|
|
15
15
|
import 'yup';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../../chunk-FGBEOUQK.js";import{a as j}from"../../chunk-
|
|
1
|
+
import"../../chunk-FGBEOUQK.js";import{a as j}from"../../chunk-HBH2PSYQ.js";import"../../chunk-P5VTRXW3.js";import"../../chunk-4YNOSVYQ.js";import"../../chunk-QHN4PPHD.js";import"../../chunk-HSY5OO7D.js";import"../../chunk-PH5CQN7X.js";import"../../chunk-OIXUBXFU.js";import"../../chunk-IAHI4OUM.js";import{a as e}from"../../chunk-R7Z2AN42.js";import{a as g}from"../../chunk-PPRTHZVC.js";import{a as f}from"../../chunk-MCGIIIED.js";import{a as i}from"../../chunk-U4M5QBBG.js";import{a as h}from"../../chunk-DYB3RWP7.js";import{a as d}from"../../chunk-DBIPVIBO.js";import"../../chunk-YG5FFTC4.js";import{b as a,c as b,e as c}from"../../chunk-WU77JQYU.js";import"../../chunk-UPRUP24B.js";import"../../chunk-GMU3QGAR.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-5ETXP2QF.js";import"../../chunk-AYDF3IFZ.js";export{i as CostCalculatorDisclaimer,d as CostCalculatorFlow,e as CostCalculatorForm,g as CostCalculatorResetButton,j as CostCalculatorResults,f as CostCalculatorSubmitButton,a as buildCostCalculatorEstimationPayload,h as disclaimerData,c as useCostCalculator,b as useCostCalculatorEstimationPdf};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|