@remoteoss/remote-flows 1.26.0 → 1.28.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/CheckboxFieldDefault-GQZWERNF.js +2 -0
- package/dist/CountryFieldDefault-PKRIWPY3.js +2 -0
- package/dist/DatePickerFieldDefault-Y26FNCUK.js +2 -0
- package/dist/RadioGroupFieldDefault-DQGRKN3M.js +2 -0
- package/dist/TextAreaFieldDefault-EFYFWCHQ.js +2 -0
- package/dist/{chunk-C6ARUHCB.js → chunk-2AFRBV4P.js} +2 -2
- package/dist/{chunk-GHYCSTSK.js → chunk-373A3JYN.js} +2 -2
- package/dist/{chunk-K56VMRZ5.js → chunk-3X4CJEN4.js} +2 -2
- package/dist/{chunk-TUPZTWGP.js → chunk-42PPQJNB.js} +2 -2
- package/dist/{chunk-XUT44QU6.js → chunk-4DFWKRQR.js} +2 -2
- package/dist/{chunk-LX3JPBUV.js → chunk-6CUZAMXI.js} +2 -2
- package/dist/{chunk-I2DXGO23.js → chunk-6ICMMDER.js} +2 -2
- package/dist/{chunk-DEVQ2NNK.js → chunk-7CTUHB7U.js} +2 -2
- package/dist/chunk-7ZBLKUKE.js +2 -0
- package/dist/chunk-7ZBLKUKE.js.map +1 -0
- package/dist/{chunk-IY3ASS7L.js → chunk-AXMLPGSQ.js} +2 -2
- package/dist/{chunk-OCTM6K3V.js → chunk-BUDKOST6.js} +2 -2
- package/dist/{chunk-TFJOJCCS.js → chunk-CQDQM2IX.js} +2 -2
- package/dist/{chunk-KLN2FG5Y.js → chunk-CWF26ZF4.js} +2 -2
- package/dist/{chunk-XXXLKG43.js → chunk-DJPDKTA2.js} +2 -2
- package/dist/{chunk-5F5BHJQO.js → chunk-E42PBKYH.js} +2 -2
- package/dist/{chunk-XHZHFM2J.js → chunk-EDT4KTVE.js} +2 -2
- package/dist/{chunk-7VKV5G6N.js → chunk-F5Y64CVG.js} +2 -2
- package/dist/{chunk-RPCS3K2I.js → chunk-FEZZMB7D.js} +2 -2
- package/dist/chunk-FO73LJAF.js +2 -0
- package/dist/chunk-FO73LJAF.js.map +1 -0
- package/dist/{chunk-KKCYP5TA.js → chunk-FV3X3QRI.js} +2 -2
- package/dist/{chunk-BMLTMXEK.js → chunk-G2WWWCFS.js} +2 -2
- package/dist/{chunk-VLVKKSJP.js → chunk-HC3RLPCZ.js} +2 -2
- package/dist/{chunk-GCPDTL2M.js → chunk-HJYUTOA2.js} +2 -2
- package/dist/chunk-IT5PQWVR.js +2 -0
- package/dist/chunk-IT5PQWVR.js.map +1 -0
- package/dist/{chunk-3SECILYU.js → chunk-IYZVFJNC.js} +2 -2
- package/dist/{chunk-ZYAMVSAL.js → chunk-JFTKMQ73.js} +2 -2
- package/dist/chunk-JJ7EROQA.js +2 -0
- package/dist/chunk-JJ7EROQA.js.map +1 -0
- package/dist/{chunk-ZS7YCDY6.js → chunk-JOQ6LN5D.js} +2 -2
- package/dist/chunk-JR6VISHQ.js +2 -0
- package/dist/chunk-JR6VISHQ.js.map +1 -0
- package/dist/{chunk-LFYDEIZG.js → chunk-KJY5KHQP.js} +2 -2
- package/dist/{chunk-FZO24P53.js → chunk-KN3XMDCI.js} +2 -2
- package/dist/{chunk-R7WSWTCF.js → chunk-KVQGNPKF.js} +2 -2
- package/dist/{chunk-BAKE7YEE.js → chunk-LRMMQCL7.js} +2 -2
- package/dist/{chunk-FZVUO3UU.js → chunk-MKUSE7JK.js} +2 -2
- package/dist/{chunk-SP2V52RP.js → chunk-NWODDA5W.js} +2 -2
- package/dist/chunk-O4I5IA24.js +2 -0
- package/dist/chunk-O4I5IA24.js.map +1 -0
- package/dist/{chunk-33IPP266.js → chunk-O5WY5DXB.js} +2 -2
- package/dist/{chunk-KJMPEOZ7.js → chunk-OGXYAUPR.js} +2 -2
- package/dist/{chunk-7Z4MWUCV.js → chunk-P243ZEXS.js} +2 -2
- package/dist/{chunk-36NGPS63.js → chunk-PLPGCGAS.js} +2 -2
- package/dist/{chunk-JFD2OJ6L.js → chunk-PVXIXLI7.js} +2 -2
- package/dist/{chunk-45K26OSG.js → chunk-PY23FJZC.js} +2 -2
- package/dist/{chunk-FIM36WNY.js → chunk-RDOWNO6N.js} +2 -2
- package/dist/chunk-RDQJU3HZ.js +2 -0
- package/dist/chunk-RDQJU3HZ.js.map +1 -0
- package/dist/{chunk-SJVCXKRO.js → chunk-RR5AEFCF.js} +2 -2
- package/dist/{chunk-O6H23YQW.js → chunk-RTB5M2WF.js} +2 -2
- package/dist/{chunk-RD5FPT3Y.js → chunk-S6LG6MGK.js} +2 -2
- package/dist/{chunk-HMVU7HJL.js → chunk-T3MTHXS5.js} +2 -2
- package/dist/chunk-TIFHRVKA.js +2 -0
- package/dist/chunk-TIFHRVKA.js.map +1 -0
- package/dist/{chunk-R47Q7R6C.js → chunk-TNQKP2XT.js} +6 -6
- package/dist/chunk-TNQKP2XT.js.map +1 -0
- package/dist/{chunk-QLJMIWS4.js → chunk-UAPT6OBQ.js} +2 -2
- package/dist/{chunk-P4TKMCSQ.js → chunk-UCYB5QK7.js} +2 -2
- package/dist/chunk-UTXYUM6O.js +2 -0
- package/dist/chunk-UTXYUM6O.js.map +1 -0
- package/dist/chunk-VAMDTZC6.js +2 -0
- package/dist/chunk-VAMDTZC6.js.map +1 -0
- package/dist/{chunk-POKPAJNL.js → chunk-VAYZNUNH.js} +2 -2
- package/dist/chunk-VDAXUUZX.js +2 -0
- package/dist/chunk-VDAXUUZX.js.map +1 -0
- package/dist/{chunk-6I5FRZSX.js → chunk-VIX4RJKF.js} +2 -2
- package/dist/chunk-VK3Z63G4.js +2 -0
- package/dist/chunk-VK3Z63G4.js.map +1 -0
- package/dist/chunk-WDV3ECGC.js +2 -0
- package/dist/chunk-WDV3ECGC.js.map +1 -0
- package/dist/{chunk-4EDPYN5F.js → chunk-XBEX4G75.js} +2 -2
- package/dist/{chunk-5EHJ5HTV.js → chunk-XFDD4QPE.js} +2 -2
- package/dist/{chunk-3VWXALRD.js → chunk-XUTYA3JC.js} +2 -2
- package/dist/{chunk-BI3PHE5N.js → chunk-YKAWMDTX.js} +2 -2
- package/dist/{chunk-BS4A6UYL.js → chunk-YVEVEN4R.js} +2 -2
- package/dist/{chunk-5F5H7LZT.js → chunk-ZKOA3R57.js} +2 -2
- package/dist/default-components.d.ts +2 -2
- package/dist/default-components.js +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.d.ts +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentFlow.d.ts +3 -3
- package/dist/flows/ContractAmendment/ContractAmendmentFlow.js +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentForm.d.ts +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentForm.js +1 -1
- package/dist/flows/ContractAmendment/context.d.ts +3 -3
- package/dist/flows/ContractAmendment/hooks.d.ts +3 -3
- package/dist/flows/ContractAmendment/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 +8 -20
- package/dist/flows/ContractorOnboarding/api.js +1 -1
- package/dist/flows/ContractorOnboarding/components/BasicInformationStep.d.ts +4 -4
- package/dist/flows/ContractorOnboarding/components/BasicInformationStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/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/ContractPreviewStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.js +1 -1
- package/dist/flows/ContractorOnboarding/components/EligibilityQuestionnaireStep.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/components/EligibilityQuestionnaireStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/OnboardingInvite.d.ts +3 -3
- package/dist/flows/ContractorOnboarding/components/OnboardingInvite.js +1 -1
- package/dist/flows/ContractorOnboarding/components/PricingPlan.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/components/PricingPlan.js +1 -1
- package/dist/flows/ContractorOnboarding/components/SaveDraftButton.d.ts +3 -3
- package/dist/flows/ContractorOnboarding/components/SelectCountryStep.d.ts +4 -4
- package/dist/flows/ContractorOnboarding/components/SelectCountryStep.js +1 -1
- package/dist/flows/ContractorOnboarding/context.d.ts +8 -7
- 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/jsfModify.js +1 -1
- 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/CostCalculatorForm.js +1 -1
- package/dist/flows/CostCalculator/EstimationResults/EstimationResults.d.ts +2 -2
- package/dist/flows/CostCalculator/EstimationResults/EstimationResults.js +1 -1
- package/dist/flows/CostCalculator/SummaryResults/SummaryResults.d.ts +2 -2
- package/dist/flows/CostCalculator/api.d.ts +5 -9
- 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 +4 -4
- 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 +6 -14
- package/dist/flows/CreateCompany/api.js +1 -1
- package/dist/flows/CreateCompany/components/AddressDetailsStep.d.ts +4 -4
- package/dist/flows/CreateCompany/components/AddressDetailsStep.js +1 -1
- package/dist/flows/CreateCompany/components/CompanyBasicInformationStep.d.ts +4 -4
- package/dist/flows/CreateCompany/components/CompanyBasicInformationStep.js +1 -1
- package/dist/flows/CreateCompany/components/CreateCompanyForm.d.ts +2 -2
- package/dist/flows/CreateCompany/components/CreateCompanyForm.js +1 -1
- package/dist/flows/CreateCompany/context.d.ts +7 -6
- 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 +65 -18
- package/dist/flows/Onboarding/api.js +1 -1
- package/dist/flows/Onboarding/components/AnnualGrossSalary.d.ts +2 -2
- package/dist/flows/Onboarding/components/AnnualGrossSalary.js +1 -1
- package/dist/flows/Onboarding/components/BasicInformationStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/BasicInformationStep.js +1 -1
- package/dist/flows/Onboarding/components/BenefitsStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/BenefitsStep.js +1 -1
- package/dist/flows/Onboarding/components/ContractDetailsStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/ContractDetailsStep.js +1 -1
- package/dist/flows/Onboarding/components/EngagementAgreementDetailsStep.d.ts +16 -0
- package/dist/flows/Onboarding/components/EngagementAgreementDetailsStep.js +2 -0
- package/dist/flows/Onboarding/components/EngagementAgreementDetailsStep.js.map +1 -0
- package/dist/flows/Onboarding/components/OnboardingForm.d.ts +5 -5
- package/dist/flows/Onboarding/components/OnboardingForm.js +1 -1
- package/dist/flows/Onboarding/components/OnboardingInvite.d.ts +3 -3
- package/dist/flows/Onboarding/components/OnboardingInvite.js +1 -1
- package/dist/flows/Onboarding/components/ReviewStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/SaveDraftButton.d.ts +3 -3
- package/dist/flows/Onboarding/components/SelectCountryStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/SelectCountryStep.js +1 -1
- package/dist/flows/Onboarding/context.d.ts +24 -11
- 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/AdditionalDetailsForm.js +1 -1
- package/dist/flows/Termination/EmployeeComunicationForm.d.ts +4 -4
- package/dist/flows/Termination/EmployeeComunicationForm.js +1 -1
- package/dist/flows/Termination/PaidTimeOffForm.d.ts +4 -4
- package/dist/flows/Termination/PaidTimeOffForm.js +1 -1
- package/dist/flows/Termination/TerminationDetailsForm.d.ts +4 -4
- package/dist/flows/Termination/TerminationDetailsForm.js +1 -1
- package/dist/flows/Termination/TerminationFlow.d.ts +4 -4
- package/dist/flows/Termination/TerminationFlow.js +1 -1
- package/dist/flows/Termination/TerminationForm.d.ts +5 -5
- package/dist/flows/Termination/TerminationForm.js +1 -1
- package/dist/flows/Termination/api.d.ts +8 -12
- package/dist/flows/Termination/api.js +1 -1
- package/dist/flows/Termination/components/AcknowledgeInformation/AcknowledgeInformationFees.js +1 -1
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOff.d.ts +7 -7
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.d.ts +7 -7
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.js +1 -1
- package/dist/flows/Termination/components/PaidTimeOff/types.d.ts +7 -7
- 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/schema.d.ts +4 -4
- package/dist/flows/Termination/types.d.ts +4 -4
- package/dist/flows/Termination/utils.d.ts +4 -4
- package/dist/flows/types.d.ts +4 -3
- 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 +17 -11
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/internals.d.ts +3 -3
- package/dist/internals.js +1 -1
- package/dist/{mutations-BlHJKh7X.d.ts → mutations-C1XMuYlk.d.ts} +1 -1
- package/dist/{remoteFlows-BgpcnCNA.d.ts → remoteFlows-CxOc7anq.d.ts} +1 -1
- package/dist/styles.css +1 -1
- package/dist/styles.css.map +1 -1
- package/dist/{types-DEzrQ-MU.d.ts → types-BYcKuJ8z.d.ts} +2 -2
- package/dist/{types-x02L1Qo9.d.ts → types-BqpZPw47.d.ts} +56 -15
- package/dist/{types-BBgv8INf.d.ts → types-Cb-1z4vt.d.ts} +4 -4
- package/dist/{types-CRnEmzMD.d.ts → types-DuKc_eXf.d.ts} +1 -1
- package/dist/{types-nfUNaXC-.d.ts → types-oX7HbacX.d.ts} +3 -3
- package/dist/{types.gen-Dgw1W-SB.d.ts → types.gen-CLArJ-Qx.d.ts} +712 -21
- package/dist/{utils-Dg9zSNDT.d.ts → utils-DsfJjYNt.d.ts} +1 -1
- package/package.json +62 -62
- package/dist/CheckboxFieldDefault-SQULI7DO.js +0 -2
- package/dist/CountryFieldDefault-4YHZACZ5.js +0 -2
- package/dist/DatePickerFieldDefault-B7WY5H6M.js +0 -2
- package/dist/RadioGroupFieldDefault-G637DHSW.js +0 -2
- package/dist/TextAreaFieldDefault-32E5FGS7.js +0 -2
- package/dist/chunk-AMSYQQG7.js +0 -2
- package/dist/chunk-AMSYQQG7.js.map +0 -1
- package/dist/chunk-AXGWQVCT.js +0 -2
- package/dist/chunk-AXGWQVCT.js.map +0 -1
- package/dist/chunk-CEIDSIMA.js +0 -2
- package/dist/chunk-CEIDSIMA.js.map +0 -1
- package/dist/chunk-ERY43GUW.js +0 -2
- package/dist/chunk-ERY43GUW.js.map +0 -1
- package/dist/chunk-IK27ZFUU.js +0 -2
- package/dist/chunk-IK27ZFUU.js.map +0 -1
- package/dist/chunk-JMDINYDB.js +0 -2
- package/dist/chunk-JMDINYDB.js.map +0 -1
- package/dist/chunk-JWP4HAIS.js +0 -2
- package/dist/chunk-JWP4HAIS.js.map +0 -1
- package/dist/chunk-NUD662HZ.js +0 -2
- package/dist/chunk-NUD662HZ.js.map +0 -1
- package/dist/chunk-R47Q7R6C.js.map +0 -1
- package/dist/chunk-T4Y4D743.js +0 -2
- package/dist/chunk-T4Y4D743.js.map +0 -1
- package/dist/chunk-TIJRONPS.js +0 -2
- package/dist/chunk-TIJRONPS.js.map +0 -1
- package/dist/chunk-TXEONNPV.js +0 -2
- package/dist/chunk-TXEONNPV.js.map +0 -1
- /package/dist/{CheckboxFieldDefault-SQULI7DO.js.map → CheckboxFieldDefault-GQZWERNF.js.map} +0 -0
- /package/dist/{CountryFieldDefault-4YHZACZ5.js.map → CountryFieldDefault-PKRIWPY3.js.map} +0 -0
- /package/dist/{DatePickerFieldDefault-B7WY5H6M.js.map → DatePickerFieldDefault-Y26FNCUK.js.map} +0 -0
- /package/dist/{RadioGroupFieldDefault-G637DHSW.js.map → RadioGroupFieldDefault-DQGRKN3M.js.map} +0 -0
- /package/dist/{TextAreaFieldDefault-32E5FGS7.js.map → TextAreaFieldDefault-EFYFWCHQ.js.map} +0 -0
- /package/dist/{chunk-C6ARUHCB.js.map → chunk-2AFRBV4P.js.map} +0 -0
- /package/dist/{chunk-GHYCSTSK.js.map → chunk-373A3JYN.js.map} +0 -0
- /package/dist/{chunk-K56VMRZ5.js.map → chunk-3X4CJEN4.js.map} +0 -0
- /package/dist/{chunk-TUPZTWGP.js.map → chunk-42PPQJNB.js.map} +0 -0
- /package/dist/{chunk-XUT44QU6.js.map → chunk-4DFWKRQR.js.map} +0 -0
- /package/dist/{chunk-LX3JPBUV.js.map → chunk-6CUZAMXI.js.map} +0 -0
- /package/dist/{chunk-I2DXGO23.js.map → chunk-6ICMMDER.js.map} +0 -0
- /package/dist/{chunk-DEVQ2NNK.js.map → chunk-7CTUHB7U.js.map} +0 -0
- /package/dist/{chunk-IY3ASS7L.js.map → chunk-AXMLPGSQ.js.map} +0 -0
- /package/dist/{chunk-OCTM6K3V.js.map → chunk-BUDKOST6.js.map} +0 -0
- /package/dist/{chunk-TFJOJCCS.js.map → chunk-CQDQM2IX.js.map} +0 -0
- /package/dist/{chunk-KLN2FG5Y.js.map → chunk-CWF26ZF4.js.map} +0 -0
- /package/dist/{chunk-XXXLKG43.js.map → chunk-DJPDKTA2.js.map} +0 -0
- /package/dist/{chunk-5F5BHJQO.js.map → chunk-E42PBKYH.js.map} +0 -0
- /package/dist/{chunk-XHZHFM2J.js.map → chunk-EDT4KTVE.js.map} +0 -0
- /package/dist/{chunk-7VKV5G6N.js.map → chunk-F5Y64CVG.js.map} +0 -0
- /package/dist/{chunk-RPCS3K2I.js.map → chunk-FEZZMB7D.js.map} +0 -0
- /package/dist/{chunk-KKCYP5TA.js.map → chunk-FV3X3QRI.js.map} +0 -0
- /package/dist/{chunk-BMLTMXEK.js.map → chunk-G2WWWCFS.js.map} +0 -0
- /package/dist/{chunk-VLVKKSJP.js.map → chunk-HC3RLPCZ.js.map} +0 -0
- /package/dist/{chunk-GCPDTL2M.js.map → chunk-HJYUTOA2.js.map} +0 -0
- /package/dist/{chunk-3SECILYU.js.map → chunk-IYZVFJNC.js.map} +0 -0
- /package/dist/{chunk-ZYAMVSAL.js.map → chunk-JFTKMQ73.js.map} +0 -0
- /package/dist/{chunk-ZS7YCDY6.js.map → chunk-JOQ6LN5D.js.map} +0 -0
- /package/dist/{chunk-LFYDEIZG.js.map → chunk-KJY5KHQP.js.map} +0 -0
- /package/dist/{chunk-FZO24P53.js.map → chunk-KN3XMDCI.js.map} +0 -0
- /package/dist/{chunk-R7WSWTCF.js.map → chunk-KVQGNPKF.js.map} +0 -0
- /package/dist/{chunk-BAKE7YEE.js.map → chunk-LRMMQCL7.js.map} +0 -0
- /package/dist/{chunk-FZVUO3UU.js.map → chunk-MKUSE7JK.js.map} +0 -0
- /package/dist/{chunk-SP2V52RP.js.map → chunk-NWODDA5W.js.map} +0 -0
- /package/dist/{chunk-33IPP266.js.map → chunk-O5WY5DXB.js.map} +0 -0
- /package/dist/{chunk-KJMPEOZ7.js.map → chunk-OGXYAUPR.js.map} +0 -0
- /package/dist/{chunk-7Z4MWUCV.js.map → chunk-P243ZEXS.js.map} +0 -0
- /package/dist/{chunk-36NGPS63.js.map → chunk-PLPGCGAS.js.map} +0 -0
- /package/dist/{chunk-JFD2OJ6L.js.map → chunk-PVXIXLI7.js.map} +0 -0
- /package/dist/{chunk-45K26OSG.js.map → chunk-PY23FJZC.js.map} +0 -0
- /package/dist/{chunk-FIM36WNY.js.map → chunk-RDOWNO6N.js.map} +0 -0
- /package/dist/{chunk-SJVCXKRO.js.map → chunk-RR5AEFCF.js.map} +0 -0
- /package/dist/{chunk-O6H23YQW.js.map → chunk-RTB5M2WF.js.map} +0 -0
- /package/dist/{chunk-RD5FPT3Y.js.map → chunk-S6LG6MGK.js.map} +0 -0
- /package/dist/{chunk-HMVU7HJL.js.map → chunk-T3MTHXS5.js.map} +0 -0
- /package/dist/{chunk-QLJMIWS4.js.map → chunk-UAPT6OBQ.js.map} +0 -0
- /package/dist/{chunk-P4TKMCSQ.js.map → chunk-UCYB5QK7.js.map} +0 -0
- /package/dist/{chunk-POKPAJNL.js.map → chunk-VAYZNUNH.js.map} +0 -0
- /package/dist/{chunk-6I5FRZSX.js.map → chunk-VIX4RJKF.js.map} +0 -0
- /package/dist/{chunk-4EDPYN5F.js.map → chunk-XBEX4G75.js.map} +0 -0
- /package/dist/{chunk-5EHJ5HTV.js.map → chunk-XFDD4QPE.js.map} +0 -0
- /package/dist/{chunk-3VWXALRD.js.map → chunk-XUTYA3JC.js.map} +0 -0
- /package/dist/{chunk-BI3PHE5N.js.map → chunk-YKAWMDTX.js.map} +0 -0
- /package/dist/{chunk-BS4A6UYL.js.map → chunk-YVEVEN4R.js.map} +0 -0
- /package/dist/{chunk-5F5H7LZT.js.map → chunk-ZKOA3R57.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/ui/collapsible.tsx","../src/components/ui/tabs.tsx","../src/components/ui/scroll-area.tsx","../src/components/JsonSchemaComparison/JsonSchemaComparison.tsx","../src/components/JsonSchemaComparison/formDiffDetector.ts","../src/components/JsonSchemaComparison/SchemaFormComparison.tsx","../src/components/JsonSchemaComparison/schemaVersions.ts"],"sourcesContent":["import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';\n\nconst Collapsible = CollapsiblePrimitive.Root;\n\nconst CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger;\n\nconst CollapsibleContent = CollapsiblePrimitive.CollapsibleContent;\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent };\n","import * as React from 'react';\nimport * as TabsPrimitive from '@radix-ui/react-tabs';\n\nimport { cn } from '@/src/lib/utils';\n\nfunction Tabs({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Root>) {\n return (\n <TabsPrimitive.Root\n data-slot='tabs'\n className={cn('flex flex-col gap-2', className)}\n {...props}\n />\n );\n}\n\nfunction TabsList({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.List>) {\n return (\n <TabsPrimitive.List\n data-slot='tabs-list'\n className={cn(\n 'bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-1',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TabsTrigger({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Trigger>) {\n return (\n <TabsPrimitive.Trigger\n data-slot='tabs-trigger'\n className={cn(\n \"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\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TabsContent({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Content>) {\n return (\n <TabsPrimitive.Content\n data-slot='tabs-content'\n className={cn('flex-1 outline-none', className)}\n {...props}\n />\n );\n}\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent };\n","import * as React from 'react';\nimport * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';\n\nimport { cn } from '@/src/lib/utils';\n\nconst ScrollArea = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root>\n>(({ className, children, ...props }, ref) => (\n <ScrollAreaPrimitive.Root\n ref={ref}\n className={cn('relative overflow-hidden', className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport className='h-full w-full rounded-[inherit]'>\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n));\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;\n\nconst ScrollBar = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>\n>(({ className, orientation = 'vertical', ...props }, ref) => (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n ref={ref}\n orientation={orientation}\n className={cn(\n 'flex touch-none select-none transition-colors',\n orientation === 'vertical' &&\n 'h-full w-2.5 border-l border-l-transparent p-[1px]',\n orientation === 'horizontal' &&\n 'h-2.5 flex-col border-t border-t-transparent p-[1px]',\n className,\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb className='relative flex-1 rounded-full bg-border' />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n));\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;\n\nexport { ScrollArea, ScrollBar };\n","import { useState, useEffect, useMemo } from 'react';\nimport { useQuery } from '@tanstack/react-query';\nimport {\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n} from '@/src/components/ui/card';\nimport { Label } from '@/src/components/ui/label';\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from '@/src/components/ui/select';\nimport { Tabs, TabsList, TabsTrigger } from '@/src/components/ui/tabs';\nimport { useJSONSchemaForm } from '@/src/flows/Onboarding/api';\nimport { SchemaFormComparison } from './SchemaFormComparison';\nimport {\n BASIC_INFO_VERSIONS,\n COUNTRY_CONTRACT_VERSIONS,\n COUNTRY_CONTRACT_VERSIONS_WITH_MULTIPLE_VERSIONS,\n FORM_TYPES,\n type FormType,\n type SchemaVersion,\n} from './schemaVersions';\nimport { countriesOptions } from '@/src/common/api/countries';\nimport { useClient } from '@/src/context';\nimport type { Client } from '@/src/client/client';\nimport { JSFField } from '@/src/types/remoteFlows';\n\nexport const JsonSchemaComparison = () => {\n const [formType, setFormType] = useState<FormType>(\n 'employment_basic_information',\n );\n const [topVersion, setTopVersion] = useState<SchemaVersion>(1);\n const [bottomVersion, setBottomVersion] = useState<SchemaVersion>(1);\n const [countryCode, setCountryCode] = useState<string>('ARE');\n\n const { client } = useClient();\n\n const { data: countriesData } = useQuery({\n ...countriesOptions(client as Client, 'schema-comparison'),\n select: (response) =>\n response.data?.data\n ?.filter(\n (country: { eor_onboarding?: boolean }) => country.eor_onboarding,\n )\n .filter((country: { code: string }) =>\n Object.keys(\n COUNTRY_CONTRACT_VERSIONS_WITH_MULTIPLE_VERSIONS,\n ).includes(country.code),\n )\n .map((country: { name: string; code: string }) => ({\n label: country.name,\n value: country.code,\n })) || [],\n });\n\n const isContractDetails = formType === 'contract_details';\n\n const { data: topSchema, isLoading: isLoadingTop } = useJSONSchemaForm({\n countryCode: countryCode,\n form: formType,\n fieldValues: {},\n jsonSchemaVersion: topVersion,\n options: {\n queryOptions: {\n enabled: true,\n },\n },\n });\n\n const { data: bottomSchema, isLoading: isLoadingBottom } = useJSONSchemaForm({\n countryCode: countryCode,\n form: formType,\n fieldValues: {},\n jsonSchemaVersion: bottomVersion,\n options: {\n queryOptions: {\n enabled: true,\n },\n },\n });\n\n const isLoading = isLoadingTop || isLoadingBottom;\n\n const countryVersions = COUNTRY_CONTRACT_VERSIONS[countryCode];\n const hasCountryMapping = countryVersions !== undefined;\n\n const versionOptions = useMemo(() => {\n return formType === 'employment_basic_information'\n ? BASIC_INFO_VERSIONS\n : countryVersions || [{ value: 'latest', label: 'Latest' }];\n }, [formType, countryVersions]);\n\n useEffect(() => {\n const availableVersionValues = versionOptions.map((v) => v.value);\n\n if (!availableVersionValues.includes(topVersion)) {\n // WE NEED TO FIX: react-hooks/set-state-in-effect - Calling setState synchronously within an effect can trigger cascading renders\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setTopVersion(versionOptions[0].value);\n }\n if (!availableVersionValues.includes(bottomVersion)) {\n setBottomVersion(versionOptions[0].value);\n }\n }, [formType, countryCode, versionOptions, topVersion, bottomVersion]);\n\n return (\n <div className='space-y-6'>\n <Card>\n <CardHeader>\n <CardTitle>Configuration</CardTitle>\n </CardHeader>\n <CardContent className='space-y-4'>\n <div>\n <Label className='mb-2 block'>Form Type</Label>\n <Tabs\n value={formType}\n onValueChange={(value) => setFormType(value as FormType)}\n >\n <TabsList className='grid w-full grid-cols-2'>\n {FORM_TYPES.map((type) => (\n <TabsTrigger key={type.value} value={type.value}>\n {type.label}\n </TabsTrigger>\n ))}\n </TabsList>\n </Tabs>\n </div>\n\n {isContractDetails && !hasCountryMapping && (\n <div className='rounded-md bg-yellow-50 p-4 border border-yellow-200'>\n <div className='flex'>\n <div className='flex-shrink-0'>\n <svg\n className='h-5 w-5 text-yellow-400'\n viewBox='0 0 20 20'\n fill='currentColor'\n >\n <path\n fillRule='evenodd'\n 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'\n clipRule='evenodd'\n />\n </svg>\n </div>\n <div className='ml-3'>\n <h3 className='text-sm font-medium text-yellow-800'>\n Version mappings not found\n </h3>\n <div className='mt-2 text-sm text-yellow-700'>\n <p>\n Country{' '}\n <span className='font-semibold'>{countryCode}</span> is\n not configured in COUNTRY_CONTRACT_VERSIONS. Using default\n (latest only).\n </p>\n </div>\n </div>\n </div>\n </div>\n )}\n\n {isContractDetails && (\n <div>\n <Label htmlFor='country-select' className='mb-2 block'>\n Country\n </Label>\n <Select value={countryCode} onValueChange={setCountryCode}>\n <SelectTrigger id='country-select'>\n <SelectValue placeholder='Select a country' />\n </SelectTrigger>\n <SelectContent>\n {countriesData?.map(\n (country: { label: string; value: string }) => (\n <SelectItem key={country.value} value={country.value}>\n {country.label}\n </SelectItem>\n ),\n )}\n </SelectContent>\n </Select>\n </div>\n )}\n\n <div className='grid grid-cols-2 gap-4'>\n <div>\n <Label htmlFor='top-version' className='mb-2 block'>\n Left Version\n </Label>\n <Select\n value={String(topVersion)}\n onValueChange={(value) =>\n setTopVersion(value === 'latest' ? 'latest' : Number(value))\n }\n >\n <SelectTrigger id='top-version'>\n <SelectValue placeholder='Select version' />\n </SelectTrigger>\n <SelectContent>\n {versionOptions.map((version) => (\n <SelectItem\n key={String(version.value)}\n value={String(version.value)}\n >\n {version.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n\n <div>\n <Label htmlFor='bottom-version' className='mb-2 block'>\n Right Version\n </Label>\n <Select\n value={String(bottomVersion)}\n onValueChange={(value) =>\n setBottomVersion(\n value === 'latest' ? 'latest' : Number(value),\n )\n }\n >\n <SelectTrigger id='bottom-version'>\n <SelectValue placeholder='Select version' />\n </SelectTrigger>\n <SelectContent>\n {versionOptions.map((version) => (\n <SelectItem\n key={String(version.value)}\n value={String(version.value)}\n >\n {version.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n </div>\n </CardContent>\n </Card>\n\n <SchemaFormComparison\n topVersion={topVersion}\n bottomVersion={bottomVersion}\n topFields={(topSchema?.fields as JSFField[]) || []}\n bottomFields={(bottomSchema?.fields as JSFField[]) || []}\n topFieldsets={topSchema?.meta?.['x-jsf-fieldsets']}\n bottomFieldsets={bottomSchema?.meta?.['x-jsf-fieldsets']}\n isLoading={isLoading}\n />\n </div>\n );\n};\n","import type { $TSFixMe, JSFField } from '@/src/types/remoteFlows';\nimport equal from 'fast-deep-equal';\n\nexport type DiffType = 'added' | 'removed' | 'modified' | 'unchanged';\n\nexport interface FieldDiff {\n fieldName: string;\n diffType: DiffType;\n orderChanged?: { oldIndex: number; newIndex: number };\n changes?: {\n label?: { old: string; new: string };\n required?: { old: boolean; new: boolean };\n type?: { old: string; new: string };\n inputType?: { old: string; new: string };\n jsonType?: { old: string; new: string };\n defaultValue?: { old: unknown; new: unknown };\n minDate?: { old: string; new: string };\n maxDate?: { old: string; new: string };\n maxLength?: { old: number; new: number };\n multiple?: { old: boolean; new: boolean };\n isVisible?: { old: boolean; new: boolean };\n options?: {\n added: Array<{ value: string; label: string }>;\n removed: Array<{ value: string; label: string }>;\n modified: Array<{\n value: string;\n changes: { label?: { old: string; new: string } };\n }>;\n };\n nestedFields?: FieldDiff[];\n };\n}\n\nexport interface FormDiff {\n added: string[];\n removed: string[];\n modified: string[];\n unchanged: string[];\n reordered: string[];\n fieldDiffs: Map<string, FieldDiff>;\n}\n\nconst validateField = (field: JSFField): boolean => {\n if (!field.name) {\n console.warn('Field missing required \"name\" property:', field);\n return false;\n }\n if (!field.type) {\n console.warn(`Field \"${field.name}\" missing required \"type\" property`);\n return false;\n }\n return true;\n};\n\nconst compareOptions = (\n options1: JSFField['options'],\n options2: JSFField['options'],\n):\n | {\n added: Array<{ value: string; label: string }>;\n removed: Array<{ value: string; label: string }>;\n modified: Array<{\n value: string;\n changes: { label?: { old: string; new: string } };\n }>;\n }\n | undefined => {\n if (equal(options1, options2)) return undefined;\n\n const map1 = new Map((options1 || []).map((o) => [o.value, o]));\n const map2 = new Map((options2 || []).map((o) => [o.value, o]));\n\n const added: Array<{ value: string; label: string }> = [];\n const removed: Array<{ value: string; label: string }> = [];\n const modified: Array<{\n value: string;\n changes: { label?: { old: string; new: string } };\n }> = [];\n\n map2.forEach((option, value) => {\n if (!map1.has(value)) {\n added.push({ value: option.value, label: option.label });\n }\n });\n\n map1.forEach((option1, value) => {\n if (!map2.has(value)) {\n removed.push({ value: option1.value, label: option1.label });\n } else {\n const option2 = map2.get(value)!;\n if (!equal(option1, option2)) {\n const changes: { label?: { old: string; new: string } } = {};\n if (option1.label !== option2.label) {\n changes.label = { old: option1.label, new: option2.label };\n }\n if (Object.keys(changes).length > 0) {\n modified.push({ value, changes });\n }\n }\n }\n });\n\n if (added.length === 0 && removed.length === 0 && modified.length === 0) {\n return undefined;\n }\n\n return { added, removed, modified };\n};\n\nconst compareNestedFields = (\n field1: JSFField,\n field2: JSFField,\n): FieldDiff[] | undefined => {\n const nestedFields1 = (field1 as $TSFixMe).fields;\n\n const nestedFields2 = (field2 as $TSFixMe).fields;\n\n if (!nestedFields1 && !nestedFields2) return undefined;\n\n const nestedDiff = compareFormFields(\n nestedFields1 || [],\n nestedFields2 || [],\n );\n\n const hasChanges =\n nestedDiff.added.length > 0 ||\n nestedDiff.removed.length > 0 ||\n nestedDiff.modified.length > 0 ||\n nestedDiff.reordered.length > 0;\n\n if (!hasChanges) return undefined;\n\n return Array.from(nestedDiff.fieldDiffs.values());\n};\n\nconst isFieldModified = (\n field1: JSFField,\n field2: JSFField,\n index1: number,\n index2: number,\n): boolean => {\n if (index1 !== index2) {\n return true;\n }\n\n // Only compare user-facing schema properties, not internal/computed ones\n // Ignore: schema (Yup), computedAttributes, scopedJsonSchema, errorMessage, meta, description\n // Note: nested fields are checked via compareNestedFields to avoid deep equal with problematic properties\n const checks = {\n label: field1.label !== field2.label,\n required: field1.required !== field2.required,\n inputType: field1.inputType !== field2.inputType,\n type: field1.type !== field2.type,\n jsonType: !equal(field1.jsonType, field2.jsonType), // Use equal since jsonType can be an array like ['string', 'null']\n name: field1.name !== field2.name,\n defaultValue: field1.defaultValue !== field2.defaultValue,\n minDate: field1.minDate !== field2.minDate,\n maxDate: field1.maxDate !== field2.maxDate,\n maxLength: field1.maxLength !== field2.maxLength,\n multiple: field1.multiple !== field2.multiple,\n isVisible: field1.isVisible !== field2.isVisible,\n options: !equal(field1.options, field2.options),\n };\n\n // Check for nested field changes using compareNestedFields to avoid deep isEqual\n const hasNestedChanges = (() => {\n const nestedFields1 = (field1 as $TSFixMe).fields;\n const nestedFields2 = (field2 as $TSFixMe).fields;\n\n // If both undefined or null, no changes\n if (!nestedFields1 && !nestedFields2) return false;\n\n // If one is defined and the other isn't, there's a change\n if (!nestedFields1 || !nestedFields2) return true;\n\n // Recursively compare using our proper comparison logic\n const nestedDiff = compareFormFields(nestedFields1, nestedFields2);\n return (\n nestedDiff.added.length > 0 ||\n nestedDiff.removed.length > 0 ||\n nestedDiff.modified.length > 0 ||\n nestedDiff.reordered.length > 0\n );\n })();\n\n const isModified =\n Object.values(checks).some((check) => check) || hasNestedChanges;\n\n return isModified;\n};\n\nconst getFieldChanges = (field1: JSFField, field2: JSFField) => {\n const changes: FieldDiff['changes'] = {};\n\n if (field1.label !== field2.label) {\n changes.label = { old: field1.label, new: field2.label };\n }\n\n if (field1.required !== field2.required) {\n changes.required = { old: field1.required, new: field2.required };\n }\n\n if (field1.type !== field2.type) {\n changes.type = { old: field1.type, new: field2.type };\n }\n\n if (field1.inputType !== field2.inputType) {\n changes.inputType = {\n old: field1.inputType,\n new: field2.inputType,\n };\n }\n\n if (!equal(field1.jsonType, field2.jsonType)) {\n changes.jsonType = {\n old: field1.jsonType,\n new: field2.jsonType,\n };\n }\n\n if (!equal(field1.defaultValue, field2.defaultValue)) {\n changes.defaultValue = {\n old: field1.defaultValue,\n new: field2.defaultValue,\n };\n }\n\n if (field1.minDate !== field2.minDate) {\n changes.minDate = {\n old: field1.minDate || '',\n new: field2.minDate || '',\n };\n }\n\n if (field1.maxDate !== field2.maxDate) {\n changes.maxDate = {\n old: field1.maxDate || '',\n new: field2.maxDate || '',\n };\n }\n\n if (field1.maxLength !== field2.maxLength) {\n changes.maxLength = {\n old: field1.maxLength || 0,\n new: field2.maxLength || 0,\n };\n }\n\n if (field1.multiple !== field2.multiple) {\n changes.multiple = {\n old: field1.multiple || false,\n new: field2.multiple || false,\n };\n }\n\n if (field1.isVisible !== field2.isVisible) {\n changes.isVisible = {\n old: field1.isVisible,\n new: field2.isVisible,\n };\n }\n\n const optionsDiff = compareOptions(field1.options, field2.options);\n if (optionsDiff) {\n changes.options = optionsDiff;\n }\n\n const nestedFieldsDiff = compareNestedFields(field1, field2);\n if (nestedFieldsDiff) {\n changes.nestedFields = nestedFieldsDiff;\n }\n\n return Object.keys(changes).length > 0 ? changes : undefined;\n};\n\nexport const compareFormFields = (\n fields1: JSFField[] = [],\n fields2: JSFField[] = [],\n): FormDiff => {\n const validFields1 = fields1.filter(validateField);\n const validFields2 = fields2.filter(validateField);\n\n const fieldMap1 = new Map(\n validFields1.map((f, i) => [f.name, { field: f, index: i }]),\n );\n const fieldMap2 = new Map(\n validFields2.map((f, i) => [f.name, { field: f, index: i }]),\n );\n\n const added: string[] = [];\n const removed: string[] = [];\n const modified: string[] = [];\n const unchanged: string[] = [];\n const reordered: string[] = [];\n const fieldDiffs = new Map<string, FieldDiff>();\n\n fieldMap2.forEach((_, name) => {\n if (!fieldMap1.has(name)) {\n added.push(name);\n fieldDiffs.set(name, {\n fieldName: name,\n diffType: 'added',\n });\n }\n });\n\n fieldMap1.forEach(({ field: field1, index: index1 }, name) => {\n if (!fieldMap2.has(name)) {\n removed.push(name);\n fieldDiffs.set(name, {\n fieldName: name,\n diffType: 'removed',\n });\n } else {\n const { field: field2, index: index2 } = fieldMap2.get(name)!;\n\n if (isFieldModified(field1, field2, index1, index2)) {\n const onlyPositionChanged =\n index1 !== index2 && !isFieldModified(field1, field2, index1, index1);\n\n if (onlyPositionChanged) {\n reordered.push(name);\n fieldDiffs.set(name, {\n fieldName: name,\n diffType: 'unchanged',\n orderChanged: { oldIndex: index1, newIndex: index2 },\n });\n } else {\n modified.push(name);\n fieldDiffs.set(name, {\n fieldName: name,\n diffType: 'modified',\n orderChanged:\n index1 !== index2\n ? { oldIndex: index1, newIndex: index2 }\n : undefined,\n changes: getFieldChanges(field1, field2),\n });\n }\n } else {\n unchanged.push(name);\n fieldDiffs.set(name, {\n fieldName: name,\n diffType: 'unchanged',\n });\n }\n }\n });\n\n return {\n added,\n removed,\n modified,\n unchanged,\n reordered,\n fieldDiffs,\n };\n};\n\nexport const getDiffStyles = (\n diffType: DiffType,\n hasOrderChange?: boolean,\n): string => {\n if (hasOrderChange && diffType === 'unchanged') {\n return 'bg-blue-50 border-l-4 border-blue-500';\n }\n\n switch (diffType) {\n case 'added':\n return 'bg-green-50 border-l-4 border-green-500';\n case 'removed':\n return 'bg-red-50 border-l-4 border-red-500';\n case 'modified':\n return 'bg-yellow-50 border-l-4 border-yellow-500';\n case 'unchanged':\n default:\n return '';\n }\n};\n","import { JSONSchemaFormFields } from '@/src/components/form/JSONSchemaForm';\nimport { Form } from '@/src/components/ui/form';\nimport { useForm } from 'react-hook-form';\nimport {\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n} from '@/src/components/ui/card';\nimport type { JSFField, JSFFieldset } from '@/src/types/remoteFlows';\nimport { compareFormFields, getDiffStyles } from './formDiffDetector';\nimport { useMemo, useRef, useEffect } from 'react';\n\ninterface SchemaFormComparisonProps {\n topVersion: string | number;\n bottomVersion: string | number;\n topFields: JSFField[];\n bottomFields: JSFField[];\n topFieldsets?: JSFFieldset | null;\n bottomFieldsets?: JSFFieldset | null;\n isLoading?: boolean;\n}\n\nconst FieldWrapper = ({\n children,\n diffType,\n orderChanged,\n changes,\n}: {\n children: React.ReactNode;\n diffType: 'added' | 'removed' | 'modified' | 'unchanged';\n fieldName: string;\n orderChanged?: { oldIndex: number; newIndex: number };\n changes?: {\n label?: { old: string; new: string };\n required?: { old: boolean; new: boolean };\n type?: { old: string; new: string };\n inputType?: { old: string; new: string };\n jsonType?: { old: string; new: string };\n defaultValue?: { old: unknown; new: unknown };\n minDate?: { old: string; new: string };\n maxDate?: { old: string; new: string };\n maxLength?: { old: number; new: number };\n multiple?: { old: boolean; new: boolean };\n isVisible?: { old: boolean; new: boolean };\n options?: {\n added: Array<{ value: string; label: string }>;\n removed: Array<{ value: string; label: string }>;\n modified: Array<{\n value: string;\n changes: { label?: { old: string; new: string } };\n }>;\n };\n nestedFields?: unknown[];\n };\n}) => {\n const styles = getDiffStyles(diffType, !!orderChanged);\n\n if (diffType === 'unchanged' && !orderChanged) {\n return <div>{children}</div>;\n }\n\n const badges = {\n added: (\n <span className='text-xs font-semibold text-green-700 bg-green-100 px-2 py-1 rounded'>\n NEW\n </span>\n ),\n removed: (\n <span className='text-xs font-semibold text-red-700 bg-red-100 px-2 py-1 rounded'>\n REMOVED\n </span>\n ),\n modified: (\n <span className='text-xs font-semibold text-yellow-700 bg-yellow-100 px-2 py-1 rounded'>\n MODIFIED\n </span>\n ),\n };\n\n const reorderedBadge = orderChanged && diffType === 'unchanged' && (\n <span className='text-xs font-semibold text-blue-700 bg-blue-100 px-2 py-1 rounded'>\n MOVED\n </span>\n );\n\n const badge =\n reorderedBadge || (diffType !== 'unchanged' && badges[diffType]);\n\n const renderChanges = () => {\n if (!changes || diffType !== 'modified') return null;\n\n const changesList: React.ReactNode[] = [];\n\n if (changes.label) {\n changesList.push(\n <div key='label' className='text-xs'>\n <span className='font-semibold'>Label:</span>{' '}\n <span className='line-through text-red-600'>{changes.label.old}</span>{' '}\n → <span className='text-green-600'>{changes.label.new}</span>\n </div>,\n );\n }\n\n if (changes.required) {\n changesList.push(\n <div key='required' className='text-xs'>\n <span className='font-semibold'>Required:</span>{' '}\n <span className='line-through text-red-600'>\n {changes.required.old ? 'Yes' : 'No'}\n </span>{' '}\n →{' '}\n <span className='text-green-600'>\n {changes.required.new ? 'Yes' : 'No'}\n </span>\n </div>,\n );\n }\n\n if (changes.type) {\n changesList.push(\n <div key='type' className='text-xs'>\n <span className='font-semibold'>Type:</span>{' '}\n <span className='line-through text-red-600'>{changes.type.old}</span>{' '}\n → <span className='text-green-600'>{changes.type.new}</span>\n </div>,\n );\n }\n\n if (changes.inputType) {\n changesList.push(\n <div key='inputType' className='text-xs'>\n <span className='font-semibold'>Input Type:</span>{' '}\n <span className='line-through text-red-600'>\n {changes.inputType.old}\n </span>{' '}\n → <span className='text-green-600'>{changes.inputType.new}</span>\n </div>,\n );\n }\n\n if (changes.jsonType) {\n const oldJsonType = Array.isArray(changes.jsonType.old)\n ? changes.jsonType.old.join(' | ')\n : changes.jsonType.old;\n const newJsonType = Array.isArray(changes.jsonType.new)\n ? changes.jsonType.new.join(' | ')\n : changes.jsonType.new;\n\n changesList.push(\n <div key='jsonType' className='text-xs'>\n <span className='font-semibold'>JSON Type:</span>{' '}\n <span className='line-through text-red-600'>{oldJsonType}</span> →{' '}\n <span className='text-green-600'>{newJsonType}</span>\n </div>,\n );\n }\n\n if (changes.defaultValue !== undefined) {\n changesList.push(\n <div key='defaultValue' className='text-xs'>\n <span className='font-semibold'>Default Value:</span>{' '}\n <span className='line-through text-red-600'>\n {JSON.stringify(changes.defaultValue.old)}\n </span>{' '}\n →{' '}\n <span className='text-green-600'>\n {JSON.stringify(changes.defaultValue.new)}\n </span>\n </div>,\n );\n }\n\n if (changes.options) {\n if (changes.options.added.length > 0) {\n changesList.push(\n <div key='options-added' className='text-xs'>\n <span className='font-semibold text-green-700'>Options Added:</span>{' '}\n {changes.options.added.map((opt) => opt.label).join(', ')}\n </div>,\n );\n }\n if (changes.options.removed.length > 0) {\n changesList.push(\n <div key='options-removed' className='text-xs'>\n <span className='font-semibold text-red-700'>Options Removed:</span>{' '}\n {changes.options.removed.map((opt) => opt.label).join(', ')}\n </div>,\n );\n }\n if (changes.options.modified.length > 0) {\n changesList.push(\n <div key='options-modified' className='text-xs'>\n <span className='font-semibold'>Options Modified:</span>{' '}\n {changes.options.modified.length} option(s)\n </div>,\n );\n }\n }\n\n if (changes.nestedFields && changes.nestedFields.length > 0) {\n changesList.push(\n <div key='nestedFields' className='text-xs'>\n <span className='font-semibold'>Nested Fields:</span>{' '}\n {changes.nestedFields.length} field(s) changed\n </div>,\n );\n }\n\n if (changesList.length === 0) return null;\n\n return (\n <div className='mt-2 p-2 bg-yellow-50 rounded border border-yellow-200 space-y-1'>\n <div className='text-xs font-semibold text-yellow-800 mb-1'>\n Changes:\n </div>\n {changesList}\n </div>\n );\n };\n\n return (\n <div className={`p-3 mb-2 rounded ${styles} relative`}>\n <div className='absolute top-2 right-2'>\n {badge}\n {orderChanged && diffType !== 'unchanged' && (\n <span className='ml-2 text-xs text-gray-600'>(position changed)</span>\n )}\n </div>\n {children}\n {renderChanges()}\n </div>\n );\n};\n\nconst FormPanel = ({\n version,\n fields,\n fieldsets,\n diffMap,\n title,\n scrollRef,\n}: {\n version: string | number;\n fields: JSFField[];\n fieldsets?: JSFFieldset | null;\n diffMap: Map<\n string,\n {\n diffType: 'added' | 'removed' | 'modified' | 'unchanged';\n orderChanged?: { oldIndex: number; newIndex: number };\n changes?: unknown;\n }\n >;\n title: string;\n scrollRef?: React.RefObject<HTMLDivElement | null>;\n}) => {\n const form = useForm({\n mode: 'onBlur',\n });\n\n const fieldsWithWrappers = useMemo(() => {\n return fields.map((field) => {\n const diff = diffMap.get(field.name);\n const diffType = diff?.diffType || 'unchanged';\n const orderChanged = diff?.orderChanged;\n const changes = diff?.changes;\n\n return {\n ...field,\n WrapperComponent: ({ children }: { children: React.ReactNode }) => (\n <FieldWrapper\n diffType={diffType}\n fieldName={field.name}\n orderChanged={orderChanged}\n changes={changes as never}\n >\n {children}\n </FieldWrapper>\n ),\n };\n });\n }, [fields, diffMap]);\n\n return (\n <Card className='h-full'>\n <CardHeader>\n <CardTitle>\n {title} - Version {version}\n </CardTitle>\n </CardHeader>\n <CardContent ref={scrollRef} className='overflow-y-auto max-h-[600px]'>\n <Form {...form}>\n <form className='space-y-4'>\n <JSONSchemaFormFields\n fields={fieldsWithWrappers}\n fieldsets={fieldsets}\n fieldValues={{}}\n />\n </form>\n </Form>\n </CardContent>\n </Card>\n );\n};\n\nexport const SchemaFormComparison = ({\n topVersion,\n bottomVersion,\n topFields,\n bottomFields,\n topFieldsets,\n bottomFieldsets,\n isLoading,\n}: SchemaFormComparisonProps) => {\n const diff = useMemo(\n () => compareFormFields(topFields, bottomFields),\n [topFields, bottomFields],\n );\n\n const leftScrollRef = useRef<HTMLDivElement>(null);\n const rightScrollRef = useRef<HTMLDivElement>(null);\n const isSyncing = useRef(false);\n\n useEffect(() => {\n const leftEl = leftScrollRef.current;\n const rightEl = rightScrollRef.current;\n\n if (!leftEl || !rightEl) return;\n\n const handleLeftScroll = () => {\n if (isSyncing.current) return;\n isSyncing.current = true;\n rightEl.scrollTop = leftEl.scrollTop;\n requestAnimationFrame(() => {\n isSyncing.current = false;\n });\n };\n\n const handleRightScroll = () => {\n if (isSyncing.current) return;\n isSyncing.current = true;\n leftEl.scrollTop = rightEl.scrollTop;\n requestAnimationFrame(() => {\n isSyncing.current = false;\n });\n };\n\n leftEl.addEventListener('scroll', handleLeftScroll);\n rightEl.addEventListener('scroll', handleRightScroll);\n\n return () => {\n leftEl.removeEventListener('scroll', handleLeftScroll);\n rightEl.removeEventListener('scroll', handleRightScroll);\n };\n }, [topFields, bottomFields]);\n\n if (isLoading) {\n return (\n <div className='flex items-center justify-center h-96'>\n <div className='text-center'>\n <div className='animate-spin rounded-full h-12 w-12 border-b-2 border-gray-900 mx-auto'></div>\n <p className='mt-4 text-gray-600'>Loading schemas...</p>\n </div>\n </div>\n );\n }\n\n const hasNoDifferences =\n diff.added.length === 0 &&\n diff.removed.length === 0 &&\n diff.modified.length === 0 &&\n diff.reordered.length === 0;\n\n return (\n <div className='space-y-6'>\n <Card>\n <CardContent className='pt-6'>\n {hasNoDifferences ? (\n <p className='text-center text-gray-600'>\n No differences detected between the two versions\n </p>\n ) : (\n <div className='flex gap-6 justify-center'>\n {diff.added.length > 0 && (\n <div className='flex items-center gap-2'>\n <span className='w-4 h-4 bg-green-500 rounded'></span>\n <span className='text-sm'>\n {diff.added.length} field{diff.added.length > 1 ? 's' : ''}{' '}\n added\n </span>\n </div>\n )}\n {diff.removed.length > 0 && (\n <div className='flex items-center gap-2'>\n <span className='w-4 h-4 bg-red-500 rounded'></span>\n <span className='text-sm'>\n {diff.removed.length} field\n {diff.removed.length > 1 ? 's' : ''} removed\n </span>\n </div>\n )}\n {diff.modified.length > 0 && (\n <div className='flex items-center gap-2'>\n <span className='w-4 h-4 bg-yellow-500 rounded'></span>\n <span className='text-sm'>\n {diff.modified.length} field\n {diff.modified.length > 1 ? 's' : ''} modified\n </span>\n </div>\n )}\n {diff.reordered.length > 0 && (\n <div className='flex items-center gap-2'>\n <span className='w-4 h-4 bg-blue-500 rounded'></span>\n <span className='text-sm'>\n {diff.reordered.length} field\n {diff.reordered.length > 1 ? 's' : ''} reordered\n </span>\n </div>\n )}\n </div>\n )}\n </CardContent>\n </Card>\n\n <div className='grid grid-cols-2 gap-6'>\n <FormPanel\n version={topVersion}\n fields={topFields}\n fieldsets={topFieldsets}\n diffMap={diff.fieldDiffs}\n title='Left'\n scrollRef={leftScrollRef}\n />\n <FormPanel\n version={bottomVersion}\n fields={bottomFields}\n fieldsets={bottomFieldsets}\n diffMap={diff.fieldDiffs}\n title='Right'\n scrollRef={rightScrollRef}\n />\n </div>\n </div>\n );\n};\n","export type SchemaVersion = number | 'latest';\n\nexport interface VersionOption {\n value: SchemaVersion;\n label: string;\n}\n\nexport const BASIC_INFO_VERSIONS: VersionOption[] = [\n { value: 1, label: 'v1 (Legacy)' },\n { value: 3, label: 'v3 (Recommended)' },\n { value: 'latest', label: 'Latest' },\n];\n\n// AI generated from tiger\nexport const COUNTRY_CONTRACT_VERSIONS: Record<string, VersionOption[]> = {\n ALB: [{ value: 'latest', label: 'Latest' }],\n ARE: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 'latest', label: 'Latest' },\n ],\n ARG: [{ value: 'latest', label: 'Latest' }],\n ARM: [{ value: 'latest', label: 'Latest' }],\n AUS: [{ value: 'latest', label: 'Latest' }],\n AUT: [\n { value: 1, label: 'v1' },\n { value: 'latest', label: 'Latest' },\n ],\n BEL: [{ value: 'latest', label: 'Latest' }],\n BGD: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 'latest', label: 'Latest' },\n ],\n BGR: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 'latest', label: 'Latest' },\n ],\n BIH: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 'latest', label: 'Latest' },\n ],\n BLR: [\n { value: 1, label: 'v1' },\n { value: 'latest', label: 'Latest' },\n ],\n BOL: [{ value: 'latest', label: 'Latest' }],\n BRA: [{ value: 'latest', label: 'Latest' }],\n CAN: [\n { value: 1, label: 'v1' },\n { value: 'latest', label: 'Latest' },\n ],\n CHE: [\n { value: 1, label: 'v1' },\n { value: 'latest', label: 'Latest' },\n ],\n CHL: [{ value: 'latest', label: 'Latest' }],\n CHN: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 'latest', label: 'Latest' },\n ],\n COL: [{ value: 'latest', label: 'Latest' }],\n CRI: [{ value: 'latest', label: 'Latest' }],\n CYP: [{ value: 'latest', label: 'Latest' }],\n CZE: [\n { value: 1, label: 'v1' },\n { value: 'latest', label: 'Latest' },\n ],\n DEU: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 'latest', label: 'Latest' },\n ],\n DNK: [{ value: 'latest', label: 'Latest' }],\n DOM: [{ value: 'latest', label: 'Latest' }],\n ECU: [{ value: 'latest', label: 'Latest' }],\n EGY: [\n { value: 1, label: 'v1' },\n { value: 'latest', label: 'Latest' },\n ],\n ESP: [{ value: 'latest', label: 'Latest' }],\n EST: [{ value: 'latest', label: 'Latest' }],\n FIN: [{ value: 'latest', label: 'Latest' }],\n FRA: [\n { value: 1, label: 'v1' },\n { value: 'latest', label: 'Latest' },\n ],\n FRA_SAS: [{ value: 'latest', label: 'Latest' }],\n GBR: [\n { value: 1, label: 'v1' },\n { value: 'latest', label: 'Latest' },\n ],\n GEO: [{ value: 'latest', label: 'Latest' }],\n GRC: [{ value: 'latest', label: 'Latest' }],\n GTM: [{ value: 'latest', label: 'Latest' }],\n HKG: [\n { value: 1, label: 'v1' },\n { value: 'latest', label: 'Latest' },\n ],\n HND: [{ value: 'latest', label: 'Latest' }],\n HRV: [{ value: 'latest', label: 'Latest' }],\n HUN: [{ value: 'latest', label: 'Latest' }],\n IDN: [{ value: 'latest', label: 'Latest' }],\n IND: [\n { value: 1, label: 'v1' },\n { value: 'latest', label: 'Latest' },\n ],\n IRL: [{ value: 'latest', label: 'Latest' }],\n ISL: [\n { value: 1, label: 'v1' },\n { value: 'latest', label: 'Latest' },\n ],\n ISR: [{ value: 'latest', label: 'Latest' }],\n ITA: [{ value: 'latest', label: 'Latest' }],\n ITA_APL: [{ value: 'latest', label: 'Latest' }],\n JAM: [\n { value: 1, label: 'v1' },\n { value: 'latest', label: 'Latest' },\n ],\n JPN: [\n { value: 1, label: 'v1' },\n { value: 'latest', label: 'Latest' },\n ],\n KEN: [\n { value: 1, label: 'v1' },\n { value: 'latest', label: 'Latest' },\n ],\n KGZ: [{ value: 'latest', label: 'Latest' }],\n KHM: [{ value: 'latest', label: 'Latest' }],\n KOR: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 'latest', label: 'Latest' },\n ],\n LBN: [\n { value: 1, label: 'v1' },\n { value: 'latest', label: 'Latest' },\n ],\n LKA: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 'latest', label: 'Latest' },\n ],\n LTU: [{ value: 'latest', label: 'Latest' }],\n LUX: [{ value: 'latest', label: 'Latest' }],\n LVA: [\n { value: 1, label: 'v1' },\n { value: 'latest', label: 'Latest' },\n ],\n MAR: [{ value: 'latest', label: 'Latest' }],\n MDA: [{ value: 'latest', label: 'Latest' }],\n MEX: [\n { value: 1, label: 'v1' },\n { value: 'latest', label: 'Latest' },\n ],\n MKD: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 'latest', label: 'Latest' },\n ],\n MLT: [{ value: 'latest', label: 'Latest' }],\n MNG: [{ value: 'latest', label: 'Latest' }],\n MUS: [\n { value: 1, label: 'v1' },\n { value: 'latest', label: 'Latest' },\n ],\n MYS: [\n { value: 1, label: 'v1' },\n { value: 'latest', label: 'Latest' },\n ],\n NGA: [\n { value: 1, label: 'v1' },\n { value: 'latest', label: 'Latest' },\n ],\n NIC: [{ value: 'latest', label: 'Latest' }],\n NLD: [{ value: 'latest', label: 'Latest' }],\n NOR: [\n { value: 1, label: 'v1' },\n { value: 'latest', label: 'Latest' },\n ],\n NZL: [\n { value: 1, label: 'v1' },\n { value: 'latest', label: 'Latest' },\n ],\n PAK: [\n { value: 1, label: 'v1' },\n { value: 'latest', label: 'Latest' },\n ],\n PAN: [{ value: 'latest', label: 'Latest' }],\n PER: [{ value: 'latest', label: 'Latest' }],\n PHL: [{ value: 'latest', label: 'Latest' }],\n POL: [{ value: 'latest', label: 'Latest' }],\n PRI: [{ value: 'latest', label: 'Latest' }],\n PRT: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 'latest', label: 'Latest' },\n ],\n PRY: [{ value: 'latest', label: 'Latest' }],\n ROU: [{ value: 'latest', label: 'Latest' }],\n SAU: [\n { value: 1, label: 'v1' },\n { value: 'latest', label: 'Latest' },\n ],\n SGP: [\n { value: 1, label: 'v1' },\n { value: 'latest', label: 'Latest' },\n ],\n SLV: [{ value: 'latest', label: 'Latest' }],\n SRB: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 'latest', label: 'Latest' },\n ],\n SVK: [{ value: 'latest', label: 'Latest' }],\n SVN: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 'latest', label: 'Latest' },\n ],\n SWE: [\n { value: 1, label: 'v1' },\n { value: 'latest', label: 'Latest' },\n ],\n THA: [\n { value: 1, label: 'v1' },\n { value: 'latest', label: 'Latest' },\n ],\n TUN: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 'latest', label: 'Latest' },\n ],\n TUR: [{ value: 'latest', label: 'Latest' }],\n TWN: [{ value: 'latest', label: 'Latest' }],\n UGA: [{ value: 'latest', label: 'Latest' }],\n UKR: [{ value: 'latest', label: 'Latest' }],\n URY: [{ value: 'latest', label: 'Latest' }],\n USA: [{ value: 'latest', label: 'Latest' }],\n VNM: [{ value: 'latest', label: 'Latest' }],\n XKX: [{ value: 'latest', label: 'Latest' }],\n ZAF: [{ value: 'latest', label: 'Latest' }],\n ZWE: [{ value: 'latest', label: 'Latest' }],\n};\n\nexport const COUNTRY_CONTRACT_VERSIONS_WITH_MULTIPLE_VERSIONS =\n Object.fromEntries(\n Object.entries(COUNTRY_CONTRACT_VERSIONS).filter(\n ([, versions]) => versions.length > 1,\n ),\n ) as Record<string, VersionOption[]>;\n\nexport const FORM_TYPES = [\n { value: 'employment_basic_information', label: 'Basic Information' },\n { value: 'contract_details', label: 'Contract Details' },\n] as const;\n\nexport type FormType = (typeof FORM_TYPES)[number]['value'];\n"],"mappings":"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","names":["CollapsiblePrimitive","Collapsible","CollapsibleTrigger","CollapsibleContent","TabsPrimitive","jsx","Tabs","className","props","cn","__name","TabsList","TabsTrigger","TabsContent","React","ScrollAreaPrimitive","jsx","jsxs","ScrollArea","className","children","props","ref","cn","ScrollBar","orientation","useState","useEffect","useMemo","useQuery","equal","validateField","__name","field","compareOptions","options1","options2","equal","map1","o","map2","added","removed","modified","option","value","option1","option2","changes","compareNestedFields","field1","field2","nestedFields1","nestedFields2","nestedDiff","compareFormFields","isFieldModified","index1","index2","checks","hasNestedChanges","check","getFieldChanges","optionsDiff","nestedFieldsDiff","fields1","fields2","validFields1","validFields2","fieldMap1","f","i","fieldMap2","unchanged","reordered","fieldDiffs","_","name","getDiffStyles","diffType","hasOrderChange","useMemo","useRef","useEffect","jsx","jsxs","FieldWrapper","__name","children","diffType","orderChanged","changes","styles","getDiffStyles","badge","renderChanges","changesList","oldJsonType","newJsonType","opt","FormPanel","version","fields","fieldsets","diffMap","title","scrollRef","form","useForm","fieldsWithWrappers","useMemo","field","diff","Card","CardHeader","CardTitle","CardContent","Form","JSONSchemaFormFields","SchemaFormComparison","topVersion","bottomVersion","topFields","bottomFields","topFieldsets","bottomFieldsets","isLoading","compareFormFields","leftScrollRef","useRef","rightScrollRef","isSyncing","useEffect","leftEl","rightEl","handleLeftScroll","handleRightScroll","hasNoDifferences","BASIC_INFO_VERSIONS","COUNTRY_CONTRACT_VERSIONS","COUNTRY_CONTRACT_VERSIONS_WITH_MULTIPLE_VERSIONS","versions","FORM_TYPES","jsx","jsxs","JsonSchemaComparison","__name","formType","setFormType","useState","topVersion","setTopVersion","bottomVersion","setBottomVersion","countryCode","setCountryCode","client","useClient","countriesData","useQuery","countriesOptions","response","country","COUNTRY_CONTRACT_VERSIONS_WITH_MULTIPLE_VERSIONS","isContractDetails","topSchema","isLoadingTop","useJSONSchemaForm","bottomSchema","isLoadingBottom","isLoading","countryVersions","COUNTRY_CONTRACT_VERSIONS","hasCountryMapping","versionOptions","useMemo","BASIC_INFO_VERSIONS","useEffect","availableVersionValues","v","Card","CardHeader","CardTitle","CardContent","Label","Tabs","value","TabsList","FORM_TYPES","type","TabsTrigger","Select","SelectTrigger","SelectValue","SelectContent","SelectItem","version","SchemaFormComparison"]}
|
package/dist/chunk-IK27ZFUU.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as m}from"./chunk-KRJETP7I.js";import{a}from"./chunk-5EHJ5HTV.js";import{a as i}from"./chunk-W7YC2IO2.js";import{a as c}from"./chunk-FHYOWPXB.js";import{a as S}from"./chunk-YIMWF5GR.js";import{a as f}from"./chunk-DEVQ2NNK.js";import{a as n}from"./chunk-FZO24P53.js";import{a as p}from"./chunk-IY3ASS7L.js";import{a as s}from"./chunk-GHYCSTSK.js";import{c as e}from"./chunk-TIJRONPS.js";import{a as r}from"./chunk-PGWKJ6FK.js";import{a as t}from"./chunk-P37U34EQ.js";import{useId as D,useState as P}from"react";import{jsx as R}from"react/jsx-runtime";var L=t(({employmentId:d,companyId:u,countryCode:b,type:l="employee",externalId:v,skipSteps:g,initialValues:B,render:I,options:O})=>{let w=D(),o=e({companyId:u,countryCode:b,employmentId:d,type:l,options:O,skipSteps:g,externalId:v,initialValues:B}),[C,h]=P({showReserveInvoice:!1,showInviteSuccessful:!1});return R(r.Provider,{value:{formId:w,onboardingBag:o,creditScore:C,setCreditScore:h},children:I({onboardingBag:o,components:{BasicInformationStep:n,ContractDetailsStep:s,BenefitsStep:p,SubmitButton:i,SaveDraftButton:S,BackButton:m,OnboardingInvite:a,SelectCountryStep:f,ReviewStep:c}})})},"OnboardingFlow");export{L as a};
|
|
2
|
-
//# sourceMappingURL=chunk-IK27ZFUU.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/Onboarding/OnboardingFlow.tsx"],"sourcesContent":["import { useId, useState } from 'react';\nimport { useOnboarding } from '@/src/flows/Onboarding/hooks';\nimport { BasicInformationStep } from '@/src/flows/Onboarding/components/BasicInformationStep';\nimport { OnboardingContext } from '@/src/flows/Onboarding/context';\nimport { OnboardingSubmit } from '@/src/flows/Onboarding/components/OnboardingSubmit';\nimport { OnboardingBack } from '@/src/flows/Onboarding/components/OnboardingBack';\nimport { OnboardingFlowProps } from '@/src/flows/Onboarding/types';\nimport { OnboardingInvite } from '@/src/flows/Onboarding/components/OnboardingInvite';\nimport { ContractDetailsStep } from '@/src/flows/Onboarding/components/ContractDetailsStep';\nimport { BenefitsStep } from '@/src/flows/Onboarding/components/BenefitsStep';\nimport { SelectCountryStep } from '@/src/flows/Onboarding/components/SelectCountryStep';\nimport { ReviewStep } from '@/src/flows/Onboarding/components/ReviewStep';\nimport { SaveDraftButton } from '@/src/flows/Onboarding/components/SaveDraftButton';\n\nexport const OnboardingFlow = ({\n employmentId,\n companyId,\n countryCode,\n type = 'employee',\n externalId,\n skipSteps,\n initialValues,\n render,\n options,\n}: OnboardingFlowProps) => {\n const formId = useId();\n const onboardingBag = useOnboarding({\n companyId,\n countryCode,\n employmentId,\n type,\n options,\n skipSteps,\n externalId,\n initialValues,\n });\n\n const [creditScore, setCreditScore] = useState<{\n showReserveInvoice: boolean;\n showInviteSuccessful: boolean;\n }>({\n showReserveInvoice: false,\n showInviteSuccessful: false,\n });\n\n return (\n <OnboardingContext.Provider\n value={{\n formId: formId,\n onboardingBag,\n creditScore,\n setCreditScore: setCreditScore,\n }}\n >\n {render({\n onboardingBag,\n components: {\n BasicInformationStep: BasicInformationStep,\n ContractDetailsStep: ContractDetailsStep,\n BenefitsStep: BenefitsStep,\n SubmitButton: OnboardingSubmit,\n SaveDraftButton: SaveDraftButton,\n BackButton: OnboardingBack,\n OnboardingInvite: OnboardingInvite,\n SelectCountryStep: SelectCountryStep,\n ReviewStep: ReviewStep,\n },\n })}\n </OnboardingContext.Provider>\n );\n};\n"],"mappings":"2dAAA,OAAS,SAAAA,EAAO,YAAAC,MAAgB,QA8C5B,cAAAC,MAAA,oBAhCG,IAAMC,EAAiBC,EAAA,CAAC,CAC7B,aAAAC,EACA,UAAAC,EACA,YAAAC,EACA,KAAAC,EAAO,WACP,WAAAC,EACA,UAAAC,EACA,cAAAC,EACA,OAAAC,EACA,QAAAC,CACF,IAA2B,CACzB,IAAMC,EAASC,EAAM,EACfC,EAAgBC,EAAc,CAClC,UAAAX,EACA,YAAAC,EACA,aAAAF,EACA,KAAAG,EACA,QAAAK,EACA,UAAAH,EACA,WAAAD,EACA,cAAAE,CACF,CAAC,EAEK,CAACO,EAAaC,CAAc,EAAIC,EAGnC,CACD,mBAAoB,GACpB,qBAAsB,EACxB,CAAC,EAED,OACElB,EAACmB,EAAkB,SAAlB,CACC,MAAO,CACL,OAAQP,EACR,cAAAE,EACA,YAAAE,EACA,eAAgBC,CAClB,EAEC,SAAAP,EAAO,CACN,cAAAI,EACA,WAAY,CACV,qBAAsBM,EACtB,oBAAqBC,EACrB,aAAcC,EACd,aAAcC,EACd,gBAAiBC,EACjB,WAAYC,EACZ,iBAAkBC,EAClB,kBAAmBC,EACnB,WAAYC,CACd,CACF,CAAC,EACH,CAEJ,EAxD8B","names":["useId","useState","jsx","OnboardingFlow","__name","employmentId","companyId","countryCode","type","externalId","skipSteps","initialValues","render","options","formId","useId","onboardingBag","useOnboarding","creditScore","setCreditScore","useState","OnboardingContext","BasicInformationStep","ContractDetailsStep","BenefitsStep","OnboardingSubmit","SaveDraftButton","OnboardingBack","OnboardingInvite","SelectCountryStep","ReviewStep"]}
|
package/dist/chunk-JMDINYDB.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{c as m}from"./chunk-FFVTWWGX.js";import{b as f}from"./chunk-626FTNKA.js";import{a as n}from"./chunk-P37U34EQ.js";import{createHeadlessForm as a,modify as u}from"@remoteoss/remote-json-schema-form-kit";var c=n((e,o,t)=>{if(t&&t.jsfModify){let{required:i,allOf:r,...s}=t.jsfModify,{schema:l}=u(e,s);e=l,i&&(e.required=[...l.required,...i]),r&&(e.allOf=[...l.allOf||[],...r])}let d={};o&&(d=f(e.properties||{},"money").reduce((r,s)=>(r[s]=m(o[s]),r),{}));let F=JSON.parse(JSON.stringify({...o,...d}));return{meta:{"x-jsf-fieldsets":e["x-jsf-fieldsets"]},...a(e,{initialValues:F})}},"createHeadlessForm");export{c as a};
|
|
2
|
-
//# sourceMappingURL=chunk-JMDINYDB.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/common/createHeadlessForm.tsx"],"sourcesContent":["import { FieldValues } from 'react-hook-form';\nimport {\n createHeadlessForm as baseCreateHeadlessForm,\n FormResult,\n modify,\n} from '@remoteoss/remote-json-schema-form-kit';\nimport { convertToCents } from '@/src/components/form/utils';\nimport { JSFModify } from '@/src/flows/types';\nimport { findFieldsByType } from '@/src/flows/utils';\nimport { JSFFieldset } from '@/src/types/remoteFlows';\n\ntype CreateHeadlessFormResult = FormResult & {\n meta: {\n 'x-jsf-fieldsets': JSFFieldset;\n };\n};\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): CreateHeadlessFormResult => {\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 = [...schema.required, ...required];\n }\n\n if (allOf) {\n jsfSchema.allOf = [...(schema.allOf || []), ...allOf];\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,EAEtB,UAAAC,MACK,yCAmBA,IAAMC,EAAqBC,EAAA,CAChCC,EACAC,EACAC,IAC6B,CAC7B,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,CAAC,GAAGM,EAAO,SAAU,GAAGH,CAAQ,GAGnDC,IACFJ,EAAU,MAAQ,CAAC,GAAIM,EAAO,OAAS,CAAC,EAAI,GAAGF,CAAK,EAExD,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,CAChD,EACA,GAAGc,EAAuBd,EAAW,CACnC,cAAAa,CACF,CAAC,CACH,CACF,EAnDkC","names":["baseCreateHeadlessForm","modify","createHeadlessForm","__name","jsfSchema","fieldValues","options","required","allOf","modifyConfig","schema","modify","moneyFieldsData","findFieldsByType","acc","field","convertToCents","initialValues","baseCreateHeadlessForm"]}
|
package/dist/chunk-JWP4HAIS.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{b as u}from"./chunk-PGWKJ6FK.js";import{b as p}from"./chunk-KFYWUBRS.js";import{a as F}from"./chunk-4EDPYN5F.js";import{f as l,h as c}from"./chunk-72RFYT5Y.js";import{b as f}from"./chunk-OSQ6VUDM.js";import{a}from"./chunk-P37U34EQ.js";import{useEffect as y}from"react";import{jsx as S}from"react/jsx-runtime";import{createElement as O}from"react";function x({defaultValues:m,onSubmit:b,components:g}){let{formId:E,onboardingBag:o}=u(),k=p(o.handleValidation),n=l({resolver:k,defaultValues:m,shouldUnregister:!1,mode:"onBlur"});y(()=>{o.employmentId&&o?.checkFieldUpdates(n.getValues())},[]),y(()=>{let t=n?.watch(e=>{Object.keys(e).some(s=>e[s]!==m[s])&&o?.checkFieldUpdates(e)});return()=>t?.unsubscribe()},[]);let w=a(async(t,e)=>{let i=e?.nativeEvent;if(i?.isDraftSubmission){let{onSuccess:s,onError:d}=i.draftCallbacks;try{let r=await o.onSubmit(t);if(r?.data)s?.();else if(r?.error){let h=o.stepState.currentStep.name,P=o.meta?.fields?.[h],B=f(r?.fieldErrors||[],P);d?.({error:r.error,rawError:r.rawError,fieldErrors:B})}}catch(r){d?.({error:r,rawError:r,fieldErrors:[]})}}else await b(t)},"handleSubmit");return O(c,{...n,key:`form-${o.stepState.currentStep.name}`},S("form",{id:E,onSubmit:n.handleSubmit(w),className:"space-y-4 RemoteFlows__OnboardingForm",children:S(F,{components:g,fields:o.fields,fieldsets:o.meta.fieldsets,fieldValues:o.fieldValues})}))}a(x,"OnboardingForm");export{x as a};
|
|
2
|
-
//# sourceMappingURL=chunk-JWP4HAIS.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/Onboarding/components/OnboardingForm.tsx"],"sourcesContent":["import { JSONSchemaFormFields } from '@/src/components/form/JSONSchemaForm';\nimport { Form } from '@/src/components/ui/form';\nimport { useEffect } from 'react';\nimport { useOnboardingContext } from '@/src/flows/Onboarding/context';\nimport { useForm } from 'react-hook-form';\nimport { useJsonSchemasValidationFormResolver } from '@/src/components/form/validationResolver';\nimport { JSFFields } from '@/src/types/remoteFlows';\nimport {\n BasicInformationFormPayload,\n BenefitsFormPayload,\n ContractDetailsFormPayload,\n} from '@/src/flows/Onboarding/types';\nimport { $TSFixMe, Components } from '@/src/types/remoteFlows';\nimport { normalizeFieldErrors } from '@/src/lib/mutations';\n\ntype OnboardingFormProps = {\n onSubmit: (\n payload:\n | BasicInformationFormPayload\n | BenefitsFormPayload\n | ContractDetailsFormPayload,\n ) => Promise<void>;\n components?: Components;\n fields?: JSFFields;\n defaultValues: Record<string, unknown>;\n};\n\nexport function OnboardingForm({\n defaultValues,\n onSubmit,\n components,\n}: OnboardingFormProps) {\n const { formId, onboardingBag } = useOnboardingContext();\n\n const resolver = useJsonSchemasValidationFormResolver(\n onboardingBag.handleValidation,\n );\n\n const form = useForm({\n resolver,\n defaultValues,\n shouldUnregister: false,\n mode: 'onBlur',\n });\n\n useEffect(() => {\n // When the employmentId is set,\n // we need to run the checkFieldUpdates to update fieldValues in useStepState\n if (onboardingBag.employmentId) {\n onboardingBag?.checkFieldUpdates(form.getValues());\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const subscription = form?.watch((values) => {\n const isAnyFieldDirty = Object.keys(values).some(\n (key) =>\n values[key as keyof unknown] !== defaultValues[key as keyof unknown],\n );\n if (isAnyFieldDirty) {\n onboardingBag?.checkFieldUpdates(values);\n }\n });\n return () => subscription?.unsubscribe();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleSubmit = async (\n values: Record<string, unknown>,\n event?: React.BaseSyntheticEvent,\n ) => {\n const nativeEvent = event?.nativeEvent as $TSFixMe;\n\n if (nativeEvent?.isDraftSubmission) {\n // Handle draft submission\n const { onSuccess, onError } = nativeEvent.draftCallbacks;\n\n try {\n // Submit the form\n const response = await onboardingBag.onSubmit(values);\n\n if (response?.data) {\n onSuccess?.();\n } else if (response?.error) {\n const currentStepName = onboardingBag.stepState.currentStep.name;\n\n // Get the appropriate fields based on current step\n const currentStepFields =\n onboardingBag.meta?.fields?.[\n currentStepName as keyof typeof onboardingBag.meta.fields\n ];\n\n const normalizedFieldErrors = normalizeFieldErrors(\n response?.fieldErrors || [],\n currentStepFields,\n );\n onError?.({\n error: response.error,\n rawError: response.rawError,\n fieldErrors: normalizedFieldErrors,\n });\n }\n } catch (error) {\n onError?.({\n error: error as Error,\n rawError: error as Record<string, unknown>,\n fieldErrors: [],\n });\n }\n } else {\n // Handle normal form submission\n await onSubmit(values);\n }\n };\n\n return (\n <Form {...form} key={`form-${onboardingBag.stepState.currentStep.name}`}>\n <form\n id={formId}\n onSubmit={form.handleSubmit(handleSubmit)}\n className='space-y-4 RemoteFlows__OnboardingForm'\n >\n <JSONSchemaFormFields\n components={components}\n fields={onboardingBag.fields}\n fieldsets={onboardingBag.meta.fieldsets}\n fieldValues={onboardingBag.fieldValues}\n />\n </form>\n </Form>\n );\n}\n"],"mappings":"kPAEA,OAAS,aAAAA,MAAiB,QAyHlB,cAAAC,MAAA,oBANJ,wBAAAC,MAAA,QA1FG,SAASC,EAAe,CAC7B,cAAAC,EACA,SAAAC,EACA,WAAAC,CACF,EAAwB,CACtB,GAAM,CAAE,OAAAC,EAAQ,cAAAC,CAAc,EAAIC,EAAqB,EAEjDC,EAAWC,EACfH,EAAc,gBAChB,EAEMI,EAAOC,EAAQ,CACnB,SAAAH,EACA,cAAAN,EACA,iBAAkB,GAClB,KAAM,QACR,CAAC,EAEDU,EAAU,IAAM,CAGVN,EAAc,cAChBA,GAAe,kBAAkBI,EAAK,UAAU,CAAC,CAGrD,EAAG,CAAC,CAAC,EAELE,EAAU,IAAM,CACd,IAAMC,EAAeH,GAAM,MAAOI,GAAW,CACnB,OAAO,KAAKA,CAAM,EAAE,KACzCC,GACCD,EAAOC,CAAoB,IAAMb,EAAca,CAAoB,CACvE,GAEET,GAAe,kBAAkBQ,CAAM,CAE3C,CAAC,EACD,MAAO,IAAMD,GAAc,YAAY,CAEzC,EAAG,CAAC,CAAC,EAEL,IAAMG,EAAeC,EAAA,MACnBH,EACAI,IACG,CACH,IAAMC,EAAcD,GAAO,YAE3B,GAAIC,GAAa,kBAAmB,CAElC,GAAM,CAAE,UAAAC,EAAW,QAAAC,CAAQ,EAAIF,EAAY,eAE3C,GAAI,CAEF,IAAMG,EAAW,MAAMhB,EAAc,SAASQ,CAAM,EAEpD,GAAIQ,GAAU,KACZF,IAAY,UACHE,GAAU,MAAO,CAC1B,IAAMC,EAAkBjB,EAAc,UAAU,YAAY,KAGtDkB,EACJlB,EAAc,MAAM,SAClBiB,CACF,EAEIE,EAAwBC,EAC5BJ,GAAU,aAAe,CAAC,EAC1BE,CACF,EACAH,IAAU,CACR,MAAOC,EAAS,MAChB,SAAUA,EAAS,SACnB,YAAaG,CACf,CAAC,CACH,CACF,OAASE,EAAO,CACdN,IAAU,CACR,MAAOM,EACP,SAAUA,EACV,YAAa,CAAC,CAChB,CAAC,CACH,CACF,MAEE,MAAMxB,EAASW,CAAM,CAEzB,EA9CqB,gBAgDrB,OACEd,EAAC4B,EAAA,CAAM,GAAGlB,EAAM,IAAK,QAAQJ,EAAc,UAAU,YAAY,IAAI,IACnEP,EAAC,QACC,GAAIM,EACJ,SAAUK,EAAK,aAAaM,CAAY,EACxC,UAAU,wCAEV,SAAAjB,EAAC8B,EAAA,CACC,WAAYzB,EACZ,OAAQE,EAAc,OACtB,UAAWA,EAAc,KAAK,UAC9B,YAAaA,EAAc,YAC7B,EACF,CACF,CAEJ,CAzGgBW,EAAAhB,EAAA","names":["useEffect","jsx","createElement","OnboardingForm","defaultValues","onSubmit","components","formId","onboardingBag","useOnboardingContext","resolver","useJsonSchemasValidationFormResolver","form","useForm","useEffect","subscription","values","key","handleSubmit","__name","event","nativeEvent","onSuccess","onError","response","currentStepName","currentStepFields","normalizedFieldErrors","normalizeFieldErrors","error","Form","JSONSchemaFormFields"]}
|
package/dist/chunk-NUD662HZ.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as H}from"./chunk-AP56UUME.js";import{a as z}from"./chunk-IJCTN52C.js";import{e as E}from"./chunk-AHRG5QCS.js";import{a as P,b as Y,c as X,d as _,f as q}from"./chunk-PX5PE6GX.js";import{a as N}from"./chunk-WVJDCDGZ.js";import{a as W}from"./chunk-FZVUO3UU.js";import{a as b}from"./chunk-JMDINYDB.js";import{d as x}from"./chunk-FFVTWWGX.js";import{$ as B,B as v,F as U,N as J,Q as K,S as j,U as A,V as G,W as V,X as k,_ as $,f as I,h as M,p as D,r as T,s as L,t as Q}from"./chunk-R47Q7R6C.js";import{a as O,i as w}from"./chunk-OSQ6VUDM.js";import{d as a}from"./chunk-KQPDXXG3.js";import{a as n}from"./chunk-P37U34EQ.js";import{useMemo as be}from"react";import{useMutation as f,useQuery as p}from"@tanstack/react-query";import{useMutation as de,useQuery as Z}from"@tanstack/react-query";var Re=n(()=>{let{client:e}=a();return de({mutationFn:n(t=>j({client:e,body:t,headers:{Authorization:""}}),"mutationFn")})},"useUploadFile"),ee=n(e=>{let{client:t}=a();return Z({queryKey:["download-file",e],queryFn:n(async()=>{let o=await v({client:t,path:{id:e}});if(o.error)throw o.error;return o.data},"queryFn"),select:n(({data:o})=>o?.file,"select"),enabled:!!e})},"useDownloadFile"),te=n((e,t,o)=>{let{client:r}=a();return Z({queryKey:["employment-files",e],queryFn:n(async()=>{let i=await K({client:r,path:{employment_id:e},query:t});if(i.error)throw i.error;return i.data},"queryFn"),...o})},"useEmploymentFiles");import{useQuery as me}from"@tanstack/react-query";import{useQuery as pe}from"@tanstack/react-query";var ne=n(()=>{let{client:e}=a();return pe({queryKey:["identity"],queryFn:n(()=>G({client:e,headers:{Authorization:""}}),"queryFn"),select:n(t=>t.data?.data,"select")})},"useIdentity");function ye(e){return e!=null&&"company"in e}n(ye,"hasCompany");var oe=n((e={enabled:!0})=>{let{data:t}=ne(),o=ye(t)?t?.company?.id??"":"",{client:r}=a();return me({queryKey:["pricing-plans",o],queryFn:n(()=>I({client:r,path:{company_id:o}}),"queryFn"),select:n(i=>i.data?.data?.pricing_plans,"select"),enabled:!!e?.enabled&&!!o})},"useCompanyPricingPlans");var fe=n(({employmentId:e,options:t})=>{let{client:o}=a();return p({queryKey:["contractor-currencies",e],queryFn:n(async()=>Q({client:o,path:{employment_id:e},query:{restrict_to_guaranteed_pay_out_currencies:!1}}),"queryFn"),enabled:t?.queryOptions?.enabled,select:n(({data:r})=>r?.data,"select")})},"useContractorCurrencies"),yt=n(({fieldValues:e,options:t})=>p({queryKey:["contract-document-signature",e.review_completed,t?.jsfModify],queryFn:n(async()=>b(z,e,{jsfModify:t?.jsfModify}),"queryFn"),enabled:t?.queryOptions?.enabled}),"useGetContractDocumentSignatureSchema"),bt=n(()=>{let{client:e}=a();return f({mutationFn:n(async({employmentId:t,contractDocumentId:o,payload:r})=>A({client:e,body:r,path:{employment_id:t,contract_document_id:o}}),"mutationFn")})},"useSignContractDocument"),ft=n(({employmentId:e,contractDocumentId:t,options:o})=>{let{client:r}=a();return p({queryKey:["contract-document",e,t],queryFn:n(async()=>T({client:r,path:{employment_id:e,id:t}}),"queryFn"),enabled:o?.queryOptions?.enabled,select:n(({data:i})=>({...i?.data,contract_document:{...i?.data?.contract_document,content:w(i?.data?.contract_document?.content)}}),"select")})},"useGetShowContractDocument"),Ce=n(({employmentId:e,options:t})=>{let{client:o}=a();return p({queryKey:["contractor-subscriptions",e],queryFn:n(async()=>D({client:o,path:{employment_id:e}}),"queryFn"),enabled:t?.queryOptions?.enabled,select:n(({data:r})=>r?.data,"select")})},"useGetContractorSubscriptions"),Ct=n(()=>{let{client:e}=a();return f({mutationFn:n(async({employmentId:t,payload:o})=>k({client:e,body:o,path:{employment_id:t}}),"mutationFn")})},"usePostManageContractorSubscriptions"),gt=n(()=>{let{client:e}=a();return f({mutationFn:n(async({employmentId:t,payload:o})=>J({client:e,body:o,path:{employment_id:t}}),"mutationFn")})},"useCreateContractorContractDocument"),ge=n(({countryCode:e,employmentId:t,fieldValues:o,options:r})=>{let{client:i}=a();return p({queryKey:["contractor-onboarding-details-schema",e,t],retry:!1,queryFn:n(async()=>M({client:i,path:{country_code:e},query:{json_schema_version:1,employment_id:t}}),"queryFn"),enabled:r?.queryOptions?.enabled,select:n(({data:s})=>{let c=s?.data?.schema||{};return b(c,o,r)},"select")})},"useContractorOnboardingDetailsSchema"),Fe={[P]:"Contractor Management",[Y]:"Contractor Management Plus",[X]:"Contractor of Record"},Se=n(e=>{let{data:t,isLoading:o}=oe({enabled:e?.enabled}),r=t?.find(s=>s.product.name==="EOR Monthly");return{eorSubscription:{product:{identifier:_,short_name:"EOR"},currency:r?.price.currency,price:{amount:x(r?.price.amount??0)},features:["Contract between Remote and employee","Remote manages onboarding, payroll, and compliance","Manages taxes, benefits, and time-off tracking","Handles contracts, transfers, and terminations"],description:"Enables hiring in countries without a local entity",label:"Employer of Record",value:_},isLoading:o}},"useEorSubscription"),he=n((e,t,o)=>(E(_,o)&&e.push({label:t.label,value:t.value,description:t.description,meta:{features:t.features,price:{amount:t.price.amount,currencyCode:t.currency?.code??""}},disabled:!1}),e),"addEorToFieldOptions"),Ft=n((e,t,o)=>{let{data:r,isLoading:i,refetch:s}=Ce({employmentId:e,options:{queryOptions:o?.queryOptions}}),c=r?.length===0,u=r?.length===1,l=r?.find(S=>S.product.short_name==="COR")?.eligibility_questionnaire?.is_blocking,d=(u||l===!0||c)&&t?.eor_onboarding,{eorSubscription:C,isLoading:re}=Se({enabled:d}),R=b(H.data.schema,{},o);if(r){let S=R.fields.find(h=>h.name==="subscription");if(S){let h=r.filter(m=>E(m.product.identifier??"",o?.excludeProducts)).map(m=>{let y=m.product,ie=m.price.amount,ae=m.currency.code,se=Fe[y.identifier]??"",ce=y.identifier??"",le=y.description??"",ue={features:y.features??[],price:{amount:x(ie),currencyCode:ae}};return{label:se,value:ce,description:le,meta:ue,disabled:l&&y.identifier!==P}});h.sort((m,y)=>m.label.localeCompare(y.label));let g=[];d&&(he(g,C,o?.excludeProducts),g.length>0&&(g[0].meta={...g[0].meta,groupSeparator:{show:!0}})),S.options=[...h,...g]}}return{isLoading:i||re,form:R,contractorSubscriptions:r,refetch:s,isEligibilityQuestionnaireBlocked:l}},"useContractorSubscriptionSchemaField"),St=n((e,t,o)=>{let{mutateAsyncOrThrow:r}=O(t),{mutateAsyncOrThrow:i}=O(e);return{mutateAsync:n(async({employmentId:s})=>{let{nationality_status:c,ir35:u,ir35_sds_file:F}=o,l={contract_document:{ir_35:u}},d={contract_document:{nationality:c}};return u?(await i({employmentId:s,payload:l}),F?r({employment_id:s,file:F,sub_type:q}):Promise.resolve()):c?i({employmentId:s,payload:d}):Promise.resolve()},"mutateAsync")}},"useUpdateUKandSaudiFields"),ht=n((e,t)=>{let{data:o,isLoading:r}=te(e,{sub_type:q},{...t,select:n(({data:c})=>c?.files?.filter(u=>u.sub_type===q),"select")}),i=o?.[0]?.id,s=ee(i);return{...s,isLoading:r||s.isLoading}},"useGetIR35File"),_t=n((e,t)=>{let{client:o}=a();return p({queryKey:["contract-documents",e],queryFn:n(async()=>L({client:o,path:{employment_id:e}}),"queryFn"),enabled:t?.enabled,select:n(({data:r})=>r?.data?.contract_documents,"select")})},"useGetContractDocuments"),qt=n(({options:e,fieldValues:t})=>{let{client:o}=a();return p({queryKey:["eligibility-questionnaire"],queryFn:n(async()=>{let r=await V({client:o,query:{type:"contractor_of_record",json_schema_version:1}});if(r.error)throw new Error("Failed to fetch eligibility questionnaire");return r.data.data},"queryFn"),select:n(r=>{let i=r?.schema||{};return b(i,t,{jsfModify:e?.jsfModify})},"select"),enabled:e?.queryOptions?.enabled})},"useGetEligibilityQuestionnaire"),Ot=n(()=>{let{client:e}=a();return f({mutationFn:n(async({employmentId:t,payload:o})=>U({client:e,body:{employment_slug:t,responses:o,type:"contractor_of_record"},query:{json_schema_version:1}}),"mutationFn")})},"usePostCreateEligibilityQuestionnaire"),xt=n(()=>{let{client:e}=a();return f({mutationFn:n(async({employmentId:t})=>B({client:e,path:{employment_id:t}}),"mutationFn")})},"usePostManageContractorCorSubscription"),Pt=n(()=>{let{client:e}=a();return f({mutationFn:n(async({employmentId:t})=>$({client:e,path:{employment_id:t}}),"mutationFn")})},"useDeleteContractorCorSubscription"),Et=n(e=>{let{client:t}=a(),{data:o,isLoading:r}=p({...W(t,"contractor-onboarding-countries"),select:n(s=>s.data?.data?.map(c=>({label:c.name,value:c.code,eor_onboarding:c.eor_onboarding,contractor_products_available:c.contractor_products_available}))||[],"select"),enabled:e?.queryOptions?.enabled}),i=b(N.data.schema,{},e);if(o){let s=i.fields.find(c=>c.name==="country");s&&(s.options=o)}return{isLoading:r,selectCountryForm:i,countries:o}},"useCountriesSchemaField"),Rt=n(({countryCode:e,employmentId:t,fieldValues:o,options:r})=>{let i=ge({countryCode:e,employmentId:t,fieldValues:o,options:r}),{data:s,isLoading:c}=fe({employmentId:t,options:{queryOptions:{enabled:r?.queryOptions?.enabled}}}),u=be(()=>!i.data||!s?i.data:{...i.data,fields:i.data.fields.map(l=>l.name!=="payment_terms"?l:{...l,fields:l.fields?.map(d=>d.name!=="compensation_currency_code"?d:{...d,options:s.map(C=>({label:C.code,value:C.code,meta:{source:C.source}}))})})},[i.data,s]);return{...i,data:u,isLoading:i.isLoading||c}},"useContractorOnboardingDetailsSchemaWithCurrencies");export{Re as a,ne as b,ye as c,yt as d,bt as e,ft as f,Ce as g,Ct as h,gt as i,Fe as j,Ft as k,St as l,ht as m,_t as n,qt as o,Ot as p,xt as q,Pt as r,Et as s,Rt as t};
|
|
2
|
-
//# sourceMappingURL=chunk-NUD662HZ.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/ContractorOnboarding/api.ts","../src/common/api/files.ts","../src/common/api/companies.ts","../src/common/api/identity.ts"],"sourcesContent":["import { FormResult } from '@remoteoss/remote-json-schema-form-kit';\nimport { useMemo } from 'react';\nimport {\n CreateContractDocument,\n getShowContractDocument,\n getShowContractorContractDetailsCountry,\n getIndexSubscription,\n ManageContractorPlusSubscriptionOperationsParams,\n postCreateContractDocument,\n postManageContractorPlusSubscriptionSubscription,\n postSignContractDocument,\n SignContractDocument,\n getIndexEmploymentContractDocument,\n EligibilityQuestionnaireJsonSchemaResponse,\n getShowEligibilityQuestionnaire,\n SubmitEligibilityQuestionnaireRequest,\n postCreateEligibilityQuestionnaire,\n postManageContractorCorSubscriptionSubscription,\n deleteDeleteContractorCorSubscriptionSubscription,\n getIndexContractorCurrency,\n Country,\n} from '@/src/client';\nimport { useClient } from '@/src/context';\nimport { signatureSchema } from '@/src/flows/ContractorOnboarding/json-schemas/signature';\nimport { selectContractorSubscriptionStepSchema } from '@/src/flows/ContractorOnboarding/json-schemas/selectContractorSubscriptionStep';\nimport {\n JSONSchemaFormResultWithFieldsets,\n FlowOptions,\n JSFModify,\n} from '@/src/flows/types';\nimport { clearBase64Data } from '@/src/lib/utils';\nimport { Client } from '@/src/client/client';\nimport { createHeadlessForm } from '@/src/common/createHeadlessForm';\nimport { useMutation, useQuery, UseQueryResult } from '@tanstack/react-query';\nimport { FieldValues } from 'react-hook-form';\nimport {\n contractorPlusProductIdentifier,\n contractorStandardProductIdentifier,\n corProductIdentifier,\n eorProductIdentifier,\n IR35_FILE_SUBTYPE,\n ProductType,\n} from '@/src/flows/ContractorOnboarding/constants';\nimport { $TSFixMe, JSFField } from '@/src/types/remoteFlows';\nimport { mutationToPromise } from '@/src/lib/mutations';\nimport {\n useDownloadFile,\n useEmploymentFiles,\n useUploadFile,\n} from '@/src/common/api/files';\nimport { convertFromCents } from '@/src/components/form/utils';\nimport { countriesOptions } from '@/src/common/api/countries';\nimport { selectCountryStepSchema } from '@/src/flows/Onboarding/json-schemas/selectCountryStep';\nimport { shouldIncludeProduct } from '@/src/flows/ContractorOnboarding/utils';\nimport { useCompanyPricingPlans } from '@/src/common/api/companies';\n\nconst useContractorCurrencies = ({\n employmentId,\n options,\n}: {\n employmentId: string;\n options?: { queryOptions?: { enabled?: boolean } };\n}) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['contractor-currencies', employmentId],\n queryFn: async () => {\n return getIndexContractorCurrency({\n client: client as Client,\n path: { employment_id: employmentId },\n query: {\n restrict_to_guaranteed_pay_out_currencies: false,\n },\n });\n },\n enabled: options?.queryOptions?.enabled,\n select: ({ data }) => {\n return data?.data;\n },\n });\n};\n\n/**\n * Get the contract document signature schema\n * @param fieldValues - The field values\n * @param options - The options\n * @returns The contract document signature schema\n */\nexport const useGetContractDocumentSignatureSchema = ({\n fieldValues,\n options,\n}: {\n fieldValues: FieldValues;\n options?: { queryOptions?: { enabled?: boolean }; jsfModify?: JSFModify };\n}) => {\n return useQuery({\n queryKey: [\n 'contract-document-signature',\n fieldValues.review_completed,\n options?.jsfModify,\n ],\n queryFn: async () => {\n return createHeadlessForm(signatureSchema, fieldValues, {\n jsfModify: options?.jsfModify,\n });\n },\n enabled: options?.queryOptions?.enabled,\n });\n};\n\n/**\n * Signs the contract document\n * @param employmentId - The employment ID\n * @param contractDocumentId - The contract document ID\n * @param payload - The payload\n * @returns The signed contract document\n */\nexport const useSignContractDocument = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: async ({\n employmentId,\n contractDocumentId,\n payload,\n }: {\n employmentId: string;\n contractDocumentId: string;\n payload: SignContractDocument;\n }) => {\n return postSignContractDocument({\n client: client as Client,\n body: payload,\n path: {\n employment_id: employmentId,\n contract_document_id: contractDocumentId,\n },\n });\n },\n });\n};\n\n/**\n * Get the contract document for a given employment and contract document ID\n * @param employmentId - The employment ID\n * @param contractDocumentId - The contract document ID\n * @returns The contract document\n */\nexport const useGetShowContractDocument = ({\n employmentId,\n contractDocumentId,\n options,\n}: {\n employmentId: string;\n contractDocumentId: string;\n options?: { queryOptions?: { enabled?: boolean }; jsfModify?: JSFModify };\n}) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['contract-document', employmentId, contractDocumentId],\n queryFn: async () => {\n return getShowContractDocument({\n client: client as Client,\n path: { employment_id: employmentId, id: contractDocumentId },\n });\n },\n enabled: options?.queryOptions?.enabled,\n select: ({ data }) => {\n return {\n ...data?.data,\n contract_document: {\n ...data?.data?.contract_document,\n content: clearBase64Data(\n data?.data?.contract_document?.content as $TSFixMe,\n ),\n },\n };\n },\n });\n};\n\n/**\n * Get the contractor subscriptions for the given employment id\n * @param employmentId - The employment ID\n * @returns The contractor subscriptions available\n */\nexport const useGetContractorSubscriptions = ({\n employmentId,\n options,\n}: {\n employmentId: string;\n options?: { queryOptions?: { enabled?: boolean } };\n}) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['contractor-subscriptions', employmentId],\n queryFn: async () => {\n return getIndexSubscription({\n client: client as Client,\n path: { employment_id: employmentId },\n });\n },\n enabled: options?.queryOptions?.enabled,\n select: ({ data }) => {\n return data?.data;\n },\n });\n};\n\n/**\n * Upgrade or downgrade contractor subscription\n */\nexport const usePostManageContractorSubscriptions = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: async ({\n employmentId,\n payload,\n }: {\n employmentId: string;\n payload: ManageContractorPlusSubscriptionOperationsParams;\n }) => {\n return postManageContractorPlusSubscriptionSubscription({\n client: client as Client,\n body: payload,\n path: {\n employment_id: employmentId,\n },\n });\n },\n });\n};\n\n/**\n * Saves the contractor details data\n * @param employmentId - The employment ID\n * @param payload - The payload\n * @returns The contractor contract document\n */\nexport const useCreateContractorContractDocument = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: async ({\n employmentId,\n payload,\n }: {\n employmentId: string;\n payload: CreateContractDocument;\n }) => {\n return postCreateContractDocument({\n client: client as Client,\n body: payload,\n path: {\n employment_id: employmentId,\n },\n });\n },\n });\n};\n\n/**\n * Get the contractor onboarding details schema for a given country\n * @param countryCode - The country code\n * @param fieldValues - The field values\n * @param options - The options\n * @returns The contractor onboarding details schema\n */\nconst useContractorOnboardingDetailsSchema = ({\n countryCode,\n employmentId,\n fieldValues,\n options,\n}: {\n countryCode: string;\n fieldValues: FieldValues;\n employmentId: string;\n options?: FlowOptions & { queryOptions?: { enabled?: boolean } };\n query?: Record<string, unknown>;\n}): UseQueryResult<JSONSchemaFormResultWithFieldsets> => {\n const { client } = useClient();\n return useQuery({\n queryKey: [\n 'contractor-onboarding-details-schema',\n countryCode,\n employmentId,\n ],\n retry: false,\n queryFn: async () => {\n return getShowContractorContractDetailsCountry({\n client: client as Client,\n path: { country_code: countryCode },\n query: {\n json_schema_version: 1,\n employment_id: employmentId,\n },\n });\n },\n enabled: options?.queryOptions?.enabled,\n select: ({ data }) => {\n const jsfSchema = data?.data?.schema || {};\n return createHeadlessForm(jsfSchema, fieldValues, options);\n },\n });\n};\n\nexport const CONTRACT_PRODUCT_TITLES = {\n [contractorStandardProductIdentifier]: 'Contractor Management',\n [contractorPlusProductIdentifier]: 'Contractor Management Plus',\n [corProductIdentifier]: 'Contractor of Record',\n};\n\nconst useEorSubscription = (options?: { enabled?: boolean }) => {\n const { data: pricingPlans, isLoading: isLoadingPricingPlans } =\n useCompanyPricingPlans({\n enabled: options?.enabled,\n });\n\n const eorPricingPlan = pricingPlans?.find(\n (plan) => plan.product.name === 'EOR Monthly',\n );\n\n const eorSubscription = {\n product: {\n identifier: eorProductIdentifier,\n short_name: 'EOR',\n },\n currency: eorPricingPlan?.price.currency,\n price: {\n amount: convertFromCents(eorPricingPlan?.price.amount ?? 0),\n },\n features: [\n 'Contract between Remote and employee',\n 'Remote manages onboarding, payroll, and compliance',\n 'Manages taxes, benefits, and time-off tracking',\n 'Handles contracts, transfers, and terminations',\n ],\n description: 'Enables hiring in countries without a local entity',\n label: 'Employer of Record',\n value: eorProductIdentifier,\n };\n\n return { eorSubscription, isLoading: isLoadingPricingPlans };\n};\n\ntype SelectedCountry =\n | (Pick<Country, 'eor_onboarding' | 'contractor_products_available'> & {\n label: string;\n })\n | undefined;\n\nconst addEorToFieldOptions = (\n fieldOptions: $TSFixMe[],\n eorSubscription: ReturnType<typeof useEorSubscription>['eorSubscription'],\n excludeProducts?: ProductType[],\n) => {\n if (shouldIncludeProduct(eorProductIdentifier, excludeProducts)) {\n fieldOptions.push({\n label: eorSubscription.label,\n value: eorSubscription.value,\n description: eorSubscription.description,\n meta: {\n features: eorSubscription.features,\n price: {\n amount: eorSubscription.price.amount,\n currencyCode: eorSubscription.currency?.code ?? '',\n },\n },\n disabled: false,\n });\n }\n return fieldOptions;\n};\n\nexport const useContractorSubscriptionSchemaField = (\n employmentId: string,\n selectedCountry: SelectedCountry,\n options?: FlowOptions & {\n queryOptions?: { enabled?: boolean };\n excludeProducts?: ProductType[];\n },\n) => {\n const {\n data: contractorSubscriptions,\n isLoading: isLoading,\n refetch,\n } = useGetContractorSubscriptions({\n employmentId: employmentId,\n options: {\n queryOptions: options?.queryOptions,\n },\n });\n\n const isEmptyContractorSubscriptions = contractorSubscriptions?.length === 0;\n\n const isSingleSubscription = contractorSubscriptions?.length === 1;\n\n const corSubscription = contractorSubscriptions?.find(\n (subscription) => subscription.product.short_name === 'COR',\n );\n\n const isEligibilityQuestionnaireBlocked =\n corSubscription?.eligibility_questionnaire?.is_blocking;\n\n const showEorSubscription =\n (isSingleSubscription ||\n isEligibilityQuestionnaireBlocked === true ||\n isEmptyContractorSubscriptions) &&\n selectedCountry?.eor_onboarding;\n\n const { eorSubscription, isLoading: isLoadingEorSubscription } =\n useEorSubscription({\n enabled: showEorSubscription,\n });\n\n const form = createHeadlessForm(\n selectContractorSubscriptionStepSchema.data.schema,\n {},\n options,\n );\n\n if (contractorSubscriptions) {\n const field: JSFField | undefined = form.fields.find(\n (field) => field.name === 'subscription',\n ) as JSFField | undefined;\n\n if (field) {\n // Start with contractor management options\n const contractorOptions = contractorSubscriptions\n .filter((opts) =>\n shouldIncludeProduct(\n opts.product.identifier ?? '',\n options?.excludeProducts,\n ),\n )\n .map((opts) => {\n const product = opts.product;\n const price = opts.price.amount;\n const currencyCode = opts.currency.code;\n const title =\n CONTRACT_PRODUCT_TITLES[\n product.identifier as keyof typeof CONTRACT_PRODUCT_TITLES\n ] ?? '';\n const label = title;\n const value = product.identifier ?? '';\n const description = product.description ?? '';\n const features = product.features ?? [];\n const meta = {\n features,\n price: {\n amount: convertFromCents(price),\n currencyCode: currencyCode,\n },\n };\n return {\n label,\n value,\n description,\n meta,\n disabled:\n isEligibilityQuestionnaireBlocked &&\n product.identifier !== contractorStandardProductIdentifier,\n };\n });\n\n // Sort contractor options\n contractorOptions.sort((a, b) => a.label.localeCompare(b.label));\n\n // Build otherSubscriptions (EOR) with separator metadata\n const otherOptions: $TSFixMe[] = [];\n if (showEorSubscription) {\n addEorToFieldOptions(\n otherOptions as unknown as $TSFixMe[],\n eorSubscription,\n options?.excludeProducts,\n );\n\n // Add separator metadata to first \"other\" option\n // only the first option to avoid problems when iterating over the options\n if (otherOptions.length > 0) {\n otherOptions[0].meta = {\n ...otherOptions[0].meta,\n groupSeparator: {\n show: true,\n },\n };\n }\n }\n\n // Combine all options into the single field\n field.options = [...contractorOptions, ...otherOptions];\n }\n }\n\n return {\n isLoading: isLoading || isLoadingEorSubscription,\n form,\n contractorSubscriptions,\n refetch,\n isEligibilityQuestionnaireBlocked,\n };\n};\n\nexport const useUpdateUKandSaudiFields = (\n createContractorContractDocumentMutation: ReturnType<\n typeof useCreateContractorContractDocument\n >,\n uploadFileMutation: ReturnType<typeof useUploadFile>,\n parsedValues: FieldValues,\n) => {\n const { mutateAsyncOrThrow: uploadFileMutationAsync } =\n mutationToPromise(uploadFileMutation);\n const { mutateAsyncOrThrow: createContractorContractDocumentMutationAsync } =\n mutationToPromise(createContractorContractDocumentMutation);\n\n return {\n mutateAsync: async ({ employmentId }: { employmentId: string }) => {\n const {\n nationality_status: nationalityStatus,\n ir35: ir35Status,\n ir35_sds_file: ir35SdsFile,\n } = parsedValues;\n const ir35ContractDetailsPayload = {\n contract_document: {\n ir_35: ir35Status,\n },\n };\n const nationalityContractDetailsPayload = {\n contract_document: {\n nationality: nationalityStatus,\n },\n };\n if (ir35Status) {\n await createContractorContractDocumentMutationAsync({\n employmentId: employmentId,\n payload: ir35ContractDetailsPayload,\n });\n\n if (ir35SdsFile) {\n return uploadFileMutationAsync({\n employment_id: employmentId,\n file: ir35SdsFile,\n sub_type: IR35_FILE_SUBTYPE,\n });\n }\n return Promise.resolve();\n }\n // nationality status is sent for the countries SAU, KWT, OMN, QAT, BHR\n if (nationalityStatus) {\n return createContractorContractDocumentMutationAsync({\n employmentId: employmentId,\n payload: nationalityContractDetailsPayload,\n });\n }\n\n return Promise.resolve();\n },\n };\n};\n\nexport const useGetIR35File = (\n employmentId: string,\n options?: { enabled?: boolean },\n) => {\n const { data: ir35Files, isLoading: isLoadingFiles } = useEmploymentFiles(\n employmentId,\n {\n sub_type: IR35_FILE_SUBTYPE,\n },\n {\n ...options,\n select: ({ data }) =>\n data?.files?.filter((file) => file.sub_type === IR35_FILE_SUBTYPE),\n },\n );\n const id = ir35Files?.[0]?.id;\n\n const downloadQuery = useDownloadFile(id as string);\n\n return {\n ...downloadQuery,\n isLoading: isLoadingFiles || downloadQuery.isLoading,\n };\n};\n\n/**\n * Get the contract documents for a given employment\n * @param employmentId - The employment ID\n * @param options - The options\n * @returns The contract documents\n */\nexport const useGetContractDocuments = (\n employmentId: string,\n options?: { enabled?: boolean },\n) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['contract-documents', employmentId],\n queryFn: async () => {\n return getIndexEmploymentContractDocument({\n client: client as Client,\n path: { employment_id: employmentId },\n });\n },\n enabled: options?.enabled,\n select: ({ data }) => {\n return data?.data?.contract_documents;\n },\n });\n};\n\nexport const useGetEligibilityQuestionnaire = ({\n options,\n fieldValues,\n}: {\n options?: FlowOptions & { queryOptions?: { enabled?: boolean } };\n fieldValues: FieldValues;\n}) => {\n const { client } = useClient();\n return useQuery<\n EligibilityQuestionnaireJsonSchemaResponse['data'],\n Error,\n FormResult\n >({\n queryKey: ['eligibility-questionnaire'],\n queryFn: async (): Promise<\n EligibilityQuestionnaireJsonSchemaResponse['data']\n > => {\n const response = await getShowEligibilityQuestionnaire({\n client: client as Client,\n query: {\n type: 'contractor_of_record',\n json_schema_version: 1,\n },\n });\n\n // Extract the data from the response wrapper\n if (response.error) {\n throw new Error('Failed to fetch eligibility questionnaire');\n }\n\n return response.data\n .data as EligibilityQuestionnaireJsonSchemaResponse['data'];\n },\n select: (data: EligibilityQuestionnaireJsonSchemaResponse['data']) => {\n const schema = data?.schema || {};\n return createHeadlessForm(schema, fieldValues, {\n jsfModify: options?.jsfModify,\n });\n },\n enabled: options?.queryOptions?.enabled,\n });\n};\n\nexport const usePostCreateEligibilityQuestionnaire = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: async ({\n employmentId,\n payload,\n }: {\n employmentId: string;\n payload: SubmitEligibilityQuestionnaireRequest['responses'];\n }) => {\n return postCreateEligibilityQuestionnaire({\n client: client as Client,\n body: {\n employment_slug: employmentId,\n responses: payload,\n type: 'contractor_of_record',\n },\n query: {\n json_schema_version: 1, // TODO: json_schema_version should be dynamic but fixed for now\n },\n });\n },\n });\n};\n\nexport const usePostManageContractorCorSubscription = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: async ({ employmentId }: { employmentId: string }) => {\n return postManageContractorCorSubscriptionSubscription({\n client: client as Client,\n path: {\n employment_id: employmentId,\n },\n });\n },\n });\n};\n\nexport const useDeleteContractorCorSubscription = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: async ({ employmentId }: { employmentId: string }) => {\n return deleteDeleteContractorCorSubscriptionSubscription({\n client: client as Client,\n path: { employment_id: employmentId },\n });\n },\n });\n};\n\nexport const useCountriesSchemaField = (\n options?: Omit<FlowOptions, 'jsonSchemaVersion'> & {\n queryOptions?: { enabled?: boolean };\n },\n) => {\n const { client } = useClient();\n const { data: countries, isLoading } = useQuery({\n ...countriesOptions(client as Client, 'contractor-onboarding-countries'),\n select: (response) => {\n return (\n response.data?.data?.map((country) => {\n return {\n label: country.name,\n value: country.code,\n eor_onboarding: country.eor_onboarding,\n contractor_products_available:\n country.contractor_products_available,\n };\n }) || []\n );\n },\n enabled: options?.queryOptions?.enabled,\n });\n\n const selectCountryForm = createHeadlessForm(\n selectCountryStepSchema.data.schema,\n {},\n options,\n );\n\n if (countries) {\n const countryField = selectCountryForm.fields.find(\n (field) => field.name === 'country',\n );\n if (countryField) {\n countryField.options = countries;\n }\n }\n\n return {\n isLoading,\n selectCountryForm,\n countries,\n };\n};\n\n/**\n * Get contractor onboarding details schema with currency options overridden\n * from the getIndexContractorCurrency endpoint\n */\nexport const useContractorOnboardingDetailsSchemaWithCurrencies = ({\n countryCode,\n employmentId,\n fieldValues,\n options,\n}: {\n countryCode: string;\n fieldValues: FieldValues;\n employmentId: string;\n options?: FlowOptions & { queryOptions?: { enabled?: boolean } };\n}) => {\n const schemaQuery = useContractorOnboardingDetailsSchema({\n countryCode,\n employmentId,\n fieldValues,\n options,\n });\n\n const { data: currencies, isLoading: isLoadingCurrencies } =\n useContractorCurrencies({\n employmentId,\n options: {\n queryOptions: { enabled: options?.queryOptions?.enabled },\n },\n });\n\n const dataWithCurrencies = useMemo(() => {\n if (!schemaQuery.data || !currencies) {\n return schemaQuery.data;\n }\n\n const form = {\n ...schemaQuery.data,\n fields: schemaQuery.data.fields.map((field) => {\n if (field.name !== 'payment_terms') {\n return field;\n }\n\n return {\n ...field,\n fields: (field.fields as $TSFixMe[])?.map((nestedField: $TSFixMe) => {\n if (nestedField.name !== 'compensation_currency_code') {\n return nestedField;\n }\n\n // Return a new object with overridden options\n return {\n ...nestedField,\n options: currencies.map((currency) => ({\n label: currency.code,\n value: currency.code,\n meta: { source: currency.source },\n })),\n };\n }),\n };\n }),\n };\n\n return form;\n }, [schemaQuery.data, currencies]);\n\n return {\n ...schemaQuery,\n data: dataWithCurrencies as $TSFixMe,\n isLoading: schemaQuery.isLoading || isLoadingCurrencies,\n };\n};\n","import { useMutation, useQuery, UseQueryOptions } from '@tanstack/react-query';\nimport { Client } from '@/src/client/client';\nimport {\n getIndexEmploymentFile,\n getShowFile,\n postUploadEmployeeFileFile,\n} from '@/src/client/sdk.gen';\nimport {\n GetIndexEmploymentFileData,\n GetIndexEmploymentFileErrors,\n File as ApiFile,\n ListFilesResponse,\n PostUploadEmployeeFileFileData,\n} from '@/src/client/types.gen';\nimport { useClient } from '@/src/context';\n\n/**\n * Hook to upload a file associated with a specified employment.\n * @returns A mutation result for uploading employee files.\n */\nexport const useUploadFile = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: (params: PostUploadEmployeeFileFileData['body']) => {\n return postUploadEmployeeFileFile({\n client: client as Client,\n body: params,\n headers: {\n Authorization: ``,\n },\n });\n },\n });\n};\n\n/**\n * Hook to download a file by its ID.\n * @param id - The ID of the file to download.\n * @returns A query result containing the file data.\n */\nexport const useDownloadFile = (id: string) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['download-file', id],\n queryFn: async () => {\n const result = await getShowFile({\n client: client as Client,\n path: { id: id },\n });\n\n if (result.error) {\n throw result.error;\n }\n\n return result.data;\n },\n select: ({ data }) => data?.file,\n enabled: !!id,\n });\n};\n\n/**\n * Hook to retrieve files associated with a specific employment.\n * @param employmentId - The ID of the employment to retrieve files for.\n * @param queryParams - The query parameters to filter the files.\n * @param queryOptions - Optional TanStack Query options to customize the query behavior.\n * @returns A query result containing the employment files.\n */\nexport const useEmploymentFiles = (\n employmentId: string,\n queryParams: GetIndexEmploymentFileData['query'],\n queryOptions?: Omit<\n UseQueryOptions<\n ListFilesResponse,\n GetIndexEmploymentFileErrors,\n ApiFile[] | undefined,\n unknown[]\n >,\n 'queryKey' | 'queryFn'\n >,\n) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['employment-files', employmentId],\n queryFn: async () => {\n const result = await getIndexEmploymentFile({\n client: client as Client,\n path: { employment_id: employmentId },\n query: queryParams,\n });\n\n if (result.error) {\n throw result.error;\n }\n\n return result.data;\n },\n ...queryOptions,\n });\n};\n","import { useQuery } from '@tanstack/react-query';\nimport { useClient } from '@/src/context';\nimport {\n getIndexCompanyPricingPlan,\n IdentityCurrentResponse,\n} from '@/src/client';\nimport { Client } from '@/src/client/client';\nimport { useIdentity } from '@/src/common/api/identity';\n\nexport function hasCompany(\n identity: IdentityCurrentResponse['data'] | undefined,\n): identity is Extract<\n IdentityCurrentResponse['data'],\n { company: { id: string } }\n> {\n return identity != null && 'company' in identity;\n}\n\nexport const useCompanyPricingPlans = (\n queryOptions: { enabled?: boolean } = { enabled: true },\n) => {\n const { data: identity } = useIdentity();\n const companyId = hasCompany(identity) ? (identity?.company?.id ?? '') : '';\n const { client } = useClient();\n return useQuery({\n queryKey: ['pricing-plans', companyId],\n queryFn: () =>\n getIndexCompanyPricingPlan({\n client: client as Client,\n path: { company_id: companyId },\n }),\n select: (data) => data.data?.data?.pricing_plans,\n enabled: Boolean(queryOptions?.enabled) && !!companyId,\n });\n};\n","import { useQuery } from '@tanstack/react-query';\nimport { getCurrentIdentity } from '@/src/client';\nimport { useClient } from '@/src/context';\nimport { Client } from '@/src/client/client';\n\nexport const useIdentity = () => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['identity'],\n queryFn: () =>\n getCurrentIdentity({\n client: client as Client,\n headers: { Authorization: `` },\n }),\n select: (data) => data.data?.data,\n });\n};\n"],"mappings":"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","names":["useMemo","useMutation","useQuery","useMutation","useQuery","useUploadFile","__name","client","useClient","useMutation","params","postUploadEmployeeFileFile","useDownloadFile","id","useQuery","result","getShowFile","data","useEmploymentFiles","employmentId","queryParams","queryOptions","getIndexEmploymentFile","useQuery","useQuery","useIdentity","__name","client","useClient","useQuery","getCurrentIdentity","data","hasCompany","identity","__name","useCompanyPricingPlans","queryOptions","useIdentity","companyId","client","useClient","useQuery","getIndexCompanyPricingPlan","data","useContractorCurrencies","__name","employmentId","options","client","useClient","useQuery","getIndexContractorCurrency","data","useGetContractDocumentSignatureSchema","fieldValues","createHeadlessForm","signatureSchema","useSignContractDocument","useMutation","contractDocumentId","payload","postSignContractDocument","useGetShowContractDocument","getShowContractDocument","clearBase64Data","useGetContractorSubscriptions","getIndexSubscription","usePostManageContractorSubscriptions","postManageContractorPlusSubscriptionSubscription","useCreateContractorContractDocument","postCreateContractDocument","useContractorOnboardingDetailsSchema","countryCode","getShowContractorContractDetailsCountry","jsfSchema","CONTRACT_PRODUCT_TITLES","contractorStandardProductIdentifier","contractorPlusProductIdentifier","corProductIdentifier","useEorSubscription","pricingPlans","isLoadingPricingPlans","useCompanyPricingPlans","eorPricingPlan","plan","eorProductIdentifier","convertFromCents","addEorToFieldOptions","fieldOptions","eorSubscription","excludeProducts","shouldIncludeProduct","useContractorSubscriptionSchemaField","selectedCountry","contractorSubscriptions","isLoading","refetch","isEmptyContractorSubscriptions","isSingleSubscription","isEligibilityQuestionnaireBlocked","subscription","showEorSubscription","isLoadingEorSubscription","form","selectContractorSubscriptionStepSchema","field","contractorOptions","opts","product","price","currencyCode","label","value","description","meta","a","b","otherOptions","useUpdateUKandSaudiFields","createContractorContractDocumentMutation","uploadFileMutation","parsedValues","uploadFileMutationAsync","mutationToPromise","createContractorContractDocumentMutationAsync","nationalityStatus","ir35Status","ir35SdsFile","ir35ContractDetailsPayload","nationalityContractDetailsPayload","IR35_FILE_SUBTYPE","useGetIR35File","ir35Files","isLoadingFiles","useEmploymentFiles","file","id","downloadQuery","useDownloadFile","useGetContractDocuments","getIndexEmploymentContractDocument","useGetEligibilityQuestionnaire","response","getShowEligibilityQuestionnaire","schema","usePostCreateEligibilityQuestionnaire","postCreateEligibilityQuestionnaire","usePostManageContractorCorSubscription","postManageContractorCorSubscriptionSubscription","useDeleteContractorCorSubscription","deleteDeleteContractorCorSubscriptionSubscription","useCountriesSchemaField","countries","countriesOptions","country","selectCountryForm","selectCountryStepSchema","countryField","useContractorOnboardingDetailsSchemaWithCurrencies","schemaQuery","currencies","isLoadingCurrencies","dataWithCurrencies","useMemo","nestedField","currency"]}
|