@remoteoss/remote-flows 0.27.0 → 0.29.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/{ZendeskTriggerButton-DIV8pCPo.d.ts → ZendeskTriggerButton-Dditzyfj.d.ts} +15 -0
- package/dist/{chunk-DZ67OJVF.js → chunk-25U3HC77.js} +2 -2
- package/dist/{chunk-PFT7KJ65.js → chunk-2FZWM6RV.js} +2 -2
- package/dist/{chunk-RAHCZTQ3.js → chunk-2RBD2MJR.js} +2 -2
- package/dist/{chunk-UFBTCHEI.js → chunk-3PTV5YSQ.js} +2 -2
- package/dist/{chunk-HFI2MD3H.js → chunk-3WE5QB4I.js} +2 -2
- package/dist/chunk-43IIMISK.js +2 -0
- package/dist/chunk-43IIMISK.js.map +1 -0
- package/dist/chunk-5Y2RV54X.js +2 -0
- package/dist/chunk-5Y2RV54X.js.map +1 -0
- package/dist/{chunk-SA74WAVS.js → chunk-6IKJCDQU.js} +2 -2
- package/dist/{chunk-R64X3EJF.js → chunk-7JPHJ7SQ.js} +2 -2
- package/dist/{chunk-LRGEEPGK.js → chunk-AWJUS6JD.js} +1 -1
- package/dist/{chunk-LRGEEPGK.js.map → chunk-AWJUS6JD.js.map} +1 -1
- package/dist/{chunk-UTBVLDKY.js → chunk-BSUVUGJG.js} +2 -2
- package/dist/{chunk-QLNFHOLH.js → chunk-CCL5LNHC.js} +2 -2
- package/dist/{chunk-ANQ4HVVK.js → chunk-CDRDLO4A.js} +1 -1
- package/dist/{chunk-ANQ4HVVK.js.map → chunk-CDRDLO4A.js.map} +1 -1
- package/dist/{chunk-LRNSFLHR.js → chunk-CEJ24TSW.js} +2 -2
- package/dist/{chunk-WNTOQYRY.js → chunk-CHAHQRMM.js} +2 -2
- package/dist/{chunk-BMDZJNJV.js → chunk-E5VV7WAZ.js} +2 -2
- package/dist/chunk-EHS4ERDW.js +2 -0
- package/dist/chunk-EHS4ERDW.js.map +1 -0
- package/dist/{chunk-WLBRCGTG.js → chunk-FHQWEM5E.js} +2 -2
- package/dist/{chunk-VLLLNIMN.js → chunk-FTCLM4RE.js} +2 -2
- package/dist/{chunk-VM2DQCZO.js → chunk-GEHM46QD.js} +2 -2
- package/dist/{chunk-SB3IYODL.js → chunk-GWJZTMF4.js} +2 -2
- package/dist/{chunk-E3JFQ7PH.js → chunk-I4XJ764Y.js} +2 -2
- package/dist/{chunk-BO6OKTIG.js → chunk-I5XGKYJR.js} +2 -2
- package/dist/chunk-ID3ZF7QT.js +2 -0
- package/dist/chunk-ID3ZF7QT.js.map +1 -0
- package/dist/{chunk-R645TMO5.js → chunk-IJQDK7KG.js} +2 -2
- package/dist/{chunk-L6FZRTSN.js → chunk-K2I7ZL3Z.js} +2 -2
- package/dist/{chunk-7Y46DL2U.js → chunk-LA6ZJLTB.js} +2 -2
- package/dist/{chunk-RINDVT6U.js → chunk-LAYZ6XET.js} +2 -2
- package/dist/chunk-LWZIOOPO.js +2 -0
- package/dist/chunk-LWZIOOPO.js.map +1 -0
- package/dist/{chunk-NRW33IP5.js → chunk-M22INAKM.js} +2 -2
- package/dist/{chunk-YXWBSRKS.js → chunk-MAVVGCUM.js} +2 -2
- package/dist/{chunk-A2SWQS2N.js → chunk-MB6ZGX2O.js} +2 -2
- package/dist/{chunk-XP7UEI56.js → chunk-NW5EBNKN.js} +2 -2
- package/dist/chunk-NX7MM6XR.js +2 -0
- package/dist/chunk-NX7MM6XR.js.map +1 -0
- package/dist/{chunk-746ELT2W.js → chunk-NZHJMUIX.js} +2 -2
- package/dist/chunk-NZHJMUIX.js.map +1 -0
- package/dist/{chunk-CVIWZYO3.js → chunk-PJY4TN7I.js} +2 -2
- package/dist/{chunk-W55MUSAS.js → chunk-PXX2JSFI.js} +2 -2
- package/dist/{chunk-GD5556B2.js → chunk-QFK2SD24.js} +2 -2
- package/dist/chunk-QM7J43SC.js +2 -0
- package/dist/chunk-QM7J43SC.js.map +1 -0
- package/dist/{chunk-5NPET4ZO.js → chunk-QU4ZTSMT.js} +2 -2
- package/dist/{chunk-N6G4VZXF.js → chunk-RR55GUDT.js} +2 -2
- package/dist/{chunk-N6G4VZXF.js.map → chunk-RR55GUDT.js.map} +1 -1
- package/dist/{chunk-AYLYOLVG.js → chunk-S3KOROEZ.js} +2 -2
- package/dist/{chunk-FEHSJUZJ.js → chunk-SRYUZSIK.js} +2 -2
- package/dist/{chunk-LDJT7TII.js → chunk-T2UJOEUA.js} +2 -2
- package/dist/chunk-TKAZTT3M.js +2 -0
- package/dist/chunk-TKAZTT3M.js.map +1 -0
- package/dist/chunk-UXVCNSHK.js +2 -0
- package/dist/chunk-UXVCNSHK.js.map +1 -0
- package/dist/{chunk-TUFTB5UD.js → chunk-UYHBV7QJ.js} +2 -2
- package/dist/chunk-VDRNNOVA.js +2 -0
- package/dist/chunk-VDRNNOVA.js.map +1 -0
- package/dist/{chunk-4ZGIL6OE.js → chunk-WHVPDECD.js} +2 -2
- package/dist/chunk-XOA7GG4P.js +2 -0
- package/dist/{chunk-E6OBNWMU.js → chunk-ZJ7524CZ.js} +2 -2
- package/dist/chunk-ZPBKMAKR.js +2 -0
- package/dist/chunk-ZPBKMAKR.js.map +1 -0
- package/dist/chunk-ZXGAFQXW.js +2 -0
- package/dist/chunk-ZXGAFQXW.js.map +1 -0
- package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.d.ts +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentFlow.d.ts +3 -3
- package/dist/flows/ContractAmendment/ContractAmendmentFlow.js +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentForm.d.ts +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentForm.js +1 -1
- package/dist/flows/ContractAmendment/context.d.ts +3 -3
- package/dist/flows/ContractAmendment/hooks.d.ts +3 -3
- package/dist/flows/ContractAmendment/index.d.ts +3 -3
- package/dist/flows/ContractAmendment/index.js +1 -1
- package/dist/flows/ContractAmendment/utils.d.ts +1 -1
- package/dist/flows/ContractorOnboarding/ContractorOnboarding.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/ContractorOnboarding.js +1 -1
- package/dist/flows/ContractorOnboarding/api.d.ts +2 -2
- package/dist/flows/ContractorOnboarding/components/BasicInformationStep.d.ts +4 -4
- package/dist/flows/ContractorOnboarding/components/BasicInformationStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.js +1 -1
- package/dist/flows/ContractorOnboarding/components/OnboardingInvite.d.ts +3 -3
- package/dist/flows/ContractorOnboarding/components/OnboardingInvite.js +1 -1
- package/dist/flows/ContractorOnboarding/components/PricingPlan.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/components/PricingPlan.js +1 -1
- package/dist/flows/ContractorOnboarding/components/SelectCountryStep.d.ts +4 -4
- package/dist/flows/ContractorOnboarding/components/SelectCountryStep.js +1 -1
- package/dist/flows/ContractorOnboarding/context.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/hooks.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/hooks.js +1 -1
- package/dist/flows/ContractorOnboarding/index.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/index.js +1 -1
- package/dist/flows/ContractorOnboarding/types.d.ts +5 -5
- package/dist/flows/CostCalculator/CostCalculatorFlow.d.ts +3 -3
- package/dist/flows/CostCalculator/CostCalculatorFlow.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorForm.d.ts +3 -3
- package/dist/flows/CostCalculator/CostCalculatorForm.js +1 -1
- package/dist/flows/CostCalculator/EstimationResults/EstimationResults.d.ts +1 -1
- package/dist/flows/CostCalculator/EstimationResults/EstimationResults.js +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorBenefitsBreakdown.js +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorContributionsBreakdown.js +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorExtraStatutoryPaymentsBreakdown.js +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorGrossSalary.js +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorResults.d.ts +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorResults.js +1 -1
- package/dist/flows/CostCalculator/SummaryResults/SummaryResults.d.ts +1 -1
- package/dist/flows/CostCalculator/api.d.ts +1 -1
- package/dist/flows/CostCalculator/components/SalaryField.d.ts +2 -2
- package/dist/flows/CostCalculator/components/SalaryField.js +1 -1
- package/dist/flows/CostCalculator/context.d.ts +3 -3
- package/dist/flows/CostCalculator/hooks.d.ts +3 -3
- package/dist/flows/CostCalculator/hooks.js +1 -1
- package/dist/flows/CostCalculator/index.d.ts +3 -3
- package/dist/flows/CostCalculator/index.js +1 -1
- package/dist/flows/CostCalculator/types.d.ts +1 -1
- package/dist/flows/CostCalculator/utils.d.ts +3 -3
- package/dist/flows/CostCalculator/utils.js +1 -1
- package/dist/flows/Onboarding/OnboardingFlow.d.ts +4 -4
- package/dist/flows/Onboarding/OnboardingFlow.js +1 -1
- package/dist/flows/Onboarding/api.d.ts +7 -7
- package/dist/flows/Onboarding/api.js +1 -1
- package/dist/flows/Onboarding/components/AnnualGrossSalary.d.ts +2 -2
- package/dist/flows/Onboarding/components/AnnualGrossSalary.js +1 -1
- package/dist/flows/Onboarding/components/BasicInformationStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/BasicInformationStep.js +1 -1
- package/dist/flows/Onboarding/components/BenefitsStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/BenefitsStep.js +1 -1
- package/dist/flows/Onboarding/components/ContractDetailsStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/ContractDetailsStep.js +1 -1
- package/dist/flows/Onboarding/components/OnboardingForm.d.ts +4 -4
- package/dist/flows/Onboarding/components/OnboardingForm.js +1 -1
- package/dist/flows/Onboarding/components/OnboardingInvite.d.ts +3 -3
- package/dist/flows/Onboarding/components/OnboardingInvite.js +1 -1
- package/dist/flows/Onboarding/components/ReviewStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/SaveDraftButton.d.ts +3 -3
- package/dist/flows/Onboarding/components/SelectCountryStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/SelectCountryStep.js +1 -1
- package/dist/flows/Onboarding/context.d.ts +4 -4
- package/dist/flows/Onboarding/hooks.d.ts +4 -4
- package/dist/flows/Onboarding/hooks.js +1 -1
- package/dist/flows/Onboarding/index.d.ts +4 -4
- package/dist/flows/Onboarding/index.js +1 -1
- package/dist/flows/Onboarding/types.d.ts +4 -4
- package/dist/flows/Onboarding/utils.d.ts +5 -5
- package/dist/flows/Onboarding/utils.js +1 -1
- package/dist/flows/Termination/AdditionalDetailsForm.d.ts +4 -4
- package/dist/flows/Termination/AdditionalDetailsForm.js +1 -1
- package/dist/flows/Termination/EmployeeComunicationForm.d.ts +4 -4
- package/dist/flows/Termination/EmployeeComunicationForm.js +1 -1
- package/dist/flows/Termination/PaidTimeOffForm.d.ts +4 -4
- package/dist/flows/Termination/PaidTimeOffForm.js +1 -1
- package/dist/flows/Termination/TerminationDetailsForm.d.ts +4 -4
- package/dist/flows/Termination/TerminationDetailsForm.js +1 -1
- package/dist/flows/Termination/TerminationFlow.d.ts +4 -4
- package/dist/flows/Termination/TerminationFlow.js +1 -1
- package/dist/flows/Termination/TerminationForm.d.ts +4 -4
- package/dist/flows/Termination/TerminationForm.js +1 -1
- package/dist/flows/Termination/components/AcknowledgeInformation/AcknowledgeInformationFees.js +1 -1
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOff.d.ts +5 -5
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOff.js +1 -1
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.d.ts +5 -5
- package/dist/flows/Termination/components/PaidTimeOff/types.d.ts +5 -5
- package/dist/flows/Termination/components/TerminationDialogInfoContent/TerminationDialogInfoContent.js +1 -1
- package/dist/flows/Termination/context.d.ts +6 -6
- package/dist/flows/Termination/hooks.d.ts +5 -5
- package/dist/flows/Termination/hooks.js +1 -1
- package/dist/flows/Termination/index.d.ts +6 -6
- package/dist/flows/Termination/index.js +1 -1
- package/dist/flows/Termination/json-schemas/employeeComunication.js +1 -1
- package/dist/flows/Termination/json-schemas/jsonSchema.d.ts +2 -0
- package/dist/flows/Termination/json-schemas/jsonSchema.js +1 -1
- package/dist/flows/Termination/json-schemas/paidTimeOff.d.ts +1 -0
- package/dist/flows/Termination/json-schemas/paidTimeOff.js +1 -1
- package/dist/flows/Termination/json-schemas/schema.js +1 -1
- package/dist/flows/Termination/json-schemas/terminationDetails.d.ts +1 -0
- package/dist/flows/Termination/json-schemas/terminationDetails.js +1 -1
- package/dist/flows/Termination/types.d.ts +4 -4
- package/dist/flows/api.d.ts +4 -4
- package/dist/flows/api.js +1 -1
- package/dist/index.d.ts +9 -9
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internals.d.ts +1 -1
- package/dist/internals.js +1 -1
- package/dist/{mutations-C0KsEf83.d.ts → mutations-B3zY0Z8j.d.ts} +1 -1
- package/dist/{remoteFlows-DJcvCgN2.d.ts → remoteFlows-C6LQCoUj.d.ts} +1 -1
- package/dist/{types-CwUhT-vz.d.ts → types-CXFW77uu.d.ts} +2 -2
- package/dist/{types-1tGveWWg.d.ts → types-C_aEj_4p.d.ts} +6 -5
- package/dist/{types-Dad_rgYV.d.ts → types-D0Gtn_LU.d.ts} +23 -16
- package/dist/{types-DegHPy8Q.d.ts → types-DRI6kPSl.d.ts} +4 -4
- package/dist/{types.gen-B73oMrmZ.d.ts → types.gen-B1wPsyg7.d.ts} +1 -1
- package/package.json +1 -1
- package/dist/chunk-4T6PRR6R.js +0 -2
- package/dist/chunk-4T6PRR6R.js.map +0 -1
- package/dist/chunk-746ELT2W.js.map +0 -1
- package/dist/chunk-FB2QGVI2.js +0 -2
- package/dist/chunk-FB2QGVI2.js.map +0 -1
- package/dist/chunk-GC23RRCI.js +0 -2
- package/dist/chunk-GC23RRCI.js.map +0 -1
- package/dist/chunk-KOIHMAAP.js +0 -2
- package/dist/chunk-L3C4AHZJ.js +0 -2
- package/dist/chunk-L3C4AHZJ.js.map +0 -1
- package/dist/chunk-N3EIN72T.js +0 -2
- package/dist/chunk-N3EIN72T.js.map +0 -1
- package/dist/chunk-OXCEJQFC.js +0 -2
- package/dist/chunk-OXCEJQFC.js.map +0 -1
- package/dist/chunk-R3LY6TV5.js +0 -2
- package/dist/chunk-R3LY6TV5.js.map +0 -1
- package/dist/chunk-SLMJEZJ7.js +0 -2
- package/dist/chunk-SLMJEZJ7.js.map +0 -1
- package/dist/chunk-WZAWPSKS.js +0 -2
- package/dist/chunk-WZAWPSKS.js.map +0 -1
- package/dist/chunk-ZIPHLBX4.js +0 -2
- package/dist/chunk-ZIPHLBX4.js.map +0 -1
- package/dist/chunk-ZY5U2UNT.js +0 -2
- package/dist/chunk-ZY5U2UNT.js.map +0 -1
- /package/dist/{chunk-DZ67OJVF.js.map → chunk-25U3HC77.js.map} +0 -0
- /package/dist/{chunk-PFT7KJ65.js.map → chunk-2FZWM6RV.js.map} +0 -0
- /package/dist/{chunk-RAHCZTQ3.js.map → chunk-2RBD2MJR.js.map} +0 -0
- /package/dist/{chunk-UFBTCHEI.js.map → chunk-3PTV5YSQ.js.map} +0 -0
- /package/dist/{chunk-HFI2MD3H.js.map → chunk-3WE5QB4I.js.map} +0 -0
- /package/dist/{chunk-SA74WAVS.js.map → chunk-6IKJCDQU.js.map} +0 -0
- /package/dist/{chunk-R64X3EJF.js.map → chunk-7JPHJ7SQ.js.map} +0 -0
- /package/dist/{chunk-UTBVLDKY.js.map → chunk-BSUVUGJG.js.map} +0 -0
- /package/dist/{chunk-QLNFHOLH.js.map → chunk-CCL5LNHC.js.map} +0 -0
- /package/dist/{chunk-LRNSFLHR.js.map → chunk-CEJ24TSW.js.map} +0 -0
- /package/dist/{chunk-WNTOQYRY.js.map → chunk-CHAHQRMM.js.map} +0 -0
- /package/dist/{chunk-BMDZJNJV.js.map → chunk-E5VV7WAZ.js.map} +0 -0
- /package/dist/{chunk-WLBRCGTG.js.map → chunk-FHQWEM5E.js.map} +0 -0
- /package/dist/{chunk-VLLLNIMN.js.map → chunk-FTCLM4RE.js.map} +0 -0
- /package/dist/{chunk-VM2DQCZO.js.map → chunk-GEHM46QD.js.map} +0 -0
- /package/dist/{chunk-SB3IYODL.js.map → chunk-GWJZTMF4.js.map} +0 -0
- /package/dist/{chunk-E3JFQ7PH.js.map → chunk-I4XJ764Y.js.map} +0 -0
- /package/dist/{chunk-BO6OKTIG.js.map → chunk-I5XGKYJR.js.map} +0 -0
- /package/dist/{chunk-R645TMO5.js.map → chunk-IJQDK7KG.js.map} +0 -0
- /package/dist/{chunk-L6FZRTSN.js.map → chunk-K2I7ZL3Z.js.map} +0 -0
- /package/dist/{chunk-7Y46DL2U.js.map → chunk-LA6ZJLTB.js.map} +0 -0
- /package/dist/{chunk-RINDVT6U.js.map → chunk-LAYZ6XET.js.map} +0 -0
- /package/dist/{chunk-NRW33IP5.js.map → chunk-M22INAKM.js.map} +0 -0
- /package/dist/{chunk-YXWBSRKS.js.map → chunk-MAVVGCUM.js.map} +0 -0
- /package/dist/{chunk-A2SWQS2N.js.map → chunk-MB6ZGX2O.js.map} +0 -0
- /package/dist/{chunk-XP7UEI56.js.map → chunk-NW5EBNKN.js.map} +0 -0
- /package/dist/{chunk-CVIWZYO3.js.map → chunk-PJY4TN7I.js.map} +0 -0
- /package/dist/{chunk-W55MUSAS.js.map → chunk-PXX2JSFI.js.map} +0 -0
- /package/dist/{chunk-GD5556B2.js.map → chunk-QFK2SD24.js.map} +0 -0
- /package/dist/{chunk-5NPET4ZO.js.map → chunk-QU4ZTSMT.js.map} +0 -0
- /package/dist/{chunk-AYLYOLVG.js.map → chunk-S3KOROEZ.js.map} +0 -0
- /package/dist/{chunk-FEHSJUZJ.js.map → chunk-SRYUZSIK.js.map} +0 -0
- /package/dist/{chunk-LDJT7TII.js.map → chunk-T2UJOEUA.js.map} +0 -0
- /package/dist/{chunk-TUFTB5UD.js.map → chunk-UYHBV7QJ.js.map} +0 -0
- /package/dist/{chunk-4ZGIL6OE.js.map → chunk-WHVPDECD.js.map} +0 -0
- /package/dist/{chunk-KOIHMAAP.js.map → chunk-XOA7GG4P.js.map} +0 -0
- /package/dist/{chunk-E6OBNWMU.js.map → chunk-ZJ7524CZ.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/Termination/hooks.tsx","../src/components/form/jsf-utils/createFields.tsx"],"sourcesContent":["import { $TSFixMe, createHeadlessForm } from '@remoteoss/json-schema-form';\nimport omitBy from 'lodash.omitby';\nimport isNull from 'lodash.isnull';\nimport { format } from 'date-fns';\nimport { useMemo } from 'react';\nimport {\n CreateOffboardingParams,\n TerminationDetailsParams,\n} from '@/src/client';\nimport { mutationToPromise } from '@/src/lib/mutations';\nimport { parseJSFToValidate } from '@/src/components/form/utils';\nimport {\n TerminationFlowProps,\n TerminationFormValues,\n} from '@/src/flows/Termination/types';\nimport omit from 'lodash.omit';\nimport { parseFormRadioValues } from '@/src/flows/utils';\nimport { useStepState } from '@/src/flows/useStepState';\nimport { STEPS } from '@/src/flows/Termination/utils';\nimport { jsonSchema } from '@/src/flows/Termination/json-schemas/jsonSchema';\nimport { useCreateTermination, useTerminationSchema } from '@/src/flows/api';\nimport { createInformationField } from '@/src/components/form/jsf-utils/createFields';\nimport { cn, ZendeskTriggerButton } from '@/src/internals';\nimport { zendeskArticles } from '@/src/components/shared/zendesk-drawer/utils';\nimport { PaidTimeOff } from '@/src/flows/Termination/components/PaidTimeOff/PaidTimeOff';\nimport { PaidTimeOffContainer } from '@/src/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer';\nimport { useEmploymentQuery } from '@/src/common/api';\nimport { AcknowledgeInformationContainer } from '@/src/flows/Termination/components/AcknowledgeInformation/AcknowledgeInfomationContainer';\nimport { AcknowledgeInformation } from '@/src/flows/Termination/components/AcknowledgeInformation/AcknowledgeInformation';\nimport { AcknowledgeInformationFees } from '@/src/flows/Termination/components/AcknowledgeInformation/AcknowledgeInformationFees';\n\nfunction buildInitialValues(\n stepsInitialValues: Partial<TerminationFormValues>,\n): TerminationFormValues {\n const initialValues: TerminationFormValues = {\n confidential: '',\n customer_informed_employee: '',\n customer_informed_employee_date: '',\n customer_informed_employee_description: '',\n personal_email: '',\n termination_reason: undefined,\n reason_description: '',\n termination_reason_files: [],\n will_challenge_termination: '',\n will_challenge_termination_description: null,\n agrees_to_pto_amount: '',\n agrees_to_pto_amount_notes: null,\n acknowledge_termination_procedure: false,\n additional_comments: '',\n proposed_termination_date: '',\n risk_assessment_reasons: [],\n timesheet_file: undefined,\n ...stepsInitialValues,\n };\n\n return initialValues;\n}\n\ntype TerminationHookProps = Omit<TerminationFlowProps, 'render'>;\n\nexport const useTermination = ({\n employmentId,\n options,\n initialValues: terminationInitialValues,\n}: TerminationHookProps) => {\n const { fieldValues, setFieldValues, stepState, previousStep, nextStep } =\n useStepState<keyof typeof STEPS, TerminationFormValues>(STEPS);\n\n const { data: employment } = useEmploymentQuery({ employmentId });\n\n const initialValues = buildInitialValues({\n ...stepState.values?.employee_communication,\n ...stepState.values?.termination_details,\n ...stepState.values?.paid_time_off,\n ...stepState.values?.additional_information,\n ...terminationInitialValues,\n });\n\n const formValues = useMemo(\n () => ({\n ...stepState.values?.[stepState.currentStep.name as keyof typeof STEPS], // Restore values for the current step\n ...initialValues,\n ...fieldValues,\n }),\n [stepState.values, stepState.currentStep.name, fieldValues, initialValues],\n );\n\n const customFields = useMemo(() => {\n return {\n fields: {\n risk_assesment_info: createInformationField(\n 'Offboarding risk assessment',\n 'Employees may be protected from termination if they fall into certain categories. To help avoid claims from employees, let us know if the employee is part of one or more of these categories. Select all that apply.',\n {\n className: (\n options?.jsfModify?.fields?.risk_assesment_info as $TSFixMe\n )?.['x-jsf-presentation']?.className,\n },\n ),\n proposed_termination_date_info: createInformationField(\n 'Proposed termination date',\n <>\n In most cases, we must provide notice to the employee before\n termination. The required notice period depends on local labor laws,\n the employment agreement, and other factors. We'll use those factors\n to determine the required notice period.\n <ZendeskTriggerButton\n external\n zendeskId={zendeskArticles.terminationNoticePeriods}\n className={cn(\n 'text-sm',\n (\n options?.jsfModify?.fields\n ?.proposed_termination_date_info as $TSFixMe\n )?.['x-jsf-presentation']?.zendeskTriggerButtonClassName,\n )}\n >\n Learn about notice periods\n </ZendeskTriggerButton>\n </>,\n {\n className: (\n options?.jsfModify?.fields\n ?.proposed_termination_date_info as $TSFixMe\n )?.['x-jsf-presentation']?.className,\n },\n ),\n proposed_termination_date: {\n ...(options?.jsfModify?.fields\n ?.proposed_termination_date as $TSFixMe),\n 'x-jsf-presentation': {\n ...(\n options?.jsfModify?.fields?.proposed_termination_date as $TSFixMe\n )?.['x-jsf-presentation'],\n minDate: format(new Date(), 'yyyy-MM-dd'),\n },\n },\n paid_time_off_info: {\n ...(options?.jsfModify?.fields?.paid_time_off_info as $TSFixMe),\n 'x-jsf-presentation': {\n ...(options?.jsfModify?.fields?.paid_time_off_info as $TSFixMe)?.[\n 'x-jsf-presentation'\n ],\n Component: () => {\n const CustomComponent = (\n options?.jsfModify?.fields?.paid_time_off_info as $TSFixMe\n )?.['x-jsf-presentation']?.Component;\n\n return (\n <PaidTimeOffContainer\n employeeName={employment?.basic_information?.name as string}\n proposedTerminationDate={formValues.proposed_termination_date}\n employmentId={employmentId}\n employment={employment}\n render={(props) => {\n if (CustomComponent) {\n return <CustomComponent {...props} />;\n }\n return <PaidTimeOff {...props} />;\n }}\n />\n );\n },\n },\n },\n acknowledge_termination_procedure_info: {\n ...(options?.jsfModify?.fields\n ?.acknowledge_termination_procedure_info as $TSFixMe),\n 'x-jsf-presentation': {\n ...(\n options?.jsfModify?.fields\n ?.acknowledge_termination_procedure_info as $TSFixMe\n )?.['x-jsf-presentation'],\n Component: () => {\n const CustomComponent = (\n options?.jsfModify?.fields\n ?.acknowledge_termination_procedure_info as $TSFixMe\n )?.['x-jsf-presentation']?.Component;\n\n return (\n <AcknowledgeInformationContainer\n render={(props) => {\n if (CustomComponent) {\n return <CustomComponent {...props} />;\n }\n return <AcknowledgeInformation {...props} />;\n }}\n />\n );\n },\n },\n },\n acknowledge_termination_procedure_fees_info: {\n ...(options?.jsfModify?.fields\n ?.acknowledge_termination_procedure_fees_info as $TSFixMe),\n 'x-jsf-presentation': {\n ...(\n options?.jsfModify?.fields\n ?.acknowledge_termination_procedure_fees_info as $TSFixMe\n )?.['x-jsf-presentation'],\n Component: () => {\n const zendeskIds = {\n involuntaryOffboardingServiceChargeZendeskId:\n zendeskArticles.involuntaryOffboardingServiceCharge,\n reconciliationInvoiceZendeskId:\n zendeskArticles.reconciliationInvoice,\n };\n\n const CustomComponent = (\n options?.jsfModify?.fields\n ?.acknowledge_termination_procedure_fees_info as $TSFixMe\n )?.['x-jsf-presentation']?.Component;\n\n if (CustomComponent) {\n return <CustomComponent {...zendeskIds} />;\n }\n\n return <AcknowledgeInformationFees {...zendeskIds} />;\n },\n },\n },\n },\n };\n }, [\n options?.jsfModify?.fields?.risk_assesment_info,\n options?.jsfModify?.fields?.proposed_termination_date_info,\n options?.jsfModify?.fields?.proposed_termination_date,\n options?.jsfModify?.fields?.paid_time_off_info,\n options?.jsfModify?.fields?.acknowledge_termination_procedure_info,\n options?.jsfModify?.fields?.acknowledge_termination_procedure_fees_info,\n employment,\n formValues.proposed_termination_date,\n employmentId,\n ]);\n\n const { data: terminationHeadlessForm, isLoading: isLoadingTermination } =\n useTerminationSchema({\n formValues: formValues,\n jsfModify: {\n ...options?.jsfModify,\n fields: {\n ...options?.jsfModify?.fields,\n ...customFields?.fields,\n },\n },\n step: stepState.currentStep.name,\n });\n\n const entireTerminationSchema = createHeadlessForm(jsonSchema.data.schema);\n\n const createTermination = useCreateTermination();\n const { mutateAsync } = mutationToPromise(createTermination);\n\n async function onSubmit(values: TerminationFormValues) {\n if (!employmentId) {\n throw new Error('Employment id is missing');\n }\n\n if (terminationHeadlessForm) {\n // this is a hack because I need to validate all form values with the entire schema\n const parsedValues = parseJSFToValidate(\n values,\n entireTerminationSchema.fields,\n { isPartialValidation: true },\n );\n\n const { customer_informed_employee: customerInformedEmployee } =\n parsedValues;\n\n const employeeAwareness =\n customerInformedEmployee === 'yes'\n ? {\n employee_awareness: {\n date: parsedValues.customer_informed_employee_date,\n note: parsedValues.customer_informed_employee_description,\n },\n }\n : undefined;\n\n const radioFieldKeys = [\n 'agrees_to_pto_amount',\n 'confidential',\n 'customer_informed_employee',\n 'will_challenge_termination',\n ];\n\n const parsedRadioValues = parseFormRadioValues(\n parsedValues,\n radioFieldKeys,\n );\n\n const normalizedValues = omit(\n parsedRadioValues,\n 'customer_informed_employee_date',\n 'customer_informed_employee_description',\n );\n\n const terminationDetails: TerminationDetailsParams = omitBy(\n {\n ...normalizedValues,\n ...employeeAwareness,\n },\n isNull,\n ) as unknown as TerminationDetailsParams;\n\n const terminationPayload: CreateOffboardingParams = {\n employment_id: employmentId,\n termination_details: terminationDetails,\n type: 'termination',\n };\n\n return mutateAsync(terminationPayload);\n }\n\n return;\n }\n\n function back() {\n previousStep();\n }\n\n function next() {\n nextStep();\n }\n\n return {\n /**\n * Employment id passed useful to be used between components\n */\n employmentId,\n /**\n * Current step state containing the current step and total number of steps\n */\n stepState,\n /**\n * Array of form fields from the contract amendment schema\n */\n fields: terminationHeadlessForm?.fields || [],\n /**\n * Loading state indicating if the termination schema is being fetched\n */\n isLoading: isLoadingTermination,\n /**\n * Loading state indicating if a contract amendment mutation is in progress\n */\n isSubmitting: createTermination.isPending,\n /**\n * Initial form values\n */\n initialValues: initialValues,\n /**\n * Function to validate form values against the contract amendment schema\n * @param values - Form values to validate\n * @returns Validation result or null if no schema is available\n */\n handleValidation: (values: TerminationFormValues) => {\n if (terminationHeadlessForm) {\n const parsedValues = parseJSFToValidate(\n values,\n terminationHeadlessForm?.fields,\n );\n return terminationHeadlessForm?.handleValidation(parsedValues);\n }\n return null;\n },\n /**\n * Function to update the current form field values\n * @param values - New form values to set\n */\n checkFieldUpdates: (values: Partial<TerminationFormValues>) => {\n if (entireTerminationSchema) {\n const parsedValues = parseJSFToValidate(\n values,\n entireTerminationSchema?.fields,\n { isPartialValidation: true },\n );\n setFieldValues(parsedValues as TerminationFormValues);\n }\n },\n /**\n * Function to parse form values before submission\n * @param values - Form values to parse\n * @returns Parsed form values\n */\n parseFormValues: (values: TerminationFormValues) => {\n return parseJSFToValidate(values, entireTerminationSchema.fields, {\n isPartialValidation: true,\n });\n },\n /**\n * Function to handle form submission\n * @param values - Form values to submit\n * @returns Promise resolving to the mutation result\n */\n onSubmit,\n\n /**\n * Function to handle going back to the previous step\n * @returns {void}\n */\n back,\n\n /**\n * Function to handle going to the next step\n * @returns {void}\n */\n next,\n };\n};\n","import { cn } from '@/src/lib/utils';\nimport { $TSFixMe } from '@/src/types/remoteFlows';\n\ntype JSFPresentationConfig = {\n inputType?: string;\n Component?: React.ComponentType<$TSFixMe>;\n hidden?: boolean;\n [key: string]: unknown;\n};\n\ntype JSFFieldConfig = {\n 'x-jsf-presentation'?: JSFPresentationConfig;\n [key: string]: unknown;\n};\n\n/**\n * Creates an information field with standard styling\n */\nexport function createInformationField(\n title: React.ReactNode,\n description: React.ReactNode,\n options?: {\n className?: string;\n },\n): JSFFieldConfig {\n return {\n 'x-jsf-presentation': {\n inputType: 'hidden',\n Component: () => (\n <div\n className={cn(\n 'RemoteFlows__InformationStatement',\n options?.className,\n )}\n >\n <h3 className={cn('RemoteFlows__InformationStatement__Title')}>\n {title}\n </h3>\n <p className={cn('RemoteFlows__InformationStatement__Description')}>\n {description}\n </p>\n </div>\n ),\n },\n };\n}\n"],"mappings":"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","names":["createHeadlessForm","omitBy","isNull","format","useMemo","omit","jsx","jsxs","createInformationField","title","description","options","__name","cn","Fragment","jsx","jsxs","buildInitialValues","stepsInitialValues","__name","useTermination","employmentId","options","terminationInitialValues","fieldValues","setFieldValues","stepState","previousStep","nextStep","useStepState","STEPS","employment","useEmploymentQuery","initialValues","formValues","useMemo","customFields","createInformationField","ZendeskTriggerButton","zendeskArticles","cn","format","CustomComponent","PaidTimeOffContainer","props","PaidTimeOff","AcknowledgeInformationContainer","AcknowledgeInformation","zendeskIds","AcknowledgeInformationFees","terminationHeadlessForm","isLoadingTermination","useTerminationSchema","entireTerminationSchema","createHeadlessForm","jsonSchema","createTermination","useCreateTermination","mutateAsync","mutationToPromise","onSubmit","values","parsedValues","parseJSFToValidate","customerInformedEmployee","employeeAwareness","parsedRadioValues","parseFormRadioValues","normalizedValues","omit","terminationDetails","omitBy","isNull","back","next"]}
|
package/dist/chunk-FB2QGVI2.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var e={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"}},t={basic_information:{index:0,name:"basic_information"},contract_details:{index:1,name:"contract_details"},benefits:{index:2,name:"benefits"},review:{index:3,name:"review"}},n=["invited","created_awaiting_reserve","created_reserve_paid"],i=["created_awaiting_reserve","invited"];export{e as a,t as b,n as c,i as d};
|
|
2
|
-
//# sourceMappingURL=chunk-FB2QGVI2.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/Onboarding/utils.ts"],"sourcesContent":["import { Employment } from '@/src/flows/Onboarding/types';\nimport { Step } from '@/src/flows/useStepState';\n\ntype StepKeys =\n | 'select_country'\n | 'basic_information'\n | 'contract_details'\n | 'benefits'\n | 'review';\n\nexport const STEPS: Record<StepKeys, Step<StepKeys>> = {\n select_country: {\n index: 0,\n name: 'select_country',\n },\n basic_information: { index: 1, name: 'basic_information' },\n contract_details: { index: 2, name: 'contract_details' },\n benefits: { index: 3, name: 'benefits' },\n review: { index: 4, name: 'review' },\n} as const;\n\nexport const STEPS_WITHOUT_SELECT_COUNTRY: Record<\n Exclude<StepKeys, 'select_country'>,\n Step<Exclude<StepKeys, 'select_country'>>\n> = {\n basic_information: { index: 0, name: 'basic_information' },\n contract_details: { index: 1, name: 'contract_details' },\n benefits: { index: 2, name: 'benefits' },\n review: { index: 3, name: 'review' },\n} as const;\n\n/**\n * Array of employment statuses that are allowed to proceed to the review step.\n * These statuses indicate that the employment is in a final state and the employment cannot be modified further.\n * @type {Employment['status'][]}\n * @constant\n */\nexport const reviewStepAllowedEmploymentStatus: Employment['status'][] = [\n 'invited',\n 'created_awaiting_reserve',\n 'created_reserve_paid',\n];\n\nexport const disabledInviteButtonEmploymentStatus: Employment['status'][] = [\n 'created_awaiting_reserve',\n 'invited',\n];\n"],"mappings":"AAUO,IAAMA,EAA0C,CACrD,eAAgB,CACd,MAAO,EACP,KAAM,gBACR,EACA,kBAAmB,CAAE,MAAO,EAAG,KAAM,mBAAoB,EACzD,iBAAkB,CAAE,MAAO,EAAG,KAAM,kBAAmB,EACvD,SAAU,CAAE,MAAO,EAAG,KAAM,UAAW,EACvC,OAAQ,CAAE,MAAO,EAAG,KAAM,QAAS,CACrC,EAEaC,EAGT,CACF,kBAAmB,CAAE,MAAO,EAAG,KAAM,mBAAoB,EACzD,iBAAkB,CAAE,MAAO,EAAG,KAAM,kBAAmB,EACvD,SAAU,CAAE,MAAO,EAAG,KAAM,UAAW,EACvC,OAAQ,CAAE,MAAO,EAAG,KAAM,QAAS,CACrC,EAQaC,EAA4D,CACvE,UACA,2BACA,sBACF,EAEaC,EAA+D,CAC1E,2BACA,SACF","names":["STEPS","STEPS_WITHOUT_SELECT_COUNTRY","reviewStepAllowedEmploymentStatus","disabledInviteButtonEmploymentStatus"]}
|
package/dist/chunk-GC23RRCI.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var e={data:{version:7,schema:{additionalProperties:!1,allOf:[{if:{properties:{will_challenge_termination:{const:"yes"}},required:["will_challenge_termination"]},then:{properties:{will_challenge_termination_description:{type:"string"}},required:["will_challenge_termination_description"]},else:{properties:{will_challenge_termination_description:!1}}}],properties:{termination_reason:{title:"Termination reason",description:"Make sure you choose an accurate termination reason to avoid unfair or unlawful dismissal claims.",type:"string",oneOf:[{const:"gross_misconduct",title:"Gross misconduct"},{const:"performance",title:"Performance"},{const:"workforce_reduction",title:"Workforce Reduction"},{const:"values",title:"Values"},{const:"compliance_issue",title:"Compliance issue"},{const:"incapacity_to_perform_inherent_duties",title:"Incapacity To perform inherent duties"},{const:"mutual_agreement",title:"Mutual agreement"},{const:"cancellation_before_start_date",title:"Decision to cancel hiring before the employee starts"},{const:"job_abandonment",title:"Job abandonment"},{const:"dissatisfaction_with_remote_service",title:"Dissatisfaction with EOR service"},{const:"end_of_fixed_term_contract_compliance_issue",title:"End of fixed-term contract"},{const:"other",title:"Other"}],"x-jsf-presentation":{inputType:"select"}},reason_description:{description:"",maxLength:1e3,title:"Termination reason details",type:"string","x-jsf-presentation":{inputType:"textarea"}},additional_comments:{description:"",maxLength:1e3,title:"Additional details regarding this termination process.",type:"string","x-jsf-presentation":{inputType:"textarea"}},termination_reason_files:{description:"Please upload any supporting documents regarding the termination reason.",title:"Termination reason files",type:"string","x-jsf-presentation":{inputType:"file",accept:".pdf",multiple:!0}},risk_assesment_info:{description:"",title:"Risk assessment info",type:"null","x-jsf-presentation":{inputType:"hidden"}},risk_assessment_reasons:{description:"",title:"This employee is...",type:"array",items:{anyOf:[{const:"sick_leave",title:"Currently on or recently returned from sick leave"},{const:"family_leave",title:"Currently on or recently returned from maternity, paternity, or other family leave"},{const:"pregnant_or_breastfeeding",title:"Pregnant or breastfeeding"},{const:"requested_medical_or_family_leave",title:"Requested medical or family leave"},{const:"disabled_or_health_condition",title:"Disabled or has a health condition"},{const:"member_of_union_or_works_council",title:"A member of a union or works council"},{const:"caring_responsibilities",title:"Caring responsibilities"},{const:"reported_concerns_with_workplace",title:"Reported any wrongdoing; raised any allegations of discrimination, harassment, retaliation, etc.; or asserted their employment rights or raised complaints about their working conditions"},{const:"none_of_these",title:"To the best of my knowledge, I am not aware of any of these"}]},"x-jsf-presentation":{inputType:"checkbox",direction:"column"}},will_challenge_termination:{description:"",oneOf:[{const:"yes",description:"",title:"Yes"},{const:"no",description:"",title:"No"}],title:"Do you consider it is likely that the employee will challenge their termination?",type:"string","x-jsf-presentation":{direction:"column",inputType:"radio"}},will_challenge_termination_description:{description:"",maxLength:1e3,title:"Please explain how the employee will challenge their termination",type:["string","null"],"x-jsf-presentation":{inputType:"textarea"}},proposed_termination_date_info:{description:"",title:"Proposed termination date info",type:"null","x-jsf-presentation":{inputType:"hidden"}},proposed_termination_date:{description:"",format:"date",maxLength:255,title:"Proposed termination date",type:"string","x-jsf-presentation":{inputType:"date"}}},required:["termination_reason","reason_description","risk_assessment_reasons","will_challenge_termination","proposed_termination_date"],type:"object","x-jsf-order":["termination_reason","reason_description","additional_comments","termination_reason_files","risk_assesment_info","risk_assessment_reasons","will_challenge_termination","will_challenge_termination_description","proposed_termination_date_info","proposed_termination_date"]}}};export{e as a};
|
|
2
|
-
//# sourceMappingURL=chunk-GC23RRCI.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/Termination/json-schemas/terminationDetails.ts"],"sourcesContent":["export const terminationDetailsSchema = {\n data: {\n version: 7,\n schema: {\n additionalProperties: false,\n allOf: [\n {\n if: {\n properties: {\n will_challenge_termination: {\n const: 'yes',\n },\n },\n required: ['will_challenge_termination'],\n },\n then: {\n properties: {\n will_challenge_termination_description: {\n type: 'string',\n },\n },\n required: ['will_challenge_termination_description'],\n },\n else: {\n properties: {\n will_challenge_termination_description: false,\n },\n },\n },\n ],\n properties: {\n termination_reason: {\n title: 'Termination reason',\n description:\n 'Make sure you choose an accurate termination reason to avoid unfair or unlawful dismissal claims.',\n type: 'string',\n oneOf: [\n {\n const: 'gross_misconduct',\n title: 'Gross misconduct',\n },\n {\n const: 'performance',\n title: 'Performance',\n },\n {\n const: 'workforce_reduction',\n title: 'Workforce Reduction',\n },\n {\n const: 'values',\n title: 'Values',\n },\n {\n const: 'compliance_issue',\n title: 'Compliance issue',\n },\n {\n const: 'incapacity_to_perform_inherent_duties',\n title: 'Incapacity To perform inherent duties',\n },\n {\n const: 'mutual_agreement',\n title: 'Mutual agreement',\n },\n {\n const: 'cancellation_before_start_date',\n title: 'Decision to cancel hiring before the employee starts',\n },\n {\n const: 'job_abandonment',\n title: 'Job abandonment',\n },\n {\n const: 'dissatisfaction_with_remote_service',\n title: 'Dissatisfaction with EOR service',\n },\n {\n const: 'end_of_fixed_term_contract_compliance_issue',\n title: 'End of fixed-term contract',\n },\n {\n const: 'other',\n title: 'Other',\n },\n ],\n 'x-jsf-presentation': {\n inputType: 'select',\n },\n },\n reason_description: {\n description: '',\n maxLength: 1000,\n title: 'Termination reason details',\n type: 'string',\n 'x-jsf-presentation': {\n inputType: 'textarea',\n },\n },\n additional_comments: {\n description: '',\n maxLength: 1000,\n title: 'Additional details regarding this termination process.',\n type: 'string',\n 'x-jsf-presentation': {\n inputType: 'textarea',\n },\n },\n termination_reason_files: {\n description:\n 'Please upload any supporting documents regarding the termination reason.',\n title: 'Termination reason files',\n type: 'string',\n 'x-jsf-presentation': {\n inputType: 'file',\n accept: '.pdf',\n multiple: true,\n },\n },\n risk_assesment_info: {\n description: '',\n title: 'Risk assessment info',\n type: 'null',\n 'x-jsf-presentation': {\n inputType: 'hidden',\n },\n },\n risk_assessment_reasons: {\n description: '',\n title: 'This employee is...',\n type: 'array',\n items: {\n anyOf: [\n {\n const: 'sick_leave',\n title: 'Currently on or recently returned from sick leave',\n },\n {\n const: 'family_leave',\n title:\n 'Currently on or recently returned from maternity, paternity, or other family leave',\n },\n {\n const: 'pregnant_or_breastfeeding',\n title: 'Pregnant or breastfeeding',\n },\n {\n const: 'requested_medical_or_family_leave',\n title: 'Requested medical or family leave',\n },\n {\n const: 'disabled_or_health_condition',\n title: 'Disabled or has a health condition',\n },\n {\n const: 'member_of_union_or_works_council',\n title: 'A member of a union or works council',\n },\n {\n const: 'caring_responsibilities',\n title: 'Caring responsibilities',\n },\n {\n const: 'reported_concerns_with_workplace',\n title:\n 'Reported any wrongdoing; raised any allegations of discrimination, harassment, retaliation, etc.; or asserted their employment rights or raised complaints about their working conditions',\n },\n {\n const: 'none_of_these',\n title:\n 'To the best of my knowledge, I am not aware of any of these',\n },\n ],\n },\n 'x-jsf-presentation': {\n inputType: 'checkbox',\n direction: 'column',\n },\n },\n will_challenge_termination: {\n description: '',\n oneOf: [\n {\n const: 'yes',\n description: '',\n title: 'Yes',\n },\n {\n const: 'no',\n description: '',\n title: 'No',\n },\n ],\n title:\n 'Do you consider it is likely that the employee will challenge their termination?',\n type: 'string',\n 'x-jsf-presentation': {\n direction: 'column',\n inputType: 'radio',\n },\n },\n will_challenge_termination_description: {\n description: '',\n maxLength: 1000,\n title:\n 'Please explain how the employee will challenge their termination',\n type: ['string', 'null'],\n 'x-jsf-presentation': {\n inputType: 'textarea',\n },\n },\n proposed_termination_date_info: {\n description: '',\n title: 'Proposed termination date info',\n type: 'null',\n 'x-jsf-presentation': {\n inputType: 'hidden',\n },\n },\n proposed_termination_date: {\n description: '',\n format: 'date',\n maxLength: 255,\n title: 'Proposed termination date',\n type: 'string',\n 'x-jsf-presentation': {\n inputType: 'date',\n },\n },\n },\n required: [\n 'termination_reason',\n 'reason_description',\n 'risk_assessment_reasons',\n 'will_challenge_termination',\n 'proposed_termination_date',\n ],\n type: 'object',\n 'x-jsf-order': [\n 'termination_reason',\n 'reason_description',\n 'additional_comments',\n 'termination_reason_files',\n 'risk_assesment_info',\n 'risk_assessment_reasons',\n 'will_challenge_termination',\n 'will_challenge_termination_description',\n 'proposed_termination_date_info',\n 'proposed_termination_date',\n ],\n },\n },\n};\n"],"mappings":"AAAO,IAAMA,EAA2B,CACtC,KAAM,CACJ,QAAS,EACT,OAAQ,CACN,qBAAsB,GACtB,MAAO,CACL,CACE,GAAI,CACF,WAAY,CACV,2BAA4B,CAC1B,MAAO,KACT,CACF,EACA,SAAU,CAAC,4BAA4B,CACzC,EACA,KAAM,CACJ,WAAY,CACV,uCAAwC,CACtC,KAAM,QACR,CACF,EACA,SAAU,CAAC,wCAAwC,CACrD,EACA,KAAM,CACJ,WAAY,CACV,uCAAwC,EAC1C,CACF,CACF,CACF,EACA,WAAY,CACV,mBAAoB,CAClB,MAAO,qBACP,YACE,oGACF,KAAM,SACN,MAAO,CACL,CACE,MAAO,mBACP,MAAO,kBACT,EACA,CACE,MAAO,cACP,MAAO,aACT,EACA,CACE,MAAO,sBACP,MAAO,qBACT,EACA,CACE,MAAO,SACP,MAAO,QACT,EACA,CACE,MAAO,mBACP,MAAO,kBACT,EACA,CACE,MAAO,wCACP,MAAO,uCACT,EACA,CACE,MAAO,mBACP,MAAO,kBACT,EACA,CACE,MAAO,iCACP,MAAO,sDACT,EACA,CACE,MAAO,kBACP,MAAO,iBACT,EACA,CACE,MAAO,sCACP,MAAO,kCACT,EACA,CACE,MAAO,8CACP,MAAO,4BACT,EACA,CACE,MAAO,QACP,MAAO,OACT,CACF,EACA,qBAAsB,CACpB,UAAW,QACb,CACF,EACA,mBAAoB,CAClB,YAAa,GACb,UAAW,IACX,MAAO,6BACP,KAAM,SACN,qBAAsB,CACpB,UAAW,UACb,CACF,EACA,oBAAqB,CACnB,YAAa,GACb,UAAW,IACX,MAAO,yDACP,KAAM,SACN,qBAAsB,CACpB,UAAW,UACb,CACF,EACA,yBAA0B,CACxB,YACE,2EACF,MAAO,2BACP,KAAM,SACN,qBAAsB,CACpB,UAAW,OACX,OAAQ,OACR,SAAU,EACZ,CACF,EACA,oBAAqB,CACnB,YAAa,GACb,MAAO,uBACP,KAAM,OACN,qBAAsB,CACpB,UAAW,QACb,CACF,EACA,wBAAyB,CACvB,YAAa,GACb,MAAO,sBACP,KAAM,QACN,MAAO,CACL,MAAO,CACL,CACE,MAAO,aACP,MAAO,mDACT,EACA,CACE,MAAO,eACP,MACE,oFACJ,EACA,CACE,MAAO,4BACP,MAAO,2BACT,EACA,CACE,MAAO,oCACP,MAAO,mCACT,EACA,CACE,MAAO,+BACP,MAAO,oCACT,EACA,CACE,MAAO,mCACP,MAAO,sCACT,EACA,CACE,MAAO,0BACP,MAAO,yBACT,EACA,CACE,MAAO,mCACP,MACE,2LACJ,EACA,CACE,MAAO,gBACP,MACE,6DACJ,CACF,CACF,EACA,qBAAsB,CACpB,UAAW,WACX,UAAW,QACb,CACF,EACA,2BAA4B,CAC1B,YAAa,GACb,MAAO,CACL,CACE,MAAO,MACP,YAAa,GACb,MAAO,KACT,EACA,CACE,MAAO,KACP,YAAa,GACb,MAAO,IACT,CACF,EACA,MACE,mFACF,KAAM,SACN,qBAAsB,CACpB,UAAW,SACX,UAAW,OACb,CACF,EACA,uCAAwC,CACtC,YAAa,GACb,UAAW,IACX,MACE,mEACF,KAAM,CAAC,SAAU,MAAM,EACvB,qBAAsB,CACpB,UAAW,UACb,CACF,EACA,+BAAgC,CAC9B,YAAa,GACb,MAAO,iCACP,KAAM,OACN,qBAAsB,CACpB,UAAW,QACb,CACF,EACA,0BAA2B,CACzB,YAAa,GACb,OAAQ,OACR,UAAW,IACX,MAAO,4BACP,KAAM,SACN,qBAAsB,CACpB,UAAW,MACb,CACF,CACF,EACA,SAAU,CACR,qBACA,qBACA,0BACA,6BACA,2BACF,EACA,KAAM,SACN,cAAe,CACb,qBACA,qBACA,sBACA,2BACA,sBACA,0BACA,6BACA,yCACA,iCACA,2BACF,CACF,CACF,CACF","names":["terminationDetailsSchema"]}
|
package/dist/chunk-KOIHMAAP.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./chunk-GC23RRCI.js";import{a as i}from"./chunk-LMYJ6V44.js";import{a as o}from"./chunk-N6G4VZXF.js";import{a as m}from"./chunk-4T6PRR6R.js";var p={employee_communication:o,termination_details:e,paid_time_off:m,additional_information:i};export{p as a};
|
|
2
|
-
//# sourceMappingURL=chunk-KOIHMAAP.js.map
|
package/dist/chunk-L3C4AHZJ.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as Le}from"./chunk-VAIBLWOY.js";import{a as Te}from"./chunk-UTBVLDKY.js";import{a as Ce,b as Oe,c as Pe,d as Me}from"./chunk-FB2QGVI2.js";import{a as ue,b as ye,c as pe,f as _e,g as Se,h as be,i as ge,j as Fe,l as Ee,n as he}from"./chunk-LRGEEPGK.js";import{a as R}from"./chunk-2YTBWEC7.js";import{a as Ve}from"./chunk-PJBAQZ6G.js";import{c as h,d as L,f as W}from"./chunk-PAQW5BFW.js";import{g as V}from"./chunk-43WMZDDH.js";import{a as l}from"./chunk-P37U34EQ.js";import{useEffect as ot,useMemo as d,useRef as it,useState as je}from"react";import st from"lodash.mergewith";import{jsx as ke}from"react/jsx-runtime";var at={employment_basic_information:"basic_information",contract_details:"contract_details"},rt={select_country:null,basic_information:"employment_basic_information",contract_details:"contract_details",benefits:null,review:null},ct=l(({isLoadingBasicInformationForm:f,isLoadingContractDetailsForm:I,isLoadingEmployment:J,isLoadingBenefitsOffersSchema:N,isLoadingBenefitOffers:o,isLoadingCompany:A,isLoadingCountries:C,employmentStatus:s,employmentId:_,currentStepName:a,basicInformationFields:D,contractDetailsFields:c})=>{let O=f||I||J||N||o||A||C,r=s&&Pe.includes(s),j=s&&!Me.includes(s),k=!!(_&&r&&a!=="review"),w=O||k,B=!!(k&&!O&&D.length>0&&c.length>0);return{isLoading:w,isNavigatingToReview:B,isEmploymentReadOnly:r,canInvite:j}},"getLoadingStates"),Ft=l(({employmentId:f,companyId:I,countryCode:J,type:N,options:o,skipSteps:A,externalId:C,initialValues:s})=>{let _=it({select_country:{},basic_information:{},contract_details:{},benefits:{}}),[a,D]=je(f),[c,O]=je(J||null),{data:r,isLoading:j,refetch:k}=ue(a);f&&r?.country?.code&&!c&&O(r.country.code);let{data:w,isLoading:B}=pe(a),{data:q,isLoading:G,refetch:we}=ye(I),Be=A?.includes("select_country")?Oe:Ce,{fieldValues:S,stepState:n,setFieldValues:qe,previousStep:ve,nextStep:Re,goToStep:U,setStepValues:$}=Ve(Be),{selectCountryForm:v,isLoading:z}=Ee({jsfModify:o?.jsfModify?.select_country,jsonSchemaVersion:o?.jsonSchemaVersion,queryOptions:{enabled:n.currentStep.name==="select_country"}}),K=be(o),Y=ge(o),Q=Fe(o),Ie=he(),{mutateAsync:Je}=R(K),{mutateAsync:X}=R(Y),{mutateAsync:Ne}=R(Q),Ae=rt[n.currentStep.name]||"employment_basic_information",De=at[Ae],Ue=r?.[De]||{},Z=l(({form:e,options:i={},query:m={}})=>{let H=Object.keys(S).length>0?{...s,...n.values?.[n.currentStep.name],...S}:{...s,...Ue};return _e({countryCode:c,form:e,fieldValues:H,query:m,options:{...i,queryOptions:{enabled:i.queryOptions?.enabled??!0},jsonSchemaVersion:i.jsonSchemaVersion}})},"useJSONSchema"),xe=!!(c&&(n.currentStep.name==="basic_information"||f)),He=!!(c&&(n.currentStep.name==="contract_details"||f)),{data:u,isLoading:ee}=Z({form:"employment_basic_information",options:{jsfModify:o?.jsfModify?.basic_information,jsonSchemaVersion:o?.jsonSchemaVersion,queryOptions:{enabled:xe}}}),b=o?.jsfModify?.contract_details?.fields?.annual_gross_salary,x=b&&typeof b=="object"&&"presentation"in b?b.presentation:void 0,te=o?.jsfModify?.contract_details?.fields?.equity_compensation,We=d(()=>({fields:{annual_gross_salary:{...b,presentation:{annual_gross_salary_conversion_properties:{label:x?.annual_gross_salary_conversion_properties?.label,description:x?.annual_gross_salary_conversion_properties?.description},desiredCurrency:q?.desired_currency,Component:l(e=>ke(Te,{desiredCurrency:q?.desired_currency||"",...e}),"Component")}},equity_compensation:{...te,presentation:{calculateDynamicProperties:l((e,i)=>{let m=e.equity_compensation?.offer_equity_compensation,M=i?.meta?.cost;return{extra:ke(Le,{offerEquity:m,equityCost:M})}},"calculateDynamicProperties")}}}}),[b,x,q?.desired_currency,te]),{data:y,isLoading:ne}=Z({form:"contract_details",query:{employment_id:a},options:{jsfModify:{...o?.jsfModify?.contract_details,fields:{...o?.jsfModify?.contract_details?.fields,...We.fields}},queryOptions:{enabled:He},jsonSchemaVersion:o?.jsonSchemaVersion}}),{data:P,isLoading:oe}=Se(a,S,o),ie=d(()=>{if(n.currentStep.name==="benefits"){let e={...n.values?.[n.currentStep.name],...S};return st({},w,e)}return{}},[n.currentStep.name,w,n.values,S]),t=d(()=>({select_country:v?.fields||[],basic_information:u?.fields||[],contract_details:y?.fields||[],benefits:P?.fields||[],review:[]}),[v?.fields,u?.fields,y?.fields,P?.fields]),Ge={select_country:null,basic_information:u?.meta["x-jsf-fieldsets"],contract_details:y?.meta["x-jsf-fieldsets"],benefits:null,review:null},{country:$e,basic_information:se={},contract_details:ae={},status:re}=r||{},ce=$e?.code,le=n.currentStep.name,g=d(()=>L(t.select_country,{country:c||ce||""}),[t.select_country,c,ce]),F=d(()=>{let e={...s,...se};return L(t.basic_information,e)},[t.basic_information,se,s]),p=d(()=>{let e={...s,...ae};return L(t.contract_details,e)},[t.contract_details,ae,s]),E=d(()=>{let e={...s,...ie};return L(t.benefits,e)},[t.benefits,ie,s]),ze=d(()=>r?{select_country:g,basic_information:W(t.basic_information,F),contract_details:r?.contract_details!==null?W(t.contract_details,p):p,benefits:E}:{select_country:g,basic_information:F,contract_details:p,benefits:E},[g,F,p,E,r,t]),{isLoading:Ke,isNavigatingToReview:me,isEmploymentReadOnly:Ye,canInvite:Qe}=d(()=>ct({isLoadingBasicInformationForm:ee,isLoadingContractDetailsForm:ne,isLoadingEmployment:j,isLoadingBenefitsOffersSchema:oe,isLoadingBenefitOffers:B,isLoadingCompany:G,isLoadingCountries:z,employmentId:f,employmentStatus:re,basicInformationFields:t.basic_information,contractDetailsFields:t.contract_details,currentStepName:le}),[ee,ne,j,oe,B,G,z,f,re,t.basic_information,t.contract_details,le]);ot(()=>{me&&(_.current={select_country:V(g,t.select_country),basic_information:V(F,t.basic_information),contract_details:V(p,t.contract_details),benefits:V(E,t.benefits)},$({select_country:g,basic_information:F,contract_details:p,benefits:E,review:{}}),U("review"))},[F,E,p,U,me,g,$,t.basic_information,t.benefits,t.contract_details,t.select_country]);let de=l(e=>v&&n.currentStep.name==="select_country"?e:u&&n.currentStep.name==="basic_information"?h(e,u?.fields,{isPartialValidation:!1}):y&&n.currentStep.name==="contract_details"?h(e,y?.fields,{isPartialValidation:!1}):{},"parseFormValues");async function Xe(e){let i=n.currentStep.name;i in _.current&&(_.current[i]=V(e,t[i]));let m=de(e);switch(we(),n.currentStep.name){case"select_country":return O(m.country),Promise.resolve({data:{countryCode:m.country}});case"basic_information":{let M=!a&&c,H=a&&c&&r?.country&&r?.country.code!==c;if(M||H){let nt={basic_information:m,type:N,country_code:c,external_id:C};try{let T=await Je(nt),fe=T.data?.data?.employment?.id;return D(fe),await Ie.mutateAsync({employmentId:fe,eligible_to_work_in_residing_country:"citizen",employer_or_work_restrictions:!1}),T}catch(T){throw console.error("Error creating onboarding:",T),T}}else if(a)return X({employmentId:a,basic_information:m,pricing_plan_details:{frequency:"monthly"},external_id:C});return}case"contract_details":return X({employmentId:a,external_id:C,...{contract_details:m,pricing_plan_details:{frequency:"monthly"}}});case"benefits":return Ne({employmentId:a,...e})}}l(Xe,"onSubmit");function Ze(){ve()}l(Ze,"back");function et(){Re()}l(et,"next");function tt(e){U(e)}return l(tt,"goTo"),{employmentId:a,creditRiskStatus:q?.default_legal_entity_credit_risk_status,fieldValues:S,stepState:n,fields:t[n.currentStep.name],isLoading:Ke,isSubmitting:K.isPending||Y.isPending||Q.isPending,initialValues:ze,handleValidation:l(e=>{if(n.currentStep.name==="select_country")return v.handleValidation(e);if(n.currentStep.name==="benefits"&&P){let i=h(e,P?.fields,{isPartialValidation:!1});return P?.handleValidation(i)}if(u&&n.currentStep.name==="basic_information"){let i=h(e,u?.fields,{isPartialValidation:!1});return u?.handleValidation(i)}if(y&&n.currentStep.name==="contract_details"){let i=h(e,y?.fields,{isPartialValidation:!1});return y?.handleValidation(i)}return null},"handleValidation"),checkFieldUpdates:qe,parseFormValues:de,onSubmit:Xe,back:Ze,next:et,goTo:tt,meta:{fields:_.current,fieldsets:Ge[n.currentStep.name]},refetchEmployment:k,employment:r,isEmploymentReadOnly:Ye,canInvite:Qe}},"useOnboarding");export{Ft as a};
|
|
2
|
-
//# sourceMappingURL=chunk-L3C4AHZJ.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/Onboarding/hooks.tsx"],"sourcesContent":["import {\n Employment,\n EmploymentCreateParams,\n EmploymentFullParams,\n} from '@/src/client';\nimport { Fields } from '@remoteoss/json-schema-form';\n\nimport { useStepState, Step } from '@/src/flows/useStepState';\nimport {\n disabledInviteButtonEmploymentStatus,\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 { useEffect, useMemo, useRef, useState } from 'react';\nimport mergeWith from 'lodash.mergewith';\nimport {\n useBenefitOffers,\n useBenefitOffersSchema,\n useCompany,\n useCountriesSchemaField,\n useCreateEmployment,\n useEmployment,\n useJSONSchemaForm,\n useUpdateBenefitsOffers,\n useUpdateEmployment,\n useUpsertContractEligibility,\n} from '@/src/flows/Onboarding/api';\nimport { FlowOptions, 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';\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: Fields;\n contractDetailsFields: Fields;\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 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 } = useEmployment(internalEmploymentId);\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 const {\n data: company,\n isLoading: isLoadingCompany,\n refetch: refetchCompany,\n } = useCompany(companyId);\n const stepsToUse = skipSteps?.includes('select_country')\n ? STEPS_WITHOUT_SELECT_COUNTRY\n : STEPS;\n\n const {\n fieldValues,\n stepState,\n setFieldValues,\n previousStep,\n nextStep,\n goToStep,\n setStepValues,\n } = useStepState(\n stepsToUse as Record<keyof typeof STEPS, Step<keyof typeof STEPS>>,\n );\n\n const { selectCountryForm, isLoading: isLoadingCountries } =\n useCountriesSchemaField({\n jsfModify: options?.jsfModify?.select_country,\n jsonSchemaVersion: options?.jsonSchemaVersion,\n queryOptions: {\n enabled: stepState.currentStep.name === 'select_country',\n },\n });\n\n const createEmploymentMutation = useCreateEmployment(options);\n const updateEmploymentMutation = useUpdateEmployment(options);\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\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 }: {\n form: JSONSchemaFormType;\n options?: {\n jsfModify?: JSFModify;\n queryOptions?: { enabled?: boolean };\n jsonSchemaVersion?: FlowOptions['jsonSchemaVersion'];\n };\n query?: Record<string, string>;\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 jsonSchemaVersion: jsonSchemaOptions.jsonSchemaVersion,\n },\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 jsonSchemaVersion: options?.jsonSchemaVersion,\n queryOptions: {\n enabled: isBasicInformationDetailsEnabled,\n },\n },\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 customFields = 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 { 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 ...customFields.fields,\n },\n },\n queryOptions: {\n enabled: isContractDetailsEnabled,\n },\n jsonSchemaVersion: options?.jsonSchemaVersion,\n },\n });\n\n const {\n data: benefitOffersSchema,\n isLoading: isLoadingBenefitsOffersSchema,\n } = useBenefitOffersSchema(\n internalEmploymentId as string,\n fieldValues,\n options,\n );\n\n const initialValuesBenefitOffers = useMemo(() => {\n if (stepState.currentStep.name === 'benefits') {\n const benefitsFormValues = {\n ...stepState.values?.[stepState.currentStep.name as keyof typeof STEPS], // Restore values for the current step\n ...fieldValues,\n };\n return mergeWith({}, benefitOffers, benefitsFormValues);\n }\n return {};\n }, [\n stepState.currentStep.name,\n benefitOffers,\n stepState.values,\n fieldValues,\n ]);\n\n const stepFields: Record<keyof typeof STEPS, Fields> = useMemo(\n () => ({\n select_country: selectCountryForm?.fields || [],\n basic_information: 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 = (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 parseJSFToValidate(values, basicInformationForm?.fields, {\n isPartialValidation: false,\n });\n }\n\n if (\n contractDetailsForm &&\n stepState.currentStep.name === 'contract_details'\n ) {\n return parseJSFToValidate(values, contractDetailsForm?.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 = 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 // @ts-expect-error the types from the response are not matching\n const employmentId = response.data?.data?.employment?.id;\n setInternalEmploymentId(employmentId);\n await updateContractEligibilityMutation.mutateAsync({\n employmentId: employmentId,\n eligible_to_work_in_residing_country: 'citizen',\n employer_or_work_restrictions: false,\n });\n\n return response;\n } catch (error) {\n console.error('Error creating onboarding:', error);\n throw error;\n }\n } else if (internalEmploymentId) {\n return updateEmploymentMutationAsync({\n employmentId: internalEmploymentId,\n basic_information: parsedValues,\n pricing_plan_details: {\n frequency: 'monthly',\n },\n 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 ...values,\n });\n }\n }\n return;\n }\n\n function back() {\n previousStep();\n }\n\n function next() {\n nextStep();\n }\n\n function goTo(step: keyof typeof STEPS) {\n goToStep(step);\n }\n\n return {\n /**\n * Employment id passed useful to be used between components\n */\n employmentId: internalEmploymentId,\n\n /**\n * Credit risk status of the company, useful to know what to to show in the review step\n * The possible values are:\n * - not_started\n * - ready\n * - in_progress\n * - referred\n * - fail\n * - deposit_required\n * - no_deposit_required\n */\n\n creditRiskStatus: company?.default_legal_entity_credit_risk_status,\n /**\n * 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 /**\n * Initial form values\n */\n initialValues,\n /**\n * Function to validate form values against the onboarding schema\n * @param values - Form values to validate\n * @returns Validation result or null if no schema is available\n */\n handleValidation: (values: FieldValues) => {\n if (stepState.currentStep.name === 'select_country') {\n return selectCountryForm.handleValidation(values);\n }\n if (stepState.currentStep.name === 'benefits' && benefitOffersSchema) {\n const parsedValues = parseJSFToValidate(\n values,\n benefitOffersSchema?.fields,\n { isPartialValidation: false },\n );\n\n return benefitOffersSchema?.handleValidation(parsedValues);\n }\n if (\n basicInformationForm &&\n stepState.currentStep.name === 'basic_information'\n ) {\n const parsedValues = 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 = 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"],"mappings":"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","names":["useEffect","useMemo","useRef","useState","mergeWith","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","fieldsMetaRef","useRef","internalEmploymentId","setInternalEmploymentId","useState","internalCountryCode","setInternalCountryCode","employment","refetchEmployment","useEmployment","benefitOffers","useBenefitOffers","company","refetchCompany","useCompany","stepsToUse","STEPS_WITHOUT_SELECT_COUNTRY","STEPS","fieldValues","stepState","setFieldValues","previousStep","nextStep","goToStep","setStepValues","useStepState","selectCountryForm","useCountriesSchemaField","createEmploymentMutation","useCreateEmployment","updateEmploymentMutation","useUpdateEmployment","updateBenefitsOffersMutation","useUpdateBenefitsOffers","updateContractEligibilityMutation","useUpsertContractEligibility","createEmploymentMutationAsync","mutationToPromise","updateEmploymentMutationAsync","updateBenefitsOffersMutationAsync","formType","employmentKey","serverEmploymentData","useJSONSchema","form","jsonSchemaOptions","query","mergedFormValues","useJSONSchemaForm","isBasicInformationDetailsEnabled","isContractDetailsEnabled","basicInformationForm","annualGrossSalaryField","annualSalaryFieldPresentation","equityCompensationField","customFields","useMemo","props","AnnualGrossSalary","values","field","offerEquity","equityCost","EquityPriceDetails","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","step"]}
|
package/dist/chunk-N3EIN72T.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as n}from"./chunk-7Y46DL2U.js";import{b as m}from"./chunk-MRYRNB7Y.js";import{a as o}from"./chunk-P37U34EQ.js";import{jsx as r}from"react/jsx-runtime";function p({onSubmit:e}){let{terminationBag:i}=m();return r(n,{onSubmit:o(async t=>{await e?.(i?.parseFormValues(t)),i?.next()},"handleSubmit")})}o(p,"EmployeeCommunicationForm");export{p as a};
|
|
2
|
-
//# sourceMappingURL=chunk-N3EIN72T.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/Termination/EmployeeComunicationForm.tsx"],"sourcesContent":["import { useTerminationContext } from './context';\nimport { TerminationFormValues } from '@/src/flows/Termination/types';\nimport { TerminationForm } from '@/src/flows/Termination/TerminationForm';\n\ntype EmployeeComunicationProps = {\n /*\n * The function is called when the form is submitted. It receives the form values as an argument.\n */\n onSubmit?: (payload: TerminationFormValues) => void | Promise<void>;\n};\n\nexport function EmployeeCommunicationForm({\n onSubmit,\n}: EmployeeComunicationProps) {\n const { terminationBag } = useTerminationContext();\n const handleSubmit = async (values: TerminationFormValues) => {\n await onSubmit?.(\n terminationBag?.parseFormValues(values) as TerminationFormValues,\n );\n terminationBag?.next();\n };\n\n return <TerminationForm onSubmit={handleSubmit} />;\n}\n"],"mappings":"wHAsBS,cAAAA,MAAA,oBAXF,SAASC,EAA0B,CACxC,SAAAC,CACF,EAA8B,CAC5B,GAAM,CAAE,eAAAC,CAAe,EAAIC,EAAsB,EAQjD,OAAOJ,EAACK,EAAA,CAAgB,SAPHC,EAAA,MAAOC,GAAkC,CAC5D,MAAML,IACJC,GAAgB,gBAAgBI,CAAM,CACxC,EACAJ,GAAgB,KAAK,CACvB,EALqB,gBAO2B,CAClD,CAZgBG,EAAAL,EAAA","names":["jsx","EmployeeCommunicationForm","onSubmit","terminationBag","useTerminationContext","TerminationForm","__name","values"]}
|
package/dist/chunk-OXCEJQFC.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as B}from"./chunk-BV3PGYSH.js";import{a as ye,b as Ge,c as Je,d as qe,e as Ke,f as Ye,g as je,h as Ze,i as Xe,j as Ce,k as et,l as xe,m as be,o as Se,q as tt,r as ot,s as rt}from"./chunk-D6X2WCEG.js";import{b as Qe}from"./chunk-HPHWQU34.js";import{b as _e}from"./chunk-ANQ4HVVK.js";import{a as ve,b as $}from"./chunk-WVDTHFGS.js";import{b as S}from"./chunk-3ZWDIEEM.js";import{a as ne,b as ae,c as b,d as Ae,e as Oe,f as Ue,g as ze,h as k,i as w,j as N,k as R,l as P,m as D}from"./chunk-CNDSIADP.js";import{g as Ve}from"./chunk-PAQW5BFW.js";import{a as h,e as oe}from"./chunk-43WMZDDH.js";import{a as r}from"./chunk-P37U34EQ.js";import{Fragment as wo,useEffect as Ro,useRef as Ht}from"react";import{Fragment as Ot,jsx as A,jsxs as se}from"react/jsx-runtime";function le({name:e,defaultValue:t,description:n,label:o,onChange:s,multiple:d,options:c,component:F,...f}){let{components:l}=S(),{control:a}=b(),u=r((m,i,g)=>{let p=g.value?[...g.value]:[];i?p.includes(m)||g.onChange([...p,m]):g.onChange(p.filter(y=>y!==m))},"handleCheckboxChange");return A(k,{control:a,name:e,defaultValue:t,render:({field:m,fieldState:i})=>{let g=F||l?.checkbox;if(g){let p={name:e,description:n,label:o,defaultValue:t,multiple:d,options:c,...f};return A(g,{field:{...m,onChange:r(y=>{if(d){let{checked:x,value:v}=y.target;u(v,x,m),s?.(x);return}m.onChange(y),s?.(y)},"onChange")},fieldState:i,fieldData:p})}return se(w,{"data-field":e,className:h(`RemoteFlows__CheckBoxField__Item__${e}`),children:[A(R,{children:se(Ot,{children:[c&&d?A(N,{children:o}):null,c&&d?c.map(p=>se("div",{className:"flex space-x-2",children:[A(ye,{id:p.value,onCheckedChange:y=>{u(p.value,y===!0,m),s?.(y,p.value)},checked:m.value?.includes(p.value),className:"RemoteFlows__CheckBox__Input"}),A(N,{htmlFor:p.value,className:"mb-0 RemoteFlows__CheckBox__Label",children:p.label})]},p.value)):se("div",{className:"flex space-x-2",children:[A(ye,{id:e,onCheckedChange:p=>{m.onChange(p),s?.(p)},checked:m.value,className:"RemoteFlows__CheckBox__Input"}),A(N,{htmlFor:e,className:"mb-0 RemoteFlows__CheckBox__Label",children:o})]})]})}),n&&A(P,{children:n}),i.error&&A(D,{})]})}})}r(le,"CheckBoxField");import{CalendarIcon as Gt}from"lucide-react";import{PopoverClose as Jt}from"@radix-ui/react-popover";import{ChevronLeft as Ut,ChevronRight as Vt}from"lucide-react";import{DayPicker as zt}from"react-day-picker";import{jsx as ke}from"react/jsx-runtime";function nt({className:e,classNames:t,showOutsideDays:n=!0,...o}){return ke(zt,{showOutsideDays:n,className:h("p-3",e),classNames:{months:"flex flex-col sm:flex-row gap-2",month:"flex flex-col gap-4",caption:"flex justify-center pt-1 relative items-center w-full",caption_label:"text-sm font-medium",nav:"flex items-center gap-1",nav_button:h(ve({variant:"outline"}),"size-7 bg-transparent p-0 opacity-50 hover:opacity-100"),nav_button_previous:"absolute left-1",nav_button_next:"absolute right-1",table:"w-full border-collapse space-x-1",head_row:"flex",head_cell:"text-muted-foreground rounded-md w-8 font-normal text-[0.8rem]",row:"flex w-full mt-2",cell:h("relative p-0 text-center text-sm focus-within:relative focus-within:z-20 [&:has([aria-selected])]:bg-accent [&:has([aria-selected].day-range-end)]:rounded-r-md",o.mode==="range"?"[&:has(>.day-range-end)]:rounded-r-md [&:has(>.day-range-start)]:rounded-l-md first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md":"[&:has([aria-selected])]:rounded-md"),day:h(ve({variant:"ghost"}),"size-8 p-0 font-normal aria-selected:opacity-100"),day_range_start:"day-range-start aria-selected:bg-primary aria-selected:text-primary-foreground",day_range_end:"day-range-end aria-selected:bg-primary aria-selected:text-primary-foreground",day_selected:"bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground",day_today:"bg-accent text-accent-foreground",day_outside:"day-outside text-muted-foreground aria-selected:text-muted-foreground",day_disabled:"text-muted-foreground opacity-50",day_range_middle:"aria-selected:bg-accent aria-selected:text-accent-foreground",day_hidden:"invisible",...t},components:{IconLeft:r(({className:s,...d})=>ke(Ut,{className:h("size-4",s),...d}),"IconLeft"),IconRight:r(({className:s,...d})=>ke(Vt,{className:h("size-4",s),...d}),"IconRight")},...o})}r(nt,"Calendar");import*as U from"@radix-ui/react-popover";import{jsx as ie}from"react/jsx-runtime";function me({...e}){return ie(U.Root,{"data-slot":"popover",...e})}r(me,"Popover");function de({...e}){return ie(U.Trigger,{"data-slot":"popover-trigger",...e})}r(de,"PopoverTrigger");function ce({className:e,align:t="center",sideOffset:n=4,...o}){return ie(U.Portal,{children:ie(U.Content,{"data-slot":"popover-content",align:t,sideOffset:n,className:h("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",e),...o})})}r(ce,"PopoverContent");import{format as at,parse as qt}from"date-fns";import{Fragment as Kt,jsx as M,jsxs as Ne}from"react/jsx-runtime";function st({description:e,label:t,name:n,minDate:o,onChange:s,component:d,...c}){let{components:F}=S(),{control:f}=b(),l;return c.meta?.mot&&typeof c.meta.mot=="number"?l=Ve(c.meta.mot):o&&(l=qt(o,"yyyy-MM-dd",new Date)),M(k,{control:f,name:n,render:({field:a,fieldState:u})=>{let m=d||F?.date;if(m){let i={description:e,label:t,name:n,onChange:s,...l&&{minDate:l.toISOString()},...c};return M(m,{field:{...a,onChange:r(g=>{a.onChange(g),s?.(g)},"onChange")},fieldState:u,fieldData:i})}return Ne(w,{"data-field":n,className:`flex flex-col RemoteFlows__DatePickerField__Item__${n}`,children:[M(N,{className:"RemoteFlows__DatePickerField__Label",children:t}),Ne(me,{children:[M(de,{asChild:!0,children:M(R,{children:M("div",{children:Ne($,{type:"button",variant:"outline",className:h("w-full pl-3 text-left font-normal",!a.value&&"text-muted-foreground"),"data-testid":`date-picker-button-${n}`,children:[a.value&&M(Kt,{children:at(a.value,"yyyy-MM-dd")}),M(Gt,{className:"ml-auto h-4 w-4 opacity-50"})]})})})}),M(ce,{className:"w-auto p-0 RemoteFlows__DatepickerField__PopoverContent",align:"start",children:M(nt,{mode:"single",className:"RemoteFlows__DatepickerField__Calendar",selected:a.value?new Date(a.value):void 0,onSelect:i=>{a.onChange(i?at(i,"yyyy-MM-dd"):null),s?.(i)},defaultMonth:l,components:{DayContent:r(i=>M(Jt,{children:i.date.getDate()}),"DayContent")},...l&&{disabled:r(i=>i<l,"disabled")}})})]}),e?M(P,{children:e}):null,u.error&&M(D,{className:"RemoteFlows__DatePickerField__Error"})]})}})}r(st,"DatePickerField");import{useState as Yt,useRef as jt}from"react";import{Upload as Zt,X as Xt}from"lucide-react";import{jsx as V,jsxs as we}from"react/jsx-runtime";function lt({onChange:e,className:t,multiple:n}){let[o,s]=Yt([]),d=jt(null),c=r(l=>{l.preventDefault(),d.current?.click()},"handleClick"),F=r(l=>{if(l.target.files&&l.target.files.length>0){let a=Array.from(l.target.files);s(a),e(l)}},"handleChange"),f=r(l=>{s(a=>a.filter(u=>u!==l))},"onRemoveFile");return we("div",{className:h("flex flex-col items-start gap-4",t),children:[V("input",{type:"file",ref:d,onChange:F,className:"hidden","aria-label":"File upload",multiple:n}),we($,{type:"button",onClick:c,className:"gap-2",children:[V(Zt,{className:"h-4 w-4"}),"Choose File"]}),o.length===0&&V("div",{className:"text-sm",children:n?V("span",{className:"font-medium",children:"No files selected. You can select multiple files"}):V("span",{className:"font-medium",children:"No file selected."})}),o.length>0&&o.map((l,a)=>we("div",{className:"text-sm flex items-center gap-2",children:["Selected file: ",V("span",{className:"font-medium",children:l.name})," (",Math.round(l.size/1024)," KB)",V($,{variant:"ghost",onClick:()=>f(l),children:V(Xt,{})})]},a))]})}r(lt,"FileUploader");import{jsx as z,jsxs as eo}from"react/jsx-runtime";var Qt=r(e=>new Promise((t,n)=>{let o=new FileReader;o.readAsDataURL(e),o.onload=()=>t(o.result),o.onerror=s=>n(s)}),"toBase64"),it=r(async e=>{let t=e.target.files?Array.from(e.target.files):[];return await Promise.all(t.map(async o=>{let s=await Qt(o);return{name:o.name,content:s.split(",")[1]}}))},"convertFilesToBase64");function mt({name:e,description:t,label:n,multiple:o,onChange:s,component:d,...c}){let{components:F}=S(),{control:f}=b();return z(k,{control:f,name:e,render:({field:l,fieldState:a})=>{let u=d||F?.file;if(u){let m={name:e,description:t,label:n,multiple:o,...c};return z(u,{field:{...l,value:null,onChange:r(async i=>{let g=await it(i);l.onChange(g),s?.(g)},"onChange")},fieldState:a,fieldData:m})}return eo(w,{"data-field":e,className:`RemoteFlows__FileUpload__Item__${e}`,children:[z(N,{className:"RemoteFlows__FileUpload__Label",children:n}),z(R,{children:z(lt,{onChange:async m=>{let i=await it(m);l.onChange(i),s?.(i)},multiple:o,className:h("RemoteFlows__FileUpload__Input")})}),t&&z("div",{className:"flex items-center justify-between",children:z(P,{className:"RemoteFlows__FileUpload__Description",children:t})}),a.error&&z(D,{className:"RemoteFlows__FileUpload__Error"})]})}})}r(mt,"FileUploadField");import{jsx as Re}from"react/jsx-runtime";function ue(e){let{components:t}=S(),{control:n}=b(),o=e.component||t?.number;return o?Re(k,{control:n,name:e.name,render:({field:s,fieldState:d})=>Re(o,{field:{...s,onChange:r(c=>{s.onChange(c),e.onChange?.(c)},"onChange")},fieldState:d,fieldData:e})}):Re(B,{...e,type:"text",inputMode:"decimal",pattern:"^[0-9.]*$"})}r(ue,"NumberField");import{Fragment as to}from"react";import{jsx as W,jsxs as Pe}from"react/jsx-runtime";function dt({name:e,defaultValue:t,description:n,label:o,options:s,onChange:d,component:c,...F}){let{components:f}=S(),{control:l}=b();return W(k,{control:l,name:e,defaultValue:t,render:({field:a,fieldState:u})=>{let m=c||f?.radio;if(m){let i={name:e,defaultValue:t,description:n,label:o,options:s,...F};return W(m,{field:{...a,onChange:r(g=>{a.onChange(g),d?.(g)},"onChange")},fieldState:u,fieldData:i})}return Pe(w,{className:h("space-y-3",`RemoteFlows__RadioGroupField__Item__${e}`),"data-field":e,children:[W(N,{children:o}),W(R,{children:W(Ge,{"aria-label":o||e,onValueChange:i=>{a.onChange(i),d?.(i)},value:a.value,className:"flex flex-col space-y-3",children:s?.map(i=>W(to,{children:Pe(w,{"data-field":e,className:"flex items-start space-x-3 space-y-0 gap-0 RemoteFlows__RadioField__Item",children:[W(R,{children:W(Je,{value:i.value,className:"RemoteFlows__RadioField__Input",disabled:i.disabled})}),Pe("div",{children:[W(N,{className:"font-normal mb-0 RemoteFlows__RadioField__Label",children:i.label}),i.description&&W(P,{className:"mt-2",children:i.description})]})]})},i.value))})}),n&&W(P,{children:n}),u.error&&W(D,{})]})}})}r(dt,"RadioGroupField");import{jsx as E,jsxs as ct}from"react/jsx-runtime";function ut({label:e,name:t,options:n,defaultValue:o,description:s,onChange:d,component:c,...F}){let{control:f}=b(),{components:l}=S();return E(k,{defaultValue:o,control:f,name:t,render:({field:a,fieldState:u})=>{let m=c||l?.select;if(m){let i={label:e,name:t,options:n,defaultValue:o,description:s,onChange:d,...F};return E(m,{field:{...a,onChange:r(g=>{let p=F.jsonType==="number"?Number(g):g;a.onChange(p),d?.(p)},"onChange")},fieldState:u,fieldData:i})}return ct(w,{"data-field":t,className:`RemoteFlows__SelectField__Item__${t}`,children:[E(N,{className:"RemoteFlows__SelectField__Label",children:e}),E(R,{children:E("div",{className:"relative",children:ct(qe,{value:a.value||"",onValueChange:i=>{let g=F.jsonType==="number"?Number(i):i;a.onChange(g),d?.(g)},children:[E(je,{className:"RemoteFlows__SelectField__Trigger","aria-invalid":!!u.error,"aria-label":e,children:E("span",{className:"absolute",children:E(Ye,{placeholder:e})})}),E(Ze,{className:"RemoteFlows__SelectField__Content",children:E(Ke,{className:"RemoteFlows__SelectField__Group",children:n.map(i=>E(Xe,{value:i.value,className:"RemoteFlows__SelectField__SelectItem",disabled:i.disabled,children:i.label},i.value))})})]})})}),s&&E(P,{children:s}),u.error&&E(D,{})]})}})}r(ut,"SelectField");import{useState as lo}from"react";import{Fragment as oo,useState as ro}from"react";import{Check as no,ChevronDownIcon as ao,X as so}from"lucide-react";import{Command as Y}from"cmdk";import{SearchIcon as tn}from"lucide-react";import{jsx as j,jsxs as an}from"react/jsx-runtime";function pt({className:e,...t}){return j(Y,{"data-slot":"command",className:h("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md",e),...t})}r(pt,"Command");function ft({className:e,...t}){return j(Y.List,{"data-slot":"command-list",className:h("max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto",e),...t})}r(ft,"CommandList");function Ft({...e}){return j(Y.Empty,{"data-slot":"command-empty",className:"py-6 text-center text-sm",...e})}r(Ft,"CommandEmpty");function gt({className:e,...t}){return j(Y.Group,{"data-slot":"command-group",className:h("text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium",e),...t})}r(gt,"CommandGroup");function ht({className:e,...t}){return j(Y.Separator,{"data-slot":"command-separator",className:h("bg-border -mx-1 h-px",e),...t})}r(ht,"CommandSeparator");function _t({className:e,...t}){return j(Y.Item,{"data-slot":"command-item",className:h("data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e),...t})}r(_t,"CommandItem");import{jsx as L,jsxs as Z}from"react/jsx-runtime";function pe({options:e,selected:t,onChange:n,placeholder:o,...s}){let[d,c]=ro(!1),F=r(a=>{n(t.filter(u=>u.value!==a.value))},"handleUnselect"),f=e.some(a=>a.category),l=e.reduce((a,u)=>{let m=u.category||"Uncategorized";return a[m]||(a[m]=[]),a[m].push(u),a},{});return Z(me,{open:d,onOpenChange:c,...s,children:[L(de,{children:Z($,{variant:"outline",role:"combobox","aria-expanded":d,className:"w-full justify-between font-normal",type:"button",children:[L("div",{className:"flex gap-1 flex-wrap overflow-x-auto max-h-[2.5rem] items-center",children:t.length>0?t.map(a=>Z(Qe,{variant:"secondary",className:"mr-1 mb-1",children:[a.label,L("div",{role:"button",tabIndex:0,"aria-label":`remove ${a.label}`,className:"ml-1 ring-offset-background rounded-full outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 cursor-pointer",onKeyDown:u=>{u.key==="Enter"&&F(a)},onMouseDown:u=>{u.preventDefault(),u.stopPropagation()},onClick:()=>F(a),children:L(so,{className:"h-3 w-3 text-muted-foreground hover:text-foreground"})})]},a.label)):L("span",{className:"text-foreground",children:o})}),L(ao,{className:"size-4"})]})}),L(ce,{align:"start",className:"w-full p-0",children:L(pt,{children:Z(ft,{children:[L(Ft,{children:"No item found."}),Object.entries(l).map(([a,u],m)=>Z(oo,{children:[m>0&&L(ht,{}),L(gt,{heading:f?a:void 0,children:u.map(i=>{let g=t.some(p=>p.value===i.value);return Z(_t,{onSelect:()=>{n(g?t.filter(p=>p.value!==i.value):[...t,i])},children:[L(no,{className:h("mr-2 h-4 w-4",g?"opacity-100":"opacity-0")}),i.label]},i.label)})})]},a))]})})})]})}r(pe,"MultiSelect");import{jsx as G,jsxs as io}from"react/jsx-runtime";function yt({label:e,name:t,options:n,defaultValue:o,description:s,onChange:d,$meta:c,component:F,...f}){let{control:l}=b(),{components:a}=S(),[u,m]=lo([]);return G(k,{defaultValue:o,control:l,name:t,render:({field:i,fieldState:g})=>{let p=F||a?.countries;if(p){let v={label:e,name:t,options:n,defaultValue:o,description:s,onChange:d,$meta:c,...f};return G(p,{field:{...i,onChange:r(T=>{i.onChange(T),d?.(T)},"onChange")},fieldState:g,fieldData:v})}let y=[...Object.entries(c?.regions||{}).map(([v,T])=>({value:T,label:v,category:"Regions"})),...Object.entries(c?.subregions||{}).map(([v,T])=>({value:T,label:v,category:"Subregions"})),...n.map(v=>({...v,value:v.value,label:v.label,category:"Countries"}))],x=r(v=>{let T=v.map(({value:K})=>K);i.onChange(T),d?.(T),m(v)},"handleChange");return io(w,{"data-field":t,className:`RemoteFlows__CountryField__Item__${t}`,children:[G(N,{className:"RemoteFlows__CountryField__Label",children:e}),G(R,{children:G(pe,{options:y,selected:u,onChange:x,...f})}),s&&G(P,{children:s}),g.error&&G(D,{})]})}})}r(yt,"CountryField");import*as vt from"react";import{jsx as mo}from"react/jsx-runtime";var De=vt.forwardRef(({className:e,...t},n)=>mo("textarea",{className:h("flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:n,...t}));De.displayName="Textarea";import{jsx as J,jsxs as Te}from"react/jsx-runtime";function Ct({name:e,description:t,label:n,onChange:o,maxLength:s,component:d,...c}){let{components:F}=S(),{control:f}=b();return J(k,{control:f,name:e,render:({field:l,fieldState:a})=>{let u=d||F?.textarea;if(u){let i={name:e,description:t,label:n,maxLength:s,...c};return J(u,{field:{...l,onChange:r(g=>{l.onChange(g),o?.(g)},"onChange")},fieldState:a,fieldData:i})}let m=l.value?.length??0;return Te(w,{"data-field":e,className:`RemoteFlows__TextArea__Item__${e}`,children:[J(N,{className:"RemoteFlows__TextArea__Label",children:n}),J(R,{children:J(De,{...l,value:l.value??"",onChange:i=>{l.onChange(i),o?.(i)},className:h(a.error&&"border-red-500 focus-visible:ring-red-500","RemoteFlows__TextArea__Input"),placeholder:n})}),(t||s)&&Te("div",{className:"flex items-center justify-between",children:[t&&J(P,{className:"RemoteFlows__TextArea__Description",children:t}),s&&Te("span",{className:"text-sm ml-auto RemoteFlows__TextArea__MaxLength",children:[m,"/",s]})]}),a.error&&J(D,{className:"RemoteFlows__TextArea__Error"})]})}})}r(Ct,"TextAreaField");import{jsx as Ie}from"react/jsx-runtime";function xt(e){let{components:t}=S(),{control:n}=b(),o=e.component||t?.email;return o?Ie(k,{control:n,name:e.name,render:({field:s,fieldState:d})=>Ie(o,{field:{...s,onChange:r(c=>{s.onChange(c),e.onChange?.(c)},"onChange")},fieldState:d,fieldData:e})}):Ie(B,{...e,type:"email"})}r(xt,"EmailField");import{jsx as bt}from"react/jsx-runtime";function St(e){let{control:t}=b();return bt(k,{control:t,name:e.name,render:({field:n})=>bt("input",{...n,type:"hidden"})})}r(St,"HiddenField");import ho,{useEffect as _o,useState as $t}from"react";var kt=r((e,t,n)=>{if(e&&"reportValidity"in e){let o=ne(n,t);e.setCustomValidity(o&&o.message||""),e.reportValidity()}},"r"),$e=r((e,t)=>{for(let n in t.fields){let o=t.fields[n];o&&o.ref&&"reportValidity"in o.ref?kt(o.ref,n,e):o&&o.refs&&o.refs.forEach(s=>kt(s,n,e))}},"o"),wt=r((e,t)=>{t.shouldUseNativeValidation&&$e(e,t);let n={};for(let o in e){let s=ne(t.fields,o),d=Object.assign(e[o]||{},{ref:s&&s.ref});if(co(t.names||Object.keys(e),o)){let c=Object.assign({},ne(n,o));ae(c,"root",d),ae(n,o,c)}else ae(n,o,d)}return n},"s"),co=r((e,t)=>{let n=Nt(t);return e.some(o=>Nt(o).match(`^${n}\\.\\d+`))},"i");function Nt(e){return e.replace(/\]|\[/g,"")}r(Nt,"n");function Rt(e,t,n){return t===void 0&&(t={}),n===void 0&&(n={}),function(o,s,d){try{return Promise.resolve(function(c,F){try{var f=(t.context&&process.env.NODE_ENV==="development"&&console.warn("You should not used the yup options context. Please, use the 'useForm' context object instead"),Promise.resolve(e[n.mode==="sync"?"validateSync":"validate"](o,Object.assign({abortEarly:!1},t,{context:s}))).then(function(l){return d.shouldUseNativeValidation&&$e({},d),{values:n.raw?Object.assign({},o):l,errors:{}}}))}catch(l){return F(l)}return f&&f.then?f.then(void 0,F):f}(0,function(c){if(!c.inner)throw c;return{values:{},errors:wt((F=c,f=!d.shouldUseNativeValidation&&d.criteriaMode==="all",(F.inner||[]).reduce(function(l,a){if(l[a.path]||(l[a.path]={message:a.message,type:a.type}),f){var u=l[a.path].types,m=u&&u[a.type];l[a.path]=Ae(a.path,f,l,a.type,m?[].concat(m,a.message):a.message)}return l},{})),d)};var F,f}))}catch(c){return Promise.reject(c)}}}r(Rt,"o");import*as I from"yup";import Pt from"lodash.groupby";import X from"lodash.capitalize";var Dt=60,fe=["monday","tuesday","wednesday","thursday","friday","saturday","sunday"];function uo(e){if(e<60)return`${e}m`;let t=Math.floor(e/Dt),n=e%Dt;return n>0?`${t}h${n}m`:`${t}h`}r(uo,"convertBreakDurationToHours");function Tt(e){let t=e.reduce((n,o)=>o.hours+n,0);return Number(t.toFixed(2))}r(Tt,"calculateTotalWorkHours");function po(e,t){let n=t.map(({day:d})=>d.toLowerCase()),o=n.indexOf(e),s=null;for(;o<n.length&&!s;){let d=n[o],c=n[o+1],F=fe.indexOf(d)+1;fe[F]===c||(s=d),o+=1}return s}r(po,"findLastConsecutiveDay");function fo(e){return e.start_time&&e.end_time&&(typeof e.hours=="number"?e.hours:Number.parseInt(e.hours))>0}r(fo,"shouldSummarizeSchedule");function Fo(e){return Number.parseInt(e.break_duration_minutes)>0}r(Fo,"shouldSummarizeBreaks");function It(e){let t=e.filter(fo),n=Pt(t,F=>`${F.start_time}|${F.end_time}`),o=e.filter(Fo),s=Pt(o,"break_duration_minutes"),d=Object.keys(n).map(F=>{let f=n[F],l=f[0].day,[a,u]=F.split("|"),m=`from <span>${a.replace(":","h")}</span> to <span>${u.replace(":","h")}</span>`,i=po(l,f),p=(i?f.findIndex(y=>y.day===i):-1)===f.length-1;return f.length===1?`${X(l)}, ${m}`:!p||!i?f.reduce((y,x,v)=>{let T=X(x.day);return v===f.length-1?`${y}and ${T}, ${m}`:`${y}<span>${T}</span>, `},""):`<span>${X(l)}</span> to <span>${X(i)}</span>, ${m}`}),c=Object.keys(s).reverse().map((F,f)=>{let l=f===0,a=s[F],u=uo(parseInt(F,10));if(Object.keys(s).length===1)return`With ${u} daily breaks`;if(a.length===1){let m=`${u} break on ${X(a[0].day)}.`;return l?`With ${m}`:m}return a.reduce((m,i,g)=>{let p=X(i.day);return g===0?`${m} ${p}`:g===a.length-1?`${m}, and ${p}.`:`${m}, ${p}`},l?`With ${u} break on`:`${u} break on`)});return{workHoursSummary:d,breakSummary:c}}r(It,"buildWorkScheduleSummary");function Me(e){let{checked:t,start_time:n,end_time:o,break_duration_minutes:s}=e;if(!t)return 0;let[d,c]=n.split(":").map(Number),[F,f]=o.split(":").map(Number),l=d*60+c,m=(F*60+f-l-Number.parseInt(s||"0"))/60;return m===Math.floor(m)?m:Number(m.toFixed(2))}r(Me,"calculateHours");var go={monday:"Mon",tuesday:"Tue",wednesday:"Wed",thursday:"Thu",friday:"Fri",saturday:"Sat",sunday:"Sun"};function Fe(e){return go[e]}r(Fe,"getShortWeekday");import{jsx as _,jsxs as H}from"react/jsx-runtime";var yo=I.object({day:I.string().required(),checked:I.boolean().required(),start_time:I.string().matches(/^([01]\d|2[0-3]):([0-5]\d)$/,"Invalid time format (HH:mm)").when("checked",{is:!0,then:r(e=>e.required("Required"),"then"),otherwise:r(e=>e.optional().nullable(),"otherwise")}),end_time:I.string().matches(/^([01]\d|2[0-3]):([0-5]\d)$/,"Invalid time format (HH:mm)").when("checked",{is:!0,then:r(e=>e.required("Required"),"then"),otherwise:r(e=>e.optional().nullable(),"otherwise")}),hours:I.number().default(0),break_duration_minutes:I.string().default("0")}),vo=I.object({schedule:I.array(yo)});function Co({defaultSchedule:e,onSubmit:t}){let[n,o]=$t(!1),s=fe.map(p=>{let y=e.find(x=>x.day.toLowerCase()===Fe(p).toLowerCase()||x.day.toLowerCase()===p.toLowerCase());return y?{...y,day:Fe(p),checked:!0}:{...e[0],checked:!1,day:Fe(p)}}),d=Ue({defaultValues:{schedule:s},resolver:Rt(vo)}),{handleSubmit:c,watch:F,reset:f,control:l,formState:a}=d,{fields:u}=Oe({name:"schedule",control:l}),m=F("schedule");function i(p){let y=p.schedule.filter(({checked:x})=>x).map(x=>({...x,hours:Me(x)}));t(y),o(!1)}r(i,"handleSubmitWorkingHours");function g(){f(),o(!1)}return r(g,"handleCancel"),_("div",{className:"flex items-center justify-between",children:H(Ce,{open:n,onOpenChange:o,children:[_(et,{asChild:!0,children:_($,{variant:"link",className:"flex items-center p-0 RemoteFlows__WorkScheduleSelectionForm__Trigger",children:"Edit Schedule"})}),H(xe,{className:"max-w-5xl max-h-[90vh] overflow-y-auto px-8 py-4 RemoteFlows__WorkScheduleSelectionForm__Content",children:[_(be,{children:_(Se,{className:"RemoteFlows__WorkScheduleSelectionForm__Title",children:"Edit employee working hours"})}),_(ze,{...d,children:H("form",{className:"space-y-4 RemoteFlows__WorkScheduleSelectionForm__Form",children:[H("div",{className:"rounded-lg",children:[_("p",{className:"text-gray-600 text-sm mb-4 RemoteFlows__WorkScheduleSelectionForm__Description",children:"The times displayed are in the employee's time zone in the 24-hour format."}),H("div",{className:"grid grid-cols-12 gap-4 text-sm font-medium text-gray-500 uppercase tracking-wide RemoteFlows__WorkScheduleSelectionForm__Header",children:[_("div",{className:"col-span-2"}),_("div",{className:"col-span-3 text-center",children:"START"}),_("div",{className:"col-span-1 text-center"}),_("div",{className:"col-span-3 text-center",children:"END"}),_("div",{className:"col-span-2 text-center",children:"HOURS"})]}),_("div",{className:"RemoteFlows__WorkScheduleSelectionForm__Rows",children:u.map((p,y)=>{let x=m[y],v=Me(x);return H(ho.Fragment,{children:[H("div",{className:"grid grid-cols-12 gap-4 items-center py-2 RemoteFlows__WorkScheduleSelectionForm__Row-Hours",children:[_("div",{className:"col-span-2 flex items-center gap-3",children:_(le,{label:p.day,name:`schedule.${y}.checked`})}),_("div",{className:"col-span-3",children:_(B,{name:`schedule.${y}.start_time`,includeErrorMessage:!1})}),_("div",{className:"col-span-1 text-center text-gray-500",children:"to"}),_("div",{className:"col-span-3",children:_(B,{name:`schedule.${y}.end_time`,includeErrorMessage:!1})}),_("div",{className:"col-span-2 text-center text-gray-600",children:isNaN(v)?"-":`${v} hours`})]}),H("div",{className:"grid grid-cols-12 gap-4 items-center py-2 RemoteFlows__WorkScheduleSelectionForm__Row-Break",children:[_("div",{className:"col-span-2 text-gray-500",children:"Break"}),_("div",{className:"col-span-2",children:_(B,{name:`schedule.${y}.break_duration_minutes`,includeErrorMessage:!1})}),_("div",{className:"col-span-2 text-gray-500",children:"minutes"}),_("div",{className:"col-span-4"})]})]},p.id)})})]}),Object.keys(a.errors).length>0&&_("p",{className:"text-destructive text-sm mb-0",children:"Invalid time format (HH:mm)"}),H("div",{className:"flex gap-4 pt-4",children:[_($,{type:"button",className:"reset-button",variant:"outline",onClick:g,children:"Cancel"}),_($,{type:"button",className:"submit-button",onClick:c(i),children:"Save Schedule"})]})]})})]})]})})}r(Co,"WorkScheduleSelectionForm");function Mt(e){let{components:t}=S(),{setValue:n,control:o,watch:s}=b(),d=s(e.name),[c,F]=$t(d),{workHoursSummary:f,breakSummary:l}=It(c),a=Tt(c);_o(()=>{n(e.name,c)},[c,e.name,n]);function u(i){F(i)}r(u,"onSubmit");let m=e.component||t?.["work-schedule"];return m?_(k,{control:o,name:e.name,render:({field:i,fieldState:g})=>_(m,{field:{...i,onChange:r(p=>{i.onChange(p),e.onChange?.(p)},"onChange")},fieldState:g,fieldData:{...e,defaultFormattedValue:{workHoursSummary:f,breakSummary:l,totalWorkHours:a}}})}):H("div",{className:"flex flex-col gap-3 RemoteFlows__WorkScheduleField",children:[_("p",{className:"text-sm RemoteFlows__WorkScheduleField__Title",children:"Work hours"}),H("div",{className:"flex flex-col gap-1 RemoteFlows__WorkScheduleField__Summary",children:[_("p",{className:"text-sm text-gray-500 RemoteFlows__WorkScheduleField__Summary__WorkHours",dangerouslySetInnerHTML:{__html:f.join(", ")}}),_("p",{className:"text-sm text-gray-500 RemoteFlows__WorkScheduleField__Summary__Break",children:l.join()}),H("p",{className:"text-sm text-gray-500 RemoteFlows__WorkScheduleField__Summary__Total",children:["Total of ",_("span",{children:a})," hours per week"]}),_(Co,{defaultSchedule:c,onSubmit:u})]})]})}r(Mt,"WorkScheduleField");import{useState as xo}from"react";import{jsx as q,jsxs as bo}from"react/jsx-runtime";function Et({label:e,name:t,options:n,defaultValue:o,description:s,onChange:d,component:c,...F}){let{control:f}=b(),{components:l}=S(),[a,u]=xo();return q(k,{defaultValue:o,control:f,name:t,render:({field:m,fieldState:i})=>{let g=c||l?.["multi-select"];if(g){let y={label:e,name:t,options:n,defaultValue:o,description:s,onChange:d,...F};return q(g,{field:{...m,onChange:r(x=>{m.onChange(x),d?.(x)},"onChange")},fieldState:i,fieldData:y})}let p=a||n.filter(y=>m.value.includes(y.value));return bo(w,{"data-field":t,className:`RemoteFlows__SelectField__Item__${t}`,children:[q(N,{className:"RemoteFlows__SelectField__Label",children:e}),q(R,{children:q(pe,{options:n,selected:p,onChange:y=>{let x=y.map(({value:v})=>v);m.onChange(x),d?.(x),u(y)},...F})}),s&&q(P,{children:s}),i.error&&q(D,{})]})}})}r(Et,"MultiSelectField");import{jsx as So}from"react/jsx-runtime";var Wt=r(e=>So(ue,{maxLength:15,...e}),"MoneyField");var Ee={checkbox:le,text:B,email:xt,money:Wt,select:ut,"multi-select":Et,radio:dt,number:ue,file:mt,date:st,textarea:Ct,countries:yt,hidden:St,"work-schedule":Mt};import{AlertCircle as ko}from"lucide-react";import{jsx as ge,jsxs as No}from"react/jsx-runtime";function Lt({title:e,description:t,severity:n}){let{components:o}=S();if(o?.statement){let s=o?.statement;return ge(s,{data:{title:e,description:oe(t),severity:n}})}return No(tt,{variant:"warning",children:[ge(ko,{className:"h-4 w-4"}),e&&ge(ot,{children:e}),t&&ge(rt,{dangerouslySetInnerHTML:{__html:oe(t)}})]})}r(Lt,"Statement");import{Fragment as Do,jsx as O,jsxs as Q}from"react/jsx-runtime";var Po=r(({isExpanded:e,onToggle:t,className:n,...o})=>O($,{type:"button",className:h("RemoteFlows__Button RemoteFlows__FieldSetField__ToggleButton",n),variant:"default",onClick:t,...o,children:e?"Remove":"Define"}),"DefaultToggleButton");function us({label:e,name:t,fields:n,description:o,components:s,statement:d,isFlatFieldset:c,extra:F,variant:f="outset",features:l,meta:a}){let{helpCenter:u}=a||{},{watch:m,setValue:i,trigger:g,formState:p}=b(),{components:y}=S(),x=l?.toggle?.stateField,v=x?m(x):l?.toggle?.defaultExpanded??!0,T=n.map(({name:C})=>`${t}.${C}`),K=m(T),We=Ht(K),ee=Ht(null),Bt=r(()=>{x&&i(x,!v)},"toggleExpanded");Ro(()=>{let C=K,re=We.current,he=p.isSubmitted||p.submitCount>0,Be=!1;for(let te=0;te<C.length;te++)if(C[te]!==void 0&&re[te]!==C[te]){Be=!0;break}return Be&&he&&(ee.current&&clearTimeout(ee.current),ee.current=setTimeout(()=>{g()},50)),We.current=[...C],()=>{ee.current&&clearTimeout(ee.current)}},[K,g,p.isSubmitted,p.submitCount]);let At=y?.fieldsetToggle||Po,Le=`${t}-content`,He=`${t}-header`;return Q("fieldset",{className:h("border-1 border-input p-4 rounded-xl","RemoteFlows__FieldSetField",`RemoteFlows__FieldSetField__${t}`),children:[O("legend",{className:h("text-sm font-semibold px-2",f==="inset"&&"hidden"),children:e}),u?.callToAction&&u?.id&&f==="outset"&&O(_e,{className:"RemoteFlows__FieldSetField__HelpCenterLink mb-3",zendeskId:u.id,children:u.callToAction}),f==="inset"&&Q(Do,{children:[Q("div",{className:"RemoteFlows__FieldSetField__Header",id:He,"data-state":v?"expanded":"collapsed","aria-expanded":v,children:[O("h3",{className:h("RemoteFlows__FieldSetField__Title"),children:e}),l?.toggle?.enabled&&O(At,{isExpanded:v,onToggle:Bt,"aria-expanded":v,"aria-controls":Le,"aria-label":`${v?"Hide":"Show"} ${e}`,className:h("RemoteFlows__FieldSetField__Toggle",l.toggle?.className),children:v?l.toggle.labels?.collapse??"Remove":l.toggle.labels?.expand??"Define"})]}),u?.callToAction&&u?.id&&O(_e,{className:"RemoteFlows__FieldSetField__HelpCenterLink mb-3",zendeskId:u.id,children:u.callToAction})]}),v&&Q("div",{id:Le,"aria-labelledby":He,role:"region",children:[o?O("div",{className:"mb-5 RemoteFlows__FieldSetField__Description",dangerouslySetInnerHTML:{__html:oe(o)}}):null,Q("div",{className:"grid gap-4",children:[n.map(C=>{C.calculateDynamicProperties&&(C={...C,...C.calculateDynamicProperties(K,C)||{}});let re=Ee[C.type];if(C.isVisible===!1||C.deprecated)return null;if(C.Component){let{Component:he}=C;return O(he,{...C},C.name)}return C.type==="select"&&C.multiple&&(re=Ee["multi-select"]),Q(wo,{children:[O(re,{...C,name:`${c?C.name:`${t}.${C.name}`}`,component:s?.[C.type]}),C.extra?C.extra:null]},`${c?C.name:`${t}.${C.name}`}`)}),F||null,d?O(Lt,{...d}):null]})]})]})}r(us,"FieldSetField");export{Ee as a,Lt as b,us as c};
|
|
2
|
-
//# sourceMappingURL=chunk-OXCEJQFC.js.map
|