@remoteoss/remote-flows 1.21.1 → 1.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-JTD4HJSK.js → chunk-2MTSUYN6.js} +2 -2
- package/dist/{chunk-IJQBLGTI.js → chunk-2PDHYTZ2.js} +2 -2
- package/dist/chunk-3MLYDDLK.js +2 -0
- package/dist/chunk-3MLYDDLK.js.map +1 -0
- package/dist/{chunk-AHBNUSR4.js → chunk-4EFT4EBW.js} +2 -2
- package/dist/{chunk-J5I5ZSW3.js → chunk-4EU3AWEX.js} +2 -2
- package/dist/{chunk-67GUBRC6.js → chunk-4Q2FKKQU.js} +2 -2
- package/dist/{chunk-MAOJJ4WX.js → chunk-5MDNW5H7.js} +2 -2
- package/dist/{chunk-E6B4ZECN.js → chunk-5QOEBELF.js} +2 -2
- package/dist/{chunk-XJECSJYB.js → chunk-6ORP3EVR.js} +2 -2
- package/dist/{chunk-SAUF7ZUE.js → chunk-7DRY6YCN.js} +2 -2
- package/dist/{chunk-BRPBSA4E.js → chunk-AKFNSADJ.js} +2 -2
- package/dist/chunk-D4TLSPX5.js +2 -0
- package/dist/chunk-D4TLSPX5.js.map +1 -0
- package/dist/{chunk-LT27CPJ6.js → chunk-D5ABWBC6.js} +2 -2
- package/dist/chunk-D5K4NBOG.js +2 -0
- package/dist/chunk-D5K4NBOG.js.map +1 -0
- package/dist/{chunk-BNY76RHM.js → chunk-DNVTXLTP.js} +2 -2
- package/dist/{chunk-Y2JE46ZY.js → chunk-FXTOBTW4.js} +2 -2
- package/dist/{chunk-YYGLCI2S.js → chunk-GECXYMDU.js} +2 -2
- package/dist/chunk-GRE4RCPB.js +2 -0
- package/dist/chunk-GRE4RCPB.js.map +1 -0
- package/dist/{chunk-OC3MVHTM.js → chunk-H3HNBOAE.js} +2 -2
- package/dist/{chunk-C52C6J6Q.js → chunk-HNTEGDI2.js} +2 -2
- package/dist/{chunk-XW7ZYSJ3.js → chunk-HVOYAQHI.js} +2 -2
- package/dist/{chunk-EULZWL2F.js → chunk-IN74TK34.js} +2 -2
- package/dist/{chunk-YVAEVXHP.js → chunk-ITTXYDGV.js} +2 -2
- package/dist/{chunk-KQSWP3Y3.js → chunk-JAZLNJM3.js} +2 -2
- package/dist/{chunk-I3DVKJCW.js → chunk-JEGVULKU.js} +2 -2
- package/dist/{chunk-I3DVKJCW.js.map → chunk-JEGVULKU.js.map} +1 -1
- package/dist/{chunk-KIQNU673.js → chunk-JJMBP6FU.js} +2 -2
- package/dist/{chunk-W5USIIXL.js → chunk-JNMD7SWN.js} +2 -2
- package/dist/{chunk-DPZHLV7U.js → chunk-JVHQ5EG3.js} +2 -2
- package/dist/{chunk-7XLP5WFW.js → chunk-K5HZE7M6.js} +2 -2
- package/dist/{chunk-72TX2GXH.js → chunk-KEFIHTZ2.js} +2 -2
- package/dist/{chunk-QWQPTZQD.js → chunk-KO264IE2.js} +2 -2
- package/dist/chunk-LU265KXN.js +2 -0
- package/dist/{chunk-VZ5BGG3N.js.map → chunk-LU265KXN.js.map} +1 -1
- package/dist/chunk-LXOYWRNU.js +2 -0
- package/dist/{chunk-STF3NTPS.js.map → chunk-LXOYWRNU.js.map} +1 -1
- package/dist/{chunk-KWLKQ6N6.js → chunk-NI3CJNG3.js} +2 -2
- package/dist/{chunk-XAPDPR3N.js → chunk-R7G5G45H.js} +2 -2
- package/dist/{chunk-7Y4XCQZX.js → chunk-RKGD6XC7.js} +2 -2
- package/dist/{chunk-KN5M3VJD.js → chunk-S42DBWAF.js} +2 -2
- package/dist/{chunk-EUQH4FU4.js → chunk-S5VSWHJY.js} +2 -2
- package/dist/{chunk-JD2O7KNE.js → chunk-SQPCNBJC.js} +2 -2
- package/dist/{chunk-UWL56AOZ.js → chunk-TGQTFWAB.js} +2 -2
- package/dist/{chunk-QELEVTDT.js → chunk-TJHW5QSC.js} +2 -2
- package/dist/{chunk-7AFCHGML.js → chunk-U33Q35CB.js} +2 -2
- package/dist/chunk-U4QOJDBZ.js +2 -0
- package/dist/chunk-U4QOJDBZ.js.map +1 -0
- package/dist/{chunk-HGNICQUY.js → chunk-UEDPRIG7.js} +2 -2
- package/dist/{chunk-CT2D4IBR.js → chunk-UTLIN5S6.js} +2 -2
- package/dist/{chunk-TMVRAQYA.js → chunk-UVBIRNQ4.js} +2 -2
- package/dist/{chunk-TZQ2O23Z.js → chunk-V3ZGBTES.js} +2 -2
- package/dist/{chunk-Z7AWT3MQ.js → chunk-VHLCM6IM.js} +2 -2
- package/dist/{chunk-KKOBWE62.js → chunk-VL5TI4XT.js} +2 -2
- package/dist/{chunk-7PTTOR6T.js → chunk-WWXX3PU7.js} +2 -2
- package/dist/{chunk-AQ4WWMOK.js → chunk-X6PTF3PD.js} +2 -2
- package/dist/{chunk-IW6OJUGY.js → chunk-ZEJRVVLJ.js} +2 -2
- 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.d.ts +2 -2
- 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/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 +4 -3
- 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/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 +2 -2
- 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/Onboarding/utils.js +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/hooks.js +1 -1
- package/dist/flows/Termination/index.d.ts +1 -1
- package/dist/flows/Termination/index.js +1 -1
- package/dist/flows/types.d.ts +1 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.js +1 -1
- package/dist/{types-B_iVL6gW.d.ts → types-BUI5G3ML.d.ts} +36 -21
- package/dist/{types-gQ_Tx-qG.d.ts → types-C0m9mu0v.d.ts} +55 -7
- package/package.json +1 -1
- package/dist/chunk-5VNMVVUB.js +0 -2
- package/dist/chunk-5VNMVVUB.js.map +0 -1
- package/dist/chunk-HPLRAHY7.js +0 -2
- package/dist/chunk-HPLRAHY7.js.map +0 -1
- package/dist/chunk-RQWB2F74.js +0 -2
- package/dist/chunk-RQWB2F74.js.map +0 -1
- package/dist/chunk-SDDJBGXV.js +0 -2
- package/dist/chunk-SDDJBGXV.js.map +0 -1
- package/dist/chunk-STF3NTPS.js +0 -2
- package/dist/chunk-VZ5BGG3N.js +0 -2
- package/dist/chunk-Y2S7WYMO.js +0 -2
- package/dist/chunk-Y2S7WYMO.js.map +0 -1
- /package/dist/{chunk-JTD4HJSK.js.map → chunk-2MTSUYN6.js.map} +0 -0
- /package/dist/{chunk-IJQBLGTI.js.map → chunk-2PDHYTZ2.js.map} +0 -0
- /package/dist/{chunk-AHBNUSR4.js.map → chunk-4EFT4EBW.js.map} +0 -0
- /package/dist/{chunk-J5I5ZSW3.js.map → chunk-4EU3AWEX.js.map} +0 -0
- /package/dist/{chunk-67GUBRC6.js.map → chunk-4Q2FKKQU.js.map} +0 -0
- /package/dist/{chunk-MAOJJ4WX.js.map → chunk-5MDNW5H7.js.map} +0 -0
- /package/dist/{chunk-E6B4ZECN.js.map → chunk-5QOEBELF.js.map} +0 -0
- /package/dist/{chunk-XJECSJYB.js.map → chunk-6ORP3EVR.js.map} +0 -0
- /package/dist/{chunk-SAUF7ZUE.js.map → chunk-7DRY6YCN.js.map} +0 -0
- /package/dist/{chunk-BRPBSA4E.js.map → chunk-AKFNSADJ.js.map} +0 -0
- /package/dist/{chunk-LT27CPJ6.js.map → chunk-D5ABWBC6.js.map} +0 -0
- /package/dist/{chunk-BNY76RHM.js.map → chunk-DNVTXLTP.js.map} +0 -0
- /package/dist/{chunk-Y2JE46ZY.js.map → chunk-FXTOBTW4.js.map} +0 -0
- /package/dist/{chunk-YYGLCI2S.js.map → chunk-GECXYMDU.js.map} +0 -0
- /package/dist/{chunk-OC3MVHTM.js.map → chunk-H3HNBOAE.js.map} +0 -0
- /package/dist/{chunk-C52C6J6Q.js.map → chunk-HNTEGDI2.js.map} +0 -0
- /package/dist/{chunk-XW7ZYSJ3.js.map → chunk-HVOYAQHI.js.map} +0 -0
- /package/dist/{chunk-EULZWL2F.js.map → chunk-IN74TK34.js.map} +0 -0
- /package/dist/{chunk-YVAEVXHP.js.map → chunk-ITTXYDGV.js.map} +0 -0
- /package/dist/{chunk-KQSWP3Y3.js.map → chunk-JAZLNJM3.js.map} +0 -0
- /package/dist/{chunk-KIQNU673.js.map → chunk-JJMBP6FU.js.map} +0 -0
- /package/dist/{chunk-W5USIIXL.js.map → chunk-JNMD7SWN.js.map} +0 -0
- /package/dist/{chunk-DPZHLV7U.js.map → chunk-JVHQ5EG3.js.map} +0 -0
- /package/dist/{chunk-7XLP5WFW.js.map → chunk-K5HZE7M6.js.map} +0 -0
- /package/dist/{chunk-72TX2GXH.js.map → chunk-KEFIHTZ2.js.map} +0 -0
- /package/dist/{chunk-QWQPTZQD.js.map → chunk-KO264IE2.js.map} +0 -0
- /package/dist/{chunk-KWLKQ6N6.js.map → chunk-NI3CJNG3.js.map} +0 -0
- /package/dist/{chunk-XAPDPR3N.js.map → chunk-R7G5G45H.js.map} +0 -0
- /package/dist/{chunk-7Y4XCQZX.js.map → chunk-RKGD6XC7.js.map} +0 -0
- /package/dist/{chunk-KN5M3VJD.js.map → chunk-S42DBWAF.js.map} +0 -0
- /package/dist/{chunk-EUQH4FU4.js.map → chunk-S5VSWHJY.js.map} +0 -0
- /package/dist/{chunk-JD2O7KNE.js.map → chunk-SQPCNBJC.js.map} +0 -0
- /package/dist/{chunk-UWL56AOZ.js.map → chunk-TGQTFWAB.js.map} +0 -0
- /package/dist/{chunk-QELEVTDT.js.map → chunk-TJHW5QSC.js.map} +0 -0
- /package/dist/{chunk-7AFCHGML.js.map → chunk-U33Q35CB.js.map} +0 -0
- /package/dist/{chunk-HGNICQUY.js.map → chunk-UEDPRIG7.js.map} +0 -0
- /package/dist/{chunk-CT2D4IBR.js.map → chunk-UTLIN5S6.js.map} +0 -0
- /package/dist/{chunk-TMVRAQYA.js.map → chunk-UVBIRNQ4.js.map} +0 -0
- /package/dist/{chunk-TZQ2O23Z.js.map → chunk-V3ZGBTES.js.map} +0 -0
- /package/dist/{chunk-Z7AWT3MQ.js.map → chunk-VHLCM6IM.js.map} +0 -0
- /package/dist/{chunk-KKOBWE62.js.map → chunk-VL5TI4XT.js.map} +0 -0
- /package/dist/{chunk-7PTTOR6T.js.map → chunk-WWXX3PU7.js.map} +0 -0
- /package/dist/{chunk-AQ4WWMOK.js.map → chunk-X6PTF3PD.js.map} +0 -0
- /package/dist/{chunk-IW6OJUGY.js.map → chunk-ZEJRVVLJ.js.map} +0 -0
|
@@ -11,9 +11,9 @@ import { FieldValues } from 'react-hook-form';
|
|
|
11
11
|
import { ValidationResult } from '@remoteoss/remote-json-schema-form-kit';
|
|
12
12
|
import { StepKeys } from './flows/ContractorOnboarding/utils.js';
|
|
13
13
|
import { BasicInformationStep } from './flows/ContractorOnboarding/components/BasicInformationStep.js';
|
|
14
|
-
import { g as SelectCountryStep } from './types-
|
|
14
|
+
import { g as SelectCountryStep } from './types-C0m9mu0v.js';
|
|
15
15
|
import { FlowOptions, JSFModify } from './flows/types.js';
|
|
16
|
-
import { OnboardingInvite } from './flows/
|
|
16
|
+
import { OnboardingInvite } from './flows/ContractorOnboarding/components/OnboardingInvite.js';
|
|
17
17
|
import { ContractReviewButton } from './flows/ContractorOnboarding/components/ContractReviewButton.js';
|
|
18
18
|
import { ProductType } from './flows/ContractorOnboarding/constants.js';
|
|
19
19
|
import { SaveDraftButton } from './flows/ContractorOnboarding/components/SaveDraftButton.js';
|
|
@@ -33,7 +33,9 @@ type PricingPlanStepProps = {
|
|
|
33
33
|
};
|
|
34
34
|
declare function PricingPlanStep({ components, onSubmit, onSuccess, onError, }: PricingPlanStepProps): react_jsx_runtime.JSX.Element;
|
|
35
35
|
|
|
36
|
-
type useContractorOnboardingProps = Omit<ContractorOnboardingFlowProps, 'render'
|
|
36
|
+
type useContractorOnboardingProps = Omit<ContractorOnboardingFlowProps, 'render' | 'options'> & {
|
|
37
|
+
options: ContractorOnboardingHookOptions;
|
|
38
|
+
};
|
|
37
39
|
declare const useContractorOnboarding: ({ countryCode, externalId, employmentId, skipSteps, options, initialValues: onboardingInitialValues, }: useContractorOnboardingProps) => {
|
|
38
40
|
/**
|
|
39
41
|
* Loading state indicating if the flow is loading data
|
|
@@ -279,6 +281,28 @@ type ContractorOnboardingRenderProps = {
|
|
|
279
281
|
SaveDraftButton: typeof SaveDraftButton;
|
|
280
282
|
};
|
|
281
283
|
};
|
|
284
|
+
type ContractorOnboardingFlowOptions = Omit<FlowOptions, 'jsfModify'> & {
|
|
285
|
+
/**
|
|
286
|
+
* Products to exclude from the available options in pricing_plan step.
|
|
287
|
+
* By default, all products are shown. Use this to hide specific products.
|
|
288
|
+
* @example excludeProducts: ['eor'] // Hide EOR option
|
|
289
|
+
* @example excludeProducts: ['eor', 'cor'] // Hide both EOR and COR
|
|
290
|
+
*/
|
|
291
|
+
excludeProducts?: ProductType[];
|
|
292
|
+
/**
|
|
293
|
+
* The JSON schema modification to use for the onboarding.
|
|
294
|
+
* This is used to modify the JSON schema for the onboarding.
|
|
295
|
+
* @see {@link JSFModify}
|
|
296
|
+
*/
|
|
297
|
+
jsfModify?: {
|
|
298
|
+
select_country?: JSFModify;
|
|
299
|
+
basic_information?: JSFModify;
|
|
300
|
+
contract_details?: JSFModify;
|
|
301
|
+
contract_preview?: JSFModify;
|
|
302
|
+
eligibility_questionnaire?: JSFModify;
|
|
303
|
+
pricing_plan?: JSFModify;
|
|
304
|
+
};
|
|
305
|
+
};
|
|
282
306
|
type ContractorOnboardingFlowProps = {
|
|
283
307
|
/**
|
|
284
308
|
* The country code to use for the onboarding.
|
|
@@ -304,23 +328,7 @@ type ContractorOnboardingFlowProps = {
|
|
|
304
328
|
/**
|
|
305
329
|
* The options for the contractor onboarding flow.
|
|
306
330
|
*/
|
|
307
|
-
options?:
|
|
308
|
-
/**
|
|
309
|
-
* Products to exclude from the available options in pricing_plan step.
|
|
310
|
-
* By default, all products are shown. Use this to hide specific products.
|
|
311
|
-
* @example excludeProducts: ['eor'] // Hide EOR option
|
|
312
|
-
* @example excludeProducts: ['eor', 'cor'] // Hide both EOR and COR
|
|
313
|
-
*/
|
|
314
|
-
excludeProducts?: ProductType[];
|
|
315
|
-
jsfModify?: {
|
|
316
|
-
select_country?: JSFModify;
|
|
317
|
-
basic_information?: JSFModify;
|
|
318
|
-
contract_details?: JSFModify;
|
|
319
|
-
contract_preview?: JSFModify;
|
|
320
|
-
eligibility_questionnaire?: JSFModify;
|
|
321
|
-
pricing_plan?: JSFModify;
|
|
322
|
-
};
|
|
323
|
-
};
|
|
331
|
+
options?: ContractorOnboardingFlowOptions;
|
|
324
332
|
/**
|
|
325
333
|
* Initial values to pre-populate the form fields.
|
|
326
334
|
* These are flat field values that will be automatically mapped to the correct step.
|
|
@@ -328,6 +336,13 @@ type ContractorOnboardingFlowProps = {
|
|
|
328
336
|
*/
|
|
329
337
|
initialValues?: Record<string, unknown>;
|
|
330
338
|
};
|
|
339
|
+
type ContractorOnboardingHookOptions = ContractorOnboardingFlowOptions & {
|
|
340
|
+
/**
|
|
341
|
+
* Callback invoked when the contract review is completed.
|
|
342
|
+
* Use this to sync external form state if implementing custom forms.
|
|
343
|
+
*/
|
|
344
|
+
onContractReviewed?: () => void;
|
|
345
|
+
};
|
|
331
346
|
type PricingPlanFormPayload = {
|
|
332
347
|
subscription: string;
|
|
333
348
|
};
|
|
@@ -367,4 +382,4 @@ type EligibilityQuestionnaireFormPayload = {
|
|
|
367
382
|
};
|
|
368
383
|
type EligibilityQuestionnaireResponse = SuccessResponse;
|
|
369
384
|
|
|
370
|
-
export { type AiValidationError as A, type ContractorOnboardingFlowProps as C, type EligibilityQuestionnaireFormPayload as E, type PricingPlanFormPayload as P, type ContractorOnboardingContractDetailsFormPayload as a, type ContractorOnboardingRenderProps as b, type PricingPlanResponse as c, type ContractorOnboardingContractDetailsResponse as d, type ContractPreviewFormPayload as e, type ContractPreviewResponse as f, type EligibilityQuestionnaireResponse as g, PricingPlanStep as h, ContractDetailsStep as i, ContractPreviewStep as j, EligibilityQuestionnaireStep as k, useContractorOnboarding as u };
|
|
385
|
+
export { type AiValidationError as A, type ContractorOnboardingFlowProps as C, type EligibilityQuestionnaireFormPayload as E, type PricingPlanFormPayload as P, type ContractorOnboardingContractDetailsFormPayload as a, type ContractorOnboardingRenderProps as b, type PricingPlanResponse as c, type ContractorOnboardingContractDetailsResponse as d, type ContractPreviewFormPayload as e, type ContractPreviewResponse as f, type EligibilityQuestionnaireResponse as g, PricingPlanStep as h, ContractDetailsStep as i, ContractPreviewStep as j, EligibilityQuestionnaireStep as k, type ContractorOnboardingHookOptions as l, useContractorOnboarding as u };
|
|
@@ -88,6 +88,18 @@ declare const DEFAULT_VERSION = 1;
|
|
|
88
88
|
* @returns The effective jsonSchemaVersion configuration
|
|
89
89
|
*/
|
|
90
90
|
declare const getContractDetailsSchemaVersion: (options: OnboardingFlowProps["options"], countryCode: string | null) => number | "latest";
|
|
91
|
+
/**
|
|
92
|
+
* Gets the basic information schema version from options
|
|
93
|
+
* @param options - The flow options containing version configurations
|
|
94
|
+
* @returns The jsonSchemaVersion for basic information or default
|
|
95
|
+
*/
|
|
96
|
+
declare const getBasicInformationSchemaVersion: (options: OnboardingFlowProps["options"]) => number | "latest";
|
|
97
|
+
/**
|
|
98
|
+
* Gets the benefit offers schema version from options
|
|
99
|
+
* @param options - The flow options containing version configurations
|
|
100
|
+
* @returns The jsonSchemaVersion for benefit offers or undefined if not set
|
|
101
|
+
*/
|
|
102
|
+
declare const getBenefitOffersSchemaVersion: (options: OnboardingFlowProps["options"]) => number | "latest";
|
|
91
103
|
|
|
92
104
|
type OnboardingHookProps = Omit<OnboardingFlowProps, 'render'>;
|
|
93
105
|
declare const useOnboarding: ({ employmentId, companyId, countryCode, type, options, skipSteps, externalId, initialValues: onboardingInitialValues, }: OnboardingHookProps) => {
|
|
@@ -335,6 +347,25 @@ type OnboardingRenderProps = {
|
|
|
335
347
|
};
|
|
336
348
|
};
|
|
337
349
|
type OnboardingFeatures = 'onboarding_reserves';
|
|
350
|
+
/**
|
|
351
|
+
* JSON schema version configuration for a specific country
|
|
352
|
+
*/
|
|
353
|
+
type CountryJsonSchemaVersion = {
|
|
354
|
+
/**
|
|
355
|
+
* @deprecated Use `jsonSchemaVersion.employment_basic_information` instead for global configuration.
|
|
356
|
+
* This country-specific override is no longer recommended.
|
|
357
|
+
*
|
|
358
|
+
* The json schema version to use for the basic information step by country.
|
|
359
|
+
* The default value is 1.
|
|
360
|
+
*/
|
|
361
|
+
employment_basic_information?: number;
|
|
362
|
+
/**
|
|
363
|
+
* The json schema version to use for the contract details step by country.
|
|
364
|
+
* This is used to override the json schema version for the contract details step by country.
|
|
365
|
+
* The default value is 1.
|
|
366
|
+
*/
|
|
367
|
+
contract_details?: number | 'latest';
|
|
368
|
+
};
|
|
338
369
|
type OnboardingFlowProps = {
|
|
339
370
|
/**
|
|
340
371
|
* The country code to use for the onboarding.
|
|
@@ -370,23 +401,40 @@ type OnboardingFlowProps = {
|
|
|
370
401
|
/**
|
|
371
402
|
* The options to use for the onboarding.
|
|
372
403
|
*/
|
|
373
|
-
options?: Omit<FlowOptions, 'jsfModify'> & {
|
|
404
|
+
options?: Omit<FlowOptions, 'jsfModify' | 'jsonSchemaVersion'> & {
|
|
374
405
|
jsfModify?: {
|
|
375
406
|
select_country?: JSFModify;
|
|
376
407
|
basic_information?: JSFModify;
|
|
377
408
|
contract_details?: JSFModify;
|
|
378
409
|
benefits?: JSFModify;
|
|
379
410
|
};
|
|
411
|
+
/**
|
|
412
|
+
* The json schema version to use for the onboarding.
|
|
413
|
+
* These versions apply globally to all countries.
|
|
414
|
+
* For country-specific overrides (e.g., contract_details), use jsonSchemaVersionByCountry instead.
|
|
415
|
+
* The default value is 1.
|
|
416
|
+
*/
|
|
417
|
+
jsonSchemaVersion?: {
|
|
418
|
+
/**
|
|
419
|
+
* The json schema version to use for the basic information step.
|
|
420
|
+
* Applies globally to all countries.
|
|
421
|
+
* The default value is 1.
|
|
422
|
+
*/
|
|
423
|
+
employment_basic_information?: number | 'latest';
|
|
424
|
+
/**
|
|
425
|
+
* The json schema version to use for the benefit offers step.
|
|
426
|
+
* This is used to override the json schema version for the benefit offers step.
|
|
427
|
+
* The default value is 1.
|
|
428
|
+
*/
|
|
429
|
+
benefit_offers_form_schema?: number | 'latest';
|
|
430
|
+
};
|
|
380
431
|
/**
|
|
381
432
|
* The json schema version to use for the onboarding by country.
|
|
382
433
|
* This is used to override the json schema version for the onboarding by country.
|
|
383
|
-
*
|
|
434
|
+
* Current use case is to support contract_details
|
|
384
435
|
*/
|
|
385
436
|
jsonSchemaVersionByCountry?: {
|
|
386
|
-
[countryCode: string]:
|
|
387
|
-
employment_basic_information?: number;
|
|
388
|
-
contract_details?: number | 'latest';
|
|
389
|
-
};
|
|
437
|
+
[countryCode: string]: CountryJsonSchemaVersion;
|
|
390
438
|
};
|
|
391
439
|
/**
|
|
392
440
|
* The features to use for the onboarding.
|
|
@@ -438,4 +486,4 @@ type Employment = Employment$1 & {
|
|
|
438
486
|
};
|
|
439
487
|
type CreditRiskState = 'deposit_required' | 'deposit_required_successful' | 'invite' | 'invite_successful' | 'referred' | null;
|
|
440
488
|
|
|
441
|
-
export { type BasicInformationFormPayload as B, type ContractDetailsFormPayload as C, DEFAULT_VERSION as D, type Employment as E, type OnboardingFlowProps as O, ReviewStep as R, STEPS as S, type SelectCountryFormPayload as a, type SelectCountrySuccess as b, type BenefitsFormPayload as c, type CreditRiskStatus as d, type CreditRiskState as e, type OnboardingRenderProps as f, SelectCountryStep as g, BasicInformationStep as h, ContractDetailsStep as i, BenefitsStep as j, STEPS_WITHOUT_SELECT_COUNTRY as k, disabledInviteButtonEmploymentStatus as l, getContractDetailsSchemaVersion as m, reviewStepAllowedEmploymentStatus as r, useOnboarding as u };
|
|
489
|
+
export { type BasicInformationFormPayload as B, type ContractDetailsFormPayload as C, DEFAULT_VERSION as D, type Employment as E, type OnboardingFlowProps as O, ReviewStep as R, STEPS as S, type SelectCountryFormPayload as a, type SelectCountrySuccess as b, type BenefitsFormPayload as c, type CreditRiskStatus as d, type CreditRiskState as e, type OnboardingRenderProps as f, SelectCountryStep as g, BasicInformationStep as h, ContractDetailsStep as i, BenefitsStep as j, STEPS_WITHOUT_SELECT_COUNTRY as k, disabledInviteButtonEmploymentStatus as l, getContractDetailsSchemaVersion as m, getBasicInformationSchemaVersion as n, getBenefitOffersSchemaVersion as o, reviewStepAllowedEmploymentStatus as r, useOnboarding as u };
|
package/package.json
CHANGED
package/dist/chunk-5VNMVVUB.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{b as c}from"./chunk-Q3ALCPJN.js";import{d as u}from"./chunk-HPLRAHY7.js";import{j as a}from"./chunk-VIGKOVHP.js";import{a as m}from"./chunk-X6ZAR7ZL.js";import{b as d}from"./chunk-KQPDXXG3.js";import{a as n}from"./chunk-P37U34EQ.js";import w from"lodash.omit";import{jsx as S}from"react/jsx-runtime";function P({onSubmit:p,onSuccess:l,onError:e,render:f,...r}){let{components:y}=d(),{contractorOnboardingBag:t}=c(),i=u(),{mutateAsyncOrThrow:v}=m(i),E=n(async()=>{try{if(await p?.(),t.employmentId){let o=await v({employment_id:t.employmentId});o&&(await l?.({data:o,employmentStatus:"invited"}),t.refetchEmployment())}}catch(o){a(o)?e?.(w(o,"response")):e?.({error:o,rawError:o,fieldErrors:[]})}},"handleSubmit"),s=y?.button;if(!s)throw new Error("Button component not found");let b=!!(i.isPending||!t.canInvite||r.disabled);return S(s,{...r,disabled:b,onClick:o=>{E(),r.onClick?.(o)},children:f({employmentStatus:"invited"})})}n(P,"OnboardingInvite");export{P as a};
|
|
2
|
-
//# sourceMappingURL=chunk-5VNMVVUB.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/ContractorOnboarding/components/OnboardingInvite.tsx"],"sourcesContent":["import { ButtonHTMLAttributes, ReactNode } from 'react';\nimport omit from 'lodash.omit';\nimport { useEmploymentInvite } from '@/src/flows/Onboarding/api';\nimport { FieldError, mutationToPromise } from '@/src/lib/mutations';\nimport { SuccessResponse } from '@/src/client';\nimport { useFormFields } from '@/src/context';\nimport { useContractorOnboardingContext } from '@/src/flows/ContractorOnboarding/context';\nimport { isStructuredError } from '@/src/lib/utils';\n\nexport type OnboardingInviteProps = Omit<\n ButtonHTMLAttributes<HTMLButtonElement>,\n 'onError'\n> & {\n onSuccess?: ({\n data,\n employmentStatus,\n }: {\n data: SuccessResponse;\n employmentStatus: 'invited';\n }) => void | Promise<void>;\n onError?: ({\n error,\n rawError,\n fieldErrors,\n }: {\n error: Error;\n rawError: Record<string, unknown>;\n fieldErrors: FieldError[];\n }) => void;\n onSubmit?: () => void | Promise<void>;\n render: (props: { employmentStatus: 'invited' }) => ReactNode;\n} & Record<string, unknown>;\n\nexport function OnboardingInvite({\n onSubmit,\n onSuccess,\n onError,\n render,\n ...props\n}: OnboardingInviteProps) {\n const { components } = useFormFields();\n const { contractorOnboardingBag } = useContractorOnboardingContext();\n const employmentInviteMutation = useEmploymentInvite();\n\n const { mutateAsyncOrThrow: employmentInviteMutationAsync } =\n mutationToPromise(employmentInviteMutation);\n\n const handleSubmit = async () => {\n try {\n await onSubmit?.();\n if (contractorOnboardingBag.employmentId) {\n const data = await employmentInviteMutationAsync({\n employment_id: contractorOnboardingBag.employmentId,\n });\n if (data) {\n await onSuccess?.({\n data: data as SuccessResponse,\n employmentStatus: 'invited',\n });\n contractorOnboardingBag.refetchEmployment();\n }\n }\n } catch (error: unknown) {\n if (isStructuredError(error)) {\n onError?.(omit(error, 'response'));\n } else {\n onError?.({\n error: error as Error,\n rawError: error as Record<string, unknown>,\n fieldErrors: [],\n });\n }\n }\n };\n\n const CustomButton = components?.button;\n if (!CustomButton) {\n throw new Error(`Button component not found`);\n }\n\n const disabled = Boolean(\n employmentInviteMutation.isPending ||\n !contractorOnboardingBag.canInvite ||\n props.disabled,\n );\n\n return (\n <CustomButton\n {...props}\n disabled={disabled}\n onClick={(evt) => {\n handleSubmit();\n props.onClick?.(evt);\n }}\n >\n {render({\n employmentStatus: 'invited',\n })}\n </CustomButton>\n );\n}\n"],"mappings":"gPACA,OAAOA,MAAU,cAsFb,cAAAC,MAAA,oBAtDG,SAASC,EAAiB,CAC/B,SAAAC,EACA,UAAAC,EACA,QAAAC,EACA,OAAAC,EACA,GAAGC,CACL,EAA0B,CACxB,GAAM,CAAE,WAAAC,CAAW,EAAIC,EAAc,EAC/B,CAAE,wBAAAC,CAAwB,EAAIC,EAA+B,EAC7DC,EAA2BC,EAAoB,EAE/C,CAAE,mBAAoBC,CAA8B,EACxDC,EAAkBH,CAAwB,EAEtCI,EAAeC,EAAA,SAAY,CAC/B,GAAI,CAEF,GADA,MAAMd,IAAW,EACbO,EAAwB,aAAc,CACxC,IAAMQ,EAAO,MAAMJ,EAA8B,CAC/C,cAAeJ,EAAwB,YACzC,CAAC,EACGQ,IACF,MAAMd,IAAY,CAChB,KAAMc,EACN,iBAAkB,SACpB,CAAC,EACDR,EAAwB,kBAAkB,EAE9C,CACF,OAASS,EAAgB,CACnBC,EAAkBD,CAAK,EACzBd,IAAUgB,EAAKF,EAAO,UAAU,CAAC,EAEjCd,IAAU,CACR,MAAOc,EACP,SAAUA,EACV,YAAa,CAAC,CAChB,CAAC,CAEL,CACF,EA1BqB,gBA4BfG,EAAed,GAAY,OACjC,GAAI,CAACc,EACH,MAAM,IAAI,MAAM,4BAA4B,EAG9C,IAAMC,EAAW,GACfX,EAAyB,WACvB,CAACF,EAAwB,WACzBH,EAAM,UAGV,OACEN,EAACqB,EAAA,CACE,GAAGf,EACJ,SAAUgB,EACV,QAAUC,GAAQ,CAChBR,EAAa,EACbT,EAAM,UAAUiB,CAAG,CACrB,EAEC,SAAAlB,EAAO,CACN,iBAAkB,SACpB,CAAC,EACH,CAEJ,CAnEgBW,EAAAf,EAAA","names":["omit","jsx","OnboardingInvite","onSubmit","onSuccess","onError","render","props","components","useFormFields","contractorOnboardingBag","useContractorOnboardingContext","employmentInviteMutation","useEmploymentInvite","employmentInviteMutationAsync","mutationToPromise","handleSubmit","__name","data","error","isStructuredError","omit","CustomButton","disabled","evt"]}
|
package/dist/chunk-HPLRAHY7.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{f as j}from"./chunk-STF3NTPS.js";import{a as q}from"./chunk-WVJDCDGZ.js";import{a as P}from"./chunk-O6H66UM2.js";import{a as p}from"./chunk-EUQH4FU4.js";import{A as _,E as F,G as S,H as w,J as v,O as E,T as O,g as f,i as y,j as d,n as h,o as b,w as g,x as C}from"./chunk-WQ4H5V7U.js";import{d as i}from"./chunk-KQPDXXG3.js";import{a as n}from"./chunk-P37U34EQ.js";import{useMutation as c,useQuery as m}from"@tanstack/react-query";var H=n(e=>{let{client:r}=i();return m({queryKey:["employment",e],retry:!1,enabled:!!e,select:n(({data:t})=>t?.data.employment,"select"),queryFn:n(async()=>{let t=await S({client:r,headers:{Authorization:""},path:{employment_id:e}});if(t.error||!t.data)throw new Error("Failed to fetch employment data");return t},"queryFn")})},"useEmployment"),L=n(e=>{let{client:r}=i();return m({queryKey:["company",e],retry:!1,enabled:!!e,queryFn:n(async()=>{let t=await C({client:r,headers:{Authorization:""},path:{company_id:e}});if(t.error||!t.data)throw new Error("Failed to fetch employment data");return t},"queryFn"),select:n(({data:t})=>t.data.company,"select")})},"useCompany"),G=n(e=>{let{client:r}=i();return m({queryKey:["benefit-offers",e],retry:!1,enabled:!!e,queryFn:n(async()=>h({client:r,path:{employment_id:e}}).then(t=>{if(t.error||!t.data)throw new Error("Failed to fetch benefit offers data");return t}),"queryFn"),select:n(({data:t})=>t?.data?.reduce((s,o)=>({...s,[o.benefit_group.slug]:{value:o.benefit_tier?.slug??"no",...o.benefit_group?.filter?.slug?{filter:o.benefit_group?.filter?.slug}:{}}}),{}),"select")})},"useBenefitOffers"),I=n(()=>{let{client:e}=i();return c({mutationFn:n(r=>O({client:e,headers:{Authorization:""},path:r}),"mutationFn")})},"useEmploymentInvite"),X=n(()=>{let{client:e}=i();return c({mutationFn:n(r=>g({client:e,body:r}),"mutationFn")})},"useCreateReserveInvoice"),Y=n(({countryCode:e,form:r,fieldValues:t,options:s,query:o={},jsonSchemaVersion:a})=>{let{client:l}=i(),x=a?{json_schema_version:a}:{};return m({queryKey:["onboarding-json-schema-form",e,r],retry:!1,queryFn:n(async()=>{let u=await _({client:l,headers:{Authorization:""},path:{country_code:e,form:r},query:{skip_benefits:!0,...o,...x}});if(u.error||!u.data)throw new Error("Failed to fetch onboarding schema");return u},"queryFn"),enabled:s?.queryOptions?.enabled,select:n(({data:u})=>{let R=u?.data||{};return p(R,t,s)},"select")})},"useJSONSchemaForm"),Z=n((e,r,t)=>{let s=t?.jsonSchemaVersion?.benefit_offers_form_schema?{json_schema_version:t.jsonSchemaVersion.benefit_offers_form_schema}:{},{client:o}=i();return m({queryKey:["benefit-offers-schema",e],retry:!1,enabled:!!e,queryFn:n(async()=>{let a=await F({client:o,path:{employment_id:e},query:s});if(a.error||!a.data)throw new Error("Failed to fetch benefit offers schema");return a},"queryFn"),select:n(({data:a})=>{let l=a?.data?.schema||{};return p(l,r,{jsfModify:t?.jsfModify?.benefits})},"select")})},"useBenefitOffersSchema"),$=n(()=>{let{client:e}=i(),r={json_schema_version:1};return c({mutationFn:n(t=>y({client:e,headers:{Authorization:""},body:t,query:{...r}}),"mutationFn")})},"useCreateEmployment"),ee=n((e,r)=>{let{client:t}=i(),s={employment_basic_information_json_schema_version:1,contract_details_json_schema_version:j(r,e)||1};return c({mutationFn:n(({employmentId:o,...a})=>w({client:t,headers:{Authorization:""},body:a,path:{employment_id:o},query:{skip_benefits:!0,...s}}),"mutationFn")})},"useUpdateEmployment"),te=n(e=>{let{client:r}=i();return c({mutationFn:n(({employmentId:t,...s})=>{let o=e?.jsonSchemaVersion?.benefit_offers_form_schema?{json_schema_version:e.jsonSchemaVersion.benefit_offers_form_schema}:{};return b({client:r,body:s,path:{employment_id:t},query:{...o}})},"mutationFn")})},"useUpdateBenefitsOffers"),ne=n(e=>{let{client:r}=i(),{data:t,isLoading:s}=m({...P(r,"onboarding-countries"),select:n(a=>a.data?.data?.filter(l=>l.eor_onboarding).map(l=>({label:l.name,value:l.code}))||[],"select"),enabled:e?.queryOptions?.enabled}),o=p(q.data.schema,{},e);if(t){let a=o.fields.find(l=>l.name==="country");a&&(a.options=t)}return{isLoading:s,selectCountryForm:o}},"useCountriesSchemaField"),re=n(({type:e="spread"})=>{let{client:r}=i();return c({mutationFn:n(t=>(e==="no_spread"?f:E)({client:r,body:t}),"mutationFn")})},"useConvertCurrency"),oe=n(()=>{let{client:e}=i();return c({mutationFn:n(({employmentId:r,...t})=>v({client:e,path:{employment_id:r},body:t}),"mutationFn")})},"useUpsertContractEligibility"),se=n((e,r,t=!0)=>{let{client:s}=i();return m({queryKey:["employment-onboarding-reserves-status",e,r],retry:!1,enabled:t&&!!e&&!!r,queryFn:n(async()=>{let o=await d({client:s,headers:{Authorization:""},path:{company_id:e,employment_id:r}});if(o.error||!o.data)throw new Error("Failed to fetch employment onboarding reserves status");return o},"queryFn"),select:n(({data:o})=>o?.data?.status,"select")})},"useEmploymentOnboardingReservesStatus");export{H as a,L as b,G as c,I as d,X as e,Y as f,Z as g,$ as h,ee as i,te as j,ne as k,re as l,oe as m,se as n};
|
|
2
|
-
//# sourceMappingURL=chunk-HPLRAHY7.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/Onboarding/api.ts"],"sourcesContent":["import { useMutation, useQuery, UseQueryResult } from '@tanstack/react-query';\nimport { FieldValues } from 'react-hook-form';\nimport { Client } from '@/src/client/client';\nimport {\n ConvertCurrencyParams,\n CreateContractEligibilityParams,\n EmploymentCreateParams,\n EmploymentFullParams,\n getIndexBenefitOffer,\n getShowCompany,\n getShowCompanyEmploymentOnboardingReservesStatus,\n getShowEmployment,\n getShowFormCountry,\n getShowSchema,\n patchUpdateEmployment2,\n postConvertRawCurrencyConverter,\n postConvertWithSpreadCurrencyConverter,\n postCreateContractEligibility,\n postCreateEmployment2,\n postCreateRiskReserve,\n postInviteEmploymentInvitation,\n PostInviteEmploymentInvitationData,\n putUpdateBenefitOffer,\n UnifiedEmploymentUpsertBenefitOffersRequest,\n} from '@/src/client';\n\nimport { useClient } from '@/src/context';\nimport { selectCountryStepSchema } from '@/src/flows/Onboarding/json-schemas/selectCountryStep';\nimport { OnboardingFlowProps } from '@/src/flows/Onboarding/types';\nimport {\n JSONSchemaFormResultWithFieldsets,\n JSONSchemaFormType,\n FlowOptions,\n} from '@/src/flows/types';\nimport { getContractDetailsSchemaVersion } from '@/src/flows/Onboarding/utils';\nimport { createHeadlessForm } from '@/src/common/createHeadlessForm';\nimport { countriesOptions } from '@/src/common/api/countries';\n\nexport const useEmployment = (employmentId: string | undefined) => {\n const { client } = useClient();\n\n return useQuery({\n queryKey: ['employment', employmentId],\n retry: false,\n enabled: !!employmentId,\n select: ({ data }) => {\n return data?.data.employment;\n },\n queryFn: async () => {\n const response = await getShowEmployment({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n path: {\n employment_id: employmentId as string,\n },\n });\n\n // If response status is 404 or other error, throw an error to trigger isError\n if (response.error || !response.data) {\n throw new Error('Failed to fetch employment data');\n }\n\n return response;\n },\n });\n};\n\nexport const useCompany = (companyId: string) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['company', companyId],\n retry: false,\n enabled: !!companyId,\n queryFn: async () => {\n const response = await getShowCompany({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n path: {\n company_id: companyId,\n },\n });\n\n if (response.error || !response.data) {\n throw new Error('Failed to fetch employment data');\n }\n\n return response;\n },\n select: ({ data }) => {\n return data.data.company;\n },\n });\n};\n\nexport const useBenefitOffers = (employmentId: string | undefined) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['benefit-offers', employmentId],\n retry: false,\n enabled: !!employmentId,\n queryFn: async () => {\n return getIndexBenefitOffer({\n client: client as Client,\n path: {\n employment_id: employmentId as string,\n },\n }).then((response) => {\n // If response status is 404 or other error, throw an error to trigger isError\n if (response.error || !response.data) {\n throw new Error('Failed to fetch benefit offers data');\n }\n\n return response;\n });\n },\n select: ({ data }) =>\n data?.data?.reduce(\n (acc, item) => {\n return {\n ...acc,\n [item.benefit_group.slug]: {\n value: item.benefit_tier?.slug ?? 'no',\n ...(item.benefit_group?.filter?.slug\n ? { filter: item.benefit_group?.filter?.slug }\n : {}),\n },\n };\n },\n {} as Record<string, { value: string }>,\n ),\n });\n};\n/**\n * Use this hook to invite an employee to the onboarding flow\n * @returns\n */\nexport const useEmploymentInvite = () => {\n const { client } = useClient();\n\n return useMutation({\n mutationFn: (payload: PostInviteEmploymentInvitationData['path']) => {\n return postInviteEmploymentInvitation({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n path: payload,\n });\n },\n });\n};\n\nexport const useCreateReserveInvoice = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: (payload: { employment_slug: string }) => {\n return postCreateRiskReserve({\n client: client as Client,\n body: payload,\n });\n },\n });\n};\n\n/**\n * Use this hook to get the JSON schema form for the onboarding flow\n * @param param0\n * @returns\n */\nexport const useJSONSchemaForm = ({\n countryCode,\n form,\n fieldValues,\n options,\n query = {},\n jsonSchemaVersion,\n}: {\n countryCode: string;\n form: JSONSchemaFormType;\n fieldValues: FieldValues;\n options?: FlowOptions & { queryOptions?: { enabled?: boolean } };\n query?: Record<string, unknown>;\n jsonSchemaVersion?: number | 'latest';\n}): UseQueryResult<JSONSchemaFormResultWithFieldsets> => {\n const { client } = useClient();\n const jsonSchemaQueryParam = jsonSchemaVersion\n ? {\n json_schema_version: jsonSchemaVersion,\n }\n : {};\n return useQuery({\n queryKey: ['onboarding-json-schema-form', countryCode, form],\n retry: false,\n queryFn: async () => {\n const response = await getShowFormCountry({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n path: {\n country_code: countryCode,\n form: form,\n },\n query: {\n skip_benefits: true,\n ...query,\n ...jsonSchemaQueryParam,\n },\n });\n\n // If response status is 404 or other error, throw an error to trigger isError\n if (response.error || !response.data) {\n throw new Error('Failed to fetch onboarding schema');\n }\n\n return response;\n },\n enabled: options?.queryOptions?.enabled,\n select: ({ data }) => {\n const jsfSchema = data?.data || {};\n return createHeadlessForm(jsfSchema, fieldValues, options);\n },\n });\n};\n\nexport const useBenefitOffersSchema = (\n employmentId: string,\n fieldValues: FieldValues,\n options: OnboardingFlowProps['options'],\n) => {\n const jsonSchemaQueryParam = options?.jsonSchemaVersion\n ?.benefit_offers_form_schema\n ? {\n json_schema_version:\n options.jsonSchemaVersion.benefit_offers_form_schema,\n }\n : {};\n const { client } = useClient();\n return useQuery({\n queryKey: ['benefit-offers-schema', employmentId],\n retry: false,\n enabled: !!employmentId,\n queryFn: async () => {\n const response = await getShowSchema({\n client: client as Client,\n path: {\n employment_id: employmentId,\n },\n query: jsonSchemaQueryParam,\n });\n\n // If response status is 404 or other error, throw an error to trigger isError\n if (response.error || !response.data) {\n throw new Error('Failed to fetch benefit offers schema');\n }\n\n return response;\n },\n select: ({ data }) => {\n const jsfSchema = data?.data?.schema || {};\n\n return createHeadlessForm(jsfSchema, fieldValues, {\n jsfModify: options?.jsfModify?.benefits,\n });\n },\n });\n};\n\n/**\n * Use this hook to create an employment\n * @returns\n */\nexport const useCreateEmployment = () => {\n const { client } = useClient();\n // TODO: setting 1 as basic_information only supports v1 for now in the API\n const jsonSchemaQueryParam = {\n json_schema_version: 1,\n };\n return useMutation({\n mutationFn: (payload: EmploymentCreateParams) => {\n return postCreateEmployment2({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n body: payload,\n query: {\n ...jsonSchemaQueryParam,\n },\n });\n },\n });\n};\n\nexport const useUpdateEmployment = (\n countryCode: string,\n options?: OnboardingFlowProps['options'],\n) => {\n const { client } = useClient();\n const jsonSchemaQueryParams = {\n // TODO: setting 1 as basic_information only supports v1 for now in the API\n employment_basic_information_json_schema_version: 1,\n contract_details_json_schema_version:\n getContractDetailsSchemaVersion(options, countryCode) || 1,\n };\n\n return useMutation({\n mutationFn: ({\n employmentId,\n ...payload\n }: EmploymentFullParams & { employmentId: string }) => {\n return patchUpdateEmployment2({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n body: payload,\n path: {\n employment_id: employmentId,\n },\n query: {\n skip_benefits: true,\n ...jsonSchemaQueryParams,\n },\n });\n },\n });\n};\n\nexport const useUpdateBenefitsOffers = (\n options?: OnboardingFlowProps['options'],\n) => {\n const { client } = useClient();\n return useMutation({\n mutationFn: ({\n employmentId,\n ...payload\n }: UnifiedEmploymentUpsertBenefitOffersRequest & {\n employmentId: string;\n }) => {\n const jsonSchemaQueryParam = options?.jsonSchemaVersion\n ?.benefit_offers_form_schema\n ? {\n json_schema_version:\n options.jsonSchemaVersion.benefit_offers_form_schema,\n }\n : {};\n return putUpdateBenefitOffer({\n client: client as Client,\n body: payload,\n path: {\n employment_id: employmentId,\n },\n query: {\n ...jsonSchemaQueryParam,\n },\n });\n },\n });\n};\n\nexport const useCountriesSchemaField = (\n options?: Omit<FlowOptions, 'jsonSchemaVersion'> & {\n queryOptions?: { enabled?: boolean };\n },\n) => {\n const { client } = useClient();\n const { data: countries, isLoading } = useQuery({\n ...countriesOptions(client as Client, 'onboarding-countries'),\n select: (response) => {\n return (\n response.data?.data\n ?.filter((country) => country.eor_onboarding)\n .map((country) => {\n return {\n label: country.name,\n value: country.code,\n };\n }) || []\n );\n },\n enabled: options?.queryOptions?.enabled,\n });\n\n const selectCountryForm = createHeadlessForm(\n selectCountryStepSchema.data.schema,\n {},\n options,\n );\n\n if (countries) {\n const countryField = selectCountryForm.fields.find(\n (field) => field.name === 'country',\n );\n if (countryField) {\n countryField.options = countries;\n }\n }\n\n return {\n isLoading,\n selectCountryForm,\n };\n};\n\nexport const useConvertCurrency = ({\n type = 'spread',\n}: {\n type?: 'spread' | 'no_spread';\n}) => {\n const { client } = useClient();\n return useMutation({\n mutationFn: (payload: ConvertCurrencyParams) => {\n const apiFn =\n type === 'no_spread'\n ? postConvertRawCurrencyConverter\n : postConvertWithSpreadCurrencyConverter;\n return apiFn({\n client: client as Client,\n body: payload,\n });\n },\n });\n};\n\nexport const useUpsertContractEligibility = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: ({\n employmentId,\n ...payload\n }: { employmentId: string } & CreateContractEligibilityParams) => {\n return postCreateContractEligibility({\n client: client as Client,\n path: {\n employment_id: employmentId,\n },\n body: payload,\n });\n },\n });\n};\n\n/**\n * Hook to fetch onboarding reserves status for an employment\n * @param companyId - Company ID\n * @param employmentId - Employment ID\n * @param enabled - Whether the query should be enabled\n * @returns Query result with onboarding reserves status\n */\nexport const useEmploymentOnboardingReservesStatus = (\n companyId: string | undefined,\n employmentId: string | undefined,\n enabled = true,\n) => {\n const { client } = useClient();\n return useQuery({\n queryKey: [\n 'employment-onboarding-reserves-status',\n companyId,\n employmentId,\n ],\n retry: false,\n enabled: enabled && !!companyId && !!employmentId,\n queryFn: async () => {\n const response = await getShowCompanyEmploymentOnboardingReservesStatus({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n path: {\n company_id: companyId as string,\n employment_id: employmentId as string,\n },\n });\n\n if (response.error || !response.data) {\n throw new Error(\n 'Failed to fetch employment onboarding reserves status',\n );\n }\n\n return response;\n },\n select: ({ data }) => data?.data?.status,\n });\n};\n"],"mappings":"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","names":["useMutation","useQuery","useEmployment","__name","employmentId","client","useClient","useQuery","data","response","getShowEmployment","useCompany","companyId","getShowCompany","useBenefitOffers","getIndexBenefitOffer","acc","item","useEmploymentInvite","useMutation","payload","postInviteEmploymentInvitation","useCreateReserveInvoice","postCreateRiskReserve","useJSONSchemaForm","countryCode","form","fieldValues","options","query","jsonSchemaVersion","jsonSchemaQueryParam","getShowFormCountry","jsfSchema","createHeadlessForm","useBenefitOffersSchema","getShowSchema","useCreateEmployment","postCreateEmployment2","useUpdateEmployment","jsonSchemaQueryParams","getContractDetailsSchemaVersion","patchUpdateEmployment2","useUpdateBenefitsOffers","putUpdateBenefitOffer","useCountriesSchemaField","countries","isLoading","countriesOptions","country","selectCountryForm","selectCountryStepSchema","countryField","field","useConvertCurrency","type","postConvertRawCurrencyConverter","postConvertWithSpreadCurrencyConverter","useUpsertContractEligibility","postCreateContractEligibility","useEmploymentOnboardingReservesStatus","enabled","getShowCompanyEmploymentOnboardingReservesStatus"]}
|
package/dist/chunk-RQWB2F74.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as Be}from"./chunk-J5I5ZSW3.js";import{a as qe}from"./chunk-VAIBLWOY.js";import{b as Ve,c as Pe,f as xe,g as Oe,h as Me,i as Re,j as ve,k as we,m as Te,n as Le}from"./chunk-HPLRAHY7.js";import{a as ge,b as Ee,c as Ce,d as Fe,f as he}from"./chunk-STF3NTPS.js";import{a as ke}from"./chunk-YIOLMWB5.js";import{e as C,f as T,h as $}from"./chunk-I3DVKJCW.js";import{h as M}from"./chunk-VIGKOVHP.js";import{a as w}from"./chunk-X6ZAR7ZL.js";import{a as De}from"./chunk-TSPDJUGG.js";import{a as o}from"./chunk-P37U34EQ.js";import{useCallback as Ft,useEffect as ht,useMemo as p,useRef as Vt,useState as Ie}from"react";import Pt from"lodash.mergewith";import{createContext as yt,useContext as _t,useMemo as St,useCallback as bt,useRef as gt}from"react";import{jsx as Et}from"react/jsx-runtime";var Je=yt(void 0);function Tt({children:r}){let u=gt({}),c=bt(a=>{u.current={...u.current,...a}},[]),F=St(()=>({errorContextRef:u,updateContext:c}),[c]);return Et(Je.Provider,{value:F,children:r})}o(Tt,"ErrorContextProvider");var je=o(()=>{let r=_t(Je);if(!r)throw new Error("useErrorContext must be used within ErrorContextProvider");return r},"useErrorContext");import{useEffect as Ne,useMemo as Ct}from"react";function Ae(r){let{updateContext:u,errorContextRef:c}=je();return Ne(()=>{r&&(c.current=r)},[]),Ne(()=>()=>{c.current={}},[c]),{...Ct(()=>({updateErrorContext:o(a=>{u(a)},"updateErrorContext"),clearErrorContext:o(()=>{c.current={}},"clearErrorContext")}),[]),errorContext:c}}o(Ae,"useErrorReporting");import{jsx as Ue}from"react/jsx-runtime";var xt={employment_basic_information:"basic_information",contract_details:"contract_details"},Ot={select_country:null,basic_information:"employment_basic_information",contract_details:"contract_details",benefits:null,review:null},Mt=o(({isLoadingBasicInformationForm:r,isLoadingContractDetailsForm:u,isLoadingEmployment:c,isLoadingBenefitsOffersSchema:F,isLoadingBenefitOffers:a,isLoadingCompany:N,isLoadingCountries:R,employmentStatus:s,employmentId:L,currentStepName:A,basicInformationFields:I,contractDetailsFields:y})=>{let t=r||u||c||F||a||N||R,k=s&&Ce.includes(s),U=s&&!Fe.includes(s),D=!!(L&&k&&A!=="review"),v=t||D,B=!!(D&&!t&&I.length>0&&y.length>0);return{isLoading:v,isNavigatingToReview:B,isEmploymentReadOnly:k,canInvite:U}},"getLoadingStates"),Zt=o(({employmentId:r,companyId:u,countryCode:c,type:F,options:a,skipSteps:N,externalId:R,initialValues:s})=>{let{updateErrorContext:L}=Ae({flow:"onboarding",metadata:{employmentId:r,companyId:u,isUpdating:!!r}}),A=N?.includes("select_country")?Ee:ge,I=Ft(e=>{L({step:e.name})},[L]),{fieldValues:y,stepState:t,setFieldValues:k,previousStep:U,nextStep:D,goToStep:v,setStepValues:B}=De(A,I),q=Vt({select_country:{},basic_information:{},contract_details:{},benefits:{}}),[l,He]=Ie(r),[d,z]=Ie(c||null),{data:m,isLoading:K,refetch:We}=ke({employmentId:l,queryParams:{exclude_files:!0}});r&&m?.country?.code&&!d&&z(m.country.code);let{data:Q,isLoading:Y}=Pe(l),{data:J,isLoading:X,refetch:Ge}=Ve(u),$e=a?.features?.includes("onboarding_reserves")&&t.currentStep.name==="review"||!1,{data:ze}=Le(u,l,$e),{selectCountryForm:j,isLoading:Z}=we({jsfModify:a?.jsfModify?.select_country,queryOptions:{enabled:t.currentStep.name==="select_country"}}),ee=Me(),te=Re(d,a),ne=ve(a),oe=Te(),{mutateAsync:Ke}=w(ee),{mutateAsync:re}=w(te),{mutateAsync:Qe}=w(ne),{mutateAsync:Ye}=w(oe),Xe=Ot[t.currentStep.name]||"employment_basic_information",Ze=xt[Xe],et=m?.[Ze]||{},ae=o(({form:e,options:i={},query:f={},jsonSchemaVersion:O})=>{let W=Object.keys(y).length>0?{...s,...t.values?.[t.currentStep.name],...y}:{...s,...et};return xe({countryCode:d,form:e,fieldValues:W,query:f,options:{...i,queryOptions:{enabled:i.queryOptions?.enabled??!0}},jsonSchemaVersion:O})},"useJSONSchema"),tt=!!(d&&(t.currentStep.name==="basic_information"||r)),nt=!!(d&&(t.currentStep.name==="contract_details"||r)),{data:_,isLoading:ie}=ae({form:"employment_basic_information",options:{jsfModify:a?.jsfModify?.basic_information,queryOptions:{enabled:tt}},jsonSchemaVersion:1}),h=a?.jsfModify?.contract_details?.fields?.annual_gross_salary,H=h&&typeof h=="object"&&"presentation"in h?h.presentation:void 0,se=a?.jsfModify?.contract_details?.fields?.equity_compensation,ot=p(()=>({fields:{annual_gross_salary:{...h,presentation:{annual_gross_salary_conversion_properties:{label:H?.annual_gross_salary_conversion_properties?.label,description:H?.annual_gross_salary_conversion_properties?.description},desiredCurrency:J?.desired_currency,Component:o(e=>Ue(Be,{desiredCurrency:J?.desired_currency||"",...e}),"Component")}},equity_compensation:{...se,presentation:{calculateDynamicProperties:o((e,i)=>{let f=e.equity_compensation?.offer_equity_compensation,O=i?.meta?.cost;return{extra:Ue(qe,{offerEquity:f,equityCost:O})}},"calculateDynamicProperties")}}}}),[h,H,J?.desired_currency,se]),rt=he(a,d),{data:S,isLoading:ce}=ae({form:"contract_details",query:{employment_id:l},options:{jsfModify:{...a?.jsfModify?.contract_details,fields:{...a?.jsfModify?.contract_details?.fields,...ot.fields}},queryOptions:{enabled:nt}},jsonSchemaVersion:rt}),{data:g,isLoading:le}=Oe(l,y,a),de=p(()=>{if(t.currentStep.name==="benefits"){let e={...t.values?.[t.currentStep.name],...y};return Pt({},Q,e)}return{}},[t.currentStep.name,Q,t.values,y]),n=p(()=>({select_country:j?.fields||[],basic_information:_?.fields||[],contract_details:S?.fields||[],benefits:g?.fields||[],review:[]}),[j?.fields,_?.fields,S?.fields,g?.fields]),at={select_country:null,basic_information:_?.meta["x-jsf-fieldsets"],contract_details:S?.meta["x-jsf-fieldsets"],benefits:null,review:null},{country:it,basic_information:ue={},contract_details:me={},status:fe}=m||{},pe=it?.code,ye=t.currentStep.name,V=p(()=>T(n.select_country,{country:d||pe||""}),[n.select_country,d,pe]),P=p(()=>{let e={...s,...ue};return T(n.basic_information,e)},[n.basic_information,ue,s]),E=p(()=>{let e={...s,...me};return T(n.contract_details,e)},[n.contract_details,me,s]),x=p(()=>{let e={...s,...de};return T(n.benefits,e)},[n.benefits,de,s]),st=p(()=>m?{select_country:V,basic_information:$(n.basic_information,P),contract_details:m?.contract_details!==null?$(n.contract_details,E):E,benefits:x}:{select_country:V,basic_information:P,contract_details:E,benefits:x},[V,P,E,x,m,n]),{isLoading:ct,isNavigatingToReview:_e,isEmploymentReadOnly:lt,canInvite:dt}=p(()=>Mt({isLoadingBasicInformationForm:ie,isLoadingContractDetailsForm:ce,isLoadingEmployment:K,isLoadingBenefitsOffersSchema:le,isLoadingBenefitOffers:Y,isLoadingCompany:X,isLoadingCountries:Z,employmentId:r,employmentStatus:fe,basicInformationFields:n.basic_information,contractDetailsFields:n.contract_details,currentStepName:ye}),[ie,ce,K,le,Y,X,Z,r,fe,n.basic_information,n.contract_details,ye]);ht(()=>{_e&&(q.current={select_country:M(V,n.select_country),basic_information:M(P,n.basic_information),contract_details:M(E,n.contract_details),benefits:M(x,n.benefits)},B({select_country:V,basic_information:P,contract_details:E,benefits:x,review:{}}),v("review"))},[P,x,E,v,_e,V,B,n.basic_information,n.benefits,n.contract_details,n.select_country]);let Se=o(async e=>j&&t.currentStep.name==="select_country"?e:_&&t.currentStep.name==="basic_information"?await C(e,_?.fields,{isPartialValidation:!1}):S&&t.currentStep.name==="contract_details"?await C(e,S?.fields,{isPartialValidation:!1}):g&&t.currentStep.name==="benefits"?await C(e,g?.fields,{isPartialValidation:!1}):{},"parseFormValues");async function ut(e){let i=t.currentStep.name;i in q.current&&(q.current[i]=M(e,n[i]));let f=await Se(e);switch(Ge(),t.currentStep.name){case"select_country":return z(f.country),Promise.resolve({data:{countryCode:f.country}});case"basic_information":{let O=!l&&d,be=l&&d&&m?.country&&m?.country.code!==d;if(O||be){let W={basic_information:f,type:F,country_code:d,external_id:R};try{let b=await Ke(W);if(b.error)return b;if(b.data){let G=b.data?.data?.employment?.id;return G&&(He(G),await Ye({employmentId:G,eligible_to_work_in_residing_country:"citizen",employer_or_work_restrictions:!1})),b}}catch(b){throw console.error("Error creating onboarding:",b),b}}else if(l)return re({employmentId:l,basic_information:f,pricing_plan_details:{frequency:"monthly"},external_id:R});return}case"contract_details":return re({employmentId:l,external_id:R,...{contract_details:f,pricing_plan_details:{frequency:"monthly"}}});case"benefits":return Qe({employmentId:l,...f})}}o(ut,"onSubmit");function mt(){U()}o(mt,"back");function ft(){D()}o(ft,"next");function pt(e){v(e)}return o(pt,"goTo"),{employmentId:l,creditRiskStatus:J?.default_legal_entity_credit_risk_status,onboardingReservesStatus:ze,fieldValues:y,stepState:t,fields:n[t.currentStep.name],isLoading:ct,isSubmitting:ee.isPending||te.isPending||ne.isPending||oe.isPending,initialValues:st,handleValidation:o(async e=>{if(t.currentStep.name==="select_country")return j.handleValidation(e);if(t.currentStep.name==="benefits"&&g){let i=await C(e,g?.fields,{isPartialValidation:!1});return g?.handleValidation(i)}if(_&&t.currentStep.name==="basic_information"){let i=await C(e,_?.fields,{isPartialValidation:!1});return _?.handleValidation(i)}if(S&&t.currentStep.name==="contract_details"){let i=await C(e,S?.fields,{isPartialValidation:!1});return S?.handleValidation(i)}return null},"handleValidation"),checkFieldUpdates:k,parseFormValues:Se,onSubmit:ut,back:mt,next:ft,goTo:pt,meta:{fields:q.current,fieldsets:at[t.currentStep.name]},refetchEmployment:We,employment:m,isEmploymentReadOnly:lt,canInvite:dt}},"useOnboarding");export{Je as a,Tt as b,Zt as c};
|
|
2
|
-
//# sourceMappingURL=chunk-RQWB2F74.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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"]}
|
package/dist/chunk-SDDJBGXV.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"]}
|
package/dist/chunk-STF3NTPS.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./chunk-P37U34EQ.js";var c={select_country:{index:0,name:"select_country"},basic_information:{index:1,name:"basic_information"},contract_details:{index:2,name:"contract_details"},benefits:{index:3,name:"benefits"},review:{index:4,name:"review"}},d={basic_information:{index:0,name:"basic_information"},contract_details:{index:1,name:"contract_details"},benefits:{index:2,name:"benefits"},review:{index:3,name:"review"}},m=["invited","created_awaiting_reserve","created_reserve_paid"],l=["created_awaiting_reserve","invited"],s=1,r=e(()=>s,"getDefaultContractDetailsSchemaVersion"),p=e((o,t)=>{let i=o?.jsonSchemaVersionByCountry,n=t?i?.[t]?.contract_details:void 0;return n||r()},"getContractDetailsSchemaVersion");export{c as a,d as b,m as c,l as d,s as e,p as f};
|
|
2
|
-
//# sourceMappingURL=chunk-STF3NTPS.js.map
|
package/dist/chunk-VZ5BGG3N.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
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
|
package/dist/chunk-Y2S7WYMO.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
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
|