@remoteoss/remote-flows 1.7.0 → 1.9.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/ButtonDefault-NLDQHAWN.js +2 -0
- package/dist/CheckboxFieldDefault-QXABRJXG.js +2 -0
- package/dist/CountryFieldDefault-VJM3C6WE.js +2 -0
- package/dist/DatePickerFieldDefault-3MBSCS3W.js +2 -0
- package/dist/DrawerDefault-5EYKRPS7.js +2 -0
- package/dist/EmailFieldDefault-3ES7SMDC.js +2 -0
- package/dist/FieldsetToggleButtonDefault-TPLNRX3E.js +2 -0
- package/dist/FileUploadFieldDefault-PNM6H64X.js +2 -0
- package/dist/MultiSelectFieldDefault-THD7TDWF.js +2 -0
- package/dist/NumberFieldDefault-PCH6RRDK.js +2 -0
- package/dist/PDFPreviewDefault-474JH3KB.js +2 -0
- package/dist/RadioGroupFieldDefault-CM33F3EP.js +2 -0
- package/dist/SelectFieldDefault-NHDJRM5H.js +2 -0
- package/dist/StatementDefault-CSHXL3G2.js +2 -0
- package/dist/TableFieldDefault-N7MO2QJI.js +2 -0
- package/dist/TextAreaFieldDefault-OG4UM4DG.js +2 -0
- package/dist/TextFieldDefault-FECR4GRK.js +2 -0
- package/dist/WorkScheduleFieldDefault-G2MR2DBY.js +2 -0
- package/dist/ZendeskDrawerDefault-W3RCTVCH.js +2 -0
- package/dist/{chunk-W4XNUDHJ.js → chunk-2SN7VPBR.js} +2 -2
- package/dist/{chunk-2BTW5VQM.js → chunk-3JJEKIQ2.js} +2 -2
- package/dist/{chunk-X7EZIAZ3.js → chunk-3QNS3IZB.js} +2 -2
- package/dist/{chunk-H55YNNRX.js → chunk-3UAJX23Y.js} +2 -2
- package/dist/{chunk-I42KSW2T.js → chunk-3UJC7KHD.js} +2 -2
- package/dist/chunk-3X36ZFNP.js +2 -0
- package/dist/chunk-3X36ZFNP.js.map +1 -0
- package/dist/{chunk-4VDLIQW6.js → chunk-4JOZ4VIJ.js} +2 -2
- package/dist/{chunk-K537DG4M.js → chunk-5G5UBS6W.js} +2 -2
- package/dist/{chunk-QVUSRZ2Z.js → chunk-5IHRUTHD.js} +2 -2
- package/dist/chunk-5XHL6B25.js +6 -0
- package/dist/chunk-5XHL6B25.js.map +1 -0
- package/dist/{chunk-557BE4KV.js → chunk-634DTN72.js} +2 -2
- package/dist/{chunk-VZCWCH7L.js → chunk-6ZEZZZFB.js} +2 -2
- package/dist/{chunk-QPUWU5R3.js → chunk-7QP5TRMH.js} +2 -2
- package/dist/{chunk-R3V5AHPG.js → chunk-7QRAEME3.js} +2 -2
- package/dist/{chunk-CB3JGUXW.js → chunk-7SYE5KEV.js} +2 -2
- package/dist/{chunk-OZQVMA77.js → chunk-A54D24NT.js} +2 -2
- package/dist/{chunk-TN37JYBC.js → chunk-AN5U7FWW.js} +2 -2
- package/dist/{chunk-4PWW2KIE.js → chunk-BJJTAQPT.js} +2 -2
- package/dist/{chunk-7VS4FRI4.js → chunk-BMVPIRKX.js} +2 -2
- package/dist/{chunk-GH3FNNAU.js → chunk-C2NROAMW.js} +2 -2
- package/dist/{chunk-B4L4JBSX.js → chunk-C4NXXY3X.js} +2 -2
- package/dist/{chunk-Y6VAENOP.js → chunk-CEHS4AFO.js} +2 -2
- package/dist/chunk-CEM3JUSV.js +2 -0
- package/dist/chunk-CEM3JUSV.js.map +1 -0
- package/dist/{chunk-5H3G7L52.js → chunk-CKA37AR5.js} +2 -2
- package/dist/{chunk-SE7EANMF.js → chunk-CKTFJUGZ.js} +2 -2
- package/dist/{chunk-WMVZY6FJ.js → chunk-CNCOVTDL.js} +2 -2
- package/dist/{chunk-4UKIHBAU.js → chunk-COAGOVMZ.js} +2 -2
- package/dist/{chunk-2H357HMX.js → chunk-CWQQA3P4.js} +2 -2
- package/dist/{chunk-IYBUDYFU.js → chunk-D3XDJFE3.js} +2 -2
- package/dist/{chunk-H3ZZYAI6.js → chunk-D4FBB5XW.js} +2 -2
- package/dist/chunk-DG34PSAO.js +2 -0
- package/dist/chunk-DG34PSAO.js.map +1 -0
- package/dist/{chunk-2Q24UYTZ.js → chunk-DWTKSHQJ.js} +2 -2
- package/dist/{chunk-ZCXTTVGV.js → chunk-EAF6XPH6.js} +2 -2
- package/dist/chunk-EFLWMMG5.js +2 -0
- package/dist/chunk-EFLWMMG5.js.map +1 -0
- package/dist/{chunk-5QEOCZWA.js → chunk-EIFXWGXM.js} +2 -2
- package/dist/chunk-EUSCQL4H.js +2 -0
- package/dist/chunk-EUSCQL4H.js.map +1 -0
- package/dist/{chunk-NIJG4TPU.js → chunk-EW36MHXP.js} +2 -2
- package/dist/{chunk-MP4WFKD3.js → chunk-EYHFPHIA.js} +2 -2
- package/dist/{chunk-R3C7KEKY.js → chunk-F2VYTYIQ.js} +2 -2
- package/dist/{chunk-CQEMKL24.js → chunk-FJLSVTBJ.js} +2 -2
- package/dist/{chunk-LGIJO73Z.js → chunk-FJPY27YJ.js} +2 -2
- package/dist/{chunk-JGSMNVB5.js → chunk-FJZPATKO.js} +2 -2
- package/dist/{chunk-H3ZACNQ6.js → chunk-FLW5LACO.js} +2 -2
- package/dist/{chunk-IRZB32VO.js → chunk-G5DVMK4E.js} +2 -2
- package/dist/{chunk-5XEJY6AG.js → chunk-GBETAH3G.js} +2 -2
- package/dist/chunk-GCWEOZBS.js +2 -0
- package/dist/chunk-GCWEOZBS.js.map +1 -0
- package/dist/{chunk-HY45YMQX.js → chunk-GLNDB4KG.js} +2 -2
- package/dist/{chunk-LYFET6KE.js → chunk-H2OBH7SK.js} +2 -2
- package/dist/{chunk-JVBZ42B2.js → chunk-H5VA2OWQ.js} +2 -2
- package/dist/{chunk-66LATGGO.js → chunk-HBPFTEHZ.js} +2 -2
- package/dist/chunk-HLSVMRWX.js +2 -0
- package/dist/{chunk-AQPM4YXS.js.map → chunk-HLSVMRWX.js.map} +1 -1
- package/dist/chunk-I6Y6AWYE.js +2 -0
- package/dist/chunk-I6Y6AWYE.js.map +1 -0
- package/dist/{chunk-CZJTTZET.js → chunk-IEX4KZUY.js} +2 -2
- package/dist/chunk-IEXTH6YO.js +2 -0
- package/dist/chunk-IEXTH6YO.js.map +1 -0
- package/dist/{chunk-HSCS2LW2.js → chunk-IG5LQPUN.js} +2 -2
- package/dist/{chunk-B5YG3EGS.js → chunk-ILX4QHHH.js} +2 -2
- package/dist/chunk-IPITD7UK.js +2 -0
- package/dist/chunk-IPITD7UK.js.map +1 -0
- package/dist/{chunk-4VYMV32U.js → chunk-JIZKHO7L.js} +2 -2
- package/dist/{chunk-AYDY7FWS.js → chunk-JKEUTGPQ.js} +2 -2
- package/dist/{chunk-LAV3X727.js → chunk-JQ2ESL5O.js} +2 -2
- package/dist/{chunk-QN2JIZ46.js → chunk-JTSHX4RB.js} +2 -2
- package/dist/{chunk-L5IKPX6D.js → chunk-KXF27FC4.js} +2 -2
- package/dist/chunk-LDJW2CBF.js +2 -0
- package/dist/chunk-LDJW2CBF.js.map +1 -0
- package/dist/{chunk-JPG7ALCH.js → chunk-LNWBGEKE.js} +2 -2
- package/dist/{chunk-MORWF4JC.js → chunk-ML56EPFW.js} +2 -2
- package/dist/{chunk-47QOKKPT.js → chunk-MM5K3XXY.js} +2 -2
- package/dist/{chunk-ARYTUUI7.js → chunk-MZNUCWQU.js} +2 -2
- package/dist/chunk-N4W7JU2D.js +2 -0
- package/dist/{chunk-3UDG4IJO.js.map → chunk-N4W7JU2D.js.map} +1 -1
- package/dist/{chunk-MWPTUX4I.js → chunk-NCELDZXG.js} +2 -2
- package/dist/{chunk-ABYONP42.js → chunk-NXDG32BY.js} +2 -2
- package/dist/{chunk-5RYRPEXE.js → chunk-OVTH3ZHO.js} +2 -2
- package/dist/{chunk-RFKETKV4.js → chunk-OZWDFGLQ.js} +2 -2
- package/dist/{chunk-L2YAFMAT.js → chunk-P45OX5YT.js} +2 -2
- package/dist/{chunk-GL75LB2U.js → chunk-PGRQG254.js} +2 -2
- package/dist/{chunk-JZL6UTLA.js → chunk-PO57BOOY.js} +2 -2
- package/dist/{chunk-X2F3PNZY.js → chunk-RLRSNB77.js} +2 -2
- package/dist/chunk-RQUNEKD2.js +2 -0
- package/dist/chunk-RQUNEKD2.js.map +1 -0
- package/dist/{chunk-JAQTY4WI.js → chunk-S6OVT37M.js} +2 -2
- package/dist/chunk-SBQYUJFI.js +2 -0
- package/dist/chunk-SBQYUJFI.js.map +1 -0
- package/dist/{chunk-MO57FCIH.js → chunk-SVYPDGZN.js} +2 -2
- package/dist/chunk-T7O3YYOG.js +2 -0
- package/dist/chunk-T7O3YYOG.js.map +1 -0
- package/dist/{chunk-TATL6AQD.js → chunk-THPH57GK.js} +2 -2
- package/dist/{chunk-Y7WX5NK5.js → chunk-TZPHBNNS.js} +2 -2
- package/dist/{chunk-FLCQGVLT.js → chunk-UBRRCAAI.js} +2 -2
- package/dist/{chunk-2EJDEVHY.js → chunk-UHO6CCVA.js} +2 -2
- package/dist/chunk-UMOL4GLZ.js +2 -0
- package/dist/chunk-UMOL4GLZ.js.map +1 -0
- package/dist/{chunk-G2LBZKLG.js → chunk-UXUZA7XH.js} +2 -2
- package/dist/{chunk-DYG225ZX.js → chunk-VC6X3C2I.js} +2 -2
- package/dist/{chunk-FXQAB3WS.js → chunk-VIQQ3IHI.js} +2 -2
- package/dist/{chunk-LEQXRQ6X.js → chunk-VKYP2MQQ.js} +2 -2
- package/dist/{chunk-YYFKOSNH.js → chunk-VLP6L77E.js} +2 -2
- package/dist/{chunk-YYFKOSNH.js.map → chunk-VLP6L77E.js.map} +1 -1
- package/dist/{chunk-KOJ7XDQ3.js → chunk-WHROCBHG.js} +2 -2
- package/dist/{chunk-K5CZDOJG.js → chunk-WT6E5LO4.js} +2 -2
- package/dist/{chunk-S6SLUYTL.js → chunk-WTQ6PTMB.js} +2 -2
- package/dist/{chunk-4RFJXFQX.js → chunk-XDZFLJ5F.js} +2 -2
- package/dist/{chunk-ZLPAQQZI.js → chunk-XIEA775Q.js} +2 -2
- package/dist/{chunk-NTMY5VLN.js → chunk-XQUHG7HJ.js} +2 -2
- package/dist/{chunk-4Z2ZRDMG.js → chunk-XSG4QXPY.js} +2 -2
- package/dist/{chunk-5JJRVNQQ.js → chunk-YHD2RXJC.js} +2 -2
- package/dist/{chunk-VMAPQGL4.js → chunk-YHIADGM3.js} +2 -2
- package/dist/{chunk-Q24D6SO6.js → chunk-YMLXE6OO.js} +2 -2
- package/dist/{chunk-IF42CZJH.js → chunk-YRC6EEM3.js} +2 -2
- package/dist/{chunk-HMCTBCYH.js → chunk-YUQ3GDQI.js} +2 -2
- package/dist/{chunk-PRVP6ID7.js → chunk-ZNV46UUP.js} +2 -2
- package/dist/{chunk-L4ZKUL5E.js → chunk-ZOPKBLGA.js} +2 -2
- package/dist/{chunk-XJPB4XV6.js → chunk-ZTBFYRNL.js} +2 -2
- package/dist/chunk-ZVUQDK2E.js +2 -0
- package/dist/default-components.d.ts +2 -2
- package/dist/default-components.js +1 -1
- package/dist/default-components.js.map +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.d.ts +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.js +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/ContractAmendment/utils.js +1 -1
- package/dist/flows/ContractorOnboarding/ContractorOnboarding.d.ts +6 -6
- package/dist/flows/ContractorOnboarding/ContractorOnboarding.js +1 -1
- package/dist/flows/ContractorOnboarding/api.d.ts +303 -3
- 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 +6 -6
- 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/ContractPreviewStatement.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.d.ts +6 -6
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.js +1 -1
- package/dist/flows/ContractorOnboarding/components/OnboardingInvite.d.ts +3 -3
- package/dist/flows/ContractorOnboarding/components/OnboardingInvite.js +1 -1
- package/dist/flows/ContractorOnboarding/components/PricingPlan.d.ts +6 -6
- package/dist/flows/ContractorOnboarding/components/PricingPlan.js +1 -1
- package/dist/flows/ContractorOnboarding/components/SelectCountryStep.d.ts +4 -4
- package/dist/flows/ContractorOnboarding/components/SelectCountryStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/StatementOfWorkDisclaimer.js +1 -1
- package/dist/flows/ContractorOnboarding/constants.d.ts +2 -1
- package/dist/flows/ContractorOnboarding/constants.js +1 -1
- package/dist/flows/ContractorOnboarding/context.d.ts +10 -6
- package/dist/flows/ContractorOnboarding/hooks.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/hooks.js +1 -1
- package/dist/flows/ContractorOnboarding/index.d.ts +6 -6
- package/dist/flows/ContractorOnboarding/index.js +1 -1
- package/dist/flows/ContractorOnboarding/jsfModify.d.ts +46 -0
- package/dist/flows/ContractorOnboarding/jsfModify.js +2 -0
- package/dist/flows/ContractorOnboarding/jsfModify.js.map +1 -0
- package/dist/flows/ContractorOnboarding/types.d.ts +6 -6
- package/dist/flows/ContractorOnboarding/utils.d.ts +2 -14
- package/dist/flows/ContractorOnboarding/utils.js +1 -1
- 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/CostCalculatorResetButton.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorSubmitButton.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/SummaryResults/SummaryResults.js +1 -1
- package/dist/flows/CostCalculator/api.d.ts +2 -2
- package/dist/flows/CostCalculator/api.js +1 -1
- package/dist/flows/CostCalculator/components/SalaryField.d.ts +2 -2
- package/dist/flows/CostCalculator/components/SalaryField.js +1 -1
- package/dist/flows/CostCalculator/context.d.ts +3 -3
- package/dist/flows/CostCalculator/hooks.d.ts +3 -3
- package/dist/flows/CostCalculator/hooks.js +1 -1
- package/dist/flows/CostCalculator/index.d.ts +3 -3
- package/dist/flows/CostCalculator/index.js +1 -1
- package/dist/flows/CostCalculator/types.d.ts +2 -2
- package/dist/flows/CostCalculator/utils.d.ts +3 -3
- package/dist/flows/CostCalculator/utils.js +1 -1
- package/dist/flows/Onboarding/OnboardingFlow.d.ts +4 -4
- package/dist/flows/Onboarding/OnboardingFlow.js +1 -1
- package/dist/flows/Onboarding/api.d.ts +4 -4
- package/dist/flows/Onboarding/api.js +1 -1
- package/dist/flows/Onboarding/components/AnnualGrossSalary.d.ts +2 -2
- package/dist/flows/Onboarding/components/AnnualGrossSalary.js +1 -1
- package/dist/flows/Onboarding/components/BasicInformationStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/BasicInformationStep.js +1 -1
- package/dist/flows/Onboarding/components/BenefitsStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/BenefitsStep.js +1 -1
- package/dist/flows/Onboarding/components/ContractDetailsStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/ContractDetailsStep.js +1 -1
- package/dist/flows/Onboarding/components/OnboardingForm.d.ts +4 -4
- package/dist/flows/Onboarding/components/OnboardingForm.js +1 -1
- package/dist/flows/Onboarding/components/OnboardingInvite.d.ts +3 -3
- package/dist/flows/Onboarding/components/OnboardingInvite.js +1 -1
- package/dist/flows/Onboarding/components/ReviewStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/SaveDraftButton.d.ts +3 -3
- package/dist/flows/Onboarding/components/SelectCountryStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/SelectCountryStep.js +1 -1
- package/dist/flows/Onboarding/context.d.ts +4 -4
- package/dist/flows/Onboarding/hooks.d.ts +4 -4
- package/dist/flows/Onboarding/hooks.js +1 -1
- package/dist/flows/Onboarding/index.d.ts +4 -4
- package/dist/flows/Onboarding/index.js +1 -1
- package/dist/flows/Onboarding/types.d.ts +4 -4
- package/dist/flows/Onboarding/utils.d.ts +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 +4 -4
- package/dist/flows/Termination/TerminationForm.js +1 -1
- package/dist/flows/Termination/api.d.ts +5 -5
- package/dist/flows/Termination/api.js +1 -1
- package/dist/flows/Termination/components/AcknowledgeInformation/AcknowledgeInformation.js +1 -1
- package/dist/flows/Termination/components/AcknowledgeInformation/AcknowledgeInformationFees.js +1 -1
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOff.d.ts +6 -6
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOff.js +1 -1
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.d.ts +6 -6
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.js +1 -1
- package/dist/flows/Termination/components/PaidTimeOff/types.d.ts +6 -6
- package/dist/flows/Termination/components/TerminationDialogInfoContent/TerminationDialogInfoContent.js +1 -1
- package/dist/flows/Termination/components/TerminationReasonsDetailContent/TerminationReasonsDetailContent.js +1 -1
- package/dist/flows/Termination/context.d.ts +4 -4
- package/dist/flows/Termination/hooks.d.ts +4 -4
- package/dist/flows/Termination/hooks.js +1 -1
- package/dist/flows/Termination/index.d.ts +6 -6
- package/dist/flows/Termination/index.js +1 -1
- package/dist/flows/Termination/json-schemas/jsonSchema.js +1 -1
- package/dist/flows/Termination/json-schemas/schema.d.ts +4 -4
- package/dist/flows/Termination/json-schemas/schema.js +1 -1
- package/dist/flows/Termination/types.d.ts +4 -4
- package/dist/flows/Termination/utils.d.ts +4 -4
- package/dist/flows/Termination/utils.js +1 -1
- package/dist/flows/types.d.ts +12 -3
- package/dist/index.d.ts +16 -10
- 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-1qBMUBHv.d.ts → mutations-D1eQrIJS.d.ts} +1 -1
- package/dist/{remoteFlows-CdH85jWA.d.ts → remoteFlows-DtWy_kl6.d.ts} +1 -1
- package/dist/{types-3ayA0Jjk.d.ts → types-C73xHbIf.d.ts} +3 -3
- package/dist/{types-DIkYYcU2.d.ts → types-CYEQpq5z.d.ts} +2 -2
- package/dist/{types-DzL24-XO.d.ts → types-CoznD6fc.d.ts} +1 -1
- package/dist/{types-9RkAisEn.d.ts → types-uiKCaHsn.d.ts} +10 -6
- package/dist/{types.gen-ClAI2-dt.d.ts → types.gen-Dg6qF5i1.d.ts} +53 -1
- package/dist/{utils-cwu3lIjJ.d.ts → utils-DNGgpT60.d.ts} +1 -1
- package/package.json +3 -3
- package/dist/ButtonDefault-MJNBS6JN.js +0 -2
- package/dist/CheckboxFieldDefault-5UCOCDE6.js +0 -2
- package/dist/CountryFieldDefault-ZOQTJCFL.js +0 -2
- package/dist/DatePickerFieldDefault-YOLAGQD6.js +0 -2
- package/dist/DrawerDefault-TPMJO4JW.js +0 -2
- package/dist/EmailFieldDefault-LIG2I3KN.js +0 -2
- package/dist/FieldsetToggleButtonDefault-ONS2KHTB.js +0 -2
- package/dist/FileUploadFieldDefault-Y3DOJH6L.js +0 -2
- package/dist/MultiSelectFieldDefault-LMXRGP3B.js +0 -2
- package/dist/NumberFieldDefault-O7WYKNXV.js +0 -2
- package/dist/PDFPreviewDefault-WZKNJUIU.js +0 -2
- package/dist/RadioGroupFieldDefault-Y5L4GIQE.js +0 -2
- package/dist/SelectFieldDefault-RM72IEHN.js +0 -2
- package/dist/StatementDefault-CIHGUOWH.js +0 -2
- package/dist/TableFieldDefault-42PHYI5U.js +0 -2
- package/dist/TextAreaFieldDefault-7WGZ3OOS.js +0 -2
- package/dist/TextFieldDefault-NW25MQKP.js +0 -2
- package/dist/WorkScheduleFieldDefault-RP5SBJS7.js +0 -2
- package/dist/ZendeskDrawerDefault-H7UH2G35.js +0 -2
- package/dist/chunk-27QEJQHZ.js +0 -2
- package/dist/chunk-27QEJQHZ.js.map +0 -1
- package/dist/chunk-3UDG4IJO.js +0 -2
- package/dist/chunk-42R2H2DW.js +0 -2
- package/dist/chunk-7XTH77HC.js +0 -2
- package/dist/chunk-7XTH77HC.js.map +0 -1
- package/dist/chunk-AQPM4YXS.js +0 -2
- package/dist/chunk-CVSWYOU2.js +0 -2
- package/dist/chunk-CVSWYOU2.js.map +0 -1
- package/dist/chunk-EAV5VOMZ.js +0 -2
- package/dist/chunk-EAV5VOMZ.js.map +0 -1
- package/dist/chunk-ERSXMU5E.js +0 -2
- package/dist/chunk-ERSXMU5E.js.map +0 -1
- package/dist/chunk-GYQJPYLL.js +0 -6
- package/dist/chunk-GYQJPYLL.js.map +0 -1
- package/dist/chunk-HRG5MSVG.js +0 -2
- package/dist/chunk-HRG5MSVG.js.map +0 -1
- package/dist/chunk-INTCYXNY.js +0 -2
- package/dist/chunk-INTCYXNY.js.map +0 -1
- package/dist/chunk-KLTLJUTG.js +0 -2
- package/dist/chunk-KLTLJUTG.js.map +0 -1
- package/dist/chunk-OU6HCXKJ.js +0 -2
- package/dist/chunk-OU6HCXKJ.js.map +0 -1
- package/dist/chunk-S7S2XNVU.js +0 -2
- package/dist/chunk-S7S2XNVU.js.map +0 -1
- package/dist/chunk-V63WMKGL.js +0 -2
- package/dist/chunk-V63WMKGL.js.map +0 -1
- package/dist/chunk-XXIUJVIY.js +0 -2
- package/dist/chunk-XXIUJVIY.js.map +0 -1
- package/dist/chunk-Y625DU2T.js +0 -2
- package/dist/chunk-Y625DU2T.js.map +0 -1
- /package/dist/{ButtonDefault-MJNBS6JN.js.map → ButtonDefault-NLDQHAWN.js.map} +0 -0
- /package/dist/{CheckboxFieldDefault-5UCOCDE6.js.map → CheckboxFieldDefault-QXABRJXG.js.map} +0 -0
- /package/dist/{CountryFieldDefault-ZOQTJCFL.js.map → CountryFieldDefault-VJM3C6WE.js.map} +0 -0
- /package/dist/{DatePickerFieldDefault-YOLAGQD6.js.map → DatePickerFieldDefault-3MBSCS3W.js.map} +0 -0
- /package/dist/{DrawerDefault-TPMJO4JW.js.map → DrawerDefault-5EYKRPS7.js.map} +0 -0
- /package/dist/{EmailFieldDefault-LIG2I3KN.js.map → EmailFieldDefault-3ES7SMDC.js.map} +0 -0
- /package/dist/{FieldsetToggleButtonDefault-ONS2KHTB.js.map → FieldsetToggleButtonDefault-TPLNRX3E.js.map} +0 -0
- /package/dist/{FileUploadFieldDefault-Y3DOJH6L.js.map → FileUploadFieldDefault-PNM6H64X.js.map} +0 -0
- /package/dist/{MultiSelectFieldDefault-LMXRGP3B.js.map → MultiSelectFieldDefault-THD7TDWF.js.map} +0 -0
- /package/dist/{NumberFieldDefault-O7WYKNXV.js.map → NumberFieldDefault-PCH6RRDK.js.map} +0 -0
- /package/dist/{PDFPreviewDefault-WZKNJUIU.js.map → PDFPreviewDefault-474JH3KB.js.map} +0 -0
- /package/dist/{RadioGroupFieldDefault-Y5L4GIQE.js.map → RadioGroupFieldDefault-CM33F3EP.js.map} +0 -0
- /package/dist/{SelectFieldDefault-RM72IEHN.js.map → SelectFieldDefault-NHDJRM5H.js.map} +0 -0
- /package/dist/{StatementDefault-CIHGUOWH.js.map → StatementDefault-CSHXL3G2.js.map} +0 -0
- /package/dist/{TableFieldDefault-42PHYI5U.js.map → TableFieldDefault-N7MO2QJI.js.map} +0 -0
- /package/dist/{TextAreaFieldDefault-7WGZ3OOS.js.map → TextAreaFieldDefault-OG4UM4DG.js.map} +0 -0
- /package/dist/{TextFieldDefault-NW25MQKP.js.map → TextFieldDefault-FECR4GRK.js.map} +0 -0
- /package/dist/{WorkScheduleFieldDefault-RP5SBJS7.js.map → WorkScheduleFieldDefault-G2MR2DBY.js.map} +0 -0
- /package/dist/{ZendeskDrawerDefault-H7UH2G35.js.map → ZendeskDrawerDefault-W3RCTVCH.js.map} +0 -0
- /package/dist/{chunk-W4XNUDHJ.js.map → chunk-2SN7VPBR.js.map} +0 -0
- /package/dist/{chunk-2BTW5VQM.js.map → chunk-3JJEKIQ2.js.map} +0 -0
- /package/dist/{chunk-X7EZIAZ3.js.map → chunk-3QNS3IZB.js.map} +0 -0
- /package/dist/{chunk-H55YNNRX.js.map → chunk-3UAJX23Y.js.map} +0 -0
- /package/dist/{chunk-I42KSW2T.js.map → chunk-3UJC7KHD.js.map} +0 -0
- /package/dist/{chunk-4VDLIQW6.js.map → chunk-4JOZ4VIJ.js.map} +0 -0
- /package/dist/{chunk-K537DG4M.js.map → chunk-5G5UBS6W.js.map} +0 -0
- /package/dist/{chunk-QVUSRZ2Z.js.map → chunk-5IHRUTHD.js.map} +0 -0
- /package/dist/{chunk-557BE4KV.js.map → chunk-634DTN72.js.map} +0 -0
- /package/dist/{chunk-VZCWCH7L.js.map → chunk-6ZEZZZFB.js.map} +0 -0
- /package/dist/{chunk-QPUWU5R3.js.map → chunk-7QP5TRMH.js.map} +0 -0
- /package/dist/{chunk-R3V5AHPG.js.map → chunk-7QRAEME3.js.map} +0 -0
- /package/dist/{chunk-CB3JGUXW.js.map → chunk-7SYE5KEV.js.map} +0 -0
- /package/dist/{chunk-OZQVMA77.js.map → chunk-A54D24NT.js.map} +0 -0
- /package/dist/{chunk-TN37JYBC.js.map → chunk-AN5U7FWW.js.map} +0 -0
- /package/dist/{chunk-4PWW2KIE.js.map → chunk-BJJTAQPT.js.map} +0 -0
- /package/dist/{chunk-7VS4FRI4.js.map → chunk-BMVPIRKX.js.map} +0 -0
- /package/dist/{chunk-GH3FNNAU.js.map → chunk-C2NROAMW.js.map} +0 -0
- /package/dist/{chunk-B4L4JBSX.js.map → chunk-C4NXXY3X.js.map} +0 -0
- /package/dist/{chunk-Y6VAENOP.js.map → chunk-CEHS4AFO.js.map} +0 -0
- /package/dist/{chunk-5H3G7L52.js.map → chunk-CKA37AR5.js.map} +0 -0
- /package/dist/{chunk-SE7EANMF.js.map → chunk-CKTFJUGZ.js.map} +0 -0
- /package/dist/{chunk-WMVZY6FJ.js.map → chunk-CNCOVTDL.js.map} +0 -0
- /package/dist/{chunk-4UKIHBAU.js.map → chunk-COAGOVMZ.js.map} +0 -0
- /package/dist/{chunk-2H357HMX.js.map → chunk-CWQQA3P4.js.map} +0 -0
- /package/dist/{chunk-IYBUDYFU.js.map → chunk-D3XDJFE3.js.map} +0 -0
- /package/dist/{chunk-H3ZZYAI6.js.map → chunk-D4FBB5XW.js.map} +0 -0
- /package/dist/{chunk-2Q24UYTZ.js.map → chunk-DWTKSHQJ.js.map} +0 -0
- /package/dist/{chunk-ZCXTTVGV.js.map → chunk-EAF6XPH6.js.map} +0 -0
- /package/dist/{chunk-5QEOCZWA.js.map → chunk-EIFXWGXM.js.map} +0 -0
- /package/dist/{chunk-NIJG4TPU.js.map → chunk-EW36MHXP.js.map} +0 -0
- /package/dist/{chunk-MP4WFKD3.js.map → chunk-EYHFPHIA.js.map} +0 -0
- /package/dist/{chunk-R3C7KEKY.js.map → chunk-F2VYTYIQ.js.map} +0 -0
- /package/dist/{chunk-CQEMKL24.js.map → chunk-FJLSVTBJ.js.map} +0 -0
- /package/dist/{chunk-LGIJO73Z.js.map → chunk-FJPY27YJ.js.map} +0 -0
- /package/dist/{chunk-JGSMNVB5.js.map → chunk-FJZPATKO.js.map} +0 -0
- /package/dist/{chunk-H3ZACNQ6.js.map → chunk-FLW5LACO.js.map} +0 -0
- /package/dist/{chunk-IRZB32VO.js.map → chunk-G5DVMK4E.js.map} +0 -0
- /package/dist/{chunk-5XEJY6AG.js.map → chunk-GBETAH3G.js.map} +0 -0
- /package/dist/{chunk-HY45YMQX.js.map → chunk-GLNDB4KG.js.map} +0 -0
- /package/dist/{chunk-LYFET6KE.js.map → chunk-H2OBH7SK.js.map} +0 -0
- /package/dist/{chunk-JVBZ42B2.js.map → chunk-H5VA2OWQ.js.map} +0 -0
- /package/dist/{chunk-66LATGGO.js.map → chunk-HBPFTEHZ.js.map} +0 -0
- /package/dist/{chunk-CZJTTZET.js.map → chunk-IEX4KZUY.js.map} +0 -0
- /package/dist/{chunk-HSCS2LW2.js.map → chunk-IG5LQPUN.js.map} +0 -0
- /package/dist/{chunk-B5YG3EGS.js.map → chunk-ILX4QHHH.js.map} +0 -0
- /package/dist/{chunk-4VYMV32U.js.map → chunk-JIZKHO7L.js.map} +0 -0
- /package/dist/{chunk-AYDY7FWS.js.map → chunk-JKEUTGPQ.js.map} +0 -0
- /package/dist/{chunk-LAV3X727.js.map → chunk-JQ2ESL5O.js.map} +0 -0
- /package/dist/{chunk-QN2JIZ46.js.map → chunk-JTSHX4RB.js.map} +0 -0
- /package/dist/{chunk-L5IKPX6D.js.map → chunk-KXF27FC4.js.map} +0 -0
- /package/dist/{chunk-JPG7ALCH.js.map → chunk-LNWBGEKE.js.map} +0 -0
- /package/dist/{chunk-MORWF4JC.js.map → chunk-ML56EPFW.js.map} +0 -0
- /package/dist/{chunk-47QOKKPT.js.map → chunk-MM5K3XXY.js.map} +0 -0
- /package/dist/{chunk-ARYTUUI7.js.map → chunk-MZNUCWQU.js.map} +0 -0
- /package/dist/{chunk-MWPTUX4I.js.map → chunk-NCELDZXG.js.map} +0 -0
- /package/dist/{chunk-ABYONP42.js.map → chunk-NXDG32BY.js.map} +0 -0
- /package/dist/{chunk-5RYRPEXE.js.map → chunk-OVTH3ZHO.js.map} +0 -0
- /package/dist/{chunk-RFKETKV4.js.map → chunk-OZWDFGLQ.js.map} +0 -0
- /package/dist/{chunk-L2YAFMAT.js.map → chunk-P45OX5YT.js.map} +0 -0
- /package/dist/{chunk-GL75LB2U.js.map → chunk-PGRQG254.js.map} +0 -0
- /package/dist/{chunk-JZL6UTLA.js.map → chunk-PO57BOOY.js.map} +0 -0
- /package/dist/{chunk-X2F3PNZY.js.map → chunk-RLRSNB77.js.map} +0 -0
- /package/dist/{chunk-JAQTY4WI.js.map → chunk-S6OVT37M.js.map} +0 -0
- /package/dist/{chunk-MO57FCIH.js.map → chunk-SVYPDGZN.js.map} +0 -0
- /package/dist/{chunk-TATL6AQD.js.map → chunk-THPH57GK.js.map} +0 -0
- /package/dist/{chunk-Y7WX5NK5.js.map → chunk-TZPHBNNS.js.map} +0 -0
- /package/dist/{chunk-FLCQGVLT.js.map → chunk-UBRRCAAI.js.map} +0 -0
- /package/dist/{chunk-2EJDEVHY.js.map → chunk-UHO6CCVA.js.map} +0 -0
- /package/dist/{chunk-G2LBZKLG.js.map → chunk-UXUZA7XH.js.map} +0 -0
- /package/dist/{chunk-DYG225ZX.js.map → chunk-VC6X3C2I.js.map} +0 -0
- /package/dist/{chunk-FXQAB3WS.js.map → chunk-VIQQ3IHI.js.map} +0 -0
- /package/dist/{chunk-LEQXRQ6X.js.map → chunk-VKYP2MQQ.js.map} +0 -0
- /package/dist/{chunk-KOJ7XDQ3.js.map → chunk-WHROCBHG.js.map} +0 -0
- /package/dist/{chunk-K5CZDOJG.js.map → chunk-WT6E5LO4.js.map} +0 -0
- /package/dist/{chunk-S6SLUYTL.js.map → chunk-WTQ6PTMB.js.map} +0 -0
- /package/dist/{chunk-4RFJXFQX.js.map → chunk-XDZFLJ5F.js.map} +0 -0
- /package/dist/{chunk-ZLPAQQZI.js.map → chunk-XIEA775Q.js.map} +0 -0
- /package/dist/{chunk-NTMY5VLN.js.map → chunk-XQUHG7HJ.js.map} +0 -0
- /package/dist/{chunk-4Z2ZRDMG.js.map → chunk-XSG4QXPY.js.map} +0 -0
- /package/dist/{chunk-5JJRVNQQ.js.map → chunk-YHD2RXJC.js.map} +0 -0
- /package/dist/{chunk-VMAPQGL4.js.map → chunk-YHIADGM3.js.map} +0 -0
- /package/dist/{chunk-Q24D6SO6.js.map → chunk-YMLXE6OO.js.map} +0 -0
- /package/dist/{chunk-IF42CZJH.js.map → chunk-YRC6EEM3.js.map} +0 -0
- /package/dist/{chunk-HMCTBCYH.js.map → chunk-YUQ3GDQI.js.map} +0 -0
- /package/dist/{chunk-PRVP6ID7.js.map → chunk-ZNV46UUP.js.map} +0 -0
- /package/dist/{chunk-L4ZKUL5E.js.map → chunk-ZOPKBLGA.js.map} +0 -0
- /package/dist/{chunk-XJPB4XV6.js.map → chunk-ZTBFYRNL.js.map} +0 -0
- /package/dist/{chunk-42R2H2DW.js.map → chunk-ZVUQDK2E.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/files.ts","../src/components/form/utils.ts"],"sourcesContent":["const toBase64 = (file: File): Promise<string> => {\n return new Promise<string>((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => resolve(reader.result as string);\n reader.onerror = (error) => reject(error);\n });\n};\n\nexport const convertFilesToBase64 = async (files: File[]) => {\n const base64Files = await Promise.all(\n files.map(async (file) => {\n const base64 = await toBase64(file);\n return {\n ...file,\n name: file.name,\n size: file.size,\n type: file.type,\n content: base64.split(',')[1],\n };\n }),\n );\n return base64Files;\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Field } from '@/src/flows/types';\nimport { $TSFixMe } from '@/src/types/remoteFlows';\nimport { JSFFields } from '@/src/types/remoteFlows';\nimport { convertFilesToBase64 } from '@/src/lib/files';\nimport { addBusinessDays, isWeekend, nextMonday } from 'date-fns';\nimport get from 'lodash.get';\n\nconst textInputTypes = {\n TEXT: 'text',\n TEXTAREA: 'textarea',\n NUMBER: 'number',\n SELECT: 'select',\n COUNTRIES: 'countries',\n TEL: 'tel',\n EMAIL: 'email',\n MONEY: 'money',\n DATE: 'date',\n DATE_RANGE: 'date-range',\n CURRENCIES: 'currencies',\n TIME: 'time',\n} as const;\n\nconst checkboxTypes = {\n CHECKBOX: 'checkbox',\n ACK_CHECK: 'ack-check',\n} as const;\n\nconst supportedTypes = {\n FILE: 'file',\n RADIO: 'radio',\n /** @deprecated */\n RADIO_CARD: 'radio-card',\n GROUP_ARRAY: 'group-array',\n EXTRA: 'extra',\n STATEMENT: 'statement',\n HIDDEN: 'hidden',\n FIELDSET: 'fieldset',\n FIELDSET_FLAT: 'fieldset-flat',\n WORK_SCHEDULE: 'work-schedule',\n WORK_WEEK_SCHEDULE: 'work-week-schedule',\n /** @deprecated we still display benefits in read-only contract details view, but never in any form */\n BENEFITS: 'benefits',\n SIGNATURE: 'signature',\n SELECT_MULTIPLE: 'select-multiple',\n ...textInputTypes,\n ...checkboxTypes,\n} as const;\n\nexport function round(value: number): number {\n return Math.round((value + Number.EPSILON) * 100) / 100;\n}\n\nfunction convertToValidCost(value: string) {\n return parseFloat(value.replace(/,/g, ''));\n}\n\nexport function convertToCents(\n amount?: number | string | string[] | null | boolean,\n) {\n if (\n amount == null ||\n amount === '' ||\n Number.isNaN(amount) ||\n Array.isArray(amount) ||\n typeof amount === 'boolean'\n ) {\n return null;\n }\n\n let validAmount: number;\n\n if (typeof amount === 'string') {\n validAmount = convertToValidCost(amount);\n } else {\n validAmount = amount;\n }\n\n return round(validAmount * 100);\n}\n\nexport function convertFromCents(amount?: number | string | null) {\n if (amount == null || Number.isNaN(amount)) return null;\n\n let normalizedValue: number;\n\n if (typeof amount === 'string') {\n normalizedValue = convertToValidCost(amount || '0');\n } else {\n normalizedValue = amount;\n }\n\n return round(normalizedValue / 100);\n}\n\nconst trimStringValues = (values: Record<string, any>) =>\n Object.entries(values || {}).reduce<Record<string, any>>(\n (result, [key, value]) => {\n if (Array.isArray(value)) {\n // If the value is an array, recursively process each element\n result[key] = value.map((item) =>\n typeof item === 'object' && item !== null\n ? trimStringValues(item)\n : typeof item === 'string'\n ? item.trim()\n : item,\n );\n } else if (typeof value === 'object' && value !== null) {\n // If the value is an object, recursively process it\n result[key] = trimStringValues(value);\n } else {\n // Otherwise, trim the string or keep the value as is\n result[key] = typeof value === 'string' ? value.trim() : value;\n }\n return result;\n },\n {},\n );\n\n/**\n * Given a list of form values, modify the ones that are readOnly,\n * based on their field config, by adding its defaultValue.\n * This is needed to support readOnly fields that are also conditional\n * based on the \"pivotName\" workaround.\n * @param {Object} values - List with form values { name: value }.\n * @param {Array} fields - Respective form fields configuration.\n */\nfunction prefillReadOnlyFields(values: Record<string, any>, fields: any[]) {\n const newValues: Record<string, any> = {};\n\n fields.forEach((field) => {\n const fieldName = field.name;\n\n if (\n !Object.prototype.hasOwnProperty.call(values, fieldName!) &&\n !(\n field.inputType === supportedTypes.FIELDSET &&\n field.valueGroupingDisabled\n )\n )\n return;\n\n if (\n field.inputType === supportedTypes.FIELDSET &&\n field.valueGroupingDisabled\n ) {\n Object.assign(newValues, prefillReadOnlyFields(values, field.fields));\n return;\n }\n\n if (field.readOnly && field.defaultValue) {\n newValues[fieldName!] = field.defaultValue;\n } else {\n newValues[fieldName!] = values[fieldName!];\n }\n });\n\n return newValues;\n}\n/**\n * Recursively extracts fieldsets' fields values and maps them to the field name\n * For nested fields that are fieldsets with valueGroupingDisabled, the values\n * are extracted one level up\n *\n * @param {Array} fields - Fieldset fields configuration.\n * @param {Object} formValues - List with form values { name: value }.\n * @return {Object} – Raw form values mapped to the field name\n */\nfunction extractFieldsetFieldsValues(\n fields: any[],\n formValues: Record<string, unknown>,\n) {\n return fields.reduce<Record<string, any>>((nestedAcc, subField) => {\n const isFieldsetValueGroupingDisabled =\n subField.inputType === supportedTypes.FIELDSET &&\n subField.valueGroupingDisabled;\n\n if (isFieldsetValueGroupingDisabled) {\n Object.assign(\n nestedAcc,\n extractFieldsetFieldsValues(subField.fields, formValues),\n );\n } else if (\n Object.prototype.hasOwnProperty.call(formValues, subField.name!)\n ) {\n nestedAcc[subField.name!] = formValues[subField.name!];\n }\n\n return nestedAcc;\n }, {});\n}\n\nexport const fieldTypesTransformations: Record<string, any> = {\n [supportedTypes.COUNTRIES]: {\n /**\n * @param {String[] | { name: String }[]} value\n * - Excepted: array of strings.\n * - Edge cases: array of objects. (when using dangerousTransformValue)\n * @returns {String[]} - List of countries\n * @example expected: ['Peru', 'Germany'] -> ['Peru', 'Germany']\n * @example edge cases: [{name: 'Peru'}, {name: 'Germany'}] -> ['Peru', 'Germany']\n */\n transformValueToAPI:\n (field: any) => (selectedCountries: string[] | { name: string }[]) => {\n if (!field.multiple || typeof selectedCountries === 'string') {\n return selectedCountries;\n }\n // NOTE: The value should be an array of strings, however legacy data can come as\n // an array of country objects. So, we always send an array of strings to normalize\n // the data (eg old form values being modified) until DB migration is done !5667\n return selectedCountries.map((option) =>\n typeof option === 'string' ? option : option.name,\n );\n },\n /**\n * Used for react-select, where the country selected is transformed\n * before saving on Formik state. Supports both solo and multi select\n * @param {Object|Object[]} selectedCountry[] - Current selected options\n * @param {String} selectedCountry[].value\n * @param {String} selectedCountry[].name\n * @param {String} selectedCountry[].label\n * @returns {String[]} - List of countries selected\n * @example\n * [{ value: 'Hungria' }] -> ['Hungria']\n */\n transformValue: (selectedCountry: any | any[]) => {\n // name or label are used in dragon. value is used in json-schema-form\n // TODO: it should be the same everywhere — read more at !5667\n const getCountryValue = (opt: any) =>\n opt?.name || opt?.value || opt?.label;\n return Array.isArray(selectedCountry)\n ? selectedCountry.map(getCountryValue) // support multi countries\n : getCountryValue(selectedCountry) || ''; // Fallback to '' in case user removes all countries\n },\n },\n [supportedTypes.NUMBER]: {\n transformValueToAPI: () => (value: string) => {\n // this prevents values with letters such as \"2r\" from being considered valid\n // if the input is invalid, number().cast will return NaN\n const castValue = Number(value);\n\n if (Number.isNaN(castValue)) {\n return value;\n }\n\n return castValue;\n },\n },\n [supportedTypes.MONEY]: {\n transformValueFromAPI: () => (value: string | number) =>\n convertFromCents(value) ?? '',\n transformValueToAPI: () => convertToCents,\n },\n [supportedTypes.RADIO]: {\n transformValueToAPI: (field: any) => (value: string) => {\n if (field.transformToBool) {\n return value === 'yes';\n }\n return value;\n },\n },\n [supportedTypes.CHECKBOX]: {\n transformValueToAPI: (field: any) => (value: string | boolean) => {\n if (value === undefined) {\n return false;\n }\n\n if (field.const && value === true) {\n return field.const;\n }\n return value;\n },\n },\n [supportedTypes.SELECT]: {\n /**\n * Used for react-select, where the value is transformed\n * before saving on Formik state.\n * @param {Object | Object[]} option - Object structure with options config\n * @param {String} option[].value - Key for the API\n * @param {Array} this.options[].label - Friendly label\n * @example\n * [{ value: '1', label: 'One' }, { value: '2', label: 'Two' }] -> [\"One\", \"Two\"]\n * { value: '1', label: 'One' } -> \"One\"\n * {} -> \"\"\n */\n transformValue: (option: any | any[]) =>\n Array.isArray(option)\n ? option.map((opt) => opt.value) // multi-options\n : (option?.value ?? ''), // Fallback to '' in case user removes all options,\n },\n [supportedTypes.FILE]: {\n transformValueToAPI: () => async (files: File[]) => {\n if (!files) {\n return null;\n }\n\n return await convertFilesToBase64(files);\n },\n },\n};\nexport async function parseFormValuesToAPI(\n formValues: Record<string, any> = {},\n fields: any[],\n) {\n const filteredFields = fields.filter(\n (field) =>\n formValues[field.name!] ||\n (field.inputType === supportedTypes.FIELDSET &&\n field.valueGroupingDisabled),\n );\n\n const parsedFieldsWithValues = await Promise.all(\n filteredFields.map(async (field) => {\n const acc: Record<string, any> = {};\n\n switch (field.inputType) {\n case supportedTypes.FIELDSET: {\n const fieldset = field;\n if (fieldset.valueGroupingDisabled) {\n const nestedFormValues = extractFieldsetFieldsValues(\n fieldset.fields,\n formValues,\n );\n\n Object.assign(\n acc,\n await parseFormValuesToAPI(nestedFormValues, fieldset.fields),\n );\n } else {\n const fieldsetValue = formValues[field.name!];\n\n // Filter out empty properties from fieldset objects\n // this code avoids sending department: {id: '1234', name: ''} or even department: {id: undefined, name: undefined}\n if (\n fieldsetValue &&\n typeof fieldsetValue === 'object' &&\n !Array.isArray(fieldsetValue)\n ) {\n const cleanedValue = Object.fromEntries(\n Object.entries(fieldsetValue).filter(([, value]) => {\n // Keep the property if it has a meaningful value\n return value !== '' && value !== null && value !== undefined;\n }),\n );\n\n acc[field.name!] =\n Object.keys(cleanedValue).length > 0\n ? await parseFormValuesToAPI(cleanedValue, fieldset.fields)\n : undefined;\n } else {\n acc[field.name!] = await parseFormValuesToAPI(\n fieldsetValue,\n fieldset.fields,\n );\n }\n }\n break;\n }\n\n case supportedTypes.TEXTAREA:\n case supportedTypes.TEXT:\n // Attempt to remove null bytes from form values - https://gitlab.com/remote-com/employ-starbase/tracker/-/issues/10670\n acc[field.name] = formValues[field.name].replace(/\\0/g, '');\n break;\n\n case supportedTypes.GROUP_ARRAY: {\n // NOTE: The field `name` in group arrays represents a path, but we only\n // need the last part of it which is represented by `nameKey`.\n const transformedFields = field?.fields?.().map((subField: any) => ({\n ...subField,\n name: subField.nameKey || '',\n }));\n\n const parsedFieldValues = await Promise.all(\n formValues[field.name]?.map((fieldValues: Record<string, any>) =>\n parseFormValuesToAPI(fieldValues, transformedFields),\n ) || [],\n );\n\n acc[field.name] = parsedFieldValues;\n break;\n }\n\n case supportedTypes.EXTRA: {\n const extraField = field;\n if (extraField.includeValueToApi !== false) {\n const formValue = formValues[extraField.name];\n const fieldTransformValueToAPI =\n extraField?.transformValueToAPI ||\n fieldTypesTransformations[extraField.inputType]\n ?.transformValueToAPI;\n\n if (fieldTransformValueToAPI) {\n const result = fieldTransformValueToAPI(field)(formValue);\n // Await if it's a promise\n acc[extraField.name] =\n result instanceof Promise ? await result : result;\n break;\n }\n\n acc[extraField.name] = formValue;\n break;\n }\n acc[extraField.name] = undefined;\n break;\n }\n\n default: {\n const formValue = formValues[field.name];\n const fieldTransformValueToAPI =\n field?.transformValueToAPI ||\n fieldTypesTransformations[field.inputType]?.transformValueToAPI;\n\n if (fieldTransformValueToAPI) {\n const result = fieldTransformValueToAPI(field)(formValue);\n // Await if it's a promise - THIS IS THE KEY FIX\n acc[field.name] = result instanceof Promise ? await result : result;\n break;\n }\n acc[field.name] = formValue;\n break;\n }\n }\n\n if (field.forcedValue !== undefined) {\n acc[field.name!] = field.forcedValue;\n }\n\n return acc;\n }),\n );\n\n // Merge all accumulated objects\n return parsedFieldsWithValues.reduce(\n (acc, current) => ({ ...acc, ...current }),\n { ...formValues },\n );\n}\n\nfunction isFieldVisible(field: any, formValues: Record<string, unknown>) {\n if (field.visibilityCondition) {\n return field.visibilityCondition(formValues);\n }\n\n if (typeof field.isVisible !== 'undefined') {\n return Boolean(field.isVisible);\n }\n\n return true;\n}\n\nfunction applyFieldDynamicProperties(\n field: any,\n values: Record<string, unknown> | Record<string, unknown>[],\n) {\n if (field.calculateDynamicProperties) {\n return {\n ...field,\n ...(field.calculateDynamicProperties(values) || {}),\n };\n }\n\n return field;\n}\n\nfunction excludeValuesInvisible(\n values: any,\n fields: any[],\n keepTruthyInvisibleValues?: boolean,\n parentFieldKeyPath?: string,\n) {\n const valuesAsked: Record<string, any> = {};\n\n fields\n .map((field) => applyFieldDynamicProperties(field, values))\n .forEach((field) => {\n let fieldKeyPath = field.name;\n if (parentFieldKeyPath) {\n fieldKeyPath = fieldKeyPath\n ? `${parentFieldKeyPath}.${field.name}`\n : parentFieldKeyPath;\n }\n\n const valueOfField = get(values, fieldKeyPath!);\n\n // keepTruthyInvisibleValues: false/undefined -> remove invisible field\n // keepTruthyInvisibleValues: true -> keep invisible field if it has a value\n if (\n !isFieldVisible(field, values) &&\n !(keepTruthyInvisibleValues && !!valueOfField)\n ) {\n return;\n }\n\n if (field.meta?.ignoreValue) {\n return;\n }\n\n if (field.inputType === 'fieldset' && field.valueGroupingDisabled) {\n Object.assign(\n valuesAsked,\n excludeValuesInvisible(\n values,\n field.fields,\n keepTruthyInvisibleValues,\n fieldKeyPath,\n ),\n );\n } else if (Array.isArray(field.fields)) {\n valuesAsked[field.name!] = excludeValuesInvisible(\n values,\n field.fields,\n keepTruthyInvisibleValues,\n fieldKeyPath,\n );\n } else {\n if (valueOfField === undefined) {\n return;\n }\n valuesAsked[field.name!] = valueOfField;\n }\n });\n\n return valuesAsked;\n}\n\nfunction removeEmptyValues<T extends Record<string, any>>(\n obj: T,\n): Record<string, any> {\n return Object.fromEntries(\n Object.entries(obj).filter(\n ([, value]) => value !== undefined && value !== null && value !== '',\n ),\n );\n}\n\nfunction cleanUnderscoreFields(obj: Record<string, any>): Record<string, any> {\n if (Array.isArray(obj)) {\n return obj.map(cleanUnderscoreFields);\n }\n if (obj && typeof obj === 'object') {\n return Object.entries(obj).reduce(\n (acc, [key, value]) => {\n if (!key.startsWith('_')) {\n acc[key] = cleanUnderscoreFields(value);\n }\n return acc;\n },\n {} as Record<string, any>,\n );\n }\n return obj;\n}\n\nexport async function parseSubmitValues(\n formValues: Record<string, any>,\n fields: any[],\n config?: { keepInvisibleValues?: boolean },\n) {\n const visibleFormValues = config?.keepInvisibleValues\n ? formValues\n : excludeValuesInvisible(formValues, fields);\n const convertedFormValues = await parseFormValuesToAPI(\n visibleFormValues,\n fields,\n );\n const formValuesWithTrimmedStrings = trimStringValues(convertedFormValues);\n\n const formValuesWithUndefined = removeEmptyValues(\n formValuesWithTrimmedStrings,\n );\n\n const valuesWithReadOnly = prefillReadOnlyFields(\n formValuesWithUndefined,\n fields,\n );\n return cleanUnderscoreFields(valuesWithReadOnly);\n}\n\nexport async function parseJSFToValidate(\n formValues: Record<string, any>,\n fields: JSFFields,\n config: { isPartialValidation: boolean } = {\n isPartialValidation: false,\n },\n) {\n const valuesParsed = await parseSubmitValues(formValues, fields, {\n /* We cannot exclude invisible fields (excludeValuesInvisible) because\n they are needed for conditional fields validations */\n keepInvisibleValues: config?.isPartialValidation,\n });\n return valuesParsed;\n}\n\nfunction castFieldTo<T>(field: Field) {\n return field as unknown as T;\n}\n\nfunction getDefaultValueForType(type: string) {\n switch (type) {\n case supportedTypes.FILE:\n return undefined; // Allows fallback values in function declarations to be used\n default:\n return '';\n }\n}\n\nfunction getInitialDefaultValue(\n defaultValues: Record<string, any>,\n field: Field,\n) {\n // lodash get is needed because some values could be nested object, like billing address\n // use camelCase to support forms with fields in snake_case or kebab_case.\n const defaultFieldValue = get(defaultValues, field.name);\n const fieldTransformValueFromAPI =\n field?.transformValueFromAPI ||\n fieldTypesTransformations[field.inputType]?.transformValueFromAPI;\n\n if (fieldTransformValueFromAPI) {\n return fieldTransformValueFromAPI(field)(defaultFieldValue);\n }\n\n // TODO: We need to get rid of value as fn for json-schema. Related !5560\n const generatedValue =\n typeof field.value === 'function'\n ? field.value(defaultFieldValue, defaultValues)\n : null;\n\n // field.value is deprecated. should use \"default\" instead.\n const defaultValueDeprecated =\n typeof field.value !== 'function' ? field.value : null;\n const initialValueForCheckboxAsBool =\n castFieldTo<$TSFixMe>(field).checkboxValue === true\n ? defaultFieldValue || false\n : null;\n\n // nullish coalescing but excluding empty strings. (to support 0 (zero) as valid numbers)\n const excludeString = (val: any) => (val === '' ? undefined : val);\n\n return (\n excludeString(generatedValue) ??\n excludeString(defaultFieldValue) ??\n excludeString(defaultValueDeprecated) ??\n excludeString(field.default) ??\n initialValueForCheckboxAsBool ??\n getDefaultValueForType(field.inputType)\n );\n}\n\n/**\n * Get initial values for sub fields within fieldsets\n * @param {Object} field The form field\n * @param {Object} defaultValues The form default values\n * @param {String=} parentFieldKeyPath The path to the parent field using dot-notation\n * @returns {Object} The initial values for a fieldset\n */\nfunction getInitialSubFieldValues(\n field: $TSFixMe,\n defaultValues: Record<string, unknown>,\n parentFieldKeyPath?: string,\n) {\n const initialValue: Record<string, Record<string, unknown>> = {};\n\n let fieldKeyPath = field.name;\n\n if (parentFieldKeyPath) {\n fieldKeyPath = fieldKeyPath\n ? `${parentFieldKeyPath}.${fieldKeyPath}`\n : parentFieldKeyPath;\n }\n\n const subFields = field.fields;\n\n if (Array.isArray(subFields)) {\n const subFieldValues = {};\n\n subFields.forEach((subField) => {\n Object.assign(\n subFieldValues,\n getInitialSubFieldValues(subField, defaultValues, fieldKeyPath),\n );\n });\n\n if (\n field.inputType === supportedTypes.FIELDSET &&\n field.valueGroupingDisabled\n ) {\n Object.assign(initialValue, subFieldValues);\n } else {\n initialValue[field.name!] = subFieldValues;\n }\n } else {\n initialValue[field.name!] = getInitialDefaultValue(defaultValues, {\n ...field,\n // NOTE: To utilize the `get` function from `lodash` in `getInitialDefaultValue` correctly\n // we need to use the field path instead of just its name.\n name: fieldKeyPath,\n });\n }\n\n return initialValue;\n}\n\nexport function getInitialValues(\n fields: JSFFields,\n defaultValues: Record<string, unknown>,\n) {\n const initialValues: Record<string, unknown> = {};\n const defaultFieldValues = defaultValues;\n\n // loop over fields array\n // if prop does not exit in the initialValues object,\n // pluck off the name and value props and add it to the initialValues object;\n fields\n .map((field) => applyFieldDynamicProperties(field, defaultFieldValues))\n .forEach((field) => {\n switch (field.inputType) {\n case supportedTypes.FIELDSET: {\n if (field.valueGroupingDisabled) {\n Object.assign(\n initialValues,\n getInitialValues(field.fields, defaultFieldValues),\n );\n } else {\n const subFieldValues = getInitialSubFieldValues(\n field,\n defaultFieldValues,\n );\n Object.assign(initialValues, subFieldValues);\n }\n break;\n }\n default: {\n if (!initialValues[field.name]) {\n initialValues[field.name] = getInitialDefaultValue(\n defaultFieldValues,\n field,\n );\n }\n break;\n }\n }\n });\n\n return initialValues;\n}\n\n/**\n * Wraps fields listed in fieldsets with a fieldset field.\n * @param fields - Complete fields list.\n * @param fieldsets - fields list to be wrapped in a fieldset field.\n * @param values - Values for each field.\n * @returns The fields with the fieldsets wrapped.\n */\nexport function getFieldsWithFlatFieldsets({\n fields = [],\n fieldsets = {},\n values,\n}: {\n fields: any[];\n fieldsets: Record<string, { propertiesByName: string[]; title: string }>;\n values: Record<string, unknown>;\n}) {\n const flatFieldsetsKeys = Object.keys(fieldsets);\n\n if (!flatFieldsetsKeys?.length) {\n return fields;\n }\n\n const flatFieldsetsFieldNames = new Set(\n flatFieldsetsKeys.flatMap(\n (flatFieldsetKey) => fieldsets[flatFieldsetKey]?.propertiesByName ?? [],\n ),\n );\n\n const flatFieldsetsWithFields = flatFieldsetsKeys.map((flatFieldsetKey) => {\n const { propertiesByName: flatFieldsetFields = [], ...rest } =\n fieldsets[flatFieldsetKey];\n\n const childFields = flatFieldsetFields\n .map((name) => fields.find((f) => f.name === name))\n .filter((field): field is any => !!field);\n\n return {\n ...rest,\n name: flatFieldsetKey,\n type: 'fieldset-flat',\n inputType: 'fieldset-flat',\n fields: childFields,\n label: fieldsets[flatFieldsetKey].title,\n // Hide the fieldset if none of the children fields are visible.\n isVisible: childFields\n .map((childField) => applyFieldDynamicProperties(childField, values))\n .some((childField) => isFieldVisible(childField, values)),\n };\n });\n\n const sortedFields = flatFieldsetsWithFields.reduce((accumulator, field) => {\n const accumulatedFieldsSorted = [...accumulator];\n\n /**\n * We place the flat fieldset at the original position of its first field.\n * If no field is found, we move it to the end.\n */\n const fieldsetPosition = field.fields[0]\n ? accumulator.findIndex(\n (accumulatorItem) => accumulatorItem.name === field.fields[0].name,\n )\n : accumulator.length;\n\n accumulatedFieldsSorted.splice(\n fieldsetPosition,\n 0,\n field as unknown as any,\n );\n\n return accumulatedFieldsSorted;\n }, fields);\n\n const filteredFields = sortedFields.filter(\n (field) => !flatFieldsetsFieldNames.has(field.name!),\n );\n\n return filteredFields;\n}\n\nexport function enableAckFields(\n fields: JSFFields,\n values: Record<string, unknown>,\n) {\n let result = values;\n fields.forEach((field) => {\n if ('const' in field) {\n result = Object.fromEntries(\n Object.entries(values).map(([k, v]) => {\n if (k === field.name) {\n return [k, field.const];\n }\n return [k, v];\n }),\n );\n }\n });\n return result;\n}\n\n/**\n * Get the minimum start date for the onboarding process.\n * @param minOnBoardingTime\n * @returns Date\n */\nexport function getMinStartDate(minOnBoardingTime: number) {\n const today = new Date();\n\n // Make sure our base date is UTC and set the time to 00:00:00\n today.setDate(today.getUTCDate());\n today.setHours(0, 0, 0, 0);\n\n // The + 1 ensures you get the full preparation time before the employee can actually start working.\n // It's the difference between \"preparation completes on this day\" vs \"earliest possible start date after preparation\".\n const minDate = addBusinessDays(today, minOnBoardingTime + 1);\n return isWeekend(minDate) ? nextMonday(minDate) : minDate;\n}\n"],"mappings":"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","names":["toBase64","__name","file","resolve","reject","reader","error","convertFilesToBase64","files","base64","addBusinessDays","isWeekend","nextMonday","get","textInputTypes","checkboxTypes","supportedTypes","round","value","__name","convertToValidCost","convertToCents","amount","validAmount","convertFromCents","normalizedValue","trimStringValues","values","result","key","item","prefillReadOnlyFields","fields","newValues","field","fieldName","extractFieldsetFieldsValues","formValues","nestedAcc","subField","fieldTypesTransformations","selectedCountries","option","selectedCountry","getCountryValue","opt","castValue","files","convertFilesToBase64","parseFormValuesToAPI","filteredFields","acc","fieldset","nestedFormValues","fieldsetValue","cleanedValue","transformedFields","parsedFieldValues","fieldValues","extraField","formValue","fieldTransformValueToAPI","current","isFieldVisible","applyFieldDynamicProperties","excludeValuesInvisible","keepTruthyInvisibleValues","parentFieldKeyPath","valuesAsked","fieldKeyPath","valueOfField","get","removeEmptyValues","obj","cleanUnderscoreFields","parseSubmitValues","config","visibleFormValues","convertedFormValues","formValuesWithTrimmedStrings","formValuesWithUndefined","valuesWithReadOnly","parseJSFToValidate","getDefaultValueForType","type","supportedTypes","__name","getInitialDefaultValue","defaultValues","field","defaultFieldValue","get","fieldTransformValueFromAPI","fieldTypesTransformations","generatedValue","defaultValueDeprecated","initialValueForCheckboxAsBool","excludeString","val","getInitialSubFieldValues","parentFieldKeyPath","initialValue","fieldKeyPath","subFields","subFieldValues","subField","getInitialValues","fields","initialValues","defaultFieldValues","applyFieldDynamicProperties","getFieldsWithFlatFieldsets","fieldsets","values","flatFieldsetsKeys","flatFieldsetsFieldNames","flatFieldsetKey","flatFieldsetFields","rest","childFields","name","f","childField","isFieldVisible","accumulator","accumulatedFieldsSorted","fieldsetPosition","accumulatorItem","enableAckFields","result","k","v","getMinStartDate","minOnBoardingTime","today","minDate","addBusinessDays","isWeekend","nextMonday"]}
|
package/dist/chunk-INTCYXNY.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as l}from"./chunk-W4XNUDHJ.js";import{b as s}from"./chunk-Q3ALCPJN.js";import{b as t}from"./chunk-EAV5VOMZ.js";import{a as i}from"./chunk-P37U34EQ.js";import{jsx as g}from"react/jsx-runtime";function F({components:d,onSubmit:c,onSuccess:m,onError:a}){let{contractorOnboardingBag:r}=s(),p=i(async e=>{try{let n=await r.parseFormValues(e);await c?.(n);let o=await r.onSubmit(e);if(o?.data){await m?.(o?.data),r?.next();return}if(o?.error){let u=t(o?.fieldErrors||[],r.meta?.fields?.pricing_plan);a?.({error:o?.error,rawError:o?.rawError,fieldErrors:u})}}catch(n){a?.({error:n,rawError:n,fieldErrors:[]})}},"handleSubmit"),P=r.stepState.values?.pricing_plan||r.initialValues.pricing_plan;return g(l,{components:d,defaultValues:P,onSubmit:p})}i(F,"PricingPlanStep");export{F as a};
|
|
2
|
-
//# sourceMappingURL=chunk-INTCYXNY.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/ContractorOnboarding/components/PricingPlan.tsx"],"sourcesContent":["import { $TSFixMe, Components } from '@/src/types/remoteFlows';\nimport {\n normalizeFieldErrors,\n NormalizedFieldError,\n} from '@/src/lib/mutations';\nimport { useContractorOnboardingContext } from '@/src/flows/ContractorOnboarding/context';\nimport { ContractorOnboardingForm } from '@/src/flows/ContractorOnboarding/components/ContractorOnboardingForm';\nimport {\n PricingPlanFormPayload,\n PricingPlanResponse,\n} from '@/src/flows/ContractorOnboarding/types';\n\ntype PricingPlanStepProps = {\n /**\n * Components to override the default field components used in the form.\n */\n components?: Components;\n /*\n * The function is called when the form is submitted. It receives the form values as an argument.\n */\n onSubmit?: (payload: PricingPlanFormPayload) => void | Promise<void>;\n /*\n * The function is called when the form submission is successful.\n */\n onSuccess?: (data: PricingPlanResponse) => void | Promise<void>;\n /*\n * The function is called when an error occurs during form submission.\n */\n onError?: ({\n error,\n rawError,\n fieldErrors,\n }: {\n error: Error;\n rawError: Record<string, unknown>;\n fieldErrors: NormalizedFieldError[];\n }) => void;\n};\n\nexport function PricingPlanStep({\n components,\n onSubmit,\n onSuccess,\n onError,\n}: PricingPlanStepProps) {\n const { contractorOnboardingBag } = useContractorOnboardingContext();\n\n const handleSubmit = async (payload: $TSFixMe) => {\n try {\n const parsedValues =\n await contractorOnboardingBag.parseFormValues(payload);\n await onSubmit?.(parsedValues as $TSFixMe);\n const response = await contractorOnboardingBag.onSubmit(payload);\n if (response?.data) {\n await onSuccess?.(response?.data as $TSFixMe); // TODO: add type\n contractorOnboardingBag?.next();\n return;\n }\n if (response?.error) {\n const normalizedFieldErrors = normalizeFieldErrors(\n response?.fieldErrors || [],\n contractorOnboardingBag.meta?.fields?.pricing_plan,\n );\n\n onError?.({\n error: response?.error,\n rawError: response?.rawError,\n fieldErrors: normalizedFieldErrors,\n });\n }\n } catch (error: unknown) {\n onError?.({\n error: error as Error,\n rawError: error as Record<string, unknown>,\n fieldErrors: [],\n });\n }\n };\n\n const initialValues =\n contractorOnboardingBag.stepState.values?.pricing_plan ||\n contractorOnboardingBag.initialValues.pricing_plan;\n\n return (\n <ContractorOnboardingForm\n components={components}\n defaultValues={initialValues}\n onSubmit={handleSubmit}\n />\n );\n}\n"],"mappings":"gKAoFI,cAAAA,MAAA,oBA7CG,SAASC,EAAgB,CAC9B,WAAAC,EACA,SAAAC,EACA,UAAAC,EACA,QAAAC,CACF,EAAyB,CACvB,GAAM,CAAE,wBAAAC,CAAwB,EAAIC,EAA+B,EAE7DC,EAAeC,EAAA,MAAOC,GAAsB,CAChD,GAAI,CACF,IAAMC,EACJ,MAAML,EAAwB,gBAAgBI,CAAO,EACvD,MAAMP,IAAWQ,CAAwB,EACzC,IAAMC,EAAW,MAAMN,EAAwB,SAASI,CAAO,EAC/D,GAAIE,GAAU,KAAM,CAClB,MAAMR,IAAYQ,GAAU,IAAgB,EAC5CN,GAAyB,KAAK,EAC9B,MACF,CACA,GAAIM,GAAU,MAAO,CACnB,IAAMC,EAAwBC,EAC5BF,GAAU,aAAe,CAAC,EAC1BN,EAAwB,MAAM,QAAQ,YACxC,EAEAD,IAAU,CACR,MAAOO,GAAU,MACjB,SAAUA,GAAU,SACpB,YAAaC,CACf,CAAC,CACH,CACF,OAASE,EAAgB,CACvBV,IAAU,CACR,MAAOU,EACP,SAAUA,EACV,YAAa,CAAC,CAChB,CAAC,CACH,CACF,EA9BqB,gBAgCfC,EACJV,EAAwB,UAAU,QAAQ,cAC1CA,EAAwB,cAAc,aAExC,OACEN,EAACiB,EAAA,CACC,WAAYf,EACZ,cAAec,EACf,SAAUR,EACZ,CAEJ,CAnDgBC,EAAAR,EAAA","names":["jsx","PricingPlanStep","components","onSubmit","onSuccess","onError","contractorOnboardingBag","useContractorOnboardingContext","handleSubmit","__name","payload","parsedValues","response","normalizedFieldErrors","normalizeFieldErrors","error","initialValues","ContractorOnboardingForm"]}
|
package/dist/chunk-KLTLJUTG.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as wt}from"./chunk-K5CZDOJG.js";import{a as Ct}from"./chunk-3UDRMQNE.js";import{a as yt,b as _t,c as St,d as gt}from"./chunk-V63WMKGL.js";import{a as ct,b as lt,c as dt,e as mt,f as ut,g as pt,h as ft}from"./chunk-CVSWYOU2.js";import{a as I,b as B,c as st}from"./chunk-3UDG4IJO.js";import{a as et,f as nt,h as ot,i as rt,k as at}from"./chunk-JGSMNVB5.js";import{c as Z,d as tt}from"./chunk-H6YNMT4M.js";import{a as P}from"./chunk-EAV5VOMZ.js";import{d as u,e as v}from"./chunk-HRG5MSVG.js";import{h as b}from"./chunk-ERSXMU5E.js";import{a as it}from"./chunk-5BRMLRS7.js";import{a as m}from"./chunk-P37U34EQ.js";import{useEffect as ie,useMemo as s,useRef as se,useState as q}from"react";import{jsx as bt}from"react/jsx-runtime";var ce={select_country:null,basic_information:"employment_basic_information",contract_details:null,pricing_plan:null,contract_preview:null,review:null},le={employment_basic_information:"basic_information"},de=new Date().toISOString().split("T")[0],he=m(({countryCode:vt,externalId:Pt,employmentId:g,skipSteps:Ft,options:y,initialValues:l})=>{let[a,N]=q(vt||null),[i,ht]=q(g),[j,Vt]=q(void 0),O=se({select_country:{},basic_information:{},contract_details:{},contract_preview:{},pricing_plan:{}}),Et=Ft?.includes("select_country")?_t:yt,{fieldValues:d,stepState:e,setFieldValues:Mt,previousStep:Ot,nextStep:Dt,goToStep:J,setStepValues:U}=it(Et),{data:r,isLoading:R,refetch:Tt}=et(i),{status:C}=r||{},L=C&&Z.includes(C),It=C&&!tt.includes(C),jt=s(()=>C==="invited"?"invited":"not_invited",[C]),H=ot(),Jt=rt(a,y),G=ut(),{mutateAsync:Rt}=P(Jt),W=lt(),Lt=mt(),{mutateAsync:kt}=P(H),{mutateAsync:xt}=P(G),{mutateAsync:At}=P(W),{mutateAsync:$}=P(Lt);g&&r?.country?.code&&!a&&N(r.country.code);let{selectCountryForm:D,isLoading:Bt}=at({jsfModify:y?.jsfModify?.select_country,queryOptions:{enabled:e.currentStep.name==="select_country"}}),{form:_,isLoading:qt}=ft(i,{jsonSchemaVersion:y?.jsonSchemaVersion,queryOptions:{enabled:e.currentStep.name==="pricing_plan"}}),Nt=ce[e.currentStep.name]||"contractor_basic_information",Ut=le[Nt],Ht=r?.[Ut]||{},Gt=m(({form:t,options:o={},query:c={}})=>{let w=Object.keys(d).length>0?{...l,...e.values?.[e.currentStep.name],...d}:{...l,...Ht};return nt({countryCode:a,form:t,fieldValues:w,query:c,options:{...o,queryOptions:{enabled:o.queryOptions?.enabled??!0}}})},"useJSONSchema"),Wt=!!(a&&(e.currentStep.name==="basic_information"||g)),$t=!!(a&&(e.currentStep.name==="contract_details"||g)),{data:p,isLoading:Kt}=Gt({form:"contractor_basic_information",options:{jsfModify:y?.jsfModify?.basic_information,queryOptions:{enabled:Wt}}}),Yt=s(()=>St(r?.basic_information?.provisional_start_date,d?.service_duration?.provisional_start_date),[r?.basic_information?.provisional_start_date,d?.service_duration?.provisional_start_date]),k=s(()=>r?.contractor_type?{standard:I,plus:B,cor:st}[r?.contractor_type]||I:void 0,[r]),{data:f,isLoading:zt}=pt({countryCode:a,fieldValues:d,options:{queryOptions:{enabled:$t},jsfModify:gt(y?.jsfModify?.contract_details,Yt,k,d)}}),Qt=s(()=>{let t=y?.jsfModify?.contract_preview?.fields;return{fields:{contract_preview_header:{...t?.contract_preview_header,"x-jsf-presentation":{Component:m(o=>{let c=t?.contract_preview_header?.["x-jsf-presentation"]?.Component||Ct;return bt(c,{...o})},"Component")}},contract_preview_statement:{...t?.contract_preview_statement,"x-jsf-presentation":{Component:m(o=>{let c=t?.contract_preview_statement?.["x-jsf-presentation"]?.Component||wt;return bt(c,{reviewCompleted:!!d?.review_completed,...o})},"Component")}},signature:{...t?.signature,"x-jsf-presentation":{calculateDynamicProperties:m(o=>({isVisible:!!o.review_completed}),"calculateDynamicProperties"),...t?.signature?.["x-jsf-presentation"]}}}}},[d?.review_completed,y?.jsfModify?.contract_preview]),{data:S}=ct({fieldValues:d,options:{queryOptions:{enabled:e.currentStep.name==="contract_preview"},jsfModify:Qt}}),{data:Xt,isLoading:Zt}=dt({employmentId:i,contractDocumentId:j,options:{queryOptions:{enabled:!!j}}}),n=s(()=>({select_country:D?.fields||[],basic_information:p?.fields||[],pricing_plan:_?.fields||[],contract_details:f?.fields||[],contract_preview:S?.fields||[],review:[]}),[D?.fields,p?.fields,_?.fields,f?.fields,S?.fields]),te={select_country:null,basic_information:p?.meta["x-jsf-fieldsets"],pricing_plan:null,contract_details:f?.meta["x-jsf-fieldsets"],contract_preview:null,review:null},{country:ee,basic_information:T={},contract_details:K={}}=r||{},Y=ee?.code,F=s(()=>v(n.select_country,{country:a||Y||""}),[n.select_country,a,Y]),h=s(()=>{let t={provisional_start_date:de,...l,...T};return v(n.basic_information,t)},[n.basic_information,T,l]),V=s(()=>{let o={...{service_duration:{provisional_start_date:T.provisional_start_date}},...l,...K};return v(n.contract_details,o)},[n.contract_details,K,l,T]),z=s(()=>{let t={...l};return v(n.contract_preview,t)},[n.contract_preview,l]),E=s(()=>{let o={...{subscription:k},...l};return v(n.pricing_plan,o)},[n.pricing_plan,l,k]),ne=s(()=>({select_country:F,basic_information:h,contract_details:V,contract_preview:z,pricing_plan:E}),[F,h,V,z,E]),Q=s(()=>!!(!!(g&&L&&e.currentStep.name!=="review")&&!R&&n.basic_information.length>0&&n.contract_details.length>0),[g,L,R,n.basic_information.length,n.contract_details.length,e.currentStep.name]);ie(()=>{Q&&(O.current={select_country:b(F,n.select_country),basic_information:b(h,n.basic_information),contract_details:b(V,n.contract_details),contract_preview:{},pricing_plan:b(E,n.pricing_plan)},U({select_country:F,basic_information:h,contract_details:V,contract_preview:{},pricing_plan:E,review:{}}),J("review"))},[Q,J,F,h,V,U,n.select_country,n.basic_information,n.contract_details,n.pricing_plan,E]);let oe=m(t=>{J(t)},"goTo"),X=m(async t=>D&&e.currentStep.name==="select_country"?t:p&&e.currentStep.name==="basic_information"?await u(t,p?.fields,{isPartialValidation:!1}):f&&e.currentStep.name==="contract_details"?await u(t,f?.fields,{isPartialValidation:!1}):S&&e.currentStep.name==="contract_preview"?await u(t,S?.fields,{isPartialValidation:!1}):_&&e.currentStep.name==="pricing_plan"?await u(t,_?.fields,{isPartialValidation:!1}):{},"parseFormValues");async function re(t){let o=e.currentStep.name;o in O.current&&(O.current[o]=b(t,n[o]));let c=await X(t);switch(e.currentStep.name){case"select_country":return N(c.country),Promise.resolve({data:{countryCode:c.country}});case"basic_information":{let x=!i&&a,w=i&&a&&r?.country&&r?.country.code!==a;if(x||w){let A={basic_information:c,type:"contractor",country_code:a,external_id:Pt};try{let M=await kt(A),ae=M.data?.data?.employment?.id;return ht(ae),M}catch(M){throw console.error("Error creating onboarding:",M),M}}else if(i)return Rt({employmentId:i,basic_information:c});return}case"contract_details":{let w=await xt({employmentId:i,payload:{contract_document:c}}),A=w.data?.data?.contract_document?.id;return Vt(A),w}case"contract_preview":return At({employmentId:i,contractDocumentId:j,payload:{signature:t.signature}});case"pricing_plan":return t.subscription==I?$({employmentId:i,payload:{operation:"downgrade"}}):t.subscription==B?$({employmentId:i,payload:{operation:"upgrade"}}):Promise.reject({error:"invalid selection"});default:throw new Error("Invalid step state")}}return m(re,"onSubmit"),{isLoading:Bt||Kt||R||zt||qt||Zt,fieldValues:d,stepState:e,checkFieldUpdates:Mt,back:Ot,next:Dt,goTo:oe,onSubmit:re,fields:n[e.currentStep.name],meta:{fields:O.current,fieldsets:te[e.currentStep.name]},parseFormValues:X,handleValidation:m(async t=>{if(e.currentStep.name==="select_country")return D.handleValidation(t);if(p&&e.currentStep.name==="basic_information"){let o=await u(t,p?.fields,{isPartialValidation:!1});return p?.handleValidation(o)}if(f&&e.currentStep.name==="contract_details"){let o=await u(t,f?.fields,{isPartialValidation:!1});return f?.handleValidation(o)}if(S&&e.currentStep.name==="contract_preview"){let o=await u(t,S?.fields,{isPartialValidation:!0});return S?.handleValidation(o)}if(_&&e.currentStep.name==="pricing_plan"){let o=await u(t,_?.fields,{isPartialValidation:!1});return _?.handleValidation(o)}return null},"handleValidation"),initialValues:ne,employmentId:i,refetchEmployment:Tt,isSubmitting:H.isPending||G.isPending||W.isPending,documentPreviewPdf:Xt,canInvite:It,isEmploymentReadOnly:L,invitedStatus:jt,employment:r}},"useContractorOnboarding");export{he as a};
|
|
2
|
-
//# sourceMappingURL=chunk-KLTLJUTG.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/ContractorOnboarding/hooks.tsx"],"sourcesContent":["import { useEffect, useMemo, useRef, useState } from 'react';\nimport { FieldValues } from 'react-hook-form';\nimport { JSFCustomComponentProps, JSFFields } from '@/src/types/remoteFlows';\nimport {\n CreateContractDocument,\n Employment,\n EmploymentCreateParams,\n} from '@/src/client/types.gen';\nimport {\n getInitialValues,\n parseJSFToValidate,\n} from '@/src/components/form/utils';\nimport { ValidationResult } from '@remoteoss/remote-json-schema-form-kit';\nimport {\n useContractorOnboardingDetailsSchema,\n useCreateContractorContractDocument,\n useGetContractDocumentSignatureSchema,\n usePostManageContractorSubscriptions,\n useContractorSubscriptionSchemaField,\n useGetShowContractDocument,\n useSignContractDocument,\n} from '@/src/flows/ContractorOnboarding/api';\nimport { ContractorOnboardingFlowProps } from '@/src/flows/ContractorOnboarding/types';\nimport {\n STEPS,\n STEPS_WITHOUT_SELECT_COUNTRY,\n calculateProvisionalStartDateDescription,\n buildContractDetailsJsfModify,\n} from '@/src/flows/ContractorOnboarding/utils';\nimport {\n useCountriesSchemaField,\n useCreateEmployment,\n useEmployment,\n useJSONSchemaForm,\n useUpdateEmployment,\n} from '@/src/flows/Onboarding/api';\nimport {\n disabledInviteButtonEmploymentStatus,\n reviewStepAllowedEmploymentStatus,\n} from '@/src/flows/Onboarding/utils';\nimport { FlowOptions, JSFModify, JSONSchemaFormType } from '@/src/flows/types';\nimport { Step, useStepState } from '@/src/flows/useStepState';\nimport { mutationToPromise } from '@/src/lib/mutations';\nimport { prettifyFormValues } from '@/src/lib/utils';\nimport { $TSFixMe, JSFFieldset, Meta } from '@/src/types/remoteFlows';\nimport {\n contractorStandardProductIdentifier,\n contractorPlusProductIdentifier,\n corProductIdentifier,\n} from '@/src/flows/ContractorOnboarding/constants';\nimport { ContractPreviewHeader } from '@/src/flows/ContractorOnboarding/components/ContractPreviewHeader';\nimport { ContractPreviewStatement } from '@/src/flows/ContractorOnboarding/components/ContractPreviewStatement';\n\ntype useContractorOnboardingProps = Omit<\n ContractorOnboardingFlowProps,\n 'render'\n>;\n\nconst stepToFormSchemaMap: Record<\n keyof typeof STEPS,\n JSONSchemaFormType | null\n> = {\n select_country: null,\n basic_information: 'employment_basic_information',\n contract_details: null,\n pricing_plan: null,\n contract_preview: null,\n review: null,\n};\n\nconst jsonSchemaToEmployment: Partial<\n Record<JSONSchemaFormType, keyof Employment>\n> = {\n employment_basic_information: 'basic_information',\n};\n\nconst provisionalStartDate = new Date().toISOString().split('T')[0];\n\nexport const useContractorOnboarding = ({\n countryCode,\n externalId,\n employmentId,\n skipSteps,\n options,\n initialValues: onboardingInitialValues,\n}: useContractorOnboardingProps) => {\n const [internalCountryCode, setInternalCountryCode] = useState<string | null>(\n countryCode || null,\n );\n const [internalEmploymentId, setInternalEmploymentId] = useState<\n string | undefined\n >(employmentId);\n const [internalContractDocumentId, setInternalContractDocumentId] = useState<\n string | undefined\n >(undefined);\n const fieldsMetaRef = useRef<{\n select_country: Meta;\n basic_information: Meta;\n contract_details: Meta;\n contract_preview: Meta;\n pricing_plan: Meta;\n }>({\n select_country: {},\n basic_information: {},\n contract_details: {},\n contract_preview: {},\n pricing_plan: {},\n });\n\n const stepsToUse = skipSteps?.includes('select_country')\n ? STEPS_WITHOUT_SELECT_COUNTRY\n : STEPS;\n\n const {\n fieldValues,\n stepState,\n setFieldValues,\n previousStep,\n nextStep,\n goToStep,\n setStepValues,\n } = useStepState(\n stepsToUse as Record<keyof typeof STEPS, Step<keyof typeof STEPS>>,\n );\n\n const {\n data: employment,\n isLoading: isLoadingEmployment,\n refetch: refetchEmployment,\n } = useEmployment(internalEmploymentId);\n\n const { status: employmentStatus } = employment || {};\n\n const isEmploymentReadOnly =\n employmentStatus &&\n reviewStepAllowedEmploymentStatus.includes(employmentStatus);\n\n const canInvite =\n employmentStatus &&\n !disabledInviteButtonEmploymentStatus.includes(employmentStatus);\n\n const invitedStatus: 'invited' | 'not_invited' = useMemo(() => {\n const isInvited = employmentStatus === 'invited';\n\n return isInvited ? 'invited' : 'not_invited';\n }, [employmentStatus]);\n\n const createEmploymentMutation = useCreateEmployment();\n const updateEmploymentMutation = useUpdateEmployment(\n internalCountryCode as string,\n options,\n );\n const createContractorContractDocumentMutation =\n useCreateContractorContractDocument();\n const { mutateAsync: updateEmploymentMutationAsync } = mutationToPromise(\n updateEmploymentMutation,\n );\n const signContractDocumentMutation = useSignContractDocument();\n const manageContractorSubscriptionMutation =\n usePostManageContractorSubscriptions();\n\n const { mutateAsync: createEmploymentMutationAsync } = mutationToPromise(\n createEmploymentMutation,\n );\n\n const { mutateAsync: createContractorContractDocumentMutationAsync } =\n mutationToPromise(createContractorContractDocumentMutation);\n\n const { mutateAsync: signContractDocumentMutationAsync } = mutationToPromise(\n signContractDocumentMutation,\n );\n\n const { mutateAsync: manageContractorSubscriptionMutationAsync } =\n mutationToPromise(manageContractorSubscriptionMutation);\n\n // if the employment is loaded, country code has not been set yet\n // we set the internal country code with the employment country code\n if (employmentId && employment?.country?.code && !internalCountryCode) {\n setInternalCountryCode(employment.country.code);\n }\n\n const { selectCountryForm, isLoading: isLoadingCountries } =\n useCountriesSchemaField({\n jsfModify: options?.jsfModify?.select_country,\n queryOptions: {\n enabled: stepState.currentStep.name === 'select_country',\n },\n });\n\n const {\n form: selectContractorSubscriptionForm,\n isLoading: isLoadingContractorSubscriptions,\n } = useContractorSubscriptionSchemaField(internalEmploymentId as string, {\n jsonSchemaVersion: options?.jsonSchemaVersion,\n queryOptions: {\n enabled: stepState.currentStep.name === 'pricing_plan',\n },\n });\n\n const formType =\n stepToFormSchemaMap[stepState.currentStep.name] ||\n 'contractor_basic_information';\n const employmentKey = jsonSchemaToEmployment[formType] as keyof Employment;\n const serverEmploymentData = (employment?.[employmentKey] || {}) as Record<\n string,\n unknown\n >;\n\n const useJSONSchema = ({\n form,\n options: jsonSchemaOptions = {},\n query = {},\n }: {\n form: JSONSchemaFormType;\n options?: {\n jsfModify?: JSFModify;\n queryOptions?: { enabled?: boolean };\n jsonSchemaVersion?: FlowOptions['jsonSchemaVersion'];\n };\n query?: Record<string, string>;\n }) => {\n const hasUserEnteredAnyValues = Object.keys(fieldValues).length > 0;\n // when you write on the fields, the values are stored in the fieldValues state\n // when values are stored in the stepState is when the user has navigated to the step\n // and then we have the values from the server and the onboardingInitialValues that the user can inject,\n const mergedFormValues = hasUserEnteredAnyValues\n ? {\n ...onboardingInitialValues,\n ...stepState.values?.[stepState.currentStep.name], // Restore values for the current step\n ...fieldValues,\n }\n : {\n ...onboardingInitialValues,\n ...serverEmploymentData,\n };\n\n return useJSONSchemaForm({\n countryCode: internalCountryCode as string,\n form: form,\n fieldValues: mergedFormValues,\n query,\n options: {\n ...jsonSchemaOptions,\n queryOptions: {\n enabled: jsonSchemaOptions.queryOptions?.enabled ?? true,\n },\n },\n });\n };\n\n const isBasicInformationDetailsEnabled = Boolean(\n internalCountryCode &&\n (stepState.currentStep.name === 'basic_information' ||\n Boolean(employmentId)),\n );\n\n const isContractorOnboardingDetailsEnabled = Boolean(\n internalCountryCode &&\n (stepState.currentStep.name === 'contract_details' ||\n Boolean(employmentId)),\n );\n\n const {\n data: basicInformationForm,\n isLoading: isLoadingBasicInformationForm,\n } = useJSONSchema({\n form: 'contractor_basic_information',\n options: {\n jsfModify: options?.jsfModify?.basic_information,\n queryOptions: {\n enabled: isBasicInformationDetailsEnabled,\n },\n },\n });\n\n const descriptionProvisionalStartDate = useMemo(() => {\n return calculateProvisionalStartDateDescription(\n employment?.basic_information?.provisional_start_date as string,\n fieldValues?.service_duration?.provisional_start_date as string,\n );\n }, [\n employment?.basic_information?.provisional_start_date,\n fieldValues?.service_duration?.provisional_start_date,\n ]);\n\n const selectedPricingPlan = useMemo(() => {\n if (!employment?.contractor_type) {\n return undefined;\n }\n const subscriptions = {\n standard: contractorStandardProductIdentifier,\n plus: contractorPlusProductIdentifier,\n cor: corProductIdentifier,\n };\n return (\n subscriptions[\n employment?.contractor_type as keyof typeof subscriptions\n ] || contractorStandardProductIdentifier\n );\n }, [employment]);\n\n const {\n data: contractorOnboardingDetailsForm,\n isLoading: isLoadingContractorOnboardingDetailsForm,\n } = useContractorOnboardingDetailsSchema({\n countryCode: internalCountryCode as string,\n fieldValues: fieldValues,\n options: {\n queryOptions: {\n enabled: isContractorOnboardingDetailsEnabled,\n },\n jsfModify: buildContractDetailsJsfModify(\n options?.jsfModify?.contract_details,\n descriptionProvisionalStartDate,\n selectedPricingPlan,\n fieldValues,\n ),\n },\n });\n\n const mergedContractPreviewJsfModify = useMemo(() => {\n const userFields = options?.jsfModify?.contract_preview?.fields;\n\n return {\n fields: {\n contract_preview_header: {\n ...userFields?.contract_preview_header,\n 'x-jsf-presentation': {\n Component: (props: JSFCustomComponentProps) => {\n const CustomComponent =\n userFields?.contract_preview_header?.['x-jsf-presentation']\n ?.Component || ContractPreviewHeader;\n return <CustomComponent {...props} />;\n },\n },\n },\n contract_preview_statement: {\n ...userFields?.contract_preview_statement,\n 'x-jsf-presentation': {\n Component: (props: JSFCustomComponentProps) => {\n const CustomComponent =\n userFields?.contract_preview_statement?.['x-jsf-presentation']\n ?.Component || ContractPreviewStatement;\n\n return (\n <CustomComponent\n reviewCompleted={Boolean(fieldValues?.review_completed)}\n {...props}\n />\n );\n },\n },\n },\n signature: {\n ...userFields?.signature,\n 'x-jsf-presentation': {\n calculateDynamicProperties: (\n fieldValuesDynamicProperties: Record<string, unknown>,\n ) => {\n return {\n isVisible: Boolean(\n fieldValuesDynamicProperties.review_completed,\n ),\n };\n },\n // Merge any user-provided signature customizations\n ...userFields?.signature?.['x-jsf-presentation'],\n },\n },\n },\n };\n }, [fieldValues?.review_completed, options?.jsfModify?.contract_preview]);\n\n const { data: signatureSchemaForm } = useGetContractDocumentSignatureSchema({\n fieldValues: fieldValues,\n options: {\n queryOptions: {\n enabled: stepState.currentStep.name === 'contract_preview',\n },\n jsfModify: mergedContractPreviewJsfModify,\n },\n });\n\n const { data: documentPreviewPdf, isLoading: isLoadingDocumentPreviewForm } =\n useGetShowContractDocument({\n employmentId: internalEmploymentId as string,\n contractDocumentId: internalContractDocumentId as string,\n options: {\n queryOptions: {\n enabled: Boolean(internalContractDocumentId),\n },\n },\n });\n\n const stepFields: Record<keyof typeof STEPS, JSFFields> = useMemo(\n () => ({\n select_country: selectCountryForm?.fields || [],\n basic_information: basicInformationForm?.fields || [],\n pricing_plan: selectContractorSubscriptionForm?.fields || [],\n contract_details: contractorOnboardingDetailsForm?.fields || [],\n contract_preview: signatureSchemaForm?.fields || [],\n review: [],\n }),\n [\n selectCountryForm?.fields,\n basicInformationForm?.fields,\n selectContractorSubscriptionForm?.fields,\n contractorOnboardingDetailsForm?.fields,\n signatureSchemaForm?.fields,\n ],\n );\n\n const stepFieldsWithFlatFieldsets: Record<\n keyof typeof STEPS,\n JSFFieldset | null | undefined\n > = {\n select_country: null,\n basic_information: basicInformationForm?.meta['x-jsf-fieldsets'],\n pricing_plan: null,\n contract_details: contractorOnboardingDetailsForm?.meta['x-jsf-fieldsets'],\n contract_preview: null,\n review: null,\n };\n\n const {\n country,\n basic_information: employmentBasicInformation = {},\n contract_details: employmentContractDetails = {},\n } = employment || {};\n\n const employmentCountryCode = country?.code;\n\n const selectCountryInitialValues = useMemo(\n () =>\n getInitialValues(stepFields.select_country, {\n country: internalCountryCode || employmentCountryCode || '',\n }),\n [stepFields.select_country, internalCountryCode, employmentCountryCode],\n );\n\n const basicInformationInitialValues = useMemo(() => {\n const initialValues = {\n provisional_start_date: provisionalStartDate,\n ...onboardingInitialValues,\n ...employmentBasicInformation,\n };\n\n return getInitialValues(stepFields.basic_information, initialValues);\n }, [\n stepFields.basic_information,\n employmentBasicInformation,\n onboardingInitialValues,\n ]);\n\n const contractDetailsInitialValues = useMemo(() => {\n const hardcodedValues = {\n service_duration: {\n provisional_start_date:\n employmentBasicInformation.provisional_start_date,\n },\n };\n const initialValues = {\n ...hardcodedValues,\n ...onboardingInitialValues,\n ...employmentContractDetails,\n };\n\n return getInitialValues(stepFields.contract_details, initialValues);\n }, [\n stepFields.contract_details,\n employmentContractDetails,\n onboardingInitialValues,\n employmentBasicInformation,\n ]);\n\n const contractPreviewInitialValues = useMemo(() => {\n // TODO: TBD not sure if contract preview needs to be populated with anything\n const initialValues = {\n ...onboardingInitialValues,\n };\n\n return getInitialValues(stepFields.contract_preview, initialValues);\n }, [stepFields.contract_preview, onboardingInitialValues]);\n\n const pricingPlanInitialValues = useMemo(() => {\n const preselectedPricingPlan = {\n subscription: selectedPricingPlan,\n };\n const initialValues = {\n ...preselectedPricingPlan,\n ...onboardingInitialValues,\n };\n\n return getInitialValues(stepFields.pricing_plan, initialValues);\n }, [stepFields.pricing_plan, onboardingInitialValues, selectedPricingPlan]);\n\n const initialValues = useMemo(() => {\n return {\n select_country: selectCountryInitialValues,\n basic_information: basicInformationInitialValues,\n contract_details: contractDetailsInitialValues,\n contract_preview: contractPreviewInitialValues,\n pricing_plan: pricingPlanInitialValues,\n };\n }, [\n selectCountryInitialValues,\n basicInformationInitialValues,\n contractDetailsInitialValues,\n contractPreviewInitialValues,\n pricingPlanInitialValues,\n ]);\n\n const isNavigatingToReview = useMemo(() => {\n const shouldHandleReadOnlyEmployment = Boolean(\n employmentId &&\n isEmploymentReadOnly &&\n stepState.currentStep.name !== 'review',\n );\n\n return Boolean(\n shouldHandleReadOnlyEmployment &&\n !isLoadingEmployment &&\n stepFields.basic_information.length > 0 &&\n stepFields.contract_details.length > 0,\n );\n }, [\n employmentId,\n isEmploymentReadOnly,\n isLoadingEmployment,\n stepFields.basic_information.length,\n stepFields.contract_details.length,\n stepState.currentStep.name,\n ]);\n\n useEffect(() => {\n if (isNavigatingToReview) {\n fieldsMetaRef.current = {\n select_country: prettifyFormValues(\n selectCountryInitialValues,\n stepFields.select_country,\n ),\n basic_information: prettifyFormValues(\n basicInformationInitialValues,\n stepFields.basic_information,\n ),\n contract_details: prettifyFormValues(\n contractDetailsInitialValues,\n stepFields.contract_details,\n ),\n // TODO: TBD\n contract_preview: {},\n // TODO: The BE needs to return the pricing plan through an endpoint\n // TODO: First correct pricingPlanInitialValues to make this work\n pricing_plan: prettifyFormValues(\n pricingPlanInitialValues,\n stepFields.pricing_plan,\n ),\n };\n\n setStepValues({\n select_country: selectCountryInitialValues,\n basic_information: basicInformationInitialValues,\n contract_details: contractDetailsInitialValues,\n contract_preview: {},\n pricing_plan: pricingPlanInitialValues,\n review: {},\n });\n goToStep('review');\n }\n }, [\n isNavigatingToReview,\n goToStep,\n selectCountryInitialValues,\n basicInformationInitialValues,\n contractDetailsInitialValues,\n setStepValues,\n stepFields.select_country,\n stepFields.basic_information,\n stepFields.contract_details,\n stepFields.pricing_plan,\n pricingPlanInitialValues,\n ]);\n\n const goTo = (step: keyof typeof STEPS) => {\n goToStep(step);\n };\n\n const parseFormValues = async (values: FieldValues) => {\n if (selectCountryForm && stepState.currentStep.name === 'select_country') {\n return values;\n }\n\n if (\n basicInformationForm &&\n stepState.currentStep.name === 'basic_information'\n ) {\n return await parseJSFToValidate(values, basicInformationForm?.fields, {\n isPartialValidation: false,\n });\n }\n\n if (\n contractorOnboardingDetailsForm &&\n stepState.currentStep.name === 'contract_details'\n ) {\n return await parseJSFToValidate(\n values,\n contractorOnboardingDetailsForm?.fields,\n {\n isPartialValidation: false,\n },\n );\n }\n\n if (\n signatureSchemaForm &&\n stepState.currentStep.name === 'contract_preview'\n ) {\n return await parseJSFToValidate(values, signatureSchemaForm?.fields, {\n isPartialValidation: false,\n });\n }\n\n if (\n selectContractorSubscriptionForm &&\n stepState.currentStep.name === 'pricing_plan'\n ) {\n return await parseJSFToValidate(\n values,\n selectContractorSubscriptionForm?.fields,\n {\n isPartialValidation: false,\n },\n );\n }\n\n return {};\n };\n\n async function onSubmit(values: FieldValues) {\n const currentStepName = stepState.currentStep.name;\n if (currentStepName in fieldsMetaRef.current) {\n fieldsMetaRef.current[\n currentStepName as keyof typeof fieldsMetaRef.current\n ] = prettifyFormValues(values, stepFields[currentStepName]);\n }\n const parsedValues = await parseFormValues(values);\n switch (stepState.currentStep.name) {\n case 'select_country': {\n setInternalCountryCode(parsedValues.country);\n return Promise.resolve({ data: { countryCode: parsedValues.country } });\n }\n case 'basic_information': {\n const isEmploymentNotLoaded =\n !internalEmploymentId && internalCountryCode;\n const hasChangedCountry =\n internalEmploymentId &&\n internalCountryCode &&\n employment?.country &&\n employment?.country.code !== internalCountryCode;\n\n if (isEmploymentNotLoaded || hasChangedCountry) {\n const payload: EmploymentCreateParams = {\n basic_information: parsedValues,\n type: 'contractor',\n country_code: internalCountryCode,\n external_id: externalId,\n };\n try {\n const response = await createEmploymentMutationAsync(payload);\n // @ts-expect-error the types from the response are not matching\n const employmentId = response.data?.data?.employment?.id;\n setInternalEmploymentId(employmentId);\n\n return response;\n } catch (error) {\n console.error('Error creating onboarding:', error);\n throw error;\n }\n } else if (internalEmploymentId) {\n return updateEmploymentMutationAsync({\n employmentId: internalEmploymentId,\n basic_information: parsedValues,\n });\n }\n\n return;\n }\n case 'contract_details': {\n const payload: CreateContractDocument = {\n contract_document: parsedValues,\n };\n const response: $TSFixMe =\n await createContractorContractDocumentMutationAsync({\n employmentId: internalEmploymentId as string,\n payload,\n });\n\n const contractDocumentId = response.data?.data?.contract_document?.id;\n setInternalContractDocumentId(contractDocumentId);\n return response;\n }\n\n case 'contract_preview': {\n return signContractDocumentMutationAsync({\n employmentId: internalEmploymentId as string,\n contractDocumentId: internalContractDocumentId as string,\n payload: {\n signature: values.signature,\n },\n });\n }\n case 'pricing_plan': {\n if (values.subscription == contractorStandardProductIdentifier) {\n return manageContractorSubscriptionMutationAsync({\n employmentId: internalEmploymentId as string,\n payload: {\n operation: 'downgrade',\n },\n });\n } else if (values.subscription == contractorPlusProductIdentifier) {\n return manageContractorSubscriptionMutationAsync({\n employmentId: internalEmploymentId as string,\n payload: {\n operation: 'upgrade',\n },\n });\n }\n return Promise.reject({ error: 'invalid selection' });\n }\n\n default: {\n throw new Error('Invalid step state');\n }\n }\n }\n\n const isLoading =\n isLoadingCountries ||\n isLoadingBasicInformationForm ||\n isLoadingEmployment ||\n isLoadingContractorOnboardingDetailsForm ||\n isLoadingContractorSubscriptions ||\n isLoadingDocumentPreviewForm;\n\n return {\n /**\n * Loading state indicating if the flow is loading data\n */\n isLoading,\n\n /**\n * Current state of the form fields for the current step.\n */\n fieldValues,\n\n /**\n * Current step state containing the current step and total number of steps\n */\n stepState,\n\n /**\n * Function to update the current form field values\n * @param values - New form values to set\n */\n checkFieldUpdates: setFieldValues,\n\n /**\n * Function to handle going back to the previous step\n * @returns {void}\n */\n back: previousStep,\n\n /**\n * Function to handle going to the next step\n * @returns {void}\n */\n next: nextStep,\n\n /**\n * Function to handle going to a specific step\n * @param step The step to go to.\n * @returns {void}\n */\n goTo: goTo,\n\n /**\n * Function to handle form submission\n * @param values - Form values to submit\n * @returns Promise resolving to the mutation result\n */\n onSubmit,\n\n /**\n * Array of form fields from the onboarding schema\n */\n fields: stepFields[stepState.currentStep.name],\n\n /**\n * Fields metadata for each step\n */\n meta: {\n fields: fieldsMetaRef.current,\n fieldsets: stepFieldsWithFlatFieldsets[stepState.currentStep.name],\n },\n\n /**\n * Function to parse form values before submission\n * @param values - Form values to parse\n * @returns Parsed form values\n */\n parseFormValues,\n\n /**\n * Function to validate form values against the onboarding schema\n * @param values - Form values to validate\n * @returns Validation result or null if no schema is available\n */\n handleValidation: async (\n values: FieldValues,\n ): Promise<ValidationResult | null> => {\n if (stepState.currentStep.name === 'select_country') {\n return selectCountryForm.handleValidation(values);\n }\n\n if (\n basicInformationForm &&\n stepState.currentStep.name === 'basic_information'\n ) {\n const parsedValues = await parseJSFToValidate(\n values,\n basicInformationForm?.fields,\n { isPartialValidation: false },\n );\n return basicInformationForm?.handleValidation(parsedValues);\n }\n\n if (\n contractorOnboardingDetailsForm &&\n stepState.currentStep.name === 'contract_details'\n ) {\n const parsedValues = await parseJSFToValidate(\n values,\n contractorOnboardingDetailsForm?.fields,\n { isPartialValidation: false },\n );\n return contractorOnboardingDetailsForm?.handleValidation(parsedValues);\n }\n\n if (\n signatureSchemaForm &&\n stepState.currentStep.name === 'contract_preview'\n ) {\n const parsedValues = await parseJSFToValidate(\n values,\n signatureSchemaForm?.fields,\n { isPartialValidation: true },\n );\n return signatureSchemaForm?.handleValidation(parsedValues);\n }\n\n if (\n selectContractorSubscriptionForm &&\n stepState.currentStep.name === 'pricing_plan'\n ) {\n const parsedValues = await parseJSFToValidate(\n values,\n selectContractorSubscriptionForm?.fields,\n { isPartialValidation: false },\n );\n return selectContractorSubscriptionForm?.handleValidation(parsedValues);\n }\n\n return null;\n },\n\n /**\n * Initial form values\n */\n initialValues,\n\n /**\n * Employment id\n */\n employmentId: internalEmploymentId,\n\n /**\n * Function to refetch the employment data\n * @returns {void}\n */\n refetchEmployment: refetchEmployment,\n\n /**\n * Loading state indicating if the onboarding mutation is in progress\n */\n isSubmitting:\n createEmploymentMutation.isPending ||\n createContractorContractDocumentMutation.isPending ||\n signContractDocumentMutation.isPending,\n\n /**\n * Document preview PDF data\n */\n documentPreviewPdf,\n\n /**\n * let's the user know if the company can invite employees\n * @returns {boolean}\n */\n canInvite,\n\n /**\n * let's the user know that the employment cannot be edited, happens when employment.status is invited\n * @returns {boolean}\n */\n isEmploymentReadOnly,\n /**\n * let's the user know if the employment is invited or not\n * @returns {'invited' | 'not_invited'}\n */\n invitedStatus,\n\n /**\n * Employment data\n * @returns {Employment}\n */\n employment,\n };\n};\n"],"mappings":"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","names":["useEffect","useMemo","useRef","useState","jsx","stepToFormSchemaMap","jsonSchemaToEmployment","provisionalStartDate","useContractorOnboarding","__name","countryCode","externalId","employmentId","skipSteps","options","onboardingInitialValues","internalCountryCode","setInternalCountryCode","useState","internalEmploymentId","setInternalEmploymentId","internalContractDocumentId","setInternalContractDocumentId","fieldsMetaRef","useRef","stepsToUse","STEPS_WITHOUT_SELECT_COUNTRY","STEPS","fieldValues","stepState","setFieldValues","previousStep","nextStep","goToStep","setStepValues","useStepState","employment","isLoadingEmployment","refetchEmployment","useEmployment","employmentStatus","isEmploymentReadOnly","reviewStepAllowedEmploymentStatus","canInvite","disabledInviteButtonEmploymentStatus","invitedStatus","useMemo","createEmploymentMutation","useCreateEmployment","updateEmploymentMutation","useUpdateEmployment","createContractorContractDocumentMutation","useCreateContractorContractDocument","updateEmploymentMutationAsync","mutationToPromise","signContractDocumentMutation","useSignContractDocument","manageContractorSubscriptionMutation","usePostManageContractorSubscriptions","createEmploymentMutationAsync","createContractorContractDocumentMutationAsync","signContractDocumentMutationAsync","manageContractorSubscriptionMutationAsync","selectCountryForm","isLoadingCountries","useCountriesSchemaField","selectContractorSubscriptionForm","isLoadingContractorSubscriptions","useContractorSubscriptionSchemaField","formType","employmentKey","serverEmploymentData","useJSONSchema","form","jsonSchemaOptions","query","mergedFormValues","useJSONSchemaForm","isBasicInformationDetailsEnabled","isContractorOnboardingDetailsEnabled","basicInformationForm","isLoadingBasicInformationForm","descriptionProvisionalStartDate","calculateProvisionalStartDateDescription","selectedPricingPlan","contractorStandardProductIdentifier","contractorPlusProductIdentifier","corProductIdentifier","contractorOnboardingDetailsForm","isLoadingContractorOnboardingDetailsForm","useContractorOnboardingDetailsSchema","buildContractDetailsJsfModify","mergedContractPreviewJsfModify","userFields","props","CustomComponent","ContractPreviewHeader","ContractPreviewStatement","fieldValuesDynamicProperties","signatureSchemaForm","useGetContractDocumentSignatureSchema","documentPreviewPdf","isLoadingDocumentPreviewForm","useGetShowContractDocument","stepFields","stepFieldsWithFlatFieldsets","country","employmentBasicInformation","employmentContractDetails","employmentCountryCode","selectCountryInitialValues","getInitialValues","basicInformationInitialValues","initialValues","contractDetailsInitialValues","contractPreviewInitialValues","pricingPlanInitialValues","isNavigatingToReview","useEffect","prettifyFormValues","goTo","step","parseFormValues","values","parseJSFToValidate","onSubmit","currentStepName","parsedValues","isEmploymentNotLoaded","hasChangedCountry","payload","response","error","contractDocumentId"]}
|
package/dist/chunk-OU6HCXKJ.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as d}from"./chunk-W4XNUDHJ.js";import{b as s}from"./chunk-Q3ALCPJN.js";import{b as n}from"./chunk-EAV5VOMZ.js";import{a as t}from"./chunk-P37U34EQ.js";import{jsx as c}from"react/jsx-runtime";function S({onSubmit:l,onSuccess:m,onError:a}){let{contractorOnboardingBag:r}=s(),p=t(async i=>{try{let e=await r.parseFormValues(i);await l?.(e);let o=await r.onSubmit(i);if(o?.data){await m?.(o?.data),r?.next();return}if(o?.error){let u=n(o?.fieldErrors||[],r.meta?.fields?.contract_preview);a?.({error:o?.error,rawError:o?.rawError,fieldErrors:u})}}catch(e){a?.({error:e,rawError:e,fieldErrors:[]})}},"handleSubmit"),w=r.stepState.values?.contract_preview||r.initialValues.contract_preview;return c("div",{className:"space-y-4",children:c(d,{defaultValues:w,onSubmit:p})})}t(S,"ContractPreviewStep");export{S as a};
|
|
2
|
-
//# sourceMappingURL=chunk-OU6HCXKJ.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/ContractorOnboarding/components/ContractPreviewStep.tsx"],"sourcesContent":["import { useContractorOnboardingContext } from '@/src/flows/ContractorOnboarding/context';\nimport { ContractorOnboardingForm } from '@/src/flows/ContractorOnboarding/components/ContractorOnboardingForm';\nimport {\n NormalizedFieldError,\n normalizeFieldErrors,\n} from '@/src/lib/mutations';\nimport { $TSFixMe } from '@/src/types/remoteFlows';\nimport {\n ContractPreviewFormPayload,\n ContractPreviewResponse,\n} from '@/src/flows/ContractorOnboarding/types';\n\ntype ContractPreviewStepProps = {\n /*\n * The function is called when the form is submitted. It receives the form values as an argument.\n */\n onSubmit?: (payload: ContractPreviewFormPayload) => void | Promise<void>;\n /*\n * The function is called when the form submission is successful.\n */\n onSuccess?: (data: ContractPreviewResponse) => void | Promise<void>;\n /*\n * The function is called when an error occurs during form submission.\n */\n onError?: ({\n error,\n rawError,\n fieldErrors,\n }: {\n error: Error;\n rawError: Record<string, unknown>;\n fieldErrors: NormalizedFieldError[];\n }) => void;\n};\n\nexport function ContractPreviewStep({\n onSubmit,\n onSuccess,\n onError,\n}: ContractPreviewStepProps) {\n const { contractorOnboardingBag } = useContractorOnboardingContext();\n\n const handleSubmit = async (payload: $TSFixMe) => {\n try {\n const parsedValues =\n await contractorOnboardingBag.parseFormValues(payload);\n await onSubmit?.(parsedValues as $TSFixMe);\n const response = await contractorOnboardingBag.onSubmit(payload);\n if (response?.data) {\n await onSuccess?.(response?.data as $TSFixMe); // TODO: add type\n contractorOnboardingBag?.next();\n return;\n }\n if (response?.error) {\n const normalizedFieldErrors = normalizeFieldErrors(\n response?.fieldErrors || [],\n contractorOnboardingBag.meta?.fields?.contract_preview,\n );\n\n onError?.({\n error: response?.error,\n rawError: response?.rawError,\n fieldErrors: normalizedFieldErrors,\n });\n }\n } catch (error: unknown) {\n onError?.({\n error: error as Error,\n rawError: error as Record<string, unknown>,\n fieldErrors: [],\n });\n }\n };\n\n const initialValues =\n contractorOnboardingBag.stepState.values?.contract_preview ||\n contractorOnboardingBag.initialValues.contract_preview;\n\n return (\n <div className='space-y-4'>\n <ContractorOnboardingForm\n defaultValues={initialValues}\n onSubmit={handleSubmit}\n />\n </div>\n );\n}\n"],"mappings":"gKAgFM,cAAAA,MAAA,oBA7CC,SAASC,EAAoB,CAClC,SAAAC,EACA,UAAAC,EACA,QAAAC,CACF,EAA6B,CAC3B,GAAM,CAAE,wBAAAC,CAAwB,EAAIC,EAA+B,EAE7DC,EAAeC,EAAA,MAAOC,GAAsB,CAChD,GAAI,CACF,IAAMC,EACJ,MAAML,EAAwB,gBAAgBI,CAAO,EACvD,MAAMP,IAAWQ,CAAwB,EACzC,IAAMC,EAAW,MAAMN,EAAwB,SAASI,CAAO,EAC/D,GAAIE,GAAU,KAAM,CAClB,MAAMR,IAAYQ,GAAU,IAAgB,EAC5CN,GAAyB,KAAK,EAC9B,MACF,CACA,GAAIM,GAAU,MAAO,CACnB,IAAMC,EAAwBC,EAC5BF,GAAU,aAAe,CAAC,EAC1BN,EAAwB,MAAM,QAAQ,gBACxC,EAEAD,IAAU,CACR,MAAOO,GAAU,MACjB,SAAUA,GAAU,SACpB,YAAaC,CACf,CAAC,CACH,CACF,OAASE,EAAgB,CACvBV,IAAU,CACR,MAAOU,EACP,SAAUA,EACV,YAAa,CAAC,CAChB,CAAC,CACH,CACF,EA9BqB,gBAgCfC,EACJV,EAAwB,UAAU,QAAQ,kBAC1CA,EAAwB,cAAc,iBAExC,OACEL,EAAC,OAAI,UAAU,YACb,SAAAA,EAACgB,EAAA,CACC,cAAeD,EACf,SAAUR,EACZ,EACF,CAEJ,CAnDgBC,EAAAP,EAAA","names":["jsx","ContractPreviewStep","onSubmit","onSuccess","onError","contractorOnboardingBag","useContractorOnboardingContext","handleSubmit","__name","payload","parsedValues","response","normalizedFieldErrors","normalizeFieldErrors","error","initialValues","ContractorOnboardingForm"]}
|
package/dist/chunk-S7S2XNVU.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as m}from"./chunk-W4XNUDHJ.js";import{b as s}from"./chunk-Q3ALCPJN.js";import{b as e}from"./chunk-EAV5VOMZ.js";import{a as i}from"./chunk-P37U34EQ.js";import{jsx as E}from"react/jsx-runtime";function b({onSubmit:d,onSuccess:l,onError:n}){let{contractorOnboardingBag:r}=s(),c=i(async t=>{try{let a=await r.parseFormValues(t);await d?.(a);let o=await r.onSubmit(t);if(o?.data){await l?.(o?.data),r?.next();return}if(o?.error){let p=e(o?.fieldErrors||[],r.meta?.fields?.basic_information);n?.({error:o?.error,rawError:o?.rawError,fieldErrors:p})}}catch(a){n?.({error:a,rawError:a,fieldErrors:[]})}},"handleSubmit"),f=r.stepState.values?.basic_information||r.initialValues.basic_information;return E(m,{defaultValues:f,onSubmit:c})}i(b,"BasicInformationStep");export{b as a};
|
|
2
|
-
//# sourceMappingURL=chunk-S7S2XNVU.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/ContractorOnboarding/components/BasicInformationStep.tsx"],"sourcesContent":["import { BasicInformationFormPayload } from '@/src/flows/Onboarding/types';\nimport { EmploymentCreationResponse } from '@/src/client';\nimport { $TSFixMe } from '@/src/types/remoteFlows';\nimport {\n normalizeFieldErrors,\n NormalizedFieldError,\n} from '@/src/lib/mutations';\nimport { useContractorOnboardingContext } from '@/src/flows/ContractorOnboarding/context';\nimport { ContractorOnboardingForm } from '@/src/flows/ContractorOnboarding/components/ContractorOnboardingForm';\n\ntype BasicInformationStepProps = {\n /*\n * The function is called when the form is submitted. It receives the form values as an argument.\n */\n onSubmit?: (payload: BasicInformationFormPayload) => void | Promise<void>;\n /*\n * The function is called when the form submission is successful.\n */\n onSuccess?: (data: EmploymentCreationResponse) => void | Promise<void>;\n /*\n * The function is called when an error occurs during form submission.\n */\n onError?: ({\n error,\n rawError,\n fieldErrors,\n }: {\n error: Error;\n rawError: Record<string, unknown>;\n fieldErrors: NormalizedFieldError[];\n }) => void;\n};\n\nexport function BasicInformationStep({\n onSubmit,\n onSuccess,\n onError,\n}: BasicInformationStepProps) {\n const { contractorOnboardingBag } = useContractorOnboardingContext();\n\n const handleSubmit = async (payload: $TSFixMe) => {\n try {\n const parsedValues =\n await contractorOnboardingBag.parseFormValues(payload);\n await onSubmit?.(parsedValues as BasicInformationFormPayload);\n const response = await contractorOnboardingBag.onSubmit(payload);\n if (response?.data) {\n await onSuccess?.(response?.data as EmploymentCreationResponse);\n contractorOnboardingBag?.next();\n return;\n }\n if (response?.error) {\n const normalizedFieldErrors = normalizeFieldErrors(\n response?.fieldErrors || [],\n contractorOnboardingBag.meta?.fields?.basic_information,\n );\n\n onError?.({\n error: response?.error,\n rawError: response?.rawError,\n fieldErrors: normalizedFieldErrors,\n });\n }\n } catch (error: unknown) {\n onError?.({\n error: error as Error,\n rawError: error as Record<string, unknown>,\n fieldErrors: [],\n });\n }\n };\n\n const initialValues =\n contractorOnboardingBag.stepState.values?.basic_information ||\n contractorOnboardingBag.initialValues.basic_information;\n\n return (\n <ContractorOnboardingForm\n defaultValues={initialValues}\n onSubmit={handleSubmit}\n />\n );\n}\n"],"mappings":"gKA6EI,cAAAA,MAAA,oBA5CG,SAASC,EAAqB,CACnC,SAAAC,EACA,UAAAC,EACA,QAAAC,CACF,EAA8B,CAC5B,GAAM,CAAE,wBAAAC,CAAwB,EAAIC,EAA+B,EAE7DC,EAAeC,EAAA,MAAOC,GAAsB,CAChD,GAAI,CACF,IAAMC,EACJ,MAAML,EAAwB,gBAAgBI,CAAO,EACvD,MAAMP,IAAWQ,CAA2C,EAC5D,IAAMC,EAAW,MAAMN,EAAwB,SAASI,CAAO,EAC/D,GAAIE,GAAU,KAAM,CAClB,MAAMR,IAAYQ,GAAU,IAAkC,EAC9DN,GAAyB,KAAK,EAC9B,MACF,CACA,GAAIM,GAAU,MAAO,CACnB,IAAMC,EAAwBC,EAC5BF,GAAU,aAAe,CAAC,EAC1BN,EAAwB,MAAM,QAAQ,iBACxC,EAEAD,IAAU,CACR,MAAOO,GAAU,MACjB,SAAUA,GAAU,SACpB,YAAaC,CACf,CAAC,CACH,CACF,OAASE,EAAgB,CACvBV,IAAU,CACR,MAAOU,EACP,SAAUA,EACV,YAAa,CAAC,CAChB,CAAC,CACH,CACF,EA9BqB,gBAgCfC,EACJV,EAAwB,UAAU,QAAQ,mBAC1CA,EAAwB,cAAc,kBAExC,OACEL,EAACgB,EAAA,CACC,cAAeD,EACf,SAAUR,EACZ,CAEJ,CAjDgBC,EAAAP,EAAA","names":["jsx","BasicInformationStep","onSubmit","onSuccess","onError","contractorOnboardingBag","useContractorOnboardingContext","handleSubmit","__name","payload","parsedValues","response","normalizedFieldErrors","normalizeFieldErrors","error","initialValues","ContractorOnboardingForm"]}
|
package/dist/chunk-V63WMKGL.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{b as c}from"./chunk-4VYMV32U.js";import{a as r,b as d}from"./chunk-3UDG4IJO.js";import{a as n}from"./chunk-P37U34EQ.js";import{format as s}from"date-fns";var g={select_country:{index:0,name:"select_country"},basic_information:{index:1,name:"basic_information"},pricing_plan:{index:2,name:"pricing_plan"},contract_details:{index:3,name:"contract_details"},contract_preview:{index:4,name:"contract_preview"},review:{index:5,name:"review"}},S={basic_information:{index:0,name:"basic_information"},pricing_plan:{index:1,name:"pricing_plan"},contract_details:{index:2,name:"contract_details"},contract_preview:{index:3,name:"contract_preview"},review:{index:4,name:"review"}},v=n((e,t)=>{if(e&&t&&e!==t)return`When the contractor will start providing service to your company. ${`This date does not match the date you provided in the Basic Information step - ${e} - and will override it only when both parties have signed the contract.`}`},"calculateProvisionalStartDateDescription"),u=n(e=>e===r,"isStandardPricingPlan"),f=n((e,t)=>{let i=t&&t<s(new Date,"yyyy-MM-dd");if(!e&&i)return c({severity:"warning",description:"Backdating the service start date is not supported in the selected Contractor Management plan."})},"showBackDateWarning"),x=n((e,t,i,a)=>{let o=u(i),p=a?.service_duration?.provisional_start_date,l=f(o,p);return{...e,fields:{...e?.fields,"service_duration.provisional_start_date":{description:t,"x-jsf-presentation":{minDate:o?void 0:s(new Date,"yyyy-MM-dd"),...l}}}}},"buildContractDetailsJsfModify"),h=n(e=>e===r||e===d,"isCMOrCMPlus");export{g as a,S as b,v as c,x as d,h as e};
|
|
2
|
-
//# sourceMappingURL=chunk-V63WMKGL.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/ContractorOnboarding/utils.ts"],"sourcesContent":["import { format } from 'date-fns';\nimport { JSFModify } from '@/src/flows/types';\nimport { Step } from '@/src/flows/useStepState';\nimport { FieldValues } from 'react-hook-form';\nimport { createStatementProperty } from '@/src/components/form/jsf-utils/createFields';\nimport {\n contractorStandardProductIdentifier,\n contractorPlusProductIdentifier,\n} from '@/src/flows/ContractorOnboarding/constants';\n\ntype StepKeys =\n | 'select_country'\n | 'basic_information'\n | 'contract_details'\n | 'contract_preview'\n | 'pricing_plan'\n | 'review';\n\nexport const STEPS: Record<StepKeys, Step<StepKeys>> = {\n select_country: { index: 0, name: 'select_country' },\n basic_information: { index: 1, name: 'basic_information' },\n pricing_plan: { index: 2, name: 'pricing_plan' },\n contract_details: { index: 3, name: 'contract_details' },\n contract_preview: { index: 4, name: 'contract_preview' },\n review: { index: 5, name: 'review' },\n} as const;\n\nexport const STEPS_WITHOUT_SELECT_COUNTRY: Record<\n Exclude<StepKeys, 'select_country'>,\n Step<Exclude<StepKeys, 'select_country'>>\n> = {\n basic_information: { index: 0, name: 'basic_information' },\n pricing_plan: { index: 1, name: 'pricing_plan' },\n contract_details: { index: 2, name: 'contract_details' },\n contract_preview: { index: 3, name: 'contract_preview' },\n review: { index: 4, name: 'review' },\n} as const;\n\n/**\n * Calculates the description for the provisional start date field\n * based on whether the dates match between basic information and contract details steps\n */\nexport const calculateProvisionalStartDateDescription = (\n employmentProvisionalStartDate: string | undefined,\n fieldProvisionalStartDate: string | undefined,\n): string | undefined => {\n const datesNotMatching =\n employmentProvisionalStartDate &&\n fieldProvisionalStartDate &&\n employmentProvisionalStartDate !== fieldProvisionalStartDate;\n\n if (datesNotMatching) {\n const datesDontMatchWarning = `This date does not match the date you provided in the Basic Information step - ${\n employmentProvisionalStartDate\n } - and will override it only when both parties have signed the contract.`;\n return `When the contractor will start providing service to your company. ${datesDontMatchWarning}`;\n }\n return undefined;\n};\n\nconst isStandardPricingPlan = (pricingPlan: string | undefined) => {\n return pricingPlan === contractorStandardProductIdentifier;\n};\n\nconst showBackDateWarning = (\n isStandardPricingPlanSelected: boolean,\n provisionalStartDate: string | undefined,\n) => {\n const isStartDateBackdated =\n provisionalStartDate &&\n // Compare full days omitting time of the day\n provisionalStartDate < format(new Date(), 'yyyy-MM-dd');\n\n if (!isStandardPricingPlanSelected && isStartDateBackdated) {\n return createStatementProperty({\n severity: 'warning',\n description:\n 'Backdating the service start date is not supported in the selected Contractor Management plan.',\n });\n }\n\n return undefined;\n};\n/**\n * Merges internal jsfModify modifications with user-provided options for contract_details step\n * This abstracts the logic of applying internal field modifications (like dynamic descriptions)\n * while preserving user customizations\n */\nexport const buildContractDetailsJsfModify = (\n userJsfModify: JSFModify | undefined,\n provisionalStartDateDescription: string | undefined,\n selectedPricingPlan: string | undefined,\n fieldValues: FieldValues,\n): JSFModify => {\n const isStandardPricingPlanSelected =\n isStandardPricingPlan(selectedPricingPlan);\n const provisionalStartDate =\n fieldValues?.service_duration?.provisional_start_date;\n const statement = showBackDateWarning(\n isStandardPricingPlanSelected,\n provisionalStartDate,\n );\n return {\n ...userJsfModify,\n fields: {\n ...userJsfModify?.fields,\n ...{\n 'service_duration.provisional_start_date': {\n description: provisionalStartDateDescription,\n 'x-jsf-presentation': {\n minDate: !isStandardPricingPlanSelected\n ? format(new Date(), 'yyyy-MM-dd')\n : undefined,\n ...statement,\n },\n },\n },\n },\n };\n};\n\n/**\n * Checks if the selected pricing plan is CM (standard) or CM+ (plus)\n */\nexport const isCMOrCMPlus = (subscription: string | undefined): boolean => {\n return (\n subscription === contractorStandardProductIdentifier ||\n subscription === contractorPlusProductIdentifier\n );\n};\n"],"mappings":"+HAAA,OAAS,UAAAA,MAAc,WAkBhB,IAAMC,EAA0C,CACrD,eAAgB,CAAE,MAAO,EAAG,KAAM,gBAAiB,EACnD,kBAAmB,CAAE,MAAO,EAAG,KAAM,mBAAoB,EACzD,aAAc,CAAE,MAAO,EAAG,KAAM,cAAe,EAC/C,iBAAkB,CAAE,MAAO,EAAG,KAAM,kBAAmB,EACvD,iBAAkB,CAAE,MAAO,EAAG,KAAM,kBAAmB,EACvD,OAAQ,CAAE,MAAO,EAAG,KAAM,QAAS,CACrC,EAEaC,EAGT,CACF,kBAAmB,CAAE,MAAO,EAAG,KAAM,mBAAoB,EACzD,aAAc,CAAE,MAAO,EAAG,KAAM,cAAe,EAC/C,iBAAkB,CAAE,MAAO,EAAG,KAAM,kBAAmB,EACvD,iBAAkB,CAAE,MAAO,EAAG,KAAM,kBAAmB,EACvD,OAAQ,CAAE,MAAO,EAAG,KAAM,QAAS,CACrC,EAMaC,EAA2CC,EAAA,CACtDC,EACAC,IACuB,CAMvB,GAJED,GACAC,GACAD,IAAmCC,EAMnC,MAAO,qEAHuB,kFAC5BD,CACF,0EACiG,EAGrG,EAhBwD,4CAkBlDE,EAAwBH,EAACI,GACtBA,IAAgBC,EADK,yBAIxBC,EAAsBN,EAAA,CAC1BO,EACAC,IACG,CACH,IAAMC,EACJD,GAEAA,EAAuBE,EAAO,IAAI,KAAQ,YAAY,EAExD,GAAI,CAACH,GAAiCE,EACpC,OAAOE,EAAwB,CAC7B,SAAU,UACV,YACE,gGACJ,CAAC,CAIL,EAlB4B,uBAwBfC,EAAgCZ,EAAA,CAC3Ca,EACAC,EACAC,EACAC,IACc,CACd,IAAMT,EACJJ,EAAsBY,CAAmB,EACrCP,EACJQ,GAAa,kBAAkB,uBAC3BC,EAAYX,EAChBC,EACAC,CACF,EACA,MAAO,CACL,GAAGK,EACH,OAAQ,CACN,GAAGA,GAAe,OAEhB,0CAA2C,CACzC,YAAaC,EACb,qBAAsB,CACpB,QAAUP,EAEN,OADAG,EAAO,IAAI,KAAQ,YAAY,EAEnC,GAAGO,CACL,CACF,CAEJ,CACF,CACF,EA/B6C,iCAoChCC,EAAelB,EAACmB,GAEzBA,IAAiBd,GACjBc,IAAiBC,EAHO","names":["format","STEPS","STEPS_WITHOUT_SELECT_COUNTRY","calculateProvisionalStartDateDescription","__name","employmentProvisionalStartDate","fieldProvisionalStartDate","isStandardPricingPlan","pricingPlan","contractorStandardProductIdentifier","showBackDateWarning","isStandardPricingPlanSelected","provisionalStartDate","isStartDateBackdated","format","createStatementProperty","buildContractDetailsJsfModify","userJsfModify","provisionalStartDateDescription","selectedPricingPlan","fieldValues","statement","isCMOrCMPlus","subscription","contractorPlusProductIdentifier"]}
|
package/dist/chunk-XXIUJVIY.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{b as m}from"./chunk-HRG5MSVG.js";import{b as n}from"./chunk-Z5WMKCRJ.js";import{a as l}from"./chunk-P37U34EQ.js";import{createHeadlessForm as f,modify as a}from"@remoteoss/remote-json-schema-form-kit";var R=l((e,r,s)=>{if(s&&s.jsfModify){let{schema:o}=a(e,s.jsfModify);e=o}let t={};r&&(t=n(e.properties||{},"money").reduce((i,d)=>(i[d]=m(r[d]),i),{}));let F=JSON.parse(JSON.stringify({...r,...t}));return{meta:{"x-jsf-fieldsets":e["x-jsf-fieldsets"]},...f(e,{initialValues:F})}},"createHeadlessForm");export{R as a};
|
|
2
|
-
//# sourceMappingURL=chunk-XXIUJVIY.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/common/createHeadlessForm.tsx"],"sourcesContent":["import { FieldValues } from 'react-hook-form';\nimport {\n createHeadlessForm as baseCreateHeadlessForm,\n FormResult,\n modify,\n} from '@remoteoss/remote-json-schema-form-kit';\nimport { convertToCents } from '@/src/components/form/utils';\nimport { JSFModify } from '@/src/flows/types';\nimport { findFieldsByType } from '@/src/flows/utils';\nimport { JSFFieldset } from '@/src/types/remoteFlows';\n\ntype CreateHeadlessFormResult = FormResult & {\n meta: {\n 'x-jsf-fieldsets': JSFFieldset;\n };\n};\n\n/*\n * Creates a headless form from a JSON Schema, useful to avoid code duplication when creating headless forms.\n * @param jsfSchema - The JSON Schema\n * @param fieldValues - The field values\n * @param options - The options\n * @returns The headless form\n */\nexport const createHeadlessForm = (\n jsfSchema: Record<string, unknown>,\n fieldValues?: FieldValues,\n options?: { jsfModify?: JSFModify },\n): CreateHeadlessFormResult => {\n if (options && options.jsfModify) {\n const { schema } = modify(jsfSchema, options.jsfModify);\n jsfSchema = schema;\n }\n\n let moneyFieldsData: Record<string, number | null> = {};\n\n if (fieldValues) {\n const moneyFields = findFieldsByType(jsfSchema.properties || {}, 'money');\n moneyFieldsData = moneyFields.reduce<Record<string, number | null>>(\n (acc, field) => {\n acc[field] = convertToCents(fieldValues[field]);\n return acc;\n },\n {},\n );\n }\n\n /**\n * We create a deep copy of the field values to avoid modifying the original object.\n * This problem is caused by json-schema-form-v0.\n */\n const initialValues = JSON.parse(\n JSON.stringify({\n ...fieldValues,\n ...moneyFieldsData,\n }),\n );\n\n return {\n meta: {\n 'x-jsf-fieldsets': jsfSchema['x-jsf-fieldsets'] as JSFFieldset,\n },\n ...baseCreateHeadlessForm(jsfSchema, {\n initialValues,\n }),\n };\n};\n"],"mappings":"wHACA,OACE,sBAAsBA,EAEtB,UAAAC,MACK,yCAmBA,IAAMC,EAAqBC,EAAA,CAChCC,EACAC,EACAC,IAC6B,CAC7B,GAAIA,GAAWA,EAAQ,UAAW,CAChC,GAAM,CAAE,OAAAC,CAAO,EAAIC,EAAOJ,EAAWE,EAAQ,SAAS,EACtDF,EAAYG,CACd,CAEA,IAAIE,EAAiD,CAAC,EAElDJ,IAEFI,EADoBC,EAAiBN,EAAU,YAAc,CAAC,EAAG,OAAO,EAC1C,OAC5B,CAACO,EAAKC,KACJD,EAAIC,CAAK,EAAIC,EAAeR,EAAYO,CAAK,CAAC,EACvCD,GAET,CAAC,CACH,GAOF,IAAMG,EAAgB,KAAK,MACzB,KAAK,UAAU,CACb,GAAGT,EACH,GAAGI,CACL,CAAC,CACH,EAEA,MAAO,CACL,KAAM,CACJ,kBAAmBL,EAAU,iBAAiB,CAChD,EACA,GAAGW,EAAuBX,EAAW,CACnC,cAAAU,CACF,CAAC,CACH,CACF,EA1CkC","names":["baseCreateHeadlessForm","modify","createHeadlessForm","__name","jsfSchema","fieldValues","options","schema","modify","moneyFieldsData","findFieldsByType","acc","field","convertToCents","initialValues","baseCreateHeadlessForm"]}
|
package/dist/chunk-Y625DU2T.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as i}from"./chunk-W4XNUDHJ.js";import{b as a}from"./chunk-Q3ALCPJN.js";import{a as t}from"./chunk-P37U34EQ.js";import{jsx as d}from"react/jsx-runtime";function y({onSubmit:c,onSuccess:s,onError:e}){let{contractorOnboardingBag:o}=a(),u=t(async n=>{try{await c?.({countryCode:n.country});let r=await o.onSubmit(n);if(r?.data){await s?.(r?.data),o?.next();return}r?.error&&e?.({error:r.error,rawError:r.rawError,fieldErrors:[]})}catch(r){e?.({error:r,rawError:r,fieldErrors:[]})}},"handleSubmit"),l=o.stepState.values?.select_country||o.initialValues.select_country;return d(i,{defaultValues:l,onSubmit:u})}t(y,"SelectCountryStep");export{y as a};
|
|
2
|
-
//# sourceMappingURL=chunk-Y625DU2T.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/ContractorOnboarding/components/SelectCountryStep.tsx"],"sourcesContent":["// TODO: Correct types later\nimport {\n SelectCountryFormPayload,\n SelectCountrySuccess,\n} from '@/src/flows/Onboarding/types';\nimport { NormalizedFieldError } from '@/src/lib/mutations';\nimport { $TSFixMe } from '@/src/types/remoteFlows';\nimport { useContractorOnboardingContext } from '@/src/flows/ContractorOnboarding/context';\nimport { ContractorOnboardingForm } from '@/src/flows/ContractorOnboarding/components/ContractorOnboardingForm';\n\ntype SelectCountryStepProps = {\n /*\n * The function is called when the form is submitted. It receives the form values as an argument.\n */\n onSubmit?: (payload: SelectCountryFormPayload) => void | Promise<void>;\n /*\n * The function is called when the form submission is successful.\n */\n onSuccess?: (data: SelectCountrySuccess) => void | Promise<void>;\n /*\n * The function is called when an error occurs during form submission.\n */\n onError?: ({\n error,\n rawError,\n fieldErrors,\n }: {\n error: Error;\n rawError: Record<string, unknown>;\n fieldErrors: NormalizedFieldError[];\n }) => void;\n};\n\nexport function SelectCountryStep({\n onSubmit,\n onSuccess,\n onError,\n}: SelectCountryStepProps) {\n const { contractorOnboardingBag } = useContractorOnboardingContext();\n const handleSubmit = async (payload: $TSFixMe) => {\n try {\n await onSubmit?.({ countryCode: payload.country });\n const response = await contractorOnboardingBag.onSubmit(payload);\n if (response?.data) {\n await onSuccess?.(response?.data as SelectCountrySuccess);\n contractorOnboardingBag?.next();\n return;\n }\n if (response?.error) {\n onError?.({\n error: response.error,\n rawError: response.rawError,\n fieldErrors: [],\n });\n }\n } catch (error: unknown) {\n onError?.({\n error: error as Error,\n rawError: error as Record<string, unknown>,\n fieldErrors: [],\n });\n }\n };\n\n const initialValues =\n contractorOnboardingBag.stepState.values?.select_country ||\n contractorOnboardingBag.initialValues.select_country;\n\n return (\n <ContractorOnboardingForm\n defaultValues={initialValues}\n onSubmit={handleSubmit}\n />\n );\n}\n"],"mappings":"wHAqEI,cAAAA,MAAA,oBApCG,SAASC,EAAkB,CAChC,SAAAC,EACA,UAAAC,EACA,QAAAC,CACF,EAA2B,CACzB,GAAM,CAAE,wBAAAC,CAAwB,EAAIC,EAA+B,EAC7DC,EAAeC,EAAA,MAAOC,GAAsB,CAChD,GAAI,CACF,MAAMP,IAAW,CAAE,YAAaO,EAAQ,OAAQ,CAAC,EACjD,IAAMC,EAAW,MAAML,EAAwB,SAASI,CAAO,EAC/D,GAAIC,GAAU,KAAM,CAClB,MAAMP,IAAYO,GAAU,IAA4B,EACxDL,GAAyB,KAAK,EAC9B,MACF,CACIK,GAAU,OACZN,IAAU,CACR,MAAOM,EAAS,MAChB,SAAUA,EAAS,SACnB,YAAa,CAAC,CAChB,CAAC,CAEL,OAASC,EAAgB,CACvBP,IAAU,CACR,MAAOO,EACP,SAAUA,EACV,YAAa,CAAC,CAChB,CAAC,CACH,CACF,EAvBqB,gBAyBfC,EACJP,EAAwB,UAAU,QAAQ,gBAC1CA,EAAwB,cAAc,eAExC,OACEL,EAACa,EAAA,CACC,cAAeD,EACf,SAAUL,EACZ,CAEJ,CAzCgBC,EAAAP,EAAA","names":["jsx","SelectCountryStep","onSubmit","onSuccess","onError","contractorOnboardingBag","useContractorOnboardingContext","handleSubmit","__name","payload","response","error","initialValues","ContractorOnboardingForm"]}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/dist/{DatePickerFieldDefault-YOLAGQD6.js.map → DatePickerFieldDefault-3MBSCS3W.js.map}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/dist/{FileUploadFieldDefault-Y3DOJH6L.js.map → FileUploadFieldDefault-PNM6H64X.js.map}
RENAMED
|
File without changes
|
/package/dist/{MultiSelectFieldDefault-LMXRGP3B.js.map → MultiSelectFieldDefault-THD7TDWF.js.map}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/dist/{RadioGroupFieldDefault-Y5L4GIQE.js.map → RadioGroupFieldDefault-CM33F3EP.js.map}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/dist/{WorkScheduleFieldDefault-RP5SBJS7.js.map → WorkScheduleFieldDefault-G2MR2DBY.js.map}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|