@remoteoss/remote-flows 1.20.0 → 1.21.1
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-42R2H2DW.js +2 -0
- package/dist/chunk-5VNMVVUB.js +2 -0
- package/dist/chunk-5VNMVVUB.js.map +1 -0
- package/dist/{chunk-ZOTT6IZN.js → chunk-67GUBRC6.js} +2 -2
- package/dist/{chunk-EMP4ZIVB.js → chunk-72TX2GXH.js} +2 -2
- package/dist/{chunk-3OJVYYPZ.js → chunk-7AFCHGML.js} +2 -2
- package/dist/{chunk-MXSKCQOT.js → chunk-7PTTOR6T.js} +2 -2
- package/dist/chunk-7XLP5WFW.js +2 -0
- package/dist/chunk-7XLP5WFW.js.map +1 -0
- package/dist/{chunk-7M7VN4WI.js → chunk-7Y4XCQZX.js} +2 -2
- package/dist/{chunk-4S7BRDNF.js → chunk-AHBNUSR4.js} +2 -2
- package/dist/{chunk-BTS5Q6UZ.js → chunk-AQ4WWMOK.js} +2 -2
- package/dist/chunk-AYC6DTFV.js +2 -0
- package/dist/chunk-AYC6DTFV.js.map +1 -0
- package/dist/{chunk-KYBKW4FE.js → chunk-BNY76RHM.js} +2 -2
- package/dist/{chunk-KJ4JS75E.js → chunk-BRPBSA4E.js} +2 -2
- package/dist/chunk-C52C6J6Q.js +2 -0
- package/dist/chunk-C52C6J6Q.js.map +1 -0
- package/dist/chunk-CT2D4IBR.js +2 -0
- package/dist/chunk-CT2D4IBR.js.map +1 -0
- package/dist/chunk-DPVXSN7T.js +2 -0
- package/dist/chunk-DPVXSN7T.js.map +1 -0
- package/dist/{chunk-Z6B3PA4M.js → chunk-DPZHLV7U.js} +2 -2
- package/dist/{chunk-POKLRB3M.js → chunk-E6B4ZECN.js} +2 -2
- package/dist/chunk-EFRT6C7V.js +2 -0
- package/dist/chunk-EFRT6C7V.js.map +1 -0
- package/dist/{chunk-DHRMW63S.js → chunk-EULZWL2F.js} +2 -2
- package/dist/{chunk-EUSCQL4H.js → chunk-EUQH4FU4.js} +2 -2
- package/dist/{chunk-BLGKOMH3.js → chunk-HGNICQUY.js} +2 -2
- package/dist/{chunk-Q3VMPVT3.js → chunk-HPLRAHY7.js} +2 -2
- package/dist/chunk-I3DVKJCW.js +2 -0
- package/dist/chunk-I3DVKJCW.js.map +1 -0
- package/dist/{chunk-NEKE5PRJ.js → chunk-IF42CZJH.js} +2 -2
- package/dist/{chunk-MVQOMW7S.js → chunk-IJQBLGTI.js} +2 -2
- package/dist/{chunk-RSZZMCB2.js → chunk-IW6OJUGY.js} +2 -2
- package/dist/{chunk-B7TQYSAY.js → chunk-J5I5ZSW3.js} +2 -2
- package/dist/{chunk-EAF6XPH6.js → chunk-JD2O7KNE.js} +2 -2
- package/dist/chunk-JIW2JK7J.js +2 -0
- package/dist/chunk-JIW2JK7J.js.map +1 -0
- package/dist/{chunk-KNHDPKRL.js → chunk-JTD4HJSK.js} +2 -2
- package/dist/{chunk-CR3X2TWM.js → chunk-KIQNU673.js} +2 -2
- package/dist/{chunk-WURYTVWC.js → chunk-KKOBWE62.js} +2 -2
- package/dist/{chunk-Y2LBI32D.js → chunk-KN5M3VJD.js} +2 -2
- package/dist/{chunk-I5FVESDZ.js → chunk-KQSWP3Y3.js} +2 -2
- package/dist/{chunk-5JGEEJ3A.js → chunk-KWLKQ6N6.js} +2 -2
- package/dist/{chunk-VCDA76UN.js → chunk-LT27CPJ6.js} +2 -2
- package/dist/{chunk-DFYEI445.js → chunk-MAOJJ4WX.js} +2 -2
- package/dist/{chunk-LM766FLB.js → chunk-OC3MVHTM.js} +2 -2
- package/dist/{chunk-3UEQXLRC.js → chunk-QELEVTDT.js} +2 -2
- package/dist/{chunk-T5JT2ZU2.js → chunk-QWQPTZQD.js} +2 -2
- package/dist/chunk-RQWB2F74.js +2 -0
- package/dist/chunk-RQWB2F74.js.map +1 -0
- package/dist/{chunk-IVXIAOMR.js → chunk-SAUF7ZUE.js} +2 -2
- package/dist/chunk-SDDJBGXV.js +2 -0
- package/dist/chunk-SDDJBGXV.js.map +1 -0
- package/dist/{chunk-RMIAJZOG.js → chunk-TMVRAQYA.js} +2 -2
- package/dist/{chunk-24FMEFH5.js → chunk-TZQ2O23Z.js} +2 -2
- package/dist/{chunk-WKLTHGWU.js → chunk-UWL56AOZ.js} +2 -2
- package/dist/chunk-VZ5BGG3N.js +2 -0
- package/dist/chunk-VZ5BGG3N.js.map +1 -0
- package/dist/{chunk-LSW66EIR.js → chunk-W5USIIXL.js} +2 -2
- package/dist/{chunk-7EUMRKH4.js → chunk-XAPDPR3N.js} +2 -2
- package/dist/{chunk-QJ2XK63I.js → chunk-XJECSJYB.js} +2 -2
- package/dist/{chunk-74ZEXZAY.js → chunk-XW7ZYSJ3.js} +2 -2
- package/dist/{chunk-XQZI2FRQ.js → chunk-Y2JE46ZY.js} +2 -2
- package/dist/{chunk-X6IMS3NL.js → chunk-Y2S7WYMO.js} +2 -2
- package/dist/{chunk-X6IMS3NL.js.map → chunk-Y2S7WYMO.js.map} +1 -1
- package/dist/{chunk-RZJ7WE6G.js → chunk-YVAEVXHP.js} +2 -2
- package/dist/{chunk-W4RON3XZ.js → chunk-YYGLCI2S.js} +2 -2
- package/dist/{chunk-AFHSKSGA.js → chunk-Z7AWT3MQ.js} +2 -2
- package/dist/default-components.js +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.js +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentFlow.js +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentForm.js +1 -1
- package/dist/flows/ContractAmendment/hooks.js +1 -1
- package/dist/flows/ContractAmendment/index.js +1 -1
- package/dist/flows/ContractAmendment/utils.js +1 -1
- package/dist/flows/ContractorOnboarding/ContractorOnboarding.d.ts +3 -2
- package/dist/flows/ContractorOnboarding/ContractorOnboarding.js +1 -1
- package/dist/flows/ContractorOnboarding/api.js +1 -1
- package/dist/flows/ContractorOnboarding/components/BasicInformationStep.d.ts +1 -1
- package/dist/flows/ContractorOnboarding/components/BasicInformationStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.d.ts +3 -2
- package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.d.ts +3 -2
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.d.ts +3 -2
- package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.js +1 -1
- package/dist/flows/ContractorOnboarding/components/EligibilityQuestionnaireStep.d.ts +3 -2
- package/dist/flows/ContractorOnboarding/components/EligibilityQuestionnaireStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/OnboardingInvite.js +1 -1
- package/dist/flows/ContractorOnboarding/components/PricingPlan.d.ts +3 -2
- package/dist/flows/ContractorOnboarding/components/PricingPlan.js +1 -1
- package/dist/flows/ContractorOnboarding/components/SaveDraftButton.d.ts +20 -0
- package/dist/flows/ContractorOnboarding/components/SaveDraftButton.js +2 -0
- package/dist/flows/ContractorOnboarding/components/SaveDraftButton.js.map +1 -0
- package/dist/flows/ContractorOnboarding/components/SelectCountryStep.d.ts +1 -1
- package/dist/flows/ContractorOnboarding/components/SelectCountryStep.js +1 -1
- package/dist/flows/ContractorOnboarding/context.d.ts +3 -2
- package/dist/flows/ContractorOnboarding/hooks.d.ts +3 -2
- package/dist/flows/ContractorOnboarding/hooks.js +1 -1
- package/dist/flows/ContractorOnboarding/index.d.ts +3 -2
- package/dist/flows/ContractorOnboarding/index.js +1 -1
- package/dist/flows/ContractorOnboarding/jsfModify.d.ts +3 -2
- package/dist/flows/ContractorOnboarding/types.d.ts +3 -2
- package/dist/flows/ContractorOnboarding/utils.d.ts +1 -1
- package/dist/flows/CostCalculator/CostCalculatorFlow.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorForm.js +1 -1
- package/dist/flows/CostCalculator/EstimationResults/EstimationResults.js +1 -1
- package/dist/flows/CostCalculator/SummaryResults/SummaryResults.js +1 -1
- package/dist/flows/CostCalculator/api.js +1 -1
- package/dist/flows/CostCalculator/components/SalaryField.js +1 -1
- package/dist/flows/CostCalculator/hooks.js +1 -1
- package/dist/flows/CostCalculator/index.js +1 -1
- package/dist/flows/CostCalculator/utils.js +1 -1
- package/dist/flows/CreateCompany/CreateCompany.js +1 -1
- package/dist/flows/CreateCompany/api.js +1 -1
- package/dist/flows/CreateCompany/components/AddressDetailsStep.js +1 -1
- package/dist/flows/CreateCompany/components/CompanyBasicInformationStep.js +1 -1
- package/dist/flows/CreateCompany/components/CreateCompanyForm.js +1 -1
- package/dist/flows/CreateCompany/hooks.js +1 -1
- package/dist/flows/CreateCompany/index.js +1 -1
- package/dist/flows/Onboarding/OnboardingFlow.d.ts +1 -1
- package/dist/flows/Onboarding/OnboardingFlow.js +1 -1
- package/dist/flows/Onboarding/api.d.ts +1 -1
- package/dist/flows/Onboarding/api.js +1 -1
- package/dist/flows/Onboarding/components/AnnualGrossSalary.js +1 -1
- package/dist/flows/Onboarding/components/BasicInformationStep.d.ts +1 -1
- package/dist/flows/Onboarding/components/BasicInformationStep.js +1 -1
- package/dist/flows/Onboarding/components/BenefitsStep.d.ts +1 -1
- package/dist/flows/Onboarding/components/BenefitsStep.js +1 -1
- package/dist/flows/Onboarding/components/ContractDetailsStep.d.ts +1 -1
- package/dist/flows/Onboarding/components/ContractDetailsStep.js +1 -1
- package/dist/flows/Onboarding/components/OnboardingForm.d.ts +1 -1
- package/dist/flows/Onboarding/components/OnboardingForm.js +1 -1
- package/dist/flows/Onboarding/components/OnboardingInvite.js +1 -1
- package/dist/flows/Onboarding/components/ReviewStep.d.ts +1 -1
- package/dist/flows/Onboarding/components/SelectCountryStep.d.ts +1 -1
- package/dist/flows/Onboarding/components/SelectCountryStep.js +1 -1
- package/dist/flows/Onboarding/context.d.ts +1 -1
- package/dist/flows/Onboarding/hooks.d.ts +1 -1
- package/dist/flows/Onboarding/hooks.js +1 -1
- package/dist/flows/Onboarding/index.d.ts +1 -1
- package/dist/flows/Onboarding/index.js +1 -1
- package/dist/flows/Onboarding/types.d.ts +1 -1
- package/dist/flows/Onboarding/utils.d.ts +1 -1
- package/dist/flows/Termination/AdditionalDetailsForm.js +1 -1
- package/dist/flows/Termination/EmployeeComunicationForm.js +1 -1
- package/dist/flows/Termination/PaidTimeOffForm.js +1 -1
- package/dist/flows/Termination/TerminationDetailsForm.js +1 -1
- package/dist/flows/Termination/TerminationFlow.js +1 -1
- package/dist/flows/Termination/TerminationForm.js +1 -1
- package/dist/flows/Termination/api.d.ts +1 -1
- package/dist/flows/Termination/api.js +1 -1
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOff.d.ts +1 -1
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.d.ts +1 -1
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.js +1 -1
- package/dist/flows/Termination/components/PaidTimeOff/types.d.ts +1 -1
- package/dist/flows/Termination/components/TerminationDialogInfoContent/TerminationDialogInfoContent.js +1 -1
- package/dist/flows/Termination/hooks.js +1 -1
- package/dist/flows/Termination/index.d.ts +1 -1
- package/dist/flows/Termination/index.js +1 -1
- package/dist/flows/Termination/json-schemas/jsonSchema.js +1 -1
- package/dist/flows/Termination/json-schemas/schema.js +1 -1
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internals.js +1 -1
- package/dist/styles.css +1 -1
- package/dist/styles.css.map +1 -1
- package/dist/{types-D_exxPuY.d.ts → types-B_iVL6gW.d.ts} +3 -1
- package/dist/{types-DqoTDHM1.d.ts → types-gQ_Tx-qG.d.ts} +7 -0
- package/package.json +1 -2
- package/dist/chunk-6EAABHVV.js +0 -2
- package/dist/chunk-6EAABHVV.js.map +0 -1
- package/dist/chunk-ALVZNFB7.js +0 -2
- package/dist/chunk-ALVZNFB7.js.map +0 -1
- package/dist/chunk-BUOCIXUH.js +0 -2
- package/dist/chunk-BUOCIXUH.js.map +0 -1
- package/dist/chunk-D36G74ID.js +0 -2
- package/dist/chunk-D36G74ID.js.map +0 -1
- package/dist/chunk-GSPD4EIV.js +0 -2
- package/dist/chunk-GSPD4EIV.js.map +0 -1
- package/dist/chunk-JDVILEVL.js +0 -2
- package/dist/chunk-JDVILEVL.js.map +0 -1
- package/dist/chunk-JEFPOHCP.js +0 -2
- package/dist/chunk-JEFPOHCP.js.map +0 -1
- package/dist/chunk-JTPKAIYL.js +0 -2
- package/dist/chunk-JTPKAIYL.js.map +0 -1
- package/dist/chunk-KRSUSMJK.js +0 -2
- package/dist/chunk-KRSUSMJK.js.map +0 -1
- package/dist/chunk-MTYN4AM3.js +0 -2
- package/dist/chunk-OUSCSVMQ.js +0 -2
- package/dist/chunk-OUSCSVMQ.js.map +0 -1
- package/dist/chunk-T7O3YYOG.js +0 -2
- package/dist/chunk-T7O3YYOG.js.map +0 -1
- /package/dist/{chunk-MTYN4AM3.js.map → chunk-42R2H2DW.js.map} +0 -0
- /package/dist/{chunk-ZOTT6IZN.js.map → chunk-67GUBRC6.js.map} +0 -0
- /package/dist/{chunk-EMP4ZIVB.js.map → chunk-72TX2GXH.js.map} +0 -0
- /package/dist/{chunk-3OJVYYPZ.js.map → chunk-7AFCHGML.js.map} +0 -0
- /package/dist/{chunk-MXSKCQOT.js.map → chunk-7PTTOR6T.js.map} +0 -0
- /package/dist/{chunk-7M7VN4WI.js.map → chunk-7Y4XCQZX.js.map} +0 -0
- /package/dist/{chunk-4S7BRDNF.js.map → chunk-AHBNUSR4.js.map} +0 -0
- /package/dist/{chunk-BTS5Q6UZ.js.map → chunk-AQ4WWMOK.js.map} +0 -0
- /package/dist/{chunk-KYBKW4FE.js.map → chunk-BNY76RHM.js.map} +0 -0
- /package/dist/{chunk-KJ4JS75E.js.map → chunk-BRPBSA4E.js.map} +0 -0
- /package/dist/{chunk-Z6B3PA4M.js.map → chunk-DPZHLV7U.js.map} +0 -0
- /package/dist/{chunk-POKLRB3M.js.map → chunk-E6B4ZECN.js.map} +0 -0
- /package/dist/{chunk-DHRMW63S.js.map → chunk-EULZWL2F.js.map} +0 -0
- /package/dist/{chunk-EUSCQL4H.js.map → chunk-EUQH4FU4.js.map} +0 -0
- /package/dist/{chunk-BLGKOMH3.js.map → chunk-HGNICQUY.js.map} +0 -0
- /package/dist/{chunk-Q3VMPVT3.js.map → chunk-HPLRAHY7.js.map} +0 -0
- /package/dist/{chunk-NEKE5PRJ.js.map → chunk-IF42CZJH.js.map} +0 -0
- /package/dist/{chunk-MVQOMW7S.js.map → chunk-IJQBLGTI.js.map} +0 -0
- /package/dist/{chunk-RSZZMCB2.js.map → chunk-IW6OJUGY.js.map} +0 -0
- /package/dist/{chunk-B7TQYSAY.js.map → chunk-J5I5ZSW3.js.map} +0 -0
- /package/dist/{chunk-EAF6XPH6.js.map → chunk-JD2O7KNE.js.map} +0 -0
- /package/dist/{chunk-KNHDPKRL.js.map → chunk-JTD4HJSK.js.map} +0 -0
- /package/dist/{chunk-CR3X2TWM.js.map → chunk-KIQNU673.js.map} +0 -0
- /package/dist/{chunk-WURYTVWC.js.map → chunk-KKOBWE62.js.map} +0 -0
- /package/dist/{chunk-Y2LBI32D.js.map → chunk-KN5M3VJD.js.map} +0 -0
- /package/dist/{chunk-I5FVESDZ.js.map → chunk-KQSWP3Y3.js.map} +0 -0
- /package/dist/{chunk-5JGEEJ3A.js.map → chunk-KWLKQ6N6.js.map} +0 -0
- /package/dist/{chunk-VCDA76UN.js.map → chunk-LT27CPJ6.js.map} +0 -0
- /package/dist/{chunk-DFYEI445.js.map → chunk-MAOJJ4WX.js.map} +0 -0
- /package/dist/{chunk-LM766FLB.js.map → chunk-OC3MVHTM.js.map} +0 -0
- /package/dist/{chunk-3UEQXLRC.js.map → chunk-QELEVTDT.js.map} +0 -0
- /package/dist/{chunk-T5JT2ZU2.js.map → chunk-QWQPTZQD.js.map} +0 -0
- /package/dist/{chunk-IVXIAOMR.js.map → chunk-SAUF7ZUE.js.map} +0 -0
- /package/dist/{chunk-RMIAJZOG.js.map → chunk-TMVRAQYA.js.map} +0 -0
- /package/dist/{chunk-24FMEFH5.js.map → chunk-TZQ2O23Z.js.map} +0 -0
- /package/dist/{chunk-WKLTHGWU.js.map → chunk-UWL56AOZ.js.map} +0 -0
- /package/dist/{chunk-LSW66EIR.js.map → chunk-W5USIIXL.js.map} +0 -0
- /package/dist/{chunk-7EUMRKH4.js.map → chunk-XAPDPR3N.js.map} +0 -0
- /package/dist/{chunk-QJ2XK63I.js.map → chunk-XJECSJYB.js.map} +0 -0
- /package/dist/{chunk-74ZEXZAY.js.map → chunk-XW7ZYSJ3.js.map} +0 -0
- /package/dist/{chunk-XQZI2FRQ.js.map → chunk-Y2JE46ZY.js.map} +0 -0
- /package/dist/{chunk-RZJ7WE6G.js.map → chunk-YVAEVXHP.js.map} +0 -0
- /package/dist/{chunk-W4RON3XZ.js.map → chunk-YYGLCI2S.js.map} +0 -0
- /package/dist/{chunk-AFHSKSGA.js.map → chunk-Z7AWT3MQ.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/Onboarding/hooks.tsx","../src/components/error-handling/ErrorContext.tsx","../src/components/error-handling/useErrorReporting.ts"],"sourcesContent":["import { ValidationResult } from '@remoteoss/remote-json-schema-form-kit';\nimport {\n Employment,\n EmploymentCreateParams,\n EmploymentFullParams,\n} from '@/src/client';\nimport { JSFFields } from '@/src/types/remoteFlows';\nimport { useStepState, Step } from '@/src/flows/useStepState';\nimport {\n disabledInviteButtonEmploymentStatus,\n getContractDetailsSchemaVersion,\n reviewStepAllowedEmploymentStatus,\n STEPS,\n STEPS_WITHOUT_SELECT_COUNTRY,\n} from '@/src/flows/Onboarding/utils';\nimport { prettifyFormValues } from '@/src/lib/utils';\nimport {\n getInitialValues,\n enableAckFields,\n parseJSFToValidate,\n} from '@/src/components/form/utils';\nimport { mutationToPromise } from '@/src/lib/mutations';\nimport { FieldValues } from 'react-hook-form';\nimport { OnboardingFlowProps } from '@/src/flows/Onboarding/types';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport mergeWith from 'lodash.mergewith';\nimport {\n useBenefitOffers,\n useBenefitOffersSchema,\n useCompany,\n useCountriesSchemaField,\n useCreateEmployment,\n useEmploymentOnboardingReservesStatus,\n useJSONSchemaForm,\n useUpdateBenefitsOffers,\n useUpdateEmployment,\n useUpsertContractEligibility,\n} from '@/src/flows/Onboarding/api';\nimport { JSFModify, JSONSchemaFormType } from '@/src/flows/types';\nimport { AnnualGrossSalary } from '@/src/flows/Onboarding/components/AnnualGrossSalary';\nimport { $TSFixMe, JSFField, JSFFieldset, Meta } from '@/src/types/remoteFlows';\nimport { EquityPriceDetails } from '@/src/flows/Onboarding/components/EquityPriceDetails';\nimport { useErrorReporting } from '@/src/components/error-handling/useErrorReporting';\nimport { useEmploymentQuery } from '@/src/common/api/employment';\n\ntype OnboardingHookProps = Omit<OnboardingFlowProps, 'render'>;\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 getLoadingStates = ({\n isLoadingBasicInformationForm,\n isLoadingContractDetailsForm,\n isLoadingEmployment,\n isLoadingBenefitsOffersSchema,\n isLoadingBenefitOffers,\n isLoadingCompany,\n isLoadingCountries,\n employmentStatus,\n employmentId,\n currentStepName,\n basicInformationFields,\n contractDetailsFields,\n}: {\n isLoadingBasicInformationForm: boolean;\n isLoadingContractDetailsForm: boolean;\n isLoadingEmployment: boolean;\n isLoadingBenefitsOffersSchema: boolean;\n isLoadingBenefitOffers: boolean;\n isLoadingCompany: boolean;\n isLoadingCountries: boolean;\n employmentStatus?: Employment['status'];\n employmentId?: string;\n currentStepName: string;\n basicInformationFields: JSFFields;\n contractDetailsFields: JSFFields;\n}) => {\n const initialLoading =\n isLoadingBasicInformationForm ||\n isLoadingContractDetailsForm ||\n isLoadingEmployment ||\n isLoadingBenefitsOffersSchema ||\n isLoadingBenefitOffers ||\n isLoadingCompany ||\n isLoadingCountries;\n\n const isEmploymentReadOnly =\n employmentStatus &&\n reviewStepAllowedEmploymentStatus.includes(employmentStatus);\n\n const canInvite =\n employmentStatus &&\n !disabledInviteButtonEmploymentStatus.includes(employmentStatus);\n\n const shouldHandleReadOnlyEmployment = Boolean(\n employmentId && isEmploymentReadOnly && currentStepName !== 'review',\n );\n\n const isLoading = initialLoading || shouldHandleReadOnlyEmployment;\n\n const isNavigatingToReview = Boolean(\n shouldHandleReadOnlyEmployment &&\n !initialLoading &&\n basicInformationFields.length > 0 &&\n contractDetailsFields.length > 0,\n );\n\n return {\n isLoading,\n isNavigatingToReview,\n isEmploymentReadOnly,\n canInvite,\n };\n};\n\nexport const useOnboarding = ({\n employmentId,\n companyId,\n countryCode,\n type,\n options,\n skipSteps,\n externalId,\n initialValues: onboardingInitialValues,\n}: OnboardingHookProps) => {\n const { updateErrorContext } = useErrorReporting({\n flow: 'onboarding',\n metadata: {\n employmentId,\n companyId,\n isUpdating: Boolean(employmentId),\n },\n });\n const stepsToUse = skipSteps?.includes('select_country')\n ? STEPS_WITHOUT_SELECT_COUNTRY\n : STEPS;\n\n const onStepChange = useCallback(\n (step: Step<keyof typeof STEPS>) => {\n updateErrorContext({\n step: step.name,\n });\n },\n [updateErrorContext],\n );\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 onStepChange,\n );\n\n const fieldsMetaRef = useRef<{\n select_country: Meta;\n basic_information: Meta;\n contract_details: Meta;\n benefits: Meta;\n }>({\n select_country: {},\n basic_information: {},\n contract_details: {},\n benefits: {},\n });\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 } = useEmploymentQuery({\n employmentId: internalEmploymentId as string,\n queryParams: { exclude_files: true },\n });\n\n // if the employment is loaded, country code has not been set yet\n // we set the internal country code with the employment country code\n if (employmentId && employment?.country?.code && !internalCountryCode) {\n setInternalCountryCode(employment.country.code);\n }\n\n const { data: benefitOffers, isLoading: isLoadingBenefitOffers } =\n useBenefitOffers(internalEmploymentId);\n\n const {\n data: company,\n isLoading: isLoadingCompany,\n refetch: refetchCompany,\n } = useCompany(companyId);\n\n const isOnboardingReservesEnabled =\n (options?.features?.includes('onboarding_reserves') &&\n stepState.currentStep.name === 'review') ||\n false;\n\n const { data: onboardingReservesStatus } =\n useEmploymentOnboardingReservesStatus(\n companyId,\n internalEmploymentId,\n isOnboardingReservesEnabled,\n );\n\n const { selectCountryForm, isLoading: isLoadingCountries } =\n useCountriesSchemaField({\n jsfModify: options?.jsfModify?.select_country,\n queryOptions: {\n enabled: stepState.currentStep.name === 'select_country',\n },\n });\n\n const createEmploymentMutation = useCreateEmployment();\n const updateEmploymentMutation = useUpdateEmployment(\n internalCountryCode as string,\n options,\n );\n const updateBenefitsOffersMutation = useUpdateBenefitsOffers(options);\n const updateContractEligibilityMutation = useUpsertContractEligibility();\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 const { mutateAsync: updateContractEligibilityMutationAsync } =\n mutationToPromise(updateContractEligibilityMutation);\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 useJSONSchema = ({\n form,\n options: jsonSchemaOptions = {},\n query = {},\n jsonSchemaVersion,\n }: {\n form: JSONSchemaFormType;\n options?: {\n jsfModify?: JSFModify;\n queryOptions?: { enabled?: boolean };\n };\n query?: Record<string, string>;\n jsonSchemaVersion?: number | 'latest';\n }) => {\n const hasUserEnteredAnyValues = Object.keys(fieldValues).length > 0;\n // when you write on the fields, the values are stored in the fieldValues state\n // when values are stored in the stepState is when the user has navigated to the step\n // and then we have the values from the server and the onboardingInitialValues that the user can inject,\n const mergedFormValues = hasUserEnteredAnyValues\n ? {\n ...onboardingInitialValues,\n ...stepState.values?.[stepState.currentStep.name], // Restore values for the current step\n ...fieldValues,\n }\n : {\n ...onboardingInitialValues,\n ...serverEmploymentData,\n };\n\n return useJSONSchemaForm({\n countryCode: internalCountryCode as string,\n form: form,\n fieldValues: mergedFormValues,\n query,\n options: {\n ...jsonSchemaOptions,\n queryOptions: {\n enabled: jsonSchemaOptions.queryOptions?.enabled ?? true,\n },\n },\n jsonSchemaVersion,\n });\n };\n\n const isBasicInformationDetailsEnabled = Boolean(\n internalCountryCode &&\n (stepState.currentStep.name === 'basic_information' ||\n Boolean(employmentId)),\n );\n\n const isContractDetailsEnabled = Boolean(\n internalCountryCode &&\n (stepState.currentStep.name === 'contract_details' ||\n Boolean(employmentId)),\n );\n\n const {\n data: basicInformationForm,\n isLoading: isLoadingBasicInformationForm,\n } = useJSONSchema({\n form: 'employment_basic_information',\n options: {\n jsfModify: options?.jsfModify?.basic_information,\n queryOptions: {\n enabled: isBasicInformationDetailsEnabled,\n },\n },\n jsonSchemaVersion: 1,\n });\n\n const annualGrossSalaryField =\n options?.jsfModify?.contract_details?.fields?.annual_gross_salary;\n const annualSalaryFieldPresentation =\n annualGrossSalaryField &&\n typeof annualGrossSalaryField === 'object' &&\n 'presentation' in annualGrossSalaryField\n ? (\n annualGrossSalaryField as {\n presentation?: {\n annual_gross_salary_conversion_properties?: {\n label?: string;\n description?: string;\n };\n };\n }\n ).presentation\n : undefined;\n\n const equityCompensationField =\n options?.jsfModify?.contract_details?.fields?.equity_compensation;\n\n const contractDetailsCustomFields = useMemo(\n () => ({\n fields: {\n annual_gross_salary: {\n ...annualGrossSalaryField,\n presentation: {\n annual_gross_salary_conversion_properties: {\n label:\n annualSalaryFieldPresentation\n ?.annual_gross_salary_conversion_properties?.label,\n description:\n annualSalaryFieldPresentation\n ?.annual_gross_salary_conversion_properties?.description,\n },\n desiredCurrency: company?.desired_currency,\n Component: (props: JSFField & { currency: string }) => {\n return (\n <AnnualGrossSalary\n desiredCurrency={company?.desired_currency || ''}\n {...props}\n />\n );\n },\n },\n },\n equity_compensation: {\n ...equityCompensationField,\n presentation: {\n calculateDynamicProperties: (\n values: FieldValues,\n field: JSFField,\n ) => {\n const offerEquity =\n values.equity_compensation?.offer_equity_compensation;\n const equityCost = field?.meta?.cost;\n\n return {\n extra: (\n <EquityPriceDetails\n offerEquity={offerEquity}\n equityCost={equityCost as $TSFixMe}\n />\n ),\n };\n },\n },\n },\n },\n }),\n [\n annualGrossSalaryField,\n annualSalaryFieldPresentation,\n company?.desired_currency,\n equityCompensationField,\n ],\n );\n\n const effectiveContractDetailsJsonSchemaVersion =\n getContractDetailsSchemaVersion(options, internalCountryCode);\n\n const { data: contractDetailsForm, isLoading: isLoadingContractDetailsForm } =\n useJSONSchema({\n form: 'contract_details',\n query: {\n employment_id: internalEmploymentId as string,\n },\n options: {\n jsfModify: {\n ...options?.jsfModify?.contract_details,\n fields: {\n ...options?.jsfModify?.contract_details?.fields,\n ...contractDetailsCustomFields.fields,\n },\n },\n queryOptions: {\n enabled: isContractDetailsEnabled,\n },\n },\n jsonSchemaVersion: effectiveContractDetailsJsonSchemaVersion,\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, JSFFields> = useMemo(\n () => ({\n select_country: selectCountryForm?.fields || [],\n basic_information: basicInformationForm?.fields || [],\n contract_details: contractDetailsForm?.fields || [],\n benefits: benefitOffersSchema?.fields || [],\n review: [],\n }),\n [\n selectCountryForm?.fields,\n basicInformationForm?.fields,\n contractDetailsForm?.fields,\n benefitOffersSchema?.fields,\n ],\n );\n\n const stepFieldsWithFlatFieldsets: Record<\n keyof typeof STEPS,\n JSFFieldset | null | undefined\n > = {\n select_country: null,\n basic_information: basicInformationForm?.meta['x-jsf-fieldsets'],\n contract_details: contractDetailsForm?.meta['x-jsf-fieldsets'],\n benefits: null,\n review: null,\n };\n\n const {\n country,\n basic_information: employmentBasicInformation = {},\n contract_details: employmentContractDetails = {},\n status: employmentStatus,\n } = employment || {};\n\n const employmentCountryCode = country?.code;\n const currentStepName = stepState.currentStep.name;\n\n const selectCountryInitialValues = useMemo(\n () =>\n getInitialValues(stepFields.select_country, {\n country: internalCountryCode || employmentCountryCode || '',\n }),\n [stepFields.select_country, internalCountryCode, employmentCountryCode],\n );\n\n const basicInformationInitialValues = useMemo(() => {\n const initialValues = {\n ...onboardingInitialValues,\n ...employmentBasicInformation,\n };\n\n return getInitialValues(stepFields.basic_information, initialValues);\n }, [\n stepFields.basic_information,\n employmentBasicInformation,\n onboardingInitialValues,\n ]);\n\n const contractDetailsInitialValues = useMemo(() => {\n const initialValues = {\n ...onboardingInitialValues,\n ...employmentContractDetails,\n };\n\n return getInitialValues(stepFields.contract_details, initialValues);\n }, [\n stepFields.contract_details,\n employmentContractDetails,\n onboardingInitialValues,\n ]);\n\n const benefitsInitialValues = useMemo(() => {\n const initialValues = {\n ...onboardingInitialValues,\n ...initialValuesBenefitOffers,\n };\n\n return getInitialValues(stepFields.benefits, initialValues);\n }, [\n stepFields.benefits,\n initialValuesBenefitOffers,\n onboardingInitialValues,\n ]);\n\n const initialValues = useMemo(() => {\n if (employment) {\n return {\n select_country: selectCountryInitialValues,\n // We don't store ack fields in the db, eg \"ack_start_date_ammendment\" for Argentina, and therefore is not returned in the employment response\n // So when an employmentId exists, it means that the user has already started the onboarding process, and we need to enable the ack fields\n basic_information: enableAckFields(\n stepFields['basic_information'],\n basicInformationInitialValues,\n ),\n contract_details:\n // if contract details is null, it means it has not been filled yet, so we can't enable the ack fields\n employment?.contract_details !== null\n ? enableAckFields(\n stepFields['contract_details'],\n contractDetailsInitialValues,\n )\n : contractDetailsInitialValues,\n benefits: benefitsInitialValues,\n };\n }\n return {\n select_country: selectCountryInitialValues,\n basic_information: basicInformationInitialValues,\n contract_details: contractDetailsInitialValues,\n benefits: benefitsInitialValues,\n };\n }, [\n selectCountryInitialValues,\n basicInformationInitialValues,\n contractDetailsInitialValues,\n benefitsInitialValues,\n employment,\n stepFields,\n ]);\n\n const { isLoading, isNavigatingToReview, isEmploymentReadOnly, canInvite } =\n useMemo(\n () =>\n getLoadingStates({\n isLoadingBasicInformationForm,\n isLoadingContractDetailsForm,\n isLoadingEmployment,\n isLoadingBenefitsOffersSchema,\n isLoadingBenefitOffers,\n isLoadingCompany,\n isLoadingCountries,\n employmentId,\n employmentStatus: employmentStatus,\n basicInformationFields: stepFields.basic_information,\n contractDetailsFields: stepFields.contract_details,\n currentStepName: currentStepName,\n }),\n [\n isLoadingBasicInformationForm,\n isLoadingContractDetailsForm,\n isLoadingEmployment,\n isLoadingBenefitsOffersSchema,\n isLoadingBenefitOffers,\n isLoadingCompany,\n isLoadingCountries,\n employmentId,\n employmentStatus,\n stepFields.basic_information,\n stepFields.contract_details,\n currentStepName,\n ],\n );\n\n useEffect(() => {\n if (isNavigatingToReview) {\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 basicInformationInitialValues,\n benefitsInitialValues,\n contractDetailsInitialValues,\n goToStep,\n isNavigatingToReview,\n selectCountryInitialValues,\n setStepValues,\n stepFields.basic_information,\n stepFields.benefits,\n stepFields.contract_details,\n stepFields.select_country,\n ]);\n\n const parseFormValues = async (values: FieldValues) => {\n if (selectCountryForm && stepState.currentStep.name === 'select_country') {\n return values;\n }\n if (\n basicInformationForm &&\n stepState.currentStep.name === 'basic_information'\n ) {\n return await parseJSFToValidate(values, basicInformationForm?.fields, {\n isPartialValidation: false,\n });\n }\n\n if (\n contractDetailsForm &&\n stepState.currentStep.name === 'contract_details'\n ) {\n return await parseJSFToValidate(values, contractDetailsForm?.fields, {\n isPartialValidation: false,\n });\n }\n\n if (benefitOffersSchema && stepState.currentStep.name === 'benefits') {\n return await parseJSFToValidate(values, benefitOffersSchema?.fields, {\n isPartialValidation: false,\n });\n }\n\n return {};\n };\n\n async function onSubmit(values: FieldValues) {\n // Prettify values for the current step\n const currentStepName = stepState.currentStep.name;\n if (currentStepName in fieldsMetaRef.current) {\n fieldsMetaRef.current[\n currentStepName as keyof typeof fieldsMetaRef.current\n ] = prettifyFormValues(values, stepFields[currentStepName]);\n }\n\n const parsedValues = await 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 external_id: externalId,\n };\n try {\n const response = await createEmploymentMutationAsync(payload);\n\n if (response.error) {\n return response;\n }\n\n if (response.data) {\n // @ts-expect-error the types from the response are not matching\n const employmentId = response.data?.data?.employment?.id;\n if (employmentId) {\n setInternalEmploymentId(employmentId);\n await updateContractEligibilityMutationAsync({\n employmentId: employmentId,\n eligible_to_work_in_residing_country: 'citizen',\n employer_or_work_restrictions: false,\n });\n }\n\n return response;\n }\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 external_id: externalId,\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 external_id: externalId,\n ...payload,\n });\n }\n\n case 'benefits': {\n return updateBenefitsOffersMutationAsync({\n employmentId: internalEmploymentId as string,\n ...parsedValues,\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 * Onboarding reserves status for the employment\n * Returns 'deposit_required' if a deposit is required based on onboarding reserves policies\n */\n onboardingReservesStatus: onboardingReservesStatus,\n /**\n * Current state of the form fields for the current step.\n */\n fieldValues,\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 updateContractEligibilityMutation.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: async (\n values: FieldValues,\n ): Promise<ValidationResult | null> => {\n if (stepState.currentStep.name === 'select_country') {\n return selectCountryForm.handleValidation(values);\n }\n if (stepState.currentStep.name === 'benefits' && benefitOffersSchema) {\n const parsedValues = await parseJSFToValidate(\n values,\n benefitOffersSchema?.fields,\n { isPartialValidation: false },\n );\n\n return benefitOffersSchema?.handleValidation(parsedValues);\n }\n if (\n basicInformationForm &&\n stepState.currentStep.name === 'basic_information'\n ) {\n const parsedValues = await parseJSFToValidate(\n values,\n basicInformationForm?.fields,\n { isPartialValidation: false },\n );\n return basicInformationForm?.handleValidation(parsedValues);\n }\n\n if (\n contractDetailsForm &&\n stepState.currentStep.name === 'contract_details'\n ) {\n const parsedValues = await parseJSFToValidate(\n values,\n contractDetailsForm?.fields,\n { isPartialValidation: false },\n );\n return contractDetailsForm?.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 fieldsets: stepFieldsWithFlatFieldsets[stepState.currentStep.name],\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 * let's the user know that the employment cannot be edited, happens when employment.status is invited, created_awaiting_reserve or created_reserve_paid\n * @returns {boolean}\n */\n isEmploymentReadOnly,\n\n /**\n * let's the user know if the company can invite employees\n * @returns {boolean}\n */\n canInvite,\n };\n};\n","import {\n createContext,\n useContext,\n ReactNode,\n useMemo,\n useCallback,\n useRef,\n RefObject,\n} from 'react';\nimport type { ErrorContextData } from './types';\n\nexport type ErrorContextValue = {\n errorContextRef: RefObject<ErrorContextData>;\n updateContext: (updates: Partial<ErrorContextData>) => void;\n};\n\nexport const ErrorContext = createContext<ErrorContextValue | undefined>(\n undefined,\n);\n\nexport function ErrorContextProvider({ children }: { children: ReactNode }) {\n const errorContextRef = useRef<ErrorContextData>({});\n\n const updateContext = useCallback((updates: Partial<ErrorContextData>) => {\n errorContextRef.current = { ...errorContextRef.current, ...updates };\n }, []);\n\n // Memoize the value object to prevent unnecessary re-renders\n // Note: setContext is stable from useState and doesn't need to be in deps\n const value = useMemo(\n () => ({\n errorContextRef,\n updateContext,\n }),\n [updateContext],\n );\n\n return (\n <ErrorContext.Provider value={value}>{children}</ErrorContext.Provider>\n );\n}\n\nexport const useErrorContext = () => {\n const ctx = useContext(ErrorContext);\n if (!ctx) {\n throw new Error('useErrorContext must be used within ErrorContextProvider');\n }\n return ctx;\n};\n","import { useErrorContext } from '@/src/components/error-handling/ErrorContext';\nimport { ErrorContextData } from '@/src/components/error-handling/types';\nimport { useEffect, useMemo } from 'react';\n\nexport function useErrorReporting(initialContext: ErrorContextData) {\n const { updateContext, errorContextRef } = useErrorContext();\n\n // Set initial context on mount\n useEffect(() => {\n if (initialContext) {\n errorContextRef.current = initialContext;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // Clear context on unmount\n useEffect(() => {\n return () => {\n errorContextRef.current = {};\n };\n }, [errorContextRef]);\n\n // Note: setContext and updateContext are stable, don't need to be in deps\n const handlers = useMemo(\n () => ({\n updateErrorContext: (updates: Partial<ErrorContextData>) => {\n updateContext(updates);\n },\n\n clearErrorContext: () => {\n errorContextRef.current = {};\n },\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n\n return {\n ...handlers,\n /**\n * @internal For unit testing only - we access the errorContext in the error boundary directly\n * Use updateErrorContext() and clearErrorContext() handlers instead.\n */\n errorContext: errorContextRef,\n };\n}\n"],"mappings":"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","names":["useCallback","useEffect","useMemo","useRef","useState","mergeWith","createContext","useContext","useMemo","useCallback","useRef","jsx","ErrorContext","createContext","ErrorContextProvider","children","errorContextRef","useRef","updateContext","useCallback","updates","value","useMemo","__name","useErrorContext","ctx","useContext","useEffect","useMemo","useErrorReporting","initialContext","updateContext","errorContextRef","useErrorContext","useEffect","useMemo","__name","updates","jsx","jsonSchemaToEmployment","stepToFormSchemaMap","getLoadingStates","__name","isLoadingBasicInformationForm","isLoadingContractDetailsForm","isLoadingEmployment","isLoadingBenefitsOffersSchema","isLoadingBenefitOffers","isLoadingCompany","isLoadingCountries","employmentStatus","employmentId","currentStepName","basicInformationFields","contractDetailsFields","initialLoading","isEmploymentReadOnly","reviewStepAllowedEmploymentStatus","canInvite","disabledInviteButtonEmploymentStatus","shouldHandleReadOnlyEmployment","isLoading","isNavigatingToReview","useOnboarding","companyId","countryCode","type","options","skipSteps","externalId","onboardingInitialValues","updateErrorContext","useErrorReporting","stepsToUse","STEPS_WITHOUT_SELECT_COUNTRY","STEPS","onStepChange","useCallback","step","fieldValues","stepState","setFieldValues","previousStep","nextStep","goToStep","setStepValues","useStepState","fieldsMetaRef","useRef","internalEmploymentId","setInternalEmploymentId","useState","internalCountryCode","setInternalCountryCode","employment","refetchEmployment","useEmploymentQuery","benefitOffers","useBenefitOffers","company","refetchCompany","useCompany","isOnboardingReservesEnabled","onboardingReservesStatus","useEmploymentOnboardingReservesStatus","selectCountryForm","useCountriesSchemaField","createEmploymentMutation","useCreateEmployment","updateEmploymentMutation","useUpdateEmployment","updateBenefitsOffersMutation","useUpdateBenefitsOffers","updateContractEligibilityMutation","useUpsertContractEligibility","createEmploymentMutationAsync","mutationToPromise","updateEmploymentMutationAsync","updateBenefitsOffersMutationAsync","updateContractEligibilityMutationAsync","formType","employmentKey","serverEmploymentData","useJSONSchema","form","jsonSchemaOptions","query","jsonSchemaVersion","mergedFormValues","useJSONSchemaForm","isBasicInformationDetailsEnabled","isContractDetailsEnabled","basicInformationForm","annualGrossSalaryField","annualSalaryFieldPresentation","equityCompensationField","contractDetailsCustomFields","useMemo","props","AnnualGrossSalary","values","field","offerEquity","equityCost","EquityPriceDetails","effectiveContractDetailsJsonSchemaVersion","getContractDetailsSchemaVersion","contractDetailsForm","benefitOffersSchema","useBenefitOffersSchema","initialValuesBenefitOffers","benefitsFormValues","mergeWith","stepFields","stepFieldsWithFlatFieldsets","country","employmentBasicInformation","employmentContractDetails","employmentCountryCode","selectCountryInitialValues","getInitialValues","basicInformationInitialValues","initialValues","contractDetailsInitialValues","benefitsInitialValues","enableAckFields","useEffect","prettifyFormValues","parseFormValues","parseJSFToValidate","onSubmit","parsedValues","isEmploymentNotLoaded","hasChangedCountry","payload","response","error","back","next","goTo"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as H}from"./chunk-AP56UUME.js";import{a as z}from"./chunk-IJCTN52C.js";import{a as N}from"./chunk-WVJDCDGZ.js";import{a as W}from"./chunk-O6H66UM2.js";import{e as E}from"./chunk-AHRG5QCS.js";import{a as P,b as Y,c as X,d as _,f as q}from"./chunk-PX5PE6GX.js";import{a as b}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as H}from"./chunk-AP56UUME.js";import{a as z}from"./chunk-IJCTN52C.js";import{a as N}from"./chunk-WVJDCDGZ.js";import{a as W}from"./chunk-O6H66UM2.js";import{e as E}from"./chunk-AHRG5QCS.js";import{a as P,b as Y,c as X,d as _,f as q}from"./chunk-PX5PE6GX.js";import{a as b}from"./chunk-EUQH4FU4.js";import{d as x}from"./chunk-I3DVKJCW.js";import{$ as B,B as v,F as U,N as J,Q as K,S as j,U as A,V as G,W as V,X as k,_ as $,f as I,h as M,p as D,r as T,s as L,t as Q}from"./chunk-WQ4H5V7U.js";import{g as w}from"./chunk-VIGKOVHP.js";import{a as O}from"./chunk-X6ZAR7ZL.js";import{d as a}from"./chunk-KQPDXXG3.js";import{a as n}from"./chunk-P37U34EQ.js";import{useMemo as be}from"react";import{useMutation as f,useQuery as p}from"@tanstack/react-query";import{useMutation as de,useQuery as Z}from"@tanstack/react-query";var Re=n(()=>{let{client:e}=a();return de({mutationFn:n(t=>j({client:e,body:t,headers:{Authorization:""}}),"mutationFn")})},"useUploadFile"),ee=n(e=>{let{client:t}=a();return Z({queryKey:["download-file",e],queryFn:n(async()=>{let o=await v({client:t,path:{id:e}});if(o.error)throw o.error;return o.data},"queryFn"),select:n(({data:o})=>o?.file,"select"),enabled:!!e})},"useDownloadFile"),te=n((e,t,o)=>{let{client:r}=a();return Z({queryKey:["employment-files",e],queryFn:n(async()=>{let i=await K({client:r,path:{employment_id:e},query:t});if(i.error)throw i.error;return i.data},"queryFn"),...o})},"useEmploymentFiles");import{useQuery as me}from"@tanstack/react-query";import{useQuery as pe}from"@tanstack/react-query";var ne=n(()=>{let{client:e}=a();return pe({queryKey:["identity"],queryFn:n(()=>G({client:e,headers:{Authorization:""}}),"queryFn"),select:n(t=>t.data?.data,"select")})},"useIdentity");function ye(e){return e!=null&&"company"in e}n(ye,"hasCompany");var oe=n((e={enabled:!0})=>{let{data:t}=ne(),o=ye(t)?t?.company?.id??"":"",{client:r}=a();return me({queryKey:["pricing-plans",o],queryFn:n(()=>I({client:r,path:{company_id:o}}),"queryFn"),select:n(i=>i.data?.data?.pricing_plans,"select"),enabled:!!e?.enabled&&!!o})},"useCompanyPricingPlans");var fe=n(({employmentId:e,options:t})=>{let{client:o}=a();return p({queryKey:["contractor-currencies",e],queryFn:n(async()=>Q({client:o,path:{employment_id:e},query:{restrict_to_guaranteed_pay_out_currencies:!1}}),"queryFn"),enabled:t?.queryOptions?.enabled,select:n(({data:r})=>r?.data,"select")})},"useContractorCurrencies"),yt=n(({fieldValues:e,options:t})=>p({queryKey:["contract-document-signature",e.review_completed,t?.jsfModify],queryFn:n(async()=>b(z,e,{jsfModify:t?.jsfModify}),"queryFn"),enabled:t?.queryOptions?.enabled}),"useGetContractDocumentSignatureSchema"),bt=n(()=>{let{client:e}=a();return f({mutationFn:n(async({employmentId:t,contractDocumentId:o,payload:r})=>A({client:e,body:r,path:{employment_id:t,contract_document_id:o}}),"mutationFn")})},"useSignContractDocument"),ft=n(({employmentId:e,contractDocumentId:t,options:o})=>{let{client:r}=a();return p({queryKey:["contract-document",e,t],queryFn:n(async()=>T({client:r,path:{employment_id:e,id:t}}),"queryFn"),enabled:o?.queryOptions?.enabled,select:n(({data:i})=>({...i?.data,contract_document:{...i?.data?.contract_document,content:w(i?.data?.contract_document?.content)}}),"select")})},"useGetShowContractDocument"),Ce=n(({employmentId:e,options:t})=>{let{client:o}=a();return p({queryKey:["contractor-subscriptions",e],queryFn:n(async()=>D({client:o,path:{employment_id:e}}),"queryFn"),enabled:t?.queryOptions?.enabled,select:n(({data:r})=>r?.data,"select")})},"useGetContractorSubscriptions"),Ct=n(()=>{let{client:e}=a();return f({mutationFn:n(async({employmentId:t,payload:o})=>k({client:e,body:o,path:{employment_id:t}}),"mutationFn")})},"usePostManageContractorSubscriptions"),gt=n(()=>{let{client:e}=a();return f({mutationFn:n(async({employmentId:t,payload:o})=>J({client:e,body:o,path:{employment_id:t}}),"mutationFn")})},"useCreateContractorContractDocument"),ge=n(({countryCode:e,employmentId:t,fieldValues:o,options:r})=>{let{client:i}=a();return p({queryKey:["contractor-onboarding-details-schema",e,t],retry:!1,queryFn:n(async()=>M({client:i,path:{country_code:e},query:{json_schema_version:1,employment_id:t}}),"queryFn"),enabled:r?.queryOptions?.enabled,select:n(({data:s})=>{let c=s?.data?.schema||{};return b(c,o,r)},"select")})},"useContractorOnboardingDetailsSchema"),Fe={[P]:"Contractor Management",[Y]:"Contractor Management Plus",[X]:"Contractor of Record"},Se=n(e=>{let{data:t,isLoading:o}=oe({enabled:e?.enabled}),r=t?.find(s=>s.product.name==="EOR Monthly");return{eorSubscription:{product:{identifier:_,short_name:"EOR"},currency:r?.price.currency,price:{amount:x(r?.price.amount??0)},features:["Contract between Remote and employee","Remote manages onboarding, payroll, and compliance","Manages taxes, benefits, and time-off tracking","Handles contracts, transfers, and terminations"],description:"Enables hiring in countries without a local entity",label:"Employer of Record",value:_},isLoading:o}},"useEorSubscription"),he=n((e,t,o)=>(E(_,o)&&e.push({label:t.label,value:t.value,description:t.description,meta:{features:t.features,price:{amount:t.price.amount,currencyCode:t.currency?.code??""}},disabled:!1}),e),"addEorToFieldOptions"),Ft=n((e,t,o)=>{let{data:r,isLoading:i,refetch:s}=Ce({employmentId:e,options:{queryOptions:o?.queryOptions}}),c=r?.length===0,u=r?.length===1,l=r?.find(S=>S.product.short_name==="COR")?.eligibility_questionnaire?.is_blocking,d=(u||l===!0||c)&&t?.eor_onboarding,{eorSubscription:C,isLoading:re}=Se({enabled:d}),R=b(H.data.schema,{},o);if(r){let S=R.fields.find(h=>h.name==="subscription");if(S){let h=r.filter(m=>E(m.product.identifier??"",o?.excludeProducts)).map(m=>{let y=m.product,ie=m.price.amount,ae=m.currency.code,se=Fe[y.identifier]??"",ce=y.identifier??"",le=y.description??"",ue={features:y.features??[],price:{amount:x(ie),currencyCode:ae}};return{label:se,value:ce,description:le,meta:ue,disabled:l&&y.identifier!==P}});h.sort((m,y)=>m.label.localeCompare(y.label));let g=[];d&&(he(g,C,o?.excludeProducts),g.length>0&&(g[0].meta={...g[0].meta,groupSeparator:{show:!0}})),S.options=[...h,...g]}}return{isLoading:i||re,form:R,contractorSubscriptions:r,refetch:s,isEligibilityQuestionnaireBlocked:l}},"useContractorSubscriptionSchemaField"),St=n((e,t,o)=>{let{mutateAsyncOrThrow:r}=O(t),{mutateAsyncOrThrow:i}=O(e);return{mutateAsync:n(async({employmentId:s})=>{let{nationality_status:c,ir35:u,ir35_sds_file:F}=o,l={contract_document:{ir_35:u}},d={contract_document:{nationality:c}};return u?(await i({employmentId:s,payload:l}),F?r({employment_id:s,file:F,sub_type:q}):Promise.resolve()):c?i({employmentId:s,payload:d}):Promise.resolve()},"mutateAsync")}},"useUpdateUKandSaudiFields"),ht=n((e,t)=>{let{data:o,isLoading:r}=te(e,{sub_type:q},{...t,select:n(({data:c})=>c?.files?.filter(u=>u.sub_type===q),"select")}),i=o?.[0]?.id,s=ee(i);return{...s,isLoading:r||s.isLoading}},"useGetIR35File"),_t=n((e,t)=>{let{client:o}=a();return p({queryKey:["contract-documents",e],queryFn:n(async()=>L({client:o,path:{employment_id:e}}),"queryFn"),enabled:t?.enabled,select:n(({data:r})=>r?.data?.contract_documents,"select")})},"useGetContractDocuments"),qt=n(({options:e,fieldValues:t})=>{let{client:o}=a();return p({queryKey:["eligibility-questionnaire"],queryFn:n(async()=>{let r=await V({client:o,query:{type:"contractor_of_record",json_schema_version:1}});if(r.error)throw new Error("Failed to fetch eligibility questionnaire");return r.data.data},"queryFn"),select:n(r=>{let i=r?.schema||{};return b(i,t,{jsfModify:e?.jsfModify})},"select"),enabled:e?.queryOptions?.enabled})},"useGetEligibilityQuestionnaire"),Ot=n(()=>{let{client:e}=a();return f({mutationFn:n(async({employmentId:t,payload:o})=>U({client:e,body:{employment_slug:t,responses:o,type:"contractor_of_record"},query:{json_schema_version:1}}),"mutationFn")})},"usePostCreateEligibilityQuestionnaire"),xt=n(()=>{let{client:e}=a();return f({mutationFn:n(async({employmentId:t})=>B({client:e,path:{employment_id:t}}),"mutationFn")})},"usePostManageContractorCorSubscription"),Pt=n(()=>{let{client:e}=a();return f({mutationFn:n(async({employmentId:t})=>$({client:e,path:{employment_id:t}}),"mutationFn")})},"useDeleteContractorCorSubscription"),Et=n(e=>{let{client:t}=a(),{data:o,isLoading:r}=p({...W(t,"contractor-onboarding-countries"),select:n(s=>s.data?.data?.map(c=>({label:c.name,value:c.code,eor_onboarding:c.eor_onboarding,contractor_products_available:c.contractor_products_available}))||[],"select"),enabled:e?.queryOptions?.enabled}),i=b(N.data.schema,{},e);if(o){let s=i.fields.find(c=>c.name==="country");s&&(s.options=o)}return{isLoading:r,selectCountryForm:i,countries:o}},"useCountriesSchemaField"),Rt=n(({countryCode:e,employmentId:t,fieldValues:o,options:r})=>{let i=ge({countryCode:e,employmentId:t,fieldValues:o,options:r}),{data:s,isLoading:c}=fe({employmentId:t,options:{queryOptions:{enabled:r?.queryOptions?.enabled}}}),u=be(()=>!i.data||!s?i.data:{...i.data,fields:i.data.fields.map(l=>l.name!=="payment_terms"?l:{...l,fields:l.fields?.map(d=>d.name!=="compensation_currency_code"?d:{...d,options:s.map(C=>({label:C.code,value:C.code,meta:{source:C.source}}))})})},[i.data,s]);return{...i,data:u,isLoading:i.isLoading||c}},"useContractorOnboardingDetailsSchemaWithCurrencies");export{Re as a,ne as b,ye as c,yt as d,bt as e,ft as f,Ce as g,Ct as h,gt as i,Fe as j,Ft as k,St as l,ht as m,_t as n,qt as o,Ot as p,xt as q,Pt as r,Et as s,Rt as t};
|
|
2
|
+
//# sourceMappingURL=chunk-SAUF7ZUE.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as d}from"./chunk-7Y4XCQZX.js";import{a as n}from"./chunk-VAWEOFUO.js";import{a as u}from"./chunk-5VNMVVUB.js";import{a as m}from"./chunk-WD5DNUSS.js";import{a as p}from"./chunk-YVAEVXHP.js";import{a as S}from"./chunk-DPVXSN7T.js";import{a as e}from"./chunk-BNY76RHM.js";import{a}from"./chunk-IW6OJUGY.js";import{a as c}from"./chunk-Z7AWT3MQ.js";import{a as f}from"./chunk-LT27CPJ6.js";import{a as s}from"./chunk-P3QDMRCC.js";import{a as r}from"./chunk-Q3ALCPJN.js";import{a as i}from"./chunk-Y2S7WYMO.js";import{a as t}from"./chunk-P37U34EQ.js";import{useId as R,useRef as F,useMemo as y}from"react";import{jsx as D}from"react/jsx-runtime";var K=t(({render:l,employmentId:g,externalId:C,countryCode:b,skipSteps:v,initialValues:B,options:O})=>{let o=i({options:O,employmentId:g,externalId:C,countryCode:b,skipSteps:v,initialValues:B}),P=R(),w=F(void 0),I=y(()=>({setValue:w}),[]);return D(r.Provider,{value:{contractorOnboardingBag:o,formId:P,formRef:I},children:l({contractorOnboardingBag:o,components:{BasicInformationStep:a,SelectCountryStep:e,BackButton:n,SubmitButton:m,PricingPlanStep:p,EligibilityQuestionnaireStep:d,ContractDetailsStep:c,ContractPreviewStep:f,OnboardingInvite:u,ContractReviewButton:s,SaveDraftButton:S}})})},"ContractorOnboardingFlow");export{K as a};
|
|
2
|
+
//# sourceMappingURL=chunk-SDDJBGXV.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/ContractorOnboarding/ContractorOnboarding.tsx"],"sourcesContent":["import { UseFormSetValue } from 'react-hook-form';\nimport { useId, useRef, useMemo } from 'react';\nimport { OnboardingBack } from '@/src/flows/ContractorOnboarding/components/OnboardingBack';\nimport { SelectCountryStep } from '@/src/flows/ContractorOnboarding/components/SelectCountryStep';\nimport { ContractorOnboardingContext } from '@/src/flows/ContractorOnboarding/context';\nimport { useContractorOnboarding } from '@/src/flows/ContractorOnboarding/hooks';\nimport { ContractorOnboardingFlowProps } from '@/src/flows/ContractorOnboarding/types';\nimport { BasicInformationStep } from '@/src/flows/ContractorOnboarding/components/BasicInformationStep';\nimport { OnboardingSubmit } from '@/src/flows/ContractorOnboarding/components/OnboardingSubmit';\nimport { PricingPlanStep } from '@/src/flows/ContractorOnboarding/components/PricingPlan';\nimport { ContractDetailsStep } from '@/src/flows/ContractorOnboarding/components/ContractDetailsStep';\nimport { ContractPreviewStep } from '@/src/flows/ContractorOnboarding/components/ContractPreviewStep';\nimport { OnboardingInvite } from '@/src/flows/ContractorOnboarding/components/OnboardingInvite';\nimport { ContractReviewButton } from '@/src/flows/ContractorOnboarding/components/ContractReviewButton';\nimport { EligibilityQuestionnaireStep } from '@/src/flows/ContractorOnboarding/components/EligibilityQuestionnaireStep';\nimport { SaveDraftButton } from '@/src/flows/ContractorOnboarding/components/SaveDraftButton';\n\nexport const ContractorOnboardingFlow = ({\n render,\n employmentId,\n externalId,\n countryCode,\n skipSteps,\n initialValues,\n options,\n}: ContractorOnboardingFlowProps) => {\n const contractorOnboardingBag = useContractorOnboarding({\n options,\n employmentId,\n externalId,\n countryCode,\n skipSteps,\n initialValues,\n });\n const formId = useId();\n // Store form's setValue method in ref to allow sibling components\n // to update form state directly (e.g., ContractReviewButton setting review_completed)\n const setValueRef = useRef<\n UseFormSetValue<Record<string, unknown>> | undefined\n >(undefined);\n const formRef = useMemo(() => ({ setValue: setValueRef }), []);\n\n return (\n <ContractorOnboardingContext.Provider\n value={{ contractorOnboardingBag, formId, formRef }}\n >\n {render({\n contractorOnboardingBag,\n components: {\n BasicInformationStep: BasicInformationStep,\n SelectCountryStep: SelectCountryStep,\n BackButton: OnboardingBack,\n SubmitButton: OnboardingSubmit,\n PricingPlanStep: PricingPlanStep,\n EligibilityQuestionnaireStep: EligibilityQuestionnaireStep,\n ContractDetailsStep: ContractDetailsStep,\n ContractPreviewStep: ContractPreviewStep,\n OnboardingInvite: OnboardingInvite,\n ContractReviewButton: ContractReviewButton,\n SaveDraftButton: SaveDraftButton,\n },\n })}\n </ContractorOnboardingContext.Provider>\n );\n};\n"],"mappings":"2iBACA,OAAS,SAAAA,EAAO,UAAAC,EAAQ,WAAAC,MAAe,QA0CnC,cAAAC,MAAA,oBA1BG,IAAMC,EAA2BC,EAAA,CAAC,CACvC,OAAAC,EACA,aAAAC,EACA,WAAAC,EACA,YAAAC,EACA,UAAAC,EACA,cAAAC,EACA,QAAAC,CACF,IAAqC,CACnC,IAAMC,EAA0BC,EAAwB,CACtD,QAAAF,EACA,aAAAL,EACA,WAAAC,EACA,YAAAC,EACA,UAAAC,EACA,cAAAC,CACF,CAAC,EACKI,EAASC,EAAM,EAGfC,EAAcC,EAElB,MAAS,EACLC,EAAUC,EAAQ,KAAO,CAAE,SAAUH,CAAY,GAAI,CAAC,CAAC,EAE7D,OACEd,EAACkB,EAA4B,SAA5B,CACC,MAAO,CAAE,wBAAAR,EAAyB,OAAAE,EAAQ,QAAAI,CAAQ,EAEjD,SAAAb,EAAO,CACN,wBAAAO,EACA,WAAY,CACV,qBAAsBS,EACtB,kBAAmBC,EACnB,WAAYC,EACZ,aAAcC,EACd,gBAAiBC,EACjB,6BAA8BC,EAC9B,oBAAqBC,EACrB,oBAAqBC,EACrB,iBAAkBC,EAClB,qBAAsBC,EACtB,gBAAiBC,CACnB,CACF,CAAC,EACH,CAEJ,EA/CwC","names":["useId","useRef","useMemo","jsx","ContractorOnboardingFlow","__name","render","employmentId","externalId","countryCode","skipSteps","initialValues","options","contractorOnboardingBag","useContractorOnboarding","formId","useId","setValueRef","useRef","formRef","useMemo","ContractorOnboardingContext","BasicInformationStep","SelectCountryStep","OnboardingBack","OnboardingSubmit","PricingPlanStep","EligibilityQuestionnaireStep","ContractDetailsStep","ContractPreviewStep","OnboardingInvite","ContractReviewButton","SaveDraftButton"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as y}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as y}from"./chunk-Y2JE46ZY.js";import{a as l,b as m}from"./chunk-YHCH57B7.js";import{c}from"./chunk-7EONM7HL.js";import{a as t}from"./chunk-P37U34EQ.js";import{useEffect as N}from"react";import{Fragment as b,jsx as v,jsxs as C}from"react/jsx-runtime";var R=t(({currencies:{from:d,to:F},shouldSwapOrder:s,salary_conversion_properties:a,conversionType:_="no_spread",defaultValue:r,...e})=>{let{setValue:n,getValues:i}=c(),f={label:a?.label||"Salary conversion",description:a?.description||C(b,{children:["The conversion is based on the Remote FX rate."," ",v(m,{className:"text-sm",zendeskId:l.remoteFxRate,children:"Learn more \u2197"})]})},g=s?"salary_conversion":e.name,u=s?e.name:"salary_conversion";return N(()=>{if(s){let o=i(e.name);o?(n("salary_conversion",o),n("salary_converted","salary_conversion")):r&&(n("salary_conversion",r),n("salary_converted","salary_conversion"))}else{let o=i("salary_conversion");o?(n(e.name,o),n("salary_converted",e.name)):r&&(n(e.name,r),n("salary_converted",e.name))}},[s,r,n,i,e.name]),v(y,{...e,sourceCurrency:d,targetCurrency:F,mainFieldName:g,conversionFieldName:u,conversionProperties:f,classNamePrefix:"RemoteFlows-Salary",conversionType:_})},"SalaryField");export{R as a};
|
|
2
|
+
//# sourceMappingURL=chunk-TMVRAQYA.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as i}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as i}from"./chunk-DPZHLV7U.js";import{b as e}from"./chunk-MRYRNB7Y.js";import{a as m}from"./chunk-P37U34EQ.js";import{jsx as u}from"react/jsx-runtime";function p({onSubmit:n}){let{terminationBag:o}=e(),a=m(async t=>{let r=await o?.parseFormValues(t);await n?.(r),o?.next()},"handleSubmit");return u(i,{defaultValues:o.fieldValues,onSubmit:a})}m(p,"EmployeeCommunicationForm");export{p as a};
|
|
2
|
+
//# sourceMappingURL=chunk-TZQ2O23Z.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as I}from"./chunk-TXSUZLOI.js";import{a as N}from"./chunk-A3LRPGV3.js";import{a as j,b as v,c as D,d as O}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b as I}from"./chunk-TXSUZLOI.js";import{a as N}from"./chunk-A3LRPGV3.js";import{a as j,b as v,c as D,d as O}from"./chunk-JTD4HJSK.js";import{e as p,f as F}from"./chunk-I3DVKJCW.js";import{h as R,i as b}from"./chunk-VIGKOVHP.js";import{a as C}from"./chunk-X6ZAR7ZL.js";import{a as k}from"./chunk-TSPDJUGG.js";import{a as c}from"./chunk-P37U34EQ.js";import{useMemo as S,useRef as ee,useState as A}from"react";var pe=c(({countryCode:L,options:u,initialValues:l})=>{let P=j(),g=v(),{mutateAsync:q}=C(P),{mutateAsync:J}=C(g),[y,U]=A(L||null),[f,B]=A(null),w=ee({company_basic_information:{},address_details:{}}),{fieldValues:V,stepState:a,setFieldValues:W,previousStep:z,nextStep:G,goToStep:H}=k(N),{companyBasicInformationForm:d,isLoading:K}=D({jsfModify:u?.jsfModify?.company_basic_information,queryOptions:{enabled:a.currentStep.name==="company_basic_information"}}),{data:s,isLoading:Q}=O({countryCode:y,fieldValues:a.currentStep.name==="address_details"?{...a.values?.address_details||{},...V}:a.values?.address_details||{},options:{...u,jsfModify:u?.jsfModify?.address_details,queryOptions:{enabled:a.currentStep.name==="address_details"&&!!y&&!!f}}}),i=S(()=>({company_basic_information:d?.fields||[],address_details:s?.fields||[]}),[d?.fields,s?.fields]),X={company_basic_information:null,address_details:s?.meta?.["x-jsf-fieldsets"]||null},h=S(()=>F(i.company_basic_information,{...l,country_code:y||l?.country_code||""}),[i.company_basic_information,y,l]),E=S(()=>F(i.address_details,l||{}),[i.address_details,l]),Y=S(()=>({company_basic_information:h,address_details:E}),[h,E]),Z=c(t=>{H(t)},"goTo"),M=c(async t=>{let r=a.currentStep.name,e=i[r];return d&&r==="company_basic_information"?await p(t,e,{isPartialValidation:!1}):s&&r==="address_details"?await p(t,e,{isPartialValidation:!1}):{}},"parseFormValues");async function $(t){let r=a.currentStep.name;r in w.current&&(w.current[r]=R(t,i[r]));let e=await M(t);switch(a.currentStep.name){case"company_basic_information":{if(U(e.country_code),f)return Promise.resolve({data:{countryCode:e.country_code??"",companyOwnerEmail:e.company_owner_email??"",companyOwnerName:e.company_owner_name??"",desiredCurrency:e.desired_currency??"",name:e.name??"",phoneNumber:e.phone_number??"",taxNumber:e.tax_number??""}});let x={country_code:e.country_code,company_owner_email:e.company_owner_email,company_owner_name:e.company_owner_name,desired_currency:e.desired_currency,name:e.name,phone_number:e.phone_number,tax_number:e.tax_number,terms_of_service_accepted_at:I()},n=await q(x);if(n.error)return Promise.resolve({data:null,error:n.error,rawError:n.rawError,fieldErrors:n.fieldErrors});let m=n.data?.data,_,o;if(m)if("data"in m&&m.data){let T=m.data.company;o=T,_=T?.id}else"company"in m&&(o=m.company,_=o?.id);return _&&B(_),Promise.resolve({data:{countryCode:o?.country_code??e.country_code??"",companyOwnerEmail:o?.company_owner_email??e.company_owner_email??"",companyOwnerName:o?.company_owner_name??e.company_owner_name??"",desiredCurrency:o?.desired_currency??e.desired_currency??"",name:o?.name??e.name??"",phoneNumber:o?.phone_number??e.phone_number??"",taxNumber:o?.tax_number??e.tax_number??""}})}case"address_details":{if(!f)throw b("Company ID is required to update address details");let n=await J({companyId:f,payload:{address_details:e},jsonSchemaVersion:u?.jsonSchemaVersion?.form_schema?.address_details});return n.error?Promise.resolve({data:null,error:n.error,rawError:n.rawError,fieldErrors:n.fieldErrors}):Promise.resolve({data:n.data})}default:throw b("Invalid step state")}}return c($,"onSubmit"),{isLoading:K||Q,isSubmitting:P.isPending||g.isPending,fieldValues:V,stepState:a,checkFieldUpdates:W,back:z,next:G,goTo:Z,onSubmit:$,fields:i[a.currentStep.name],meta:{fields:w.current,fieldsets:X[a.currentStep.name]},parseFormValues:M,handleValidation:c(async t=>{if(a.currentStep.name==="company_basic_information"&&d){let r=await p(t,d.fields,{isPartialValidation:!1});return d.handleValidation(r)}if(a.currentStep.name==="address_details"&&s){let r=await p(t,s.fields,{isPartialValidation:!1});return s.handleValidation(r)}return null},"handleValidation"),initialValues:Y}},"useCreateCompany");export{pe as a};
|
|
2
|
+
//# sourceMappingURL=chunk-UWL56AOZ.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as T,b as g}from"./chunk-CT2D4IBR.js";import{a as d}from"./chunk-SNECOPBD.js";import{g as C}from"./chunk-I3DVKJCW.js";import{b as _}from"./chunk-YHCH57B7.js";import{c as u}from"./chunk-7EONM7HL.js";import{e as l}from"./chunk-VIGKOVHP.js";import{a as i}from"./chunk-P37U34EQ.js";import{Fragment as b}from"react";var y={...T,fieldset:g,"fieldset-flat":g};import{useEffect as R}from"react";import{Fragment as J,jsx as m,jsxs as x}from"react/jsx-runtime";var k=i(({name:t,description:a,helpCenter:n})=>x("span",{children:[m("span",{className:`text-xs RemoteFlows__ForcedValue__Description__${t}`,dangerouslySetInnerHTML:{__html:l(a)}}),n?.callToAction&&n?.id&&m(_,{className:"RemoteFlows__ForcedValue__HelpCenterLink",zendeskId:n.id,children:n.callToAction})]}),"Description");function h({name:t,value:a,description:n,statement:r,label:F,helpCenter:c}){let{setValue:e}=u(),o=l(r?.description||n);return R(()=>{e(t,a)},[]),m("div",{children:r?x(J,{children:[m("p",{className:`text-sm RemoteFlows__ForcedValue__Title__${t}`,dangerouslySetInnerHTML:{__html:l(r?.title||F)}}),m(k,{name:t,description:l(r?.description||n),helpCenter:c})]}):m(k,{name:t,description:o,helpCenter:c})})}i(h,"ForcedValueField");import{Fragment as N,jsx as s,jsxs as S}from"react/jsx-runtime";function M(t){return t.const!==void 0&&t.const===t.default&&t.type!=="checkbox"&&t.type!=="hidden"}i(M,"checkFieldHasForcedValue");var K=i(({fields:t,fieldsets:a,fieldValues:n,components:r})=>{let{setValue:F}=u();if(!t||t.length===0)return null;let c=a&&n?C({fields:t,fieldsets:a,values:n}):t;return s(N,{children:c.map(e=>{if(e.calculateDynamicProperties&&(e={...e,...e.calculateDynamicProperties(n,e)||{}}),e.isVisible===!1||e.deprecated||e.hidden)return null;if(M(e))return s(h,{name:e.name,description:e.description,value:e.const,statement:e.statement,label:e.label,helpCenter:e.meta?.helpCenter},e.name);if(e.Component){let{Component:V}=e;return S(b,{children:[s(V,{setValue:P=>F(e.name,P),...e}),e.statement?s(d,{...e.statement}):null,e.extra?e.extra:null]},e.name)}let o=e.type,p=y[o];return p?o==="fieldset"?s(p,{...e,components:r},e.name):o==="fieldset-flat"?s(p,{...e,components:r,isFlatFieldset:!0},e.name):(o==="select"&&e.multiple&&(p=y["multi-select"]),S(b,{children:[s(p,{...e,component:r&&r[o]}),e.statement?s(d,{...e.statement}):null,e.extra?e.extra:null]},e.name)):S("p",{className:"error",children:["Field type ",o," not supported"]})})})},"JSONSchemaFormFields");export{K as a};
|
|
2
|
+
//# sourceMappingURL=chunk-VZ5BGG3N.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/form/JSONSchemaForm.tsx","../src/components/form/fields/fieldsMapping.tsx","../src/components/form/fields/ForcedValueField.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { JSFFields } from '@/src/types/remoteFlows';\nimport React, { Fragment } from 'react';\n\nimport { fieldsMap } from '@/src/components/form/fields/fieldsMapping';\nimport { Statement } from '@/src/components/form/Statement';\nimport { ForcedValueField } from '@/src/components/form/fields/ForcedValueField';\nimport { Components, JSFFieldset } from '@/src/types/remoteFlows';\nimport { getFieldsWithFlatFieldsets } from './utils';\nimport { StatementComponentProps } from '@/src/types/fields';\nimport { useFormContext } from 'react-hook-form';\n\ntype JSONSchemaFormFieldsProps = {\n fields: JSFFields;\n components?: Components;\n fieldsets?: JSFFieldset | null | undefined;\n fieldValues?: Record<string, unknown>;\n};\n\nfunction checkFieldHasForcedValue(field: any) {\n // A field to be considered \"forced value\" must:\n return (\n field.const !== undefined && // Only accepts a specific value\n field.const === field.default && // It can be prefilled, meaning it's not critical\n field.type !== 'checkbox' && // Because checkbox must always be visible\n field.type !== 'hidden' // Because hidden inputs shouldn't be visible\n );\n}\n\nexport const JSONSchemaFormFields = ({\n fields,\n fieldsets,\n fieldValues,\n components,\n}: JSONSchemaFormFieldsProps) => {\n const { setValue } = useFormContext();\n\n if (!fields || fields.length === 0) return null;\n\n const maybeFieldWithFlatFieldsets =\n fieldsets && fieldValues\n ? getFieldsWithFlatFieldsets({\n fields: fields,\n fieldsets: fieldsets,\n values: fieldValues,\n })\n : fields;\n\n return (\n <>\n {maybeFieldWithFlatFieldsets.map((field) => {\n if (field.calculateDynamicProperties) {\n field = {\n ...field,\n ...(field.calculateDynamicProperties(fieldValues, field) || {}),\n };\n }\n\n if (field.isVisible === false || field.deprecated || field.hidden) {\n return null; // Skip hidden or deprecated fields\n }\n\n if (checkFieldHasForcedValue(field)) {\n return (\n <ForcedValueField\n key={field.name as string}\n name={field.name as string}\n description={field.description as string}\n value={field.const as string}\n statement={field.statement as any}\n label={field.label as string}\n helpCenter={field.meta?.helpCenter}\n />\n );\n }\n\n if (field.Component) {\n const { Component } = field as {\n Component: React.ComponentType<any>;\n };\n return (\n <Fragment key={field.name as string}>\n <Component\n setValue={(value: unknown) => setValue(field.name, value)}\n {...field}\n />\n {field.statement ? (\n <Statement\n {...(field.statement as StatementComponentProps['data'])}\n />\n ) : null}\n {field.extra ? field.extra : null}\n </Fragment>\n );\n }\n\n // We use field.type on purpose here, not field.inputType, when using field.inputType\n // the conditionals didn't work as expected\n // I believe json-schema-form in the latest versions uses field.inputType correctly but\n // the version of json-schema-form is decided by remote-json-schema-form-kit\n // our product uses field.type instead of field.inputType and we probably should do the same\n const fieldType = field.type;\n let FieldComponent = fieldsMap[fieldType as keyof typeof fieldsMap];\n\n if (!FieldComponent) {\n return (\n <p className='error'>\n Field type {fieldType as string} not supported\n </p>\n );\n }\n\n if (fieldType === 'fieldset') {\n return (\n <FieldComponent\n key={field.name}\n {...field}\n components={components}\n />\n );\n }\n\n if (fieldType === 'fieldset-flat') {\n return (\n <FieldComponent\n key={field.name}\n {...field}\n components={components}\n isFlatFieldset\n />\n );\n }\n\n // TODO: Have doubts about this, it seems we only support checkbox for multiple select\n if (fieldType === 'select' && field.multiple) {\n FieldComponent = fieldsMap['multi-select'];\n }\n\n return (\n <Fragment key={field.name as string}>\n <FieldComponent\n {...field}\n component={\n components && components[fieldType as keyof Components]\n }\n />\n {field.statement ? (\n <Statement\n {...(field.statement as StatementComponentProps['data'])}\n />\n ) : null}\n {field.extra ? field.extra : null}\n </Fragment>\n );\n })}\n </>\n );\n};\n","import { $TSFixMe } from '@/src/types/remoteFlows';\nimport { baseFields } from './baseFields';\nimport { FieldSetField } from './FieldSetField';\nimport { SupportedTypes } from './types';\n\nexport const fieldsMap: Record<\n SupportedTypes,\n React.ComponentType<$TSFixMe>\n> = {\n ...baseFields,\n fieldset: FieldSetField,\n 'fieldset-flat': FieldSetField,\n};\n","import { useFormContext } from 'react-hook-form';\nimport { sanitizeHtml } from '@/src/lib/utils';\nimport { useEffect } from 'react';\nimport { ZendeskTriggerButton } from '@/src/components/shared/zendesk-drawer/ZendeskTriggerButton';\n\nconst Description = ({\n name,\n description,\n helpCenter,\n}: {\n name: string;\n description: string;\n helpCenter?: {\n callToAction: string;\n id: number;\n url: string;\n label: string;\n };\n}) => {\n return (\n <span>\n <span\n className={`text-xs RemoteFlows__ForcedValue__Description__${name}`}\n dangerouslySetInnerHTML={{ __html: sanitizeHtml(description) }}\n />\n {helpCenter?.callToAction && helpCenter?.id && (\n <ZendeskTriggerButton\n className='RemoteFlows__ForcedValue__HelpCenterLink'\n zendeskId={helpCenter.id}\n >\n {helpCenter.callToAction}\n </ZendeskTriggerButton>\n )}\n </span>\n );\n};\n\nexport type ForcedValueFieldProps = {\n name: string;\n value: string;\n description: string;\n statement?: {\n title?: string;\n description?: string;\n };\n label: string;\n helpCenter?: {\n callToAction: string;\n id: number;\n url: string;\n label: string;\n };\n};\n\nexport function ForcedValueField({\n name,\n value,\n description,\n statement,\n label,\n helpCenter,\n}: ForcedValueFieldProps) {\n const { setValue } = useFormContext();\n const descriptionSanitized = sanitizeHtml(\n statement?.description || description,\n );\n useEffect(() => {\n setValue(name, value);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n <div>\n {statement ? (\n <>\n {/* if statement?.title is undefined which could be for example belgium contract details form, we need to use the label attribute */}\n <p\n className={`text-sm RemoteFlows__ForcedValue__Title__${name}`}\n dangerouslySetInnerHTML={{\n __html: sanitizeHtml(statement?.title || label),\n }}\n />\n <Description\n name={name}\n description={sanitizeHtml(statement?.description || description)}\n helpCenter={helpCenter}\n />\n </>\n ) : (\n <Description\n name={name}\n description={descriptionSanitized}\n helpCenter={helpCenter}\n />\n )}\n </div>\n );\n}\n"],"mappings":"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","names":["Fragment","fieldsMap","baseFields","FieldSetField","useEffect","Fragment","jsx","jsxs","Description","__name","name","description","helpCenter","sanitizeHtml","ZendeskTriggerButton","ForcedValueField","value","statement","label","setValue","useFormContext","descriptionSanitized","useEffect","Fragment","jsx","jsxs","checkFieldHasForcedValue","field","__name","JSONSchemaFormFields","fields","fieldsets","fieldValues","components","setValue","useFormContext","maybeFieldWithFlatFieldsets","getFieldsWithFlatFieldsets","ForcedValueField","Component","value","Statement","fieldType","FieldComponent","fieldsMap"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as f}from"./chunk-LNV36S6D.js";import{a as F}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b as f}from"./chunk-LNV36S6D.js";import{a as F}from"./chunk-VZ5BGG3N.js";import{e as p}from"./chunk-I3DVKJCW.js";import{f as l,g as u}from"./chunk-7EONM7HL.js";import{b as _}from"./chunk-TVZAFTPT.js";import{a}from"./chunk-P37U34EQ.js";import{useEffect as w}from"react";import{jsx as r}from"react/jsx-runtime";var R=["effective_date","reason_for_change","reason_for_change_description","additional_comments","additional_comments_toggle"];function x({onSubmit:b,onError:m,onSuccess:A}){let{formId:C,contractAmendment:{checkFieldUpdates:h,fields:s,onSubmit:y,stepState:S,initialValues:i,handleValidation:g}}=_(),V=f(g),e=l({resolver:V,defaultValues:S.values?.form||i,shouldUnregister:!0,mode:"onBlur"});w(()=>{let t=e?.watch(o=>{(Object.keys(e.formState.dirtyFields).length>0||e.formState.isDirty)&&h(o)});return()=>t?.unsubscribe()},[]);let v=a(async t=>{let o=!1;for(let[c,P]of Object.entries(t))if(!R.includes(c)&&i[c]!==P){o=!0;break}if(!o)return m?.({message:"no_changes_detected_contract_details"});let d=await p(t,s,{isPartialValidation:!1});await b?.(d);let n=await y(t);n.error?m?.(n.error):await A?.(n.data)},"handleSubmit");return r(u,{...e,children:r("form",{id:C,"data-testid":"contract-amendment-form",onSubmit:e.handleSubmit(v),className:"space-y-4 RemoteFlows__ContractAmendmentForm",children:r(F,{fields:s})})})}a(x,"ContractAmendmentForm");export{x as a};
|
|
2
|
+
//# sourceMappingURL=chunk-W5USIIXL.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as e}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as e}from"./chunk-DPZHLV7U.js";import{b as a}from"./chunk-MRYRNB7Y.js";import{a as i}from"./chunk-P37U34EQ.js";import{jsx as s}from"react/jsx-runtime";function d({onSubmit:m}){let{terminationBag:o}=a(),r=i(async t=>{let n=await o?.parseFormValues(t);await m?.(n),o?.next()},"handleSubmit");return s(e,{defaultValues:o.fieldValues,onSubmit:r})}i(d,"PaidTimeOffForm");export{d as a};
|
|
2
|
+
//# sourceMappingURL=chunk-XAPDPR3N.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{e as a}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{e as a}from"./chunk-I3DVKJCW.js";import{f as n,g as m}from"./chunk-7EONM7HL.js";import{b as i}from"./chunk-TVZAFTPT.js";import{a as o}from"./chunk-P37U34EQ.js";import{jsx as s}from"react/jsx-runtime";function R({onSubmit:d,onError:c,onSuccess:l}){let{contractAmendment:{stepState:u,isSubmitting:f,onSubmit:C,fields:p},formId:A}=i(),e=n({defaultValues:u.values?.form}),F=o(async r=>{let S=await a(r,p,{isPartialValidation:!1});await d?.(S);let t=await C(r);t.error?c?.(t.error):await l?.(t.data)},"handleSubmit");return f?null:s(m,{...e,children:s("form",{id:A,onSubmit:e.handleSubmit(F),className:"RemoteFlows__ContractAmendmentConfirmationForm"})})}o(R,"ContractAmendmentConfirmationForm");export{R as a};
|
|
2
|
+
//# sourceMappingURL=chunk-XJECSJYB.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as W}from"./chunk-TRBEYNRN.js";import{a as Y}from"./chunk-CJG77FUT.js";import{a as Q}from"./chunk-YWOJ4NKF.js";import{a as J}from"./chunk-KKOBWE62.js";import{a as H}from"./chunk-IF42CZJH.js";import{a as U}from"./chunk-6DHV4GT6.js";import{a as q,b as B,c as L,d as z}from"./chunk-L5DII4MV.js";import{f as Z,g as K}from"./chunk-YYGLCI2S.js";import{a as R}from"./chunk-ZXGAFQXW.js";import{a as S}from"./chunk-RAH453TV.js";import{a as N}from"./chunk-YIOLMWB5.js";import{a as E}from"./chunk-EUQH4FU4.js";import{e as _}from"./chunk-I3DVKJCW.js";import{a as u,b as v}from"./chunk-YHCH57B7.js";import{q as $}from"./chunk-WQ4H5V7U.js";import{a as D}from"./chunk-VIGKOVHP.js";import{a as w}from"./chunk-X6ZAR7ZL.js";import{a as A}from"./chunk-TSPDJUGG.js";import{a as I}from"./chunk-Z5WMKCRJ.js";import{d as O}from"./chunk-KQPDXXG3.js";import{a as o}from"./chunk-P37U34EQ.js";import xe from"lodash.omitby";import je from"lodash.isnull";import{format as x,isFuture as Ve,parseISO as j,subDays as Pe}from"date-fns";import{useMemo as V}from"react";import be from"lodash.omit";import{useQuery as Fe}from"@tanstack/react-query";var G=o(({query:t,options:e})=>{let{client:y}=O();return Fe({queryKey:["payroll-calendars"],queryFn:o(()=>$({client:y,query:{year:t?.year,country_code:t?.countryCode}}),"queryFn"),enabled:e?.enabled,select:o(c=>c.data?.data?.payroll_calendars?.[0],"select")})},"usePayrollCalendars");import{isFuture as Me,isToday as ge,parseISO as Se}from"date-fns";var X=o(t=>{if(!t)return!1;let e=Se(t);return Me(e)||ge(e)},"isInProbationPeriod");import{Fragment as ke,jsx as m,jsxs as Ce}from"react/jsx-runtime";var lo=o(({employmentId:t,options:e,initialValues:y})=>{let{fieldValues:c,setFieldValues:ee,stepState:l,previousStep:oe,nextStep:ie}=A(q),{data:n,isLoading:te}=N({employmentId:t,queryParams:{exclude_files:!0}}),{data:ne}=G({query:{year:new Date().getFullYear().toString(),countryCode:n?.country?.code},options:{enabled:!!n?.country?.code}}),T=X(n?.probation_period_end_date),F=B(ne),P=V(()=>T?x(new Date,"yyyy-MM-dd"):x(F,"yyyy-MM-dd"),[T,F]),M=!!(n?.provisional_start_date&&Ve(j(n.provisional_start_date))),ae={personal_email:n?.basic_information?.email},g=z({...ae,...y,...l.values?.employee_communication,...l.values?.termination_details,...l.values?.paid_time_off,...l.values?.additional_information},M),d=V(()=>({...g,...c}),[c,g]),b=L({minTerminationDate:F,isEmployeeInProbationPeriod:T,selectedDate:j(d.proposed_termination_date)}),re=V(()=>{let s=R.data.schema.properties.termination_reason.oneOf,a=M?s.filter(i=>i.const==="cancellation_before_start_date"):s.filter(i=>i.const!=="cancellation_before_start_date");return{fields:{risk_assesment_info:S("Offboarding risk assessment","Employees may be protected from termination if they fall into certain categories. To help avoid claims from employees, let us know if the employee is part of one or more of these categories. Select all that apply.",{className:e?.jsfModify?.fields?.risk_assesment_info?.["x-jsf-presentation"]?.className}),termination_reason:{...e?.jsfModify?.fields?.termination_reason,oneOf:a},proposed_termination_date_info:S("Proposed termination date",Ce(ke,{children:["In most cases, Remote must provide notice to the employee before termination. The required notice period depends on local labor laws, the employment agreement, and other factors. We'll use those factors to determine the required notice period.",m(v,{external:!0,zendeskId:u.terminationNoticePeriods,className:D("text-sm",e?.jsfModify?.fields?.proposed_termination_date_info?.["x-jsf-presentation"]?.zendeskTriggerButtonClassName),children:"Learn about notice periods"})]}),{className:e?.jsfModify?.fields?.proposed_termination_date_info?.["x-jsf-presentation"]?.className}),proposed_termination_date:{...e?.jsfModify?.fields?.proposed_termination_date,"x-jsf-presentation":{...e?.jsfModify?.fields?.proposed_termination_date?.["x-jsf-presentation"],minDate:P,...d.termination_reason==="cancellation_before_start_date"&&n?.provisional_start_date?{maxDate:x(Pe(j(n.provisional_start_date),1),"yyyy-MM-dd")}:{},...b},...d.termination_reason==="cancellation_before_start_date"?{"x-jsf-errorMessage":{maximum:"The proposed termination date must be before the employee's start date."}}:{}},paid_time_off_info:{...e?.jsfModify?.fields?.paid_time_off_info,"x-jsf-presentation":{...e?.jsfModify?.fields?.paid_time_off_info?.["x-jsf-presentation"],Component:o(()=>{let i=e?.jsfModify?.fields?.paid_time_off_info?.["x-jsf-presentation"]?.Component;return m(J,{employeeName:n?.basic_information?.name,proposedTerminationDate:d.proposed_termination_date,employmentId:t,employment:n,render:r=>i?m(i,{...r}):m(Q,{...r})})},"Component")}},acknowledge_termination_procedure_info:{...e?.jsfModify?.fields?.acknowledge_termination_procedure_info,"x-jsf-presentation":{...e?.jsfModify?.fields?.acknowledge_termination_procedure_info?.["x-jsf-presentation"],Component:o(()=>{let i=e?.jsfModify?.fields?.acknowledge_termination_procedure_info?.["x-jsf-presentation"]?.Component;return m(U,{render:r=>i?m(i,{...r}):m(W,{...r})})},"Component")}},acknowledge_termination_procedure_fees_info:{...e?.jsfModify?.fields?.acknowledge_termination_procedure_fees_info,"x-jsf-presentation":{...e?.jsfModify?.fields?.acknowledge_termination_procedure_fees_info?.["x-jsf-presentation"],Component:o(()=>{let i={involuntaryOffboardingServiceChargeZendeskId:u.involuntaryOffboardingServiceCharge,reconciliationInvoiceZendeskId:u.reconciliationInvoice},r=e?.jsfModify?.fields?.acknowledge_termination_procedure_fees_info?.["x-jsf-presentation"]?.Component;return r?m(r,{...i}):m(Y,{...i})},"Component")}}}}},[n,t,d.proposed_termination_date,d.termination_reason,M,P,e?.jsfModify?.fields?.acknowledge_termination_procedure_fees_info,e?.jsfModify?.fields?.acknowledge_termination_procedure_info,e?.jsfModify?.fields?.paid_time_off_info,e?.jsfModify?.fields?.proposed_termination_date,e?.jsfModify?.fields?.proposed_termination_date_info,e?.jsfModify?.fields?.risk_assesment_info,e?.jsfModify?.fields?.termination_reason,b]),{data:f,isLoading:se}=K({formValues:d,jsfModify:{...e?.jsfModify,fields:{...e?.jsfModify?.fields,...re?.fields}},step:l.currentStep.name}),me=E(H.data.schema),k=Z(),{mutateAsync:de}=w(k);async function fe(s){if(!t)throw new Error("Employment id is missing");if(f){let a=await C(s,!0),{customer_informed_employee:i}=a,r=i==="yes"?{employee_awareness:{date:a.customer_informed_employee_date,note:a.customer_informed_employee_description}}:void 0,ue=await I(a,["agrees_to_pto_amount","confidential","customer_informed_employee","will_challenge_termination"]),_e=be(ue,"customer_informed_employee_date","customer_informed_employee_description"),ye=xe({..._e,...r},je),p=a.timesheet_file??[],h=Array.isArray(p)&&p.length>0?{content:p[0].content,name:p[0].name}:void 0,Te={employment_id:t,termination_details:{...ye,timesheet_file:h||void 0},type:"termination"};return de(Te)}}o(fe,"onSubmit");function le(){oe()}o(le,"back");function ce(){ie()}o(ce,"next");let pe=Object.keys(c).length>0,C=o(async(s,a=!1)=>a?await _(s,me.fields,{isPartialValidation:!0}):f?await _(s,f?.fields,{isPartialValidation:!0}):{},"parseFormValues");return{employmentId:t,employment:n,fieldValues:d,isDirty:pe,stepState:l,fields:f?.fields||[],isLoading:se||te,isSubmitting:k.isPending,initialValues:g,handleValidation:o(async s=>{if(f){let a=await _(s,f?.fields);return f?.handleValidation(a)}return null},"handleValidation"),checkFieldUpdates:ee,parseFormValues:C,onSubmit:fe,back:le,next:ce}},"useTermination");export{lo as a};
|
|
2
|
+
//# sourceMappingURL=chunk-XW7ZYSJ3.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{l as J}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{l as J}from"./chunk-HPLRAHY7.js";import{b as G,c as M,d as L}from"./chunk-I3DVKJCW.js";import{a as k}from"./chunk-HJ7WOTV7.js";import{c as B,l as A}from"./chunk-7EONM7HL.js";import{b as H}from"./chunk-KQPDXXG3.js";import{a as n,b as d,c as qe}from"./chunk-P37U34EQ.js";var D=d((En,U)=>{"use strict";function we(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}n(we,"isObject");U.exports=we});var X=d((In,V)=>{"use strict";var Fe=typeof global=="object"&&global&&global.Object===Object&&global;V.exports=Fe});var _=d((qn,z)=>{"use strict";var Pe=X(),ke=typeof self=="object"&&self&&self.Object===Object&&self,Me=Pe||ke||Function("return this")();z.exports=Me});var Q=d((wn,K)=>{"use strict";var Le=_(),De=n(function(){return Le.Date.now()},"now");K.exports=De});var Z=d((Pn,Y)=>{"use strict";var _e=/\s/;function $e(e){for(var t=e.length;t--&&_e.test(e.charAt(t)););return t}n($e,"trimmedEndIndex");Y.exports=$e});var ne=d((Mn,ee)=>{"use strict";var Ne=Z(),We=/^\s+/;function Be(e){return e&&e.slice(0,Ne(e)+1).replace(We,"")}n(Be,"baseTrim");ee.exports=Be});var $=d((Dn,te)=>{"use strict";var Ae=_(),He=Ae.Symbol;te.exports=He});var se=d((_n,ie)=>{"use strict";var re=$(),oe=Object.prototype,Ge=oe.hasOwnProperty,Je=oe.toString,O=re?re.toStringTag:void 0;function Ue(e){var t=Ge.call(e,O),r=e[O];try{e[O]=void 0;var i=!0}catch{}var u=Je.call(e);return i&&(t?e[O]=r:delete e[O]),u}n(Ue,"getRawTag");ie.exports=Ue});var ce=d((Nn,ae)=>{"use strict";var Ve=Object.prototype,Xe=Ve.toString;function ze(e){return Xe.call(e)}n(ze,"objectToString");ae.exports=ze});var le=d((Bn,de)=>{"use strict";var ue=$(),Ke=se(),Qe=ce(),Ye="[object Null]",Ze="[object Undefined]",fe=ue?ue.toStringTag:void 0;function en(e){return e==null?e===void 0?Ze:Ye:fe&&fe in Object(e)?Ke(e):Qe(e)}n(en,"baseGetTag");de.exports=en});var pe=d((Hn,me)=>{"use strict";function nn(e){return e!=null&&typeof e=="object"}n(nn,"isObjectLike");me.exports=nn});var be=d((Jn,ge)=>{"use strict";var tn=le(),rn=pe(),on="[object Symbol]";function sn(e){return typeof e=="symbol"||rn(e)&&tn(e)==on}n(sn,"isSymbol");ge.exports=sn});var Ce=d((Vn,xe)=>{"use strict";var an=ne(),ve=D(),cn=be(),ye=NaN,un=/^[-+]0x[0-9a-f]+$/i,fn=/^0b[01]+$/i,dn=/^0o[0-7]+$/i,ln=parseInt;function mn(e){if(typeof e=="number")return e;if(cn(e))return ye;if(ve(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=ve(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=an(e);var r=fn.test(e);return r||dn.test(e)?ln(e.slice(2),r?2:8):un.test(e)?ye:+e}n(mn,"toNumber");xe.exports=mn});var Se=d((zn,Te)=>{"use strict";var pn=D(),N=Q(),he=Ce(),gn="Expected a function",bn=Math.max,vn=Math.min;function yn(e,t,r){var i,u,b,l,s,a,p=0,E=!1,f=!1,x=!0;if(typeof e!="function")throw new TypeError(gn);t=he(t)||0,pn(r)&&(E=!!r.leading,f="maxWait"in r,b=f?bn(he(r.maxWait)||0,t):b,x="trailing"in r?!!r.trailing:x);function C(o){var g=i,y=u;return i=u=void 0,p=o,l=e.apply(y,g),l}n(C,"invokeFunc");function R(o){return p=o,s=setTimeout(m,t),E?C(o):l}n(R,"leadingEdge");function q(o){var g=o-a,y=o-p,c=t-g;return f?vn(c,b-y):c}n(q,"remainingWait");function T(o){var g=o-a,y=o-p;return a===void 0||g>=t||g<0||f&&y>=b}n(T,"shouldInvoke");function m(){var o=N();if(T(o))return S(o);s=setTimeout(m,q(o))}n(m,"timerExpired");function S(o){return s=void 0,x&&i?C(o):(i=u=void 0,l)}n(S,"trailingEdge");function I(){s!==void 0&&clearTimeout(s),p=0,i=a=u=s=void 0}n(I,"cancel");function w(){return s===void 0?l:S(N())}n(w,"flush");function j(){var o=N(),g=T(o);if(i=arguments,u=this,a=o,g){if(s===void 0)return R(a);if(f)return clearTimeout(s),s=setTimeout(m,t),C(a)}return s===void 0&&(s=setTimeout(m,t)),l}return n(j,"debounced"),j.cancel=I,j.flush=w,j}n(yn,"debounce");Te.exports=yn});import{useState as hn,useCallback as Tn,useEffect as Ee,useRef as Sn}from"react";var Oe=qe(Se(),1);import{useCallback as xn,useEffect as Cn,useRef as je}from"react";function W(e,t){let r=je(e);Cn(()=>{r.current=e},[e]);let i=je((0,Oe.default)(u=>{r.current(u)},t)).current;return xn(u=>{i(u)},[i])}n(W,"useDebounce");import{Fragment as On,jsx as h,jsxs as Re}from"react/jsx-runtime";var jn=n(({description:e,showConversion:t,targetCurrency:r,className:i,onClick:u})=>{let{components:b}=H(),l=t?`Hide ${r} conversion`:`Show ${r} conversion`,s=b?.button;if(!s)throw new Error("Button component not found");return Re("span",{className:i,children:[h(A,{as:"span",children:e})," ",h(s,{className:`${i.replace("-description","-button")}`,"data-type":"inline",onClick:u,children:l})]})},"DescriptionWithConversion"),ut=n(({sourceCurrency:e,targetCurrency:t,mainFieldName:r,conversionFieldName:i,conversionProperties:u,classNamePrefix:b,description:l,conversionType:s="spread",...a})=>{let[p,E]=hn(!1),{setValue:f,watch:x}=B(),C=x(r||a.name),R=Sn(!0),q=e&&t&&e!==t,{mutateAsync:T}=J({type:s}),m=`${a.name}_converted`;Ee(()=>{f(m,r||a.name)},[f,r,a.name,m]),Ee(()=>{if(R.current){R.current=!1;return}f(i,"")},[e,i,f]);let S=Tn(async(c,v,F)=>{if(!(!c||isNaN(c)||c<=0))return T({source_currency:v,target_currency:F,amount:c})},[T]),I=W(async c=>{let v=M(c),P=1/((await S(v,t,e))?.data?.data.conversion_data?.exchange_rate??1),Ie=G(Number(v)*P);f(i,L(Ie))},500),w=W(async c=>{let v=M(c),P=(await S(v,t,e))?.data?.data.conversion_data.target_amount;f(r||a.name,L(P))},500),j=n(c=>{f(m,r||a.name),p&&I(c.target.value)},"handleMainFieldChange"),o=n(c=>{f(m,i),w(c.target.value)},"handleConversionFieldChange"),g=n(c=>{c.preventDefault(),E(v=>!v),!p&&C&&I(C)},"toggleConversion"),y=q?h(jn,{targetCurrency:t,description:l,showConversion:p,className:`${b}-description`,onClick:g}):l;return Re(On,{children:[h(k,{...a,name:r||a.name,additionalProps:{currency:e},description:y,type:"text",inputMode:"decimal",pattern:"^[0-9.]*$",maxLength:15,onChange:j}),p&&h(k,{additionalProps:{currency:t},name:i,label:u?.label||"Conversion",description:u?.description,type:"text",inputMode:"decimal",pattern:"^[0-9.]*$",maxLength:15,onChange:o}),h("input",{type:"hidden",name:m,value:x(m)||r||a.name})]})},"CurrencyConversionField");export{ut as a};
|
|
2
|
+
//# sourceMappingURL=chunk-Y2JE46ZY.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{f as Qt,h as Jt,i as Nt}from"./chunk-Q3VMPVT3.js";import{a as Wt,b as te,c as ee,d as ie,e as ne,f as re,h as oe,i as ae,j as se,k as ce,l as le,m as ue,n as de,o as pe,p as me,q as fe,r as ye,s as _e,t as ge}from"./chunk-IVXIAOMR.js";import{a as be,b as Se,c as Ce}from"./chunk-ROQYHTFQ.js";import{a as zt,b as Ht,f as Xt,g as Yt,h as Zt}from"./chunk-AHRG5QCS.js";import{a as $,b as nt,c as y,d as Gt,g as $t}from"./chunk-PX5PE6GX.js";import{a as Ut}from"./chunk-YIOLMWB5.js";import{a as jt,e as f,f as D}from"./chunk-T7O3YYOG.js";import{L as Bt}from"./chunk-WQ4H5V7U.js";import{h as P,i as I}from"./chunk-VIGKOVHP.js";import{a as b}from"./chunk-X6ZAR7ZL.js";import{a as Kt}from"./chunk-TSPDJUGG.js";import{d as xt}from"./chunk-KQPDXXG3.js";import{a as u}from"./chunk-P37U34EQ.js";import{useEffect as L,useMemo as o,useRef as _i,useState as T}from"react";import he from"lodash.omit";import{useQuery as fi}from"@tanstack/react-query";var yi=u(()=>{let{client:k}=xt(),{data:R}=te(),s=ee(R)?R?.company?.id??"":"";return fi({queryKey:["legal-entities",s],queryFn:u(()=>Bt({client:k,path:{company_id:s},query:{page_size:100}}),"queryFn"),select:u(W=>W.data?.data?.legal_entities,"select"),enabled:!!s})},"useLegalEntities"),we=u(()=>{let{data:k}=yi();return k?.find(R=>R.is_default)},"useDefaultLegalEntity");var gi={select_country:null,basic_information:"employment_basic_information",contract_details:null,eligibility_questionnaire:null,pricing_plan:null,contract_preview:null,review:null},bi={employment_basic_information:"basic_information"},Gi=u(({countryCode:k,externalId:R,employmentId:s,skipSteps:W,options:_,initialValues:d})=>{let Pe=_?.excludeProducts||[],[l,yt]=T(k||null),[a,Ee]=T(s),[E,_t]=T(void 0),z=_i({select_country:{},basic_information:{},contract_details:{},contract_preview:{},pricing_plan:{},eligibility_questionnaire:{}}),[H,ve]=T(void 0),[gt,X]=T(!1),[bt,Fe]=T(!0),[rt,St]=T(null),{steps:Ve,stepsArray:Me}=o(()=>zt({includeSelectCountry:!W?.includes("select_country"),includeEligibilityQuestionnaire:gt,includeContractPreview:bt}),[gt,bt,W]),{fieldValues:c,stepState:e,setFieldValues:ot,previousStep:Oe,nextStep:Ie,goToStep:B,setStepValues:Ct}=Kt(Ve);L(()=>{rt&&(B(rt),St(null))},[rt,B]);let{data:r,isLoading:De,refetch:wt}=Ut({employmentId:a,queryParams:{exclude_files:!0}}),Te=we(),{status:q}=r||{},S=q&&Xt.includes(q),Re=q&&!Yt.includes(q),qe=o(()=>q==="invited"?"invited":"not_invited",[q]),ht=Jt(),Pt=Nt(l,_),at=ae(),Et=Wt(),{mutateAsync:vt}=le(at,Et,c),Ft=me(),Vt=fe(),{mutateAsyncOrThrow:Ae}=b(Pt),Mt=ne(),Ot=oe(),It=ye(),{mutateAsyncOrThrow:Le}=b(ht),{mutateAsyncOrThrow:ke}=b(at),{mutateAsyncOrThrow:Be}=b(Mt),{mutateAsyncOrThrow:Dt}=b(Ot),{mutateAsyncOrThrow:xe}=b(Ft),{mutateAsyncOrThrow:Tt}=b(Vt),{mutateAsyncOrThrow:je}=b(It);s&&r?.country?.code&&!l&&yt(r.country.code);let{selectCountryForm:Y,isLoading:Qe,countries:Rt}=_e({jsfModify:_?.jsfModify?.select_country}),st=o(()=>Rt?.find(t=>t.value===l),[Rt,l]),Je=o(()=>st?.label,[st]),Ne=e.currentStep.name==="pricing_plan"||!!s&&S,{form:v,isLoading:Ue,contractorSubscriptions:Z,refetch:ct,isEligibilityQuestionnaireBlocked:x}=ce(a,st,{jsonSchemaVersion:_?.jsonSchemaVersion,queryOptions:{enabled:Ne},excludeProducts:Pe,jsfModify:_?.jsfModify?.pricing_plan}),F=o(()=>!!Z?.find(t=>t.product.short_name==="COR")?.eligibility_questionnaire?.submitted_at,[Z]);L(()=>{if(F){X(!1);return}else X(H===y)},[F,H]),L(()=>{let t=r?.contractor_type==="cor";Fe(!t)},[r?.contractor_type]);let tt=o(()=>Z?.find(t=>t.product.short_name==="COR")?.eligibility_questionnaire?.responses,[Z]),Ke=gi[e.currentStep.name]||"contractor_basic_information",Ge=bi[Ke],$e=r?.[Ge]||{},We=u(({form:t,options:n={},query:m={}})=>{let g=Object.keys(c).length>0?{...d,...e.values?.[e.currentStep.name],...c}:{...d,...$e};return Qt({countryCode:l,form:t,fieldValues:g,query:m,options:{...n,queryOptions:{enabled:n.queryOptions?.enabled??!0}}})},"useJSONSchema"),ze=!!(l&&(e.currentStep.name==="basic_information"||s)),He=!!(l==="GBR"&&s&&e.currentStep.name==="basic_information"),{data:j,isLoading:Xe}=ue(s,{enabled:He}),{data:et,isLoading:Ye}=de(s,{enabled:!!s});L(()=>{et&&et.length>0&&!E&&_t(et[0].id)},[et,E]);let{data:C,isLoading:Ze}=We({form:"contractor_basic_information",options:{jsfModify:Se(l,Je,_),queryOptions:{enabled:ze}}}),ti=o(()=>Ht(r?.basic_information?.provisional_start_date,c?.service_duration?.provisional_start_date),[r?.basic_information?.provisional_start_date,c?.service_duration?.provisional_start_date]),p=o(()=>{let t={standard:$,plus:nt,cor:y};if(c.subscription)return c.subscription;let n=e.values?.pricing_plan?.subscription;return n&&!x?n:F&&!x?y:x&&F?$:t[r?.contractor_type]||$},[c,e.values,F,r?.contractor_type,x]);L(()=>{p&&p!==H&&ve(p)},[p,H]);let ei=o(()=>({...tt,...d,...e.values?.eligibility_questionnaire,...c}),[tt,d,e.values?.eligibility_questionnaire,c]),ii=o(()=>p===y&&e.currentStep.name==="eligibility_questionnaire"||!!s&&S&&p===y,[p,e.currentStep.name,s,S]),{data:V,isLoading:ni}=pe({options:{queryOptions:{enabled:ii},jsfModify:_?.jsfModify?.eligibility_questionnaire},fieldValues:ei}),ri=!!(l&&e.currentStep.name==="contract_details"||S),{data:w,isLoading:oi}=ge({countryCode:l,fieldValues:c,employmentId:a,options:{queryOptions:{enabled:ri},jsfModify:be(_?.jsfModify?.contract_details,ti,p,c,p===y)}}),ai=o(()=>e.currentStep.name==="contract_preview"||!!s&&S,[e.currentStep.name,s,S]),{data:M}=ie({fieldValues:c,options:{queryOptions:{enabled:ai},jsfModify:Ce(_,c)}}),{data:lt,isLoading:si}=re({employmentId:a,contractDocumentId:E,options:{queryOptions:{enabled:!!E}}}),i=o(()=>({select_country:Y?.fields||[],basic_information:C?.fields||[],pricing_plan:v?.fields||[],eligibility_questionnaire:V?.fields||[],contract_details:w?.fields||[],contract_preview:M?.fields||[],review:[]}),[Y?.fields,C?.fields,v?.fields,w?.fields,M?.fields,V?.fields]),ci={select_country:null,basic_information:C?.meta["x-jsf-fieldsets"],pricing_plan:null,contract_details:w?.meta["x-jsf-fieldsets"],eligibility_questionnaire:null,contract_preview:null,review:null},{country:li,basic_information:it={},contract_details:qt={}}=r||{},At=li?.code,Q=o(()=>D(i.select_country,{country:l||At||""}),[i.select_country,l,At]),ut=o(()=>j?.content?jt(j.content,j.name):null,[j?.content,j?.name]),J=o(()=>{let t={...d,...it,ir35:r?.contract_details?.ir_35,nationality_status:r?.contract_details?.nationality,...ut&&{ir35_sds_file:[ut]}};return D(i.basic_information,t)},[d,it,r?.contract_details?.ir_35,r?.contract_details?.nationality,ut,i.basic_information]),N=o(()=>{let n={...{service_duration:{provisional_start_date:it.provisional_start_date}},...d,...qt};return D(i.contract_details,n)},[i.contract_details,qt,d,it]),U=o(()=>{let t=lt?.contract_document?.signatories?.find(m=>m.type==="company"),n={...d,signature:t?.signature};return D(i.contract_preview,n)},[i.contract_preview,d,lt]),K=o(()=>{let n={...{subscription:p},...d};return D(i.pricing_plan,n)},[i.pricing_plan,d,p]),G=o(()=>{let t={...d,...tt};return D(i.eligibility_questionnaire,t)},[i.eligibility_questionnaire,d,tt]),ui=o(()=>({select_country:Q,basic_information:J,contract_details:N,contract_preview:U,pricing_plan:K,eligibility_questionnaire:G}),[Q,J,N,U,K,G]),dt=!!(s&&S&&e.currentStep.name!=="review"),pt=Qe||Ze||De||oi||Ue||si||Xe||Ye||ni,Lt=o(()=>{let n=r?.contractor_type==="cor"||i.contract_preview.length>0;return!!(dt&&!pt&&E&&i.basic_information.length>0&&i.contract_details.length>0&&n)},[dt,pt,E,i.basic_information.length,i.contract_details.length,i.contract_preview.length,r?.contractor_type]);L(()=>{Lt&&(z.current={select_country:P(Q,i.select_country),basic_information:P(J,i.basic_information),contract_details:P(N,i.contract_details),contract_preview:P(U,i.contract_preview),pricing_plan:P(K,i.pricing_plan),eligibility_questionnaire:P(G,i.eligibility_questionnaire)},Ct({select_country:Q,basic_information:J,contract_details:N,contract_preview:U,pricing_plan:K,eligibility_questionnaire:G,review:{}}),B("review"))},[Lt,B,Q,J,N,Ct,i.select_country,i.basic_information,i.contract_details,i.pricing_plan,K,i.contract_preview,U,i.eligibility_questionnaire,G]);let di=u(t=>{B(t)},"goTo"),kt=u(async t=>Y&&e.currentStep.name==="select_country"?t:C&&e.currentStep.name==="basic_information"?await f(t,C?.fields,{isPartialValidation:!1}):w&&e.currentStep.name==="contract_details"?await f(t,w?.fields,{isPartialValidation:!1}):M&&e.currentStep.name==="contract_preview"?await f(t,M?.fields,{isPartialValidation:!1}):v&&e.currentStep.name==="pricing_plan"?await f(t,v?.fields,{isPartialValidation:!1}):V&&e.currentStep.name==="eligibility_questionnaire"?await f(t,V?.fields,{isPartialValidation:!1}):{},"parseFormValues"),pi=u(t=>{let n=t?.rawError?.error?.errors?.services_and_deliverables;return n?.source===$t?{error:n.error,source:n.source,skippable:n.skippable}:null},"extractAiValidationError");async function mi(t){let n=e.currentStep.name;n in z.current&&(z.current[n]=P(t,i[n]));let m=await kt(t);switch(e.currentStep.name){case"select_country":return yt(m.country),Promise.resolve({data:{countryCode:m.country}});case"basic_information":{let A=!a&&l,g=a&&l&&r?.country&&r?.country.code!==l;if(A||g){let O={basic_information:he(m,"nationality_status","ir35","ir35_sds_file"),type:"contractor",country_code:l,external_id:R},mt=await Le(O),ft=mt?.data?.employment?.id;if(!ft)throw I("Employment ID not found");return await vt({employmentId:ft}),Ee(ft),mt}else if(a){let h=he(m,"nationality_status","ir35","ir35_sds_file");return await vt({employmentId:a}),Ae({employmentId:a,basic_information:h})}return}case"contract_details":{console.log("parsedValues",m);let A=c.services_and_deliverables_error_skippable===!0,g={contract_document:m,skip_ai_checks:A};try{let h=await ke({employmentId:a,payload:g}),O=h?.data?.contract_document?.id;if(!O)throw I("Contract document ID not found");return _t(O),h}catch(h){let O=pi(h);throw O&&ot({...t,services_and_deliverables_ai_warning:Zt(p===y),services_and_deliverables_error_skippable:O.skippable}),h}}case"contract_preview":return Be({employmentId:a,contractDocumentId:E,payload:{signature:m.signature}});case"pricing_plan":{if(x&&[y,nt].includes(t.subscription))throw I(`This individual is not eligible for ${se[t.subscription]}.`);if(t.subscription===Gt)return Promise.resolve({data:{subscription:t.subscription}});if(F&&t.subscription!==y)try{await je({employmentId:a}),await ct()}catch(g){if(g?.response?.status!==404)throw g;await ct()}if(t.subscription==$)return Dt({employmentId:a,payload:{operation:"downgrade"}});if(t.subscription==nt)return Dt({employmentId:a,payload:{operation:"upgrade"}});if(t.subscription==y)return F&&r?.contractor_type!=="cor"?Tt({employmentId:a}):Promise.resolve({data:{subscription:t.subscription}});throw I("invalid selection")}case"eligibility_questionnaire":try{if((await xe({employmentId:a,payload:m}))?.data?.is_blocking)throw X(!1),St("pricing_plan"),I("This individual is not eligible for Contractor of Record.");return await Tt({employmentId:a})}finally{await ct()}default:throw I("Invalid step state")}}return u(mi,"onSubmit"),{isLoading:pt||dt,fieldValues:c,stepState:e,checkFieldUpdates:ot,markContractAsReviewed:u(()=>{ot({review_completed:!0})},"markContractAsReviewed"),back:Oe,next:u(()=>{a&&wt(),Ie()},"handleNextStep"),goTo:di,onSubmit:mi,fields:i[e.currentStep.name],meta:{fields:z.current,fieldsets:ci[e.currentStep.name]},parseFormValues:kt,canSkipAiValidation:c.services_and_deliverables_error_skippable===!0,handleValidation:u(async t=>{if(e.currentStep.name==="select_country")return Y.handleValidation(t);if(C&&e.currentStep.name==="basic_information"){let n=await f(t,C?.fields,{isPartialValidation:!1});return C?.handleValidation(n)}if(w&&e.currentStep.name==="contract_details"){let n=await f(t,w?.fields,{isPartialValidation:!1});return w?.handleValidation(n)}if(M&&e.currentStep.name==="contract_preview"){let n=await f(t,M?.fields,{isPartialValidation:!0});return M?.handleValidation(n)}if(v&&e.currentStep.name==="pricing_plan"){let n=await f(t,v?.fields,{isPartialValidation:!1});return v?.handleValidation(n)}if(V&&e.currentStep.name==="eligibility_questionnaire"){let n=await f(t,V?.fields,{isPartialValidation:!1});return V?.handleValidation(n)}return null},"handleValidation"),initialValues:ui,employmentId:a,refetchEmployment:wt,isSubmitting:ht.isPending||Pt.isPending||at.isPending||Mt.isPending||Ot.isPending||Et.isPending||Ft.isPending||Vt.isPending||It.isPending,documentPreviewPdf:lt,canInvite:Re,isEmploymentReadOnly:S,invitedStatus:qe,employment:r,defaultLegalEntity:Te,steps:Me}},"useContractorOnboarding");export{Gi as a};
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{f as Qt,h as Jt,i as Nt}from"./chunk-HPLRAHY7.js";import{a as Wt,b as te,c as ee,d as ie,e as ne,f as re,h as oe,i as ae,j as se,k as ce,l as le,m as ue,n as de,o as me,p as pe,q as fe,r as ye,s as _e,t as ge}from"./chunk-SAUF7ZUE.js";import{a as be,b as Se,c as Ce}from"./chunk-ROQYHTFQ.js";import{a as zt,b as Ht,f as Xt,g as Yt,h as Zt}from"./chunk-AHRG5QCS.js";import{a as $,b as nt,c as y,d as Gt,g as $t}from"./chunk-PX5PE6GX.js";import{a as Ut}from"./chunk-YIOLMWB5.js";import{a as jt,e as f,f as D}from"./chunk-I3DVKJCW.js";import{L as Bt}from"./chunk-WQ4H5V7U.js";import{h as P,i as I}from"./chunk-VIGKOVHP.js";import{a as b}from"./chunk-X6ZAR7ZL.js";import{a as Kt}from"./chunk-TSPDJUGG.js";import{d as xt}from"./chunk-KQPDXXG3.js";import{a as u}from"./chunk-P37U34EQ.js";import{useEffect as L,useMemo as o,useRef as _i,useState as T}from"react";import he from"lodash.omit";import{useQuery as fi}from"@tanstack/react-query";var yi=u(()=>{let{client:k}=xt(),{data:R}=te(),s=ee(R)?R?.company?.id??"":"";return fi({queryKey:["legal-entities",s],queryFn:u(()=>Bt({client:k,path:{company_id:s},query:{page_size:100}}),"queryFn"),select:u(W=>W.data?.data?.legal_entities,"select"),enabled:!!s})},"useLegalEntities"),we=u(()=>{let{data:k}=yi();return k?.find(R=>R.is_default)},"useDefaultLegalEntity");var gi={select_country:null,basic_information:"employment_basic_information",contract_details:null,eligibility_questionnaire:null,pricing_plan:null,contract_preview:null,review:null},bi={employment_basic_information:"basic_information"},Gi=u(({countryCode:k,externalId:R,employmentId:s,skipSteps:W,options:_,initialValues:d})=>{let Pe=_?.excludeProducts||[],[l,yt]=T(k||null),[a,Ee]=T(s),[E,_t]=T(void 0),z=_i({select_country:{},basic_information:{},contract_details:{},contract_preview:{},pricing_plan:{},eligibility_questionnaire:{}}),[H,ve]=T(void 0),[gt,X]=T(!1),[bt,Fe]=T(!0),[rt,St]=T(null),{steps:Ve,stepsArray:Me}=o(()=>zt({includeSelectCountry:!W?.includes("select_country"),includeEligibilityQuestionnaire:gt,includeContractPreview:bt}),[gt,bt,W]),{fieldValues:c,stepState:e,setFieldValues:ot,previousStep:Oe,nextStep:Ie,goToStep:B,setStepValues:Ct}=Kt(Ve);L(()=>{rt&&(B(rt),St(null))},[rt,B]);let{data:r,isLoading:De,refetch:wt}=Ut({employmentId:a,queryParams:{exclude_files:!0}}),Te=we(),{status:q}=r||{},S=q&&Xt.includes(q),Re=q&&!Yt.includes(q),qe=o(()=>q==="invited"?"invited":"not_invited",[q]),ht=Jt(),Pt=Nt(l,_),at=ae(),Et=Wt(),{mutateAsync:vt}=le(at,Et,c),Ft=pe(),Vt=fe(),{mutateAsyncOrThrow:Ae}=b(Pt),Mt=ne(),Ot=oe(),It=ye(),{mutateAsyncOrThrow:Le}=b(ht),{mutateAsyncOrThrow:ke}=b(at),{mutateAsyncOrThrow:Be}=b(Mt),{mutateAsyncOrThrow:Dt}=b(Ot),{mutateAsyncOrThrow:xe}=b(Ft),{mutateAsyncOrThrow:Tt}=b(Vt),{mutateAsyncOrThrow:je}=b(It);s&&r?.country?.code&&!l&&yt(r.country.code);let{selectCountryForm:Y,isLoading:Qe,countries:Rt}=_e({jsfModify:_?.jsfModify?.select_country}),st=o(()=>Rt?.find(t=>t.value===l),[Rt,l]),Je=o(()=>st?.label,[st]),Ne=e.currentStep.name==="pricing_plan"||!!s&&S,{form:v,isLoading:Ue,contractorSubscriptions:Z,refetch:ct,isEligibilityQuestionnaireBlocked:x}=ce(a,st,{jsonSchemaVersion:_?.jsonSchemaVersion,queryOptions:{enabled:Ne},excludeProducts:Pe,jsfModify:_?.jsfModify?.pricing_plan}),F=o(()=>!!Z?.find(t=>t.product.short_name==="COR")?.eligibility_questionnaire?.submitted_at,[Z]);L(()=>{if(F){X(!1);return}else X(H===y)},[F,H]),L(()=>{let t=r?.contractor_type==="cor";Fe(!t)},[r?.contractor_type]);let tt=o(()=>Z?.find(t=>t.product.short_name==="COR")?.eligibility_questionnaire?.responses,[Z]),Ke=gi[e.currentStep.name]||"contractor_basic_information",Ge=bi[Ke],$e=r?.[Ge]||{},We=u(({form:t,options:n={},query:p={}})=>{let g=Object.keys(c).length>0?{...d,...e.values?.[e.currentStep.name],...c}:{...d,...$e};return Qt({countryCode:l,form:t,fieldValues:g,query:p,options:{...n,queryOptions:{enabled:n.queryOptions?.enabled??!0}}})},"useJSONSchema"),ze=!!(l&&(e.currentStep.name==="basic_information"||s)),He=!!(l==="GBR"&&s&&e.currentStep.name==="basic_information"),{data:j,isLoading:Xe}=ue(s,{enabled:He}),{data:et,isLoading:Ye}=de(s,{enabled:!!s});L(()=>{et&&et.length>0&&!E&&_t(et[0].id)},[et,E]);let{data:C,isLoading:Ze}=We({form:"contractor_basic_information",options:{jsfModify:Se(l,Je,_),queryOptions:{enabled:ze}}}),ti=o(()=>Ht(r?.basic_information?.provisional_start_date,c?.service_duration?.provisional_start_date),[r?.basic_information?.provisional_start_date,c?.service_duration?.provisional_start_date]),m=o(()=>{let t={standard:$,plus:nt,cor:y};if(c.subscription)return c.subscription;let n=e.values?.pricing_plan?.subscription;return n&&!x?n:F&&!x?y:x&&F?$:t[r?.contractor_type]||$},[c,e.values,F,r?.contractor_type,x]);L(()=>{m&&m!==H&&ve(m)},[m,H]);let ei=o(()=>({...tt,...d,...e.values?.eligibility_questionnaire,...c}),[tt,d,e.values?.eligibility_questionnaire,c]),ii=o(()=>m===y&&e.currentStep.name==="eligibility_questionnaire"||!!s&&S&&m===y,[m,e.currentStep.name,s,S]),{data:V,isLoading:ni}=me({options:{queryOptions:{enabled:ii},jsfModify:_?.jsfModify?.eligibility_questionnaire},fieldValues:ei}),ri=!!(l&&e.currentStep.name==="contract_details"||S),{data:w,isLoading:oi}=ge({countryCode:l,fieldValues:c,employmentId:a,options:{queryOptions:{enabled:ri},jsfModify:be(_?.jsfModify?.contract_details,ti,m,c,m===y)}}),ai=o(()=>e.currentStep.name==="contract_preview"||!!s&&S,[e.currentStep.name,s,S]),{data:M}=ie({fieldValues:c,options:{queryOptions:{enabled:ai},jsfModify:Ce(_,c)}}),{data:lt,isLoading:si}=re({employmentId:a,contractDocumentId:E,options:{queryOptions:{enabled:!!E}}}),i=o(()=>({select_country:Y?.fields||[],basic_information:C?.fields||[],pricing_plan:v?.fields||[],eligibility_questionnaire:V?.fields||[],contract_details:w?.fields||[],contract_preview:M?.fields||[],review:[]}),[Y?.fields,C?.fields,v?.fields,w?.fields,M?.fields,V?.fields]),ci={select_country:null,basic_information:C?.meta["x-jsf-fieldsets"],pricing_plan:null,contract_details:w?.meta["x-jsf-fieldsets"],eligibility_questionnaire:null,contract_preview:null,review:null},{country:li,basic_information:it={},contract_details:qt={}}=r||{},At=li?.code,Q=o(()=>D(i.select_country,{country:l||At||""}),[i.select_country,l,At]),ut=o(()=>j?.content?jt(j.content,j.name):null,[j?.content,j?.name]),J=o(()=>{let t={...d,...it,ir35:r?.contract_details?.ir_35,nationality_status:r?.contract_details?.nationality,...ut&&{ir35_sds_file:[ut]}};return D(i.basic_information,t)},[d,it,r?.contract_details?.ir_35,r?.contract_details?.nationality,ut,i.basic_information]),N=o(()=>{let n={...{service_duration:{provisional_start_date:it.provisional_start_date}},...d,...qt};return D(i.contract_details,n)},[i.contract_details,qt,d,it]),U=o(()=>{let t=lt?.contract_document?.signatories?.find(p=>p.type==="company"),n={...d,signature:t?.signature};return D(i.contract_preview,n)},[i.contract_preview,d,lt]),K=o(()=>{let n={...{subscription:m},...d};return D(i.pricing_plan,n)},[i.pricing_plan,d,m]),G=o(()=>{let t={...d,...tt};return D(i.eligibility_questionnaire,t)},[i.eligibility_questionnaire,d,tt]),ui=o(()=>({select_country:Q,basic_information:J,contract_details:N,contract_preview:U,pricing_plan:K,eligibility_questionnaire:G}),[Q,J,N,U,K,G]),dt=!!(s&&S&&e.currentStep.name!=="review"),mt=Qe||Ze||De||oi||Ue||si||Xe||Ye||ni,Lt=o(()=>{let n=r?.contractor_type==="cor"||i.contract_preview.length>0;return!!(dt&&!mt&&E&&i.basic_information.length>0&&i.contract_details.length>0&&n)},[dt,mt,E,i.basic_information.length,i.contract_details.length,i.contract_preview.length,r?.contractor_type]);L(()=>{Lt&&(z.current={select_country:P(Q,i.select_country),basic_information:P(J,i.basic_information),contract_details:P(N,i.contract_details),contract_preview:P(U,i.contract_preview),pricing_plan:P(K,i.pricing_plan),eligibility_questionnaire:P(G,i.eligibility_questionnaire)},Ct({select_country:Q,basic_information:J,contract_details:N,contract_preview:U,pricing_plan:K,eligibility_questionnaire:G,review:{}}),B("review"))},[Lt,B,Q,J,N,Ct,i.select_country,i.basic_information,i.contract_details,i.pricing_plan,K,i.contract_preview,U,i.eligibility_questionnaire,G]);let di=u(t=>{B(t)},"goTo"),kt=u(async t=>Y&&e.currentStep.name==="select_country"?t:C&&e.currentStep.name==="basic_information"?await f(t,C?.fields,{isPartialValidation:!1}):w&&e.currentStep.name==="contract_details"?await f(t,w?.fields,{isPartialValidation:!1}):M&&e.currentStep.name==="contract_preview"?await f(t,M?.fields,{isPartialValidation:!1}):v&&e.currentStep.name==="pricing_plan"?await f(t,v?.fields,{isPartialValidation:!1}):V&&e.currentStep.name==="eligibility_questionnaire"?await f(t,V?.fields,{isPartialValidation:!1}):{},"parseFormValues"),mi=u(t=>{let n=t?.rawError?.error?.errors?.services_and_deliverables;return n?.source===$t?{error:n.error,source:n.source,skippable:n.skippable}:null},"extractAiValidationError");async function pi(t){let n=e.currentStep.name;n in z.current&&(z.current[n]=P(t,i[n]));let p=await kt(t);switch(e.currentStep.name){case"select_country":return yt(p.country),Promise.resolve({data:{countryCode:p.country}});case"basic_information":{let A=!a&&l,g=a&&l&&r?.country&&r?.country.code!==l;if(A||g){let O={basic_information:he(p,"nationality_status","ir35","ir35_sds_file"),type:"contractor",country_code:l,external_id:R},pt=await Le(O),ft=pt?.data?.employment?.id;if(!ft)throw I("Employment ID not found");return await vt({employmentId:ft}),Ee(ft),pt}else if(a){let h=he(p,"nationality_status","ir35","ir35_sds_file");return await vt({employmentId:a}),Ae({employmentId:a,basic_information:h})}return}case"contract_details":{let A=c.services_and_deliverables_error_skippable===!0,g={contract_document:p,skip_ai_checks:A};try{let h=await ke({employmentId:a,payload:g}),O=h?.data?.contract_document?.id;if(!O)throw I("Contract document ID not found");return _t(O),h}catch(h){let O=mi(h);throw O&&ot({...t,services_and_deliverables_ai_warning:Zt(m===y),services_and_deliverables_error_skippable:O.skippable}),h}}case"contract_preview":return Be({employmentId:a,contractDocumentId:E,payload:{signature:p.signature}});case"pricing_plan":{if(x&&[y,nt].includes(t.subscription))throw I(`This individual is not eligible for ${se[t.subscription]}.`);if(t.subscription===Gt)return Promise.resolve({data:{subscription:t.subscription}});if(F&&t.subscription!==y)try{await je({employmentId:a}),await ct()}catch(g){if(g?.response?.status!==404)throw g;await ct()}if(t.subscription==$)return Dt({employmentId:a,payload:{operation:"downgrade"}});if(t.subscription==nt)return Dt({employmentId:a,payload:{operation:"upgrade"}});if(t.subscription==y)return F&&r?.contractor_type!=="cor"?Tt({employmentId:a}):Promise.resolve({data:{subscription:t.subscription}});throw I("invalid selection")}case"eligibility_questionnaire":try{if((await xe({employmentId:a,payload:p}))?.data?.is_blocking)throw X(!1),St("pricing_plan"),I("This individual is not eligible for Contractor of Record.");return await Tt({employmentId:a})}finally{await ct()}default:throw I("Invalid step state")}}return u(pi,"onSubmit"),{isLoading:mt||dt,fieldValues:c,stepState:e,checkFieldUpdates:ot,markContractAsReviewed:u(()=>{ot({review_completed:!0})},"markContractAsReviewed"),back:Oe,next:u(()=>{a&&wt(),Ie()},"handleNextStep"),goTo:di,onSubmit:pi,fields:i[e.currentStep.name],meta:{fields:z.current,fieldsets:ci[e.currentStep.name]},parseFormValues:kt,canSkipAiValidation:c.services_and_deliverables_error_skippable===!0,handleValidation:u(async t=>{if(e.currentStep.name==="select_country")return Y.handleValidation(t);if(C&&e.currentStep.name==="basic_information"){let n=await f(t,C?.fields,{isPartialValidation:!1});return C?.handleValidation(n)}if(w&&e.currentStep.name==="contract_details"){let n=await f(t,w?.fields,{isPartialValidation:!1});return w?.handleValidation(n)}if(M&&e.currentStep.name==="contract_preview"){let n=await f(t,M?.fields,{isPartialValidation:!0});return M?.handleValidation(n)}if(v&&e.currentStep.name==="pricing_plan"){let n=await f(t,v?.fields,{isPartialValidation:!1});return v?.handleValidation(n)}if(V&&e.currentStep.name==="eligibility_questionnaire"){let n=await f(t,V?.fields,{isPartialValidation:!1});return V?.handleValidation(n)}return null},"handleValidation"),initialValues:ui,employmentId:a,refetchEmployment:wt,isSubmitting:ht.isPending||Pt.isPending||at.isPending||Mt.isPending||Ot.isPending||Et.isPending||Ft.isPending||Vt.isPending||It.isPending,documentPreviewPdf:lt,canInvite:Re,isEmploymentReadOnly:S,invitedStatus:qe,employment:r,defaultLegalEntity:Te,steps:Me}},"useContractorOnboarding");export{Gi as a};
|
|
2
|
+
//# sourceMappingURL=chunk-Y2S7WYMO.js.map
|