@remoteoss/remote-flows 1.31.0 → 1.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-V67RONRN.js → chunk-2P2OJKD4.js} +2 -2
- package/dist/{chunk-RIGP2BKY.js → chunk-3UDWOREZ.js} +2 -2
- package/dist/{chunk-QTLMJODK.js → chunk-4QVFKKVN.js} +2 -2
- package/dist/{chunk-OV3MNQPL.js → chunk-4RF6I3TT.js} +2 -2
- package/dist/{chunk-IRLOG7MR.js → chunk-75MI3G5H.js} +2 -2
- package/dist/{chunk-VCM32VB3.js → chunk-77WJNWIC.js} +2 -2
- package/dist/{chunk-UQ3H4S26.js → chunk-7A3IHNJF.js} +2 -2
- package/dist/{chunk-AUIHRJIX.js → chunk-AZZUFPQM.js} +2 -2
- package/dist/{chunk-IBUAH6HC.js → chunk-E3WR4SVV.js} +2 -2
- package/dist/chunk-GPJIEBUC.js +2 -0
- package/dist/chunk-GPJIEBUC.js.map +1 -0
- package/dist/{chunk-ZWH34WQJ.js → chunk-H4B2NWIZ.js} +2 -2
- package/dist/{chunk-PPJUUGKP.js → chunk-HIWYDAQU.js} +2 -2
- package/dist/chunk-HUAPBLSQ.js +2 -0
- package/dist/chunk-HUAPBLSQ.js.map +1 -0
- package/dist/{chunk-KNIZVHFU.js → chunk-I5NOEJSP.js} +2 -2
- package/dist/{chunk-2SS3UU6K.js → chunk-IOVRTUOC.js} +2 -2
- package/dist/chunk-K2SHDZBB.js +2 -0
- package/dist/{chunk-OVJTJFYF.js.map → chunk-K2SHDZBB.js.map} +1 -1
- package/dist/{chunk-N6OHWIQ4.js → chunk-KAHAW4HH.js} +2 -2
- package/dist/{chunk-2RWZ2XC5.js → chunk-LANAT75E.js} +2 -2
- package/dist/{chunk-IF42CZJH.js → chunk-NEKE5PRJ.js} +2 -2
- package/dist/{chunk-G6R56RS2.js → chunk-NKTGQNE2.js} +2 -2
- package/dist/{chunk-ICOGJLAL.js → chunk-PIGJNWPB.js} +2 -2
- package/dist/{chunk-L4Q4ZT4L.js → chunk-QGQSTK73.js} +2 -2
- package/dist/chunk-SC7YWKOW.js +2 -0
- package/dist/{chunk-SGQ7FXWO.js → chunk-STJW643Y.js} +2 -2
- package/dist/{chunk-CZPJWO2R.js → chunk-TLQYNJBC.js} +2 -2
- package/dist/{chunk-EU7WVCHQ.js → chunk-TSWZPJNS.js} +2 -2
- package/dist/{chunk-4AW3FP2P.js → chunk-VATDEWMF.js} +2 -2
- package/dist/{chunk-OTNGKS3S.js → chunk-VZLUAWY5.js} +2 -2
- package/dist/default-components.d.ts +2 -2
- 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/context.d.ts +3 -3
- package/dist/flows/ContractAmendment/hooks.d.ts +3 -3
- package/dist/flows/ContractAmendment/hooks.js +1 -1
- package/dist/flows/ContractAmendment/index.d.ts +3 -3
- package/dist/flows/ContractAmendment/index.js +1 -1
- package/dist/flows/ContractAmendment/types.d.ts +2 -2
- package/dist/flows/ContractAmendment/utils.d.ts +2 -2
- 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/api.js +1 -1
- package/dist/flows/ContractorOnboarding/components/BasicInformationStep.d.ts +4 -4
- package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractPreviewHeader.d.ts +2 -2
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStatement.d.ts +2 -2
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/components/EligibilityQuestionnaireStep.d.ts +5 -5
- 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/SaveDraftButton.d.ts +3 -3
- package/dist/flows/ContractorOnboarding/components/SelectCountryStep.d.ts +4 -4
- package/dist/flows/ContractorOnboarding/context.d.ts +6 -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/jsfModify.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/types.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/utils.d.ts +4 -4
- 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/EstimationResults/EstimationResults.d.ts +2 -2
- package/dist/flows/CostCalculator/SummaryResults/SummaryResults.d.ts +2 -2
- package/dist/flows/CostCalculator/api.d.ts +2 -2
- package/dist/flows/CostCalculator/api.js +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 +2 -2
- package/dist/flows/CostCalculator/utils.d.ts +3 -3
- package/dist/flows/CostCalculator/utils.js +1 -1
- package/dist/flows/CreateCompany/CreateCompany.d.ts +4 -4
- package/dist/flows/CreateCompany/CreateCompany.js +1 -1
- package/dist/flows/CreateCompany/api.d.ts +2 -2
- package/dist/flows/CreateCompany/api.js +1 -1
- package/dist/flows/CreateCompany/components/AddressDetailsStep.d.ts +4 -4
- package/dist/flows/CreateCompany/components/CompanyBasicInformationStep.d.ts +4 -4
- package/dist/flows/CreateCompany/components/CreateCompanyForm.d.ts +2 -2
- package/dist/flows/CreateCompany/context.d.ts +4 -4
- package/dist/flows/CreateCompany/hooks.d.ts +4 -4
- package/dist/flows/CreateCompany/hooks.js +1 -1
- package/dist/flows/CreateCompany/index.d.ts +4 -4
- package/dist/flows/CreateCompany/index.js +1 -1
- package/dist/flows/CreateCompany/types.d.ts +4 -4
- package/dist/flows/Onboarding/OnboardingFlow.d.ts +4 -4
- package/dist/flows/Onboarding/OnboardingFlow.js +1 -1
- package/dist/flows/Onboarding/api.d.ts +4 -4
- 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/BenefitsStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/ContractDetailsStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/EngagementAgreementDetailsStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/OnboardingForm.d.ts +4 -4
- 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/context.d.ts +5 -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 +4 -4
- package/dist/flows/Termination/AdditionalDetailsForm.d.ts +4 -4
- package/dist/flows/Termination/EmployeeComunicationForm.d.ts +4 -4
- package/dist/flows/Termination/PaidTimeOffForm.d.ts +4 -4
- package/dist/flows/Termination/TerminationDetailsForm.d.ts +4 -4
- 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/api.d.ts +5 -5
- package/dist/flows/Termination/api.js +1 -1
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOff.d.ts +6 -6
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.d.ts +6 -6
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.js +1 -1
- package/dist/flows/Termination/components/PaidTimeOff/types.d.ts +6 -6
- package/dist/flows/Termination/components/TerminationDialogInfoContent/TerminationDialogInfoContent.js +1 -1
- package/dist/flows/Termination/context.d.ts +4 -4
- package/dist/flows/Termination/hooks.d.ts +4 -4
- 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/jsonSchema.js +1 -1
- package/dist/flows/Termination/json-schemas/schema.d.ts +4 -4
- package/dist/flows/Termination/json-schemas/schema.js +1 -1
- package/dist/flows/Termination/types.d.ts +4 -4
- package/dist/flows/Termination/utils.d.ts +4 -4
- package/dist/flows/types.d.ts +3 -2
- package/dist/flows/utils.d.ts +2 -2
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +11 -11
- package/dist/index.js +1 -1
- package/dist/internals.d.ts +3 -3
- package/dist/internals.js +1 -1
- package/dist/{mutations-Dy0AcOjz.d.ts → mutations-DWtiVhzX.d.ts} +1 -1
- package/dist/{remoteFlows-CnHcNfc4.d.ts → remoteFlows-HrHOVYvy.d.ts} +1 -1
- package/dist/styles.css +1 -1
- package/dist/styles.css.map +1 -1
- package/dist/{types-BCw6Enmi.d.ts → types-BBoweHNn.d.ts} +3 -3
- package/dist/{types-BIjH8PeJ.d.ts → types-C4xgDVL5.d.ts} +5 -4
- package/dist/{types-DWheQ1pi.d.ts → types-DF7KVwR4.d.ts} +1 -1
- package/dist/{types-BOg9OXFy.d.ts → types-VL8cVbKj.d.ts} +2 -2
- package/dist/{types-BTj_IIC_.d.ts → types-xGK_68j9.d.ts} +4 -3
- package/dist/{types.gen-CDCDRemY.d.ts → types.gen-C1H9Wowh.d.ts} +1 -1
- package/dist/{utils-ythMeVS9.d.ts → utils-C2a483TA.d.ts} +3 -2
- package/package.json +1 -1
- package/dist/chunk-B7YD67K7.js +0 -2
- package/dist/chunk-B7YD67K7.js.map +0 -1
- package/dist/chunk-DN6BXTAC.js +0 -2
- package/dist/chunk-LVWRZFEL.js +0 -2
- package/dist/chunk-LVWRZFEL.js.map +0 -1
- package/dist/chunk-OVJTJFYF.js +0 -2
- /package/dist/{chunk-V67RONRN.js.map → chunk-2P2OJKD4.js.map} +0 -0
- /package/dist/{chunk-RIGP2BKY.js.map → chunk-3UDWOREZ.js.map} +0 -0
- /package/dist/{chunk-QTLMJODK.js.map → chunk-4QVFKKVN.js.map} +0 -0
- /package/dist/{chunk-OV3MNQPL.js.map → chunk-4RF6I3TT.js.map} +0 -0
- /package/dist/{chunk-IRLOG7MR.js.map → chunk-75MI3G5H.js.map} +0 -0
- /package/dist/{chunk-VCM32VB3.js.map → chunk-77WJNWIC.js.map} +0 -0
- /package/dist/{chunk-UQ3H4S26.js.map → chunk-7A3IHNJF.js.map} +0 -0
- /package/dist/{chunk-AUIHRJIX.js.map → chunk-AZZUFPQM.js.map} +0 -0
- /package/dist/{chunk-IBUAH6HC.js.map → chunk-E3WR4SVV.js.map} +0 -0
- /package/dist/{chunk-ZWH34WQJ.js.map → chunk-H4B2NWIZ.js.map} +0 -0
- /package/dist/{chunk-PPJUUGKP.js.map → chunk-HIWYDAQU.js.map} +0 -0
- /package/dist/{chunk-KNIZVHFU.js.map → chunk-I5NOEJSP.js.map} +0 -0
- /package/dist/{chunk-2SS3UU6K.js.map → chunk-IOVRTUOC.js.map} +0 -0
- /package/dist/{chunk-N6OHWIQ4.js.map → chunk-KAHAW4HH.js.map} +0 -0
- /package/dist/{chunk-2RWZ2XC5.js.map → chunk-LANAT75E.js.map} +0 -0
- /package/dist/{chunk-IF42CZJH.js.map → chunk-NEKE5PRJ.js.map} +0 -0
- /package/dist/{chunk-G6R56RS2.js.map → chunk-NKTGQNE2.js.map} +0 -0
- /package/dist/{chunk-ICOGJLAL.js.map → chunk-PIGJNWPB.js.map} +0 -0
- /package/dist/{chunk-L4Q4ZT4L.js.map → chunk-QGQSTK73.js.map} +0 -0
- /package/dist/{chunk-DN6BXTAC.js.map → chunk-SC7YWKOW.js.map} +0 -0
- /package/dist/{chunk-SGQ7FXWO.js.map → chunk-STJW643Y.js.map} +0 -0
- /package/dist/{chunk-CZPJWO2R.js.map → chunk-TLQYNJBC.js.map} +0 -0
- /package/dist/{chunk-EU7WVCHQ.js.map → chunk-TSWZPJNS.js.map} +0 -0
- /package/dist/{chunk-4AW3FP2P.js.map → chunk-VATDEWMF.js.map} +0 -0
- /package/dist/{chunk-OTNGKS3S.js.map → chunk-VZLUAWY5.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/Onboarding/hooks.tsx","../src/components/error-handling/ErrorContext.tsx","../src/components/error-handling/useErrorReporting.ts"],"sourcesContent":["import { ValidationResult } from '@remoteoss/remote-json-schema-form-kit';\nimport {\n Employment,\n EmploymentCreateParams,\n EmploymentFullParams,\n} from '@/src/client';\nimport { JSFFields, NestedMeta } from '@/src/types/remoteFlows';\nimport { useStepState, Step } from '@/src/flows/useStepState';\nimport {\n disabledInviteButtonEmploymentStatus,\n getContractDetailsSchemaVersion,\n getBasicInformationSchemaVersion,\n reviewStepAllowedEmploymentStatus,\n buildSteps,\n StepKeys,\n} from '@/src/flows/Onboarding/utils';\nimport { prettifyFormValues } from '@/src/lib/utils';\nimport {\n getInitialValues,\n enableAckFields,\n parseJSFToValidate,\n} from '@/src/components/form/utils';\nimport { mutationToPromise } from '@/src/lib/mutations';\nimport { FieldValues } from 'react-hook-form';\nimport { OnboardingFlowProps } from '@/src/flows/Onboarding/types';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport mergeWith from 'lodash.mergewith';\nimport {\n useBenefitOffers,\n useBenefitOffersSchema,\n useCompany,\n useCountriesSchemaField,\n useCreateEmployment,\n useEmploymentEngagementAgreementDetails,\n useEmploymentOnboardingReservesStatus,\n useEngagementAgreementDetailsSchema,\n useJSONSchemaForm,\n useUpdateBenefitsOffers,\n useUpdateEmployment,\n useUpdateEmploymentEngagementAgreementDetails,\n useUpsertContractEligibility,\n} from '@/src/flows/Onboarding/api';\nimport { JSFModify, JSONSchemaFormType } from '@/src/flows/types';\nimport { AnnualGrossSalary } from '@/src/flows/Onboarding/components/AnnualGrossSalary';\nimport { $TSFixMe, JSFField, JSFFieldset } from '@/src/types/remoteFlows';\nimport { EquityPriceDetails } from '@/src/flows/Onboarding/components/EquityPriceDetails';\nimport { useErrorReporting } from '@/src/components/error-handling/useErrorReporting';\nimport { useEmploymentQuery } from '@/src/common/api/employment';\n\ntype OnboardingHookProps = Omit<OnboardingFlowProps, 'render'>;\n\nconst jsonSchemaToEmployment: Partial<\n Record<JSONSchemaFormType, keyof Employment>\n> = {\n employment_basic_information: 'basic_information',\n contract_details: 'contract_details',\n};\n\nconst stepToFormSchemaMap: Record<StepKeys, JSONSchemaFormType | null> = {\n select_country: null,\n basic_information: 'employment_basic_information',\n engagement_agreement_details: null,\n contract_details: 'contract_details',\n benefits: null,\n review: null,\n};\n\nconst getLoadingStates = ({\n isLoadingBasicInformationForm,\n isLoadingContractDetailsForm,\n isLoadingEngagementAgreementDetails,\n isLoadingEmploymentEngagementAgreementDetails,\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 isLoadingEngagementAgreementDetails: boolean;\n isLoadingEmploymentEngagementAgreementDetails: boolean;\n isLoadingEmployment: boolean;\n isLoadingBenefitsOffersSchema: boolean;\n isLoadingBenefitOffers: boolean;\n isLoadingCompany: boolean;\n isLoadingCountries: boolean;\n employmentStatus?: Employment['status'];\n employmentId?: string;\n currentStepName: string;\n basicInformationFields: JSFFields;\n contractDetailsFields: JSFFields;\n}) => {\n const initialLoading =\n isLoadingBasicInformationForm ||\n isLoadingContractDetailsForm ||\n isLoadingEngagementAgreementDetails ||\n isLoadingEmploymentEngagementAgreementDetails ||\n isLoadingEmployment ||\n isLoadingBenefitsOffersSchema ||\n isLoadingBenefitOffers ||\n isLoadingCompany ||\n isLoadingCountries;\n\n const isEmploymentReadOnly =\n employmentStatus &&\n reviewStepAllowedEmploymentStatus.includes(employmentStatus);\n\n const canInvite =\n employmentStatus &&\n !disabledInviteButtonEmploymentStatus.includes(employmentStatus);\n\n const shouldHandleReadOnlyEmployment = Boolean(\n employmentId && isEmploymentReadOnly && currentStepName !== 'review',\n );\n\n const isLoading = initialLoading || shouldHandleReadOnlyEmployment;\n\n const isNavigatingToReview = Boolean(\n shouldHandleReadOnlyEmployment &&\n !initialLoading &&\n basicInformationFields.length > 0 &&\n contractDetailsFields.length > 0,\n );\n\n return {\n isLoading,\n isNavigatingToReview,\n isEmploymentReadOnly,\n canInvite,\n };\n};\n\nexport const useOnboarding = ({\n employmentId,\n companyId,\n countryCode,\n type,\n options,\n skipSteps,\n externalId,\n initialValues: onboardingInitialValues,\n}: OnboardingHookProps) => {\n const { updateErrorContext } = useErrorReporting({\n flow: 'onboarding',\n metadata: {\n employmentId,\n companyId,\n isUpdating: Boolean(employmentId),\n },\n });\n\n const [internalEmploymentId, setInternalEmploymentId] = useState<\n string | undefined\n >(employmentId);\n const [internalCountryCode, setInternalCountryCode] = useState<string | null>(\n countryCode || null,\n );\n const [\n includeEngagementAgreementDetails,\n setIncludeEngagementAgreementDetails,\n ] = useState<boolean>(false);\n\n const useDynamicSteps = options?.features?.includes('dynamic_steps') ?? false;\n\n const { steps, stepsArray } = useMemo(\n () =>\n buildSteps({\n includeSelectCountry: !skipSteps?.includes('select_country'),\n includeEngagementAgreementDetails,\n useDynamicSteps,\n }),\n [includeEngagementAgreementDetails, skipSteps, useDynamicSteps],\n );\n\n const onStepChange = useCallback(\n (step: Step<StepKeys>) => {\n updateErrorContext({\n step: step.name,\n });\n },\n [updateErrorContext],\n );\n\n const {\n fieldValues,\n stepState,\n setFieldValues,\n previousStep,\n nextStep,\n goToStep,\n setStepValues,\n } = useStepState(steps, onStepChange);\n\n const {\n data: employmentEngagementAgreementDetails,\n isLoading: isLoadingEmploymentEngagementAgreementDetails,\n } = useEmploymentEngagementAgreementDetails(internalEmploymentId, {\n enabled: Boolean(\n !!internalEmploymentId && options?.features?.includes('dynamic_steps'),\n ),\n });\n\n const engagementAgreementDetailsFieldValues = useMemo(() => {\n return {\n ...onboardingInitialValues,\n ...employmentEngagementAgreementDetails,\n ...stepState.values?.engagement_agreement_details,\n ...fieldValues,\n };\n }, [\n employmentEngagementAgreementDetails,\n onboardingInitialValues,\n stepState.values?.engagement_agreement_details,\n fieldValues,\n ]);\n\n const {\n data: engagementAgreementDetailsSchema,\n isLoading: isLoadingEngagementAgreementDetails,\n } = useEngagementAgreementDetailsSchema(\n internalCountryCode as string,\n engagementAgreementDetailsFieldValues,\n {\n jsfModify: options?.jsfModify,\n queryOptions: {\n enabled: Boolean(\n !!internalCountryCode && options?.features?.includes('dynamic_steps'),\n ),\n },\n },\n );\n\n // logic to include the engagement agreement details step based on the schema fields\n useEffect(() => {\n const hasFields = Boolean(\n engagementAgreementDetailsSchema?.fields &&\n engagementAgreementDetailsSchema.fields.length > 0,\n );\n if (hasFields !== includeEngagementAgreementDetails) {\n setIncludeEngagementAgreementDetails(hasFields);\n }\n }, [\n engagementAgreementDetailsSchema?.fields,\n includeEngagementAgreementDetails,\n ]);\n\n const fieldsMetaRef = useRef<{\n select_country: NestedMeta;\n basic_information: NestedMeta;\n contract_details: NestedMeta;\n benefits: NestedMeta;\n engagement_agreement_details: NestedMeta;\n }>({\n select_country: {},\n basic_information: {},\n contract_details: {},\n benefits: {},\n engagement_agreement_details: {},\n });\n\n const {\n data: employment,\n isLoading: isLoadingEmployment,\n refetch: refetchEmployment,\n } = useEmploymentQuery({\n employmentId: internalEmploymentId as string,\n queryParams: { exclude_files: true },\n });\n\n // if the employment is loaded, country code has not been set yet\n // we set the internal country code with the employment country code\n if (employmentId && employment?.country?.code && !internalCountryCode) {\n setInternalCountryCode(employment.country.code);\n }\n\n const { data: benefitOffers, isLoading: isLoadingBenefitOffers } =\n useBenefitOffers(internalEmploymentId);\n\n const {\n data: company,\n isLoading: isLoadingCompany,\n refetch: refetchCompany,\n } = useCompany(companyId);\n\n const isOnboardingReservesEnabled =\n (options?.features?.includes('onboarding_reserves') &&\n stepState.currentStep.name === 'review') ||\n false;\n\n const { data: onboardingReservesStatus } =\n useEmploymentOnboardingReservesStatus(\n companyId,\n internalEmploymentId,\n isOnboardingReservesEnabled,\n );\n\n const { selectCountryForm, isLoading: isLoadingCountries } =\n useCountriesSchemaField({\n jsfModify: options?.jsfModify?.select_country,\n queryOptions: {\n enabled: stepState.currentStep.name === 'select_country',\n },\n });\n\n const createEmploymentMutation = useCreateEmployment(options);\n const updateEmploymentMutation = useUpdateEmployment(\n internalCountryCode as string,\n options,\n );\n const updateBenefitsOffersMutation = useUpdateBenefitsOffers(options);\n const updateEngagementAgreementMutation =\n useUpdateEmploymentEngagementAgreementDetails();\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 // TODO: refactor all uses in onboarding together to avoid having mixed behaviour\n const { mutateAsync: updateEngagementAgreementMutationAsync } =\n mutationToPromise(updateEngagementAgreementMutation);\n const { mutateAsync: updateContractEligibilityMutationAsync } =\n mutationToPromise(updateContractEligibilityMutation);\n\n const formType =\n stepToFormSchemaMap[stepState.currentStep.name] ||\n 'employment_basic_information';\n const employmentKey = jsonSchemaToEmployment[formType] as keyof Employment;\n const serverEmploymentData = (employment?.[employmentKey] || {}) as Record<\n string,\n unknown\n >;\n\n const useJSONSchema = ({\n form,\n options: jsonSchemaOptions = {},\n query = {},\n jsonSchemaVersion,\n }: {\n form: JSONSchemaFormType;\n options?: {\n jsfModify?: JSFModify;\n queryOptions?: { enabled?: boolean };\n };\n query?: Record<string, string>;\n jsonSchemaVersion?: number | 'latest';\n }) => {\n const hasUserEnteredAnyValues = Object.keys(fieldValues).length > 0;\n // when you write on the fields, the values are stored in the fieldValues state\n // when values are stored in the stepState is when the user has navigated to the step\n // and then we have the values from the server and the onboardingInitialValues that the user can inject,\n const mergedFormValues = hasUserEnteredAnyValues\n ? {\n ...onboardingInitialValues,\n ...stepState.values?.[stepState.currentStep.name], // Restore values for the current step\n ...fieldValues,\n }\n : {\n ...onboardingInitialValues,\n ...serverEmploymentData,\n };\n\n return useJSONSchemaForm({\n countryCode: internalCountryCode as string,\n form: form,\n fieldValues: mergedFormValues,\n query,\n options: {\n ...jsonSchemaOptions,\n queryOptions: {\n enabled: jsonSchemaOptions.queryOptions?.enabled ?? true,\n },\n },\n jsonSchemaVersion,\n });\n };\n\n const isBasicInformationDetailsEnabled = Boolean(\n internalCountryCode &&\n (stepState.currentStep.name === 'basic_information' ||\n Boolean(employmentId)),\n );\n\n const isContractDetailsEnabled = Boolean(\n internalCountryCode &&\n (stepState.currentStep.name === 'contract_details' ||\n Boolean(employmentId)),\n );\n\n const {\n data: basicInformationForm,\n isLoading: isLoadingBasicInformationForm,\n } = useJSONSchema({\n form: 'employment_basic_information',\n options: {\n jsfModify: options?.jsfModify?.basic_information,\n queryOptions: {\n enabled: isBasicInformationDetailsEnabled,\n },\n },\n jsonSchemaVersion: getBasicInformationSchemaVersion(options),\n });\n\n const annualGrossSalaryField =\n options?.jsfModify?.contract_details?.fields?.annual_gross_salary;\n const annualSalaryFieldPresentation =\n annualGrossSalaryField &&\n typeof annualGrossSalaryField === 'object' &&\n 'presentation' in annualGrossSalaryField\n ? (\n annualGrossSalaryField as {\n presentation?: {\n annual_gross_salary_conversion_properties?: {\n label?: string;\n description?: string;\n };\n };\n }\n ).presentation\n : undefined;\n\n const equityCompensationField =\n options?.jsfModify?.contract_details?.fields?.equity_compensation;\n\n const contractDetailsCustomFields = useMemo(\n () => ({\n fields: {\n annual_gross_salary: {\n ...annualGrossSalaryField,\n presentation: {\n annual_gross_salary_conversion_properties: {\n label:\n annualSalaryFieldPresentation\n ?.annual_gross_salary_conversion_properties?.label,\n description:\n annualSalaryFieldPresentation\n ?.annual_gross_salary_conversion_properties?.description,\n },\n desiredCurrency: company?.desired_currency,\n Component: (props: JSFField & { currency: string }) => {\n return (\n <AnnualGrossSalary\n desiredCurrency={company?.desired_currency || ''}\n {...props}\n />\n );\n },\n },\n },\n equity_compensation: {\n ...equityCompensationField,\n presentation: {\n calculateDynamicProperties: (\n values: FieldValues,\n field: JSFField,\n ) => {\n const offerEquity =\n values.equity_compensation?.offer_equity_compensation;\n const equityCost = field?.meta?.cost;\n\n return {\n extra: (\n <EquityPriceDetails\n offerEquity={offerEquity}\n equityCost={equityCost as $TSFixMe}\n />\n ),\n };\n },\n },\n },\n },\n }),\n [\n annualGrossSalaryField,\n annualSalaryFieldPresentation,\n company?.desired_currency,\n equityCompensationField,\n ],\n );\n\n const effectiveContractDetailsJsonSchemaVersion =\n getContractDetailsSchemaVersion(options, internalCountryCode);\n\n const { data: contractDetailsForm, isLoading: isLoadingContractDetailsForm } =\n useJSONSchema({\n form: 'contract_details',\n query: {\n employment_id: internalEmploymentId as string,\n },\n options: {\n jsfModify: {\n ...options?.jsfModify?.contract_details,\n fields: {\n ...options?.jsfModify?.contract_details?.fields,\n ...contractDetailsCustomFields.fields,\n },\n },\n queryOptions: {\n enabled: isContractDetailsEnabled,\n },\n },\n jsonSchemaVersion: effectiveContractDetailsJsonSchemaVersion,\n });\n\n const {\n data: benefitOffersSchema,\n isLoading: isLoadingBenefitsOffersSchema,\n } = useBenefitOffersSchema(\n internalEmploymentId as string,\n fieldValues,\n options,\n );\n\n const initialValuesBenefitOffers = useMemo(() => {\n if (stepState.currentStep.name === 'benefits') {\n const benefitsFormValues = {\n ...stepState.values?.[stepState.currentStep.name as StepKeys], // 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<StepKeys, JSFFields> = useMemo(\n () => ({\n select_country: selectCountryForm?.fields || [],\n basic_information: basicInformationForm?.fields || [],\n engagement_agreement_details:\n engagementAgreementDetailsSchema?.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 engagementAgreementDetailsSchema?.fields,\n ],\n );\n\n const stepFieldsWithFlatFieldsets: Record<\n StepKeys,\n JSFFieldset | null | undefined\n > = {\n select_country: null,\n basic_information: basicInformationForm?.meta['x-jsf-fieldsets'],\n engagement_agreement_details:\n engagementAgreementDetailsSchema?.meta['x-jsf-fieldsets'],\n contract_details: contractDetailsForm?.meta['x-jsf-fieldsets'],\n benefits: null,\n review: null,\n };\n\n const stepPresentation: Record<\n StepKeys,\n Record<string, unknown> | null | undefined\n > = {\n select_country: selectCountryForm?.meta?.['x-jsf-presentation'],\n basic_information: basicInformationForm?.meta?.['x-jsf-presentation'],\n engagement_agreement_details:\n engagementAgreementDetailsSchema?.meta?.['x-jsf-presentation'],\n contract_details: contractDetailsForm?.meta?.['x-jsf-presentation'],\n benefits: benefitOffersSchema?.meta?.['x-jsf-presentation'],\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 engagementAgreementDetailsInitialValues = useMemo(() => {\n const initialValues = {\n ...onboardingInitialValues,\n ...employmentEngagementAgreementDetails,\n };\n\n return getInitialValues(\n stepFields.engagement_agreement_details,\n initialValues,\n );\n }, [\n stepFields.engagement_agreement_details,\n onboardingInitialValues,\n employmentEngagementAgreementDetails,\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 engagement_agreement_details: engagementAgreementDetailsInitialValues,\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 engagementAgreementDetailsInitialValues,\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 isLoadingEngagementAgreementDetails,\n isLoadingEmploymentEngagementAgreementDetails,\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 isLoadingEngagementAgreementDetails,\n isLoadingEmploymentEngagementAgreementDetails,\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 { skipMoneyConversion: true },\n ),\n basic_information: prettifyFormValues(\n basicInformationInitialValues,\n stepFields.basic_information,\n { skipMoneyConversion: true },\n ),\n engagement_agreement_details: prettifyFormValues(\n engagementAgreementDetailsInitialValues,\n stepFields.engagement_agreement_details,\n { skipMoneyConversion: true },\n ),\n contract_details: prettifyFormValues(\n contractDetailsInitialValues,\n stepFields.contract_details,\n { skipMoneyConversion: true },\n ),\n benefits: prettifyFormValues(\n benefitsInitialValues,\n stepFields.benefits,\n { skipMoneyConversion: true },\n ),\n };\n\n setStepValues({\n select_country: selectCountryInitialValues,\n basic_information: basicInformationInitialValues,\n contract_details: contractDetailsInitialValues,\n benefits: benefitsInitialValues,\n engagement_agreement_details: engagementAgreementDetailsInitialValues,\n review: {},\n });\n\n goToStep('review');\n }\n }, [\n basicInformationInitialValues,\n benefitsInitialValues,\n contractDetailsInitialValues,\n engagementAgreementDetailsInitialValues,\n goToStep,\n isNavigatingToReview,\n selectCountryInitialValues,\n setStepValues,\n stepFields.basic_information,\n stepFields.benefits,\n stepFields.contract_details,\n stepFields.select_country,\n stepFields.engagement_agreement_details,\n ]);\n\n const parseFormValues = async (values: FieldValues) => {\n if (selectCountryForm && stepState.currentStep.name === 'select_country') {\n return values;\n }\n if (\n basicInformationForm &&\n stepState.currentStep.name === 'basic_information'\n ) {\n return await parseJSFToValidate(values, basicInformationForm?.fields, {\n isPartialValidation: false,\n });\n }\n\n if (\n engagementAgreementDetailsSchema &&\n stepState.currentStep.name === 'engagement_agreement_details'\n ) {\n return await parseJSFToValidate(\n values,\n engagementAgreementDetailsSchema?.fields,\n {\n isPartialValidation: false,\n },\n );\n }\n\n if (\n contractDetailsForm &&\n stepState.currentStep.name === 'contract_details'\n ) {\n return await parseJSFToValidate(values, contractDetailsForm?.fields, {\n isPartialValidation: false,\n });\n }\n\n if (benefitOffersSchema && stepState.currentStep.name === 'benefits') {\n return await parseJSFToValidate(values, benefitOffersSchema?.fields, {\n isPartialValidation: false,\n });\n }\n\n return {};\n };\n\n async function onSubmit(values: FieldValues) {\n // Prettify values for the current step\n const currentStepName = stepState.currentStep.name;\n const parsedValues = await parseFormValues(values);\n if (currentStepName in fieldsMetaRef.current) {\n fieldsMetaRef.current[\n currentStepName as keyof typeof fieldsMetaRef.current\n ] = prettifyFormValues(parsedValues, stepFields[currentStepName]);\n }\n\n refetchCompany();\n switch (stepState.currentStep.name) {\n case 'select_country': {\n setInternalCountryCode(parsedValues.country);\n return Promise.resolve({ data: { countryCode: parsedValues.country } });\n }\n case 'basic_information': {\n const isEmploymentNotLoaded =\n !internalEmploymentId && internalCountryCode;\n const hasChangedCountry =\n internalEmploymentId &&\n internalCountryCode &&\n employment?.country &&\n employment?.country.code !== internalCountryCode;\n if (isEmploymentNotLoaded || hasChangedCountry) {\n const payload: EmploymentCreateParams = {\n basic_information: parsedValues,\n type: type,\n country_code: internalCountryCode,\n external_id: externalId,\n };\n try {\n const response = await createEmploymentMutationAsync(payload);\n\n if (response.error) {\n return response;\n }\n\n if (response.data) {\n // @ts-expect-error the types from the response are not matching\n const employmentId = response.data?.data?.employment?.id;\n if (employmentId) {\n setInternalEmploymentId(employmentId);\n await updateContractEligibilityMutationAsync({\n employmentId: employmentId,\n eligible_to_work_in_residing_country: 'citizen',\n employer_or_work_restrictions: false,\n });\n }\n\n return response;\n }\n } catch (error) {\n console.error('Error creating onboarding:', error);\n throw error;\n }\n } else if (internalEmploymentId) {\n return updateEmploymentMutationAsync({\n employmentId: internalEmploymentId,\n basic_information: parsedValues,\n pricing_plan_details: {\n frequency: 'monthly',\n },\n external_id: externalId,\n });\n }\n\n return;\n }\n case 'engagement_agreement_details': {\n return updateEngagementAgreementMutationAsync({\n employmentId: internalEmploymentId as string,\n engagement_agreement_details: parsedValues,\n });\n }\n case 'contract_details': {\n const payload: EmploymentFullParams = {\n contract_details: parsedValues,\n pricing_plan_details: {\n frequency: 'monthly',\n },\n };\n return updateEmploymentMutationAsync({\n employmentId: internalEmploymentId as string,\n external_id: externalId,\n ...payload,\n });\n }\n\n case 'benefits': {\n return updateBenefitsOffersMutationAsync({\n employmentId: internalEmploymentId as string,\n ...parsedValues,\n });\n }\n }\n return;\n }\n\n function back() {\n previousStep();\n }\n\n function next() {\n nextStep();\n }\n\n function goTo(step: StepKeys) {\n goToStep(step);\n }\n\n return {\n /**\n * Employment id passed useful to be used between components\n */\n employmentId: internalEmploymentId,\n\n /**\n * Credit risk status of the company, useful to know what to to show in the review step\n * The possible values are:\n * - not_started\n * - ready\n * - in_progress\n * - referred\n * - fail\n * - deposit_required\n * - no_deposit_required\n */\n\n creditRiskStatus: company?.default_legal_entity_credit_risk_status,\n /**\n * Onboarding reserves status for the employment\n * Returns 'deposit_required' if a deposit is required based on onboarding reserves policies\n */\n onboardingReservesStatus: onboardingReservesStatus,\n /**\n * Current state of the form fields for the current step.\n */\n fieldValues,\n /**\n * Current step state containing the current step and total number of steps\n */\n stepState,\n /**\n * Array of form fields from the onboarding schema\n */\n fields: stepFields[stepState.currentStep.name],\n /**\n * Loading state indicating if the onboarding schema is being fetched\n */\n isLoading: isLoading,\n /**\n * Loading state indicating if the onboarding mutation is in progress\n */\n isSubmitting:\n createEmploymentMutation.isPending ||\n updateEmploymentMutation.isPending ||\n updateBenefitsOffersMutation.isPending ||\n updateEngagementAgreementMutation.isPending ||\n updateContractEligibilityMutation.isPending,\n /**\n * Initial form values\n */\n initialValues,\n /**\n * Function to validate form values against the onboarding schema\n * @param values - Form values to validate\n * @returns Validation result or null if no schema is available\n */\n handleValidation: async (\n values: FieldValues,\n ): Promise<ValidationResult | null> => {\n if (stepState.currentStep.name === 'select_country') {\n return selectCountryForm.handleValidation(values);\n }\n if (stepState.currentStep.name === 'benefits' && benefitOffersSchema) {\n const parsedValues = await parseJSFToValidate(\n values,\n benefitOffersSchema?.fields,\n { isPartialValidation: false },\n );\n\n return benefitOffersSchema?.handleValidation(parsedValues);\n }\n if (\n basicInformationForm &&\n stepState.currentStep.name === 'basic_information'\n ) {\n const parsedValues = await parseJSFToValidate(\n values,\n basicInformationForm?.fields,\n { isPartialValidation: false },\n );\n return basicInformationForm?.handleValidation(parsedValues);\n }\n\n if (\n engagementAgreementDetailsSchema &&\n stepState.currentStep.name === 'engagement_agreement_details'\n ) {\n const parsedValues = await parseJSFToValidate(\n values,\n engagementAgreementDetailsSchema?.fields,\n { isPartialValidation: false },\n );\n return engagementAgreementDetailsSchema?.handleValidation(parsedValues);\n }\n\n if (\n contractDetailsForm &&\n stepState.currentStep.name === 'contract_details'\n ) {\n const parsedValues = await parseJSFToValidate(\n values,\n contractDetailsForm?.fields,\n { isPartialValidation: false },\n );\n return contractDetailsForm?.handleValidation(parsedValues);\n }\n\n return null;\n },\n /**\n * Function to update the current form field values\n * @param values - New form values to set\n */\n checkFieldUpdates: setFieldValues,\n\n /**\n * Function to parse form values before submission\n * @param values - Form values to parse\n * @returns Parsed form values\n */\n parseFormValues,\n\n /**\n * Function to handle form submission\n * @param values - Form values to submit\n * @returns Promise resolving to the mutation result\n */\n onSubmit,\n\n /**\n * Function to handle going back to the previous step\n * @returns {void}\n */\n back,\n\n /**\n * Function to handle going to the next step\n * @returns {void}\n */\n next,\n\n /**\n * Function to handle going to a specific step\n * @param step The step to go to.\n * @returns {void}\n */\n goTo,\n\n /**\n * Fields metadata for each step\n */\n meta: {\n fields: fieldsMetaRef.current,\n fieldsets: stepFieldsWithFlatFieldsets[stepState.currentStep.name],\n presentation: stepPresentation[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 * Steps array for dynamic step navigation\n * When 'dynamic_steps' feature is enabled:\n * - Returns all steps including hidden ones with their original indices\n * - Consumers must filter by `visible` property\n * When disabled (default):\n * - Returns only visible steps with sequential indices\n * - Maintains backwards compatibility with existing implementations\n * @returns {Array<{name: string, visible: boolean, index: number, label: string}>}\n */\n steps: stepsArray,\n /**\n * Selected country for the onboarding\n * @returns {name: string, code: string} | null\n */\n selectedCountry: internalCountryCode\n ? {\n code: internalCountryCode,\n name: country?.name,\n }\n : null,\n };\n};\n","import {\n createContext,\n useContext,\n ReactNode,\n useMemo,\n useCallback,\n useRef,\n RefObject,\n} from 'react';\nimport type { ErrorContextData } from './types';\n\nexport type ErrorContextValue = {\n errorContextRef: RefObject<ErrorContextData>;\n updateContext: (updates: Partial<ErrorContextData>) => void;\n};\n\nexport const ErrorContext = createContext<ErrorContextValue | undefined>(\n undefined,\n);\n\nexport function ErrorContextProvider({ children }: { children: ReactNode }) {\n const errorContextRef = useRef<ErrorContextData>({});\n\n const updateContext = useCallback((updates: Partial<ErrorContextData>) => {\n errorContextRef.current = { ...errorContextRef.current, ...updates };\n }, []);\n\n // Memoize the value object to prevent unnecessary re-renders\n // Note: setContext is stable from useState and doesn't need to be in deps\n const value = useMemo(\n () => ({\n errorContextRef,\n updateContext,\n }),\n [updateContext],\n );\n\n return (\n <ErrorContext.Provider value={value}>{children}</ErrorContext.Provider>\n );\n}\n\nexport const useErrorContext = () => {\n const ctx = useContext(ErrorContext);\n if (!ctx) {\n throw new Error('useErrorContext must be used within ErrorContextProvider');\n }\n return ctx;\n};\n","import { useErrorContext } from '@/src/components/error-handling/ErrorContext';\nimport { ErrorContextData } from '@/src/components/error-handling/types';\nimport { useEffect, useMemo } from 'react';\n\nexport function useErrorReporting(initialContext: ErrorContextData) {\n const { updateContext, errorContextRef } = useErrorContext();\n\n // Set initial context on mount\n useEffect(() => {\n if (initialContext) {\n errorContextRef.current = initialContext;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // Clear context on unmount\n useEffect(() => {\n return () => {\n errorContextRef.current = {};\n };\n }, [errorContextRef]);\n\n // Note: setContext and updateContext are stable, don't need to be in deps\n const handlers = useMemo(\n () => ({\n updateErrorContext: (updates: Partial<ErrorContextData>) => {\n updateContext(updates);\n },\n\n clearErrorContext: () => {\n errorContextRef.current = {};\n },\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n\n return {\n ...handlers,\n /**\n * @internal For unit testing only - we access the errorContext in the error boundary directly\n * Use updateErrorContext() and clearErrorContext() handlers instead.\n */\n errorContext: errorContextRef,\n };\n}\n"],"mappings":"keAyBA,OAAS,eAAAA,GAAa,aAAAC,GAAW,WAAAC,EAAS,UAAAC,GAAQ,YAAAC,MAAgB,QAClE,OAAOC,OAAe,mBC1BtB,OACE,iBAAAC,GACA,cAAAC,GAEA,WAAAC,GACA,eAAAC,GACA,UAAAC,OAEK,QA8BH,cAAAC,OAAA,oBAtBG,IAAMC,GAAeC,GAC1B,MACF,EAEO,SAASC,GAAqB,CAAE,SAAAC,CAAS,EAA4B,CAC1E,IAAMC,EAAkBC,GAAyB,CAAC,CAAC,EAE7CC,EAAgBC,GAAaC,GAAuC,CACxEJ,EAAgB,QAAU,CAAE,GAAGA,EAAgB,QAAS,GAAGI,CAAQ,CACrE,EAAG,CAAC,CAAC,EAICC,EAAQC,GACZ,KAAO,CACL,gBAAAN,EACA,cAAAE,CACF,GACA,CAACA,CAAa,CAChB,EAEA,OACEP,GAACC,GAAa,SAAb,CAAsB,MAAOS,EAAQ,SAAAN,EAAS,CAEnD,CApBgBQ,EAAAT,GAAA,wBAsBT,IAAMU,GAAkBD,EAAA,IAAM,CACnC,IAAME,EAAMC,GAAWd,EAAY,EACnC,GAAI,CAACa,EACH,MAAM,IAAI,MAAM,0DAA0D,EAE5E,OAAOA,CACT,EAN+B,mBCxC/B,OAAS,aAAAE,GAAW,WAAAC,OAAe,QAE5B,SAASC,GAAkBC,EAAkC,CAClE,GAAM,CAAE,cAAAC,EAAe,gBAAAC,CAAgB,EAAIC,GAAgB,EAG3D,OAAAC,GAAU,IAAM,CACVJ,IACFE,EAAgB,QAAUF,EAG9B,EAAG,CAAC,CAAC,EAGLI,GAAU,IACD,IAAM,CACXF,EAAgB,QAAU,CAAC,CAC7B,EACC,CAACA,CAAe,CAAC,EAiBb,CACL,GAfeG,GACf,KAAO,CACL,mBAAoBC,EAACC,GAAuC,CAC1DN,EAAcM,CAAO,CACvB,EAFoB,sBAIpB,kBAAmBD,EAAA,IAAM,CACvBJ,EAAgB,QAAU,CAAC,CAC7B,EAFmB,oBAGrB,GAEA,CAAC,CACH,EAQE,aAAcA,CAChB,CACF,CAzCgBI,EAAAP,GAAA,qBF+bA,cAAAS,OAAA,oBAhZhB,IAAMC,GAEF,CACF,6BAA8B,oBAC9B,iBAAkB,kBACpB,EAEMC,GAAmE,CACvE,eAAgB,KAChB,kBAAmB,+BACnB,6BAA8B,KAC9B,iBAAkB,mBAClB,SAAU,KACV,OAAQ,IACV,EAEMC,GAAmBC,EAAA,CAAC,CACxB,8BAAAC,EACA,6BAAAC,EACA,oCAAAC,EACA,8CAAAC,EACA,oBAAAC,EACA,8BAAAC,EACA,uBAAAC,EACA,iBAAAC,EACA,mBAAAC,EACA,iBAAAC,EACA,aAAAC,EACA,gBAAAC,EACA,uBAAAC,EACA,sBAAAC,CACF,IAeM,CACJ,IAAMC,EACJd,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,EAEIO,EACJN,GACAO,GAAkC,SAASP,CAAgB,EAEvDQ,EACJR,GACA,CAACS,GAAqC,SAAST,CAAgB,EAE3DU,EAAiC,GACrCT,GAAgBK,GAAwBJ,IAAoB,UAGxDS,EAAYN,GAAkBK,EAE9BE,EAAuB,GAC3BF,GACA,CAACL,GACDF,EAAuB,OAAS,GAChCC,EAAsB,OAAS,GAGjC,MAAO,CACL,UAAAO,EACA,qBAAAC,EACA,qBAAAN,EACA,UAAAE,CACF,CACF,EArEyB,oBAuEZK,GAAgBvB,EAAA,CAAC,CAC5B,aAAAW,EACA,UAAAa,EACA,YAAAC,EACA,KAAAC,EACA,QAAAC,EACA,UAAAC,EACA,WAAAC,EACA,cAAeC,CACjB,IAA2B,CACzB,GAAM,CAAE,mBAAAC,CAAmB,EAAIC,GAAkB,CAC/C,KAAM,aACN,SAAU,CACR,aAAArB,EACA,UAAAa,EACA,WAAY,EAAQb,CACtB,CACF,CAAC,EAEK,CAACsB,EAAsBC,CAAuB,EAAIC,EAEtDxB,CAAY,EACR,CAACyB,EAAqBC,CAAsB,EAAIF,EACpDV,GAAe,IACjB,EACM,CACJa,EACAC,CACF,EAAIJ,EAAkB,EAAK,EAErBK,EAAkBb,GAAS,UAAU,SAAS,eAAe,GAAK,GAElE,CAAE,MAAAc,EAAO,WAAAC,CAAW,EAAIC,EAC5B,IACEC,GAAW,CACT,qBAAsB,CAAChB,GAAW,SAAS,gBAAgB,EAC3D,kCAAAU,EACA,gBAAAE,CACF,CAAC,EACH,CAACF,EAAmCV,EAAWY,CAAe,CAChE,EAEMK,EAAeC,GAClBC,GAAyB,CACxBhB,EAAmB,CACjB,KAAMgB,EAAK,IACb,CAAC,CACH,EACA,CAAChB,CAAkB,CACrB,EAEM,CACJ,YAAAiB,EACA,UAAAC,EACA,eAAAC,GACA,aAAAC,GACA,SAAAC,GACA,SAAAC,EACA,cAAAC,EACF,EAAIC,GAAad,EAAOI,CAAY,EAE9B,CACJ,KAAMW,EACN,UAAWpD,EACb,EAAIqD,GAAwCxB,EAAsB,CAChE,QAAS,GACLA,GAAwBN,GAAS,UAAU,SAAS,eAAe,EAEzE,CAAC,EAEK+B,GAAwCf,EAAQ,KAC7C,CACL,GAAGb,EACH,GAAG0B,EACH,GAAGP,EAAU,QAAQ,6BACrB,GAAGD,CACL,GACC,CACDQ,EACA1B,EACAmB,EAAU,QAAQ,6BAClBD,CACF,CAAC,EAEK,CACJ,KAAMW,EACN,UAAWxD,EACb,EAAIyD,GACFxB,EACAsB,GACA,CACE,UAAW/B,GAAS,UACpB,aAAc,CACZ,QAAS,GACLS,GAAuBT,GAAS,UAAU,SAAS,eAAe,EAExE,CACF,CACF,EAGAkC,GAAU,IAAM,CACd,IAAMC,EAAY,GAChBH,GAAkC,QAClCA,EAAiC,OAAO,OAAS,GAE/CG,IAAcxB,GAChBC,EAAqCuB,CAAS,CAElD,EAAG,CACDH,GAAkC,OAClCrB,CACF,CAAC,EAED,IAAMyB,EAAgBC,GAMnB,CACD,eAAgB,CAAC,EACjB,kBAAmB,CAAC,EACpB,iBAAkB,CAAC,EACnB,SAAU,CAAC,EACX,6BAA8B,CAAC,CACjC,CAAC,EAEK,CACJ,KAAMC,EACN,UAAW5D,GACX,QAAS6D,EACX,EAAIC,GAAmB,CACrB,aAAclC,EACd,YAAa,CAAE,cAAe,EAAK,CACrC,CAAC,EAIGtB,GAAgBsD,GAAY,SAAS,MAAQ,CAAC7B,GAChDC,EAAuB4B,EAAW,QAAQ,IAAI,EAGhD,GAAM,CAAE,KAAMG,GAAe,UAAW7D,EAAuB,EAC7D8D,GAAiBpC,CAAoB,EAEjC,CACJ,KAAMqC,EACN,UAAW9D,GACX,QAAS+D,EACX,EAAIC,GAAWhD,CAAS,EAElBiD,GACH9C,GAAS,UAAU,SAAS,qBAAqB,GAChDsB,EAAU,YAAY,OAAS,UACjC,GAEI,CAAE,KAAMyB,EAAyB,EACrCC,GACEnD,EACAS,EACAwC,EACF,EAEI,CAAE,kBAAAG,EAAmB,UAAWnE,EAAmB,EACvDoE,GAAwB,CACtB,UAAWlD,GAAS,WAAW,eAC/B,aAAc,CACZ,QAASsB,EAAU,YAAY,OAAS,gBAC1C,CACF,CAAC,EAEG6B,GAA2BC,GAAoBpD,CAAO,EACtDqD,GAA2BC,GAC/B7C,EACAT,CACF,EACMuD,GAA+BC,GAAwBxD,CAAO,EAC9DyD,GACJC,GAA8C,EAC1CC,GAAoCC,GAA6B,EACjE,CAAE,YAAaC,EAA8B,EAAIC,EACrDX,EACF,EACM,CAAE,YAAaY,EAA8B,EAAID,EACrDT,EACF,EACM,CAAE,YAAaW,EAAkC,EAAIF,EACzDP,EACF,EAEM,CAAE,YAAaU,EAAuC,EAC1DH,EAAkBL,EAAiC,EAC/C,CAAE,YAAaS,EAAuC,EAC1DJ,EAAkBH,EAAiC,EAE/CQ,GACJhG,GAAoBmD,EAAU,YAAY,IAAI,GAC9C,+BACI8C,GAAgBlG,GAAuBiG,EAAQ,EAC/CE,GAAwB/B,IAAa8B,EAAa,GAAK,CAAC,EAKxDE,GAAgBjG,EAAA,CAAC,CACrB,KAAAkG,EACA,QAASC,EAAoB,CAAC,EAC9B,MAAAC,EAAQ,CAAC,EACT,kBAAAC,CACF,IAQM,CAKJ,IAAMC,EAJ0B,OAAO,KAAKtD,CAAW,EAAE,OAAS,EAK9D,CACE,GAAGlB,EACH,GAAGmB,EAAU,SAASA,EAAU,YAAY,IAAI,EAChD,GAAGD,CACL,EACA,CACE,GAAGlB,EACH,GAAGkE,EACL,EAEJ,OAAOO,GAAkB,CACvB,YAAanE,EACb,KAAM8D,EACN,YAAaI,EACb,MAAAF,EACA,QAAS,CACP,GAAGD,EACH,aAAc,CACZ,QAASA,EAAkB,cAAc,SAAW,EACtD,CACF,EACA,kBAAAE,CACF,CAAC,CACH,EA1CsB,iBA4ChBG,GAAmC,GACvCpE,IACCa,EAAU,YAAY,OAAS,qBACtBtC,IAGN8F,GAA2B,GAC/BrE,IACCa,EAAU,YAAY,OAAS,oBACtBtC,IAGN,CACJ,KAAM+F,EACN,UAAWzG,EACb,EAAIgG,GAAc,CAChB,KAAM,+BACN,QAAS,CACP,UAAWtE,GAAS,WAAW,kBAC/B,aAAc,CACZ,QAAS6E,EACX,CACF,EACA,kBAAmBG,GAAiChF,CAAO,CAC7D,CAAC,EAEKiF,EACJjF,GAAS,WAAW,kBAAkB,QAAQ,oBAC1CkF,EACJD,GACA,OAAOA,GAA2B,UAClC,iBAAkBA,EAEZA,EAQA,aACF,OAEAE,GACJnF,GAAS,WAAW,kBAAkB,QAAQ,oBAE1CoF,GAA8BpE,EAClC,KAAO,CACL,OAAQ,CACN,oBAAqB,CACnB,GAAGiE,EACH,aAAc,CACZ,0CAA2C,CACzC,MACEC,GACI,2CAA2C,MACjD,YACEA,GACI,2CAA2C,WACnD,EACA,gBAAiBvC,GAAS,iBAC1B,UAAWtE,EAACgH,GAERpH,GAACqH,GAAA,CACC,gBAAiB3C,GAAS,kBAAoB,GAC7C,GAAG0C,EACN,EALO,YAQb,CACF,EACA,oBAAqB,CACnB,GAAGF,GACH,aAAc,CACZ,2BAA4B9G,EAAA,CAC1BkH,EACAC,IACG,CACH,IAAMC,EACJF,EAAO,qBAAqB,0BACxBG,EAAaF,GAAO,MAAM,KAEhC,MAAO,CACL,MACEvH,GAAC0H,GAAA,CACC,YAAaF,EACb,WAAYC,EACd,CAEJ,CACF,EAhB4B,6BAiB9B,CACF,CACF,CACF,GACA,CACET,EACAC,EACAvC,GAAS,iBACTwC,EACF,CACF,EAEMS,GACJC,GAAgC7F,EAASS,CAAmB,EAExD,CAAE,KAAMqF,EAAqB,UAAWvH,EAA6B,EACzE+F,GAAc,CACZ,KAAM,mBACN,MAAO,CACL,cAAehE,CACjB,EACA,QAAS,CACP,UAAW,CACT,GAAGN,GAAS,WAAW,iBACvB,OAAQ,CACN,GAAGA,GAAS,WAAW,kBAAkB,OACzC,GAAGoF,GAA4B,MACjC,CACF,EACA,aAAc,CACZ,QAASN,EACX,CACF,EACA,kBAAmBc,EACrB,CAAC,EAEG,CACJ,KAAMG,EACN,UAAWpH,EACb,EAAIqH,GACF1F,EACAe,EACArB,CACF,EAEMiG,GAA6BjF,EAAQ,IAAM,CAC/C,GAAIM,EAAU,YAAY,OAAS,WAAY,CAC7C,IAAM4E,EAAqB,CACzB,GAAG5E,EAAU,SAASA,EAAU,YAAY,IAAgB,EAC5D,GAAGD,CACL,EACA,OAAO8E,GAAU,CAAC,EAAG1D,GAAeyD,CAAkB,CACxD,CACA,MAAO,CAAC,CACV,EAAG,CACD5E,EAAU,YAAY,KACtBmB,GACAnB,EAAU,OACVD,CACF,CAAC,EAEK+E,EAA0CpF,EAC9C,KAAO,CACL,eAAgBiC,GAAmB,QAAU,CAAC,EAC9C,kBAAmB8B,GAAsB,QAAU,CAAC,EACpD,6BACE/C,GAAkC,QAAU,CAAC,EAC/C,iBAAkB8D,GAAqB,QAAU,CAAC,EAClD,SAAUC,GAAqB,QAAU,CAAC,EAC1C,OAAQ,CAAC,CACX,GACA,CACE9C,GAAmB,OACnB8B,GAAsB,OACtBe,GAAqB,OACrBC,GAAqB,OACrB/D,GAAkC,MACpC,CACF,EAEMqE,GAGF,CACF,eAAgB,KAChB,kBAAmBtB,GAAsB,KAAK,iBAAiB,EAC/D,6BACE/C,GAAkC,KAAK,iBAAiB,EAC1D,iBAAkB8D,GAAqB,KAAK,iBAAiB,EAC7D,SAAU,KACV,OAAQ,IACV,EAEMQ,GAGF,CACF,eAAgBrD,GAAmB,OAAO,oBAAoB,EAC9D,kBAAmB8B,GAAsB,OAAO,oBAAoB,EACpE,6BACE/C,GAAkC,OAAO,oBAAoB,EAC/D,iBAAkB8D,GAAqB,OAAO,oBAAoB,EAClE,SAAUC,GAAqB,OAAO,oBAAoB,EAC1D,OAAQ,IACV,EAEM,CACJ,QAAAQ,GACA,kBAAmBC,GAA6B,CAAC,EACjD,iBAAkBC,GAA4B,CAAC,EAC/C,OAAQ1H,EACV,EAAIuD,GAAc,CAAC,EAEboE,GAAwBH,IAAS,KACjCtH,GAAkBqC,EAAU,YAAY,KAExCqF,EAA6B3F,EACjC,IACE4F,EAAiBR,EAAW,eAAgB,CAC1C,QAAS3F,GAAuBiG,IAAyB,EAC3D,CAAC,EACH,CAACN,EAAW,eAAgB3F,EAAqBiG,EAAqB,CACxE,EAEMG,EAAgC7F,EAAQ,IAAM,CAClD,IAAM8F,EAAgB,CACpB,GAAG3G,EACH,GAAGqG,EACL,EAEA,OAAOI,EAAiBR,EAAW,kBAAmBU,CAAa,CACrE,EAAG,CACDV,EAAW,kBACXI,GACArG,CACF,CAAC,EAEK4G,EAA0C/F,EAAQ,IAAM,CAC5D,IAAM8F,EAAgB,CACpB,GAAG3G,EACH,GAAG0B,CACL,EAEA,OAAO+E,EACLR,EAAW,6BACXU,CACF,CACF,EAAG,CACDV,EAAW,6BACXjG,EACA0B,CACF,CAAC,EAEKmF,EAA+BhG,EAAQ,IAAM,CACjD,IAAM8F,EAAgB,CACpB,GAAG3G,EACH,GAAGsG,EACL,EAEA,OAAOG,EAAiBR,EAAW,iBAAkBU,CAAa,CACpE,EAAG,CACDV,EAAW,iBACXK,GACAtG,CACF,CAAC,EAEK8G,EAAwBjG,EAAQ,IAAM,CAC1C,IAAM8F,EAAgB,CACpB,GAAG3G,EACH,GAAG8F,EACL,EAEA,OAAOW,EAAiBR,EAAW,SAAUU,CAAa,CAC5D,EAAG,CACDV,EAAW,SACXH,GACA9F,CACF,CAAC,EAEK2G,GAAgB9F,EAAQ,IACxBsB,EACK,CACL,eAAgBqE,EAGhB,kBAAmBO,EACjBd,EAAW,kBACXS,CACF,EACA,6BAA8BE,EAC9B,iBAEEzE,GAAY,mBAAqB,KAC7B4E,EACEd,EAAW,iBACXY,CACF,EACAA,EACN,SAAUC,CACZ,EAEK,CACL,eAAgBN,EAChB,kBAAmBE,EACnB,iBAAkBG,EAClB,SAAUC,CACZ,EACC,CACDN,EACAE,EACAE,EACAC,EACAC,EACA3E,EACA8D,CACF,CAAC,EAEK,CAAE,UAAA1G,GAAW,qBAAAC,GAAsB,qBAAAN,GAAsB,UAAAE,EAAU,EACvEyB,EACE,IACE5C,GAAiB,CACf,8BAAAE,GACA,6BAAAC,GACA,oCAAAC,GACA,8CAAAC,GACA,oBAAAC,GACA,8BAAAC,GACA,uBAAAC,GACA,iBAAAC,GACA,mBAAAC,GACA,aAAAE,EACA,iBAAkBD,GAClB,uBAAwBqH,EAAW,kBACnC,sBAAuBA,EAAW,iBAClC,gBAAiBnH,EACnB,CAAC,EACH,CACEX,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAE,EACAD,GACAqH,EAAW,kBACXA,EAAW,iBACXnH,EACF,CACF,EAEFiD,GAAU,IAAM,CACVvC,KACFyC,EAAc,QAAU,CACtB,eAAgB+E,EACdR,EACAP,EAAW,eACX,CAAE,oBAAqB,EAAK,CAC9B,EACA,kBAAmBe,EACjBN,EACAT,EAAW,kBACX,CAAE,oBAAqB,EAAK,CAC9B,EACA,6BAA8Be,EAC5BJ,EACAX,EAAW,6BACX,CAAE,oBAAqB,EAAK,CAC9B,EACA,iBAAkBe,EAChBH,EACAZ,EAAW,iBACX,CAAE,oBAAqB,EAAK,CAC9B,EACA,SAAUe,EACRF,EACAb,EAAW,SACX,CAAE,oBAAqB,EAAK,CAC9B,CACF,EAEAzE,GAAc,CACZ,eAAgBgF,EAChB,kBAAmBE,EACnB,iBAAkBG,EAClB,SAAUC,EACV,6BAA8BF,EAC9B,OAAQ,CAAC,CACX,CAAC,EAEDrF,EAAS,QAAQ,EAErB,EAAG,CACDmF,EACAI,EACAD,EACAD,EACArF,EACA/B,GACAgH,EACAhF,GACAyE,EAAW,kBACXA,EAAW,SACXA,EAAW,iBACXA,EAAW,eACXA,EAAW,4BACb,CAAC,EAED,IAAMgB,GAAkB/I,EAAA,MAAOkH,GACzBtC,GAAqB3B,EAAU,YAAY,OAAS,iBAC/CiE,EAGPR,GACAzD,EAAU,YAAY,OAAS,oBAExB,MAAM+F,EAAmB9B,EAAQR,GAAsB,OAAQ,CACpE,oBAAqB,EACvB,CAAC,EAID/C,GACAV,EAAU,YAAY,OAAS,+BAExB,MAAM+F,EACX9B,EACAvD,GAAkC,OAClC,CACE,oBAAqB,EACvB,CACF,EAIA8D,GACAxE,EAAU,YAAY,OAAS,mBAExB,MAAM+F,EAAmB9B,EAAQO,GAAqB,OAAQ,CACnE,oBAAqB,EACvB,CAAC,EAGCC,GAAuBzE,EAAU,YAAY,OAAS,WACjD,MAAM+F,EAAmB9B,EAAQQ,GAAqB,OAAQ,CACnE,oBAAqB,EACvB,CAAC,EAGI,CAAC,EAzCc,mBA4CxB,eAAeuB,GAAS/B,EAAqB,CAE3C,IAAMtG,EAAkBqC,EAAU,YAAY,KACxCiG,EAAe,MAAMH,GAAgB7B,CAAM,EAQjD,OAPItG,KAAmBmD,EAAc,UACnCA,EAAc,QACZnD,CACF,EAAIkI,EAAmBI,EAAcnB,EAAWnH,CAAe,CAAC,GAGlE2D,GAAe,EACPtB,EAAU,YAAY,KAAM,CAClC,IAAK,iBACH,OAAAZ,EAAuB6G,EAAa,OAAO,EACpC,QAAQ,QAAQ,CAAE,KAAM,CAAE,YAAaA,EAAa,OAAQ,CAAE,CAAC,EAExE,IAAK,oBAAqB,CACxB,IAAMC,EACJ,CAAClH,GAAwBG,EACrBgH,GACJnH,GACAG,GACA6B,GAAY,SACZA,GAAY,QAAQ,OAAS7B,EAC/B,GAAI+G,GAAyBC,GAAmB,CAC9C,IAAMC,EAAkC,CACtC,kBAAmBH,EACnB,KAAMxH,EACN,aAAcU,EACd,YAAaP,CACf,EACA,GAAI,CACF,IAAMyH,EAAW,MAAM9D,GAA8B6D,CAAO,EAE5D,GAAIC,EAAS,MACX,OAAOA,EAGT,GAAIA,EAAS,KAAM,CAEjB,IAAM3I,EAAe2I,EAAS,MAAM,MAAM,YAAY,GACtD,OAAI3I,IACFuB,EAAwBvB,CAAY,EACpC,MAAMkF,GAAuC,CAC3C,aAAclF,EACd,qCAAsC,UACtC,8BAA+B,EACjC,CAAC,GAGI2I,CACT,CACF,OAASC,EAAO,CACd,cAAQ,MAAM,6BAA8BA,CAAK,EAC3CA,CACR,CACF,SAAWtH,EACT,OAAOyD,GAA8B,CACnC,aAAczD,EACd,kBAAmBiH,EACnB,qBAAsB,CACpB,UAAW,SACb,EACA,YAAarH,CACf,CAAC,EAGH,MACF,CACA,IAAK,+BACH,OAAO+D,GAAuC,CAC5C,aAAc3D,EACd,6BAA8BiH,CAChC,CAAC,EAEH,IAAK,mBAOH,OAAOxD,GAA8B,CACnC,aAAczD,EACd,YAAaJ,EACb,GAToC,CACpC,iBAAkBqH,EAClB,qBAAsB,CACpB,UAAW,SACb,CACF,CAKA,CAAC,EAGH,IAAK,WACH,OAAOvD,GAAkC,CACvC,aAAc1D,EACd,GAAGiH,CACL,CAAC,CAEL,CAEF,CAjGelJ,EAAAiJ,GAAA,YAmGf,SAASO,IAAO,CACdrG,GAAa,CACf,CAFSnD,EAAAwJ,GAAA,QAIT,SAASC,IAAO,CACdrG,GAAS,CACX,CAFSpD,EAAAyJ,GAAA,QAIT,SAASC,GAAK3G,EAAgB,CAC5BM,EAASN,CAAI,CACf,CAFS,OAAA/C,EAAA0J,GAAA,QAIF,CAIL,aAAczH,EAcd,iBAAkBqC,GAAS,wCAK3B,yBAA0BI,GAI1B,YAAA1B,EAIA,UAAAC,EAIA,OAAQ8E,EAAW9E,EAAU,YAAY,IAAI,EAI7C,UAAW5B,GAIX,aACEyD,GAAyB,WACzBE,GAAyB,WACzBE,GAA6B,WAC7BE,GAAkC,WAClCE,GAAkC,UAIpC,cAAAmD,GAMA,iBAAkBzI,EAAA,MAChBkH,GACqC,CACrC,GAAIjE,EAAU,YAAY,OAAS,iBACjC,OAAO2B,EAAkB,iBAAiBsC,CAAM,EAElD,GAAIjE,EAAU,YAAY,OAAS,YAAcyE,EAAqB,CACpE,IAAMwB,EAAe,MAAMF,EACzB9B,EACAQ,GAAqB,OACrB,CAAE,oBAAqB,EAAM,CAC/B,EAEA,OAAOA,GAAqB,iBAAiBwB,CAAY,CAC3D,CACA,GACExC,GACAzD,EAAU,YAAY,OAAS,oBAC/B,CACA,IAAMiG,EAAe,MAAMF,EACzB9B,EACAR,GAAsB,OACtB,CAAE,oBAAqB,EAAM,CAC/B,EACA,OAAOA,GAAsB,iBAAiBwC,CAAY,CAC5D,CAEA,GACEvF,GACAV,EAAU,YAAY,OAAS,+BAC/B,CACA,IAAMiG,EAAe,MAAMF,EACzB9B,EACAvD,GAAkC,OAClC,CAAE,oBAAqB,EAAM,CAC/B,EACA,OAAOA,GAAkC,iBAAiBuF,CAAY,CACxE,CAEA,GACEzB,GACAxE,EAAU,YAAY,OAAS,mBAC/B,CACA,IAAMiG,EAAe,MAAMF,EACzB9B,EACAO,GAAqB,OACrB,CAAE,oBAAqB,EAAM,CAC/B,EACA,OAAOA,GAAqB,iBAAiByB,CAAY,CAC3D,CAEA,OAAO,IACT,EApDkB,oBAyDlB,kBAAmBhG,GAOnB,gBAAA6F,GAOA,SAAAE,GAMA,KAAAO,GAMA,KAAAC,GAOA,KAAAC,GAKA,KAAM,CACJ,OAAQ3F,EAAc,QACtB,UAAWiE,GAA4B/E,EAAU,YAAY,IAAI,EACjE,aAAcgF,GAAiBhF,EAAU,YAAY,IAAI,CAC3D,EAMA,kBAAAiB,GAIA,WAAAD,EAMA,qBAAAjD,GAMA,UAAAE,GAYA,MAAOwB,EAKP,gBAAiBN,EACb,CACE,KAAMA,EACN,KAAM8F,IAAS,IACjB,EACA,IACN,CACF,EAl/B6B","names":["useCallback","useEffect","useMemo","useRef","useState","mergeWith","createContext","useContext","useMemo","useCallback","useRef","jsx","ErrorContext","createContext","ErrorContextProvider","children","errorContextRef","useRef","updateContext","useCallback","updates","value","useMemo","__name","useErrorContext","ctx","useContext","useEffect","useMemo","useErrorReporting","initialContext","updateContext","errorContextRef","useErrorContext","useEffect","useMemo","__name","updates","jsx","jsonSchemaToEmployment","stepToFormSchemaMap","getLoadingStates","__name","isLoadingBasicInformationForm","isLoadingContractDetailsForm","isLoadingEngagementAgreementDetails","isLoadingEmploymentEngagementAgreementDetails","isLoadingEmployment","isLoadingBenefitsOffersSchema","isLoadingBenefitOffers","isLoadingCompany","isLoadingCountries","employmentStatus","employmentId","currentStepName","basicInformationFields","contractDetailsFields","initialLoading","isEmploymentReadOnly","reviewStepAllowedEmploymentStatus","canInvite","disabledInviteButtonEmploymentStatus","shouldHandleReadOnlyEmployment","isLoading","isNavigatingToReview","useOnboarding","companyId","countryCode","type","options","skipSteps","externalId","onboardingInitialValues","updateErrorContext","useErrorReporting","internalEmploymentId","setInternalEmploymentId","useState","internalCountryCode","setInternalCountryCode","includeEngagementAgreementDetails","setIncludeEngagementAgreementDetails","useDynamicSteps","steps","stepsArray","useMemo","buildSteps","onStepChange","useCallback","step","fieldValues","stepState","setFieldValues","previousStep","nextStep","goToStep","setStepValues","useStepState","employmentEngagementAgreementDetails","useEmploymentEngagementAgreementDetails","engagementAgreementDetailsFieldValues","engagementAgreementDetailsSchema","useEngagementAgreementDetailsSchema","useEffect","hasFields","fieldsMetaRef","useRef","employment","refetchEmployment","useEmploymentQuery","benefitOffers","useBenefitOffers","company","refetchCompany","useCompany","isOnboardingReservesEnabled","onboardingReservesStatus","useEmploymentOnboardingReservesStatus","selectCountryForm","useCountriesSchemaField","createEmploymentMutation","useCreateEmployment","updateEmploymentMutation","useUpdateEmployment","updateBenefitsOffersMutation","useUpdateBenefitsOffers","updateEngagementAgreementMutation","useUpdateEmploymentEngagementAgreementDetails","updateContractEligibilityMutation","useUpsertContractEligibility","createEmploymentMutationAsync","mutationToPromise","updateEmploymentMutationAsync","updateBenefitsOffersMutationAsync","updateEngagementAgreementMutationAsync","updateContractEligibilityMutationAsync","formType","employmentKey","serverEmploymentData","useJSONSchema","form","jsonSchemaOptions","query","jsonSchemaVersion","mergedFormValues","useJSONSchemaForm","isBasicInformationDetailsEnabled","isContractDetailsEnabled","basicInformationForm","getBasicInformationSchemaVersion","annualGrossSalaryField","annualSalaryFieldPresentation","equityCompensationField","contractDetailsCustomFields","props","AnnualGrossSalary","values","field","offerEquity","equityCost","EquityPriceDetails","effectiveContractDetailsJsonSchemaVersion","getContractDetailsSchemaVersion","contractDetailsForm","benefitOffersSchema","useBenefitOffersSchema","initialValuesBenefitOffers","benefitsFormValues","mergeWith","stepFields","stepFieldsWithFlatFieldsets","stepPresentation","country","employmentBasicInformation","employmentContractDetails","employmentCountryCode","selectCountryInitialValues","getInitialValues","basicInformationInitialValues","initialValues","engagementAgreementDetailsInitialValues","contractDetailsInitialValues","benefitsInitialValues","enableAckFields","prettifyFormValues","parseFormValues","parseJSFToValidate","onSubmit","parsedValues","isEmploymentNotLoaded","hasChangedCountry","payload","response","error","back","next","goTo"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"./chunk-OMLHAQQX.js";import{a as r}from"./chunk-SLEK47CR.js";import{a as t}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a}from"./chunk-OMLHAQQX.js";import{a as r}from"./chunk-SLEK47CR.js";import{a as t}from"./chunk-TLQYNJBC.js";import{a as f}from"./chunk-3JPDFNNH.js";import{a as e}from"./chunk-45RIDSO6.js";import{a as p}from"./chunk-K5TZIA6W.js";import{a as n}from"./chunk-YUNA3QKT.js";import{a as m}from"./chunk-MRYRNB7Y.js";import{a as i}from"./chunk-P37U34EQ.js";import{useId as c}from"react";import{jsx as F}from"react/jsx-runtime";var k=i(({employmentId:l,render:T,options:d,initialValues:s})=>{let u=c(),o=t({employmentId:l,options:d,initialValues:s});return F(m.Provider,{value:{formId:u,terminationBag:o},children:T({terminationBag:o,components:{SubmitButton:r,Back:n,EmployeeComunicationStep:e,TerminationDetailsStep:a,PaidTimeOffStep:p,AdditionalDetailsStep:f}})})},"TerminationFlow");export{k as a};
|
|
2
|
+
//# sourceMappingURL=chunk-I5NOEJSP.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as v}from"./chunk-TXSUZLOI.js";import{a as I}from"./chunk-A3LRPGV3.js";import{a as N,b as j,c as D,d as O}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b as v}from"./chunk-TXSUZLOI.js";import{a as I}from"./chunk-A3LRPGV3.js";import{a as N,b as j,c as D,d as O}from"./chunk-LANAT75E.js";import{a as C,g as p,h as b,t as R,u as F}from"./chunk-RZCU2MT3.js";import{a as k}from"./chunk-TSPDJUGG.js";import{a as c}from"./chunk-P37U34EQ.js";import{useMemo as S,useRef as ee,useState as A}from"react";var pe=c(({countryCode:L,options:u,initialValues:l})=>{let P=N(),g=j(),{mutateAsync:q}=C(P),{mutateAsync:J}=C(g),[y,U]=A(L||null),[f,B]=A(null),w=ee({company_basic_information:{},address_details:{}}),{fieldValues:V,stepState:a,setFieldValues:W,previousStep:z,nextStep:G,goToStep:H}=k(I),{companyBasicInformationForm:d,isLoading:K}=D({jsfModify:u?.jsfModify?.company_basic_information,queryOptions:{enabled:a.currentStep.name==="company_basic_information"}}),{data:s,isLoading:Q}=O({countryCode:y,fieldValues:a.currentStep.name==="address_details"?{...a.values?.address_details||{},...V}:a.values?.address_details||{},options:{...u,jsfModify:u?.jsfModify?.address_details,queryOptions:{enabled:a.currentStep.name==="address_details"&&!!y&&!!f}}}),i=S(()=>({company_basic_information:d?.fields||[],address_details:s?.fields||[]}),[d?.fields,s?.fields]),X={company_basic_information:null,address_details:s?.meta?.["x-jsf-fieldsets"]||null},h=S(()=>b(i.company_basic_information,{...l,country_code:y||l?.country_code||""}),[i.company_basic_information,y,l]),E=S(()=>b(i.address_details,l||{}),[i.address_details,l]),Y=S(()=>({company_basic_information:h,address_details:E}),[h,E]),Z=c(o=>{H(o)},"goTo"),M=c(async o=>{let r=a.currentStep.name,e=i[r];return d&&r==="company_basic_information"?await p(o,e,{isPartialValidation:!1}):s&&r==="address_details"?await p(o,e,{isPartialValidation:!1}):{}},"parseFormValues");async function $(o){let r=a.currentStep.name,e=await M(o);switch(r in w.current&&(w.current[r]=R(e,i[r])),a.currentStep.name){case"company_basic_information":{if(U(e.country_code),f)return Promise.resolve({data:{countryCode:e.country_code??"",companyOwnerEmail:e.company_owner_email??"",companyOwnerName:e.company_owner_name??"",desiredCurrency:e.desired_currency??"",name:e.name??"",phoneNumber:e.phone_number??"",taxNumber:e.tax_number??""}});let x={country_code:e.country_code,company_owner_email:e.company_owner_email,company_owner_name:e.company_owner_name,desired_currency:e.desired_currency,name:e.name,phone_number:e.phone_number,tax_number:e.tax_number,terms_of_service_accepted_at:v()},n=await q(x);if(n.error)return Promise.resolve({data:null,error:n.error,rawError:n.rawError,fieldErrors:n.fieldErrors});let m=n.data?.data,_,t;if(m)if("data"in m&&m.data){let T=m.data.company;t=T,_=T?.id}else"company"in m&&(t=m.company,_=t?.id);return _&&B(_),Promise.resolve({data:{countryCode:t?.country_code??e.country_code??"",companyOwnerEmail:t?.company_owner_email??e.company_owner_email??"",companyOwnerName:t?.company_owner_name??e.company_owner_name??"",desiredCurrency:t?.desired_currency??e.desired_currency??"",name:t?.name??e.name??"",phoneNumber:t?.phone_number??e.phone_number??"",taxNumber:t?.tax_number??e.tax_number??""}})}case"address_details":{if(!f)throw F("Company ID is required to update address details");let n=await J({companyId:f,payload:{address_details:e},jsonSchemaVersion:u?.jsonSchemaVersion?.form_schema?.address_details});return n.error?Promise.resolve({data:null,error:n.error,rawError:n.rawError,fieldErrors:n.fieldErrors}):Promise.resolve({data:n.data})}default:throw F("Invalid step state")}}return c($,"onSubmit"),{isLoading:K||Q,isSubmitting:P.isPending||g.isPending,fieldValues:V,stepState:a,checkFieldUpdates:W,back:z,next:G,goTo:Z,onSubmit:$,fields:i[a.currentStep.name],meta:{fields:w.current,fieldsets:X[a.currentStep.name]},parseFormValues:M,handleValidation:c(async o=>{if(a.currentStep.name==="company_basic_information"&&d){let r=await p(o,d.fields,{isPartialValidation:!1});return d.handleValidation(r)}if(a.currentStep.name==="address_details"&&s){let r=await p(o,s.fields,{isPartialValidation:!1});return s.handleValidation(r)}return null},"handleValidation"),initialValues:Y}},"useCreateCompany");export{pe as a};
|
|
2
|
+
//# sourceMappingURL=chunk-IOVRTUOC.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{e as f}from"./chunk-RZCU2MT3.js";import{b as m}from"./chunk-626FTNKA.js";import{a as l}from"./chunk-P37U34EQ.js";import{createHeadlessForm as F,modify as y}from"@remoteoss/remote-json-schema-form-kit";var O=l((e,o,t)=>{if(t&&t.jsfModify){let{required:n,allOf:r,...s}=t.jsfModify,{schema:i}=y(e,s);e=i,n&&(e.required=[...Array.isArray(i.required)?i.required:[],...n]),r&&(e.allOf=[...Array.isArray(i.allOf)?i.allOf:[],...r])}let d={};o&&(d=m(e.properties||{},"money").reduce((r,s)=>(r[s]=f(o[s]),r),{}));let a=JSON.parse(JSON.stringify({...o,...d}));return{meta:{"x-jsf-fieldsets":e["x-jsf-fieldsets"],"x-jsf-presentation":e["x-jsf-presentation"]},...F(e,{initialValues:a})}},"createHeadlessForm");export{O as a};
|
|
2
|
+
//# sourceMappingURL=chunk-K2SHDZBB.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/common/createHeadlessForm.tsx"],"sourcesContent":["import { FieldValues } from 'react-hook-form';\nimport {\n createHeadlessForm as baseCreateHeadlessForm,\n modify,\n} from '@remoteoss/remote-json-schema-form-kit';\nimport { convertToCents } from '@/src/components/form/utils';\nimport {\n JSFModify,\n JSONSchemaFormResultWithFieldsets,\n} from '@/src/flows/types';\nimport { findFieldsByType } from '@/src/flows/utils';\nimport { JSFFieldset } from '@/src/types/remoteFlows';\n\n/*\n * Creates a headless form from a JSON Schema, useful to avoid code duplication when creating headless forms.\n * @param jsfSchema - The JSON Schema\n * @param fieldValues - The field values\n * @param options - The options\n * @returns The headless form\n */\nexport const createHeadlessForm = (\n jsfSchema: Record<string, unknown>,\n fieldValues?: FieldValues,\n options?: { jsfModify?: JSFModify },\n): JSONSchemaFormResultWithFieldsets => {\n if (options && options.jsfModify) {\n const { required, allOf, ...modifyConfig } = options.jsfModify;\n const { schema } = modify(jsfSchema, modifyConfig);\n jsfSchema = schema;\n\n if (required) {\n jsfSchema.required = [\n ...(Array.isArray(schema.required) ? schema.required : []),\n ...required,\n ];\n }\n\n if (allOf) {\n jsfSchema.allOf = [\n ...(Array.isArray(schema.allOf) ? schema.allOf : []),\n ...allOf,\n ];\n }\n }\n\n let moneyFieldsData: Record<string, number | null> = {};\n\n if (fieldValues) {\n const moneyFields = findFieldsByType(jsfSchema.properties || {}, 'money');\n moneyFieldsData = moneyFields.reduce<Record<string, number | null>>(\n (acc, field) => {\n acc[field] = convertToCents(fieldValues[field]);\n return acc;\n },\n {},\n );\n }\n\n /**\n * We create a deep copy of the field values to avoid modifying the original object.\n * This problem is caused by json-schema-form-v0.\n */\n const initialValues = JSON.parse(\n JSON.stringify({\n ...fieldValues,\n ...moneyFieldsData,\n }),\n );\n\n return {\n meta: {\n 'x-jsf-fieldsets': jsfSchema['x-jsf-fieldsets'] as JSFFieldset,\n },\n ...baseCreateHeadlessForm(jsfSchema, {\n initialValues,\n }),\n };\n};\n"],"mappings":"wHACA,OACE,sBAAsBA,EACtB,UAAAC,MACK,yCAgBA,IAAMC,EAAqBC,EAAA,CAChCC,EACAC,EACAC,IACsC,CACtC,GAAIA,GAAWA,EAAQ,UAAW,CAChC,GAAM,CAAE,SAAAC,EAAU,MAAAC,EAAO,GAAGC,CAAa,EAAIH,EAAQ,UAC/C,CAAE,OAAAI,CAAO,EAAIC,EAAOP,EAAWK,CAAY,EACjDL,EAAYM,EAERH,IACFH,EAAU,SAAW,CACnB,GAAI,MAAM,QAAQM,EAAO,QAAQ,EAAIA,EAAO,SAAW,CAAC,EACxD,GAAGH,CACL,GAGEC,IACFJ,EAAU,MAAQ,CAChB,GAAI,MAAM,QAAQM,EAAO,KAAK,EAAIA,EAAO,MAAQ,CAAC,EAClD,GAAGF,CACL,EAEJ,CAEA,IAAII,EAAiD,CAAC,EAElDP,IAEFO,EADoBC,EAAiBT,EAAU,YAAc,CAAC,EAAG,OAAO,EAC1C,OAC5B,CAACU,EAAKC,KACJD,EAAIC,CAAK,EAAIC,EAAeX,EAAYU,CAAK,CAAC,EACvCD,GAET,CAAC,CACH,GAOF,IAAMG,EAAgB,KAAK,MACzB,KAAK,UAAU,CACb,GAAGZ,EACH,GAAGO,CACL,CAAC,CACH,EAEA,MAAO,CACL,KAAM,CACJ,kBAAmBR,EAAU,iBAAiB,
|
|
1
|
+
{"version":3,"sources":["../src/common/createHeadlessForm.tsx"],"sourcesContent":["import { FieldValues } from 'react-hook-form';\nimport {\n createHeadlessForm as baseCreateHeadlessForm,\n modify,\n} from '@remoteoss/remote-json-schema-form-kit';\nimport { convertToCents } from '@/src/components/form/utils';\nimport {\n JSFModify,\n JSONSchemaFormResultWithFieldsets,\n} from '@/src/flows/types';\nimport { findFieldsByType } from '@/src/flows/utils';\nimport { JSFFieldset } from '@/src/types/remoteFlows';\n\n/*\n * Creates a headless form from a JSON Schema, useful to avoid code duplication when creating headless forms.\n * @param jsfSchema - The JSON Schema\n * @param fieldValues - The field values\n * @param options - The options\n * @returns The headless form\n */\nexport const createHeadlessForm = (\n jsfSchema: Record<string, unknown>,\n fieldValues?: FieldValues,\n options?: { jsfModify?: JSFModify },\n): JSONSchemaFormResultWithFieldsets => {\n if (options && options.jsfModify) {\n const { required, allOf, ...modifyConfig } = options.jsfModify;\n const { schema } = modify(jsfSchema, modifyConfig);\n jsfSchema = schema;\n\n if (required) {\n jsfSchema.required = [\n ...(Array.isArray(schema.required) ? schema.required : []),\n ...required,\n ];\n }\n\n if (allOf) {\n jsfSchema.allOf = [\n ...(Array.isArray(schema.allOf) ? schema.allOf : []),\n ...allOf,\n ];\n }\n }\n\n let moneyFieldsData: Record<string, number | null> = {};\n\n if (fieldValues) {\n const moneyFields = findFieldsByType(jsfSchema.properties || {}, 'money');\n moneyFieldsData = moneyFields.reduce<Record<string, number | null>>(\n (acc, field) => {\n acc[field] = convertToCents(fieldValues[field]);\n return acc;\n },\n {},\n );\n }\n\n /**\n * We create a deep copy of the field values to avoid modifying the original object.\n * This problem is caused by json-schema-form-v0.\n */\n const initialValues = JSON.parse(\n JSON.stringify({\n ...fieldValues,\n ...moneyFieldsData,\n }),\n );\n\n return {\n meta: {\n 'x-jsf-fieldsets': jsfSchema['x-jsf-fieldsets'] as JSFFieldset,\n 'x-jsf-presentation': jsfSchema['x-jsf-presentation'] as\n | Record<string, unknown>\n | undefined,\n },\n ...baseCreateHeadlessForm(jsfSchema, {\n initialValues,\n }),\n };\n};\n"],"mappings":"wHACA,OACE,sBAAsBA,EACtB,UAAAC,MACK,yCAgBA,IAAMC,EAAqBC,EAAA,CAChCC,EACAC,EACAC,IACsC,CACtC,GAAIA,GAAWA,EAAQ,UAAW,CAChC,GAAM,CAAE,SAAAC,EAAU,MAAAC,EAAO,GAAGC,CAAa,EAAIH,EAAQ,UAC/C,CAAE,OAAAI,CAAO,EAAIC,EAAOP,EAAWK,CAAY,EACjDL,EAAYM,EAERH,IACFH,EAAU,SAAW,CACnB,GAAI,MAAM,QAAQM,EAAO,QAAQ,EAAIA,EAAO,SAAW,CAAC,EACxD,GAAGH,CACL,GAGEC,IACFJ,EAAU,MAAQ,CAChB,GAAI,MAAM,QAAQM,EAAO,KAAK,EAAIA,EAAO,MAAQ,CAAC,EAClD,GAAGF,CACL,EAEJ,CAEA,IAAII,EAAiD,CAAC,EAElDP,IAEFO,EADoBC,EAAiBT,EAAU,YAAc,CAAC,EAAG,OAAO,EAC1C,OAC5B,CAACU,EAAKC,KACJD,EAAIC,CAAK,EAAIC,EAAeX,EAAYU,CAAK,CAAC,EACvCD,GAET,CAAC,CACH,GAOF,IAAMG,EAAgB,KAAK,MACzB,KAAK,UAAU,CACb,GAAGZ,EACH,GAAGO,CACL,CAAC,CACH,EAEA,MAAO,CACL,KAAM,CACJ,kBAAmBR,EAAU,iBAAiB,EAC9C,qBAAsBA,EAAU,oBAAoB,CAGtD,EACA,GAAGc,EAAuBd,EAAW,CACnC,cAAAa,CACF,CAAC,CACH,CACF,EA5DkC","names":["baseCreateHeadlessForm","modify","createHeadlessForm","__name","jsfSchema","fieldValues","options","required","allOf","modifyConfig","schema","modify","moneyFieldsData","findFieldsByType","acc","field","convertToCents","initialValues","baseCreateHeadlessForm"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as D,b as k,c as j,e as L}from"./chunk-NRNLLJCB.js";import{f as G}from"./chunk-EU7WVCHQ.js";import{a as le}from"./chunk-MKUSE7JK.js";import{a as ae}from"./chunk-AVVDKCFO.js";import{a as E,c as P,d as I,e as J,f as _}from"./chunk-T5HMFMXH.js";import{f as X,g as A,h as ee}from"./chunk-XG6ASTX5.js";import{m as T}from"./chunk-RZCU2MT3.js";import{e as Q}from"./chunk-H2O4CVKF.js";import{a as v}from"./chunk-P37U34EQ.js";import*as O from"@radix-ui/react-collapsible";var ce=O.Root,be=O.CollapsibleTrigger,fe=O.CollapsibleContent;import*as w from"@radix-ui/react-tabs";import{jsx as U}from"react/jsx-runtime";function Y({className:e,...a}){return U(w.Root,{"data-slot":"tabs",className:T("flex flex-col gap-2",e),...a})}v(Y,"Tabs");function W({className:e,...a}){return U(w.List,{"data-slot":"tabs-list",className:T("bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-1",e),...a})}v(W,"TabsList");function K({className:e,...a}){return U(w.Trigger,{"data-slot":"tabs-trigger",className:T("data-[state=active]:bg-background data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring inline-flex flex-1 items-center justify-center gap-1.5 rounded-md px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e),...a})}v(K,"TabsTrigger");function ge({className:e,...a}){return U(w.Content,{"data-slot":"tabs-content",className:T("flex-1 outline-none",e),...a})}v(ge,"TabsContent");import*as $ from"react";import*as N from"@radix-ui/react-scroll-area";import{jsx as H,jsxs as ye}from"react/jsx-runtime";var te=$.forwardRef(({className:e,children:a,...l},n)=>ye(N.Root,{ref:n,className:T("relative overflow-hidden",e),...l,children:[H(N.Viewport,{className:"h-full w-full rounded-[inherit]",children:a}),H(se,{}),H(N.Corner,{})]}));te.displayName=N.Root.displayName;var se=$.forwardRef(({className:e,orientation:a="vertical",...l},n)=>H(N.ScrollAreaScrollbar,{ref:n,orientation:a,className:T("flex touch-none select-none transition-colors",a==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-[1px]",a==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",e),...l,children:H(N.ScrollAreaThumb,{className:"relative flex-1 rounded-full bg-border"})}));se.displayName=N.ScrollAreaScrollbar.displayName;import{useState as B,useEffect as Ce,useMemo as we}from"react";import{useQuery as Re}from"@tanstack/react-query";import M from"fast-deep-equal";var oe=v(e=>e.name?e.type?!0:(console.warn(`Field "${e.name}" missing required "type" property`),!1):(console.warn('Field missing required "name" property:',e),!1),"validateField"),he=v((e,a)=>{if(M(e,a))return;let l=new Map((e||[]).map(t=>[t.value,t])),n=new Map((a||[]).map(t=>[t.value,t])),d=[],m=[],p=[];if(n.forEach((t,c)=>{l.has(c)||d.push({value:t.value,label:t.label})}),l.forEach((t,c)=>{if(!n.has(c))m.push({value:t.value,label:t.label});else{let g=n.get(c);if(!M(t,g)){let b={};t.label!==g.label&&(b.label={old:t.label,new:g.label}),Object.keys(b).length>0&&p.push({value:c,changes:b})}}}),!(d.length===0&&m.length===0&&p.length===0))return{added:d,removed:m,modified:p}},"compareOptions"),Ne=v((e,a)=>{let l=e.fields,n=a.fields;if(!l&&!n)return;let d=q(l||[],n||[]);if(d.added.length>0||d.removed.length>0||d.modified.length>0)return Array.from(d.fieldDiffs.values())},"compareNestedFields"),Se=v((e,a)=>{let l={label:e.label!==a.label,required:e.required!==a.required,inputType:e.inputType!==a.inputType,type:e.type!==a.type,jsonType:!M(e.jsonType,a.jsonType),name:e.name!==a.name,defaultValue:e.defaultValue!==a.defaultValue,minDate:e.minDate!==a.minDate,maxDate:e.maxDate!==a.maxDate,maxLength:e.maxLength!==a.maxLength,multiple:e.multiple!==a.multiple,isVisible:e.isVisible!==a.isVisible,options:!M(e.options,a.options)},n=(()=>{let m=e.fields,p=a.fields;if(!m&&!p)return!1;if(!m||!p)return!0;let t=q(m,p);return t.added.length>0||t.removed.length>0||t.modified.length>0})();return Object.values(l).some(m=>m)||n},"isFieldModified"),Te=v((e,a)=>{let l={};e.label!==a.label&&(l.label={old:e.label,new:a.label}),e.required!==a.required&&(l.required={old:e.required,new:a.required}),e.type!==a.type&&(l.type={old:e.type,new:a.type}),e.inputType!==a.inputType&&(l.inputType={old:e.inputType,new:a.inputType}),M(e.jsonType,a.jsonType)||(l.jsonType={old:e.jsonType,new:a.jsonType}),M(e.defaultValue,a.defaultValue)||(l.defaultValue={old:e.defaultValue,new:a.defaultValue}),e.minDate!==a.minDate&&(l.minDate={old:e.minDate||"",new:a.minDate||""}),e.maxDate!==a.maxDate&&(l.maxDate={old:e.maxDate||"",new:a.maxDate||""}),e.maxLength!==a.maxLength&&(l.maxLength={old:e.maxLength||0,new:a.maxLength||0}),e.multiple!==a.multiple&&(l.multiple={old:e.multiple||!1,new:a.multiple||!1}),e.isVisible!==a.isVisible&&(l.isVisible={old:e.isVisible,new:a.isVisible});let n=he(e.options,a.options);n&&(l.options=n);let d=Ne(e,a);return d&&(l.nestedFields=d),Object.keys(l).length>0?l:void 0},"getFieldChanges"),q=v((e=[],a=[])=>{let l=e.filter(oe),n=a.filter(oe),d=new Map(l.map(f=>[f.name,{field:f}])),m=new Map(n.map(f=>[f.name,{field:f}])),p=[],t=[],c=[],g=[],b=new Map;return m.forEach((f,i)=>{d.has(i)||(p.push(i),b.set(i,{fieldName:i,diffType:"added"}))}),d.forEach(({field:f},i)=>{if(!m.has(i))t.push(i),b.set(i,{fieldName:i,diffType:"removed"});else{let{field:h}=m.get(i);Se(f,h)?(c.push(i),b.set(i,{fieldName:i,diffType:"modified",changes:Te(f,h)})):(g.push(i),b.set(i,{fieldName:i,diffType:"unchanged"}))}}),{added:p,removed:t,modified:c,unchanged:g,fieldDiffs:b}},"compareFormFields"),ne=v(e=>{switch(e){case"added":return"bg-green-50 border-l-4 border-green-500";case"removed":return"bg-red-50 border-l-4 border-red-500";case"modified":return"bg-yellow-50 border-l-4 border-yellow-500";default:return""}},"getDiffStyles");import{useMemo as ie,useRef as z,useEffect as xe}from"react";import{jsx as s,jsxs as u}from"react/jsx-runtime";var Fe=v(({children:e,diffType:a,changes:l})=>{let n=ne(a);if(a==="unchanged")return s("div",{children:e});let m={added:s("span",{className:"text-xs font-semibold text-green-700 bg-green-100 px-2 py-1 rounded",children:"NEW"}),removed:s("span",{className:"text-xs font-semibold text-red-700 bg-red-100 px-2 py-1 rounded",children:"REMOVED"}),modified:s("span",{className:"text-xs font-semibold text-yellow-700 bg-yellow-100 px-2 py-1 rounded",children:"MODIFIED"})}[a],p=v(()=>{if(!l||a!=="modified")return null;let t=[];if(l.label&&t.push(u("div",{className:"text-xs",children:[s("span",{className:"font-semibold",children:"Label:"})," ",s("span",{className:"line-through text-red-600",children:l.label.old})," ","\u2192 ",s("span",{className:"text-green-600",children:l.label.new})]},"label")),l.required&&t.push(u("div",{className:"text-xs",children:[s("span",{className:"font-semibold",children:"Required:"})," ",s("span",{className:"line-through text-red-600",children:l.required.old?"Yes":"No"})," ","\u2192"," ",s("span",{className:"text-green-600",children:l.required.new?"Yes":"No"})]},"required")),l.type&&t.push(u("div",{className:"text-xs",children:[s("span",{className:"font-semibold",children:"Type:"})," ",s("span",{className:"line-through text-red-600",children:l.type.old})," ","\u2192 ",s("span",{className:"text-green-600",children:l.type.new})]},"type")),l.inputType&&t.push(u("div",{className:"text-xs",children:[s("span",{className:"font-semibold",children:"Input Type:"})," ",s("span",{className:"line-through text-red-600",children:l.inputType.old})," ","\u2192 ",s("span",{className:"text-green-600",children:l.inputType.new})]},"inputType")),l.jsonType){let c=Array.isArray(l.jsonType.old)?l.jsonType.old.join(" | "):l.jsonType.old,g=Array.isArray(l.jsonType.new)?l.jsonType.new.join(" | "):l.jsonType.new;t.push(u("div",{className:"text-xs",children:[s("span",{className:"font-semibold",children:"JSON Type:"})," ",s("span",{className:"line-through text-red-600",children:c})," \u2192"," ",s("span",{className:"text-green-600",children:g})]},"jsonType"))}return l.defaultValue!==void 0&&t.push(u("div",{className:"text-xs",children:[s("span",{className:"font-semibold",children:"Default Value:"})," ",s("span",{className:"line-through text-red-600",children:JSON.stringify(l.defaultValue.old)})," ","\u2192"," ",s("span",{className:"text-green-600",children:JSON.stringify(l.defaultValue.new)})]},"defaultValue")),l.options&&(l.options.added.length>0&&t.push(u("div",{className:"text-xs",children:[s("span",{className:"font-semibold text-green-700",children:"Options Added:"})," ",l.options.added.map(c=>c.label).join(", ")]},"options-added")),l.options.removed.length>0&&t.push(u("div",{className:"text-xs",children:[s("span",{className:"font-semibold text-red-700",children:"Options Removed:"})," ",l.options.removed.map(c=>c.label).join(", ")]},"options-removed")),l.options.modified.length>0&&t.push(u("div",{className:"text-xs",children:[s("span",{className:"font-semibold",children:"Options Modified:"})," ",l.options.modified.length," option(s)"]},"options-modified"))),l.nestedFields&&l.nestedFields.length>0&&t.push(u("div",{className:"text-xs",children:[s("span",{className:"font-semibold",children:"Nested Fields:"})," ",l.nestedFields.length," field(s) changed"]},"nestedFields")),t.length===0?null:u("div",{className:"mt-2 p-2 bg-yellow-50 rounded border border-yellow-200 space-y-1",children:[s("div",{className:"text-xs font-semibold text-yellow-800 mb-1",children:"Changes:"}),t]})},"renderChanges");return u("div",{className:`p-3 mb-2 rounded ${n} relative`,children:[s("div",{className:"absolute top-2 right-2",children:m}),e,p()]})},"FieldWrapper"),re=v(({version:e,fields:a,fieldsets:l,diffMap:n,title:d,scrollRef:m})=>{let p=X({mode:"onBlur"}),t=ie(()=>{let c=v((g,b)=>g.map(f=>{let i=b.get(f.name),h=i?.diffType||"unchanged",S=i?.changes,x=f.fields,R=f;if(x&&Array.isArray(x)){let V=new Map;S&&typeof S=="object"&&"nestedFields"in S&&Array.isArray(S.nestedFields)&&S.nestedFields.forEach(o=>{V.set(o.fieldName,{diffType:o.diffType,changes:o.changes})});let F=c(x,V);R={...f,fields:F}}return{...R,WrapperComponent:v(({children:V})=>s(Fe,{diffType:h,fieldName:f.name,changes:S,children:V}),"WrapperComponent")}}),"applyWrappers");return c(a,n)},[a,n]);return u(D,{className:"h-full",children:[s(k,{children:u(j,{children:[d," - Version ",e]})}),s(L,{ref:m,className:"overflow-y-auto max-h-[600px]",children:s(ee,{...p,children:s("form",{className:"space-y-4",children:s(ae,{fields:t,fieldsets:l,fieldValues:{}})})})})]})},"FormPanel"),de=v(({topVersion:e,bottomVersion:a,topFields:l,bottomFields:n,topFieldsets:d,bottomFieldsets:m,isLoading:p})=>{let t=ie(()=>q(l,n),[l,n]),c=z(null),g=z(null),b=z(!1);if(xe(()=>{let i=c.current,h=g.current;if(!i||!h)return;let S=v(()=>{b.current||(b.current=!0,h.scrollTop=i.scrollTop,requestAnimationFrame(()=>{b.current=!1}))},"handleLeftScroll"),x=v(()=>{b.current||(b.current=!0,i.scrollTop=h.scrollTop,requestAnimationFrame(()=>{b.current=!1}))},"handleRightScroll");return i.addEventListener("scroll",S),h.addEventListener("scroll",x),()=>{i.removeEventListener("scroll",S),h.removeEventListener("scroll",x)}},[l,n]),p)return s("div",{className:"flex items-center justify-center h-96",children:u("div",{className:"text-center",children:[s("div",{className:"animate-spin rounded-full h-12 w-12 border-b-2 border-gray-900 mx-auto"}),s("p",{className:"mt-4 text-gray-600",children:"Loading schemas..."})]})});let f=t.added.length===0&&t.removed.length===0&&t.modified.length===0;return u("div",{className:"space-y-6",children:[s(D,{children:s(L,{className:"pt-6",children:f?s("p",{className:"text-center text-gray-600",children:"No differences detected between the two versions"}):u("div",{className:"flex gap-6 justify-center",children:[t.added.length>0&&u("div",{className:"flex items-center gap-2",children:[s("span",{className:"w-4 h-4 bg-green-500 rounded"}),u("span",{className:"text-sm",children:[t.added.length," field",t.added.length>1?"s":""," ","added"]})]}),t.removed.length>0&&u("div",{className:"flex items-center gap-2",children:[s("span",{className:"w-4 h-4 bg-red-500 rounded"}),u("span",{className:"text-sm",children:[t.removed.length," field",t.removed.length>1?"s":""," removed"]})]}),t.modified.length>0&&u("div",{className:"flex items-center gap-2",children:[s("span",{className:"w-4 h-4 bg-yellow-500 rounded"}),u("span",{className:"text-sm",children:[t.modified.length," field",t.modified.length>1?"s":""," modified"]})]})]})})}),u("div",{className:"grid grid-cols-2 gap-6",children:[s(re,{version:e,fields:l,fieldsets:d,diffMap:t.fieldDiffs,title:"Left",scrollRef:c}),s(re,{version:a,fields:n,fieldsets:m,diffMap:t.fieldDiffs,title:"Right",scrollRef:g})]})]})},"SchemaFormComparison");var ve=[{value:1,label:"v1 (Legacy)"},{value:3,label:"v3 (Recommended)"}],Z={ALB:[{value:1,label:"v1"}],ARE:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],ARG:[{value:1,label:"v1"}],ARM:[{value:1,label:"v1"}],AUS:[{value:1,label:"v1"}],AUT:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],BEL:[{value:1,label:"v1"},{value:2,label:"v2"}],BGD:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],BGR:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],BIH:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],BLR:[{value:1,label:"v1"},{value:2,label:"v2"}],BOL:[{value:1,label:"v1"}],BRA:[{value:1,label:"v1"}],CAN:[{value:1,label:"v1"},{value:2,label:"v2"}],CHE:[{value:1,label:"v1"},{value:2,label:"v2"}],CHL:[{value:1,label:"v1"}],CHN:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],COL:[{value:1,label:"v1"}],CRI:[{value:1,label:"v1"}],CYP:[{value:1,label:"v1"}],CZE:[{value:1,label:"v1"},{value:2,label:"v2"}],DEU:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],DNK:[{value:1,label:"v1"}],DOM:[{value:1,label:"v1"}],ECU:[{value:1,label:"v1"}],EGY:[{value:1,label:"v1"},{value:2,label:"v2"}],ESP:[{value:1,label:"v1"},{value:2,label:"v2"}],EST:[{value:1,label:"v1"}],FIN:[{value:1,label:"v1"}],FRA:[{value:1,label:"v1"},{value:2,label:"v2"}],GBR:[{value:1,label:"v1"},{value:2,label:"v2"}],GEO:[{value:1,label:"v1"}],GRC:[{value:1,label:"v1"}],GTM:[{value:1,label:"v1"}],HKG:[{value:1,label:"v1"},{value:2,label:"v2"}],HND:[{value:1,label:"v1"}],HRV:[{value:1,label:"v1"},{value:2,label:"v2"}],HUN:[{value:1,label:"v1"}],IDN:[{value:1,label:"v1"}],IND:[{value:1,label:"v1"},{value:2,label:"v2"}],IRL:[{value:1,label:"v1"}],ISL:[{value:1,label:"v1"},{value:2,label:"v2"}],ISR:[{value:1,label:"v1"}],ITA:[{value:1,label:"v1"}],JAM:[{value:1,label:"v1"},{value:2,label:"v2"}],JPN:[{value:1,label:"v1"},{value:2,label:"v2"}],KEN:[{value:1,label:"v1"},{value:2,label:"v2"}],KGZ:[{value:1,label:"v1"}],KHM:[{value:1,label:"v1"}],KOR:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],LBN:[{value:1,label:"v1"},{value:2,label:"v2"}],LKA:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],LTU:[{value:1,label:"v1"}],LUX:[{value:1,label:"v1"}],LVA:[{value:1,label:"v1"},{value:2,label:"v2"}],MAR:[{value:1,label:"v1"}],MDA:[{value:1,label:"v1"}],MEX:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],MKD:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],MLT:[{value:1,label:"v1"}],MNG:[{value:1,label:"v1"}],MUS:[{value:1,label:"v1"},{value:2,label:"v2"}],MYS:[{value:1,label:"v1"},{value:2,label:"v2"}],NGA:[{value:1,label:"v1"},{value:2,label:"v2"}],NIC:[{value:1,label:"v1"}],NLD:[{value:1,label:"v1"}],NOR:[{value:1,label:"v1"},{value:2,label:"v2"}],NZL:[{value:1,label:"v1"},{value:2,label:"v2"}],PAK:[{value:1,label:"v1"},{value:2,label:"v2"}],PAN:[{value:1,label:"v1"}],PER:[{value:1,label:"v1"}],PHL:[{value:1,label:"v1"}],POL:[{value:1,label:"v1"}],PRI:[{value:1,label:"v1"}],PRT:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],PRY:[{value:1,label:"v1"}],ROU:[{value:1,label:"v1"}],SAU:[{value:1,label:"v1"},{value:2,label:"v2"}],SGP:[{value:1,label:"v1"},{value:2,label:"v2"}],SLV:[{value:1,label:"v1"}],SRB:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],SVK:[{value:1,label:"v1"}],SVN:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],SWE:[{value:1,label:"v1"},{value:2,label:"v2"}],THA:[{value:1,label:"v1"},{value:2,label:"v2"}],TUN:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],TUR:[{value:1,label:"v1"}],TWN:[{value:1,label:"v1"}],UGA:[{value:1,label:"v1"}],UKR:[{value:1,label:"v1"}],URY:[{value:1,label:"v1"}],USA:[{value:1,label:"v1"}],VNM:[{value:1,label:"v1"},{value:2,label:"v2"}],XKX:[{value:1,label:"v1"}],ZAF:[{value:1,label:"v1"}],ZWE:[{value:1,label:"v1"}]},ue=Object.fromEntries(Object.entries(Z).filter(([,e])=>e.length>1)),me=[{value:"employment_basic_information",label:"Basic Information"},{value:"contract_details",label:"Contract Details"}];import{jsx as r,jsxs as y}from"react/jsx-runtime";var pe=v(()=>{let[e,a]=B("employment_basic_information"),[l,n]=B(1),[d,m]=B(1),[p,t]=B("ARE"),{client:c}=Q(),{data:g}=Re({...le(c,"schema-comparison"),select:v(o=>o.data?.data?.filter(C=>C.eor_onboarding).filter(C=>Object.keys(ue).includes(C.code)).map(C=>({label:C.name,value:C.code}))||[],"select")}),b=e==="contract_details",{data:f,isLoading:i}=G({countryCode:p,form:e,fieldValues:{},jsonSchemaVersion:l,options:{queryOptions:{enabled:!0}}}),{data:h,isLoading:S}=G({countryCode:p,form:e,fieldValues:{},jsonSchemaVersion:d,options:{queryOptions:{enabled:!0}}}),x=i||S,R=Z[p],V=R!==void 0,F=we(()=>e==="employment_basic_information"?ve:R||[{value:"latest",label:"Latest"}],[e,R]);return Ce(()=>{let o=F.map(C=>C.value);o.includes(l)||n(F[0].value),o.includes(d)||m(F[0].value)},[e,p,F,l,d]),y("div",{className:"space-y-6",children:[y(D,{children:[r(k,{children:r(j,{children:"Configuration"})}),y(L,{className:"space-y-4",children:[y("div",{children:[r(A,{className:"mb-2 block",children:"Form Type"}),r(Y,{value:e,onValueChange:o=>a(o),children:r(W,{className:"grid w-full grid-cols-2",children:me.map(o=>r(K,{value:o.value,children:o.label},o.value))})})]}),b&&!V&&r("div",{className:"rounded-md bg-yellow-50 p-4 border border-yellow-200",children:y("div",{className:"flex",children:[r("div",{className:"flex-shrink-0",children:r("svg",{className:"h-5 w-5 text-yellow-400",viewBox:"0 0 20 20",fill:"currentColor",children:r("path",{fillRule:"evenodd",d:"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z",clipRule:"evenodd"})})}),y("div",{className:"ml-3",children:[r("h3",{className:"text-sm font-medium text-yellow-800",children:"Version mappings not found"}),r("div",{className:"mt-2 text-sm text-yellow-700",children:y("p",{children:["Country"," ",r("span",{className:"font-semibold",children:p})," is not configured in COUNTRY_CONTRACT_VERSIONS. Using default (latest only)."]})})]})]})}),b&&y("div",{children:[r(A,{htmlFor:"country-select",className:"mb-2 block",children:"Country"}),y(E,{value:p,onValueChange:t,children:[r(I,{id:"country-select",children:r(P,{placeholder:"Select a country"})}),r(J,{children:g?.map(o=>r(_,{value:o.value,children:o.label},o.value))})]})]}),y("div",{className:"grid grid-cols-2 gap-4",children:[y("div",{children:[r(A,{htmlFor:"top-version",className:"mb-2 block",children:"Left Version"}),y(E,{value:String(l),onValueChange:o=>n(o==="latest"?"latest":Number(o)),children:[r(I,{id:"top-version",children:r(P,{placeholder:"Select version"})}),r(J,{children:F.map(o=>r(_,{value:String(o.value),children:o.label},String(o.value)))})]})]}),y("div",{children:[r(A,{htmlFor:"bottom-version",className:"mb-2 block",children:"Right Version"}),y(E,{value:String(d),onValueChange:o=>m(o==="latest"?"latest":Number(o)),children:[r(I,{id:"bottom-version",children:r(P,{placeholder:"Select version"})}),r(J,{children:F.map(o=>r(_,{value:String(o.value),children:o.label},String(o.value)))})]})]})]})]})]}),r(de,{topVersion:l,bottomVersion:d,topFields:f?.fields||[],bottomFields:h?.fields||[],topFieldsets:f?.meta?.["x-jsf-fieldsets"],bottomFieldsets:h?.meta?.["x-jsf-fieldsets"],isLoading:x})]})},"JsonSchemaComparison");export{ce as a,be as b,fe as c,Y as d,W as e,K as f,ge as g,te as h,pe as i};
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as D,b as k,c as j,e as L}from"./chunk-NRNLLJCB.js";import{f as G}from"./chunk-TSWZPJNS.js";import{a as le}from"./chunk-MKUSE7JK.js";import{a as ae}from"./chunk-AVVDKCFO.js";import{a as E,c as P,d as I,e as J,f as _}from"./chunk-T5HMFMXH.js";import{f as X,g as A,h as ee}from"./chunk-XG6ASTX5.js";import{m as T}from"./chunk-RZCU2MT3.js";import{e as Q}from"./chunk-H2O4CVKF.js";import{a as v}from"./chunk-P37U34EQ.js";import*as O from"@radix-ui/react-collapsible";var ce=O.Root,be=O.CollapsibleTrigger,fe=O.CollapsibleContent;import*as w from"@radix-ui/react-tabs";import{jsx as U}from"react/jsx-runtime";function Y({className:e,...a}){return U(w.Root,{"data-slot":"tabs",className:T("flex flex-col gap-2",e),...a})}v(Y,"Tabs");function W({className:e,...a}){return U(w.List,{"data-slot":"tabs-list",className:T("bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-1",e),...a})}v(W,"TabsList");function K({className:e,...a}){return U(w.Trigger,{"data-slot":"tabs-trigger",className:T("data-[state=active]:bg-background data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring inline-flex flex-1 items-center justify-center gap-1.5 rounded-md px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e),...a})}v(K,"TabsTrigger");function ge({className:e,...a}){return U(w.Content,{"data-slot":"tabs-content",className:T("flex-1 outline-none",e),...a})}v(ge,"TabsContent");import*as z from"react";import*as N from"@radix-ui/react-scroll-area";import{jsx as H,jsxs as ye}from"react/jsx-runtime";var te=z.forwardRef(({className:e,children:a,...l},n)=>ye(N.Root,{ref:n,className:T("relative overflow-hidden",e),...l,children:[H(N.Viewport,{className:"h-full w-full rounded-[inherit]",children:a}),H(se,{}),H(N.Corner,{})]}));te.displayName=N.Root.displayName;var se=z.forwardRef(({className:e,orientation:a="vertical",...l},n)=>H(N.ScrollAreaScrollbar,{ref:n,orientation:a,className:T("flex touch-none select-none transition-colors",a==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-[1px]",a==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",e),...l,children:H(N.ScrollAreaThumb,{className:"relative flex-1 rounded-full bg-border"})}));se.displayName=N.ScrollAreaScrollbar.displayName;import{useState as B,useEffect as Ce,useMemo as we}from"react";import{useQuery as Re}from"@tanstack/react-query";import M from"fast-deep-equal";var oe=v(e=>e.name?e.type?!0:(console.warn(`Field "${e.name}" missing required "type" property`),!1):(console.warn('Field missing required "name" property:',e),!1),"validateField"),he=v((e,a)=>{if(M(e,a))return;let l=new Map((e||[]).map(t=>[t.value,t])),n=new Map((a||[]).map(t=>[t.value,t])),d=[],m=[],p=[];if(n.forEach((t,c)=>{l.has(c)||d.push({value:t.value,label:t.label})}),l.forEach((t,c)=>{if(!n.has(c))m.push({value:t.value,label:t.label});else{let g=n.get(c);if(!M(t,g)){let b={};t.label!==g.label&&(b.label={old:t.label,new:g.label}),Object.keys(b).length>0&&p.push({value:c,changes:b})}}}),!(d.length===0&&m.length===0&&p.length===0))return{added:d,removed:m,modified:p}},"compareOptions"),Ne=v((e,a)=>{let l=e.fields,n=a.fields;if(!l&&!n)return;let d=q(l||[],n||[]);if(d.added.length>0||d.removed.length>0||d.modified.length>0)return Array.from(d.fieldDiffs.values())},"compareNestedFields"),Se=v((e,a)=>{let l={label:e.label!==a.label,required:e.required!==a.required,inputType:e.inputType!==a.inputType,type:e.type!==a.type,jsonType:!M(e.jsonType,a.jsonType),name:e.name!==a.name,defaultValue:e.defaultValue!==a.defaultValue,minDate:e.minDate!==a.minDate,maxDate:e.maxDate!==a.maxDate,maxLength:e.maxLength!==a.maxLength,multiple:e.multiple!==a.multiple,isVisible:e.isVisible!==a.isVisible,options:!M(e.options,a.options)},n=(()=>{let m=e.fields,p=a.fields;if(!m&&!p)return!1;if(!m||!p)return!0;let t=q(m,p);return t.added.length>0||t.removed.length>0||t.modified.length>0})();return Object.values(l).some(m=>m)||n},"isFieldModified"),Te=v((e,a)=>{let l={};e.label!==a.label&&(l.label={old:e.label,new:a.label}),e.required!==a.required&&(l.required={old:e.required,new:a.required}),e.type!==a.type&&(l.type={old:e.type,new:a.type}),e.inputType!==a.inputType&&(l.inputType={old:e.inputType,new:a.inputType}),M(e.jsonType,a.jsonType)||(l.jsonType={old:e.jsonType,new:a.jsonType}),M(e.defaultValue,a.defaultValue)||(l.defaultValue={old:e.defaultValue,new:a.defaultValue}),e.minDate!==a.minDate&&(l.minDate={old:e.minDate||"",new:a.minDate||""}),e.maxDate!==a.maxDate&&(l.maxDate={old:e.maxDate||"",new:a.maxDate||""}),e.maxLength!==a.maxLength&&(l.maxLength={old:e.maxLength||0,new:a.maxLength||0}),e.multiple!==a.multiple&&(l.multiple={old:e.multiple||!1,new:a.multiple||!1}),e.isVisible!==a.isVisible&&(l.isVisible={old:e.isVisible,new:a.isVisible});let n=he(e.options,a.options);n&&(l.options=n);let d=Ne(e,a);return d&&(l.nestedFields=d),Object.keys(l).length>0?l:void 0},"getFieldChanges"),q=v((e=[],a=[])=>{let l=e.filter(oe),n=a.filter(oe),d=new Map(l.map(f=>[f.name,{field:f}])),m=new Map(n.map(f=>[f.name,{field:f}])),p=[],t=[],c=[],g=[],b=new Map;return m.forEach((f,i)=>{d.has(i)||(p.push(i),b.set(i,{fieldName:i,diffType:"added"}))}),d.forEach(({field:f},i)=>{if(!m.has(i))t.push(i),b.set(i,{fieldName:i,diffType:"removed"});else{let{field:h}=m.get(i);Se(f,h)?(c.push(i),b.set(i,{fieldName:i,diffType:"modified",changes:Te(f,h)})):(g.push(i),b.set(i,{fieldName:i,diffType:"unchanged"}))}}),{added:p,removed:t,modified:c,unchanged:g,fieldDiffs:b}},"compareFormFields"),ne=v(e=>{switch(e){case"added":return"bg-green-50 border-l-4 border-green-500";case"removed":return"bg-red-50 border-l-4 border-red-500";case"modified":return"bg-yellow-50 border-l-4 border-yellow-500";default:return""}},"getDiffStyles");import{useMemo as ie,useRef as $,useEffect as xe}from"react";import{jsx as s,jsxs as u}from"react/jsx-runtime";var Fe=v(({children:e,diffType:a,changes:l})=>{let n=ne(a);if(a==="unchanged")return s("div",{children:e});let m={added:s("span",{className:"text-xs font-semibold text-green-700 bg-green-100 px-2 py-1 rounded",children:"NEW"}),removed:s("span",{className:"text-xs font-semibold text-red-700 bg-red-100 px-2 py-1 rounded",children:"REMOVED"}),modified:s("span",{className:"text-xs font-semibold text-yellow-700 bg-yellow-100 px-2 py-1 rounded",children:"MODIFIED"})}[a],p=v(()=>{if(!l||a!=="modified")return null;let t=[];if(l.label&&t.push(u("div",{className:"text-xs",children:[s("span",{className:"font-semibold",children:"Label:"})," ",s("span",{className:"line-through text-red-600",children:l.label.old})," ","\u2192 ",s("span",{className:"text-green-600",children:l.label.new})]},"label")),l.required&&t.push(u("div",{className:"text-xs",children:[s("span",{className:"font-semibold",children:"Required:"})," ",s("span",{className:"line-through text-red-600",children:l.required.old?"Yes":"No"})," ","\u2192"," ",s("span",{className:"text-green-600",children:l.required.new?"Yes":"No"})]},"required")),l.type&&t.push(u("div",{className:"text-xs",children:[s("span",{className:"font-semibold",children:"Type:"})," ",s("span",{className:"line-through text-red-600",children:l.type.old})," ","\u2192 ",s("span",{className:"text-green-600",children:l.type.new})]},"type")),l.inputType&&t.push(u("div",{className:"text-xs",children:[s("span",{className:"font-semibold",children:"Input Type:"})," ",s("span",{className:"line-through text-red-600",children:l.inputType.old})," ","\u2192 ",s("span",{className:"text-green-600",children:l.inputType.new})]},"inputType")),l.jsonType){let c=Array.isArray(l.jsonType.old)?l.jsonType.old.join(" | "):l.jsonType.old,g=Array.isArray(l.jsonType.new)?l.jsonType.new.join(" | "):l.jsonType.new;t.push(u("div",{className:"text-xs",children:[s("span",{className:"font-semibold",children:"JSON Type:"})," ",s("span",{className:"line-through text-red-600",children:c})," \u2192"," ",s("span",{className:"text-green-600",children:g})]},"jsonType"))}return l.defaultValue!==void 0&&t.push(u("div",{className:"text-xs",children:[s("span",{className:"font-semibold",children:"Default Value:"})," ",s("span",{className:"line-through text-red-600",children:JSON.stringify(l.defaultValue.old)})," ","\u2192"," ",s("span",{className:"text-green-600",children:JSON.stringify(l.defaultValue.new)})]},"defaultValue")),l.options&&(l.options.added.length>0&&t.push(u("div",{className:"text-xs",children:[s("span",{className:"font-semibold text-green-700",children:"Options Added:"})," ",l.options.added.map(c=>c.label).join(", ")]},"options-added")),l.options.removed.length>0&&t.push(u("div",{className:"text-xs",children:[s("span",{className:"font-semibold text-red-700",children:"Options Removed:"})," ",l.options.removed.map(c=>c.label).join(", ")]},"options-removed")),l.options.modified.length>0&&t.push(u("div",{className:"text-xs",children:[s("span",{className:"font-semibold",children:"Options Modified:"})," ",l.options.modified.length," option(s)"]},"options-modified"))),l.nestedFields&&l.nestedFields.length>0&&t.push(u("div",{className:"text-xs",children:[s("span",{className:"font-semibold",children:"Nested Fields:"})," ",l.nestedFields.length," field(s) changed"]},"nestedFields")),t.length===0?null:u("div",{className:"mt-2 p-2 bg-yellow-50 rounded border border-yellow-200 space-y-1",children:[s("div",{className:"text-xs font-semibold text-yellow-800 mb-1",children:"Changes:"}),t]})},"renderChanges");return u("div",{className:`p-3 mb-2 rounded ${n} relative`,children:[s("div",{className:"absolute top-2 right-2",children:m}),e,p()]})},"FieldWrapper"),re=v(({version:e,fields:a,fieldsets:l,diffMap:n,title:d,scrollRef:m})=>{let p=X({mode:"onBlur"}),t=ie(()=>{let c=v((g,b)=>g.map(f=>{let i=b.get(f.name),h=i?.diffType||"unchanged",S=i?.changes,x=f.fields,R=f;if(x&&Array.isArray(x)){let V=new Map;S&&typeof S=="object"&&"nestedFields"in S&&Array.isArray(S.nestedFields)&&S.nestedFields.forEach(o=>{V.set(o.fieldName,{diffType:o.diffType,changes:o.changes})});let F=c(x,V);R={...f,fields:F}}return{...R,WrapperComponent:v(({children:V})=>s(Fe,{diffType:h,fieldName:f.name,changes:S,children:V}),"WrapperComponent")}}),"applyWrappers");return c(a,n)},[a,n]);return u(D,{className:"h-full",children:[s(k,{children:u(j,{children:[d," - Version ",e]})}),s(L,{ref:m,className:"overflow-y-auto max-h-[600px]",children:s(ee,{...p,children:s("form",{className:"space-y-4",children:s(ae,{fields:t,fieldsets:l,fieldValues:{}})})})})]})},"FormPanel"),de=v(({topVersion:e,bottomVersion:a,topFields:l,bottomFields:n,topFieldsets:d,bottomFieldsets:m,isLoading:p})=>{let t=ie(()=>q(l,n),[l,n]),c=$(null),g=$(null),b=$(!1);if(xe(()=>{let i=c.current,h=g.current;if(!i||!h)return;let S=v(()=>{b.current||(b.current=!0,h.scrollTop=i.scrollTop,requestAnimationFrame(()=>{b.current=!1}))},"handleLeftScroll"),x=v(()=>{b.current||(b.current=!0,i.scrollTop=h.scrollTop,requestAnimationFrame(()=>{b.current=!1}))},"handleRightScroll");return i.addEventListener("scroll",S),h.addEventListener("scroll",x),()=>{i.removeEventListener("scroll",S),h.removeEventListener("scroll",x)}},[l,n]),p)return s("div",{className:"flex items-center justify-center h-96",children:u("div",{className:"text-center",children:[s("div",{className:"animate-spin rounded-full h-12 w-12 border-b-2 border-gray-900 mx-auto"}),s("p",{className:"mt-4 text-gray-600",children:"Loading schemas..."})]})});let f=t.added.length===0&&t.removed.length===0&&t.modified.length===0;return u("div",{className:"space-y-6",children:[s(D,{children:s(L,{className:"pt-6",children:f?s("p",{className:"text-center text-gray-600",children:"No differences detected between the two versions"}):u("div",{className:"flex gap-6 justify-center",children:[t.added.length>0&&u("div",{className:"flex items-center gap-2",children:[s("span",{className:"w-4 h-4 bg-green-500 rounded"}),u("span",{className:"text-sm",children:[t.added.length," field",t.added.length>1?"s":""," ","added"]})]}),t.removed.length>0&&u("div",{className:"flex items-center gap-2",children:[s("span",{className:"w-4 h-4 bg-red-500 rounded"}),u("span",{className:"text-sm",children:[t.removed.length," field",t.removed.length>1?"s":""," removed"]})]}),t.modified.length>0&&u("div",{className:"flex items-center gap-2",children:[s("span",{className:"w-4 h-4 bg-yellow-500 rounded"}),u("span",{className:"text-sm",children:[t.modified.length," field",t.modified.length>1?"s":""," modified"]})]})]})})}),u("div",{className:"grid grid-cols-2 gap-6",children:[s(re,{version:e,fields:l,fieldsets:d,diffMap:t.fieldDiffs,title:"Left",scrollRef:c}),s(re,{version:a,fields:n,fieldsets:m,diffMap:t.fieldDiffs,title:"Right",scrollRef:g})]})]})},"SchemaFormComparison");var ve=[{value:1,label:"v1 (Legacy)"},{value:3,label:"v3 (Recommended)"}],Z={ALB:[{value:1,label:"v1"}],ARE:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],ARG:[{value:1,label:"v1"}],ARM:[{value:1,label:"v1"}],AUS:[{value:1,label:"v1"}],AUT:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],BEL:[{value:1,label:"v1"},{value:2,label:"v2"}],BGD:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],BGR:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],BIH:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],BLR:[{value:1,label:"v1"},{value:2,label:"v2"}],BOL:[{value:1,label:"v1"}],BRA:[{value:1,label:"v1"}],CAN:[{value:1,label:"v1"},{value:2,label:"v2"}],CHE:[{value:1,label:"v1"},{value:2,label:"v2"}],CHL:[{value:1,label:"v1"}],CHN:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],COL:[{value:1,label:"v1"}],CRI:[{value:1,label:"v1"}],CYP:[{value:1,label:"v1"}],CZE:[{value:1,label:"v1"},{value:2,label:"v2"}],DEU:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],DNK:[{value:1,label:"v1"}],DOM:[{value:1,label:"v1"}],ECU:[{value:1,label:"v1"}],EGY:[{value:1,label:"v1"},{value:2,label:"v2"}],ESP:[{value:1,label:"v1"},{value:2,label:"v2"}],EST:[{value:1,label:"v1"}],FIN:[{value:1,label:"v1"}],FRA:[{value:1,label:"v1"},{value:2,label:"v2"}],GBR:[{value:1,label:"v1"},{value:2,label:"v2"}],GEO:[{value:1,label:"v1"}],GRC:[{value:1,label:"v1"}],GTM:[{value:1,label:"v1"}],HKG:[{value:1,label:"v1"},{value:2,label:"v2"}],HND:[{value:1,label:"v1"}],HRV:[{value:1,label:"v1"},{value:2,label:"v2"}],HUN:[{value:1,label:"v1"}],IDN:[{value:1,label:"v1"}],IND:[{value:1,label:"v1"},{value:2,label:"v2"}],IRL:[{value:1,label:"v1"}],ISL:[{value:1,label:"v1"},{value:2,label:"v2"}],ISR:[{value:1,label:"v1"}],ITA:[{value:1,label:"v1"}],JAM:[{value:1,label:"v1"},{value:2,label:"v2"}],JPN:[{value:1,label:"v1"},{value:2,label:"v2"}],KEN:[{value:1,label:"v1"},{value:2,label:"v2"}],KGZ:[{value:1,label:"v1"}],KHM:[{value:1,label:"v1"}],KOR:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],LBN:[{value:1,label:"v1"},{value:2,label:"v2"}],LKA:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],LTU:[{value:1,label:"v1"}],LUX:[{value:1,label:"v1"}],LVA:[{value:1,label:"v1"},{value:2,label:"v2"}],MAR:[{value:1,label:"v1"}],MDA:[{value:1,label:"v1"}],MEX:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],MKD:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],MLT:[{value:1,label:"v1"}],MNG:[{value:1,label:"v1"}],MUS:[{value:1,label:"v1"},{value:2,label:"v2"}],MYS:[{value:1,label:"v1"},{value:2,label:"v2"}],NGA:[{value:1,label:"v1"},{value:2,label:"v2"}],NIC:[{value:1,label:"v1"}],NLD:[{value:1,label:"v1"}],NOR:[{value:1,label:"v1"},{value:2,label:"v2"}],NZL:[{value:1,label:"v1"},{value:2,label:"v2"}],PAK:[{value:1,label:"v1"},{value:2,label:"v2"}],PAN:[{value:1,label:"v1"}],PER:[{value:1,label:"v1"}],PHL:[{value:1,label:"v1"}],POL:[{value:1,label:"v1"}],PRI:[{value:1,label:"v1"}],PRT:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],PRY:[{value:1,label:"v1"}],ROU:[{value:1,label:"v1"}],SAU:[{value:1,label:"v1"},{value:2,label:"v2"}],SGP:[{value:1,label:"v1"},{value:2,label:"v2"}],SLV:[{value:1,label:"v1"}],SRB:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],SVK:[{value:1,label:"v1"}],SVN:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],SWE:[{value:1,label:"v1"},{value:2,label:"v2"}],THA:[{value:1,label:"v1"},{value:2,label:"v2"}],TUN:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],TUR:[{value:1,label:"v1"}],TWN:[{value:1,label:"v1"}],UGA:[{value:1,label:"v1"}],UKR:[{value:1,label:"v1"}],URY:[{value:1,label:"v1"}],USA:[{value:1,label:"v1"}],VNM:[{value:1,label:"v1"},{value:2,label:"v2"}],XKX:[{value:1,label:"v1"}],ZAF:[{value:1,label:"v1"}],ZWE:[{value:1,label:"v1"}]},ue=Object.fromEntries(Object.entries(Z).filter(([,e])=>e.length>1)),me=[{value:"employment_basic_information",label:"Basic Information"},{value:"contract_details",label:"Contract Details"}];import{jsx as r,jsxs as y}from"react/jsx-runtime";var pe=v(()=>{let[e,a]=B("employment_basic_information"),[l,n]=B(1),[d,m]=B(1),[p,t]=B("ARE"),{client:c}=Q(),{data:g}=Re({...le(c,"schema-comparison"),select:v(o=>o.data?.data?.filter(C=>C.eor_onboarding).filter(C=>Object.keys(ue).includes(C.code)).map(C=>({label:C.name,value:C.code}))||[],"select")}),b=e==="contract_details",{data:f,isLoading:i}=G({countryCode:p,form:e,fieldValues:{},jsonSchemaVersion:l,options:{queryOptions:{enabled:!0}}}),{data:h,isLoading:S}=G({countryCode:p,form:e,fieldValues:{},jsonSchemaVersion:d,options:{queryOptions:{enabled:!0}}}),x=i||S,R=Z[p],V=R!==void 0,F=we(()=>e==="employment_basic_information"?ve:R||[{value:"latest",label:"Latest"}],[e,R]);return Ce(()=>{let o=F.map(C=>C.value);o.includes(l)||n(F[0].value),o.includes(d)||m(F[0].value)},[e,p,F,l,d]),y("div",{className:"space-y-6",children:[y(D,{children:[r(k,{children:r(j,{children:"Configuration"})}),y(L,{className:"space-y-4",children:[y("div",{children:[r(A,{className:"mb-2 block",children:"Form Type"}),r(Y,{value:e,onValueChange:o=>a(o),children:r(W,{className:"grid w-full grid-cols-2",children:me.map(o=>r(K,{value:o.value,children:o.label},o.value))})})]}),b&&!V&&r("div",{className:"rounded-md bg-yellow-50 p-4 border border-yellow-200",children:y("div",{className:"flex",children:[r("div",{className:"flex-shrink-0",children:r("svg",{className:"h-5 w-5 text-yellow-400",viewBox:"0 0 20 20",fill:"currentColor",children:r("path",{fillRule:"evenodd",d:"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z",clipRule:"evenodd"})})}),y("div",{className:"ml-3",children:[r("h3",{className:"text-sm font-medium text-yellow-800",children:"Version mappings not found"}),r("div",{className:"mt-2 text-sm text-yellow-700",children:y("p",{children:["Country"," ",r("span",{className:"font-semibold",children:p})," is not configured in COUNTRY_CONTRACT_VERSIONS. Using default (latest only)."]})})]})]})}),b&&y("div",{children:[r(A,{htmlFor:"country-select",className:"mb-2 block",children:"Country"}),y(E,{value:p,onValueChange:t,children:[r(I,{id:"country-select",children:r(P,{placeholder:"Select a country"})}),r(J,{children:g?.map(o=>r(_,{value:o.value,children:o.label},o.value))})]})]}),y("div",{className:"grid grid-cols-2 gap-4",children:[y("div",{children:[r(A,{htmlFor:"top-version",className:"mb-2 block",children:"Left Version"}),y(E,{value:String(l),onValueChange:o=>n(o==="latest"?"latest":Number(o)),children:[r(I,{id:"top-version",children:r(P,{placeholder:"Select version"})}),r(J,{children:F.map(o=>r(_,{value:String(o.value),children:o.label},String(o.value)))})]})]}),y("div",{children:[r(A,{htmlFor:"bottom-version",className:"mb-2 block",children:"Right Version"}),y(E,{value:String(d),onValueChange:o=>m(o==="latest"?"latest":Number(o)),children:[r(I,{id:"bottom-version",children:r(P,{placeholder:"Select version"})}),r(J,{children:F.map(o=>r(_,{value:String(o.value),children:o.label},String(o.value)))})]})]})]})]})]}),r(de,{topVersion:l,bottomVersion:d,topFields:f?.fields||[],bottomFields:h?.fields||[],topFieldsets:f?.meta?.["x-jsf-fieldsets"],bottomFieldsets:h?.meta?.["x-jsf-fieldsets"],isLoading:x})]})},"JsonSchemaComparison");export{ce as a,be as b,fe as c,Y as d,W as e,K as f,ge as g,te as h,pe as i};
|
|
2
|
+
//# sourceMappingURL=chunk-KAHAW4HH.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as _}from"./chunk-5WIBTOCI.js";import{a as C}from"./chunk-MKUSE7JK.js";import{a as l}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as _}from"./chunk-5WIBTOCI.js";import{a as C}from"./chunk-MKUSE7JK.js";import{a as l}from"./chunk-K2SHDZBB.js";import{A as y,S as f,_ as h,y as p}from"./chunk-TNQKP2XT.js";import{e as c}from"./chunk-H2O4CVKF.js";import{a as n}from"./chunk-P37U34EQ.js";import{useMutation as F}from"@tanstack/react-query";import{useQuery as u}from"@tanstack/react-query";var b=n(e=>{let{client:t}=c();return u({...e,queryKey:["company-currencies"],retry:!1,queryFn:n(async()=>{let r=await f({client:t});if(r.error||!r.data)throw new Error("Failed to fetch company currencies");return r},"queryFn"),select:n(({data:r})=>r?.data?.company_currencies.map(a=>({value:a.code,label:a.code}))||[],"select")})},"useCompanyCurrencies"),A=n(()=>{let{client:e}=c();return F({mutationFn:n(t=>h({client:e,headers:{Authorization:""},body:t,query:{action:"send_create_password_email"}}),"mutationFn")})},"useCreateCompanyRequest"),I=n(()=>{let{client:e}=c();return F({mutationFn:n(({companyId:t,payload:r,jsonSchemaVersion:a})=>p({client:e,headers:{Authorization:""},path:{company_id:t},body:r,query:{address_details_json_schema_version:a}}),"mutationFn")})},"useUpdateCompanyRequest"),P=n(e=>{let{client:t}=c(),{data:r,isLoading:a}=u({...C(t,"create-company-countries"),select:n(i=>i.data?.data?.filter(s=>s.eor_onboarding).map(s=>({label:s.name,value:s.code}))||[],"select"),enabled:e?.queryOptions?.enabled}),{data:o,isLoading:m}=b(e?.queryOptions),d=l(_.data.schema,{},e);if(r){let i=d.fields.find(s=>s.name==="country_code");i&&(i.options=r)}if(o){let i=d.fields.find(s=>s.name==="desired_currency");i&&(i.options=o)}return{isLoading:a||m,companyBasicInformationForm:d}},"useCountriesSchemaField"),U=n(({countryCode:e,fieldValues:t,options:r})=>{let{client:a}=c();return u({queryKey:["company-address-details-schema",e],retry:!1,queryFn:n(async()=>{if(!e)throw new Error("Country code is required");let o=await y({client:a,headers:{Authorization:""},path:{country_code:e,form:"address_details"},query:{json_schema_version:r?.jsonSchemaVersion?.form_schema?.address_details||"latest"}});if(o.error||!o.data)throw new Error("Failed to fetch address details schema");return o},"queryFn"),enabled:r?.queryOptions?.enabled&&!!e,select:n(({data:o})=>{let m=o?.data||{};return l(m,t,r)},"select")})},"useAddressDetailsSchema");export{A as a,I as b,P as c,U as d};
|
|
2
|
+
//# sourceMappingURL=chunk-LANAT75E.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as e}from"./chunk-TC7EQZJK.js";import{a as r}from"./chunk-NX7MM6XR.js";import{a as t}from"./chunk-ZXGAFQXW.js";import{a}from"./chunk-LMYJ6V44.js";var i={data:{version:7,schema:{additionalProperties:!1,allOf:[...e.data.schema.allOf,...t.data.schema.allOf,...r.data.schema.allOf,...a.data.schema.allOf],properties:{...e.data.schema.properties,...t.data.schema.properties,...r.data.schema.properties,...a.data.schema.properties},required:[...e.data.schema.required,...t.data.schema.required,...r.data.schema.required,...a.data.schema.required],type:"object","x-jsf-order":[...e.data.schema["x-jsf-order"],...t.data.schema["x-jsf-order"],...r.data.schema["x-jsf-order"],...a.data.schema["x-jsf-order"]]}}};export{i as a};
|
|
2
|
+
//# sourceMappingURL=chunk-NEKE5PRJ.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as S}from"./chunk-6S66UQ2X.js";import{a as e}from"./chunk-CW7CHRMN.js";import{a as s}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as S}from"./chunk-6S66UQ2X.js";import{a as e}from"./chunk-CW7CHRMN.js";import{a as s}from"./chunk-75MI3G5H.js";import{a as p}from"./chunk-DB4JHJ3Z.js";import{a as c}from"./chunk-FHW5CMN5.js";import{a as l}from"./chunk-KVUKJU5U.js";import{a as i}from"./chunk-H4S6LSDA.js";import{a as m}from"./chunk-ZSMILHO4.js";import{a as f}from"./chunk-H4B2NWIZ.js";import{a as u}from"./chunk-WJ64Q54L.js";import{a as d}from"./chunk-B6YWTMGV.js";import{a}from"./chunk-GPJIEBUC.js";import{a as n}from"./chunk-Q3ALCPJN.js";import{a as t}from"./chunk-P37U34EQ.js";import{useId as I,useRef as F,useMemo as y}from"react";import{jsx as D}from"react/jsx-runtime";var J=t(({render:g,employmentId:C,externalId:b,countryCode:v,skipSteps:B,initialValues:O,options:w})=>{let P=I(),o=F(void 0),R=y(()=>({setValue:o}),[]),r=a({options:{...w,onContractReviewed:t(()=>{o.current&&o.current("review_completed",!0)},"onContractReviewed")},employmentId:C,externalId:b,countryCode:v,skipSteps:B,initialValues:O});return D(n.Provider,{value:{contractorOnboardingBag:r,formId:P,formRef:R},children:g({contractorOnboardingBag:r,components:{BasicInformationStep:m,SelectCountryStep:i,BackButton:e,SubmitButton:p,PricingPlanStep:c,EligibilityQuestionnaireStep:S,ContractDetailsStep:f,ContractPreviewStep:u,OnboardingInvite:s,ContractReviewButton:d,SaveDraftButton:l}})})},"ContractorOnboardingFlow");export{J as a};
|
|
2
|
+
//# sourceMappingURL=chunk-NKTGQNE2.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as p}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as p}from"./chunk-K2SHDZBB.js";import{C as c,J as m,N as C,S as d,m as l,v as u}from"./chunk-TNQKP2XT.js";import{e as o}from"./chunk-H2O4CVKF.js";import{a as t}from"./chunk-P37U34EQ.js";import{useMutation as a,useQuery as r}from"@tanstack/react-query";var h=t(({includePremiumBenefits:e})=>{let{client:i}=o();return r({queryKey:["cost-calculator-countries",e],queryFn:t(()=>c({client:i,query:{include_premium_benefits:e}}),"queryFn"),select:t(s=>s.data?.data.filter(n=>n.availability==="active").map(n=>({value:n.region_slug,label:n.name,childRegions:n.child_regions,hasAdditionalFields:n.has_additional_fields,regionSlug:n.region_slug,currency:n.currency.code})),"select")})},"useCostCalculatorCountries"),q=t(()=>{let{client:e}=o();return r({queryKey:["company-currencies"],queryFn:t(()=>d({client:e}),"queryFn"),select:t(i=>i.data?.data?.company_currencies.map(s=>({value:s.slug,label:s.code})),"select")})},"useCompanyCurrencies"),x=t(()=>{let{client:e}=o();return a({mutationFn:t(i=>l({client:e,body:i}),"mutationFn")})},"useCostCalculatorEstimation"),P=t(()=>{let{client:e}=o();return a({mutationFn:t(i=>u({client:e,body:i}),"mutationFn")})},"useCostCalculatorEstimationPdf"),v=t(()=>{let{client:e}=o();return a({mutationFn:t(i=>C({client:e,body:i}),"mutationFn")})},"useCostCalculatorEstimationCsv"),S=t((e,{includePremiumBenefits:i,options:s})=>{let{client:n}=o();return r({queryKey:["cost-calculator-region-fields",e,i],queryFn:t(()=>m({client:n,path:{slug:e},query:{include_premium_benefits:i}}),"queryFn"),enabled:!!e,select:t(({data:f})=>{let y=f?.data?.schema||{};return p(y,void 0,s)},"select")})},"useRegionFields");export{h as a,q as b,x as c,P as d,v as e,S as f};
|
|
2
|
+
//# sourceMappingURL=chunk-PIGJNWPB.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as g}from"./chunk-RWXZG4KO.js";import{a as d,b as w}from"./chunk-DIZ5Z4MN.js";import{a as E}from"./chunk-K2SHDZBB.js";import{Q as F,e as _,z as P}from"./chunk-TNQKP2XT.js";import{a as h,g as C}from"./chunk-RZCU2MT3.js";import{a as j}from"./chunk-TSPDJUGG.js";import{e as c}from"./chunk-H2O4CVKF.js";import{a as e}from"./chunk-P37U34EQ.js";import{useMutation as b,useQuery as I}from"@tanstack/react-query";var B=e(({countryCode:n,employment:r,fieldValues:a,options:t})=>{let{client:u}=c(),m=t?.jsonSchemaVersion?.contract_amendments?{json_schema_version:t.jsonSchemaVersion.contract_amendments}:{};return I({queryKey:["contract-amendment-schema"],retry:!1,queryFn:e(async()=>{let o=await _({client:u,headers:{Authorization:""},query:{employment_id:r?.id,country_code:n,...m}});if(o.error||!o.data)throw new Error("Failed to fetch contract amendment schema");return o},"queryFn"),enabled:!!r,select:e(({data:o})=>{let l=o?.data||{};return E(l,a,t)},"select")})},"useContractAmendmentSchemaQuery"),J=e(n=>{let{client:r}=c(),a=n?.jsonSchemaVersion?.contract_amendments?{json_schema_version:n.jsonSchemaVersion.contract_amendments}:{};return b({mutationFn:e(t=>P({client:r,headers:{Authorization:""},body:t,query:{...a}}),"mutationFn")})},"useCreateContractAmendmentMutation"),K=e(n=>{let{client:r}=c(),a=n?.jsonSchemaVersion?.contract_amendments?{json_schema_version:n.jsonSchemaVersion.contract_amendments}:{};return b({mutationFn:e(t=>F({client:r,headers:{Authorization:""},body:t,query:{...a}}),"mutationFn")})},"useAutomatableContractAmendmentMutation"),te=e(({employmentId:n,countryCode:r,options:a})=>{let{fieldValues:t,setFieldValues:u,stepState:m,nextStep:o,previousStep:l}=j(d),{data:i,isLoading:v,isError:q,error:Q}=g({employmentId:n,queryParams:{exclude_files:!0}}),{data:s,isLoading:L,isError:M,error:T}=B({employment:i,countryCode:r,fieldValues:{...m.values?.[m.currentStep.name],...t},options:a}),k=w(i,s?.fields),S=J(a),A=K(a);async function x(p){let f=await C(p,s?.fields||[],{isPartialValidation:!1}),V={employment_id:i?.id,amendment_contract_id:i?.active_contract_id,contract_amendment:{...f}};switch(m.currentStep.name){case d.form.name:{let{mutateAsync:y}=h(A),H=await y(V);return o(),H}case d.confirmation_form.name:{let{mutateAsync:y}=h(S);return y(V)}default:throw new Error("Invalid step state")}}e(x,"onSubmit");async function z(p){if(s){let f=await C(p,s?.fields);return s?.handleValidation(f)}return null}e(z,"handleValidation");function O(){l()}return e(O,"back"),{stepState:m,fields:s?.fields||[],isLoading:v||L,isError:q||M,error:Q||T,isSubmitting:A.isPending||S.isPending,initialValues:k,values:t,handleValidation:z,checkFieldUpdates:u,onSubmit:x,back:O}},"useContractAmendment");export{te as a};
|
|
2
|
+
//# sourceMappingURL=chunk-QGQSTK73.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as o}from"./chunk-TC7EQZJK.js";import{a as m}from"./chunk-NX7MM6XR.js";import{a as e}from"./chunk-ZXGAFQXW.js";import{a as i}from"./chunk-LMYJ6V44.js";var p={employee_communication:o,termination_details:e,paid_time_off:m,additional_information:i};export{p as a};
|
|
2
|
+
//# sourceMappingURL=chunk-SC7YWKOW.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as i,c as m,d as s,e as f}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b as i,c as m,d as s,e as f}from"./chunk-7A3IHNJF.js";import{a as n}from"./chunk-TXSUZLOI.js";import{a}from"./chunk-P37U34EQ.js";import{useState as O}from"react";var B=a(({proposedTerminationDate:e,employeeName:y,employmentId:o,employment:r,render:d})=>{let[t,u]=O(!1),l=m({employmentId:o}),p=n(e).toLocaleDateString("en-US",{month:"long",day:"numeric",year:"numeric"}),c=i({employmentId:o,options:{enabled:t}}),D=s({employmentId:o,date:e}),P=f({employmentId:o,proposedTerminationDate:e,employment:r});return d({leavePoliciesSummaryQuery:l,timeoffQuery:c||{data:{bookedDays:0,timeoffs:[]}},bookedTimeBeforeAndAfterTerminationQuery:D,formattedProposedTerminationDate:p,employeeName:y,proposedTerminationDate:e,summaryData:P??{data:{entitledDays:"0 days",bookedDays:"0 days",usedDays:"0 days",approvedDaysBeforeTermination:"0 days",approvedDaysAfterTermination:"0 days",remainingDays:"0 days",isUnlimitedPto:!1},isLoading:!1,isError:!1,error:null},employment:r,open:t,onOpenChange:a(()=>{u(T=>!T)},"onOpenChange")})},"PaidTimeOffContainer");export{B as a};
|
|
2
|
+
//# sourceMappingURL=chunk-STJW643Y.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as H}from"./chunk-NEKE5PRJ.js";import{a as Q}from"./chunk-4YCBOVSQ.js";import{a as J}from"./chunk-STJW643Y.js";import{a as U}from"./chunk-6DHV4GT6.js";import{a as W}from"./chunk-AWQU5AAN.js";import{a as Y}from"./chunk-SYXJTCKS.js";import{a as q,b as B,c as L,d as z}from"./chunk-LG5NFDID.js";import{f as Z,g as K}from"./chunk-7A3IHNJF.js";import{a as R}from"./chunk-ZXGAFQXW.js";import{a as S}from"./chunk-JLUYUNSV.js";import{a as N}from"./chunk-RWXZG4KO.js";import{a as E}from"./chunk-K2SHDZBB.js";import{a as _,b as v}from"./chunk-BZ232WZD.js";import{q as O}from"./chunk-TNQKP2XT.js";import{a as w,g as u,m as D}from"./chunk-RZCU2MT3.js";import{a as A}from"./chunk-TSPDJUGG.js";import{a as I}from"./chunk-626FTNKA.js";import{e as $}from"./chunk-H2O4CVKF.js";import{a as o}from"./chunk-P37U34EQ.js";import xe from"lodash.omitby";import je from"lodash.isnull";import{format as x,isFuture as Ve,parseISO as j,subDays as Pe}from"date-fns";import{useMemo as V}from"react";import be from"lodash.omit";import{useQuery as Fe}from"@tanstack/react-query";var G=o(({query:t,options:e})=>{let{client:y}=$();return Fe({queryKey:["payroll-calendars"],queryFn:o(()=>O({client:y,query:{year:t?.year,country_code:t?.countryCode}}),"queryFn"),enabled:e?.enabled,select:o(c=>c.data?.data?.payroll_calendars?.[0],"select")})},"usePayrollCalendars");import{isFuture as Me,isToday as ge,parseISO as Se}from"date-fns";var X=o(t=>{if(!t)return!1;let e=Se(t);return Me(e)||ge(e)},"isInProbationPeriod");import{Fragment as ke,jsx as m,jsxs as Ce}from"react/jsx-runtime";var lo=o(({employmentId:t,options:e,initialValues:y})=>{let{fieldValues:c,setFieldValues:ee,stepState:l,previousStep:oe,nextStep:ie}=A(q),{data:n,isLoading:te}=N({employmentId:t,queryParams:{exclude_files:!0}}),{data:ne}=G({query:{year:new Date().getFullYear().toString(),countryCode:n?.country?.code},options:{enabled:!!n?.country?.code}}),T=X(n?.probation_period_end_date),F=B(ne),P=V(()=>T?x(new Date,"yyyy-MM-dd"):x(F,"yyyy-MM-dd"),[T,F]),M=!!(n?.provisional_start_date&&Ve(j(n.provisional_start_date))),ae={personal_email:n?.basic_information?.email},g=z({...ae,...y,...l.values?.employee_communication,...l.values?.termination_details,...l.values?.paid_time_off,...l.values?.additional_information},M),d=V(()=>({...g,...c}),[c,g]),b=L({minTerminationDate:F,isEmployeeInProbationPeriod:T,selectedDate:j(d.proposed_termination_date)}),re=V(()=>{let s=R.data.schema.properties.termination_reason.oneOf,a=M?s.filter(i=>i.const==="cancellation_before_start_date"):s.filter(i=>i.const!=="cancellation_before_start_date");return{fields:{risk_assesment_info:S("Offboarding risk assessment","Employees may be protected from termination if they fall into certain categories. To help avoid claims from employees, let us know if the employee is part of one or more of these categories. Select all that apply.",{className:e?.jsfModify?.fields?.risk_assesment_info?.["x-jsf-presentation"]?.className}),termination_reason:{...e?.jsfModify?.fields?.termination_reason,oneOf:a},proposed_termination_date_info:S("Proposed termination date",Ce(ke,{children:["In most cases, Remote must provide notice to the employee before termination. The required notice period depends on local labor laws, the employment agreement, and other factors. We'll use those factors to determine the required notice period.",m(v,{external:!0,zendeskId:_.terminationNoticePeriods,className:D("text-sm",e?.jsfModify?.fields?.proposed_termination_date_info?.["x-jsf-presentation"]?.zendeskTriggerButtonClassName),children:"Learn about notice periods"})]}),{className:e?.jsfModify?.fields?.proposed_termination_date_info?.["x-jsf-presentation"]?.className}),proposed_termination_date:{...e?.jsfModify?.fields?.proposed_termination_date,"x-jsf-presentation":{...e?.jsfModify?.fields?.proposed_termination_date?.["x-jsf-presentation"],minDate:P,...d.termination_reason==="cancellation_before_start_date"&&n?.provisional_start_date?{maxDate:x(Pe(j(n.provisional_start_date),1),"yyyy-MM-dd")}:{},...b},...d.termination_reason==="cancellation_before_start_date"?{"x-jsf-errorMessage":{maximum:"The proposed termination date must be before the employee's start date."}}:{}},paid_time_off_info:{...e?.jsfModify?.fields?.paid_time_off_info,"x-jsf-presentation":{...e?.jsfModify?.fields?.paid_time_off_info?.["x-jsf-presentation"],Component:o(()=>{let i=e?.jsfModify?.fields?.paid_time_off_info?.["x-jsf-presentation"]?.Component;return m(J,{employeeName:n?.basic_information?.name,proposedTerminationDate:d.proposed_termination_date,employmentId:t,employment:n,render:r=>i?m(i,{...r}):m(Q,{...r})})},"Component")}},acknowledge_termination_procedure_info:{...e?.jsfModify?.fields?.acknowledge_termination_procedure_info,"x-jsf-presentation":{...e?.jsfModify?.fields?.acknowledge_termination_procedure_info?.["x-jsf-presentation"],Component:o(()=>{let i=e?.jsfModify?.fields?.acknowledge_termination_procedure_info?.["x-jsf-presentation"]?.Component;return m(U,{render:r=>i?m(i,{...r}):m(W,{...r})})},"Component")}},acknowledge_termination_procedure_fees_info:{...e?.jsfModify?.fields?.acknowledge_termination_procedure_fees_info,"x-jsf-presentation":{...e?.jsfModify?.fields?.acknowledge_termination_procedure_fees_info?.["x-jsf-presentation"],Component:o(()=>{let i={involuntaryOffboardingServiceChargeZendeskId:_.involuntaryOffboardingServiceCharge,reconciliationInvoiceZendeskId:_.reconciliationInvoice},r=e?.jsfModify?.fields?.acknowledge_termination_procedure_fees_info?.["x-jsf-presentation"]?.Component;return r?m(r,{...i}):m(Y,{...i})},"Component")}}}}},[n,t,d.proposed_termination_date,d.termination_reason,M,P,e?.jsfModify?.fields?.acknowledge_termination_procedure_fees_info,e?.jsfModify?.fields?.acknowledge_termination_procedure_info,e?.jsfModify?.fields?.paid_time_off_info,e?.jsfModify?.fields?.proposed_termination_date,e?.jsfModify?.fields?.proposed_termination_date_info,e?.jsfModify?.fields?.risk_assesment_info,e?.jsfModify?.fields?.termination_reason,b]),{data:f,isLoading:se}=K({formValues:d,jsfModify:{...e?.jsfModify,fields:{...e?.jsfModify?.fields,...re?.fields}},step:l.currentStep.name}),me=E(H.data.schema),k=Z(),{mutateAsync:de}=w(k);async function fe(s){if(!t)throw new Error("Employment id is missing");if(f){let a=await C(s,!0),{customer_informed_employee:i}=a,r=i==="yes"?{employee_awareness:{date:a.customer_informed_employee_date,note:a.customer_informed_employee_description}}:void 0,ue=await I(a,["agrees_to_pto_amount","confidential","customer_informed_employee","will_challenge_termination"]),_e=be(ue,"customer_informed_employee_date","customer_informed_employee_description"),ye=xe({..._e,...r},je),p=a.timesheet_file??[],h=Array.isArray(p)&&p.length>0?{content:p[0].content,name:p[0].name}:void 0,Te={employment_id:t,termination_details:{...ye,timesheet_file:h||void 0},type:"termination"};return de(Te)}}o(fe,"onSubmit");function le(){oe()}o(le,"back");function ce(){ie()}o(ce,"next");let pe=Object.keys(c).length>0,C=o(async(s,a=!1)=>a?await u(s,me.fields,{isPartialValidation:!0}):f?await u(s,f?.fields,{isPartialValidation:!0}):{},"parseFormValues");return{employmentId:t,employment:n,fieldValues:d,isDirty:pe,stepState:l,fields:f?.fields||[],isLoading:se||te,isSubmitting:k.isPending,initialValues:g,handleValidation:o(async s=>{if(f){let a=await u(s,f?.fields);return f?.handleValidation(a)}return null},"handleValidation"),checkFieldUpdates:ee,parseFormValues:C,onSubmit:fe,back:le,next:ce}},"useTermination");export{lo as a};
|
|
2
|
+
//# sourceMappingURL=chunk-TLQYNJBC.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{e as R,f as p,g as y}from"./chunk-TVBZT6FA.js";import{a as A}from"./chunk-WVJDCDGZ.js";import{a as U}from"./chunk-MKUSE7JK.js";import{a as d}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{e as R,f as p,g as y}from"./chunk-TVBZT6FA.js";import{a as A}from"./chunk-WVJDCDGZ.js";import{a as U}from"./chunk-MKUSE7JK.js";import{a as d}from"./chunk-K2SHDZBB.js";import{A as _,D as S,F as w,I as O,K as v,P as q,U as P,ba as j,ca as x,g as f,i as g,j as h,n as b,o as C,w as F,x as E}from"./chunk-TNQKP2XT.js";import{e as i}from"./chunk-H2O4CVKF.js";import{a as t}from"./chunk-P37U34EQ.js";import{useMutation as m,useQuery as c}from"@tanstack/react-query";var Y=t(e=>{let{client:r}=i();return c({queryKey:["company",e],retry:!1,enabled:!!e,queryFn:t(async()=>{let n=await E({client:r,headers:{Authorization:""},path:{company_id:e}});if(n.error||!n.data)throw new Error("Failed to fetch employment data");return n},"queryFn"),select:t(({data:n})=>n.data.company,"select")})},"useCompany"),Z=t(e=>{let{client:r}=i();return c({queryKey:["benefit-offers",e],retry:!1,enabled:!!e,queryFn:t(async()=>b({client:r,path:{employment_id:e}}).then(n=>{if(n.error||!n.data)throw new Error("Failed to fetch benefit offers data");return n}),"queryFn"),select:t(({data:n})=>n?.data?.reduce((a,o)=>({...a,[o.benefit_group.slug]:{value:o.benefit_tier?.slug??"no",...o.benefit_group?.filter?.slug?{filter:o.benefit_group?.filter?.slug}:{}}}),{}),"select")})},"useBenefitOffers"),$=t((e,r)=>{let{client:n}=i();return c({queryKey:["employment-engagement-agreement-details",e],retry:!1,enabled:r?.enabled??!!e,queryFn:t(async()=>j({client:n,headers:{Authorization:""},path:{employment_id:e}}).then(a=>{if(a.error||!a.data)throw new Error("Failed to fetch engagement agreement details");return a}),"queryFn"),select:t(({data:a})=>a?.data?.details,"select")})},"useEmploymentEngagementAgreementDetails"),ee=t(()=>{let{client:e}=i();return m({mutationFn:t(r=>P({client:e,headers:{Authorization:""},path:r}),"mutationFn")})},"useEmploymentInvite"),te=t(()=>{let{client:e}=i();return m({mutationFn:t(r=>F({client:e,body:r}),"mutationFn")})},"useCreateReserveInvoice"),ne=t(({countryCode:e,form:r,fieldValues:n,options:a,query:o={},jsonSchemaVersion:s})=>{let{client:l}=i(),D=s?{json_schema_version:s}:{};return c({queryKey:["onboarding-json-schema-form",e,r,s],retry:!1,queryFn:t(async()=>{let u=await _({client:l,headers:{Authorization:""},path:{country_code:e,form:r},query:{skip_benefits:!0,...o,...D}});if(u.error||!u.data)throw new Error("Failed to fetch onboarding schema");return u},"queryFn"),enabled:a?.queryOptions?.enabled,select:t(({data:u})=>{let B=u?.data||{};return d(B,n,a)},"select")})},"useJSONSchemaForm"),re=t((e,r,n)=>{let{client:a}=i(),o={json_schema_version:y(n)};return c({queryKey:["benefit-offers-schema",e],retry:!1,enabled:!!e,queryFn:t(async()=>{let s=await w({client:a,path:{employment_id:e},query:o});if(s.error||!s.data)throw new Error("Failed to fetch benefit offers schema");return s},"queryFn"),select:t(({data:s})=>{let l=s?.data?.schema||{};return d(l,r,{jsfModify:n?.jsfModify?.benefits})},"select")})},"useBenefitOffersSchema"),oe=t(e=>{let{client:r}=i(),n={json_schema_version:p(e)};return m({mutationFn:t(a=>g({client:r,headers:{Authorization:""},body:a,query:{...n}}),"mutationFn")})},"useCreateEmployment"),ae=t((e,r)=>{let{client:n}=i(),a={employment_basic_information_json_schema_version:p(r),contract_details_json_schema_version:R(r,e)||1};return m({mutationFn:t(({employmentId:o,...s})=>O({client:n,headers:{Authorization:""},body:s,path:{employment_id:o},query:{skip_benefits:!0,...a}}),"mutationFn")})},"useUpdateEmployment"),se=t(()=>{let{client:e}=i();return m({mutationFn:t(({employmentId:r,...n})=>x({client:e,headers:{Authorization:""},body:n,path:{employment_id:r}}),"mutationFn")})},"useUpdateEmploymentEngagementAgreementDetails"),ie=t(e=>{let{client:r}=i();return m({mutationFn:t(({employmentId:n,...a})=>{let o={json_schema_version:y(e)};return C({client:r,body:a,path:{employment_id:n},query:o})},"mutationFn")})},"useUpdateBenefitsOffers"),le=t(e=>{let{client:r}=i(),{data:n,isLoading:a}=c({...U(r,"onboarding-countries"),select:t(s=>s.data?.data?.filter(l=>l.eor_onboarding).map(l=>({label:l.name,value:l.code}))||[],"select"),enabled:e?.queryOptions?.enabled}),o=d(A.data.schema,{},e);if(n){let s=o.fields.find(l=>l.name==="country");s&&(s.options=n)}return{isLoading:a,selectCountryForm:o}},"useCountriesSchemaField"),me=t(({type:e="spread"})=>{let{client:r}=i();return m({mutationFn:t(n=>(e==="no_spread"?f:q)({client:r,body:n}),"mutationFn")})},"useConvertCurrency"),ce=t(()=>{let{client:e}=i();return m({mutationFn:t(({employmentId:r,...n})=>v({client:e,path:{employment_id:r},body:n}),"mutationFn")})},"useUpsertContractEligibility"),ue=t((e,r,n=!0)=>{let{client:a}=i();return c({queryKey:["employment-onboarding-reserves-status",e,r],retry:!1,enabled:n&&!!e&&!!r,queryFn:t(async()=>{let o=await h({client:a,headers:{Authorization:""},path:{company_id:e,employment_id:r}});if(o.error||!o.data)throw new Error("Failed to fetch employment onboarding reserves status");return o},"queryFn"),select:t(({data:o})=>o?.data?.status,"select")})},"useEmploymentOnboardingReservesStatus"),de=t((e,r,n)=>{let{client:a}=i();return c({queryKey:["engagement-agreement-details",e],retry:!1,enabled:n?.queryOptions?.enabled??!!e,queryFn:t(async()=>{let o=await S({client:a,path:{country_code:e}});if(o.error||!o.data)throw new Error("Failed to fetch engagement agreement details");return o},"queryFn"),select:t(({data:o})=>{let s=o?.data?.schema||{};return d(s,r,{jsfModify:n?.jsfModify?.engagement_agreement_details})},"select")})},"useEngagementAgreementDetailsSchema");export{Y as a,Z as b,$ as c,ee as d,te as e,ne as f,re as g,oe as h,ae as i,se as j,ie as k,le as l,me as m,ce as n,ue as o,de as p};
|
|
2
|
+
//# sourceMappingURL=chunk-TSWZPJNS.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as m}from"./chunk-HVI5GHIV.js";import{a as r}from"./chunk-DCPBAFIN.js";import{a}from"./chunk-H66IKMI4.js";import{a as c}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as m}from"./chunk-HVI5GHIV.js";import{a as r}from"./chunk-DCPBAFIN.js";import{a}from"./chunk-H66IKMI4.js";import{a as c}from"./chunk-QGQSTK73.js";import{a as e}from"./chunk-SWCZJY6I.js";import{a as o}from"./chunk-TVZAFTPT.js";import{a as n}from"./chunk-P37U34EQ.js";import{useId as f}from"react";import{jsx as s}from"react/jsx-runtime";function k({employmentId:d,countryCode:C,options:p,render:A}){let t=c({employmentId:d,countryCode:C,options:p}),i=f();return s(o.Provider,{value:{formId:i,contractAmendmentBag:t},children:A({contractAmendmentBag:t,components:{Form:r,SubmitButton:a,ConfirmationForm:m,BackButton:e}})})}n(k,"ContractAmendmentFlow");export{k as a};
|
|
2
|
+
//# sourceMappingURL=chunk-VATDEWMF.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as m}from"./chunk-B7BJXPGT.js";import{a}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as m}from"./chunk-B7BJXPGT.js";import{a}from"./chunk-77WJNWIC.js";import{a as i}from"./chunk-G6F6ZZES.js";import{a as S}from"./chunk-FHYOWPXB.js";import{a as c}from"./chunk-QXW2MAFG.js";import{a as f}from"./chunk-2WOUKCSC.js";import{a as n}from"./chunk-F7PE3VRK.js";import{a as s}from"./chunk-PFQTTYVH.js";import{a as p}from"./chunk-5FHDUZCG.js";import{a as d}from"./chunk-RXSGIEA5.js";import{c as t}from"./chunk-HUAPBLSQ.js";import{a as r}from"./chunk-PGWKJ6FK.js";import{a as e}from"./chunk-P37U34EQ.js";import{useId as P,useState as R}from"react";import{jsx as y}from"react/jsx-runtime";var N=e(({employmentId:g,companyId:l,countryCode:u,type:b="employee",externalId:v,skipSteps:B,initialValues:I,render:O,options:w})=>{let C=P(),o=t({companyId:l,countryCode:u,employmentId:g,type:b,options:w,skipSteps:B,externalId:v,initialValues:I}),[D,h]=R({showReserveInvoice:!1,showInviteSuccessful:!1});return y(r.Provider,{value:{formId:C,onboardingBag:o,creditScore:D,setCreditScore:h},children:O({onboardingBag:o,components:{BasicInformationStep:n,EngagementAgreementDetailsStep:d,ContractDetailsStep:p,BenefitsStep:s,SubmitButton:i,SaveDraftButton:c,BackButton:m,OnboardingInvite:a,SelectCountryStep:f,ReviewStep:S}})})},"OnboardingFlow");export{N as a};
|
|
2
|
+
//# sourceMappingURL=chunk-VZLUAWY5.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { C as Components } from './remoteFlows-
|
|
1
|
+
import { C as Components } from './remoteFlows-HrHOVYvy.js';
|
|
2
2
|
import 'react';
|
|
3
3
|
import 'yup';
|
|
4
|
-
import './types.gen-
|
|
4
|
+
import './types.gen-C1H9Wowh.js';
|
|
5
5
|
import 'react-hook-form';
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { P as PostCreateContractAmendmentError, b as ContractAmendmentResponse } from '../../types.gen-
|
|
2
|
+
import { P as PostCreateContractAmendmentError, b as ContractAmendmentResponse } from '../../types.gen-C1H9Wowh.js';
|
|
3
3
|
import { FieldValues } from 'react-hook-form';
|
|
4
4
|
|
|
5
5
|
type ContractAmendmentConfirmationFormProps = {
|
|
@@ -5,11 +5,11 @@ import { ContractAmendmentForm } from './ContractAmendmentForm.js';
|
|
|
5
5
|
import { ContractAmendmentSubmit } from './ContractAmendmentSubmit.js';
|
|
6
6
|
import { useContractAmendment } from './hooks.js';
|
|
7
7
|
import { ContractAmendmentParams } from './types.js';
|
|
8
|
-
import '../../types.gen-
|
|
8
|
+
import '../../types.gen-C1H9Wowh.js';
|
|
9
9
|
import 'react-hook-form';
|
|
10
10
|
import 'react';
|
|
11
|
-
import '../../mutations-
|
|
12
|
-
import '../../remoteFlows-
|
|
11
|
+
import '../../mutations-DWtiVhzX.js';
|
|
12
|
+
import '../../remoteFlows-HrHOVYvy.js';
|
|
13
13
|
import 'yup';
|
|
14
14
|
import '@remoteoss/json-schema-form';
|
|
15
15
|
import '@remoteoss/json-schema-form-v0-deprecated';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"../../chunk-
|
|
1
|
+
import{a}from"../../chunk-VATDEWMF.js";import"../../chunk-HVI5GHIV.js";import"../../chunk-DCPBAFIN.js";import"../../chunk-KFYWUBRS.js";import"../../chunk-H66IKMI4.js";import"../../chunk-QGQSTK73.js";import"../../chunk-RWXZG4KO.js";import"../../chunk-DIZ5Z4MN.js";import"../../chunk-AVVDKCFO.js";import"../../chunk-WUSKSXW2.js";import"../../chunk-PR6I3UYE.js";import"../../chunk-K2SHDZBB.js";import"../../chunk-ZQNYASQ3.js";import"../../chunk-GUO7UC4X.js";import"../../chunk-3SIHU3EE.js";import"../../chunk-AYYYRHO3.js";import"../../chunk-U5T77DSF.js";import"../../chunk-BZ232WZD.js";import"../../chunk-XG6ASTX5.js";import"../../chunk-TNQKP2XT.js";import"../../chunk-RZCU2MT3.js";import"../../chunk-TSPDJUGG.js";import"../../chunk-626FTNKA.js";import"../../chunk-SWCZJY6I.js";import"../../chunk-TVZAFTPT.js";import"../../chunk-H2O4CVKF.js";import"../../chunk-P37U34EQ.js";export{a as ContractAmendmentFlow};
|
|
2
2
|
//# sourceMappingURL=ContractAmendmentFlow.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { c as PostAutomatableContractAmendmentError, C as ContractAmendmentAutomatableResponse } from '../../types.gen-
|
|
2
|
+
import { c as PostAutomatableContractAmendmentError, C as ContractAmendmentAutomatableResponse } from '../../types.gen-C1H9Wowh.js';
|
|
3
3
|
import { FieldValues } from 'react-hook-form';
|
|
4
4
|
|
|
5
5
|
type ContractAmendmentFormProps = {
|