@remoteoss/remote-flows 1.26.0 → 1.27.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-QLUSGCSO.js +2 -0
- package/dist/CountryFieldDefault-BNXTXEWS.js +2 -0
- package/dist/DatePickerFieldDefault-FJ7HVEV5.js +2 -0
- package/dist/RadioGroupFieldDefault-ZLKZ4B4D.js +2 -0
- package/dist/TextAreaFieldDefault-G5AIZNH7.js +2 -0
- package/dist/{chunk-I2DXGO23.js → chunk-2OGPILJM.js} +2 -2
- package/dist/chunk-3DQ5RNLK.js +2 -0
- package/dist/chunk-3DQ5RNLK.js.map +1 -0
- package/dist/{chunk-KLN2FG5Y.js → chunk-4Y2DWXQB.js} +2 -2
- package/dist/{chunk-XXXLKG43.js → chunk-5QHQT6DL.js} +2 -2
- package/dist/{chunk-FIM36WNY.js → chunk-5TGKHA2W.js} +2 -2
- package/dist/{chunk-ZYAMVSAL.js → chunk-65K5T3GC.js} +2 -2
- package/dist/{chunk-36NGPS63.js → chunk-6K3ISPZ3.js} +2 -2
- package/dist/{chunk-FZO24P53.js → chunk-6QJZMW6S.js} +2 -2
- package/dist/chunk-6S566ZMF.js +2 -0
- package/dist/chunk-6S566ZMF.js.map +1 -0
- package/dist/chunk-7DQY3SRL.js +2 -0
- package/dist/chunk-7DQY3SRL.js.map +1 -0
- package/dist/chunk-7SRRP2D6.js +2 -0
- package/dist/chunk-7SRRP2D6.js.map +1 -0
- package/dist/chunk-7ZBLKUKE.js +2 -0
- package/dist/chunk-7ZBLKUKE.js.map +1 -0
- package/dist/{chunk-3VWXALRD.js → chunk-AL37BOFX.js} +2 -2
- package/dist/{chunk-K56VMRZ5.js → chunk-ALF55LF2.js} +2 -2
- package/dist/{chunk-SP2V52RP.js → chunk-B7HGVWIT.js} +2 -2
- package/dist/{chunk-ZS7YCDY6.js → chunk-BC2H7WGB.js} +2 -2
- package/dist/{chunk-QLJMIWS4.js → chunk-CMR5CIYN.js} +2 -2
- package/dist/{chunk-GCPDTL2M.js → chunk-CODZ7A6U.js} +2 -2
- package/dist/{chunk-XHZHFM2J.js → chunk-DHLSO7BU.js} +2 -2
- package/dist/{chunk-IK27ZFUU.js → chunk-DR25AW5C.js} +2 -2
- package/dist/{chunk-33IPP266.js → chunk-EN5ZMAYF.js} +2 -2
- package/dist/{chunk-AMSYQQG7.js → chunk-ET4QWXWY.js} +2 -2
- package/dist/{chunk-LFYDEIZG.js → chunk-GFM747IZ.js} +2 -2
- package/dist/{chunk-BAKE7YEE.js → chunk-GLJV3B55.js} +2 -2
- package/dist/{chunk-FZVUO3UU.js → chunk-HBX37YK2.js} +2 -2
- package/dist/{chunk-RD5FPT3Y.js → chunk-HGBOZH6Q.js} +2 -2
- package/dist/{chunk-POKPAJNL.js → chunk-HGETJXZZ.js} +2 -2
- package/dist/{chunk-DEVQ2NNK.js → chunk-HI7TK62N.js} +2 -2
- package/dist/{chunk-VLVKKSJP.js → chunk-JBOUDOIM.js} +2 -2
- package/dist/chunk-JR6VISHQ.js +2 -0
- package/dist/chunk-JR6VISHQ.js.map +1 -0
- package/dist/{chunk-LX3JPBUV.js → chunk-KFNCHTUX.js} +2 -2
- package/dist/{chunk-TXEONNPV.js → chunk-KIUI7FHF.js} +2 -2
- package/dist/{chunk-7VKV5G6N.js → chunk-L6V2G5TE.js} +2 -2
- package/dist/{chunk-XUT44QU6.js → chunk-L7TAT462.js} +2 -2
- package/dist/{chunk-3SECILYU.js → chunk-M64UJF3B.js} +2 -2
- package/dist/{chunk-TIJRONPS.js → chunk-MGVJ2TKE.js} +2 -2
- package/dist/{chunk-C6ARUHCB.js → chunk-MMIHT4V6.js} +2 -2
- package/dist/{chunk-GHYCSTSK.js → chunk-MVPXUUUE.js} +2 -2
- package/dist/{chunk-4EDPYN5F.js → chunk-NTRKVVLQ.js} +2 -2
- package/dist/{chunk-R47Q7R6C.js → chunk-O5XQUEB5.js} +6 -6
- package/dist/chunk-O5XQUEB5.js.map +1 -0
- package/dist/{chunk-RPCS3K2I.js → chunk-O7TCU5D2.js} +2 -2
- package/dist/{chunk-BI3PHE5N.js → chunk-OGKH4RJL.js} +2 -2
- package/dist/{chunk-IY3ASS7L.js → chunk-OVA2X5BB.js} +2 -2
- package/dist/{chunk-KJMPEOZ7.js → chunk-PK2E2DJH.js} +2 -2
- package/dist/{chunk-45K26OSG.js → chunk-PLKF2BTI.js} +2 -2
- package/dist/{chunk-HMVU7HJL.js → chunk-QV4FEP6W.js} +2 -2
- package/dist/{chunk-KKCYP5TA.js → chunk-QV7CVQDJ.js} +2 -2
- package/dist/{chunk-JFD2OJ6L.js → chunk-SBTZUZDR.js} +2 -2
- package/dist/{chunk-O6H23YQW.js → chunk-SW7DKXXK.js} +2 -2
- package/dist/{chunk-5F5H7LZT.js → chunk-T5U7ZIBV.js} +2 -2
- package/dist/{chunk-6I5FRZSX.js → chunk-TXU6EUWN.js} +2 -2
- package/dist/{chunk-7Z4MWUCV.js → chunk-U4344VZW.js} +2 -2
- package/dist/{chunk-SJVCXKRO.js → chunk-UOZUG2KL.js} +2 -2
- package/dist/{chunk-TFJOJCCS.js → chunk-VKKORLLM.js} +2 -2
- package/dist/{chunk-BS4A6UYL.js → chunk-VZXZ7ELU.js} +2 -2
- package/dist/{chunk-R7WSWTCF.js → chunk-WXEBBNWP.js} +2 -2
- package/dist/{chunk-BMLTMXEK.js → chunk-XK77JKBO.js} +2 -2
- package/dist/chunk-XO4DAKV7.js +2 -0
- package/dist/chunk-XO4DAKV7.js.map +1 -0
- package/dist/{chunk-TUPZTWGP.js → chunk-XYV6WN5C.js} +2 -2
- package/dist/{chunk-5F5BHJQO.js → chunk-ZIFQZ33N.js} +2 -2
- package/dist/{chunk-P4TKMCSQ.js → chunk-ZNGMRPG6.js} +2 -2
- package/dist/{chunk-NUD662HZ.js → chunk-ZQZWWNXL.js} +2 -2
- package/dist/chunk-ZQZWWNXL.js.map +1 -0
- package/dist/{chunk-5EHJ5HTV.js → chunk-ZSBQDVXM.js} +2 -2
- package/dist/{chunk-OCTM6K3V.js → chunk-ZX3JVVRL.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 +9 -17
- package/dist/flows/Onboarding/api.js +1 -1
- package/dist/flows/Onboarding/components/AnnualGrossSalary.d.ts +2 -2
- package/dist/flows/Onboarding/components/AnnualGrossSalary.js +1 -1
- package/dist/flows/Onboarding/components/BasicInformationStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/BasicInformationStep.js +1 -1
- package/dist/flows/Onboarding/components/BenefitsStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/BenefitsStep.js +1 -1
- package/dist/flows/Onboarding/components/ContractDetailsStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/ContractDetailsStep.js +1 -1
- package/dist/flows/Onboarding/components/OnboardingForm.d.ts +4 -4
- package/dist/flows/Onboarding/components/OnboardingForm.js +1 -1
- package/dist/flows/Onboarding/components/OnboardingInvite.d.ts +3 -3
- package/dist/flows/Onboarding/components/OnboardingInvite.js +1 -1
- package/dist/flows/Onboarding/components/ReviewStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/SaveDraftButton.d.ts +3 -3
- package/dist/flows/Onboarding/components/SelectCountryStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/SelectCountryStep.js +1 -1
- package/dist/flows/Onboarding/context.d.ts +7 -6
- 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 +11 -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-B8Mignyp.d.ts} +1 -1
- package/dist/{remoteFlows-BgpcnCNA.d.ts → remoteFlows-B_Qw-y-E.d.ts} +1 -1
- package/dist/styles.css +1 -1
- package/dist/styles.css.map +1 -1
- package/dist/{types-x02L1Qo9.d.ts → types-B5J_4wyN.d.ts} +3 -3
- package/dist/{types-BBgv8INf.d.ts → types-BkwrqJ5I.d.ts} +4 -4
- package/dist/{types-CRnEmzMD.d.ts → types-D8HNn_KX.d.ts} +1 -1
- package/dist/{types-nfUNaXC-.d.ts → types-XM7RZKic.d.ts} +3 -3
- package/dist/{types-DEzrQ-MU.d.ts → types-b3-hzr00.d.ts} +2 -2
- package/dist/{types.gen-Dgw1W-SB.d.ts → types.gen-DowXAxCF.d.ts} +660 -20
- package/dist/{utils-Dg9zSNDT.d.ts → utils-CqFJ189L.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-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-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.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/{CheckboxFieldDefault-SQULI7DO.js.map → CheckboxFieldDefault-QLUSGCSO.js.map} +0 -0
- /package/dist/{CountryFieldDefault-4YHZACZ5.js.map → CountryFieldDefault-BNXTXEWS.js.map} +0 -0
- /package/dist/{DatePickerFieldDefault-B7WY5H6M.js.map → DatePickerFieldDefault-FJ7HVEV5.js.map} +0 -0
- /package/dist/{RadioGroupFieldDefault-G637DHSW.js.map → RadioGroupFieldDefault-ZLKZ4B4D.js.map} +0 -0
- /package/dist/{TextAreaFieldDefault-32E5FGS7.js.map → TextAreaFieldDefault-G5AIZNH7.js.map} +0 -0
- /package/dist/{chunk-I2DXGO23.js.map → chunk-2OGPILJM.js.map} +0 -0
- /package/dist/{chunk-KLN2FG5Y.js.map → chunk-4Y2DWXQB.js.map} +0 -0
- /package/dist/{chunk-XXXLKG43.js.map → chunk-5QHQT6DL.js.map} +0 -0
- /package/dist/{chunk-FIM36WNY.js.map → chunk-5TGKHA2W.js.map} +0 -0
- /package/dist/{chunk-ZYAMVSAL.js.map → chunk-65K5T3GC.js.map} +0 -0
- /package/dist/{chunk-36NGPS63.js.map → chunk-6K3ISPZ3.js.map} +0 -0
- /package/dist/{chunk-FZO24P53.js.map → chunk-6QJZMW6S.js.map} +0 -0
- /package/dist/{chunk-3VWXALRD.js.map → chunk-AL37BOFX.js.map} +0 -0
- /package/dist/{chunk-K56VMRZ5.js.map → chunk-ALF55LF2.js.map} +0 -0
- /package/dist/{chunk-SP2V52RP.js.map → chunk-B7HGVWIT.js.map} +0 -0
- /package/dist/{chunk-ZS7YCDY6.js.map → chunk-BC2H7WGB.js.map} +0 -0
- /package/dist/{chunk-QLJMIWS4.js.map → chunk-CMR5CIYN.js.map} +0 -0
- /package/dist/{chunk-GCPDTL2M.js.map → chunk-CODZ7A6U.js.map} +0 -0
- /package/dist/{chunk-XHZHFM2J.js.map → chunk-DHLSO7BU.js.map} +0 -0
- /package/dist/{chunk-IK27ZFUU.js.map → chunk-DR25AW5C.js.map} +0 -0
- /package/dist/{chunk-33IPP266.js.map → chunk-EN5ZMAYF.js.map} +0 -0
- /package/dist/{chunk-AMSYQQG7.js.map → chunk-ET4QWXWY.js.map} +0 -0
- /package/dist/{chunk-LFYDEIZG.js.map → chunk-GFM747IZ.js.map} +0 -0
- /package/dist/{chunk-BAKE7YEE.js.map → chunk-GLJV3B55.js.map} +0 -0
- /package/dist/{chunk-FZVUO3UU.js.map → chunk-HBX37YK2.js.map} +0 -0
- /package/dist/{chunk-RD5FPT3Y.js.map → chunk-HGBOZH6Q.js.map} +0 -0
- /package/dist/{chunk-POKPAJNL.js.map → chunk-HGETJXZZ.js.map} +0 -0
- /package/dist/{chunk-DEVQ2NNK.js.map → chunk-HI7TK62N.js.map} +0 -0
- /package/dist/{chunk-VLVKKSJP.js.map → chunk-JBOUDOIM.js.map} +0 -0
- /package/dist/{chunk-LX3JPBUV.js.map → chunk-KFNCHTUX.js.map} +0 -0
- /package/dist/{chunk-TXEONNPV.js.map → chunk-KIUI7FHF.js.map} +0 -0
- /package/dist/{chunk-7VKV5G6N.js.map → chunk-L6V2G5TE.js.map} +0 -0
- /package/dist/{chunk-XUT44QU6.js.map → chunk-L7TAT462.js.map} +0 -0
- /package/dist/{chunk-3SECILYU.js.map → chunk-M64UJF3B.js.map} +0 -0
- /package/dist/{chunk-TIJRONPS.js.map → chunk-MGVJ2TKE.js.map} +0 -0
- /package/dist/{chunk-C6ARUHCB.js.map → chunk-MMIHT4V6.js.map} +0 -0
- /package/dist/{chunk-GHYCSTSK.js.map → chunk-MVPXUUUE.js.map} +0 -0
- /package/dist/{chunk-4EDPYN5F.js.map → chunk-NTRKVVLQ.js.map} +0 -0
- /package/dist/{chunk-RPCS3K2I.js.map → chunk-O7TCU5D2.js.map} +0 -0
- /package/dist/{chunk-BI3PHE5N.js.map → chunk-OGKH4RJL.js.map} +0 -0
- /package/dist/{chunk-IY3ASS7L.js.map → chunk-OVA2X5BB.js.map} +0 -0
- /package/dist/{chunk-KJMPEOZ7.js.map → chunk-PK2E2DJH.js.map} +0 -0
- /package/dist/{chunk-45K26OSG.js.map → chunk-PLKF2BTI.js.map} +0 -0
- /package/dist/{chunk-HMVU7HJL.js.map → chunk-QV4FEP6W.js.map} +0 -0
- /package/dist/{chunk-KKCYP5TA.js.map → chunk-QV7CVQDJ.js.map} +0 -0
- /package/dist/{chunk-JFD2OJ6L.js.map → chunk-SBTZUZDR.js.map} +0 -0
- /package/dist/{chunk-O6H23YQW.js.map → chunk-SW7DKXXK.js.map} +0 -0
- /package/dist/{chunk-5F5H7LZT.js.map → chunk-T5U7ZIBV.js.map} +0 -0
- /package/dist/{chunk-6I5FRZSX.js.map → chunk-TXU6EUWN.js.map} +0 -0
- /package/dist/{chunk-7Z4MWUCV.js.map → chunk-U4344VZW.js.map} +0 -0
- /package/dist/{chunk-SJVCXKRO.js.map → chunk-UOZUG2KL.js.map} +0 -0
- /package/dist/{chunk-TFJOJCCS.js.map → chunk-VKKORLLM.js.map} +0 -0
- /package/dist/{chunk-BS4A6UYL.js.map → chunk-VZXZ7ELU.js.map} +0 -0
- /package/dist/{chunk-R7WSWTCF.js.map → chunk-WXEBBNWP.js.map} +0 -0
- /package/dist/{chunk-BMLTMXEK.js.map → chunk-XK77JKBO.js.map} +0 -0
- /package/dist/{chunk-TUPZTWGP.js.map → chunk-XYV6WN5C.js.map} +0 -0
- /package/dist/{chunk-5F5BHJQO.js.map → chunk-ZIFQZ33N.js.map} +0 -0
- /package/dist/{chunk-P4TKMCSQ.js.map → chunk-ZNGMRPG6.js.map} +0 -0
- /package/dist/{chunk-5EHJ5HTV.js.map → chunk-ZSBQDVXM.js.map} +0 -0
- /package/dist/{chunk-OCTM6K3V.js.map → chunk-ZX3JVVRL.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/form/fields/FieldSetField.tsx","../src/components/form/fields/DatePickerField.tsx","../src/components/form/fields/FileUploadField.tsx","../src/components/form/fields/NumberField.tsx","../src/components/form/fields/RadioGroupField.tsx","../src/components/form/fields/SelectField.tsx","../src/components/form/fields/CountryField.tsx","../src/components/form/fields/TextAreaField.tsx","../src/components/form/fields/EmailField.tsx","../src/components/form/fields/HiddenField.tsx","../src/components/form/fields/WorkScheduleField.tsx","../src/components/form/fields/MultiSelectField.tsx","../src/components/form/fields/MoneyField.tsx","../src/components/form/fields/TelField.tsx","../src/components/form/fields/baseFields.tsx","../src/components/form/fields/ForcedValueField.tsx"],"sourcesContent":["import { useFormContext } from 'react-hook-form';\nimport { Fragment, useEffect, useRef } from 'react';\nimport omit from 'lodash.omit';\nimport { baseFields } from '@/src/components/form/fields/baseFields';\nimport { cn, sanitizeHtml } from '@/src/lib/utils';\nimport { $TSFixMe, Components } from '@/src/types/remoteFlows';\nimport { Statement } from '@/src/components/form/Statement';\nimport { useFormFields } from '@/src/context';\nimport { ZendeskTriggerButton } from '@/src/components/shared/zendesk-drawer/ZendeskTriggerButton';\nimport { FieldsetToggleButtonDefault } from '@/src/components/form/fields/default/FieldsetToggleButtonDefault';\nimport { BaseTypes, SupportedTypes } from './types';\nimport { StatementComponentProps } from '@/src/types/fields';\nimport { checkFieldHasForcedValue } from '@/src/components/form/utils';\nimport { ForcedValueField } from '@/src/components/form/fields/ForcedValueField';\n\ntype FieldBase = {\n label: string;\n name: string;\n description: string;\n Component?: React.ComponentType<$TSFixMe>;\n inputType: SupportedTypes;\n multiple?: boolean;\n};\n\ntype FieldWithOptions = FieldBase & {\n type: 'select' | 'radio';\n options: Array<{ value: string; label: string }>;\n};\n\ntype FieldWithoutOptions = FieldBase & {\n type: Exclude<SupportedTypes, 'select' | 'radio'>;\n options?: never;\n};\n\ntype Field = FieldWithOptions | FieldWithoutOptions;\n\ntype FieldSetFeatures = {\n toggle?: {\n enabled: boolean;\n defaultExpanded?: boolean;\n stateField?: string;\n labels?: {\n expand: string;\n collapse: string;\n };\n className?: string;\n };\n};\n\nexport type FieldSetProps = {\n label: string;\n name: string;\n description: string;\n fields: Field[];\n features?: FieldSetFeatures;\n components: Components;\n statement?: StatementComponentProps['data'];\n isFlatFieldset: boolean;\n extra?: React.ReactNode;\n variant: 'outset' | 'inset';\n meta?: {\n helpCenter?: {\n callToAction: string;\n id: number;\n url: string;\n label: string;\n };\n } & Record<string, $TSFixMe>;\n};\n\nexport function FieldSetField({\n label,\n name,\n fields,\n description,\n components,\n statement,\n isFlatFieldset,\n extra,\n variant = 'outset',\n features,\n meta,\n}: FieldSetProps) {\n const { helpCenter } = meta || {};\n const { watch, setValue, trigger, formState } = useFormContext();\n const { components: formComponents } = useFormFields();\n\n // Get expanded state from form state if stateField is provided\n const stateField = features?.toggle?.stateField;\n const isExpanded = stateField\n ? watch(stateField)\n : (features?.toggle?.defaultExpanded ?? true);\n\n const fieldNames = fields.map(\n ({ name: fieldName }) => `${name}.${fieldName}`,\n );\n const watchedValues = watch(fieldNames);\n const prevValuesRef = useRef<string[]>(watchedValues);\n const triggerTimeoutRef = useRef<NodeJS.Timeout | null>(null);\n\n const toggleExpanded = () => {\n if (stateField) {\n setValue(stateField, !isExpanded);\n }\n };\n\n useEffect(() => {\n const currentValues = watchedValues;\n const previousValues = prevValuesRef.current;\n const hasBeenSubmitted = formState.isSubmitted || formState.submitCount > 0;\n\n // Check if any value has changed\n let hasChanged = false;\n for (let i = 0; i < currentValues.length; i++) {\n if (\n currentValues[i] !== undefined &&\n previousValues[i] !== currentValues[i]\n ) {\n hasChanged = true;\n // This is to prevent the form from triggering validation too many times\n break;\n }\n }\n // If changes detected and we haven't triggered yet, run trigger\n if (hasChanged && hasBeenSubmitted) {\n // We need to debounce the validation trigger so that tests don't freeze\n if (triggerTimeoutRef.current) {\n clearTimeout(triggerTimeoutRef.current);\n }\n triggerTimeoutRef.current = setTimeout(() => {\n trigger();\n }, 50);\n }\n\n prevValuesRef.current = [...currentValues];\n\n return () => {\n if (triggerTimeoutRef.current) {\n clearTimeout(triggerTimeoutRef.current);\n }\n };\n }, [watchedValues, trigger, formState.isSubmitted, formState.submitCount]);\n\n const ToggleComponent =\n formComponents?.fieldsetToggle || FieldsetToggleButtonDefault;\n const contentId = `${name}-content`;\n const headerId = `${name}-header`;\n\n return (\n <fieldset\n className={cn(\n 'border-1 border-input p-4 rounded-xl',\n `RemoteFlows__FieldSetField`,\n `RemoteFlows__FieldSetField__${name}`,\n )}\n >\n <legend\n className={cn(\n 'text-sm font-semibold px-2',\n variant === 'inset' && 'hidden',\n )}\n >\n {label}\n </legend>\n {helpCenter?.callToAction && helpCenter?.id && variant === 'outset' && (\n <ZendeskTriggerButton\n className='RemoteFlows__FieldSetField__HelpCenterLink mb-3'\n zendeskId={helpCenter.id}\n >\n {helpCenter.callToAction}\n </ZendeskTriggerButton>\n )}\n {variant === 'inset' && (\n <>\n <div\n className='RemoteFlows__FieldSetField__Header'\n id={headerId}\n data-state={isExpanded ? 'expanded' : 'collapsed'}\n aria-expanded={isExpanded}\n >\n <h3 className={cn('RemoteFlows__FieldSetField__Title')}>{label}</h3>\n {features?.toggle?.enabled && (\n <ToggleComponent\n isExpanded={isExpanded}\n onToggle={toggleExpanded}\n aria-expanded={isExpanded}\n aria-controls={contentId}\n aria-label={`${isExpanded ? 'Hide' : 'Show'} ${label}`}\n className={cn(\n 'RemoteFlows__FieldSetField__Toggle',\n features.toggle?.className,\n )}\n >\n {isExpanded\n ? (features.toggle.labels?.collapse ?? 'Remove')\n : (features.toggle.labels?.expand ?? 'Define')}\n </ToggleComponent>\n )}\n </div>\n {helpCenter?.callToAction && helpCenter?.id && (\n <ZendeskTriggerButton\n className='RemoteFlows__FieldSetField__HelpCenterLink mb-3'\n zendeskId={helpCenter.id}\n >\n {helpCenter.callToAction}\n </ZendeskTriggerButton>\n )}\n </>\n )}\n {isExpanded && (\n <div id={contentId} aria-labelledby={headerId} role='region'>\n {description ? (\n <div\n className='mb-5 RemoteFlows__FieldSetField__Description'\n dangerouslySetInnerHTML={{ __html: sanitizeHtml(description) }}\n />\n ) : null}\n <div className='grid gap-4'>\n {fields.map((field: $TSFixMe) => {\n if (field.calculateDynamicProperties) {\n field = {\n ...field,\n ...(field.calculateDynamicProperties(watchedValues, field) ||\n {}),\n };\n }\n\n if (field.isVisible === false || field.deprecated) {\n return null; // Skip hidden or deprecated fields\n }\n\n const fieldType = field.type;\n const fieldKey = `${isFlatFieldset ? field.name : `${name}.${field.name}`}`;\n\n const isForcedValue = checkFieldHasForcedValue(field);\n\n // Helper function to wrap content with WrapperComponent if present\n const wrapWithCustomWrapper = (\n content: React.ReactNode,\n key: string,\n ) => {\n if (field.WrapperComponent) {\n return (\n <field.WrapperComponent key={key}>\n {content}\n </field.WrapperComponent>\n );\n }\n return <Fragment key={key}>{content}</Fragment>;\n };\n\n if (isForcedValue) {\n const fieldProps = omit(field, 'WrapperComponent');\n return wrapWithCustomWrapper(\n <ForcedValueField\n name={fieldKey}\n description={fieldProps.description}\n value={fieldProps.const}\n statement={fieldProps.statement}\n label={fieldProps.label}\n helpCenter={fieldProps.meta?.helpCenter}\n />,\n fieldKey,\n );\n }\n\n // Handle nested fieldsets\n if (fieldType === 'fieldset') {\n const fieldProps = omit(field, 'WrapperComponent');\n return wrapWithCustomWrapper(\n <FieldSetField\n {...(fieldProps as $TSFixMe)}\n name={fieldKey}\n components={components}\n />,\n fieldKey,\n );\n }\n\n if (fieldType === 'fieldset-flat') {\n const fieldProps = omit(field, 'WrapperComponent');\n return wrapWithCustomWrapper(\n <FieldSetField\n {...(fieldProps as $TSFixMe)}\n name={fieldKey}\n components={components}\n isFlatFieldset\n />,\n fieldKey,\n );\n }\n // We need to do the check after checking (field.type || field.inputType) === 'fieldset' or (field.type || field.inputType) === 'fieldset-flat'\n // circular dependency most likely\n let FieldComponent = baseFields[fieldType as BaseTypes];\n\n if (field.Component) {\n const { Component } = field as {\n Component: React.ComponentType<$TSFixMe>;\n };\n const fieldProps = omit(field, 'WrapperComponent');\n return wrapWithCustomWrapper(\n <>\n <Component\n {...fieldProps}\n value={watch(fieldKey) as string}\n setValue={(value: unknown) => {\n setValue(fieldKey, value);\n }}\n />\n {field.statement ? (\n <Statement\n {...(field.statement as StatementComponentProps['data'])}\n />\n ) : null}\n {field.extra ? field.extra : null}\n </>,\n fieldKey,\n );\n }\n\n if (!FieldComponent) {\n return (\n <p className='error'>Field type {fieldType} not supported</p>\n );\n }\n\n if (fieldType === 'select' && field.multiple) {\n FieldComponent = baseFields['multi-select'];\n }\n\n const fieldProps = omit(field, 'WrapperComponent');\n return wrapWithCustomWrapper(\n <>\n <FieldComponent\n {...fieldProps}\n name={fieldKey}\n component={components?.[fieldType as keyof Components]}\n />\n {field.statement ? (\n <Statement\n {...(field.statement as StatementComponentProps['data'])}\n />\n ) : null}\n {field.extra ? field.extra : null}\n </>,\n fieldKey,\n );\n })}\n {extra ? extra : null}\n {statement ? <Statement {...statement} /> : null}\n </div>\n </div>\n )}\n </fieldset>\n );\n}\n","import { useFormContext } from 'react-hook-form';\nimport { FormField } from '@/src/components/ui/form';\n\nimport { useFormFields } from '@/src/context';\nimport { Components, JSFField, $TSFixMe } from '@/src/types/remoteFlows';\nimport { getMinStartDate } from '@/src/components/form/utils';\n\nexport type DatePickerFieldProps = JSFField & {\n onChange?: (value: $TSFixMe) => void;\n component?: Components['date'];\n};\n\nexport function DatePickerField({\n description,\n label,\n name,\n minDate,\n maxDate,\n onChange,\n component,\n ...rest\n}: DatePickerFieldProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n\n let minDateValue: Date;\n if (rest.meta?.mot && typeof rest.meta.mot === 'number') {\n minDateValue = getMinStartDate(rest.meta.mot);\n } else if (typeof minDate === 'string') {\n minDateValue = new Date(`${minDate}T00:00:00`);\n }\n\n let maxDateValue: Date | undefined;\n if (maxDate) {\n maxDateValue = new Date(`${maxDate}T23:59:59`);\n }\n\n return (\n <FormField\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const Component = component || components?.date;\n\n if (!Component) {\n throw new Error(`Date picker component not found for field ${name}`);\n }\n\n const customDatePickerFieldProps = {\n description,\n label,\n name,\n onChange,\n ...(minDateValue && { minDate: minDateValue.toISOString() }),\n ...(maxDateValue && { maxDate: maxDateValue.toISOString() }),\n ...rest,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (value: $TSFixMe) => {\n field.onChange(value);\n onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={customDatePickerFieldProps}\n />\n );\n }}\n />\n );\n}\n","import { useFormFields } from '@/src/context';\nimport { Components, JSFField } from '@/src/types/remoteFlows';\nimport {\n ControllerRenderProps,\n FieldValues,\n useFormContext,\n} from 'react-hook-form';\nimport { FormField } from '../../ui/form';\nimport { FieldDataProps } from '@/src/types/fields';\n\nconst validateFileSize = (files: File[], maxSize?: number): string | null => {\n if (!maxSize) return null;\n\n for (const file of files) {\n if (file.size > maxSize) {\n const maxSizeMB = Math.round(maxSize / (1024 * 1024));\n const fileSizeMB = Math.round(file.size / (1024 * 1024));\n return `File \"${file.name}\" exceeds maximum size of ${maxSizeMB}MB (file is ${fileSizeMB}MB)`;\n }\n }\n return null;\n};\n\nexport type FieldFileDataProps = FieldDataProps & {\n accept?: string;\n multiple?: boolean;\n maxFileSize?: number;\n};\n\nexport type FileUploadFieldProps = JSFField & {\n onChange?: (value: File[]) => void;\n multiple?: boolean;\n component?: Components['file'];\n maxSize?: number;\n accept?: string;\n};\n\nexport function FileUploadField({\n name,\n description,\n label,\n multiple,\n onChange,\n component,\n accept,\n maxSize,\n ...rest\n}: FileUploadFieldProps) {\n const { components } = useFormFields();\n const { control, setError, clearErrors } = useFormContext();\n\n const handleOnChange = async (\n files: File[],\n field: ControllerRenderProps<FieldValues, string>,\n ) => {\n const sizeError = validateFileSize(files, maxSize);\n if (sizeError) {\n setError(name, { message: sizeError });\n return;\n }\n\n clearErrors(name);\n field.onChange(files);\n onChange?.(files);\n };\n\n return (\n <FormField\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const Component = component || components.file;\n if (!Component) {\n throw new Error(`File upload component not found for field ${name}`);\n }\n\n const fieldData: FieldFileDataProps = {\n name,\n description,\n label,\n multiple,\n accept,\n maxFileSize: maxSize,\n ...rest,\n };\n\n return (\n <Component\n field={{\n ...field,\n value: field.value,\n onChange: async (value: File[]) => handleOnChange(value, field),\n }}\n fieldState={fieldState}\n fieldData={fieldData}\n />\n );\n }}\n />\n );\n}\n","import { useFormContext } from 'react-hook-form';\nimport { useFormFields } from '@/src/context';\nimport { FormField } from '@/src/components/ui/form';\nimport { Components } from '@/src/types/remoteFlows';\nimport { TextFieldProps } from './TextField';\n\nexport type NumberFieldProps = TextFieldProps & {\n component?: Components['number'];\n onChange?: (value: number) => void;\n};\n\nexport function NumberField(props: NumberFieldProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n\n const Component = props.component || components.number;\n if (!Component) {\n throw new Error(`Number component not found for field ${props.name}`);\n }\n return (\n <FormField\n control={control}\n name={props.name}\n render={({ field, fieldState }) => {\n return (\n <Component\n field={{\n ...field,\n onChange: (value: number) => {\n field.onChange(value);\n props.onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={props}\n />\n );\n }}\n />\n );\n}\n","import { FormField } from '@/src/components/ui/form';\nimport { useFormFields } from '@/src/context';\nimport { Components, JSFField } from '@/src/types/remoteFlows';\nimport { useFormContext } from 'react-hook-form';\n\ntype RadioGroupFieldProps = JSFField & {\n onChange?: (value: string) => void;\n component?: Components['radio'];\n};\n\nexport function RadioGroupField({\n name,\n defaultValue,\n description,\n label,\n options,\n onChange,\n component,\n ...rest\n}: RadioGroupFieldProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n return (\n <FormField\n control={control}\n name={name}\n defaultValue={defaultValue}\n render={({ field, fieldState }) => {\n const Component = component || components?.radio;\n if (!Component) {\n throw new Error(`Radio group component not found for field ${name}`);\n }\n const customRadioGroupFieldProps = {\n name,\n defaultValue,\n description,\n label,\n options,\n ...rest,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (value: string) => {\n field.onChange(value);\n onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={customRadioGroupFieldProps}\n />\n );\n }}\n />\n );\n}\n","import { useFormFields } from '@/src/context';\nimport { Components, JSFField } from '@/src/types/remoteFlows';\nimport { useFormContext } from 'react-hook-form';\nimport { FormField } from '@/src/components/ui/form';\n\ntype SelectFieldProps = JSFField & {\n placeholder?: string;\n options: Array<{ value: string | number; label: string }>;\n className?: string;\n onChange?: (value: string | number) => void;\n component?: Components['select'];\n};\n\nexport function SelectField({\n label,\n name,\n options,\n defaultValue,\n description,\n onChange,\n component,\n ...rest\n}: SelectFieldProps) {\n const { control } = useFormContext();\n const { components } = useFormFields();\n\n return (\n <FormField\n defaultValue={defaultValue}\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const Component = component || components?.select;\n\n if (!Component) {\n throw new Error(`Select component not found for field ${name}`);\n }\n\n const customSelectFieldProps = {\n label,\n name,\n options,\n defaultValue,\n description,\n onChange,\n ...rest,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (value: string | number) => {\n const isNumberType = Array.isArray(rest.jsonType)\n ? rest.jsonType.includes('number')\n : rest.jsonType === 'number';\n const maybeCastValue = isNumberType ? Number(value) : value;\n field.onChange(maybeCastValue);\n onChange?.(maybeCastValue);\n },\n }}\n fieldState={fieldState}\n fieldData={customSelectFieldProps}\n />\n );\n }}\n />\n );\n}\n","import { useFormFields } from '@/src/context';\nimport { Components, JSFField, $TSFixMe } from '@/src/types/remoteFlows';\nimport { useFormContext } from 'react-hook-form';\nimport { FormField } from '../../ui/form';\n\ntype CountryFieldProps = JSFField & {\n options: Array<{ value: string; label: string }>;\n onChange?: (value: $TSFixMe) => void;\n $meta: {\n regions: Record<string, string[]>;\n subregions: Record<string, string[]>;\n };\n component?: Components['countries'];\n};\n\nexport function CountryField({\n label,\n name,\n options,\n defaultValue,\n description,\n onChange,\n $meta,\n component,\n ...rest\n}: CountryFieldProps) {\n const { control } = useFormContext();\n const { components } = useFormFields();\n\n return (\n <FormField\n defaultValue={defaultValue}\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const Component = component || components.countries;\n if (!Component) {\n throw new Error(`Country component not found for field ${name}`);\n }\n\n const customSelectFieldProps = {\n label,\n name,\n options,\n defaultValue,\n description,\n onChange,\n $meta,\n ...rest,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (value: $TSFixMe) => {\n field.onChange(value);\n onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={customSelectFieldProps}\n />\n );\n }}\n />\n );\n}\n","import * as React from 'react';\nimport { useFormFields } from '@/src/context';\nimport { Components, JSFField } from '@/src/types/remoteFlows';\nimport { useFormContext } from 'react-hook-form';\nimport { FormField } from '@/src/components/ui/form';\n\nexport type TextAreaFieldProps = JSFField & {\n onChange?: (event: React.ChangeEvent<HTMLTextAreaElement>) => void;\n maxLength?: number;\n component?: Components['textarea'];\n};\n\nexport function TextAreaField({\n name,\n description,\n label,\n onChange,\n maxLength,\n component,\n ...rest\n}: TextAreaFieldProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n return (\n <FormField\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const Component = component || components.textarea;\n if (!Component) {\n throw new Error(`Text area component not found for field ${name}`);\n }\n const customTextAreaFieldProps = {\n name,\n description,\n label,\n maxLength,\n ...rest,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (evt: React.ChangeEvent<HTMLTextAreaElement>) => {\n field.onChange(evt);\n onChange?.(evt);\n },\n }}\n fieldState={fieldState}\n fieldData={customTextAreaFieldProps}\n />\n );\n }}\n />\n );\n}\n","import { useFormFields } from '@/src/context';\nimport { useFormContext } from 'react-hook-form';\nimport { FormField } from '../../ui/form';\nimport { TextFieldProps } from './TextField';\nimport { Components } from '@/src/types/remoteFlows';\n\ntype EmailFieldProps = TextFieldProps & {\n component?: Components['email'];\n};\n\nexport function EmailField(props: EmailFieldProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n\n const Component = props.component || components.email;\n\n if (!Component) {\n throw new Error(`Email component not found for field ${props.name}`);\n }\n\n return (\n <FormField\n control={control}\n name={props.name}\n render={({ field, fieldState }) => {\n return (\n <Component\n field={{\n ...field,\n onChange: (value: string) => {\n field.onChange(value);\n props.onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={props}\n />\n );\n }}\n />\n );\n}\n","import { useFormContext } from 'react-hook-form';\nimport { FormField } from '../../ui/form';\nimport { Field } from '@/src/flows/types';\n\nexport function HiddenField(props: Field) {\n const { control } = useFormContext();\n\n return (\n <FormField\n control={control}\n name={props.name}\n render={({ field }) => {\n return <input {...field} type='hidden' />;\n }}\n />\n );\n}\n","import { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\n\nimport { JSFField, $TSFixMe } from '@/src/types/remoteFlows';\nimport { useFormFields } from '@/src/context';\nimport { FormField } from '@/src/components/ui/form';\nimport { Components } from '@/src/types/remoteFlows';\n\nimport {\n buildWorkScheduleSummary,\n calculateTotalWorkHours,\n DailySchedule,\n} from './workScheduleUtils';\n\ntype WorkScheduleFieldProps = JSFField & {\n name: string;\n default: DailySchedule[];\n onChange?: (value: $TSFixMe) => void;\n component?: Components['work-schedule'];\n};\n\ntype WorkScheduleFormData = {\n schedule: DailySchedule[];\n};\n\nexport function WorkScheduleField(props: WorkScheduleFieldProps) {\n const { components } = useFormFields();\n const { setValue, control, watch } = useFormContext();\n const watchedSchedule = watch(props.name);\n const [currentSchedule, setCurrentSchedule] =\n useState<DailySchedule[]>(watchedSchedule);\n\n const { workHoursSummary, breakSummary } =\n buildWorkScheduleSummary(currentSchedule);\n const totalWorkHours = calculateTotalWorkHours(currentSchedule);\n\n useEffect(() => {\n setValue(props.name, currentSchedule);\n }, [currentSchedule, props.name, setValue]);\n\n function onSubmit(data: WorkScheduleFormData['schedule']) {\n setCurrentSchedule(data);\n }\n\n const Component = props.component || components['work-schedule'];\n if (!Component) {\n throw new Error(\n `Work schedule component not found for field ${props.name}`,\n );\n }\n\n const fieldData = {\n ...props,\n onSubmit,\n currentSchedule,\n defaultFormattedValue: {\n workHoursSummary,\n breakSummary,\n totalWorkHours,\n },\n };\n\n return (\n <FormField\n control={control}\n name={props.name}\n render={({ field, fieldState }) => {\n return (\n <Component\n field={{\n ...field,\n onChange: (value: $TSFixMe) => {\n field.onChange(value);\n props.onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={fieldData}\n />\n );\n }}\n />\n );\n}\n","import { useFormFields } from '@/src/context';\nimport { Components, JSFField, $TSFixMe } from '@/src/types/remoteFlows';\nimport { useFormContext } from 'react-hook-form';\nimport { FormField } from '../../ui/form';\n\ntype MultiSelectFieldProps = JSFField & {\n placeholder?: string;\n options: Array<{ value: string; label: string }>;\n className?: string;\n onChange?: (value: $TSFixMe) => void;\n component?: Components['select'];\n};\n\nexport function MultiSelectField({\n label,\n name,\n options,\n defaultValue,\n description,\n onChange,\n component,\n ...rest\n}: MultiSelectFieldProps) {\n const { control } = useFormContext();\n const { components } = useFormFields();\n\n return (\n <FormField\n defaultValue={defaultValue}\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const Component = component || components?.['multi-select'];\n if (!Component) {\n throw new Error(`Multi select component not found for field ${name}`);\n }\n\n const customSelectFieldProps = {\n label,\n name,\n options,\n defaultValue,\n description,\n onChange,\n ...rest,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (value: $TSFixMe) => {\n field.onChange(value);\n onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={customSelectFieldProps}\n />\n );\n }}\n />\n );\n}\n","import {\n NumberField,\n NumberFieldProps,\n} from '@/src/components/form/fields/NumberField';\n\n// TODO: We use the number field and the the number type is what the partner overrides\n// TODO: this needs to be changed in the future with the changes from https://github.com/remoteoss/remote-flows/pull/128\nexport const MoneyField = (props: NumberFieldProps) => {\n return <NumberField maxLength={15} {...props} />;\n};\n","import { FormField } from '@/src/components/ui/form';\nimport { useFormFields } from '@/src/context';\nimport { Components, JSFField } from '@/src/types/remoteFlows';\nimport {\n useFormContext,\n ControllerFieldState,\n ControllerRenderProps,\n FieldValues,\n} from 'react-hook-form';\nimport { TelFieldComponentProps } from '@/src/types/fields';\nimport { useMemo, useCallback, useState, useEffect, useRef } from 'react';\n\nexport type Country = {\n name: string;\n dialCode: string;\n pattern: string;\n areaCodes?: string[];\n};\n\n/**\n * Removes all spaces from input.\n */\nfunction removeSpaces(value: string) {\n return value.replace(/\\s/g, '');\n}\n\nfunction getStructuredNumberFromInternationalNumber(\n internationalPhoneNumber: string = '',\n country?: Country,\n) {\n const baseRegex = new RegExp(\n `^(\\\\+|00)(\\\\d{${country?.dialCode?.length ?? 0}})(.*)$`,\n );\n const baseMatch = internationalPhoneNumber?.match(baseRegex);\n\n if (!baseMatch) {\n return {\n prefix: '',\n dialCode: '',\n phoneNumber: internationalPhoneNumber,\n };\n }\n\n const [, plusOrCallPrefix, dialCode, phoneNumber] = baseMatch;\n\n return {\n prefix: plusOrCallPrefix,\n dialCode,\n phoneNumber,\n };\n}\n\nfunction getCountryFromPhoneNumber(\n {\n dialCodes,\n dialCodeMaxLength,\n }: ReturnType<typeof getCountryDataByCountryCode>,\n internationalPhoneNumber: string,\n) {\n const { prefix } = getStructuredNumberFromInternationalNumber(\n internationalPhoneNumber,\n );\n\n if (!prefix) {\n return undefined;\n }\n\n // Try longest dial codes first - critical for US/Canada\n for (let i = dialCodeMaxLength + prefix.length; i > prefix.length; i--) {\n const dialCode = internationalPhoneNumber.slice(prefix.length, i);\n\n if (dialCodes[dialCode]) {\n return dialCodes[dialCode];\n }\n }\n\n return undefined;\n}\n\n/**\n * Creates a map of dial codes (including area codes) to country objects.\n * Handles countries like US/Canada that share +1 with different area codes.\n */\nexport function getCountryDataByCountryCode(countries: Country[]) {\n const dialCodes: Record<string, Country> = {};\n let dialCodeMaxLength = 0;\n\n countries.forEach((country) => {\n if (country.areaCodes) {\n // For countries with area codes (e.g., +1204, +1226)\n country.areaCodes.forEach((areaCode) => {\n const code = country.dialCode + areaCode;\n dialCodes[code] = country;\n if (code.length > dialCodeMaxLength) {\n dialCodeMaxLength = code.length;\n }\n });\n } else {\n // For countries with simple dial codes (e.g., +44, +351)\n dialCodes[country.dialCode] = country;\n if (country.dialCode.length > dialCodeMaxLength) {\n dialCodeMaxLength = country.dialCode.length;\n }\n }\n });\n\n return { dialCodes, dialCodeMaxLength };\n}\n\nfunction getAreaCodesFromPattern(pattern: string = '') {\n const codeGroupPattern = /\\(([^)]+)\\)/g;\n const groups = pattern.match(codeGroupPattern);\n\n if (groups?.length === 2) {\n return groups[1].replace(/\\(|\\)/g, '').split('|');\n }\n\n return undefined;\n}\n\nfunction transformSchemaToCountries(\n options: Array<{\n value: string;\n label: string;\n meta: { countryCode: string };\n pattern: string;\n }>,\n): Country[] {\n return options.map((option) => ({\n name: option.label,\n dialCode: option.meta.countryCode,\n pattern: option.pattern,\n areaCodes: getAreaCodesFromPattern(option.pattern),\n }));\n}\n\nexport function TelFieldRenderer({\n field,\n fieldState,\n fieldData,\n component: Component,\n onChangeCountryCode,\n onChangePhoneNumber,\n}: {\n field: ControllerRenderProps<FieldValues, string>;\n fieldState: ControllerFieldState;\n fieldData: TelFieldDataProps;\n component: React.ComponentType<TelFieldComponentProps>;\n onChangeCountryCode?: (newCountry: Country) => void;\n onChangePhoneNumber?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n}) {\n const { value: internationalPhoneNumber } = field;\n const { options } = fieldData;\n\n const countries = useMemo(\n () => transformSchemaToCountries(options),\n [options],\n );\n\n const countriesByCountryCode = useMemo(\n () => getCountryDataByCountryCode(countries),\n [countries],\n );\n\n // Track if the country change was due to manual selection\n const isManualSelectionRef = useRef(false);\n\n // Use state to track country, so manual selection is preserved\n const [country, setCountry] = useState<Country | undefined>(() =>\n getCountryFromPhoneNumber(\n getCountryDataByCountryCode(countries),\n internationalPhoneNumber || '',\n ),\n );\n\n // Re-detect country when phone number changes externally (e.g., form reset or area code typed)\n useEffect(() => {\n // Reset manual selection flag if field is cleared\n if (!internationalPhoneNumber || internationalPhoneNumber === '+') {\n isManualSelectionRef.current = false;\n }\n\n if (isManualSelectionRef.current) {\n return;\n }\n\n const detected = getCountryFromPhoneNumber(\n countriesByCountryCode,\n internationalPhoneNumber || '',\n );\n setCountry(detected);\n }, [internationalPhoneNumber, countriesByCountryCode]);\n\n const { prefix, phoneNumber: nationalPhoneNumber } = useMemo(\n () =>\n getStructuredNumberFromInternationalNumber(\n internationalPhoneNumber,\n country,\n ),\n [internationalPhoneNumber, country],\n );\n\n const handleCountryCodeChange = useCallback(\n (newCountry: Country) => {\n if (!newCountry) return;\n const newValue = `+${newCountry.dialCode}${nationalPhoneNumber}`;\n\n // Mark as manual selection to prevent useEffect from overriding\n isManualSelectionRef.current = true;\n\n // Update country state to preserve manual selection\n setCountry(newCountry);\n\n // Update React Hook Form state\n field.onChange(newValue);\n\n // Call optional external onChange\n if (onChangeCountryCode) {\n onChangeCountryCode(newCountry);\n }\n },\n [nationalPhoneNumber, field, onChangeCountryCode],\n );\n\n const handlePhoneNumberChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n const valueWithoutSpaces = removeSpaces(event.target.value);\n let newValue: string;\n if (country) {\n newValue = `${prefix}${country.dialCode}${valueWithoutSpaces}`;\n } else {\n newValue = `${prefix}${valueWithoutSpaces}`;\n }\n // Update React Hook Form state\n field.onChange(newValue);\n\n // Call optional external onChange\n if (onChangePhoneNumber) {\n const syntheticEvent = {\n target: { value: newValue, name: field.name },\n } as React.ChangeEvent<HTMLInputElement>;\n onChangePhoneNumber(syntheticEvent);\n }\n },\n [country, prefix, field, onChangePhoneNumber],\n );\n\n const fieldDataWithComputedValues = useMemo(\n () => ({\n ...fieldData,\n onChangeCountryCode: handleCountryCodeChange,\n onChangePhoneNumber: handlePhoneNumberChange,\n currentCountry: country,\n nationalPhoneNumber,\n }),\n [\n fieldData,\n handleCountryCodeChange,\n handlePhoneNumberChange,\n country,\n nationalPhoneNumber,\n ],\n );\n\n return (\n <Component\n field={field}\n fieldState={fieldState}\n fieldData={fieldDataWithComputedValues}\n />\n );\n}\n\nexport type TelFieldDataProps = Omit<JSFField, 'options'> & {\n onChangeCountryCode?: (newCountry: Country) => void;\n onChangePhoneNumber?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n component?: Components['tel'];\n options: {\n value: string;\n label: string;\n meta: {\n countryCode: string;\n };\n pattern: string;\n }[];\n currentCountry?: Country;\n nationalPhoneNumber?: string;\n};\n\nexport function TelField({\n name,\n description,\n label,\n onChangeCountryCode,\n onChangePhoneNumber,\n component,\n ...rest\n}: TelFieldDataProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n\n return (\n <FormField\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const Component = component || components.tel;\n if (!Component) {\n throw new Error(`Tel component not found for field ${name}`);\n }\n\n const customTelFieldProps: TelFieldDataProps = {\n name,\n description,\n label,\n ...rest,\n };\n\n return (\n <TelFieldRenderer\n field={field}\n fieldState={fieldState}\n fieldData={customTelFieldProps}\n component={Component}\n onChangeCountryCode={onChangeCountryCode}\n onChangePhoneNumber={onChangePhoneNumber}\n />\n );\n }}\n />\n );\n}\n","import { CheckBoxField } from './CheckBoxField';\nimport { DatePickerField } from './DatePickerField';\nimport { FileUploadField } from './FileUploadField';\nimport { NumberField } from './NumberField';\nimport { RadioGroupField } from './RadioGroupField';\nimport { SelectField } from './SelectField';\nimport { CountryField } from './CountryField';\nimport { TextAreaField } from './TextAreaField';\nimport { TextField } from './TextField';\nimport { EmailField } from './EmailField';\nimport { HiddenField } from './HiddenField';\nimport { WorkScheduleField } from './WorkScheduleField';\nimport { MultiSelectField } from './MultiSelectField';\nimport { MoneyField } from './MoneyField';\nimport { TelField } from './TelField';\nimport { SupportedTypes } from './types';\nimport { $TSFixMe } from '@/src/types/remoteFlows';\n\nexport const baseFields: Record<\n Exclude<SupportedTypes, 'fieldset' | 'fieldset-flat'>,\n React.ComponentType<$TSFixMe>\n> = {\n checkbox: CheckBoxField,\n text: TextField,\n email: EmailField,\n money: MoneyField,\n select: SelectField,\n 'multi-select': MultiSelectField,\n radio: RadioGroupField,\n number: NumberField,\n file: FileUploadField,\n date: DatePickerField,\n textarea: TextAreaField,\n countries: CountryField,\n hidden: HiddenField,\n tel: TelField,\n 'work-schedule': WorkScheduleField,\n};\n","import { useFormContext } from 'react-hook-form';\nimport { sanitizeHtml } from '@/src/lib/utils';\nimport { useEffect } from 'react';\nimport { ZendeskTriggerButton } from '@/src/components/shared/zendesk-drawer/ZendeskTriggerButton';\n\nconst Description = ({\n name,\n description,\n helpCenter,\n}: {\n name: string;\n description: string;\n helpCenter?: {\n callToAction: string;\n id: number;\n url: string;\n label: string;\n };\n}) => {\n return (\n <span>\n <span\n className={`text-xs RemoteFlows__ForcedValue__Description__${name}`}\n dangerouslySetInnerHTML={{ __html: sanitizeHtml(description) }}\n />\n {helpCenter?.callToAction && helpCenter?.id && (\n <ZendeskTriggerButton\n className='RemoteFlows__ForcedValue__HelpCenterLink'\n zendeskId={helpCenter.id}\n >\n {helpCenter.callToAction}\n </ZendeskTriggerButton>\n )}\n </span>\n );\n};\n\nexport type ForcedValueFieldProps = {\n name: string;\n value: string;\n description: string;\n statement?: {\n title?: string;\n description?: string;\n };\n label: string;\n helpCenter?: {\n callToAction: string;\n id: number;\n url: string;\n label: string;\n };\n};\n\nexport function ForcedValueField({\n name,\n value,\n description,\n statement,\n label,\n helpCenter,\n}: ForcedValueFieldProps) {\n const { setValue } = useFormContext();\n const descriptionSanitized = sanitizeHtml(\n statement?.description || description,\n );\n useEffect(() => {\n setValue(name, value);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const titleSanitized = statement?.title\n ? sanitizeHtml(statement?.title)\n : sanitizeHtml(label);\n\n return (\n <div>\n {titleSanitized && (\n <p\n className={`text-sm RemoteFlows__ForcedValue__Title__${name}`}\n dangerouslySetInnerHTML={{\n __html: titleSanitized,\n }}\n />\n )}\n <Description\n name={name}\n description={descriptionSanitized}\n helpCenter={helpCenter}\n />\n </div>\n );\n}\n"],"mappings":"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","names":["Fragment","useEffect","useRef","omit","jsx","DatePickerField","description","label","name","minDate","maxDate","onChange","component","rest","components","useFormFields","control","useFormContext","minDateValue","getMinStartDate","maxDateValue","FormField","field","fieldState","Component","customDatePickerFieldProps","__name","value","jsx","validateFileSize","__name","files","maxSize","file","maxSizeMB","fileSizeMB","FileUploadField","name","description","label","multiple","onChange","component","accept","rest","components","useFormFields","control","setError","clearErrors","useFormContext","handleOnChange","field","sizeError","FormField","fieldState","Component","fieldData","value","jsx","NumberField","props","components","useFormFields","control","useFormContext","Component","FormField","field","fieldState","__name","value","jsx","RadioGroupField","name","defaultValue","description","label","options","onChange","component","rest","components","useFormFields","control","useFormContext","FormField","field","fieldState","Component","customRadioGroupFieldProps","__name","value","jsx","SelectField","label","name","options","defaultValue","description","onChange","component","rest","control","useFormContext","components","useFormFields","FormField","field","fieldState","Component","customSelectFieldProps","__name","value","maybeCastValue","jsx","CountryField","label","name","options","defaultValue","description","onChange","$meta","component","rest","control","useFormContext","components","useFormFields","FormField","field","fieldState","Component","customSelectFieldProps","__name","value","jsx","TextAreaField","name","description","label","onChange","maxLength","component","rest","components","useFormFields","control","useFormContext","FormField","field","fieldState","Component","customTextAreaFieldProps","__name","evt","jsx","EmailField","props","components","useFormFields","control","useFormContext","Component","FormField","field","fieldState","__name","value","jsx","HiddenField","props","control","useFormContext","FormField","field","__name","useEffect","useState","jsx","WorkScheduleField","props","components","useFormFields","setValue","control","watch","useFormContext","watchedSchedule","currentSchedule","setCurrentSchedule","useState","workHoursSummary","breakSummary","buildWorkScheduleSummary","totalWorkHours","calculateTotalWorkHours","useEffect","onSubmit","data","__name","Component","fieldData","FormField","field","fieldState","value","jsx","MultiSelectField","label","name","options","defaultValue","description","onChange","component","rest","control","useFormContext","components","useFormFields","FormField","field","fieldState","Component","customSelectFieldProps","__name","value","jsx","MoneyField","__name","props","NumberField","useMemo","useCallback","useState","useEffect","useRef","jsx","removeSpaces","value","__name","getStructuredNumberFromInternationalNumber","internationalPhoneNumber","country","baseRegex","baseMatch","plusOrCallPrefix","dialCode","phoneNumber","getCountryFromPhoneNumber","dialCodes","dialCodeMaxLength","prefix","getCountryDataByCountryCode","countries","areaCode","code","getAreaCodesFromPattern","pattern","codeGroupPattern","groups","transformSchemaToCountries","options","option","TelFieldRenderer","field","fieldState","fieldData","Component","onChangeCountryCode","onChangePhoneNumber","useMemo","countriesByCountryCode","isManualSelectionRef","useRef","setCountry","useState","useEffect","detected","nationalPhoneNumber","handleCountryCodeChange","useCallback","newCountry","newValue","handlePhoneNumberChange","event","valueWithoutSpaces","syntheticEvent","fieldDataWithComputedValues","TelField","name","description","label","component","rest","components","useFormFields","control","useFormContext","FormField","customTelFieldProps","baseFields","CheckBoxField","TextField","EmailField","MoneyField","SelectField","MultiSelectField","RadioGroupField","NumberField","FileUploadField","DatePickerField","TextAreaField","CountryField","HiddenField","TelField","WorkScheduleField","useEffect","jsx","jsxs","Description","__name","name","description","helpCenter","sanitizeHtml","ZendeskTriggerButton","ForcedValueField","value","statement","label","setValue","useFormContext","descriptionSanitized","useEffect","titleSanitized","Fragment","jsx","jsxs","FieldSetField","label","name","fields","description","components","statement","isFlatFieldset","extra","variant","features","meta","helpCenter","watch","setValue","trigger","formState","useFormContext","formComponents","useFormFields","stateField","isExpanded","fieldNames","fieldName","watchedValues","prevValuesRef","useRef","triggerTimeoutRef","toggleExpanded","__name","useEffect","currentValues","previousValues","hasBeenSubmitted","hasChanged","i","ToggleComponent","FieldsetToggleButtonDefault","contentId","headerId","cn","ZendeskTriggerButton","sanitizeHtml","field","fieldType","fieldKey","isForcedValue","checkFieldHasForcedValue","wrapWithCustomWrapper","content","key","fieldProps","omit","ForcedValueField","FieldComponent","baseFields","Component","value","Statement"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{b as f}from"./chunk-PGWKJ6FK.js";import{a as l}from"./chunk-7ZBLKUKE.js";import{a as d}from"./chunk-NTRKVVLQ.js";import{h as m}from"./chunk-72RFYT5Y.js";import{b as s}from"./chunk-OSQ6VUDM.js";import{a as t}from"./chunk-P37U34EQ.js";import{useEffect as w}from"react";import{jsx as c}from"react/jsx-runtime";import{createElement as P}from"react";function I({defaultValues:p,onSubmit:F,components:u}){let{formId:S,onboardingBag:o}=f(),e=l({handleValidation:o.handleValidation,defaultValues:p,checkFieldUpdates:o.checkFieldUpdates});w(()=>{o.employmentId&&o?.checkFieldUpdates(e.getValues())},[]);let y=t(async(a,b)=>{let n=b?.nativeEvent;if(n?.isDraftSubmission){let{onSuccess:E,onError:i}=n.draftCallbacks;try{let r=await o.onSubmit(a);if(r?.data)E?.();else if(r?.error){let g=o.stepState.currentStep.name,h=o.meta?.fields?.[g],k=s(r?.fieldErrors||[],h);i?.({error:r.error,rawError:r.rawError,fieldErrors:k})}}catch(r){i?.({error:r,rawError:r,fieldErrors:[]})}}else await F(a)},"handleSubmit");return P(m,{...e,key:`form-${o.stepState.currentStep.name}`},c("form",{id:S,onSubmit:e.handleSubmit(y),className:"space-y-4 RemoteFlows__OnboardingForm",children:c(d,{components:u,fields:o.fields,fieldsets:o.meta.fieldsets,fieldValues:o.fieldValues})}))}t(I,"OnboardingForm");export{I as a};
|
|
2
|
+
//# sourceMappingURL=chunk-7DQY3SRL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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 { 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';\nimport { useJSONSchemaForm } from '@/src/components/form/useJSONSchemaForm';\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 form = useJSONSchemaForm({\n handleValidation: onboardingBag.handleValidation,\n defaultValues: defaultValues,\n checkFieldUpdates: onboardingBag.checkFieldUpdates,\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 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":"gPAEA,OAAS,aAAAA,MAAiB,QAqGlB,cAAAC,MAAA,oBANJ,wBAAAC,MAAA,QAvEG,SAASC,EAAe,CAC7B,cAAAC,EACA,SAAAC,EACA,WAAAC,CACF,EAAwB,CACtB,GAAM,CAAE,OAAAC,EAAQ,cAAAC,CAAc,EAAIC,EAAqB,EAEjDC,EAAOC,EAAkB,CAC7B,iBAAkBH,EAAc,iBAChC,cAAeJ,EACf,kBAAmBI,EAAc,iBACnC,CAAC,EAEDI,EAAU,IAAM,CAGVJ,EAAc,cAChBA,GAAe,kBAAkBE,EAAK,UAAU,CAAC,CAGrD,EAAG,CAAC,CAAC,EAEL,IAAMG,EAAeC,EAAA,MACnBC,EACAC,IACG,CACH,IAAMC,EAAcD,GAAO,YAE3B,GAAIC,GAAa,kBAAmB,CAElC,GAAM,CAAE,UAAAC,EAAW,QAAAC,CAAQ,EAAIF,EAAY,eAE3C,GAAI,CAEF,IAAMG,EAAW,MAAMZ,EAAc,SAASO,CAAM,EAEpD,GAAIK,GAAU,KACZF,IAAY,UACHE,GAAU,MAAO,CAC1B,IAAMC,EAAkBb,EAAc,UAAU,YAAY,KAGtDc,EACJd,EAAc,MAAM,SAClBa,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,MAAMpB,EAASU,CAAM,CAEzB,EA9CqB,gBAgDrB,OACEb,EAACwB,EAAA,CAAM,GAAGhB,EAAM,IAAK,QAAQF,EAAc,UAAU,YAAY,IAAI,IACnEP,EAAC,QACC,GAAIM,EACJ,SAAUG,EAAK,aAAaG,CAAY,EACxC,UAAU,wCAEV,SAAAZ,EAAC0B,EAAA,CACC,WAAYrB,EACZ,OAAQE,EAAc,OACtB,UAAWA,EAAc,KAAK,UAC9B,YAAaA,EAAc,YAC7B,EACF,CACF,CAEJ,CAtFgBM,EAAAX,EAAA","names":["useEffect","jsx","createElement","OnboardingForm","defaultValues","onSubmit","components","formId","onboardingBag","useOnboardingContext","form","useJSONSchemaForm","useEffect","handleSubmit","__name","values","event","nativeEvent","onSuccess","onError","response","currentStepName","currentStepFields","normalizedFieldErrors","normalizeFieldErrors","error","Form","JSONSchemaFormFields"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as d}from"./chunk-7ZBLKUKE.js";import{b as c}from"./chunk-Q3ALCPJN.js";import{a as l}from"./chunk-NTRKVVLQ.js";import{h as m}from"./chunk-72RFYT5Y.js";import{b as s}from"./chunk-OSQ6VUDM.js";import{a}from"./chunk-P37U34EQ.js";import{useEffect as f}from"react";import{jsx as F}from"react/jsx-runtime";import{createElement as V}from"react";function $({defaultValues:p,onSubmit:u,components:S}){let{formId:y,contractorOnboardingBag:o,formRef:t}=c(),r=d({handleValidation:o.handleValidation,defaultValues:p,checkFieldUpdates:o.checkFieldUpdates});f(()=>{t?.setValue&&(t.setValue.current=r.setValue)},[r.setValue,t]),f(()=>{o.employmentId&&o?.checkFieldUpdates(r.getValues())},[]);let g=a(async(n,b)=>{let i=b?.nativeEvent;if(i?.isDraftSubmission){let{onSuccess:P,onError:E}=i.draftCallbacks;try{await o.onSubmit(n),P?.()}catch(e){let C=o.stepState.currentStep.name,h=o.meta?.fields?.[C],O=s(e?.fieldErrors||[],h);E?.({error:e?.error||e,rawError:e?.rawError||e,fieldErrors:O})}}else await u(n)},"handleSubmit");return V(m,{...r,key:`form-${o.stepState.currentStep.name}`},F("form",{id:y,onSubmit:r.handleSubmit(g),className:"space-y-4 RemoteFlows__OnboardingForm",children:F(l,{components:S,fields:o.fields,fieldsets:o.meta.fieldsets,fieldValues:o.fieldValues})}))}a($,"ContractorOnboardingForm");export{$ as a};
|
|
2
|
+
//# sourceMappingURL=chunk-7SRRP2D6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/ContractorOnboarding/components/ContractorOnboardingForm.tsx"],"sourcesContent":["import { useEffect } from 'react';\nimport { $TSFixMe, JSFFields } from '@/src/types/remoteFlows';\nimport { JSONSchemaFormFields } from '@/src/components/form/JSONSchemaForm';\nimport { Form } from '@/src/components/ui/form';\nimport { BasicInformationFormPayload } from '@/src/flows/Onboarding/types';\nimport { Components } from '@/src/types/remoteFlows';\nimport { useContractorOnboardingContext } from '@/src/flows/ContractorOnboarding/context';\nimport {\n EligibilityQuestionnaireFormPayload,\n PricingPlanFormPayload,\n ContractorOnboardingContractDetailsFormPayload,\n} from '@/src/flows/ContractorOnboarding/types';\nimport { normalizeFieldErrors } from '@/src/lib/mutations';\nimport { useJSONSchemaForm } from '@/src/components/form/useJSONSchemaForm';\n\ntype ContractorOnboardingFormProps = {\n onSubmit: (\n payload:\n | BasicInformationFormPayload\n | PricingPlanFormPayload\n | ContractorOnboardingContractDetailsFormPayload\n | EligibilityQuestionnaireFormPayload,\n ) => Promise<void>;\n components?: Components;\n fields?: JSFFields;\n defaultValues: Record<string, unknown>;\n};\n\nexport function ContractorOnboardingForm({\n defaultValues,\n onSubmit,\n components,\n}: ContractorOnboardingFormProps) {\n const { formId, contractorOnboardingBag, formRef } =\n useContractorOnboardingContext();\n\n const form = useJSONSchemaForm({\n handleValidation: contractorOnboardingBag.handleValidation,\n defaultValues,\n checkFieldUpdates: contractorOnboardingBag.checkFieldUpdates,\n });\n\n // Register the form's setValue method with the context so other components can access it\n useEffect(() => {\n if (formRef?.setValue) {\n formRef.setValue.current = form.setValue;\n }\n }, [form.setValue, formRef]);\n\n useEffect(() => {\n // When the employmentId is set,\n // we need to run the checkFieldUpdates to update fieldValues in useStepState\n if (contractorOnboardingBag.employmentId) {\n contractorOnboardingBag?.checkFieldUpdates(form.getValues());\n }\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 const { onSuccess, onError } = nativeEvent.draftCallbacks;\n\n try {\n await contractorOnboardingBag.onSubmit(values);\n onSuccess?.();\n } catch (error: $TSFixMe) {\n const currentStepName =\n contractorOnboardingBag.stepState.currentStep.name;\n const currentStepFields =\n contractorOnboardingBag.meta?.fields?.[\n currentStepName as keyof typeof contractorOnboardingBag.meta.fields\n ];\n\n const normalizedFieldErrors = normalizeFieldErrors(\n error?.fieldErrors || [],\n currentStepFields,\n );\n onError?.({\n error: error?.error || (error as Error),\n rawError: error?.rawError || (error as Record<string, unknown>),\n fieldErrors: normalizedFieldErrors,\n });\n }\n } else {\n await onSubmit(values as $TSFixMe);\n }\n };\n\n return (\n <Form\n {...form}\n key={`form-${contractorOnboardingBag.stepState.currentStep.name}`}\n >\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={contractorOnboardingBag.fields}\n fieldsets={contractorOnboardingBag.meta.fieldsets}\n fieldValues={contractorOnboardingBag.fieldValues}\n />\n </form>\n </Form>\n );\n}\n"],"mappings":"2OAAA,OAAS,aAAAA,MAAiB,QAuGlB,cAAAC,MAAA,oBATJ,wBAAAC,MAAA,QAlEG,SAASC,EAAyB,CACvC,cAAAC,EACA,SAAAC,EACA,WAAAC,CACF,EAAkC,CAChC,GAAM,CAAE,OAAAC,EAAQ,wBAAAC,EAAyB,QAAAC,CAAQ,EAC/CC,EAA+B,EAE3BC,EAAOC,EAAkB,CAC7B,iBAAkBJ,EAAwB,iBAC1C,cAAAJ,EACA,kBAAmBI,EAAwB,iBAC7C,CAAC,EAGDK,EAAU,IAAM,CACVJ,GAAS,WACXA,EAAQ,SAAS,QAAUE,EAAK,SAEpC,EAAG,CAACA,EAAK,SAAUF,CAAO,CAAC,EAE3BI,EAAU,IAAM,CAGVL,EAAwB,cAC1BA,GAAyB,kBAAkBG,EAAK,UAAU,CAAC,CAG/D,EAAG,CAAC,CAAC,EAEL,IAAMG,EAAeC,EAAA,MACnBC,EACAC,IACG,CACH,IAAMC,EAAcD,GAAO,YAE3B,GAAIC,GAAa,kBAAmB,CAClC,GAAM,CAAE,UAAAC,EAAW,QAAAC,CAAQ,EAAIF,EAAY,eAE3C,GAAI,CACF,MAAMV,EAAwB,SAASQ,CAAM,EAC7CG,IAAY,CACd,OAASE,EAAiB,CACxB,IAAMC,EACJd,EAAwB,UAAU,YAAY,KAC1Ce,EACJf,EAAwB,MAAM,SAC5Bc,CACF,EAEIE,EAAwBC,EAC5BJ,GAAO,aAAe,CAAC,EACvBE,CACF,EACAH,IAAU,CACR,MAAOC,GAAO,OAAUA,EACxB,SAAUA,GAAO,UAAaA,EAC9B,YAAaG,CACf,CAAC,CACH,CACF,MACE,MAAMnB,EAASW,CAAkB,CAErC,EAjCqB,gBAmCrB,OACEd,EAACwB,EAAA,CACE,GAAGf,EACJ,IAAK,QAAQH,EAAwB,UAAU,YAAY,IAAI,IAE/DP,EAAC,QACC,GAAIM,EACJ,SAAUI,EAAK,aAAaG,CAAY,EACxC,UAAU,wCAEV,SAAAb,EAAC0B,EAAA,CACC,WAAYrB,EACZ,OAAQE,EAAwB,OAChC,UAAWA,EAAwB,KAAK,UACxC,YAAaA,EAAwB,YACvC,EACF,CACF,CAEJ,CApFgBO,EAAAZ,EAAA","names":["useEffect","jsx","createElement","ContractorOnboardingForm","defaultValues","onSubmit","components","formId","contractorOnboardingBag","formRef","useContractorOnboardingContext","form","useJSONSchemaForm","useEffect","handleSubmit","__name","values","event","nativeEvent","onSuccess","onError","error","currentStepName","currentStepFields","normalizedFieldErrors","normalizeFieldErrors","Form","JSONSchemaFormFields"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{b as i}from"./chunk-KFYWUBRS.js";import{f as t}from"./chunk-72RFYT5Y.js";import{a as n}from"./chunk-P37U34EQ.js";import{useEffect as c,useRef as d}from"react";import f from"fast-deep-equal";function U({handleValidation:a,defaultValues:o,checkFieldUpdates:m}){let u=i(a),r=d(o),s=t({resolver:u,defaultValues:o,shouldUnregister:!1,mode:"onBlur"});return c(()=>{let l=s?.watch(e=>{!f(e,r.current)&&(m(e),r.current=JSON.parse(JSON.stringify(e)))});return()=>l?.unsubscribe()},[]),s}n(U,"useJSONSchemaForm");export{U as a};
|
|
2
|
+
//# sourceMappingURL=chunk-7ZBLKUKE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/form/useJSONSchemaForm.tsx"],"sourcesContent":["import { FieldValues, useForm, UseFormReturn } from 'react-hook-form';\nimport { useEffect, useRef } from 'react';\nimport equal from 'fast-deep-equal';\nimport { useJsonSchemasValidationFormResolver } from '@/src/components/form/validationResolver';\nimport { $TSFixMe } from '@/src/types/remoteFlows';\nimport { ValidationResult } from '@remoteoss/remote-json-schema-form-kit';\n\ntype UseJsonSchemaFormOptions = {\n handleValidation: (values: FieldValues) => Promise<ValidationResult | null>;\n defaultValues: Record<string, unknown>;\n checkFieldUpdates: (values: FieldValues) => void;\n};\n\nexport function useJSONSchemaForm({\n handleValidation,\n defaultValues,\n checkFieldUpdates,\n}: UseJsonSchemaFormOptions): UseFormReturn<$TSFixMe> {\n const resolver = useJsonSchemasValidationFormResolver(handleValidation);\n const prevValuesRef = useRef(defaultValues);\n\n const form = useForm({\n resolver,\n defaultValues,\n shouldUnregister: false,\n mode: 'onBlur',\n });\n // Watch form changes and trigger checkFieldUpdates\n useEffect(() => {\n const subscription = form?.watch((values) => {\n const hasChanged = !equal(values, prevValuesRef.current);\n if (hasChanged) {\n checkFieldUpdates(values);\n prevValuesRef.current = JSON.parse(JSON.stringify(values));\n }\n });\n return () => subscription?.unsubscribe();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return form;\n}\n"],"mappings":"wHACA,OAAS,aAAAA,EAAW,UAAAC,MAAc,QAClC,OAAOC,MAAW,kBAWX,SAASC,EAAkB,CAChC,iBAAAC,EACA,cAAAC,EACA,kBAAAC,CACF,EAAsD,CACpD,IAAMC,EAAWC,EAAqCJ,CAAgB,EAChEK,EAAgBC,EAAOL,CAAa,EAEpCM,EAAOC,EAAQ,CACnB,SAAAL,EACA,cAAAF,EACA,iBAAkB,GAClB,KAAM,QACR,CAAC,EAED,OAAAQ,EAAU,IAAM,CACd,IAAMC,EAAeH,GAAM,MAAOI,GAAW,CACxB,CAACC,EAAMD,EAAQN,EAAc,OAAO,IAErDH,EAAkBS,CAAM,EACxBN,EAAc,QAAU,KAAK,MAAM,KAAK,UAAUM,CAAM,CAAC,EAE7D,CAAC,EACD,MAAO,IAAMD,GAAc,YAAY,CAEzC,EAAG,CAAC,CAAC,EAEEH,CACT,CA5BgBM,EAAAd,EAAA","names":["useEffect","useRef","equal","useJSONSchemaForm","handleValidation","defaultValues","checkFieldUpdates","resolver","useJsonSchemasValidationFormResolver","prevValuesRef","useRef","form","useForm","useEffect","subscription","values","equal","__name"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as o}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b as o}from"./chunk-ET4QWXWY.js";import{a as e}from"./chunk-P37U34EQ.js";import{jsx as t}from"react/jsx-runtime";function p({helpCenter:r}){return!r||!r.id||!r.callToAction?null:t(o,{zendeskId:r.id,children:r.callToAction})}e(p,"HelpCenter");export{p as a};
|
|
2
|
+
//# sourceMappingURL=chunk-AL37BOFX.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as d,b as w}from"./chunk-5EDCZGZV.js";import{a as g}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as d,b as w}from"./chunk-5EDCZGZV.js";import{a as g}from"./chunk-VKKORLLM.js";import{a as E}from"./chunk-JR6VISHQ.js";import{e as C}from"./chunk-FFVTWWGX.js";import{P as F,e as _,z as P}from"./chunk-O5XQUEB5.js";import{a as h}from"./chunk-OSQ6VUDM.js";import{a as j}from"./chunk-TSPDJUGG.js";import{d as c}from"./chunk-KQPDXXG3.js";import{a as e}from"./chunk-P37U34EQ.js";import{useMutation as b,useQuery as I}from"@tanstack/react-query";var B=e(({countryCode:n,employment:r,fieldValues:a,options:t})=>{let{client:u}=c(),m=t?.jsonSchemaVersion?.contract_amendments?{json_schema_version:t.jsonSchemaVersion.contract_amendments}:{};return I({queryKey:["contract-amendment-schema"],retry:!1,queryFn:e(async()=>{let o=await _({client:u,headers:{Authorization:""},query:{employment_id:r?.id,country_code:n,...m}});if(o.error||!o.data)throw new Error("Failed to fetch contract amendment schema");return o},"queryFn"),enabled:!!r,select:e(({data:o})=>{let l=o?.data||{};return E(l,a,t)},"select")})},"useContractAmendmentSchemaQuery"),J=e(n=>{let{client:r}=c(),a=n?.jsonSchemaVersion?.contract_amendments?{json_schema_version:n.jsonSchemaVersion.contract_amendments}:{};return b({mutationFn:e(t=>P({client:r,headers:{Authorization:""},body:t,query:{...a}}),"mutationFn")})},"useCreateContractAmendmentMutation"),K=e(n=>{let{client:r}=c(),a=n?.jsonSchemaVersion?.contract_amendments?{json_schema_version:n.jsonSchemaVersion.contract_amendments}:{};return b({mutationFn:e(t=>F({client:r,headers:{Authorization:""},body:t,query:{...a}}),"mutationFn")})},"useAutomatableContractAmendmentMutation"),te=e(({employmentId:n,countryCode:r,options:a})=>{let{fieldValues:t,setFieldValues:u,stepState:m,nextStep:o,previousStep:l}=j(d),{data:i,isLoading:v,isError:q,error:Q}=g({employmentId:n,queryParams:{exclude_files:!0}}),{data:s,isLoading:L,isError:M,error:T}=B({employment:i,countryCode:r,fieldValues:{...m.values?.[m.currentStep.name],...t},options:a}),k=w(i,s?.fields),S=J(a),A=K(a);async function x(p){let f=await C(p,s?.fields||[],{isPartialValidation:!1}),V={employment_id:i?.id,amendment_contract_id:i?.active_contract_id,contract_amendment:{...f}};switch(m.currentStep.name){case d.form.name:{let{mutateAsync:y}=h(A),H=await y(V);return o(),H}case d.confirmation_form.name:{let{mutateAsync:y}=h(S);return y(V)}default:throw new Error("Invalid step state")}}e(x,"onSubmit");async function z(p){if(s){let f=await C(p,s?.fields);return s?.handleValidation(f)}return null}e(z,"handleValidation");function O(){l()}return e(O,"back"),{stepState:m,fields:s?.fields||[],isLoading:v||L,isError:q||M,error:Q||T,isSubmitting:A.isPending||S.isPending,initialValues:k,values:t,handleValidation:z,checkFieldUpdates:u,onSubmit:x,back:O}},"useContractAmendment");export{te as a};
|
|
2
|
+
//# sourceMappingURL=chunk-ALF55LF2.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as S}from"./chunk-3UDRMQNE.js";import{a as C}from"./chunk-64AJX2DH.js";import{b as p}from"./chunk-OJTYP5W7.js";import{a as m}from"./chunk-VDRNNOVA.js";import{d as b}from"./chunk-AHRG5QCS.js";import{a as g,h as v,i as y}from"./chunk-PX5PE6GX.js";import{a as f,b as _}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as S}from"./chunk-3UDRMQNE.js";import{a as C}from"./chunk-64AJX2DH.js";import{b as p}from"./chunk-OJTYP5W7.js";import{a as m}from"./chunk-VDRNNOVA.js";import{d as b}from"./chunk-AHRG5QCS.js";import{a as g,h as v,i as y}from"./chunk-PX5PE6GX.js";import{a as f,b as _}from"./chunk-ET4QWXWY.js";import{a as t}from"./chunk-P37U34EQ.js";import{format as w}from"date-fns";import{Fragment as R,jsx as u,jsxs as M}from"react/jsx-runtime";var E=t(n=>n===g,"isStandardPricingPlan"),P=t((n,i)=>{let e=i&&i<w(new Date,"yyyy-MM-dd");if(!n&&e)return p({severity:"warning",description:"Backdating the service start date is not supported in the selected Contractor Management plan."})},"showBackDateWarning");function I(n,i,e){e({...i,services_and_deliverables_ai_warning:"",services_and_deliverables_error_skippable:!1})}t(I,"onServicesAndDeliverablesChange");var V=t((n,i,e,r,o)=>{let s=E(e),c=r?.service_duration?.provisional_start_date,l=P(s,c),a=p({severity:"warning",title:"Possible misclassification risk",description:o?y:v});return{...n,create:{...n?.create,services_and_deliverables_ai_warning:{type:"string","x-jsf-presentation":{inputType:"hidden"}},services_and_deliverables_error_skippable:{type:"boolean","x-jsf-presentation":{inputType:"hidden"}}},fields:{...n?.fields,"service_duration.provisional_start_date":{description:i,"x-jsf-presentation":{minDate:s?void 0:w(new Date,"yyyy-MM-dd"),...l}},services_and_deliverables:{onChange:I,"x-jsf-presentation":{calculateDynamicProperties:t(d=>({statement:d.services_and_deliverables_ai_warning?a.statement:void 0}),"calculateDynamicProperties")}}}}},"buildContractDetailsJsfModify"),L=t((n,i,e)=>{let r=n==="SAU",o=n==="GBR",s=b(n);if(!r&&!o&&!s)return e?.jsfModify?.basic_information;if(o)return{...e?.jsfModify?.basic_information,create:{...e?.jsfModify?.basic_information?.create,ir35:{title:"IR35 Status",description:t(()=>M(R,{children:["What's your contractor's employment status?"," ",u(_,{zendeskId:f.ir35Status,children:"Learn more about IR35"})]}),"description"),oneOf:[{const:"inside",title:"Inside IR35 (deemed employee)"},{const:"outside",title:"Outside IR35"},{const:"exempt",title:"Exempt from IR35"}],"x-jsf-presentation":{inputType:"select"}},ir35_sds_file:{title:"Upload SDS",description:"Status determination statement",type:"string","x-jsf-presentation":{inputType:"file",accept:m.document,multiple:!1,maxSize:20971520,calculateDynamicProperties:t(a=>{let d=a.ir35;return{isVisible:d==="inside"||d==="outside"}},"calculateDynamicProperties")}}},allOf:[{if:{properties:{ir35:{enum:["inside","outside"]}}},then:{required:["ir35_sds_file"]},else:{properties:{ir35_sds_file:!1}}}],required:["ir35"],orderRoot:t(a=>[...a,"ir35","ir35_sds_file"],"orderRoot")};let c=r?"Is your contractor a Saudi Arabia national, or a non-Saudi national contracting via a local business entity or under a Special Privilege Iqama visa?":`Is the contractor a ${i??"selected country"} national, or a non-${i??"selected country"} national contracting through their local business entity?`,l=r?"Please be aware that contracting with non-Saudi Arabia nationals that are not operating as a company or under a Special Privilege Iqama visa can lead to fines for operating without proper work authorization. If you are concerned, please speak with the Contractor and/or local Saudi Arabia counsel to ensure compliance.":`Be aware that the Contractor must be a ${i??"selected country"} national, or a non-${i??"selected country"} national operating through their company to comply with the legal requirements for performing services and deliverables as a contractor in ${i??"selected country"}. If you are concerned, speak with the Contractor and/or local counsel to ensure compliance.`;return{...e?.jsfModify?.basic_information,create:{...e?.jsfModify?.basic_information?.create,nationality_status:{title:c,description:"",type:"string",oneOf:[{const:"national",description:"",title:"Yes"},{const:"non-national",description:l,title:"No"}],"x-jsf-presentation":{inputType:"radio"}}},required:["nationality_status"],orderRoot:t(a=>[...a,"nationality_status"],"orderRoot")}},"buildBasicInformationJsfModify"),J=t((n,i)=>{let e=n?.jsfModify?.contract_preview?.fields;return{fields:{contract_preview_header:{...e?.contract_preview_header,"x-jsf-presentation":{Component:t(r=>{let o=e?.contract_preview_header?.["x-jsf-presentation"]?.Component||S;return u(o,{...r})},"Component")}},contract_preview_statement:{...e?.contract_preview_statement,"x-jsf-presentation":{Component:t(r=>{let o=e?.contract_preview_statement?.["x-jsf-presentation"]?.Component||C;return u(o,{reviewCompleted:!!i?.review_completed,...r})},"Component")}},signature:{...e?.signature,"x-jsf-presentation":{calculateDynamicProperties:t(r=>({isVisible:!!r.review_completed}),"calculateDynamicProperties"),...e?.signature?.["x-jsf-presentation"]}}}}},"buildContractPreviewJsfModify");export{V as a,L as b,J as c};
|
|
2
|
+
//# sourceMappingURL=chunk-B7HGVWIT.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as s}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as s}from"./chunk-7SRRP2D6.js";import{b as e}from"./chunk-Q3ALCPJN.js";import{m as n}from"./chunk-OSQ6VUDM.js";import{a as t}from"./chunk-P37U34EQ.js";import{jsx as f}from"react/jsx-runtime";function b({onSubmit:m,onSuccess:d,onError:c}){let{contractorOnboardingBag:o}=e(),p=t(async i=>{try{let a=await o.parseFormValues(i);await m?.(a);let r=await o.onSubmit(i);if(r?.data){await d?.(r?.data),o?.next();return}}catch(a){let r=n(a,o.meta?.fields?.basic_information);c?.(r)}},"handleSubmit"),l=o.stepState.values?.basic_information||o.initialValues.basic_information;return f(s,{defaultValues:l,onSubmit:p})}t(b,"BasicInformationStep");export{b as a};
|
|
2
|
+
//# sourceMappingURL=chunk-BC2H7WGB.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as n,b as i}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as n,b as i}from"./chunk-ET4QWXWY.js";import{c as e}from"./chunk-OSQ6VUDM.js";import{a as o}from"./chunk-P37U34EQ.js";import{Fragment as s,jsx as t,jsxs as r}from"react/jsx-runtime";var l=["You submit your termination request.","Remote reviews your request along with the employment agreement, local labor laws, and any collective bargaining agreements in place.","A lifecycle specialist contacts you if they need additional details. Sometimes they will request a call.","Depending on the country-specific laws and the terms of the employment agreement, Remote may need to seek additional legal advice. We\u2019ll let you know if there are additional charges before proceeding.","Terms and conditions for the termination are finalized.","You verbally communicate the termination to the employee.","Remote shares termination documents with the employee.","The employee signs the termination documents if required.","Remote processes the final salary and offboards the employee."],f=o(()=>r(s,{children:[t("h3",{className:e("RemoteFlows__TerminationDialogInfoContent__Title"),children:"Please read carefully before you continue"}),t("p",{className:e("RemoteFlows__TerminationDialogInfoContent__Description"),children:"Please do not inform the employee of the termination. Remote will lead communication with them after you submit this form and they finalize the termination terms."}),t("p",{className:e("RemoteFlows__TerminationDialogInfoContent__Description RemoteFlows__TerminationDialogInfoContent__FollowUpDescription"),children:"If you already informed them, that's okay. Remote will ask for the details regarding that communication and they'll take it from there."}),t(i,{className:e("RemoteFlows__TerminationDialogInfoContent__ZendeskTriggerButton text-sm"),zendeskId:n.terminationEmployeeCommunication,children:"Learn more about employee communication"}),t("h3",{className:e("RemoteFlows__TerminationDialogInfoContent__ProcessTitle"),children:"The termination process"}),t("ul",{className:e("RemoteFlows__TerminationDialogInfoContent__ProcessList list-disc list-inside"),children:l.map((a,m)=>t("li",{className:e("RemoteFlows__TerminationDialogInfoContent__ProcessListItem"),children:a},m))})]}),"TerminationDialogInfoContent");export{f as a};
|
|
2
|
+
//# sourceMappingURL=chunk-CMR5CIYN.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as g,b as k,c as b}from"./chunk-6SDLOAEO.js";import{a as P}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as g,b as k,c as b}from"./chunk-6SDLOAEO.js";import{a as P}from"./chunk-AL37BOFX.js";import{b as F}from"./chunk-XADVV6OP.js";import{j as D,k as w,l as v,m as x,n as h}from"./chunk-72RFYT5Y.js";import{c as m}from"./chunk-OSQ6VUDM.js";import{a}from"./chunk-P37U34EQ.js";import{CalendarIcon as B}from"lucide-react";import{format as N}from"date-fns";import{ChevronLeft as I,ChevronRight as L}from"lucide-react";import{DayPicker as O}from"react-day-picker";import{jsx as f}from"react/jsx-runtime";function c({className:t,classNames:n,showOutsideDays:i=!0,...o}){return f(O,{showOutsideDays:i,className:m("p-3",t),classNames:{months:"flex flex-col sm:flex-row gap-4",month:"flex flex-col gap-y-4",month_caption:"flex h-8 w-full items-center justify-center relative",caption_label:"font-medium text-sm mt-1",nav:"flex items-center justify-between absolute left-0 right-0 z-10",month_grid:"w-full border-collapse mt-1",weekdays:"flex",weekday:"text-muted-foreground rounded-md w-9 font-normal text-[0.8rem]",week:"flex w-full mt-2",day:"h-9 w-9 text-center text-sm p-0 relative",...n},components:{Chevron:a(({orientation:s,...r})=>s==="left"?f(I,{...r}):f(L,{...r}),"Chevron")},...o})}a(c,"Calendar");c.displayName="Calendar";import{useState as T}from"react";import{Fragment as V,jsx as e,jsxs as d}from"react/jsx-runtime";function Y({field:t,fieldData:n,fieldState:i}){let{name:o,label:s,description:r,minDate:u,maxDate:C}=n,p=u?new Date(u):void 0,_=C?new Date(C):void 0,[R,y]=T(!1);return d(D,{"data-field":o,className:`flex flex-col RemoteFlows__DatePickerField__Item__${o}`,children:[e(w,{className:"RemoteFlows__DatePickerField__Label",children:s}),d(g,{open:R,onOpenChange:y,children:[e(k,{asChild:!0,children:e(v,{children:e("div",{children:d(F,{type:"button",variant:"outline",className:m("w-full pl-3 text-left font-normal",!t.value&&"text-muted-foreground"),"data-testid":`date-picker-button-${o}`,children:[t.value&&e(V,{children:N(t.value,"yyyy-MM-dd")}),e(B,{className:"ml-auto h-4 w-4 opacity-50"})]})})})}),e(b,{className:"w-auto p-0 RemoteFlows__DatepickerField__PopoverContent",align:"start",children:e(c,{mode:"single",className:"RemoteFlows__DatepickerField__Calendar",selected:t.value?new Date(t.value):void 0,onDayClick:l=>{let M=N(l,"yyyy-MM-dd");t.onChange(M),y(!1)},defaultMonth:p,disabled:l=>!!(p&&l<p||_&&l>_)})})]}),r?e(x,{helpCenter:e(P,{helpCenter:n.meta?.helpCenter}),children:r}):null,i.error&&e(h,{className:"RemoteFlows__DatePickerField__Error"})]})}a(Y,"DatePickerFieldDefault");export{Y as a};
|
|
2
|
+
//# sourceMappingURL=chunk-CODZ7A6U.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as m}from"./chunk-VDVWAYXP.js";import{a as r}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as m}from"./chunk-VDVWAYXP.js";import{a as r}from"./chunk-SW7DKXXK.js";import{a}from"./chunk-U6LRMWRI.js";import{a as c}from"./chunk-ALF55LF2.js";import{a as e}from"./chunk-D5AR26AI.js";import{a as o}from"./chunk-TVZAFTPT.js";import{a as n}from"./chunk-P37U34EQ.js";import{useId as f}from"react";import{jsx as s}from"react/jsx-runtime";function k({employmentId:d,countryCode:C,options:p,render:A}){let t=c({employmentId:d,countryCode:C,options:p}),i=f();return s(o.Provider,{value:{formId:i,contractAmendmentBag:t},children:A({contractAmendmentBag:t,components:{Form:r,SubmitButton:a,ConfirmationForm:m,BackButton:e}})})}n(k,"ContractAmendmentFlow");export{k as a};
|
|
2
|
+
//# sourceMappingURL=chunk-DHLSO7BU.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as m}from"./chunk-KRJETP7I.js";import{a}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as m}from"./chunk-KRJETP7I.js";import{a}from"./chunk-ZSBQDVXM.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-HI7TK62N.js";import{a as n}from"./chunk-6QJZMW6S.js";import{a as p}from"./chunk-OVA2X5BB.js";import{a as s}from"./chunk-MVPXUUUE.js";import{c as e}from"./chunk-MGVJ2TKE.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-DR25AW5C.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as d}from"./chunk-UN4RAIAR.js";import{a as c}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as d}from"./chunk-UN4RAIAR.js";import{a as c}from"./chunk-7SRRP2D6.js";import{b as s}from"./chunk-Q3ALCPJN.js";import{c as l}from"./chunk-AHRG5QCS.js";import{m as e}from"./chunk-OSQ6VUDM.js";import{a}from"./chunk-P37U34EQ.js";import{jsx as m,jsxs as g}from"react/jsx-runtime";function O({onSubmit:p,onSuccess:u,onError:S}){let{contractorOnboardingBag:r}=s(),C=a(async n=>{try{let t=await r.parseFormValues(n);await p?.(t);let o=await r.onSubmit(n);if(o?.data){await u?.(o?.data),r?.next();return}}catch(t){let o=e(t,r.meta?.fields?.contract_details);S?.(o)}},"handleSubmit"),f=r.stepState.values?.contract_details||r.initialValues.contract_details,i=r.stepState.values?.pricing_plan?.subscription,b=l(i);return g("div",{className:"space-y-4",children:[m(c,{defaultValues:f,onSubmit:C}),b&&m(d,{subscription:i})]})}a(O,"ContractDetailsStep");export{O as a};
|
|
2
|
+
//# sourceMappingURL=chunk-EN5ZMAYF.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{k as g}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{k as g}from"./chunk-O5XQUEB5.js";import{c as m,h as u}from"./chunk-OSQ6VUDM.js";import{b as f,d as b}from"./chunk-KQPDXXG3.js";import{a as e}from"./chunk-P37U34EQ.js";var P={disclaimerCostCalculator:4668194326797,engagingContractors:43161434169613,employeeOnboardingTimeline:4411262104589,extraPayments:4466822781709,internationalPricing:4410698586893,pricingPlanOptions:43161720465421,ir35Status:42810224523917,remoteFxRate:33271144977421,terminationEmployeeCommunication:4411585179661,terminationNoticePeriods:5831900985613,involuntaryOffboardingServiceCharge:4406932229133,reconciliationInvoice:17604014808589},l=e(r=>`https://support.remote.com/hc/en-us/articles/${r}`,"buildZendeskURL");import{useQuery as y}from"@tanstack/react-query";var k=e((r,t)=>{let{client:i}=b();return y({queryKey:["zendesk-article",r],queryFn:e(async()=>{let n=await g({client:i,path:{id:Number(r)}});if(n.error)throw new Error(n.error.message||"Failed to fetch article");return n},"queryFn"),select:e(n=>{let o=n.data?.data.help_center_article;return o&&{...o,body:u(o.body||"")}},"select"),retry:!1,...t})},"useZendeskArticle");import{jsx as R}from"react/jsx-runtime";var C=e(({Trigger:r,zendeskId:t,open:i,onClose:n})=>{let{components:o}=f(),c=l(t),s=e(()=>{n?.()},"handleClose"),{data:a,isLoading:h,error:w}=k(t,{enabled:i}),p=o?.zendeskDrawer;if(!p)throw new Error("Zendesk drawer component not found");return R(p,{open:i,onClose:s,data:a,isLoading:h,error:w,zendeskURL:c,Trigger:r})},"ZendeskDrawer");import{useState as x}from"react";import{jsx as d}from"react/jsx-runtime";var Z="RemoteFlows__ZendeskTriggerButton text-blue-500 hover:underline inline-block text-xs bg-transparent border-none cursor-pointer p-0";function Q({zendeskId:r,className:t,onClick:i,children:n,external:o=!1}){let[c,s]=x(!1),a=e(()=>{o||s(!0),i?.(r)},"handleClick");return o?d("a",{href:l(r),target:"_blank",rel:"noopener noreferrer",onClick:a,className:m(Z,t),children:n}):d(C,{zendeskId:r,open:c,onClose:()=>s(!1),Trigger:d("button",{onClick:a,className:m(Z,t),children:n})})}e(Q,"ZendeskTriggerButton");export{P as a,Q as b};
|
|
2
|
+
//# sourceMappingURL=chunk-ET4QWXWY.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as s}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as s}from"./chunk-JBOUDOIM.js";import{a as e}from"./chunk-P37U34EQ.js";import{jsx as i}from"react/jsx-runtime";var l=e(({currency:n,desiredCurrency:o,annual_gross_salary_conversion_properties:r,...a})=>i(s,{...a,sourceCurrency:n,targetCurrency:o,conversionFieldName:"annual_gross_salary_conversion",conversionProperties:{...r,description:r?.description||"Estimated amount. This is an estimation. We calculate conversions based on spot rates that are subject to fluctuation over time."},classNamePrefix:"RemoteFlows-AnnualGrossSalary",conversionType:"no_spread"}),"AnnualGrossSalary");export{l as a};
|
|
2
|
+
//# sourceMappingURL=chunk-GFM747IZ.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as s}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as s}from"./chunk-2OGPILJM.js";import{b as m}from"./chunk-76ZDXC2T.js";import{m as i}from"./chunk-OSQ6VUDM.js";import{a}from"./chunk-P37U34EQ.js";import{jsx as d}from"react/jsx-runtime";function l({onSubmit:c,onSuccess:p,onError:t}){let{createCompanyBag:o}=m(),u=a(async r=>{try{await c?.({countryCode:r.country_code,companyOwnerEmail:r.company_owner_email,companyOwnerName:r.company_owner_name,desiredCurrency:r.desired_currency,name:r.name,phoneNumber:r.phone_number,taxNumber:r.tax_number});let n=await o.onSubmit(r);if(n?.data){await p?.(n?.data),o?.next();return}if(n?.error){let e=i(n,o.meta?.fields?.company_basic_information);t?.(e)}}catch(n){let e=i(n,o.meta?.fields?.company_basic_information);t?.(e)}},"handleSubmit"),f=o.stepState.values?.company_basic_information||o.initialValues.company_basic_information;return d(s,{defaultValues:f,onSubmit:u})}a(l,"CompanyBasicInformationStep");export{l as a};
|
|
2
|
+
//# sourceMappingURL=chunk-GLJV3B55.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{K as e}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{K as e}from"./chunk-O5XQUEB5.js";import{a as t}from"./chunk-P37U34EQ.js";import{queryOptions as i}from"@tanstack/react-query";var a=t((o,n="default")=>i({queryKey:["countries",n],retry:!1,queryFn:t(async()=>{let r=await e({client:o,headers:{Authorization:""}});if(r.error||!r.data)throw new Error("Failed to fetch supported countries");return r},"queryFn")}),"countriesOptions");export{a};
|
|
2
|
+
//# sourceMappingURL=chunk-HBX37YK2.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as e}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as e}from"./chunk-XO4DAKV7.js";import{b as a}from"./chunk-MRYRNB7Y.js";import{a as i}from"./chunk-P37U34EQ.js";import{jsx as s}from"react/jsx-runtime";function d({onSubmit:m}){let{terminationBag:o}=a(),r=i(async t=>{let n=await o?.parseFormValues(t);await m?.(n),o?.next()},"handleSubmit");return s(e,{defaultValues:o.fieldValues,onSubmit:r})}i(d,"PaidTimeOffForm");export{d as a};
|
|
2
|
+
//# sourceMappingURL=chunk-HGBOZH6Q.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as I}from"./chunk-TXSUZLOI.js";import{a as N}from"./chunk-A3LRPGV3.js";import{a as j,b as v,c as D,d as O}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b as I}from"./chunk-TXSUZLOI.js";import{a as N}from"./chunk-A3LRPGV3.js";import{a as j,b as v,c as D,d as O}from"./chunk-SBTZUZDR.js";import{e as p,f as F}from"./chunk-FFVTWWGX.js";import{a as C,j as R,k as b}from"./chunk-OSQ6VUDM.js";import{a as k}from"./chunk-TSPDJUGG.js";import{a as c}from"./chunk-P37U34EQ.js";import{useMemo as S,useRef as ee,useState as A}from"react";var pe=c(({countryCode:L,options:u,initialValues:l})=>{let P=j(),g=v(),{mutateAsync:q}=C(P),{mutateAsync:J}=C(g),[y,U]=A(L||null),[f,B]=A(null),w=ee({company_basic_information:{},address_details:{}}),{fieldValues:V,stepState:a,setFieldValues:W,previousStep:z,nextStep:G,goToStep:H}=k(N),{companyBasicInformationForm:d,isLoading:K}=D({jsfModify:u?.jsfModify?.company_basic_information,queryOptions:{enabled:a.currentStep.name==="company_basic_information"}}),{data:s,isLoading:Q}=O({countryCode:y,fieldValues:a.currentStep.name==="address_details"?{...a.values?.address_details||{},...V}:a.values?.address_details||{},options:{...u,jsfModify:u?.jsfModify?.address_details,queryOptions:{enabled:a.currentStep.name==="address_details"&&!!y&&!!f}}}),i=S(()=>({company_basic_information:d?.fields||[],address_details:s?.fields||[]}),[d?.fields,s?.fields]),X={company_basic_information:null,address_details:s?.meta?.["x-jsf-fieldsets"]||null},h=S(()=>F(i.company_basic_information,{...l,country_code:y||l?.country_code||""}),[i.company_basic_information,y,l]),E=S(()=>F(i.address_details,l||{}),[i.address_details,l]),Y=S(()=>({company_basic_information:h,address_details:E}),[h,E]),Z=c(t=>{H(t)},"goTo"),M=c(async t=>{let r=a.currentStep.name,e=i[r];return d&&r==="company_basic_information"?await p(t,e,{isPartialValidation:!1}):s&&r==="address_details"?await p(t,e,{isPartialValidation:!1}):{}},"parseFormValues");async function $(t){let r=a.currentStep.name;r in w.current&&(w.current[r]=R(t,i[r]));let e=await M(t);switch(a.currentStep.name){case"company_basic_information":{if(U(e.country_code),f)return Promise.resolve({data:{countryCode:e.country_code??"",companyOwnerEmail:e.company_owner_email??"",companyOwnerName:e.company_owner_name??"",desiredCurrency:e.desired_currency??"",name:e.name??"",phoneNumber:e.phone_number??"",taxNumber:e.tax_number??""}});let x={country_code:e.country_code,company_owner_email:e.company_owner_email,company_owner_name:e.company_owner_name,desired_currency:e.desired_currency,name:e.name,phone_number:e.phone_number,tax_number:e.tax_number,terms_of_service_accepted_at:I()},n=await q(x);if(n.error)return Promise.resolve({data:null,error:n.error,rawError:n.rawError,fieldErrors:n.fieldErrors});let m=n.data?.data,_,o;if(m)if("data"in m&&m.data){let T=m.data.company;o=T,_=T?.id}else"company"in m&&(o=m.company,_=o?.id);return _&&B(_),Promise.resolve({data:{countryCode:o?.country_code??e.country_code??"",companyOwnerEmail:o?.company_owner_email??e.company_owner_email??"",companyOwnerName:o?.company_owner_name??e.company_owner_name??"",desiredCurrency:o?.desired_currency??e.desired_currency??"",name:o?.name??e.name??"",phoneNumber:o?.phone_number??e.phone_number??"",taxNumber:o?.tax_number??e.tax_number??""}})}case"address_details":{if(!f)throw b("Company ID is required to update address details");let n=await J({companyId:f,payload:{address_details:e},jsonSchemaVersion:u?.jsonSchemaVersion?.form_schema?.address_details});return n.error?Promise.resolve({data:null,error:n.error,rawError:n.rawError,fieldErrors:n.fieldErrors}):Promise.resolve({data:n.data})}default:throw b("Invalid step state")}}return c($,"onSubmit"),{isLoading:K||Q,isSubmitting:P.isPending||g.isPending,fieldValues:V,stepState:a,checkFieldUpdates:W,back:z,next:G,goTo:Z,onSubmit:$,fields:i[a.currentStep.name],meta:{fields:w.current,fieldsets:X[a.currentStep.name]},parseFormValues:M,handleValidation:c(async t=>{if(a.currentStep.name==="company_basic_information"&&d){let r=await p(t,d.fields,{isPartialValidation:!1});return d.handleValidation(r)}if(a.currentStep.name==="address_details"&&s){let r=await p(t,s.fields,{isPartialValidation:!1});return s.handleValidation(r)}return null},"handleValidation"),initialValues:Y}},"useCreateCompany");export{pe as a};
|
|
2
|
+
//# sourceMappingURL=chunk-HGETJXZZ.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a}from"./chunk-7DQY3SRL.js";import{b as i}from"./chunk-PGWKJ6FK.js";import{a as e}from"./chunk-P37U34EQ.js";import{jsx as d}from"react/jsx-runtime";function y({onSubmit:s,onSuccess:c,onError:t}){let{onboardingBag:o}=i(),u=e(async n=>{try{await s?.({countryCode:n.country});let r=await o.onSubmit(n);if(r?.data){await c?.(r?.data),o?.next();return}r?.error&&t?.({error:r.error,rawError:r.rawError,fieldErrors:[]})}catch(r){t?.({error:r,rawError:r,fieldErrors:[]})}},"handleSubmit"),l=o.stepState.values?.select_country||o.initialValues.select_country;return d(a,{defaultValues:l,onSubmit:u})}e(y,"SelectCountryStep");export{y as a};
|
|
2
|
+
//# sourceMappingURL=chunk-HI7TK62N.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{k as J}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{k as J}from"./chunk-KIUI7FHF.js";import{b as G,c as M,d as L}from"./chunk-FFVTWWGX.js";import{a as k}from"./chunk-CLAVZQBC.js";import{c as B,m as A}from"./chunk-72RFYT5Y.js";import{b as H}from"./chunk-KQPDXXG3.js";import{a as n,b as d,c as qe}from"./chunk-P37U34EQ.js";var D=d((En,U)=>{"use strict";function we(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}n(we,"isObject");U.exports=we});var X=d((In,V)=>{"use strict";var Fe=typeof global=="object"&&global&&global.Object===Object&&global;V.exports=Fe});var _=d((qn,z)=>{"use strict";var Pe=X(),ke=typeof self=="object"&&self&&self.Object===Object&&self,Me=Pe||ke||Function("return this")();z.exports=Me});var Q=d((wn,K)=>{"use strict";var Le=_(),De=n(function(){return Le.Date.now()},"now");K.exports=De});var Z=d((Pn,Y)=>{"use strict";var _e=/\s/;function $e(e){for(var t=e.length;t--&&_e.test(e.charAt(t)););return t}n($e,"trimmedEndIndex");Y.exports=$e});var ne=d((Mn,ee)=>{"use strict";var Ne=Z(),We=/^\s+/;function Be(e){return e&&e.slice(0,Ne(e)+1).replace(We,"")}n(Be,"baseTrim");ee.exports=Be});var $=d((Dn,te)=>{"use strict";var Ae=_(),He=Ae.Symbol;te.exports=He});var se=d((_n,ie)=>{"use strict";var re=$(),oe=Object.prototype,Ge=oe.hasOwnProperty,Je=oe.toString,O=re?re.toStringTag:void 0;function Ue(e){var t=Ge.call(e,O),r=e[O];try{e[O]=void 0;var i=!0}catch{}var u=Je.call(e);return i&&(t?e[O]=r:delete e[O]),u}n(Ue,"getRawTag");ie.exports=Ue});var ce=d((Nn,ae)=>{"use strict";var Ve=Object.prototype,Xe=Ve.toString;function ze(e){return Xe.call(e)}n(ze,"objectToString");ae.exports=ze});var le=d((Bn,de)=>{"use strict";var ue=$(),Ke=se(),Qe=ce(),Ye="[object Null]",Ze="[object Undefined]",fe=ue?ue.toStringTag:void 0;function en(e){return e==null?e===void 0?Ze:Ye:fe&&fe in Object(e)?Ke(e):Qe(e)}n(en,"baseGetTag");de.exports=en});var pe=d((Hn,me)=>{"use strict";function nn(e){return e!=null&&typeof e=="object"}n(nn,"isObjectLike");me.exports=nn});var be=d((Jn,ge)=>{"use strict";var tn=le(),rn=pe(),on="[object Symbol]";function sn(e){return typeof e=="symbol"||rn(e)&&tn(e)==on}n(sn,"isSymbol");ge.exports=sn});var Ce=d((Vn,xe)=>{"use strict";var an=ne(),ve=D(),cn=be(),ye=NaN,un=/^[-+]0x[0-9a-f]+$/i,fn=/^0b[01]+$/i,dn=/^0o[0-7]+$/i,ln=parseInt;function mn(e){if(typeof e=="number")return e;if(cn(e))return ye;if(ve(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=ve(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=an(e);var r=fn.test(e);return r||dn.test(e)?ln(e.slice(2),r?2:8):un.test(e)?ye:+e}n(mn,"toNumber");xe.exports=mn});var Se=d((zn,Te)=>{"use strict";var pn=D(),N=Q(),he=Ce(),gn="Expected a function",bn=Math.max,vn=Math.min;function yn(e,t,r){var i,u,b,l,s,a,p=0,E=!1,f=!1,x=!0;if(typeof e!="function")throw new TypeError(gn);t=he(t)||0,pn(r)&&(E=!!r.leading,f="maxWait"in r,b=f?bn(he(r.maxWait)||0,t):b,x="trailing"in r?!!r.trailing:x);function C(o){var g=i,y=u;return i=u=void 0,p=o,l=e.apply(y,g),l}n(C,"invokeFunc");function R(o){return p=o,s=setTimeout(m,t),E?C(o):l}n(R,"leadingEdge");function q(o){var g=o-a,y=o-p,c=t-g;return f?vn(c,b-y):c}n(q,"remainingWait");function T(o){var g=o-a,y=o-p;return a===void 0||g>=t||g<0||f&&y>=b}n(T,"shouldInvoke");function m(){var o=N();if(T(o))return S(o);s=setTimeout(m,q(o))}n(m,"timerExpired");function S(o){return s=void 0,x&&i?C(o):(i=u=void 0,l)}n(S,"trailingEdge");function I(){s!==void 0&&clearTimeout(s),p=0,i=a=u=s=void 0}n(I,"cancel");function w(){return s===void 0?l:S(N())}n(w,"flush");function j(){var o=N(),g=T(o);if(i=arguments,u=this,a=o,g){if(s===void 0)return R(a);if(f)return clearTimeout(s),s=setTimeout(m,t),C(a)}return s===void 0&&(s=setTimeout(m,t)),l}return n(j,"debounced"),j.cancel=I,j.flush=w,j}n(yn,"debounce");Te.exports=yn});import{useState as hn,useCallback as Tn,useEffect as Ee,useRef as Sn}from"react";var Oe=qe(Se(),1);import{useCallback as xn,useEffect as Cn,useRef as je}from"react";function W(e,t){let r=je(e);Cn(()=>{r.current=e},[e]);let i=je((0,Oe.default)(u=>{r.current(u)},t)).current;return xn(u=>{i(u)},[i])}n(W,"useDebounce");import{Fragment as On,jsx as h,jsxs as Re}from"react/jsx-runtime";var jn=n(({description:e,showConversion:t,targetCurrency:r,className:i,onClick:u})=>{let{components:b}=H(),l=t?`Hide ${r} conversion`:`Show ${r} conversion`,s=b?.button;if(!s)throw new Error("Button component not found");return Re("span",{className:i,children:[h(A,{as:"span",children:e})," ",h(s,{className:`${i.replace("-description","-button")}`,"data-type":"inline",onClick:u,children:l})]})},"DescriptionWithConversion"),ut=n(({sourceCurrency:e,targetCurrency:t,mainFieldName:r,conversionFieldName:i,conversionProperties:u,classNamePrefix:b,description:l,conversionType:s="spread",...a})=>{let[p,E]=hn(!1),{setValue:f,watch:x}=B(),C=x(r||a.name),R=Sn(!0),q=e&&t&&e!==t,{mutateAsync:T}=J({type:s}),m=`${a.name}_converted`;Ee(()=>{f(m,r||a.name)},[f,r,a.name,m]),Ee(()=>{if(R.current){R.current=!1;return}f(i,"")},[e,i,f]);let S=Tn(async(c,v,F)=>{if(!(!c||isNaN(c)||c<=0))return T({source_currency:v,target_currency:F,amount:c})},[T]),I=W(async c=>{let v=M(c),P=1/((await S(v,t,e))?.data?.data.conversion_data?.exchange_rate??1),Ie=G(Number(v)*P);f(i,L(Ie))},500),w=W(async c=>{let v=M(c),P=(await S(v,t,e))?.data?.data.conversion_data.target_amount;f(r||a.name,L(P))},500),j=n(c=>{f(m,r||a.name),p&&I(c.target.value)},"handleMainFieldChange"),o=n(c=>{f(m,i),w(c.target.value)},"handleConversionFieldChange"),g=n(c=>{c.preventDefault(),E(v=>!v),!p&&C&&I(C)},"toggleConversion"),y=q?h(jn,{targetCurrency:t,description:l,showConversion:p,className:`${b}-description`,onClick:g}):l;return Re(On,{children:[h(k,{...a,name:r||a.name,additionalProps:{currency:e},description:y,type:"text",inputMode:"decimal",pattern:"^[0-9.]*$",maxLength:15,onChange:j}),p&&h(k,{additionalProps:{currency:t},name:i,label:u?.label||"Conversion",description:u?.description,type:"text",inputMode:"decimal",pattern:"^[0-9.]*$",maxLength:15,onChange:o}),h("input",{type:"hidden",name:m,value:x(m)||r||a.name})]})},"CurrencyConversionField");export{ut as a};
|
|
2
|
+
//# sourceMappingURL=chunk-JBOUDOIM.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
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 F,modify as y}from"@remoteoss/remote-json-schema-form-kit";var O=n((e,s,t)=>{if(t&&t.jsfModify){let{required:l,allOf:r,...o}=t.jsfModify,{schema:i}=y(e,o);e=i,l&&(e.required=[...Array.isArray(i.required)?i.required:[],...l]),r&&(e.allOf=[...Array.isArray(i.allOf)?i.allOf:[],...r])}let d={};s&&(d=f(e.properties||{},"money").reduce((r,o)=>(r[o]=m(s[o]),r),{}));let a=JSON.parse(JSON.stringify({...s,...d}));return{meta:{"x-jsf-fieldsets":e["x-jsf-fieldsets"]},...F(e,{initialValues:a})}},"createHeadlessForm");export{O as a};
|
|
2
|
+
//# sourceMappingURL=chunk-JR6VISHQ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/createHeadlessForm.tsx"],"sourcesContent":["import { FieldValues } from 'react-hook-form';\nimport {\n createHeadlessForm as baseCreateHeadlessForm,\n modify,\n} from '@remoteoss/remote-json-schema-form-kit';\nimport { convertToCents } from '@/src/components/form/utils';\nimport {\n JSFModify,\n JSONSchemaFormResultWithFieldsets,\n} from '@/src/flows/types';\nimport { findFieldsByType } from '@/src/flows/utils';\nimport { JSFFieldset } from '@/src/types/remoteFlows';\n\n/*\n * Creates a headless form from a JSON Schema, useful to avoid code duplication when creating headless forms.\n * @param jsfSchema - The JSON Schema\n * @param fieldValues - The field values\n * @param options - The options\n * @returns The headless form\n */\nexport const createHeadlessForm = (\n jsfSchema: Record<string, unknown>,\n fieldValues?: FieldValues,\n options?: { jsfModify?: JSFModify },\n): JSONSchemaFormResultWithFieldsets => {\n if (options && options.jsfModify) {\n const { required, allOf, ...modifyConfig } = options.jsfModify;\n const { schema } = modify(jsfSchema, modifyConfig);\n jsfSchema = schema;\n\n if (required) {\n jsfSchema.required = [\n ...(Array.isArray(schema.required) ? schema.required : []),\n ...required,\n ];\n }\n\n if (allOf) {\n jsfSchema.allOf = [\n ...(Array.isArray(schema.allOf) ? schema.allOf : []),\n ...allOf,\n ];\n }\n }\n\n let moneyFieldsData: Record<string, number | null> = {};\n\n if (fieldValues) {\n const moneyFields = findFieldsByType(jsfSchema.properties || {}, 'money');\n moneyFieldsData = moneyFields.reduce<Record<string, number | null>>(\n (acc, field) => {\n acc[field] = convertToCents(fieldValues[field]);\n return acc;\n },\n {},\n );\n }\n\n /**\n * We create a deep copy of the field values to avoid modifying the original object.\n * This problem is caused by json-schema-form-v0.\n */\n const initialValues = JSON.parse(\n JSON.stringify({\n ...fieldValues,\n ...moneyFieldsData,\n }),\n );\n\n return {\n meta: {\n 'x-jsf-fieldsets': jsfSchema['x-jsf-fieldsets'] as JSFFieldset,\n },\n ...baseCreateHeadlessForm(jsfSchema, {\n initialValues,\n }),\n };\n};\n"],"mappings":"wHACA,OACE,sBAAsBA,EACtB,UAAAC,MACK,yCAgBA,IAAMC,EAAqBC,EAAA,CAChCC,EACAC,EACAC,IACsC,CACtC,GAAIA,GAAWA,EAAQ,UAAW,CAChC,GAAM,CAAE,SAAAC,EAAU,MAAAC,EAAO,GAAGC,CAAa,EAAIH,EAAQ,UAC/C,CAAE,OAAAI,CAAO,EAAIC,EAAOP,EAAWK,CAAY,EACjDL,EAAYM,EAERH,IACFH,EAAU,SAAW,CACnB,GAAI,MAAM,QAAQM,EAAO,QAAQ,EAAIA,EAAO,SAAW,CAAC,EACxD,GAAGH,CACL,GAGEC,IACFJ,EAAU,MAAQ,CAChB,GAAI,MAAM,QAAQM,EAAO,KAAK,EAAIA,EAAO,MAAQ,CAAC,EAClD,GAAGF,CACL,EAEJ,CAEA,IAAII,EAAiD,CAAC,EAElDP,IAEFO,EADoBC,EAAiBT,EAAU,YAAc,CAAC,EAAG,OAAO,EAC1C,OAC5B,CAACU,EAAKC,KACJD,EAAIC,CAAK,EAAIC,EAAeX,EAAYU,CAAK,CAAC,EACvCD,GAET,CAAC,CACH,GAOF,IAAMG,EAAgB,KAAK,MACzB,KAAK,UAAU,CACb,GAAGZ,EACH,GAAGO,CACL,CAAC,CACH,EAEA,MAAO,CACL,KAAM,CACJ,kBAAmBR,EAAU,iBAAiB,CAChD,EACA,GAAGc,EAAuBd,EAAW,CACnC,cAAAa,CACF,CAAC,CACH,CACF,EAzDkC","names":["baseCreateHeadlessForm","modify","createHeadlessForm","__name","jsfSchema","fieldValues","options","required","allOf","modifyConfig","schema","modify","moneyFieldsData","findFieldsByType","acc","field","convertToCents","initialValues","baseCreateHeadlessForm"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as k}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as k}from"./chunk-AL37BOFX.js";import{a as c}from"./chunk-JXWFFVQO.js";import{j as p,k as a,l as d,m as i,n as u}from"./chunk-72RFYT5Y.js";import{c as _}from"./chunk-OSQ6VUDM.js";import{a as F}from"./chunk-P37U34EQ.js";import{Fragment as x,jsx as e,jsxs as r}from"react/jsx-runtime";var w=F(({field:l,fieldState:b,fieldData:s})=>{let{name:m,label:n,description:C,options:t,multiple:h}=s;return r(p,{"data-field":m,className:_(`RemoteFlows__CheckBoxField__Item__${m}`),children:[e(d,{children:r(x,{children:[t&&h?e(a,{children:n}):null,t&&h?t.map(o=>r("div",{className:"flex space-x-2",children:[e(c,{id:o.value,onCheckedChange:v=>{l.onChange(v===!0,o.value)},checked:l.value?.includes(o.value),className:"RemoteFlows__CheckBox__Input"}),e(a,{htmlFor:o.value,className:"mb-0 RemoteFlows__CheckBox__Label",children:o.label})]},o.value)):r("div",{className:"flex space-x-2",children:[e(c,{id:m,onCheckedChange:o=>{l.onChange(o===!0,null)},checked:l.value,className:"RemoteFlows__CheckBox__Input"}),e(a,{htmlFor:m,className:"mb-0 RemoteFlows__CheckBox__Label",children:n})]})]})}),C&&e(i,{helpCenter:e(k,{helpCenter:s.meta?.helpCenter}),children:C}),b.error&&e(u,{})]})},"CheckboxFieldDefault");export{w as a};
|
|
2
|
+
//# sourceMappingURL=chunk-KFNCHTUX.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{e as j,f as d,g as y}from"./chunk-TVBZT6FA.js";import{a as P}from"./chunk-WVJDCDGZ.js";import{a as x}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{e as j,f as d,g as y}from"./chunk-TVBZT6FA.js";import{a as P}from"./chunk-WVJDCDGZ.js";import{a as x}from"./chunk-HBX37YK2.js";import{a as p}from"./chunk-JR6VISHQ.js";import{A as S,E as v,H as O,J as w,O as E,T as q,g as f,i as h,j as g,n as b,o as C,w as F,x as _}from"./chunk-O5XQUEB5.js";import{d as i}from"./chunk-KQPDXXG3.js";import{a as t}from"./chunk-P37U34EQ.js";import{useMutation as c,useQuery as u}from"@tanstack/react-query";var H=t(e=>{let{client:r}=i();return u({queryKey:["company",e],retry:!1,enabled:!!e,queryFn:t(async()=>{let n=await _({client:r,headers:{Authorization:""},path:{company_id:e}});if(n.error||!n.data)throw new Error("Failed to fetch employment data");return n},"queryFn"),select:t(({data:n})=>n.data.company,"select")})},"useCompany"),L=t(e=>{let{client:r}=i();return u({queryKey:["benefit-offers",e],retry:!1,enabled:!!e,queryFn:t(async()=>b({client:r,path:{employment_id:e}}).then(n=>{if(n.error||!n.data)throw new Error("Failed to fetch benefit offers data");return n}),"queryFn"),select:t(({data:n})=>n?.data?.reduce((s,o)=>({...s,[o.benefit_group.slug]:{value:o.benefit_tier?.slug??"no",...o.benefit_group?.filter?.slug?{filter:o.benefit_group?.filter?.slug}:{}}}),{}),"select")})},"useBenefitOffers"),G=t(()=>{let{client:e}=i();return c({mutationFn:t(r=>q({client:e,headers:{Authorization:""},path:r}),"mutationFn")})},"useEmploymentInvite"),X=t(()=>{let{client:e}=i();return c({mutationFn:t(r=>F({client:e,body:r}),"mutationFn")})},"useCreateReserveInvoice"),Y=t(({countryCode:e,form:r,fieldValues:n,options:s,query:o={},jsonSchemaVersion:a})=>{let{client:l}=i(),R=a?{json_schema_version:a}:{};return u({queryKey:["onboarding-json-schema-form",e,r,a],retry:!1,queryFn:t(async()=>{let m=await S({client:l,headers:{Authorization:""},path:{country_code:e,form:r},query:{skip_benefits:!0,...o,...R}});if(m.error||!m.data)throw new Error("Failed to fetch onboarding schema");return m},"queryFn"),enabled:s?.queryOptions?.enabled,select:t(({data:m})=>{let U=m?.data||{};return p(U,n,s)},"select")})},"useJSONSchemaForm"),Z=t((e,r,n)=>{let{client:s}=i(),o={json_schema_version:y(n)};return u({queryKey:["benefit-offers-schema",e],retry:!1,enabled:!!e,queryFn:t(async()=>{let a=await v({client:s,path:{employment_id:e},query:o});if(a.error||!a.data)throw new Error("Failed to fetch benefit offers schema");return a},"queryFn"),select:t(({data:a})=>{let l=a?.data?.schema||{};return p(l,r,{jsfModify:n?.jsfModify?.benefits})},"select")})},"useBenefitOffersSchema"),$=t(e=>{let{client:r}=i(),n={json_schema_version:d(e)};return c({mutationFn:t(s=>h({client:r,headers:{Authorization:""},body:s,query:{...n}}),"mutationFn")})},"useCreateEmployment"),ee=t((e,r)=>{let{client:n}=i(),s={employment_basic_information_json_schema_version:d(r),contract_details_json_schema_version:j(r,e)||1};return c({mutationFn:t(({employmentId:o,...a})=>O({client:n,headers:{Authorization:""},body:a,path:{employment_id:o},query:{skip_benefits:!0,...s}}),"mutationFn")})},"useUpdateEmployment"),te=t(e=>{let{client:r}=i();return c({mutationFn:t(({employmentId:n,...s})=>{let o={json_schema_version:y(e)};return C({client:r,body:s,path:{employment_id:n},query:o})},"mutationFn")})},"useUpdateBenefitsOffers"),ne=t(e=>{let{client:r}=i(),{data:n,isLoading:s}=u({...x(r,"onboarding-countries"),select:t(a=>a.data?.data?.filter(l=>l.eor_onboarding).map(l=>({label:l.name,value:l.code}))||[],"select"),enabled:e?.queryOptions?.enabled}),o=p(P.data.schema,{},e);if(n){let a=o.fields.find(l=>l.name==="country");a&&(a.options=n)}return{isLoading:s,selectCountryForm:o}},"useCountriesSchemaField"),re=t(({type:e="spread"})=>{let{client:r}=i();return c({mutationFn:t(n=>(e==="no_spread"?f:E)({client:r,body:n}),"mutationFn")})},"useConvertCurrency"),oe=t(()=>{let{client:e}=i();return c({mutationFn:t(({employmentId:r,...n})=>w({client:e,path:{employment_id:r},body:n}),"mutationFn")})},"useUpsertContractEligibility"),se=t((e,r,n=!0)=>{let{client:s}=i();return u({queryKey:["employment-onboarding-reserves-status",e,r],retry:!1,enabled:n&&!!e&&!!r,queryFn:t(async()=>{let o=await g({client:s,headers:{Authorization:""},path:{company_id:e,employment_id:r}});if(o.error||!o.data)throw new Error("Failed to fetch employment onboarding reserves status");return o},"queryFn"),select:t(({data:o})=>o?.data?.status,"select")})},"useEmploymentOnboardingReservesStatus");export{H as a,L as b,G as c,X as d,Y as e,Z as f,$ as g,ee as h,te as i,ne as j,re as k,oe as l,se as m};
|
|
2
|
+
//# sourceMappingURL=chunk-KIUI7FHF.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as i}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as i}from"./chunk-7SRRP2D6.js";import{b as a}from"./chunk-Q3ALCPJN.js";import{m as n}from"./chunk-OSQ6VUDM.js";import{a as t}from"./chunk-P37U34EQ.js";import{jsx as S}from"react/jsx-runtime";function C({onSubmit:c,onSuccess:s,onError:u}){let{contractorOnboardingBag:r}=a(),l=t(async e=>{try{await c?.({countryCode:e.country});let o=await r.onSubmit(e);if(o?.data){await s?.(o?.data),r?.next();return}}catch(o){let m=n(o,r.meta?.fields?.select_country);u?.(m)}},"handleSubmit"),d=r.stepState.values?.select_country||r.initialValues.select_country;return S(i,{defaultValues:d,onSubmit:l})}t(C,"SelectCountryStep");export{C as a};
|
|
2
|
+
//# sourceMappingURL=chunk-L6V2G5TE.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as f}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as f}from"./chunk-AL37BOFX.js";import{a as u,b as R}from"./chunk-DYNVJFJH.js";import{j as a,k as c,l,m,n as _}from"./chunk-72RFYT5Y.js";import{c as F}from"./chunk-OSQ6VUDM.js";import{a as p}from"./chunk-P37U34EQ.js";import{Fragment as g}from"react";import{jsx as e,jsxs as t}from"react/jsx-runtime";var w=p(({field:s,fieldData:i,fieldState:C})=>{let{name:r,label:d,description:n,options:b}=i;return e("fieldset",{className:F("space-y-3",`RemoteFlows__RadioGroupField__Item__${r}`),"data-field":r,children:t(a,{children:[e("legend",{children:d}),n&&e(m,{helpCenter:e(f,{helpCenter:i.meta?.helpCenter}),children:n}),e(l,{children:e(u,{"aria-label":d||r,onValueChange:o=>{s.onChange(o)},value:s.value,className:"flex flex-col space-y-3",children:b?.map(o=>e(g,{children:t(a,{"data-field":r,className:"flex items-start space-x-3 space-y-0 gap-0 RemoteFlows__RadioField__Item",children:[e(l,{children:e(R,{value:o.value,className:"RemoteFlows__RadioField__Input",disabled:o.disabled})}),t("div",{children:[e(c,{className:"font-normal mb-0 RemoteFlows__RadioField__Label",children:o.label}),o.description&&e(m,{className:"mt-2",children:o.description})]})]})},o.value))})}),C.error&&e(_,{})]})})},"RadioGroupFieldDefault");export{w as a};
|
|
2
|
+
//# sourceMappingURL=chunk-L7TAT462.js.map
|