@remoteoss/remote-flows 0.32.0 → 1.1.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/README.md +52 -109
- package/dist/chunk-2SO4LW7V.js +2 -0
- package/dist/chunk-2SO4LW7V.js.map +1 -0
- package/dist/chunk-2TCLBL2U.js +2 -0
- package/dist/chunk-2TCLBL2U.js.map +1 -0
- package/dist/chunk-2TILNBMK.js +2 -0
- package/dist/chunk-2TILNBMK.js.map +1 -0
- package/dist/{chunk-L3D2AK3X.js → chunk-3JKQNLJQ.js} +2 -2
- package/dist/{chunk-5AG4K2EA.js → chunk-3SAV2OEE.js} +2 -2
- package/dist/chunk-3VOTCJWD.js +2 -0
- package/dist/{chunk-LV5R6H3D.js.map → chunk-3VOTCJWD.js.map} +1 -1
- package/dist/chunk-4C5N57R7.js +2 -0
- package/dist/chunk-4C5N57R7.js.map +1 -0
- package/dist/{chunk-QIQTM4HB.js → chunk-4GDEWYZC.js} +2 -2
- package/dist/chunk-5RPTKYPJ.js +2 -0
- package/dist/{chunk-TWVFLXVF.js.map → chunk-5RPTKYPJ.js.map} +1 -1
- package/dist/chunk-66N57DKF.js +2 -0
- package/dist/{chunk-CNDSIADP.js.map → chunk-66N57DKF.js.map} +1 -1
- package/dist/{chunk-UPXJJBXZ.js → chunk-6YXSWOKH.js} +2 -2
- package/dist/{chunk-PD24XKD6.js → chunk-72OH7PSF.js} +2 -2
- package/dist/{chunk-DPWL4KNA.js → chunk-77EBKLW6.js} +2 -2
- package/dist/chunk-77EBKLW6.js.map +1 -0
- package/dist/{chunk-MZB24YJP.js → chunk-7FMR3EIX.js} +2 -2
- package/dist/chunk-7FMR3EIX.js.map +1 -0
- package/dist/chunk-7IFYJQW7.js +2 -0
- package/dist/chunk-7IFYJQW7.js.map +1 -0
- package/dist/chunk-AFYLN24W.js +2 -0
- package/dist/chunk-AFYLN24W.js.map +1 -0
- package/dist/{chunk-7VOQAVM4.js → chunk-AT7VHJMW.js} +2 -2
- package/dist/chunk-B77KFSEU.js +2 -0
- package/dist/chunk-B77KFSEU.js.map +1 -0
- package/dist/{chunk-DPY77ASH.js → chunk-BFMUZP2O.js} +2 -2
- package/dist/{chunk-6FWFRVQE.js → chunk-BHE7NDIR.js} +2 -2
- package/dist/chunk-BVDT43OO.js +2 -0
- package/dist/chunk-BVDT43OO.js.map +1 -0
- package/dist/chunk-CDCKGIF5.js +2 -0
- package/dist/chunk-CDCKGIF5.js.map +1 -0
- package/dist/chunk-CFN3Z76T.js +2 -0
- package/dist/chunk-CFN3Z76T.js.map +1 -0
- package/dist/{chunk-DTHBG6BD.js → chunk-EC7QVRRX.js} +2 -2
- package/dist/chunk-ELXVVBRD.js +2 -0
- package/dist/chunk-ELXVVBRD.js.map +1 -0
- package/dist/chunk-FGBEOUQK.js +1 -0
- package/dist/chunk-FUMA5UUB.js +2 -0
- package/dist/chunk-FUMA5UUB.js.map +1 -0
- package/dist/{chunk-H425RKFI.js → chunk-FZDQ7EEI.js} +2 -2
- package/dist/{chunk-ENW4DCDU.js → chunk-G7N277WY.js} +2 -2
- package/dist/chunk-H6Q65JLZ.js +2 -0
- package/dist/chunk-H6Q65JLZ.js.map +1 -0
- package/dist/{chunk-QIVDIOJG.js → chunk-I4XJ764Y.js} +2 -2
- package/dist/chunk-IKS3YZ7X.js +2 -0
- package/dist/chunk-IKS3YZ7X.js.map +1 -0
- package/dist/{chunk-EM5UYWUQ.js → chunk-J6QOM4P4.js} +2 -2
- package/dist/chunk-JA7UP6GN.js +2 -0
- package/dist/chunk-JA7UP6GN.js.map +1 -0
- package/dist/{chunk-HBHVB56P.js → chunk-JCYNAEWF.js} +2 -2
- package/dist/{chunk-ANGJCT4I.js → chunk-K3PHODKN.js} +2 -2
- package/dist/{chunk-3ZWDIEEM.js → chunk-KQPDXXG3.js} +1 -1
- package/dist/chunk-KQPDXXG3.js.map +1 -0
- package/dist/chunk-KRMKWQVS.js +2 -0
- package/dist/chunk-KRMKWQVS.js.map +1 -0
- package/dist/chunk-KYCI2BCF.js +2 -0
- package/dist/chunk-KYCI2BCF.js.map +1 -0
- package/dist/{chunk-43WMZDDH.js → chunk-L3Z2G32A.js} +1 -1
- package/dist/chunk-L3Z2G32A.js.map +1 -0
- package/dist/chunk-LCJSVSZ5.js +2 -0
- package/dist/chunk-LCJSVSZ5.js.map +1 -0
- package/dist/{chunk-WVDTHFGS.js → chunk-LJGCFFAT.js} +2 -2
- package/dist/{chunk-COBQ4WSJ.js → chunk-LOZIGR3Z.js} +2 -2
- package/dist/{chunk-ZQ6MG635.js → chunk-MDDI5GLL.js} +2 -2
- package/dist/chunk-MJ3QHSQ2.js +2 -0
- package/dist/chunk-MJ3QHSQ2.js.map +1 -0
- package/dist/{chunk-ID3ZF7QT.js → chunk-MKE27NUF.js} +2 -2
- package/dist/{chunk-AFRA4BIW.js → chunk-MXLQEDRJ.js} +2 -2
- package/dist/{chunk-LQAHRGU4.js → chunk-MZKA5DYP.js} +2 -2
- package/dist/chunk-N2VHZLA3.js +2 -0
- package/dist/chunk-N2VHZLA3.js.map +1 -0
- package/dist/{chunk-BV3PGYSH.js → chunk-ND4FAALX.js} +2 -2
- package/dist/chunk-NFUP6BFU.js +6 -0
- package/dist/chunk-NFUP6BFU.js.map +1 -0
- package/dist/{chunk-IUEXOXFA.js → chunk-NS4FRCEH.js} +2 -2
- package/dist/chunk-NVZHJOA3.js +2 -0
- package/dist/chunk-NVZHJOA3.js.map +1 -0
- package/dist/chunk-OAPK6TR7.js +2 -0
- package/dist/chunk-OAPK6TR7.js.map +1 -0
- package/dist/chunk-OHOCZB6S.js +2 -0
- package/dist/{chunk-76DHIEN7.js.map → chunk-OHOCZB6S.js.map} +1 -1
- package/dist/{chunk-SO3YQ4WT.js → chunk-OMRLBAVD.js} +2 -2
- package/dist/{chunk-MQ6F5LE4.js → chunk-PMTKQME6.js} +2 -2
- package/dist/{chunk-CW3MAP5L.js → chunk-QGGFY3DW.js} +2 -2
- package/dist/{chunk-OW5QGJD4.js → chunk-QH4EGUER.js} +2 -2
- package/dist/chunk-QKJNMYIA.js +2 -0
- package/dist/chunk-QKJNMYIA.js.map +1 -0
- package/dist/{chunk-P5WUODPR.js → chunk-QP3VWGCS.js} +2 -2
- package/dist/{chunk-5ZR7EFPY.js → chunk-QP5V46OP.js} +2 -2
- package/dist/{chunk-Q2N5SOKO.js → chunk-QUQLW5YW.js} +2 -2
- package/dist/{chunk-5KHLOGTR.js → chunk-RPTB2HUM.js} +2 -2
- package/dist/chunk-SQESDLUU.js +2 -0
- package/dist/{chunk-DZ2R72O5.js.map → chunk-SQESDLUU.js.map} +1 -1
- package/dist/{chunk-6VRUYYUV.js → chunk-STPJXT2A.js} +2 -2
- package/dist/chunk-UBWBBXKT.js +2 -0
- package/dist/chunk-UBWBBXKT.js.map +1 -0
- package/dist/{chunk-TWIUL2P3.js → chunk-UOOUV52J.js} +2 -2
- package/dist/{chunk-HZDCZFR5.js → chunk-V6X6F6LC.js} +2 -2
- package/dist/chunk-V6X6F6LC.js.map +1 -0
- package/dist/chunk-VHW6XBMG.js +2 -0
- package/dist/chunk-VHW6XBMG.js.map +1 -0
- package/dist/chunk-VXZN2TCG.js +2 -0
- package/dist/chunk-VXZN2TCG.js.map +1 -0
- package/dist/{chunk-X6CD3FMG.js → chunk-W57XSVXY.js} +2 -2
- package/dist/chunk-XOA7GG4P.js +2 -0
- package/dist/chunk-XQL5I2GC.js +2 -0
- package/dist/chunk-XQL5I2GC.js.map +1 -0
- package/dist/{chunk-2W2XD7ZY.js → chunk-Y47XYRGE.js} +2 -2
- package/dist/chunk-Y47XYRGE.js.map +1 -0
- package/dist/chunk-YR666AEH.js +2 -0
- package/dist/chunk-YR666AEH.js.map +1 -0
- package/dist/{chunk-UJKTTTGB.js → chunk-YSOGGVBO.js} +2 -2
- package/dist/{chunk-OIN3HGOQ.js → chunk-YWZI5KJN.js} +2 -2
- package/dist/chunk-ZIN2OWTH.js +2 -0
- package/dist/chunk-ZIN2OWTH.js.map +1 -0
- package/dist/{chunk-EKKRQI6B.js → chunk-ZKINPHYU.js} +2 -2
- package/dist/{chunk-FRTJ4KWA.js → chunk-ZPN5N6BA.js} +2 -2
- package/dist/chunk-ZPN5N6BA.js.map +1 -0
- package/dist/chunk-ZVA3C5TB.js +2 -0
- package/dist/chunk-ZVA3C5TB.js.map +1 -0
- package/dist/flows/ContractAmendment/ContractAmendmentBack.js +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 +5 -5
- 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/ContractAmendmentSubmit.js +1 -1
- package/dist/flows/ContractAmendment/context.d.ts +12 -12
- package/dist/flows/ContractAmendment/hooks.d.ts +12 -12
- package/dist/flows/ContractAmendment/hooks.js +1 -1
- package/dist/flows/ContractAmendment/index.d.ts +5 -5
- package/dist/flows/ContractAmendment/index.js +1 -1
- package/dist/flows/ContractAmendment/types.d.ts +8 -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 +7 -7
- package/dist/flows/ContractorOnboarding/ContractorOnboarding.js +1 -1
- package/dist/flows/ContractorOnboarding/api.d.ts +16 -26
- package/dist/flows/ContractorOnboarding/api.js +1 -1
- package/dist/flows/ContractorOnboarding/components/BasicInformationStep.d.ts +6 -6
- package/dist/flows/ContractorOnboarding/components/BasicInformationStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.d.ts +7 -7
- package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.d.ts +7 -7
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.d.ts +7 -7
- package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.js +1 -1
- package/dist/flows/ContractorOnboarding/components/OnboardingBack.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/OnboardingSubmit.js +1 -1
- package/dist/flows/ContractorOnboarding/components/PricingPlan.d.ts +7 -7
- package/dist/flows/ContractorOnboarding/components/PricingPlan.js +1 -1
- package/dist/flows/ContractorOnboarding/components/SelectCountryStep.d.ts +6 -6
- package/dist/flows/ContractorOnboarding/components/SelectCountryStep.js +1 -1
- package/dist/flows/ContractorOnboarding/context.d.ts +12 -15
- package/dist/flows/ContractorOnboarding/hooks.d.ts +7 -7
- package/dist/flows/ContractorOnboarding/hooks.js +1 -1
- package/dist/flows/ContractorOnboarding/index.d.ts +7 -7
- package/dist/flows/ContractorOnboarding/index.js +1 -1
- package/dist/flows/ContractorOnboarding/types.d.ts +7 -7
- package/dist/flows/CostCalculator/CostCalculatorFlow.d.ts +5 -5
- package/dist/flows/CostCalculator/CostCalculatorFlow.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorForm.d.ts +5 -5
- 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 +8 -3
- package/dist/flows/CostCalculator/EstimationResults/EstimationResults.js +1 -1
- package/dist/flows/CostCalculator/SummaryResults/SummaryResults.d.ts +8 -3
- package/dist/flows/CostCalculator/SummaryResults/SummaryResults.js +1 -1
- package/dist/flows/CostCalculator/api.d.ts +12 -7
- 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 +7 -7
- package/dist/flows/CostCalculator/hooks.d.ts +7 -7
- package/dist/flows/CostCalculator/hooks.js +1 -1
- package/dist/flows/CostCalculator/index.d.ts +5 -8
- package/dist/flows/CostCalculator/index.js +1 -1
- package/dist/flows/CostCalculator/types.d.ts +8 -3
- package/dist/flows/CostCalculator/utils.d.ts +5 -5
- package/dist/flows/CostCalculator/utils.js +1 -1
- package/dist/flows/Onboarding/OnboardingFlow.d.ts +6 -6
- package/dist/flows/Onboarding/OnboardingFlow.js +1 -1
- package/dist/flows/Onboarding/api.d.ts +25 -34
- 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 +6 -6
- package/dist/flows/Onboarding/components/BasicInformationStep.js +1 -1
- package/dist/flows/Onboarding/components/BenefitsStep.d.ts +6 -6
- package/dist/flows/Onboarding/components/BenefitsStep.js +1 -1
- package/dist/flows/Onboarding/components/ContractDetailsStep.d.ts +6 -6
- package/dist/flows/Onboarding/components/ContractDetailsStep.js +1 -1
- package/dist/flows/Onboarding/components/OnboardingBack.js +1 -1
- package/dist/flows/Onboarding/components/OnboardingForm.d.ts +6 -6
- 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/OnboardingSubmit.js +1 -1
- package/dist/flows/Onboarding/components/ReviewStep.d.ts +6 -6
- package/dist/flows/Onboarding/components/SaveDraftButton.d.ts +3 -3
- package/dist/flows/Onboarding/components/SaveDraftButton.js +1 -1
- package/dist/flows/Onboarding/components/SelectCountryStep.d.ts +6 -6
- package/dist/flows/Onboarding/components/SelectCountryStep.js +1 -1
- package/dist/flows/Onboarding/context.d.ts +14 -17
- package/dist/flows/Onboarding/hooks.d.ts +6 -6
- package/dist/flows/Onboarding/hooks.js +1 -1
- package/dist/flows/Onboarding/index.d.ts +6 -6
- package/dist/flows/Onboarding/index.js +1 -1
- package/dist/flows/Onboarding/types.d.ts +6 -6
- package/dist/flows/Onboarding/utils.d.ts +7 -7
- package/dist/flows/Onboarding/utils.js +1 -1
- package/dist/flows/Termination/AdditionalDetailsForm.d.ts +6 -6
- package/dist/flows/Termination/AdditionalDetailsForm.js +1 -1
- package/dist/flows/Termination/EmployeeComunicationForm.d.ts +6 -6
- package/dist/flows/Termination/EmployeeComunicationForm.js +1 -1
- package/dist/flows/Termination/PaidTimeOffForm.d.ts +6 -6
- package/dist/flows/Termination/PaidTimeOffForm.js +1 -1
- package/dist/flows/Termination/TerminationBack.js +1 -1
- package/dist/flows/Termination/TerminationDetailsForm.d.ts +6 -6
- package/dist/flows/Termination/TerminationDetailsForm.js +1 -1
- package/dist/flows/Termination/TerminationFlow.d.ts +6 -6
- package/dist/flows/Termination/TerminationFlow.js +1 -1
- package/dist/flows/Termination/TerminationForm.d.ts +6 -6
- package/dist/flows/Termination/TerminationForm.js +1 -1
- package/dist/flows/Termination/TerminationSubmit.js +1 -1
- package/dist/flows/Termination/api.d.ts +9 -9
- 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 +13 -13
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOff.js +1 -1
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.d.ts +12 -12
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.js +1 -1
- package/dist/flows/Termination/components/PaidTimeOff/types.d.ts +13 -13
- 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 +14 -14
- package/dist/flows/Termination/hooks.d.ts +6 -6
- package/dist/flows/Termination/hooks.js +1 -1
- package/dist/flows/Termination/index.d.ts +9 -9
- 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 +6 -6
- package/dist/flows/Termination/json-schemas/schema.js +1 -1
- package/dist/flows/Termination/types.d.ts +6 -6
- package/dist/flows/Termination/utils.d.ts +6 -6
- package/dist/flows/Termination/utils.js +1 -1
- package/dist/flows/types.d.ts +34 -4
- package/dist/index.css +2 -2
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +37 -16
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internals.d.ts +1 -1
- package/dist/internals.js +1 -1
- package/dist/{mutations-Cdk0PM78.d.ts → mutations-CxBW1zxv.d.ts} +1 -1
- package/dist/{remoteFlows-DUivEPPh.d.ts → remoteFlows-CY58Msdt.d.ts} +1 -8
- package/dist/{types-BZBdCzER.d.ts → types-B9DYionD.d.ts} +40 -22
- package/dist/{types-pohqJTkr.d.ts → types-BoBuxeV0.d.ts} +14 -17
- package/dist/{types-C-X7siUr.d.ts → types-C9ltj_p9.d.ts} +10 -10
- package/dist/{types-OcTc56P-.d.ts → types-QAgBmZlN.d.ts} +3 -2
- package/dist/{types.gen-D0ZCnKWv.d.ts → types.gen-D7WEgMDJ.d.ts} +270 -221
- package/dist/utils-CjDMg_Yr.d.ts +22 -0
- package/package.json +46 -42
- package/dist/ZendeskTriggerButton-Dditzyfj.d.ts +0 -47
- package/dist/chunk-2W2XD7ZY.js.map +0 -1
- package/dist/chunk-3A47R5RQ.js +0 -2
- package/dist/chunk-3A47R5RQ.js.map +0 -1
- package/dist/chunk-3ZWDIEEM.js.map +0 -1
- package/dist/chunk-43WMZDDH.js.map +0 -1
- package/dist/chunk-5CVD5WZZ.js +0 -2
- package/dist/chunk-5CVD5WZZ.js.map +0 -1
- package/dist/chunk-5KZXFQLZ.js +0 -2
- package/dist/chunk-5KZXFQLZ.js.map +0 -1
- package/dist/chunk-5OZPBBXS.js +0 -2
- package/dist/chunk-5OZPBBXS.js.map +0 -1
- package/dist/chunk-5P7INAU2.js +0 -2
- package/dist/chunk-5P7INAU2.js.map +0 -1
- package/dist/chunk-76DHIEN7.js +0 -2
- package/dist/chunk-7CJX7I3M.js +0 -2
- package/dist/chunk-7CJX7I3M.js.map +0 -1
- package/dist/chunk-7R347KBY.js +0 -2
- package/dist/chunk-7R347KBY.js.map +0 -1
- package/dist/chunk-7YQAVDVX.js +0 -2
- package/dist/chunk-7YQAVDVX.js.map +0 -1
- package/dist/chunk-A477TZFC.js +0 -2
- package/dist/chunk-A477TZFC.js.map +0 -1
- package/dist/chunk-AA7QB3QQ.js +0 -2
- package/dist/chunk-AA7QB3QQ.js.map +0 -1
- package/dist/chunk-AM2IRFHQ.js +0 -2
- package/dist/chunk-AM2IRFHQ.js.map +0 -1
- package/dist/chunk-B6IVJUEH.js +0 -2
- package/dist/chunk-B6IVJUEH.js.map +0 -1
- package/dist/chunk-BCXRPHWY.js +0 -2
- package/dist/chunk-BCXRPHWY.js.map +0 -1
- package/dist/chunk-CNDSIADP.js +0 -2
- package/dist/chunk-DPWL4KNA.js.map +0 -1
- package/dist/chunk-DXFA52BU.js +0 -2
- package/dist/chunk-DXFA52BU.js.map +0 -1
- package/dist/chunk-DXIO72S4.js +0 -2
- package/dist/chunk-DXIO72S4.js.map +0 -1
- package/dist/chunk-DYB3RWP7.js +0 -20
- package/dist/chunk-DYB3RWP7.js.map +0 -1
- package/dist/chunk-DZ2R72O5.js +0 -2
- package/dist/chunk-E4CABUTS.js +0 -2
- package/dist/chunk-E4CABUTS.js.map +0 -1
- package/dist/chunk-FRTJ4KWA.js.map +0 -1
- package/dist/chunk-GCJCNDJ3.js +0 -2
- package/dist/chunk-GCJCNDJ3.js.map +0 -1
- package/dist/chunk-GKD2WI2W.js +0 -2
- package/dist/chunk-GKD2WI2W.js.map +0 -1
- package/dist/chunk-GOGPCCBS.js +0 -2
- package/dist/chunk-GOGPCCBS.js.map +0 -1
- package/dist/chunk-HO2TIG7R.js +0 -2
- package/dist/chunk-HO2TIG7R.js.map +0 -1
- package/dist/chunk-HPHWQU34.js +0 -2
- package/dist/chunk-HPHWQU34.js.map +0 -1
- package/dist/chunk-HZDCZFR5.js.map +0 -1
- package/dist/chunk-IHNYOUXP.js +0 -2
- package/dist/chunk-IHNYOUXP.js.map +0 -1
- package/dist/chunk-K2BWF2HC.js +0 -2
- package/dist/chunk-K2BWF2HC.js.map +0 -1
- package/dist/chunk-LV5R6H3D.js +0 -2
- package/dist/chunk-M2CI2UDK.js +0 -2
- package/dist/chunk-M2CI2UDK.js.map +0 -1
- package/dist/chunk-MQWVZSGH.js +0 -2
- package/dist/chunk-MQWVZSGH.js.map +0 -1
- package/dist/chunk-MZB24YJP.js.map +0 -1
- package/dist/chunk-OKM7DRCF.js +0 -2
- package/dist/chunk-P7JZC65P.js +0 -2
- package/dist/chunk-P7JZC65P.js.map +0 -1
- package/dist/chunk-Q4BKFSTW.js +0 -2
- package/dist/chunk-Q4BKFSTW.js.map +0 -1
- package/dist/chunk-QWJFYQK3.js +0 -2
- package/dist/chunk-QWJFYQK3.js.map +0 -1
- package/dist/chunk-SHP4ULHS.js +0 -2
- package/dist/chunk-SHP4ULHS.js.map +0 -1
- package/dist/chunk-SPQO42TA.js +0 -2
- package/dist/chunk-SPQO42TA.js.map +0 -1
- package/dist/chunk-SRRY72CZ.js +0 -2
- package/dist/chunk-SRRY72CZ.js.map +0 -1
- package/dist/chunk-THMWKOHC.js +0 -2
- package/dist/chunk-THMWKOHC.js.map +0 -1
- package/dist/chunk-TWVFLXVF.js +0 -2
- package/dist/chunk-U4JVXNOG.js +0 -2
- package/dist/chunk-U4JVXNOG.js.map +0 -1
- package/dist/chunk-WBRWVTZK.js +0 -2
- package/dist/chunk-WBRWVTZK.js.map +0 -1
- package/dist/chunk-WJ6YJFD4.js +0 -2
- package/dist/chunk-WJ6YJFD4.js.map +0 -1
- package/dist/chunk-WMPKW7HC.js +0 -2
- package/dist/chunk-WMPKW7HC.js.map +0 -1
- package/dist/chunk-WW5UCMQZ.js +0 -2
- package/dist/chunk-WW5UCMQZ.js.map +0 -1
- package/dist/chunk-WXUIXZ7P.js +0 -2
- package/dist/chunk-WXUIXZ7P.js.map +0 -1
- package/dist/chunk-XNOLBKZC.js +0 -2
- package/dist/chunk-XNOLBKZC.js.map +0 -1
- package/dist/chunk-XPL5XOQ4.js +0 -2
- package/dist/chunk-XPL5XOQ4.js.map +0 -1
- package/dist/chunk-XPOLXRYT.js +0 -2
- package/dist/chunk-XPOLXRYT.js.map +0 -1
- package/dist/chunk-YDJVQRND.js +0 -2
- package/dist/chunk-YDJVQRND.js.map +0 -1
- package/dist/chunk-Z3BMF4BO.js +0 -1
- package/dist/chunk-ZE3YT3Q6.js +0 -2
- package/dist/chunk-ZE3YT3Q6.js.map +0 -1
- package/dist/chunk-ZSCKSEAA.js +0 -2
- package/dist/chunk-ZSCKSEAA.js.map +0 -1
- package/dist/flows/CostCalculator/CostCalculatorDisclaimer.d.ts +0 -8
- package/dist/flows/CostCalculator/CostCalculatorDisclaimer.js +0 -2
- package/dist/flows/CostCalculator/CostCalculatorDisclaimer.js.map +0 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorBenefitsBreakdown.d.ts +0 -16
- package/dist/flows/CostCalculator/Results/CostCalculatorBenefitsBreakdown.js +0 -2
- package/dist/flows/CostCalculator/Results/CostCalculatorBenefitsBreakdown.js.map +0 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorContributionsBreakdown.d.ts +0 -16
- package/dist/flows/CostCalculator/Results/CostCalculatorContributionsBreakdown.js +0 -2
- package/dist/flows/CostCalculator/Results/CostCalculatorContributionsBreakdown.js.map +0 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorExtraStatutoryPaymentsBreakdown.d.ts +0 -16
- package/dist/flows/CostCalculator/Results/CostCalculatorExtraStatutoryPaymentsBreakdown.js +0 -2
- package/dist/flows/CostCalculator/Results/CostCalculatorExtraStatutoryPaymentsBreakdown.js.map +0 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorGrossSalary.d.ts +0 -10
- package/dist/flows/CostCalculator/Results/CostCalculatorGrossSalary.js +0 -2
- package/dist/flows/CostCalculator/Results/CostCalculatorGrossSalary.js.map +0 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorIndirectTax.d.ts +0 -9
- package/dist/flows/CostCalculator/Results/CostCalculatorIndirectTax.js +0 -2
- package/dist/flows/CostCalculator/Results/CostCalculatorIndirectTax.js.map +0 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorResults.d.ts +0 -19
- package/dist/flows/CostCalculator/Results/CostCalculatorResults.js +0 -2
- package/dist/flows/CostCalculator/Results/CostCalculatorResults.js.map +0 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorResultsChart.d.ts +0 -13
- package/dist/flows/CostCalculator/Results/CostCalculatorResultsChart.js +0 -2
- package/dist/flows/CostCalculator/Results/CostCalculatorResultsChart.js.map +0 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorTotalCost.d.ts +0 -9
- package/dist/flows/CostCalculator/Results/CostCalculatorTotalCost.js +0 -2
- package/dist/flows/CostCalculator/Results/CostCalculatorTotalCost.js.map +0 -1
- package/dist/flows/CostCalculator/disclaimerUtils.d.ts +0 -10
- package/dist/flows/CostCalculator/disclaimerUtils.js +0 -2
- package/dist/flows/CostCalculator/disclaimerUtils.js.map +0 -1
- /package/dist/{chunk-L3D2AK3X.js.map → chunk-3JKQNLJQ.js.map} +0 -0
- /package/dist/{chunk-5AG4K2EA.js.map → chunk-3SAV2OEE.js.map} +0 -0
- /package/dist/{chunk-QIQTM4HB.js.map → chunk-4GDEWYZC.js.map} +0 -0
- /package/dist/{chunk-UPXJJBXZ.js.map → chunk-6YXSWOKH.js.map} +0 -0
- /package/dist/{chunk-PD24XKD6.js.map → chunk-72OH7PSF.js.map} +0 -0
- /package/dist/{chunk-7VOQAVM4.js.map → chunk-AT7VHJMW.js.map} +0 -0
- /package/dist/{chunk-DPY77ASH.js.map → chunk-BFMUZP2O.js.map} +0 -0
- /package/dist/{chunk-6FWFRVQE.js.map → chunk-BHE7NDIR.js.map} +0 -0
- /package/dist/{chunk-DTHBG6BD.js.map → chunk-EC7QVRRX.js.map} +0 -0
- /package/dist/{chunk-Z3BMF4BO.js.map → chunk-FGBEOUQK.js.map} +0 -0
- /package/dist/{chunk-H425RKFI.js.map → chunk-FZDQ7EEI.js.map} +0 -0
- /package/dist/{chunk-ENW4DCDU.js.map → chunk-G7N277WY.js.map} +0 -0
- /package/dist/{chunk-QIVDIOJG.js.map → chunk-I4XJ764Y.js.map} +0 -0
- /package/dist/{chunk-EM5UYWUQ.js.map → chunk-J6QOM4P4.js.map} +0 -0
- /package/dist/{chunk-HBHVB56P.js.map → chunk-JCYNAEWF.js.map} +0 -0
- /package/dist/{chunk-ANGJCT4I.js.map → chunk-K3PHODKN.js.map} +0 -0
- /package/dist/{chunk-WVDTHFGS.js.map → chunk-LJGCFFAT.js.map} +0 -0
- /package/dist/{chunk-COBQ4WSJ.js.map → chunk-LOZIGR3Z.js.map} +0 -0
- /package/dist/{chunk-ZQ6MG635.js.map → chunk-MDDI5GLL.js.map} +0 -0
- /package/dist/{chunk-ID3ZF7QT.js.map → chunk-MKE27NUF.js.map} +0 -0
- /package/dist/{chunk-AFRA4BIW.js.map → chunk-MXLQEDRJ.js.map} +0 -0
- /package/dist/{chunk-LQAHRGU4.js.map → chunk-MZKA5DYP.js.map} +0 -0
- /package/dist/{chunk-BV3PGYSH.js.map → chunk-ND4FAALX.js.map} +0 -0
- /package/dist/{chunk-IUEXOXFA.js.map → chunk-NS4FRCEH.js.map} +0 -0
- /package/dist/{chunk-SO3YQ4WT.js.map → chunk-OMRLBAVD.js.map} +0 -0
- /package/dist/{chunk-MQ6F5LE4.js.map → chunk-PMTKQME6.js.map} +0 -0
- /package/dist/{chunk-CW3MAP5L.js.map → chunk-QGGFY3DW.js.map} +0 -0
- /package/dist/{chunk-OW5QGJD4.js.map → chunk-QH4EGUER.js.map} +0 -0
- /package/dist/{chunk-P5WUODPR.js.map → chunk-QP3VWGCS.js.map} +0 -0
- /package/dist/{chunk-5ZR7EFPY.js.map → chunk-QP5V46OP.js.map} +0 -0
- /package/dist/{chunk-Q2N5SOKO.js.map → chunk-QUQLW5YW.js.map} +0 -0
- /package/dist/{chunk-5KHLOGTR.js.map → chunk-RPTB2HUM.js.map} +0 -0
- /package/dist/{chunk-6VRUYYUV.js.map → chunk-STPJXT2A.js.map} +0 -0
- /package/dist/{chunk-TWIUL2P3.js.map → chunk-UOOUV52J.js.map} +0 -0
- /package/dist/{chunk-X6CD3FMG.js.map → chunk-W57XSVXY.js.map} +0 -0
- /package/dist/{chunk-OKM7DRCF.js.map → chunk-XOA7GG4P.js.map} +0 -0
- /package/dist/{chunk-UJKTTTGB.js.map → chunk-YSOGGVBO.js.map} +0 -0
- /package/dist/{chunk-OIN3HGOQ.js.map → chunk-YWZI5KJN.js.map} +0 -0
- /package/dist/{chunk-EKKRQI6B.js.map → chunk-ZKINPHYU.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/ui/checkbox.tsx","../src/components/ui/file-uploader.tsx","../src/components/ui/radio-group.tsx","../src/components/ui/select.tsx","../src/components/ui/dialog.tsx","../src/components/ui/alert.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport * as CheckboxPrimitive from '@radix-ui/react-checkbox';\nimport { Check } from 'lucide-react';\n\nimport { cn } from '@/src/lib/utils';\n\nconst Checkbox = React.forwardRef<\n React.ComponentRef<typeof CheckboxPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n 'peer h-4 w-4 shrink-0 rounded-sm border border-input ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-checkbox data-[state=checked]:text-primary',\n className,\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n className={cn('flex items-center justify-center text-current')}\n >\n <Check className='h-4 w-4' />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n));\nCheckbox.displayName = CheckboxPrimitive.Root.displayName;\n\nexport { Checkbox };\n","import React, { useState, useRef, useEffect } from 'react';\nimport { Button } from '@/src/components/ui/button';\nimport { Upload, X } from 'lucide-react';\nimport { cn } from '@/src/lib/utils';\n\n// Convert accept string to readable format (e.g., \".pdf, .doc\" -> \"PDF, DOC\")\nconst getAcceptedFormats = (accept?: string) => {\n if (!accept) return null;\n return accept\n .split(',')\n .map((ext) => ext.trim().toUpperCase())\n .join(', ');\n};\n\ntype FileUploaderProps = {\n onChange: (files: File[]) => void;\n className?: string;\n multiple?: boolean;\n accept?: string;\n files?: File[];\n};\n\nexport function FileUploader({\n onChange,\n className,\n multiple,\n accept,\n files: externalFiles,\n}: FileUploaderProps) {\n const [files, setFiles] = useState<File[]>(externalFiles || []);\n const inputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n if (externalFiles && externalFiles.length > 0) {\n setFiles(externalFiles);\n }\n }, [externalFiles]);\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n inputRef.current?.click();\n };\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (e.target.files && e.target.files.length > 0) {\n const newFiles = Array.from(e.target.files);\n\n setFiles(newFiles);\n onChange(newFiles);\n }\n };\n\n const onRemoveFile = (file: File) => {\n setFiles((prevFiles) => prevFiles.filter((f) => f.name !== file.name));\n onChange(files.filter((f) => f.name !== file.name));\n };\n\n const acceptedFormats = getAcceptedFormats(accept);\n\n return (\n <div className={cn('flex flex-col items-start gap-4', className)}>\n <input\n type='file'\n ref={inputRef}\n onChange={handleChange}\n className='hidden'\n aria-label='File upload'\n multiple={multiple}\n accept={accept}\n />\n <Button type='button' onClick={handleClick} className='gap-2'>\n <Upload className='h-4 w-4' />\n Choose File\n </Button>\n {acceptedFormats && (\n <div className='text-sm text-gray-600'>\n Accepted formats:{' '}\n <span className='font-medium'>{acceptedFormats}</span>\n </div>\n )}\n {files.length === 0 && (\n <div className='text-sm'>\n {!multiple ? (\n <span className='font-medium'>No file selected.</span>\n ) : (\n <span className='font-medium'>\n No files selected. You can select multiple files\n </span>\n )}\n </div>\n )}\n {files.length > 0 &&\n files.map((file, index) => (\n <div key={index} className='text-sm flex items-center gap-2'>\n Selected file: <span className='font-medium'>{file.name}</span> (\n {Math.round(file.size / 1024)} KB)\n <Button variant='ghost' onClick={() => onRemoveFile(file)}>\n <X />\n </Button>\n </div>\n ))}\n </div>\n );\n}\n","import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';\nimport { CircleIcon } from 'lucide-react';\nimport * as React from 'react';\n\nimport { cn } from '@/src/lib/utils';\n\nfunction RadioGroup({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Root>) {\n return (\n <RadioGroupPrimitive.Root\n data-slot='radio-group'\n className={cn('grid gap-3', className)}\n {...props}\n />\n );\n}\n\nfunction RadioGroupItem({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Item>) {\n return (\n <RadioGroupPrimitive.Item\n data-slot='radio-group-item'\n className={cn(\n 'border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator\n data-slot='radio-group-indicator'\n className='relative flex items-center justify-center'\n >\n <CircleIcon className='fill-radio absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2' />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n );\n}\n\nexport { RadioGroup, RadioGroupItem };\n","import * as React from 'react';\nimport * as SelectPrimitive from '@radix-ui/react-select';\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon } from 'lucide-react';\n\nimport { cn } from '@/src/lib/utils';\n\nfunction Select({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Root>) {\n return <SelectPrimitive.Root data-slot='select' {...props} />;\n}\n\nfunction SelectGroup({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Group>) {\n return <SelectPrimitive.Group data-slot='select-group' {...props} />;\n}\n\nfunction SelectValue({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Value>) {\n return <SelectPrimitive.Value data-slot='select-value' {...props} />;\n}\n\nfunction SelectTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Trigger>) {\n return (\n <SelectPrimitive.Trigger\n data-slot='select-trigger'\n className={cn(\n \"border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive flex w-full items-center justify-between rounded-xl border bg-transparent px-4 py-7 text-sm whitespace-nowrap transition-[color] outline-none disabled:cursor-not-allowed disabled:opacity-50 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n 'focus-visible:border-focused',\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild className='absolute right-4'>\n <ChevronDownIcon className='size-4' />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n );\n}\n\nfunction SelectContent({\n className,\n children,\n position = 'popper',\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Content>) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n data-slot='select-content'\n className={cn(\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-xl border',\n position === 'popper' &&\n 'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1',\n className,\n )}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n position === 'popper' &&\n 'h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1',\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n );\n}\n\nfunction SelectLabel({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Label>) {\n return (\n <SelectPrimitive.Label\n data-slot='select-label'\n className={cn('px-2 py-1.5 text-sm font-medium', className)}\n {...props}\n />\n );\n}\n\nfunction SelectItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Item>) {\n return (\n <SelectPrimitive.Item\n data-slot='select-item'\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground min-h-11 justify-between [&_svg:not([class*='text-'])]:text-muted-foreground flex w-full cursor-default items-center gap-2 py-2 px-4 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2\",\n className,\n )}\n {...props}\n >\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n <span className='flex size-3.5 items-center justify-center'>\n <SelectPrimitive.ItemIndicator>\n <CheckIcon className='size-4' />\n </SelectPrimitive.ItemIndicator>\n </span>\n </SelectPrimitive.Item>\n );\n}\n\nfunction SelectSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Separator>) {\n return (\n <SelectPrimitive.Separator\n data-slot='select-separator'\n className={cn('bg-border pointer-events-none -mx-1 my-1 h-px', className)}\n {...props}\n />\n );\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {\n return (\n <SelectPrimitive.ScrollUpButton\n data-slot='select-scroll-up-button'\n className={cn(\n 'flex cursor-default items-center justify-center py-1',\n className,\n )}\n {...props}\n >\n <ChevronUpIcon className='size-4' />\n </SelectPrimitive.ScrollUpButton>\n );\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) {\n return (\n <SelectPrimitive.ScrollDownButton\n data-slot='select-scroll-down-button'\n className={cn(\n 'flex cursor-default items-center justify-center py-1',\n className,\n )}\n {...props}\n >\n <ChevronDownIcon className='size-4' />\n </SelectPrimitive.ScrollDownButton>\n );\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n};\n","'use client';\n\nimport * as React from 'react';\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\nimport { XIcon } from 'lucide-react';\n\nimport { cn } from '@/src/lib/utils';\n\nfunction Dialog({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot='dialog' {...props} />;\n}\n\nfunction DialogTrigger({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot='dialog-trigger' {...props} />;\n}\n\nfunction DialogPortal({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot='dialog-portal' {...props} />;\n}\n\nfunction DialogClose({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot='dialog-close' {...props} />;\n}\n\nfunction DialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot='dialog-overlay'\n className={cn(\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DialogContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content>) {\n return (\n <DialogPortal data-slot='dialog-portal'>\n <DialogOverlay />\n <DialogPrimitive.Content\n data-slot='dialog-content'\n className={cn(\n 'bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg',\n className,\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 RemoteFlows__Dialog__Close\">\n <XIcon />\n <span className='sr-only'>Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n );\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot='dialog-header'\n className={cn('flex flex-col gap-2 text-center sm:text-left', className)}\n {...props}\n />\n );\n}\n\nfunction DialogFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot='dialog-footer'\n className={cn(\n 'flex flex-col-reverse gap-2 sm:flex-row sm:justify-end',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return (\n <DialogPrimitive.Title\n data-slot='dialog-title'\n className={cn('text-lg leading-none font-semibold', className)}\n {...props}\n />\n );\n}\n\nfunction DialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n data-slot='dialog-description'\n className={cn('text-muted-foreground text-sm', className)}\n {...props}\n />\n );\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n};\n","import { cva, type VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport { cn } from '@/src/lib/utils';\n\nconst alertVariants = cva(\n 'relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current',\n {\n variants: {\n variant: {\n default: 'bg-card text-card-foreground',\n destructive:\n 'text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90',\n warning:\n 'bg-card bg-warning border-warning-border [&>svg]:text-current',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\nfunction Alert({\n className,\n variant,\n ...props\n}: React.ComponentProps<'div'> & VariantProps<typeof alertVariants>) {\n return (\n <div\n data-slot='alert'\n role='alert'\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n );\n}\n\nfunction AlertTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot='alert-title'\n className={cn(\n 'col-start-2 min-h-4 font-medium tracking-tight',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDescription({\n className,\n ...props\n}: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot='alert-description'\n className={cn(\n 'text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed inline-block',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Alert, AlertDescription, AlertTitle };\n"],"mappings":"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","names":["React","CheckboxPrimitive","Check","jsx","Checkbox","className","props","ref","cn","Check","useState","useRef","useEffect","Upload","X","jsx","jsxs","getAcceptedFormats","__name","accept","ext","FileUploader","onChange","className","multiple","externalFiles","files","setFiles","useState","inputRef","useRef","useEffect","handleClick","e","handleChange","newFiles","onRemoveFile","file","prevFiles","f","acceptedFormats","cn","Button","Upload","index","X","RadioGroupPrimitive","CircleIcon","jsx","RadioGroup","className","props","cn","__name","RadioGroupItem","CircleIcon","SelectPrimitive","CheckIcon","ChevronDownIcon","ChevronUpIcon","jsx","jsxs","Select","props","__name","SelectGroup","SelectValue","SelectTrigger","className","children","cn","ChevronDownIcon","SelectContent","position","SelectScrollUpButton","SelectScrollDownButton","SelectItem","className","children","props","jsxs","cn","jsx","CheckIcon","__name","SelectScrollUpButton","className","props","jsx","cn","ChevronUpIcon","__name","SelectScrollDownButton","ChevronDownIcon","DialogPrimitive","XIcon","jsx","jsxs","Dialog","props","__name","DialogTrigger","DialogPortal","DialogOverlay","className","props","jsx","cn","__name","DialogContent","children","jsxs","DialogPortal","XIcon","DialogHeader","DialogFooter","DialogTitle","DialogDescription","cva","jsx","alertVariants","cva","Alert","className","variant","props","cn","__name","AlertTitle","AlertDescription"]}
|
package/dist/chunk-HO2TIG7R.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{l as K}from"./chunk-5KZXFQLZ.js";import{a as w}from"./chunk-BV3PGYSH.js";import{b as J}from"./chunk-3ZWDIEEM.js";import{c as G}from"./chunk-CNDSIADP.js";import{a as t,b as d,c as Me}from"./chunk-P37U34EQ.js";var L=d((Et,U)=>{"use strict";function Pe(e){var n=typeof e;return e!=null&&(n=="object"||n=="function")}t(Pe,"isObject");U.exports=Pe});var X=d(($t,V)=>{"use strict";var _e=typeof global=="object"&&global&&global.Object===Object&&global;V.exports=_e});var F=d((qt,z)=>{"use strict";var ke=X(),we=typeof self=="object"&&self&&self.Object===Object&&self,Le=ke||we||Function("return this")();z.exports=Le});var Y=d((It,Q)=>{"use strict";var Fe=F(),Ae=t(function(){return Fe.Date.now()},"now");Q.exports=Ae});var ee=d((Pt,Z)=>{"use strict";var We=/\s/;function De(e){for(var n=e.length;n--&&We.test(e.charAt(n)););return n}t(De,"trimmedEndIndex");Z.exports=De});var ne=d((kt,te)=>{"use strict";var Be=ee(),Ne=/^\s+/;function He(e){return e&&e.slice(0,Be(e)+1).replace(Ne,"")}t(He,"baseTrim");te.exports=He});var A=d((Lt,re)=>{"use strict";var Ge=F(),Je=Ge.Symbol;re.exports=Je});var ae=d((Ft,se)=>{"use strict";var oe=A(),ie=Object.prototype,Ke=ie.hasOwnProperty,Ue=ie.toString,O=oe?oe.toStringTag:void 0;function Ve(e){var n=Ke.call(e,O),r=e[O];try{e[O]=void 0;var o=!0}catch{}var s=Ue.call(e);return o&&(n?e[O]=r:delete e[O]),s}t(Ve,"getRawTag");se.exports=Ve});var ue=d((Wt,ce)=>{"use strict";var Xe=Object.prototype,ze=Xe.toString;function Qe(e){return ze.call(e)}t(Qe,"objectToString");ce.exports=Qe});var me=d((Bt,le)=>{"use strict";var fe=A(),Ye=ae(),Ze=ue(),et="[object Null]",tt="[object Undefined]",de=fe?fe.toStringTag:void 0;function nt(e){return e==null?e===void 0?tt:et:de&&de in Object(e)?Ye(e):Ze(e)}t(nt,"baseGetTag");le.exports=nt});var pe=d((Ht,ge)=>{"use strict";function rt(e){return e!=null&&typeof e=="object"}t(rt,"isObjectLike");ge.exports=rt});var ve=d((Jt,be)=>{"use strict";var ot=me(),it=pe(),st="[object Symbol]";function at(e){return typeof e=="symbol"||it(e)&&ot(e)==st}t(at,"isSymbol");be.exports=at});var Te=d((Ut,xe)=>{"use strict";var ct=ne(),ye=L(),ut=ve(),he=NaN,ft=/^[-+]0x[0-9a-f]+$/i,dt=/^0b[01]+$/i,lt=/^0o[0-7]+$/i,mt=parseInt;function gt(e){if(typeof e=="number")return e;if(ut(e))return he;if(ye(e)){var n=typeof e.valueOf=="function"?e.valueOf():e;e=ye(n)?n+"":n}if(typeof e!="string")return e===0?e:+e;e=ct(e);var r=dt.test(e);return r||lt.test(e)?mt(e.slice(2),r?2:8):ft.test(e)?he:+e}t(gt,"toNumber");xe.exports=gt});var je=d((Xt,Se)=>{"use strict";var pt=L(),W=Y(),Ce=Te(),bt="Expected a function",vt=Math.max,yt=Math.min;function ht(e,n,r){var o,s,p,l,a,c,m=0,E=!1,u=!1,h=!0;if(typeof e!="function")throw new TypeError(bt);n=Ce(n)||0,pt(r)&&(E=!!r.leading,u="maxWait"in r,p=u?vt(Ce(r.maxWait)||0,n):p,h="trailing"in r?!!r.trailing:h);function x(i){var g=o,y=s;return o=s=void 0,m=i,l=e.apply(y,g),l}t(x,"invokeFunc");function R(i){return m=i,a=setTimeout(v,n),E?x(i):l}t(R,"leadingEdge");function C(i){var g=i-c,y=i-m,M=n-g;return u?yt(M,p-y):M}t(C,"remainingWait");function $(i){var g=i-c,y=i-m;return c===void 0||g>=n||g<0||u&&y>=p}t($,"shouldInvoke");function v(){var i=W();if($(i))return b(i);a=setTimeout(v,C(i))}t(v,"timerExpired");function b(i){return a=void 0,h&&o?x(i):(o=s=void 0,l)}t(b,"trailingEdge");function q(){a!==void 0&&clearTimeout(a),m=0,o=c=s=a=void 0}t(q,"cancel");function I(){return a===void 0?l:b(W())}t(I,"flush");function S(){var i=W(),g=$(i);if(o=arguments,s=this,c=i,g){if(a===void 0)return R(c);if(u)return clearTimeout(a),a=setTimeout(v,n),x(c)}return a===void 0&&(a=setTimeout(v,n)),l}return t(S,"debounced"),S.cancel=q,S.flush=I,S}t(ht,"debounce");Se.exports=ht});import{useState as Ct,useCallback as St,useEffect as Re,useRef as $e}from"react";var Ee=Me(je(),1);import{useCallback as xt,useEffect as Tt,useRef as Oe}from"react";function D(e,n){let r=Oe(e);Tt(()=>{r.current=e},[e]);let o=Oe((0,Ee.default)(s=>{r.current(s)},n)).current;return xt(s=>{o(s)},[o])}t(D,"useDebounce");import{Fragment as Ot,jsx as T,jsxs as qe}from"react/jsx-runtime";var jt=t(({description:e,showConversion:n,targetCurrency:r,className:o,onClick:s})=>{let{components:p}=J(),l=n?`Hide ${r} conversion`:`Show ${r} conversion`,a=p?.button;return qe("span",{className:o,children:[e," ",a?T(a,{className:`${o.replace("-description","-button")}`,"data-type":"inline",onClick:s,children:l}):T("button",{className:`${o.replace("-description","-button")}`,onClick:s,children:l})]})},"DescriptionWithConversion"),cn=t(({sourceCurrency:e,targetCurrency:n,mainFieldName:r,conversionFieldName:o,conversionProperties:s,classNamePrefix:p,description:l,conversionType:a="spread",...c})=>{let[m,E]=Ct(!1),{setValue:u,watch:h}=G(),x=h(r||c.name),R=$e(!0),C=$e(new Map),$=e&&n&&e!==n,{mutateAsync:v}=K({type:a}),b=`${c.name}_converted`;Re(()=>{u(b,r||c.name)},[u,r,c.name,b]),Re(()=>{if(R.current){R.current=!1;return}u(o,"")},[e,o,u]);let q=St(async(f,j,k,B)=>{if(!f)return;let N=`${j}_${k}_${f}`,H=C.current.get(N);if(H){u(B,H.targetAmount);return}try{let P=await v({source_currency:j,target_currency:k,amount:Number(f)});if(P.data?.data?.conversion_data?.target_amount){let _=P.data.data.conversion_data.target_amount;if(_){u(B,_?.toString()),C.current.set(N,{targetAmount:_.toString()});let Ie=`${k}_${j}_${_}`;C.current.set(Ie,{targetAmount:f.toString()})}}}catch(P){console.error("Error converting currency:",P)}},[v,u]),I=D(f=>q(f,e,n,o),500),S=D(f=>q(f,n,e,r||c.name),500),i=t(f=>{u(b,r||c.name),m&&I(f.target.value)},"handleMainFieldChange"),g=t(f=>{u(b,o),S(f.target.value)},"handleConversionFieldChange"),y=t(f=>{f.preventDefault(),E(j=>!j),!m&&x&&I(x)},"toggleConversion"),M=$?T(jt,{targetCurrency:n,description:l,showConversion:m,className:`${p}-description`,onClick:y}):l;return qe(Ot,{children:[T(w,{...c,name:r||c.name,additionalProps:{currency:e},description:M,type:"text",inputMode:"decimal",pattern:"^[0-9.]*$",maxLength:15,onChange:i}),m&&T(w,{additionalProps:{currency:n},name:o,label:s?.label||"Conversion",description:s?.description,type:"text",inputMode:"decimal",pattern:"^[0-9.]*$",maxLength:15,onChange:g}),T("input",{type:"hidden",name:b,value:h(b)||r||c.name})]})},"CurrencyConversionField");export{cn as a};
|
|
2
|
-
//# sourceMappingURL=chunk-HO2TIG7R.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../node_modules/lodash/isObject.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_root.js","../node_modules/lodash/now.js","../node_modules/lodash/_trimmedEndIndex.js","../node_modules/lodash/_baseTrim.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/isObjectLike.js","../node_modules/lodash/isSymbol.js","../node_modules/lodash/toNumber.js","../node_modules/lodash/debounce.js","../src/components/form/fields/CurrencyConversionField.tsx","../src/common/hooks.ts"],"sourcesContent":["/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","import { ReactNode, useState, useCallback, useEffect, useRef } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { TextField } from '@/src/components/form/fields/TextField';\nimport { useConvertCurrency } from '@/src/flows/Onboarding/api';\nimport { JSFField } from '@/src/types/remoteFlows';\nimport { useFormFields } from '@/src/context';\nimport { useDebounce } from '@/src/common/hooks';\n\ntype DescriptionWithConversionProps = {\n description: ReactNode;\n showConversion: boolean;\n targetCurrency: string;\n className: string;\n onClick: (evt: React.MouseEvent<HTMLButtonElement>) => void;\n};\n\nconst DescriptionWithConversion = ({\n description,\n showConversion,\n targetCurrency,\n className,\n onClick,\n}: DescriptionWithConversionProps) => {\n const { components } = useFormFields();\n const label = showConversion\n ? `Hide ${targetCurrency} conversion`\n : `Show ${targetCurrency} conversion`;\n\n const CustomButton = components?.button;\n return (\n <span className={className}>\n {description}{' '}\n {CustomButton ? (\n <CustomButton\n className={`${className.replace('-description', '-button')}`}\n data-type='inline'\n onClick={onClick}\n >\n {label}\n </CustomButton>\n ) : (\n <button\n className={`${className.replace('-description', '-button')}`}\n onClick={onClick}\n >\n {label}\n </button>\n )}\n </span>\n );\n};\n\nexport type CurrencyConversionFieldProps = JSFField & {\n sourceCurrency: string;\n targetCurrency: string;\n mainFieldName?: string;\n conversionFieldName: string;\n conversionProperties?: {\n label?: string;\n description?: ReactNode;\n };\n useProxy?: boolean;\n classNamePrefix: string;\n conversionType?: 'spread' | 'no_spread';\n};\n\nexport const CurrencyConversionField = ({\n sourceCurrency,\n targetCurrency,\n mainFieldName,\n conversionFieldName,\n conversionProperties,\n classNamePrefix,\n description,\n conversionType = 'spread',\n ...props\n}: CurrencyConversionFieldProps) => {\n const [showConversion, setShowConversion] = useState(false);\n const { setValue, watch } = useFormContext();\n const fieldValue = watch(mainFieldName || props.name);\n const isFirstRender = useRef(true);\n\n const conversionCache = useRef<Map<string, { targetAmount: string }>>(\n new Map(),\n );\n\n const canShowConversion =\n sourceCurrency && targetCurrency && sourceCurrency !== targetCurrency;\n\n const { mutateAsync: convertCurrency } = useConvertCurrency({\n type: conversionType,\n });\n\n // we keep track of the last input the user used, so we can make sure\n // we keep consistent currency rates\n const lastInputFieldName = `${props.name}_converted`;\n useEffect(() => {\n setValue(lastInputFieldName, mainFieldName || props.name);\n }, [setValue, mainFieldName, props.name, lastInputFieldName]);\n\n useEffect(() => {\n if (isFirstRender.current) {\n isFirstRender.current = false;\n return;\n }\n\n // when source currency changes, reset the conversion field\n setValue(conversionFieldName, '');\n }, [sourceCurrency, conversionFieldName, setValue]);\n\n const convertCurrencyCallback = useCallback(\n async (\n value: string,\n fromCurrency: string,\n toCurrency: string,\n targetField: string,\n ) => {\n if (!value) return;\n\n const cacheKey = `${fromCurrency}_${toCurrency}_${value}`;\n const cached = conversionCache.current.get(cacheKey);\n\n if (cached) {\n setValue(targetField, cached.targetAmount);\n return;\n }\n\n try {\n const response = await convertCurrency({\n source_currency: fromCurrency,\n target_currency: toCurrency,\n amount: Number(value),\n });\n if (response.data?.data?.conversion_data?.target_amount) {\n const amount = response.data.data.conversion_data.target_amount;\n if (amount) {\n setValue(targetField, amount?.toString());\n // Cache both directions\n conversionCache.current.set(cacheKey, {\n targetAmount: amount.toString(),\n });\n const reverseKey = `${toCurrency}_${fromCurrency}_${amount}`;\n conversionCache.current.set(reverseKey, {\n targetAmount: value.toString(),\n });\n }\n }\n } catch (error) {\n console.error('Error converting currency:', error);\n }\n },\n [convertCurrency, setValue],\n );\n\n const debouncedConvertCurrency = useDebounce(\n (value: string) =>\n convertCurrencyCallback(\n value,\n sourceCurrency,\n targetCurrency,\n conversionFieldName,\n ),\n 500,\n );\n const debouncedConvertCurrencyReverse = useDebounce(\n (value: string) =>\n convertCurrencyCallback(\n value,\n targetCurrency,\n sourceCurrency,\n mainFieldName || props.name,\n ),\n 500,\n );\n\n const handleMainFieldChange = (evt: React.ChangeEvent<HTMLInputElement>) => {\n setValue(lastInputFieldName, mainFieldName || props.name);\n if (showConversion) {\n debouncedConvertCurrency(evt.target.value);\n }\n };\n\n const handleConversionFieldChange = (\n evt: React.ChangeEvent<HTMLInputElement>,\n ) => {\n setValue(lastInputFieldName, conversionFieldName);\n debouncedConvertCurrencyReverse(evt.target.value);\n };\n\n const toggleConversion = (evt: React.MouseEvent<HTMLButtonElement>) => {\n evt.preventDefault();\n setShowConversion((prev) => !prev);\n\n if (!showConversion && fieldValue) {\n debouncedConvertCurrency(fieldValue);\n }\n };\n\n const extraDescription = canShowConversion ? (\n <DescriptionWithConversion\n targetCurrency={targetCurrency}\n description={description}\n showConversion={showConversion}\n className={`${classNamePrefix}-description`}\n onClick={toggleConversion}\n />\n ) : (\n description\n );\n\n return (\n <>\n <TextField\n {...props}\n name={mainFieldName || props.name}\n additionalProps={{ currency: sourceCurrency }}\n description={extraDescription}\n type='text'\n inputMode='decimal'\n pattern='^[0-9.]*$'\n maxLength={15}\n onChange={handleMainFieldChange}\n />\n {showConversion && (\n <TextField\n additionalProps={{ currency: targetCurrency }}\n name={conversionFieldName}\n label={conversionProperties?.label || 'Conversion'}\n description={conversionProperties?.description}\n type='text'\n inputMode='decimal'\n pattern='^[0-9.]*$'\n maxLength={15}\n onChange={handleConversionFieldChange}\n />\n )}\n <input\n type='hidden'\n name={lastInputFieldName}\n value={watch(lastInputFieldName) || mainFieldName || props.name}\n />\n </>\n );\n};\n","import { useCallback, useEffect, useRef } from 'react';\nimport debounce from 'lodash/debounce';\n\nexport function useDebounce(\n callback: (value: string) => Promise<void>,\n delay: number,\n) {\n const callbackRef = useRef(callback);\n\n useEffect(() => {\n callbackRef.current = callback;\n }, [callback]);\n\n const debouncedFn = useRef(\n debounce((value: string) => {\n callbackRef.current(value);\n }, delay),\n ).current;\n\n return useCallback(\n (value: string) => {\n debouncedFn(value);\n },\n [debouncedFn],\n );\n}\n"],"mappings":"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","names":["require_isObject","__commonJSMin","exports","module","isObject","value","type","__name","require_freeGlobal","__commonJSMin","exports","module","freeGlobal","require_root","__commonJSMin","exports","module","freeGlobal","freeSelf","root","require_now","__commonJSMin","exports","module","root","now","__name","require_trimmedEndIndex","__commonJSMin","exports","module","reWhitespace","trimmedEndIndex","string","index","__name","require_baseTrim","__commonJSMin","exports","module","trimmedEndIndex","reTrimStart","baseTrim","string","__name","require_Symbol","__commonJSMin","exports","module","root","Symbol","require_getRawTag","__commonJSMin","exports","module","Symbol","objectProto","hasOwnProperty","nativeObjectToString","symToStringTag","getRawTag","value","isOwn","tag","unmasked","result","__name","require_objectToString","__commonJSMin","exports","module","objectProto","nativeObjectToString","objectToString","value","__name","require_baseGetTag","__commonJSMin","exports","module","Symbol","getRawTag","objectToString","nullTag","undefinedTag","symToStringTag","baseGetTag","value","__name","require_isObjectLike","__commonJSMin","exports","module","isObjectLike","value","__name","require_isSymbol","__commonJSMin","exports","module","baseGetTag","isObjectLike","symbolTag","isSymbol","value","__name","require_toNumber","__commonJSMin","exports","module","baseTrim","isObject","isSymbol","NAN","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","toNumber","value","other","isBinary","__name","require_debounce","__commonJSMin","exports","module","isObject","now","toNumber","FUNC_ERROR_TEXT","nativeMax","nativeMin","debounce","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","time","args","thisArg","__name","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","timeWaiting","shouldInvoke","trailingEdge","cancel","flush","debounced","isInvoking","useState","useCallback","useEffect","useRef","import_debounce","useCallback","useEffect","useRef","useDebounce","callback","delay","callbackRef","useRef","useEffect","debouncedFn","debounce","value","useCallback","__name","Fragment","jsx","jsxs","DescriptionWithConversion","__name","description","showConversion","targetCurrency","className","onClick","components","useFormFields","label","CustomButton","CurrencyConversionField","sourceCurrency","mainFieldName","conversionFieldName","conversionProperties","classNamePrefix","conversionType","props","setShowConversion","useState","setValue","watch","useFormContext","fieldValue","isFirstRender","useRef","conversionCache","canShowConversion","convertCurrency","useConvertCurrency","lastInputFieldName","useEffect","convertCurrencyCallback","useCallback","value","fromCurrency","toCurrency","targetField","cacheKey","cached","response","amount","reverseKey","error","debouncedConvertCurrency","useDebounce","debouncedConvertCurrencyReverse","handleMainFieldChange","evt","handleConversionFieldChange","toggleConversion","prev","extraDescription","TextField"]}
|
package/dist/chunk-HPHWQU34.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as r}from"./chunk-43WMZDDH.js";import{a as e}from"./chunk-P37U34EQ.js";import{Slot as i}from"@radix-ui/react-slot";import{cva as d}from"class-variance-authority";import{jsx as u}from"react/jsx-runtime";var s=d("inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",{variants:{variant:{default:"border-transparent bg-badge text-badge-foreground rounded-full [a&]:hover:bg-primary/90",secondary:"border-transparent bg-secondary text-secondary-foreground rounded-full [a&]:hover:bg-secondary/90",destructive:"border-transparent bg-destructive text-white rounded-full [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40",outline:"text-foreground rounded-full [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"}},defaultVariants:{variant:"default"}});function g({className:t,variant:a,asChild:o=!1,...n}){return u(o?i:"span",{"data-slot":"badge",className:r(s({variant:a}),t),...n})}e(g,"Badge");export{s as a,g as b};
|
|
2
|
-
//# sourceMappingURL=chunk-HPHWQU34.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/ui/badge.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '@/src/lib/utils';\n\nconst badgeVariants = cva(\n 'inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden',\n {\n variants: {\n variant: {\n default:\n 'border-transparent bg-badge text-badge-foreground rounded-full [a&]:hover:bg-primary/90',\n secondary:\n 'border-transparent bg-secondary text-secondary-foreground rounded-full [a&]:hover:bg-secondary/90',\n destructive:\n 'border-transparent bg-destructive text-white rounded-full [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40',\n outline:\n 'text-foreground rounded-full [a&]:hover:bg-accent [a&]:hover:text-accent-foreground',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\nfunction Badge({\n className,\n variant,\n asChild = false,\n ...props\n}: React.ComponentProps<'span'> &\n VariantProps<typeof badgeVariants> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : 'span';\n\n return (\n <Comp\n data-slot='badge'\n className={cn(badgeVariants({ variant }), className)}\n {...props}\n />\n );\n}\n\nexport { Badge, badgeVariants };\n"],"mappings":"gFACA,OAAS,QAAAA,MAAY,uBACrB,OAAS,OAAAC,MAA8B,2BAmCnC,cAAAC,MAAA,oBA/BJ,IAAMC,EAAgBC,EACpB,iZACA,CACE,SAAU,CACR,QAAS,CACP,QACE,0FACF,UACE,oGACF,YACE,kKACF,QACE,qFACJ,CACF,EACA,gBAAiB,CACf,QAAS,SACX,CACF,CACF,EAEA,SAASC,EAAM,CACb,UAAAC,EACA,QAAAC,EACA,QAAAC,EAAU,GACV,GAAGC,CACL,EAC8D,CAG5D,OACEP,EAHWM,EAAUE,EAAO,OAG3B,CACC,YAAU,QACV,UAAWC,EAAGR,EAAc,CAAE,QAAAI,CAAQ,CAAC,EAAGD,CAAS,EAClD,GAAGG,EACN,CAEJ,CAhBSG,EAAAP,EAAA","names":["Slot","cva","jsx","badgeVariants","cva","Badge","className","variant","asChild","props","Slot","cn","__name"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/Onboarding/components/OnboardingForm.tsx"],"sourcesContent":["import { JSONSchemaFormFields } from '@/src/components/form/JSONSchemaForm';\nimport { Form } from '@/src/components/ui/form';\nimport { useEffect } from 'react';\nimport { useOnboardingContext } from '@/src/flows/Onboarding/context';\nimport { useForm } from 'react-hook-form';\nimport { useJsonSchemasValidationFormResolver } from '@/src/components/form/validationResolver';\nimport { Fields } from '@remoteoss/json-schema-form';\nimport {\n BasicInformationFormPayload,\n BenefitsFormPayload,\n ContractDetailsFormPayload,\n} from '@/src/flows/Onboarding/types';\nimport { $TSFixMe, Components } from '@/src/types/remoteFlows';\nimport { normalizeFieldErrors } from '@/src/lib/mutations';\n\ntype OnboardingFormProps = {\n onSubmit: (\n payload:\n | BasicInformationFormPayload\n | BenefitsFormPayload\n | ContractDetailsFormPayload,\n ) => void;\n components?: Components;\n fields?: Fields;\n defaultValues: Record<string, unknown>;\n};\n\nexport function OnboardingForm({\n defaultValues,\n onSubmit,\n components,\n}: OnboardingFormProps) {\n const { formId, onboardingBag } = useOnboardingContext();\n\n const resolver = useJsonSchemasValidationFormResolver(\n // @ts-expect-error no matching type\n onboardingBag.handleValidation,\n );\n\n const form = useForm({\n resolver,\n defaultValues,\n shouldUnregister: false,\n mode: 'onBlur',\n });\n\n useEffect(() => {\n // When the employmentId is set,\n // we need to run the checkFieldUpdates to update fieldValues in useStepState\n if (onboardingBag.employmentId) {\n onboardingBag?.checkFieldUpdates(form.getValues());\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const subscription = form?.watch((values) => {\n const isAnyFieldDirty = Object.keys(values).some(\n (key) =>\n values[key as keyof unknown] !== defaultValues[key as keyof unknown],\n );\n if (isAnyFieldDirty) {\n onboardingBag?.checkFieldUpdates(values);\n }\n });\n return () => subscription?.unsubscribe();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleSubmit = async (\n values: Record<string, unknown>,\n event?: React.BaseSyntheticEvent,\n ) => {\n const nativeEvent = event?.nativeEvent as $TSFixMe;\n\n if (nativeEvent?.isDraftSubmission) {\n // Handle draft submission\n const { onSuccess, onError } = nativeEvent.draftCallbacks;\n\n try {\n // Trigger validation\n const isValid = await form.trigger();\n if (!isValid) {\n return; // Don't submit if validation fails\n }\n\n // Submit the form\n const response = await onboardingBag.onSubmit(values);\n\n if (response?.data) {\n onSuccess?.();\n } else if (response?.error) {\n const currentStepName = onboardingBag.stepState.currentStep.name;\n\n // Get the appropriate fields based on current step\n const currentStepFields =\n onboardingBag.meta?.fields?.[\n currentStepName as keyof typeof onboardingBag.meta.fields\n ];\n\n const normalizedFieldErrors = normalizeFieldErrors(\n response?.fieldErrors || [],\n currentStepFields,\n );\n onError?.({\n error: response.error,\n rawError: response.rawError,\n fieldErrors: normalizedFieldErrors,\n });\n }\n } catch (error) {\n onError?.({\n error: error as Error,\n rawError: error as Record<string, unknown>,\n fieldErrors: [],\n });\n }\n } else {\n // Handle normal form submission\n onSubmit(values);\n }\n };\n\n return (\n <Form {...form} key={`form-${onboardingBag.stepState.currentStep.name}`}>\n <form\n id={formId}\n onSubmit={form.handleSubmit(handleSubmit)}\n className='space-y-4 RemoteFlows__OnboardingForm'\n >\n <JSONSchemaFormFields\n components={components}\n fields={onboardingBag.fields}\n fieldsets={onboardingBag.meta.fieldsets}\n fieldValues={onboardingBag.fieldValues}\n />\n </form>\n </Form>\n );\n}\n"],"mappings":"kPAEA,OAAS,aAAAA,MAAiB,QAgIlB,cAAAC,MAAA,oBANJ,wBAAAC,MAAA,QAjGG,SAASC,EAAe,CAC7B,cAAAC,EACA,SAAAC,EACA,WAAAC,CACF,EAAwB,CACtB,GAAM,CAAE,OAAAC,EAAQ,cAAAC,CAAc,EAAIC,EAAqB,EAEjDC,EAAWC,EAEfH,EAAc,gBAChB,EAEMI,EAAOC,EAAQ,CACnB,SAAAH,EACA,cAAAN,EACA,iBAAkB,GAClB,KAAM,QACR,CAAC,EAEDU,EAAU,IAAM,CAGVN,EAAc,cAChBA,GAAe,kBAAkBI,EAAK,UAAU,CAAC,CAGrD,EAAG,CAAC,CAAC,EAELE,EAAU,IAAM,CACd,IAAMC,EAAeH,GAAM,MAAOI,GAAW,CACnB,OAAO,KAAKA,CAAM,EAAE,KACzCC,GACCD,EAAOC,CAAoB,IAAMb,EAAca,CAAoB,CACvE,GAEET,GAAe,kBAAkBQ,CAAM,CAE3C,CAAC,EACD,MAAO,IAAMD,GAAc,YAAY,CAEzC,EAAG,CAAC,CAAC,EAEL,IAAMG,EAAeC,EAAA,MACnBH,EACAI,IACG,CACH,IAAMC,EAAcD,GAAO,YAE3B,GAAIC,GAAa,kBAAmB,CAElC,GAAM,CAAE,UAAAC,EAAW,QAAAC,CAAQ,EAAIF,EAAY,eAE3C,GAAI,CAGF,GAAI,CADY,MAAMT,EAAK,QAAQ,EAEjC,OAIF,IAAMY,EAAW,MAAMhB,EAAc,SAASQ,CAAM,EAEpD,GAAIQ,GAAU,KACZF,IAAY,UACHE,GAAU,MAAO,CAC1B,IAAMC,EAAkBjB,EAAc,UAAU,YAAY,KAGtDkB,EACJlB,EAAc,MAAM,SAClBiB,CACF,EAEIE,EAAwBC,EAC5BJ,GAAU,aAAe,CAAC,EAC1BE,CACF,EACAH,IAAU,CACR,MAAOC,EAAS,MAChB,SAAUA,EAAS,SACnB,YAAaG,CACf,CAAC,CACH,CACF,OAASE,EAAO,CACdN,IAAU,CACR,MAAOM,EACP,SAAUA,EACV,YAAa,CAAC,CAChB,CAAC,CACH,CACF,MAEExB,EAASW,CAAM,CAEnB,EApDqB,gBAsDrB,OACEd,EAAC4B,EAAA,CAAM,GAAGlB,EAAM,IAAK,QAAQJ,EAAc,UAAU,YAAY,IAAI,IACnEP,EAAC,QACC,GAAIM,EACJ,SAAUK,EAAK,aAAaM,CAAY,EACxC,UAAU,wCAEV,SAAAjB,EAAC8B,EAAA,CACC,WAAYzB,EACZ,OAAQE,EAAc,OACtB,UAAWA,EAAc,KAAK,UAC9B,YAAaA,EAAc,YAC7B,EACF,CACF,CAEJ,CAhHgBW,EAAAhB,EAAA","names":["useEffect","jsx","createElement","OnboardingForm","defaultValues","onSubmit","components","formId","onboardingBag","useOnboardingContext","resolver","useJsonSchemasValidationFormResolver","form","useForm","useEffect","subscription","values","key","handleSubmit","__name","event","nativeEvent","onSuccess","onError","response","currentStepName","currentStepFields","normalizedFieldErrors","normalizeFieldErrors","error","Form","JSONSchemaFormFields"]}
|
package/dist/chunk-IHNYOUXP.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{b as u}from"./chunk-5P7INAU2.js";import{a as F}from"./chunk-WJ6YJFD4.js";import{f as l,g as p}from"./chunk-CNDSIADP.js";import{c as f}from"./chunk-WXUIXZ7P.js";import{b as _}from"./chunk-TVZAFTPT.js";import{a as r}from"./chunk-P37U34EQ.js";import{useEffect as R}from"react";import{jsx as a}from"react/jsx-runtime";var w=["effective_date","reason_for_change","reason_for_change_description","additional_comments","additional_comments_toggle"];function x({onSubmit:b,onError:m,onSuccess:A}){let{formId:C,contractAmendment:{checkFieldUpdates:h,fields:s,onSubmit:S,stepState:g,initialValues:i,handleValidation:y}}=_(),V=u(y),e=l({resolver:V,defaultValues:g.values?.form||i,shouldUnregister:!0,mode:"onBlur"});R(()=>{let t=e?.watch(o=>{(Object.keys(e.formState.dirtyFields).length>0||e.formState.isDirty)&&h(o)});return()=>t?.unsubscribe()},[]);let v=r(async t=>{let o=!1;for(let[c,P]of Object.entries(t))if(!w.includes(c)&&i[c]!==P){o=!0;break}if(!o)return m?.({message:"no_changes_detected_contract_details"});let d=f(t,s,{isPartialValidation:!1});await b?.(d);let n=await S(t);n.error?m?.(n.error):await A?.(n.data)},"handleSubmit");return a(p,{...e,children:a("form",{id:C,"data-testid":"contract-amendment-form",onSubmit:e.handleSubmit(v),className:"space-y-4 RemoteFlows__ContractAmendmentForm",children:a(F,{fields:s})})})}r(x,"ContractAmendmentForm");export{x as a};
|
|
2
|
-
//# sourceMappingURL=chunk-IHNYOUXP.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/ContractAmendment/ContractAmendmentForm.tsx"],"sourcesContent":["import {\n ContractAmendmentAutomatableResponse,\n PostAutomatableContractAmendmentError,\n} from '@/src/client';\nimport { JSONSchemaFormFields } from '@/src/components/form/JSONSchemaForm';\nimport { parseJSFToValidate } from '@/src/components/form/utils';\nimport { useJsonSchemasValidationFormResolver } from '@/src/components/form/validationResolver';\nimport { Form } from '@/src/components/ui/form';\nimport { useEffect } from 'react';\nimport { FieldValues, useForm } from 'react-hook-form';\nimport { useContractAmendmentContext } from './context';\n\ntype ContractAmendmentFormProps = {\n /**\n * Callback function to be called when the contract amendment form is submitted.\n * This function is called before the contract amendment is submitted.\n * It can be used to perform any additional validation or processing before\n * the contract amendment is submitted.\n * @param values\n * @returns\n */\n onSubmit?: (values: FieldValues) => void | Promise<void>;\n /**\n * Callback function to be called when the contract amendment fails.\n * @param error\n * @returns\n */\n onError?: (\n error:\n | PostAutomatableContractAmendmentError\n | { message: 'no_changes_detected_contract_details' },\n ) => void;\n /**\n * Callback function to be called when the contract amendment is successfully submitted.\n * This function is called after the contract amendment is submitted.\n * @param data\n * @returns\n */\n onSuccess?: (\n data: ContractAmendmentAutomatableResponse,\n ) => void | Promise<void>;\n};\n\nconst commonFields = [\n 'effective_date',\n 'reason_for_change',\n 'reason_for_change_description',\n 'additional_comments',\n 'additional_comments_toggle',\n] as const;\n\ntype CommonFields = (typeof commonFields)[number];\n\nexport function ContractAmendmentForm({\n onSubmit,\n onError,\n onSuccess,\n}: ContractAmendmentFormProps) {\n const {\n formId,\n contractAmendment: {\n checkFieldUpdates,\n fields,\n onSubmit: submitContractAmendment,\n stepState,\n initialValues,\n handleValidation,\n },\n } = useContractAmendmentContext();\n\n const resolver = useJsonSchemasValidationFormResolver(\n // @ts-expect-error no matching type\n handleValidation,\n );\n\n const form = useForm({\n resolver,\n defaultValues:\n // stepState.values is used as defaultValues for the form when the form is\n // rendered when clicking on the back button after the user has submitted the form\n // and the confirmation form is displayed.\n // This is because the form is unmounted when the user submits the form.\n stepState.values?.form || initialValues,\n shouldUnregister: true,\n mode: 'onBlur',\n });\n\n useEffect(() => {\n const subscription = form?.watch((values) => {\n const isFormDirty =\n Object.keys(form.formState.dirtyFields).length > 0 ||\n form.formState.isDirty;\n if (isFormDirty) {\n checkFieldUpdates(values);\n }\n });\n return () => subscription?.unsubscribe();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleSubmit = async (values: FieldValues) => {\n let hasContractDetailsChanges = false;\n for (const [key, value] of Object.entries(values)) {\n if (\n !commonFields.includes(key as CommonFields) &&\n // @ts-expect-error error\n initialValues[key] !== value\n ) {\n hasContractDetailsChanges = true;\n break;\n }\n }\n\n if (!hasContractDetailsChanges) {\n return onError?.({\n message: 'no_changes_detected_contract_details',\n });\n }\n\n const parsedValues = parseJSFToValidate(values, fields, {\n isPartialValidation: false,\n });\n\n await onSubmit?.(parsedValues);\n\n const contractAmendmentResult = await submitContractAmendment(values);\n\n if (contractAmendmentResult.error) {\n onError?.(contractAmendmentResult.error);\n } else {\n await onSuccess?.(\n contractAmendmentResult.data as ContractAmendmentAutomatableResponse,\n );\n }\n };\n\n return (\n <Form {...form}>\n <form\n id={formId}\n data-testid='contract-amendment-form'\n onSubmit={form.handleSubmit(handleSubmit)}\n className='space-y-4 RemoteFlows__ContractAmendmentForm'\n >\n <JSONSchemaFormFields fields={fields} />\n </form>\n </Form>\n );\n}\n"],"mappings":"uPAQA,OAAS,aAAAA,MAAiB,QAwIlB,cAAAC,MAAA,oBArGR,IAAMC,EAAe,CACnB,iBACA,oBACA,gCACA,sBACA,4BACF,EAIO,SAASC,EAAsB,CACpC,SAAAC,EACA,QAAAC,EACA,UAAAC,CACF,EAA+B,CAC7B,GAAM,CACJ,OAAAC,EACA,kBAAmB,CACjB,kBAAAC,EACA,OAAAC,EACA,SAAUC,EACV,UAAAC,EACA,cAAAC,EACA,iBAAAC,CACF,CACF,EAAIC,EAA4B,EAE1BC,EAAWC,EAEfH,CACF,EAEMI,EAAOC,EAAQ,CACnB,SAAAH,EACA,cAKEJ,EAAU,QAAQ,MAAQC,EAC5B,iBAAkB,GAClB,KAAM,QACR,CAAC,EAEDO,EAAU,IAAM,CACd,IAAMC,EAAeH,GAAM,MAAOI,GAAW,EAEzC,OAAO,KAAKJ,EAAK,UAAU,WAAW,EAAE,OAAS,GACjDA,EAAK,UAAU,UAEfT,EAAkBa,CAAM,CAE5B,CAAC,EACD,MAAO,IAAMD,GAAc,YAAY,CAEzC,EAAG,CAAC,CAAC,EAEL,IAAME,EAAeC,EAAA,MAAOF,GAAwB,CAClD,IAAIG,EAA4B,GAChC,OAAW,CAACC,EAAKC,CAAK,IAAK,OAAO,QAAQL,CAAM,EAC9C,GACE,CAACnB,EAAa,SAASuB,CAAmB,GAE1Cb,EAAca,CAAG,IAAMC,EACvB,CACAF,EAA4B,GAC5B,KACF,CAGF,GAAI,CAACA,EACH,OAAOnB,IAAU,CACf,QAAS,sCACX,CAAC,EAGH,IAAMsB,EAAeC,EAAmBP,EAAQZ,EAAQ,CACtD,oBAAqB,EACvB,CAAC,EAED,MAAML,IAAWuB,CAAY,EAE7B,IAAME,EAA0B,MAAMnB,EAAwBW,CAAM,EAEhEQ,EAAwB,MAC1BxB,IAAUwB,EAAwB,KAAK,EAEvC,MAAMvB,IACJuB,EAAwB,IAC1B,CAEJ,EAlCqB,gBAoCrB,OACE5B,EAAC6B,EAAA,CAAM,GAAGb,EACR,SAAAhB,EAAC,QACC,GAAIM,EACJ,cAAY,0BACZ,SAAUU,EAAK,aAAaK,CAAY,EACxC,UAAU,+CAEV,SAAArB,EAAC8B,EAAA,CAAqB,OAAQtB,EAAQ,EACxC,EACF,CAEJ,CA/FgBc,EAAApB,EAAA","names":["useEffect","jsx","commonFields","ContractAmendmentForm","onSubmit","onError","onSuccess","formId","checkFieldUpdates","fields","submitContractAmendment","stepState","initialValues","handleValidation","useContractAmendmentContext","resolver","useJsonSchemasValidationFormResolver","form","useForm","useEffect","subscription","values","handleSubmit","__name","hasContractDetailsChanges","key","value","parsedValues","parseJSFToValidate","contractAmendmentResult","Form","JSONSchemaFormFields"]}
|
package/dist/chunk-K2BWF2HC.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as v}from"./chunk-A477TZFC.js";import{a as l,b as _}from"./chunk-FRTJ4KWA.js";import{a as A}from"./chunk-2YTBWEC7.js";import{E as w,c as E,r as b}from"./chunk-AA7QB3QQ.js";import{a as M}from"./chunk-PJBAQZ6G.js";import{d}from"./chunk-3ZWDIEEM.js";import{a as j,c as S}from"./chunk-WXUIXZ7P.js";import{a as t}from"./chunk-P37U34EQ.js";import{createHeadlessForm as I,modify as B}from"@remoteoss/json-schema-form";import{useMutation as Q,useQuery as J}from"@tanstack/react-query";var K=t(({countryCode:a,employment:r,fieldValues:n,options:e})=>{let{client:u}=d(),m=e?.jsonSchemaVersion?.contract_amendments?{json_schema_version:e.jsonSchemaVersion.contract_amendments}:{};return J({queryKey:["contract-amendment-schema"],retry:!1,queryFn:t(async()=>{let o=await E({client:u,headers:{Authorization:""},query:{employment_id:r?.id,country_code:a,...m}});if(o.error||!o.data)throw new Error("Failed to fetch contract amendment schema");return o},"queryFn"),enabled:!!r,select:t(({data:o})=>{let c=o?.data||{};if(e&&e.jsfModify){let{schema:y}=B(c,e.jsfModify);c=y}let s={...n,annual_gross_salary:n?.annual_gross_salary?j(n?.annual_gross_salary):void 0},f=Object.keys(s).length>0;return I(c,{initialValues:f?s:_(r)})},"select")})},"useContractAmendmentSchemaQuery"),U=t(a=>{let{client:r}=d(),n=a?.jsonSchemaVersion?.contract_amendments?{json_schema_version:a.jsonSchemaVersion.contract_amendments}:{};return Q({mutationFn:t(e=>b({client:r,headers:{Authorization:""},body:e,query:{...n}}),"mutationFn")})},"useCreateContractAmendmentMutation"),D=t(a=>{let{client:r}=d(),n=a?.jsonSchemaVersion?.contract_amendments?{json_schema_version:a.jsonSchemaVersion.contract_amendments}:{};return Q({mutationFn:t(e=>w({client:r,headers:{Authorization:""},body:e,query:{...n}}),"mutationFn")})},"useAutomatableContractAmendmentMutation"),ae=t(({employmentId:a,countryCode:r,options:n})=>{let{fieldValues:e,setFieldValues:u,stepState:m,nextStep:o,previousStep:c}=M(l),{data:s,isLoading:f,isError:V,error:y}=v({employmentId:a}),{data:i,isLoading:q,isError:L,error:T}=K({employment:s,countryCode:r,fieldValues:{...m.values?.[m.currentStep.name],...e},options:n}),k=_(s,i?.fields),F=U(n),g=D(n);async function O(h){let p=S(h,i?.fields||[],{isPartialValidation:!1}),P={employment_id:s?.id,amendment_contract_id:s?.active_contract_id,contract_amendment:{...p}};switch(m.currentStep.name){case l.form.name:{let{mutateAsync:C}=A(g),H=await C(P);return o(),H}case l.confirmation_form.name:{let{mutateAsync:C}=A(F);return C(P)}default:throw new Error("Invalid step state")}}t(O,"onSubmit");function z(h){if(i){let p=S(h,i?.fields);return i?.handleValidation(p)}return null}t(z,"handleValidation");function x(){c()}return t(x,"back"),{stepState:m,fields:i?.fields||[],isLoading:f||q,isError:V||L,error:y||T,isSubmitting:g.isPending||F.isPending,initialValues:k,values:e,handleValidation:z,checkFieldUpdates:u,onSubmit:O,back:x}},"useContractAmendment");export{ae as a};
|
|
2
|
-
//# sourceMappingURL=chunk-K2BWF2HC.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/ContractAmendment/hooks.ts"],"sourcesContent":["import {\n CreateContractAmendmentParams,\n Employment,\n getShowContractAmendmentSchema,\n postAutomatableContractAmendment,\n postCreateContractAmendment,\n} from '@/src/client';\n\nimport {\n convertToCents,\n parseJSFToValidate,\n} from '@/src/components/form/utils';\nimport { mutationToPromise } from '@/src/lib/mutations';\n\nimport { Client } from '@hey-api/client-fetch';\nimport { createHeadlessForm, modify } from '@remoteoss/json-schema-form';\nimport { useMutation, useQuery } from '@tanstack/react-query';\nimport { ContractAmendmentParams } from './types';\n\nimport { useEmploymentQuery } from '@/src/common/api';\nimport { useClient } from '@/src/context';\nimport { FieldValues } from 'react-hook-form';\nimport { useStepState } from '../useStepState';\nimport { buildInitialValues, STEPS } from './utils';\nimport { FlowOptions } from '@/src/flows/types';\n\ntype ContractAmendmentSchemaParams = {\n countryCode: string;\n employment: Employment | undefined;\n fieldValues: FieldValues | undefined;\n options?: ContractAmendmentParams['options'];\n};\n\nconst useContractAmendmentSchemaQuery = ({\n countryCode,\n employment,\n fieldValues,\n options,\n}: ContractAmendmentSchemaParams) => {\n const { client } = useClient();\n const jsonSchemaQueryParam = options?.jsonSchemaVersion?.contract_amendments\n ? {\n json_schema_version: options.jsonSchemaVersion.contract_amendments,\n }\n : {};\n return useQuery({\n queryKey: ['contract-amendment-schema'],\n retry: false,\n queryFn: async () => {\n const response = await getShowContractAmendmentSchema({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n query: {\n employment_id: employment?.id as string,\n country_code: countryCode,\n ...jsonSchemaQueryParam,\n },\n });\n\n // If response status is 404 or other error, throw an error to trigger isError\n if (response.error || !response.data) {\n throw new Error('Failed to fetch contract amendment schema');\n }\n\n return response;\n },\n enabled: Boolean(employment),\n select: ({ data }) => {\n let jsfSchema = data?.data || {};\n\n if (options && options.jsfModify) {\n const { schema } = modify(jsfSchema, options.jsfModify);\n jsfSchema = schema;\n }\n\n const copyFieldValues = {\n ...fieldValues,\n annual_gross_salary: fieldValues?.annual_gross_salary\n ? convertToCents(fieldValues?.annual_gross_salary)\n : undefined,\n };\n\n const hasFieldValues = Object.keys(copyFieldValues).length > 0;\n\n const result = createHeadlessForm(jsfSchema, {\n initialValues: hasFieldValues\n ? copyFieldValues\n : buildInitialValues(employment),\n });\n return result;\n },\n });\n};\n\nconst useCreateContractAmendmentMutation = (options?: FlowOptions) => {\n const { client } = useClient();\n const jsonSchemaQueryParam = options?.jsonSchemaVersion?.contract_amendments\n ? {\n json_schema_version: options.jsonSchemaVersion.contract_amendments,\n }\n : {};\n return useMutation({\n mutationFn: (payload: CreateContractAmendmentParams) => {\n return postCreateContractAmendment({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n body: payload,\n query: {\n ...jsonSchemaQueryParam,\n },\n });\n },\n });\n};\n\nconst useAutomatableContractAmendmentMutation = (options?: FlowOptions) => {\n const { client } = useClient();\n const jsonSchemaQueryParam = options?.jsonSchemaVersion?.contract_amendments\n ? {\n json_schema_version: options.jsonSchemaVersion.contract_amendments,\n }\n : {};\n return useMutation({\n mutationFn: (payload: CreateContractAmendmentParams) => {\n return postAutomatableContractAmendment({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n body: payload,\n query: {\n ...jsonSchemaQueryParam,\n },\n });\n },\n });\n};\n\nexport const useContractAmendment = ({\n employmentId,\n countryCode,\n options,\n}: ContractAmendmentParams) => {\n const { fieldValues, setFieldValues, stepState, nextStep, previousStep } =\n useStepState<keyof typeof STEPS>(STEPS);\n\n const {\n data: employment,\n isLoading: isLoadingEmployment,\n isError: isErrorEmployment,\n error: errorEmployment,\n } = useEmploymentQuery({\n employmentId,\n });\n\n const {\n data: contractAmendmentHeadlessForm,\n isLoading: isLoadingContractAmendments,\n isError: isErrorContractAmendmentSchema,\n error: errorContractAmendmentSchema,\n } = useContractAmendmentSchemaQuery({\n employment,\n countryCode,\n // In case the user is navigating back to the form step, we need to\n // pass the previous field values, so that the schema can be\n // generated with the correct values.\n fieldValues: {\n ...stepState.values?.[stepState.currentStep.name], // Restore values for the current step\n ...fieldValues,\n },\n options,\n });\n\n const initialValues = buildInitialValues(\n employment,\n contractAmendmentHeadlessForm?.fields,\n );\n\n const createContractAmendmentMutation =\n useCreateContractAmendmentMutation(options);\n const automatableContractAmendmentMutation =\n useAutomatableContractAmendmentMutation(options);\n\n async function onSubmit(values: FieldValues) {\n const parsedValues = parseJSFToValidate(\n values,\n contractAmendmentHeadlessForm?.fields || [],\n {\n isPartialValidation: false,\n },\n );\n\n const payload = {\n employment_id: employment?.id as string,\n amendment_contract_id: employment?.active_contract_id as string,\n contract_amendment: {\n ...parsedValues,\n },\n };\n\n switch (stepState.currentStep.name) {\n case STEPS.form.name: {\n const { mutateAsync } = mutationToPromise(\n automatableContractAmendmentMutation,\n );\n\n const automatableContractAmendment = await mutateAsync(payload);\n\n nextStep();\n\n return automatableContractAmendment;\n }\n case STEPS.confirmation_form.name: {\n const { mutateAsync } = mutationToPromise(\n createContractAmendmentMutation,\n );\n\n return mutateAsync(payload);\n }\n\n default:\n throw new Error('Invalid step state');\n }\n }\n\n function handleValidation(values: FieldValues) {\n if (contractAmendmentHeadlessForm) {\n const parsedValues = parseJSFToValidate(\n values,\n contractAmendmentHeadlessForm?.fields,\n );\n\n return contractAmendmentHeadlessForm?.handleValidation(parsedValues);\n }\n return null;\n }\n\n function back() {\n previousStep();\n }\n\n return {\n /**\n * Current step state containing the current step and total number of steps\n */\n stepState,\n /**\n * Array of form fields from the contract amendment schema\n */\n fields: contractAmendmentHeadlessForm?.fields || [],\n /**\n * Loading state indicating if either employment or contract amendment data is being fetched\n */\n isLoading: isLoadingEmployment || isLoadingContractAmendments,\n /**\n * Error state indicating if there was an error fetching either employment or contract amendment data\n */\n isError: isErrorEmployment || isErrorContractAmendmentSchema,\n /**\n * Error object containing details about any errors that occurred during data fetching\n */\n error: errorEmployment || errorContractAmendmentSchema,\n /**\n * Loading state indicating if a contract amendment mutation is in progress\n */\n isSubmitting:\n automatableContractAmendmentMutation.isPending ||\n createContractAmendmentMutation.isPending,\n /**\n * Initial form values built from employment data and contract amendment fields\n */\n initialValues,\n /**\n * Current form field values\n */\n values: fieldValues,\n /**\n * Function to validate form values against the contract amendment schema\n * @param values - Form values to validate\n * @returns Validation result or null if no schema is available\n */\n handleValidation,\n /**\n * Function to update the current form field values\n * @param values - New form values to set\n */\n checkFieldUpdates: setFieldValues,\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 * Function to handle going back to the previous step\n * @returns {void}\n */\n back,\n };\n};\n"],"mappings":"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","names":["createHeadlessForm","modify","useMutation","useQuery","useContractAmendmentSchemaQuery","__name","countryCode","employment","fieldValues","options","client","useClient","jsonSchemaQueryParam","useQuery","response","getShowContractAmendmentSchema","data","jsfSchema","schema","modify","copyFieldValues","convertToCents","hasFieldValues","createHeadlessForm","buildInitialValues","useCreateContractAmendmentMutation","useMutation","payload","postCreateContractAmendment","useAutomatableContractAmendmentMutation","postAutomatableContractAmendment","useContractAmendment","employmentId","setFieldValues","stepState","nextStep","previousStep","useStepState","STEPS","isLoadingEmployment","isErrorEmployment","errorEmployment","useEmploymentQuery","contractAmendmentHeadlessForm","isLoadingContractAmendments","isErrorContractAmendmentSchema","errorContractAmendmentSchema","initialValues","createContractAmendmentMutation","automatableContractAmendmentMutation","onSubmit","values","parsedValues","parseJSFToValidate","mutateAsync","mutationToPromise","automatableContractAmendment","handleValidation","back"]}
|
package/dist/chunk-LV5R6H3D.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as t}from"./chunk-5CVD5WZZ.js";import{b as n}from"./chunk-MRYRNB7Y.js";import{a as o}from"./chunk-P37U34EQ.js";import{jsx as e}from"react/jsx-runtime";function u({onSubmit:a}){let{terminationBag:i}=n();return e(t,{onSubmit:o(async r=>{await a?.(i?.parseFormValues(r)),i?.next()},"handleSubmit")})}o(u,"TerminationDetailsForm");export{u as a};
|
|
2
|
-
//# sourceMappingURL=chunk-LV5R6H3D.js.map
|
package/dist/chunk-M2CI2UDK.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as s}from"./chunk-HZDCZFR5.js";import{b as t}from"./chunk-PGWKJ6FK.js";import{b as e}from"./chunk-2YTBWEC7.js";import{a as i}from"./chunk-P37U34EQ.js";import{jsx as c}from"react/jsx-runtime";function S({onSubmit:m,onSuccess:d,onError:a}){let{onboardingBag:o}=t(),l=i(async n=>{try{await m?.(o.parseFormValues(n));let r=await o.onSubmit(n);if(r?.data){await d?.(r?.data),o?.next();return}if(r?.error){let p=e(r?.fieldErrors||[],o.meta?.fields?.basic_information);a?.({error:r?.error,rawError:r?.rawError,fieldErrors:p})}}catch(r){a?.({error:r,rawError:r,fieldErrors:[]})}},"handleSubmit"),f=o.stepState.values?.basic_information||o.initialValues.basic_information;return c(s,{defaultValues:f,onSubmit:l})}i(S,"BasicInformationStep");export{S as a};
|
|
2
|
-
//# sourceMappingURL=chunk-M2CI2UDK.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/Onboarding/components/BasicInformationStep.tsx"],"sourcesContent":["import { useOnboardingContext } from '@/src/flows/Onboarding/context';\nimport { OnboardingForm } from '@/src/flows/Onboarding/components/OnboardingForm';\nimport { 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';\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 { onboardingBag } = useOnboardingContext();\n\n const handleSubmit = async (payload: $TSFixMe) => {\n try {\n await onSubmit?.(\n onboardingBag.parseFormValues(payload) as BasicInformationFormPayload,\n );\n const response = await onboardingBag.onSubmit(payload);\n if (response?.data) {\n await onSuccess?.(response?.data as EmploymentCreationResponse);\n onboardingBag?.next();\n return;\n }\n if (response?.error) {\n const normalizedFieldErrors = normalizeFieldErrors(\n response?.fieldErrors || [],\n onboardingBag.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 onboardingBag.stepState.values?.basic_information ||\n onboardingBag.initialValues.basic_information;\n\n return (\n <OnboardingForm defaultValues={initialValues} onSubmit={handleSubmit} />\n );\n}\n"],"mappings":"gKA6EI,cAAAA,MAAA,oBA5CG,SAASC,EAAqB,CACnC,SAAAC,EACA,UAAAC,EACA,QAAAC,CACF,EAA8B,CAC5B,GAAM,CAAE,cAAAC,CAAc,EAAIC,EAAqB,EAEzCC,EAAeC,EAAA,MAAOC,GAAsB,CAChD,GAAI,CACF,MAAMP,IACJG,EAAc,gBAAgBI,CAAO,CACvC,EACA,IAAMC,EAAW,MAAML,EAAc,SAASI,CAAO,EACrD,GAAIC,GAAU,KAAM,CAClB,MAAMP,IAAYO,GAAU,IAAkC,EAC9DL,GAAe,KAAK,EACpB,MACF,CACA,GAAIK,GAAU,MAAO,CACnB,IAAMC,EAAwBC,EAC5BF,GAAU,aAAe,CAAC,EAC1BL,EAAc,MAAM,QAAQ,iBAC9B,EAEAD,IAAU,CACR,MAAOM,GAAU,MACjB,SAAUA,GAAU,SACpB,YAAaC,CACf,CAAC,CACH,CACF,OAASE,EAAgB,CACvBT,IAAU,CACR,MAAOS,EACP,SAAUA,EACV,YAAa,CAAC,CAChB,CAAC,CACH,CACF,EA9BqB,gBAgCfC,EACJT,EAAc,UAAU,QAAQ,mBAChCA,EAAc,cAAc,kBAE9B,OACEL,EAACe,EAAA,CAAe,cAAeD,EAAe,SAAUP,EAAc,CAE1E,CA9CgBC,EAAAP,EAAA","names":["jsx","BasicInformationStep","onSubmit","onSuccess","onError","onboardingBag","useOnboardingContext","handleSubmit","__name","payload","response","normalizedFieldErrors","normalizeFieldErrors","error","initialValues","OnboardingForm"]}
|
package/dist/chunk-MQWVZSGH.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{b as r}from"./chunk-43WMZDDH.js";import{a as o}from"./chunk-P37U34EQ.js";import{jsx as t,jsxs as e}from"react/jsx-runtime";function n({totalCost:a,currency:s}){return t("div",{className:"pt-2 mt-4 border-t-2 border-gray-200",children:e("div",{className:"flex justify-between items-center",children:[t("h3",{className:"font-bold text-primary-foreground-800",children:"Total Cost"}),t("span",{className:"font-bold text-xl",children:r(a,s)})]})})}o(n,"CostCalculatorTotalCost");export{n as a};
|
|
2
|
-
//# sourceMappingURL=chunk-MQWVZSGH.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/CostCalculator/Results/CostCalculatorTotalCost.tsx"],"sourcesContent":["import { formatCurrency } from '@/src/lib/utils';\n\ntype CostCalculatorTotalCostProps = {\n totalCost: number;\n currency: string;\n};\n\nexport function CostCalculatorTotalCost({\n totalCost,\n currency,\n}: CostCalculatorTotalCostProps) {\n return (\n <div className='pt-2 mt-4 border-t-2 border-gray-200'>\n <div className='flex justify-between items-center'>\n <h3 className='font-bold text-primary-foreground-800'>Total Cost</h3>\n <span className='font-bold text-xl'>\n {formatCurrency(totalCost, currency)}\n </span>\n </div>\n </div>\n );\n}\n"],"mappings":"gFAaM,OACE,OAAAA,EADF,QAAAC,MAAA,oBANC,SAASC,EAAwB,CACtC,UAAAC,EACA,SAAAC,CACF,EAAiC,CAC/B,OACEJ,EAAC,OAAI,UAAU,uCACb,SAAAC,EAAC,OAAI,UAAU,oCACb,UAAAD,EAAC,MAAG,UAAU,wCAAwC,sBAAU,EAChEA,EAAC,QAAK,UAAU,oBACb,SAAAK,EAAeF,EAAWC,CAAQ,EACrC,GACF,EACF,CAEJ,CAdgBE,EAAAJ,EAAA","names":["jsx","jsxs","CostCalculatorTotalCost","totalCost","currency","formatCurrency","__name"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/shared/zendesk-drawer/utils.ts","../src/components/shared/zendesk-drawer/api.ts","../src/components/shared/zendesk-drawer/ZendeskDrawer.tsx","../src/components/shared/zendesk-drawer/ZendeskTriggerButton.tsx"],"sourcesContent":["export const zendeskArticles = {\n /**\n * Disclaimer for Cost Calculator\n * Access: Private (Need Remote account to access)\n * https://support.remote.com/hc/en-us/articles/4668194326797\n */\n disclaimerCostCalculator: 4668194326797,\n /**\n * Employee Onboarding Timeline\n * Access: Private (Need Remote account to access)\n * https://support.remote.com/hc/en-us/articles/4411262104589\n */\n employeeOnboardingTimeline: 4411262104589,\n /**\n * Extra Payments\n * Access: Public (Everyone can access)\n * https://support.remote.com/hc/en-us/articles/4466822781709\n */\n extraPayments: 4466822781709,\n /**\n * International Pricing\n * Access: Public (Everyone can access)\n * https://support.remote.com/hc/en-us/articles/4410698586893\n */\n internationalPricing: 4410698586893,\n /**\n * Remote FX Rate\n * Access: Public (Everyone can access)\n * https://support.remote.com/hc/en-us/articles/33271144977421\n */\n remoteFxRate: 33271144977421,\n /**\n * Employee Communication for Terminations\n * Access: Public (Everyone can access)\n * https://support.remote.com/hc/en-us/articles/4411585179661\n */\n terminationEmployeeCommunication: 4411585179661,\n /**\n * Notice Period for Terminations by Country\n * Access: Public (Everyone can access)\n * https://support.remote.com/hc/en-us/articles/5831900985613\n */\n terminationNoticePeriods: 5831900985613,\n /**\n * Involuntary Offboarding Service Charge\n * Access: Private (Need Remote account to access)\n * https://support.remote.com/hc/en-us/articles/4406932229133\n */\n involuntaryOffboardingServiceCharge: 4406932229133,\n /**\n * Reconciliation Invoice\n * Access: Public (Everyone can access)\n * https://support.remote.com/hc/en-us/articles/17604014808589\n */\n reconciliationInvoice: 17604014808589,\n};\n\nexport const buildZendeskURL = (zendeskId: number) => {\n return `https://support.remote.com/hc/en-us/articles/${zendeskId}`;\n};\n","import { getShowHelpCenterArticle } from '@/src/client';\nimport { useClient } from '@/src/context';\nimport { sanitizeHtmlWithImageErrorHandling } from '@/src/lib/utils';\nimport { Client } from '@hey-api/client-fetch';\nimport { useQuery } from '@tanstack/react-query';\n\nexport const useZendeskArticle = (\n zendeskId: number | null,\n queryOptions?: { enabled?: boolean },\n) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['zendesk-article', zendeskId],\n queryFn: async () => {\n const response = await getShowHelpCenterArticle({\n client: client as Client,\n path: {\n id: Number(zendeskId),\n },\n });\n\n if (response.error) {\n throw new Error(response.error.message || 'Failed to fetch article');\n }\n\n return response;\n },\n select: (data) => {\n const article = data.data?.data.help_center_article;\n if (article) {\n return {\n ...article,\n body: sanitizeHtmlWithImageErrorHandling(article.body || ''),\n };\n }\n return article;\n },\n retry: false,\n ...queryOptions,\n });\n};\n","import { useZendeskArticle } from '@/src/components/shared/zendesk-drawer/api';\nimport {\n Drawer,\n DrawerTrigger,\n DrawerContent,\n DrawerDescription,\n DrawerHeader,\n DrawerTitle,\n} from '@/src/components/ui/drawer';\nimport { useFormFields } from '@/src/context';\nimport { buildZendeskURL } from '@/src/components/shared/zendesk-drawer/utils';\n\nexport type ZendeskDrawerProps = {\n Trigger: React.ReactElement;\n zendeskId: number;\n open: boolean;\n onClose: () => void;\n};\n\nexport const ZendeskDrawer = ({\n Trigger,\n zendeskId,\n open,\n onClose,\n}: ZendeskDrawerProps) => {\n const { components } = useFormFields();\n const zendeskURL = buildZendeskURL(zendeskId);\n\n const handleClose = () => {\n onClose?.();\n };\n\n const { data, isLoading, error } = useZendeskArticle(zendeskId, {\n enabled: open,\n });\n\n const CustomZendeskDrawer = components?.zendeskDrawer;\n\n if (CustomZendeskDrawer) {\n return (\n <CustomZendeskDrawer\n open={open}\n onClose={handleClose}\n data={data}\n isLoading={isLoading}\n error={error}\n zendeskURL={zendeskURL}\n Trigger={Trigger}\n />\n );\n }\n\n return (\n <Drawer\n open={open}\n onOpenChange={(open) => !open && handleClose()}\n direction='right'\n >\n <DrawerTrigger asChild>{Trigger}</DrawerTrigger>\n <DrawerContent className='h-full w-[540px] mt-0 ml-auto RemoteFlows_ZendeskDrawer'>\n <div className='h-full flex flex-col'>\n <DrawerHeader>\n <DrawerTitle>{data?.title}</DrawerTitle>\n <DrawerDescription>\n For more details see our{' '}\n <a href={zendeskURL} target='_blank' rel='noopener noreferrer'>\n help article\n </a>{' '}\n </DrawerDescription>\n </DrawerHeader>\n {isLoading && <div>Loading...</div>}\n {error && (\n <div className='text-sm p-4 text-red-500'>\n Error loading article\n </div>\n )}\n <div\n className='flex-1 overflow-y-auto p-4 RemoteFlows_ZendeskDrawer__Content'\n dangerouslySetInnerHTML={{\n __html: data?.body || '',\n }}\n ></div>\n </div>\n </DrawerContent>\n </Drawer>\n );\n};\n","import { cn } from '@/src/lib/utils';\nimport { ZendeskDrawer } from './ZendeskDrawer';\nimport { buildZendeskURL } from './utils';\nimport { useState } from 'react';\n\ninterface ZendeskTriggerButtonProps {\n /**\n * The Zendesk ID for the help article\n */\n zendeskId: number;\n /**\n * The class name for the button\n */\n className?: string;\n /**\n * The callback function to be called when the button is clicked\n */\n onClick?: (zendeskId: number) => void;\n /**\n * The children to be rendered inside the button\n */\n children?: React.ReactNode;\n /**\n * Whether to open the help article in a new tab\n */\n external?: boolean;\n}\n\nconst baseClassName =\n 'RemoteFlows__ZendeskTriggerButton text-blue-500 hover:underline inline-block text-xs bg-transparent border-none cursor-pointer p-0';\n\nexport function ZendeskTriggerButton({\n zendeskId,\n className,\n onClick,\n children,\n external = false,\n}: ZendeskTriggerButtonProps) {\n const [isOpen, setIsOpen] = useState(false);\n\n const handleClick = () => {\n if (!external) {\n setIsOpen(true);\n }\n onClick?.(zendeskId);\n };\n\n if (external) {\n return (\n <a\n href={buildZendeskURL(zendeskId)}\n target='_blank'\n rel='noopener noreferrer'\n onClick={handleClick}\n className={cn(baseClassName, className)}\n >\n {children}\n </a>\n );\n }\n\n return (\n <ZendeskDrawer\n zendeskId={zendeskId}\n open={isOpen}\n onClose={() => setIsOpen(false)}\n Trigger={\n <button onClick={handleClick} className={cn(baseClassName, className)}>\n {children}\n </button>\n }\n />\n );\n}\n"],"mappings":"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","names":["zendeskArticles","buildZendeskURL","__name","zendeskId","useQuery","useZendeskArticle","__name","zendeskId","queryOptions","client","useClient","useQuery","response","getShowHelpCenterArticle","data","article","sanitizeHtmlWithImageErrorHandling","jsx","jsxs","ZendeskDrawer","__name","Trigger","zendeskId","open","onClose","components","useFormFields","zendeskURL","buildZendeskURL","handleClose","data","isLoading","error","useZendeskArticle","CustomZendeskDrawer","Drawer","DrawerTrigger","DrawerContent","DrawerHeader","DrawerTitle","DrawerDescription","useState","jsx","baseClassName","ZendeskTriggerButton","zendeskId","className","onClick","children","external","isOpen","setIsOpen","useState","handleClick","__name","buildZendeskURL","cn","ZendeskDrawer"]}
|
package/dist/chunk-OKM7DRCF.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as m}from"./chunk-NX7MM6XR.js";import{a as e}from"./chunk-ZXGAFQXW.js";import{a as i}from"./chunk-LMYJ6V44.js";import{a as o}from"./chunk-RR55GUDT.js";var p={employee_communication:o,termination_details:e,paid_time_off:m,additional_information:i};export{p as a};
|
|
2
|
-
//# sourceMappingURL=chunk-OKM7DRCF.js.map
|
package/dist/chunk-P7JZC65P.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as s}from"./chunk-2W2XD7ZY.js";import{b as e}from"./chunk-TOA3JILU.js";import{b as t}from"./chunk-2YTBWEC7.js";import{a as i}from"./chunk-P37U34EQ.js";import{jsx as p}from"react/jsx-runtime";function S({onSubmit:m,onSuccess:d,onError:a}){let{contractorOnboardingBag:o}=e(),l=i(async n=>{try{await m?.(o.parseFormValues(n));let r=await o.onSubmit(n);if(r?.data){await d?.(r?.data),o?.next();return}if(r?.error){let f=t(r?.fieldErrors||[],o.meta?.fields?.basic_information);a?.({error:r?.error,rawError:r?.rawError,fieldErrors:f})}}catch(r){a?.({error:r,rawError:r,fieldErrors:[]})}},"handleSubmit"),c=o.stepState.values?.basic_information||o.initialValues.basic_information;return p(s,{defaultValues:c,onSubmit:l})}i(S,"BasicInformationStep");export{S as a};
|
|
2
|
-
//# sourceMappingURL=chunk-P7JZC65P.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 await onSubmit?.(\n contractorOnboardingBag.parseFormValues(\n payload,\n ) as BasicInformationFormPayload,\n );\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":"gKA+EI,cAAAA,MAAA,oBA9CG,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,MAAMP,IACJG,EAAwB,gBACtBI,CACF,CACF,EACA,IAAMC,EAAW,MAAML,EAAwB,SAASI,CAAO,EAC/D,GAAIC,GAAU,KAAM,CAClB,MAAMP,IAAYO,GAAU,IAAkC,EAC9DL,GAAyB,KAAK,EAC9B,MACF,CACA,GAAIK,GAAU,MAAO,CACnB,IAAMC,EAAwBC,EAC5BF,GAAU,aAAe,CAAC,EAC1BL,EAAwB,MAAM,QAAQ,iBACxC,EAEAD,IAAU,CACR,MAAOM,GAAU,MACjB,SAAUA,GAAU,SACpB,YAAaC,CACf,CAAC,CACH,CACF,OAASE,EAAgB,CACvBT,IAAU,CACR,MAAOS,EACP,SAAUA,EACV,YAAa,CAAC,CAChB,CAAC,CACH,CACF,EAhCqB,gBAkCfC,EACJT,EAAwB,UAAU,QAAQ,mBAC1CA,EAAwB,cAAc,kBAExC,OACEL,EAACe,EAAA,CACC,cAAeD,EACf,SAAUP,EACZ,CAEJ,CAnDgBC,EAAAP,EAAA","names":["jsx","BasicInformationStep","onSubmit","onSuccess","onError","contractorOnboardingBag","useContractorOnboardingContext","handleSubmit","__name","payload","response","normalizedFieldErrors","normalizeFieldErrors","error","initialValues","ContractorOnboardingForm"]}
|
package/dist/chunk-Q4BKFSTW.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./chunk-DYB3RWP7.js";import{a as p}from"./chunk-3A47R5RQ.js";import{a as i,b as l,c as s,d as n,e as c,f as m,g as d}from"./chunk-TWIUL2P3.js";import{b as o}from"./chunk-WVDTHFGS.js";import{a as t}from"./chunk-P37U34EQ.js";import{X as u}from"lucide-react";import{jsx as r,jsxs as a}from"react/jsx-runtime";var y=t(({label:D="Disclaimer"})=>a(i,{children:[r(l,{asChild:!0,children:r(o,{variant:"link",size:"link",children:D})}),a(n,{children:[a(c,{children:[a(s,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none",children:[r(u,{className:"h-4 w-4"}),r("span",{className:"sr-only",children:"Close"})]}),r(m,{children:e?.data.title}),a(d,{children:["For more details read our"," ",r(o,{variant:"link",size:"link",asChild:!0,children:r("a",{href:e?.data.html_url,target:"_blank",rel:"noopener noreferrer",children:"Disclaimer"})})]})]}),r(p,{className:"px-4 pb-4 overflow-y-auto max-h-[calc(80vh-120px)] cost-calculator-disclaimer-drawer-scroll-area",children:r("div",{className:"cost-calculator-disclaimer-drawer-body",dangerouslySetInnerHTML:{__html:e?.data.body??""}})})]})]}),"CostCalculatorDisclaimer");export{y as a};
|
|
2
|
-
//# sourceMappingURL=chunk-Q4BKFSTW.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/CostCalculator/CostCalculatorDisclaimer.tsx"],"sourcesContent":["import {\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerDescription,\n DrawerHeader,\n DrawerTitle,\n DrawerTrigger,\n} from '@/src/components/ui/drawer';\nimport { ScrollArea } from '@/src/components/ui/scroll-area';\nimport { X } from 'lucide-react';\nimport { Button } from '@/src/components/ui/button';\nimport { disclaimerData } from '@/src/flows/CostCalculator/disclaimerUtils';\n\ntype CostCalculatorDisclaimerProps = {\n label?: string;\n};\n\nexport const CostCalculatorDisclaimer = ({\n label = 'Disclaimer',\n}: CostCalculatorDisclaimerProps) => {\n return (\n <Drawer>\n <DrawerTrigger asChild>\n <Button variant='link' size='link'>\n {label}\n </Button>\n </DrawerTrigger>\n <DrawerContent>\n <DrawerHeader>\n <DrawerClose className='absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none'>\n <X className='h-4 w-4' />\n <span className='sr-only'>Close</span>\n </DrawerClose>\n <DrawerTitle>{disclaimerData?.data.title}</DrawerTitle>\n <DrawerDescription>\n For more details read our{' '}\n <Button variant='link' size='link' asChild>\n <a\n href={disclaimerData?.data.html_url}\n target='_blank'\n rel='noopener noreferrer'\n >\n Disclaimer\n </a>\n </Button>\n </DrawerDescription>\n </DrawerHeader>\n <ScrollArea className='px-4 pb-4 overflow-y-auto max-h-[calc(80vh-120px)] cost-calculator-disclaimer-drawer-scroll-area'>\n <div\n className='cost-calculator-disclaimer-drawer-body'\n dangerouslySetInnerHTML={{\n __html: disclaimerData?.data.body ?? '',\n }}\n ></div>\n </ScrollArea>\n </DrawerContent>\n </Drawer>\n );\n};\n"],"mappings":"kPAUA,OAAS,KAAAA,MAAS,eAcV,cAAAC,EAME,QAAAC,MANF,oBAND,IAAMC,EAA2BC,EAAA,CAAC,CACvC,MAAAC,EAAQ,YACV,IAEIH,EAACI,EAAA,CACC,UAAAL,EAACM,EAAA,CAAc,QAAO,GACpB,SAAAN,EAACO,EAAA,CAAO,QAAQ,OAAO,KAAK,OACzB,SAAAH,EACH,EACF,EACAH,EAACO,EAAA,CACC,UAAAP,EAACQ,EAAA,CACC,UAAAR,EAACS,EAAA,CAAY,UAAU,4MACrB,UAAAV,EAACW,EAAA,CAAE,UAAU,UAAU,EACvBX,EAAC,QAAK,UAAU,UAAU,iBAAK,GACjC,EACAA,EAACY,EAAA,CAAa,SAAAC,GAAgB,KAAK,MAAM,EACzCZ,EAACa,EAAA,CAAkB,sCACS,IAC1Bd,EAACO,EAAA,CAAO,QAAQ,OAAO,KAAK,OAAO,QAAO,GACxC,SAAAP,EAAC,KACC,KAAMa,GAAgB,KAAK,SAC3B,OAAO,SACP,IAAI,sBACL,sBAED,EACF,GACF,GACF,EACAb,EAACe,EAAA,CAAW,UAAU,mGACpB,SAAAf,EAAC,OACC,UAAU,yCACV,wBAAyB,CACvB,OAAQa,GAAgB,KAAK,MAAQ,EACvC,EACD,EACH,GACF,GACF,EAvCoC","names":["X","jsx","jsxs","CostCalculatorDisclaimer","__name","label","Drawer","DrawerTrigger","Button","DrawerContent","DrawerHeader","DrawerClose","X","DrawerTitle","disclaimerData","DrawerDescription","ScrollArea"]}
|
package/dist/chunk-QWJFYQK3.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/ui/collapsible.tsx"],"sourcesContent":["import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';\n\nconst Collapsible = CollapsiblePrimitive.Root;\n\nconst CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger;\n\nconst CollapsibleContent = CollapsiblePrimitive.CollapsibleContent;\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent };\n"],"mappings":"AAAA,UAAYA,MAA0B,8BAEtC,IAAMC,EAAmC,OAEnCC,EAA0C,qBAE1CC,EAA0C","names":["CollapsiblePrimitive","Collapsible","CollapsibleTrigger","CollapsibleContent"]}
|
package/dist/chunk-SHP4ULHS.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{c as d,d as S}from"./chunk-7YQAVDVX.js";import{a as u}from"./chunk-HN5HLFTB.js";import{a as f}from"./chunk-KSHK3ZPX.js";import{b as C}from"./chunk-5P7INAU2.js";import{f as y}from"./chunk-CNDSIADP.js";import{a as o}from"./chunk-P37U34EQ.js";import{useEffect as T,useId as U,useState as I}from"react";import{jsx as k}from"react/jsx-runtime";var i=o((n,e,r)=>r&&r[e]?r[e]:n[e]?n[e]/100:0,"getDefaultManagementFee"),A=o((n,e,r,s)=>!e&&!r?.management_fee&&n?i(u,n,s):e&&!r?.management_fee?"":r?.management_fee,"getManagementFee"),W=o(({estimationOptions:n=d,defaultValues:e={countryRegionSlug:"",regionSlug:"",currencySlug:"",salary:"",benefits:{},management:{management_fee:""}},options:r,render:s,version:_="standard"})=>{let p=U(),[R,m]=I("USD"),F=o(g=>{m(g);let a=i(u,g,n.managementFees);a&&c.setValue("management.management_fee",a)},"onCurrencyChange"),t=S({defaultRegion:e.countryRegionSlug,defaultCurrency:e.currencySlug,defaultSalary:e.salary,estimationOptions:n,version:_,options:{...r,onCurrencyChange:F}}),K=C(t.handleValidation),b=A(R,e.currencySlug,e.management,n.managementFees),{countryRegionSlug:v,currencySlug:h,salary:D,benefits:P,hiringBudget:B,age:E,contractDurationType:M,regionSlug:w,...x}=e,c=y({resolver:K,defaultValues:{country:v,currency:h,region:w,salary:D,salary_conversion:"",salary_converted:"",hiring_budget:B||"employee_annual_salary",age:E,contract_duration_type:M,management:{management_fee:b},benefits:P,estimation_title:n.title,...x},shouldUnregister:!1,mode:"onBlur"});return T(()=>{if(e.currencySlug&&t.currencies&&n.includeManagementFee&&!e.management?.management_fee){let a=t.currencies.find(l=>l.value===e.currencySlug)?.label;if(a){m(a);let l=i(u,a,n.managementFees);c.setValue("management.management_fee",l)}}},[e.currencySlug,t.currencies,n.includeManagementFee,n.managementFees,e.management?.management_fee,c]),k(f.Provider,{value:{form:c,formId:p,costCalculatorBag:t},children:s(t)})},"CostCalculatorFlow");export{W as a};
|
|
2
|
-
//# sourceMappingURL=chunk-SHP4ULHS.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/CostCalculator/CostCalculatorFlow.tsx"],"sourcesContent":["import React, { useEffect, useId, useState } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useJsonSchemasValidationFormResolver } from '@/src/components/form/validationResolver';\nimport { CostCalculatorContext } from '@/src/flows/CostCalculator/context';\nimport {\n CostCalculatorVersion,\n defaultEstimationOptions,\n useCostCalculator,\n} from '@/src/flows/CostCalculator/hooks';\nimport {\n CostCalculatorEstimationOptions,\n CurrencyKey,\n UseCostCalculatorOptions,\n} from '@/src/flows/CostCalculator/types';\nimport { BASE_RATES } from '@/src/flows/CostCalculator/constants';\n\nexport type CostCalculatorFlowProps = {\n /**\n * Estimation params allows you to customize the parameters sent to the /cost-calculator/estimation endpoint.\n */\n estimationOptions?: CostCalculatorEstimationOptions;\n /**\n * Default values for the form fields.\n */\n defaultValues?: Partial<\n {\n /**\n * Default value for the country field.\n */\n countryRegionSlug: string;\n /**\n * Default value for the currency field.\n */\n currencySlug: string;\n /**\n * Default value for the salary field.\n */\n salary: string;\n /**\n * Default value for the benefits field.\n */\n benefits: Record<string, string>;\n /**\n * Default value for the hiring budget field\n */\n hiringBudget: string;\n /**\n * Default value for the age field.\n */\n age: number;\n /**\n * Default value for the contract duration type field.\n */\n contractDurationType: 'fixed' | 'indefinite';\n /**\n * Default value for the management fee field.\n */\n management: {\n management_fee: string;\n };\n /**\n * Default value for the region field.\n */\n regionSlug: string;\n } & Record<string, unknown>\n >;\n options?: UseCostCalculatorOptions;\n render: (\n costCalculatorBag: ReturnType<typeof useCostCalculator>,\n ) => React.ReactNode;\n /**\n * Whether to include annual_gross_salary in the estimation payload\n */\n version?: CostCalculatorVersion;\n};\n\nconst getDefaultManagementFee = (\n baseRates: Record<CurrencyKey, number>,\n currency: CurrencyKey,\n managementFees?: Partial<Record<CurrencyKey, number>>,\n) => {\n if (managementFees && managementFees[currency]) {\n return managementFees[currency];\n }\n if (baseRates[currency]) {\n return baseRates[currency] / 100;\n }\n return 0;\n};\n\nconst getManagementFee = (\n currency: CurrencyKey,\n currencySlug?: string,\n management?: { management_fee: string },\n managementFees?: Partial<Record<CurrencyKey, number>>,\n) => {\n if (!currencySlug && !management?.management_fee && currency) {\n return getDefaultManagementFee(BASE_RATES, currency, managementFees);\n }\n if (currencySlug && !management?.management_fee) {\n return '';\n }\n\n return management?.management_fee;\n};\n\nexport const CostCalculatorFlow = ({\n estimationOptions = defaultEstimationOptions,\n defaultValues = {\n countryRegionSlug: '',\n regionSlug: '',\n currencySlug: '',\n salary: '',\n benefits: {},\n management: {\n management_fee: '',\n },\n },\n options,\n render,\n version = 'standard',\n}: CostCalculatorFlowProps) => {\n const formId = useId();\n const [currency, setCurrency] = useState<CurrencyKey>('USD');\n const onCurrencyChange = (currency: string) => {\n setCurrency(currency as CurrencyKey);\n const managementFee = getDefaultManagementFee(\n BASE_RATES,\n currency as CurrencyKey,\n estimationOptions.managementFees,\n );\n if (managementFee) {\n form.setValue('management.management_fee', managementFee);\n }\n };\n const costCalculatorBag = useCostCalculator({\n defaultRegion: defaultValues.countryRegionSlug,\n defaultCurrency: defaultValues.currencySlug,\n defaultSalary: defaultValues.salary,\n estimationOptions,\n version,\n options: {\n ...options,\n onCurrencyChange: onCurrencyChange,\n },\n });\n const resolver = useJsonSchemasValidationFormResolver(\n // @ts-expect-error no matching type\n costCalculatorBag.handleValidation,\n );\n\n const defaultManagementFee = getManagementFee(\n currency,\n defaultValues.currencySlug,\n defaultValues.management,\n estimationOptions.managementFees,\n );\n\n const {\n countryRegionSlug,\n currencySlug,\n salary,\n benefits,\n hiringBudget,\n age,\n contractDurationType,\n regionSlug,\n ...formDefaultValues\n } = defaultValues;\n\n const form = useForm({\n resolver,\n defaultValues: {\n country: countryRegionSlug,\n currency: currencySlug,\n region: regionSlug,\n salary: salary,\n salary_conversion: '',\n salary_converted: '',\n hiring_budget: hiringBudget || 'employee_annual_salary',\n age: age,\n contract_duration_type: contractDurationType,\n management: {\n management_fee: defaultManagementFee,\n },\n benefits: benefits,\n estimation_title: estimationOptions.title,\n ...formDefaultValues,\n },\n shouldUnregister: false,\n mode: 'onBlur',\n });\n\n useEffect(() => {\n if (\n defaultValues.currencySlug &&\n costCalculatorBag.currencies &&\n estimationOptions.includeManagementFee &&\n !defaultValues.management?.management_fee\n ) {\n const currencyData = costCalculatorBag.currencies.find(\n (currency) => currency.value === defaultValues.currencySlug,\n );\n const currencyCode = currencyData?.label;\n if (currencyCode) {\n setCurrency(currencyCode as CurrencyKey);\n const defaultManagementFee = getDefaultManagementFee(\n BASE_RATES,\n currencyCode as CurrencyKey,\n estimationOptions.managementFees,\n );\n form.setValue('management.management_fee', defaultManagementFee);\n }\n }\n }, [\n defaultValues.currencySlug,\n costCalculatorBag.currencies,\n estimationOptions.includeManagementFee,\n estimationOptions.managementFees,\n defaultValues.management?.management_fee,\n form,\n ]);\n\n return (\n <CostCalculatorContext.Provider\n value={{\n form,\n formId: formId,\n costCalculatorBag,\n }}\n >\n {render(costCalculatorBag)}\n </CostCalculatorContext.Provider>\n );\n};\n"],"mappings":"uPAAA,OAAgB,aAAAA,EAAW,SAAAC,EAAO,YAAAC,MAAgB,QAgO9C,cAAAC,MAAA,oBApJJ,IAAMC,EAA0BC,EAAA,CAC9BC,EACAC,EACAC,IAEIA,GAAkBA,EAAeD,CAAQ,EACpCC,EAAeD,CAAQ,EAE5BD,EAAUC,CAAQ,EACbD,EAAUC,CAAQ,EAAI,IAExB,EAXuB,2BAc1BE,EAAmBJ,EAAA,CACvBE,EACAG,EACAC,EACAH,IAEI,CAACE,GAAgB,CAACC,GAAY,gBAAkBJ,EAC3CH,EAAwBQ,EAAYL,EAAUC,CAAc,EAEjEE,GAAgB,CAACC,GAAY,eACxB,GAGFA,GAAY,eAbI,oBAgBZE,EAAqBR,EAAA,CAAC,CACjC,kBAAAS,EAAoBC,EACpB,cAAAC,EAAgB,CACd,kBAAmB,GACnB,WAAY,GACZ,aAAc,GACd,OAAQ,GACR,SAAU,CAAC,EACX,WAAY,CACV,eAAgB,EAClB,CACF,EACA,QAAAC,EACA,OAAAC,EACA,QAAAC,EAAU,UACZ,IAA+B,CAC7B,IAAMC,EAASC,EAAM,EACf,CAACd,EAAUe,CAAW,EAAIC,EAAsB,KAAK,EACrDC,EAAmBnB,EAACE,GAAqB,CAC7Ce,EAAYf,CAAuB,EACnC,IAAMkB,EAAgBrB,EACpBQ,EACAL,EACAO,EAAkB,cACpB,EACIW,GACFC,EAAK,SAAS,4BAA6BD,CAAa,CAE5D,EAVyB,oBAWnBE,EAAoBC,EAAkB,CAC1C,cAAeZ,EAAc,kBAC7B,gBAAiBA,EAAc,aAC/B,cAAeA,EAAc,OAC7B,kBAAAF,EACA,QAAAK,EACA,QAAS,CACP,GAAGF,EACH,iBAAkBO,CACpB,CACF,CAAC,EACKK,EAAWC,EAEfH,EAAkB,gBACpB,EAEMI,EAAuBtB,EAC3BF,EACAS,EAAc,aACdA,EAAc,WACdF,EAAkB,cACpB,EAEM,CACJ,kBAAAkB,EACA,aAAAtB,EACA,OAAAuB,EACA,SAAAC,EACA,aAAAC,EACA,IAAAC,EACA,qBAAAC,EACA,WAAAC,EACA,GAAGC,CACL,EAAIvB,EAEEU,EAAOc,EAAQ,CACnB,SAAAX,EACA,cAAe,CACb,QAASG,EACT,SAAUtB,EACV,OAAQ4B,EACR,OAAQL,EACR,kBAAmB,GACnB,iBAAkB,GAClB,cAAeE,GAAgB,yBAC/B,IAAKC,EACL,uBAAwBC,EACxB,WAAY,CACV,eAAgBN,CAClB,EACA,SAAUG,EACV,iBAAkBpB,EAAkB,MACpC,GAAGyB,CACL,EACA,iBAAkB,GAClB,KAAM,QACR,CAAC,EAED,OAAAE,EAAU,IAAM,CACd,GACEzB,EAAc,cACdW,EAAkB,YAClBb,EAAkB,sBAClB,CAACE,EAAc,YAAY,eAC3B,CAIA,IAAM0B,EAHef,EAAkB,WAAW,KAC/CpB,GAAaA,EAAS,QAAUS,EAAc,YACjD,GACmC,MACnC,GAAI0B,EAAc,CAChBpB,EAAYoB,CAA2B,EACvC,IAAMX,EAAuB3B,EAC3BQ,EACA8B,EACA5B,EAAkB,cACpB,EACAY,EAAK,SAAS,4BAA6BK,CAAoB,CACjE,CACF,CACF,EAAG,CACDf,EAAc,aACdW,EAAkB,WAClBb,EAAkB,qBAClBA,EAAkB,eAClBE,EAAc,YAAY,eAC1BU,CACF,CAAC,EAGCvB,EAACwC,EAAsB,SAAtB,CACC,MAAO,CACL,KAAAjB,EACA,OAAQN,EACR,kBAAAO,CACF,EAEC,SAAAT,EAAOS,CAAiB,EAC3B,CAEJ,EAhIkC","names":["useEffect","useId","useState","jsx","getDefaultManagementFee","__name","baseRates","currency","managementFees","getManagementFee","currencySlug","management","BASE_RATES","CostCalculatorFlow","estimationOptions","defaultEstimationOptions","defaultValues","options","render","version","formId","useId","setCurrency","useState","onCurrencyChange","managementFee","form","costCalculatorBag","useCostCalculator","resolver","useJsonSchemasValidationFormResolver","defaultManagementFee","countryRegionSlug","salary","benefits","hiringBudget","age","contractDurationType","regionSlug","formDefaultValues","useForm","useEffect","currencyCode","CostCalculatorContext"]}
|
package/dist/chunk-SPQO42TA.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as l}from"./chunk-ZSCKSEAA.js";import{a as m}from"./chunk-ZE3YT3Q6.js";import{b as o}from"./chunk-MZB24YJP.js";import{b as i}from"./chunk-WVDTHFGS.js";import{b as r}from"./chunk-43WMZDDH.js";import{a as n}from"./chunk-P37U34EQ.js";import{Info as p}from"lucide-react";import{Fragment as f,jsx as t,jsxs as e}from"react/jsx-runtime";function B({extraStatutoryPaymentsTotal:d,extraStatutoryPaymentsBreakdown:u,currency:s}){return e("div",{children:[e("div",{className:"flex justify-between items-center mb-2",children:[t("h3",{className:"font-medium text-primary-foreground-800",children:"Extra Statutory Payments"}),t("span",{className:"font-semibold text-lg",children:r(d,s)})]}),t(l,{className:"mb-3"}),t("div",{className:"space-y-3 pl-2",children:u.map((a,c)=>e("div",{className:"flex justify-between items-start text-sm",children:[e("div",{className:"flex items-start gap-2",children:[t("span",{children:a.name}),a.description&&t(m,{content:e(f,{children:[t("span",{children:a.description})," ",a.zendesk_article_url&&t(o,{zendeskId:Number(a.zendesk_article_id),children:"Learn more"})]}),children:e(i,{variant:"ghost",size:"icon",className:"h-4 w-4 p-0",children:[t(p,{className:"h-3 w-3 text-gray-400"}),t("span",{className:"sr-only",children:"Info"})]})})]}),t("span",{children:r(a.amount,s)})]},c))})]})}n(B,"CostCalculatorExtraStatutoryPaymentsBreakdown");export{B as a};
|
|
2
|
-
//# sourceMappingURL=chunk-SPQO42TA.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/CostCalculator/Results/CostCalculatorExtraStatutoryPaymentsBreakdown.tsx"],"sourcesContent":["import { Info } from 'lucide-react';\n\nimport { Button } from '@/src/components/ui/button';\nimport { Separator } from '@/src/components/ui/separator';\nimport { formatCurrency } from '@/src/lib/utils';\nimport { BasicTooltip } from '@/src/components/ui/basic-tooltip';\nimport { ZendeskTriggerButton } from '@/src/components/shared/zendesk-drawer/ZendeskTriggerButton';\n\ntype CostCalculatorExtraStatutoryPaymentsBreakdownProps = {\n extraStatutoryPaymentsTotal: number | null;\n extraStatutoryPaymentsBreakdown: {\n name: string;\n description: string | null;\n zendesk_article_url: string | null;\n zendesk_article_id: string | null;\n amount: number;\n }[];\n currency: string;\n};\n\nexport function CostCalculatorExtraStatutoryPaymentsBreakdown({\n extraStatutoryPaymentsTotal,\n extraStatutoryPaymentsBreakdown,\n currency,\n}: CostCalculatorExtraStatutoryPaymentsBreakdownProps) {\n return (\n <div>\n <div className='flex justify-between items-center mb-2'>\n <h3 className='font-medium text-primary-foreground-800'>\n Extra Statutory Payments\n </h3>\n <span className='font-semibold text-lg'>\n {formatCurrency(extraStatutoryPaymentsTotal, currency)}\n </span>\n </div>\n <Separator className='mb-3' />\n\n <div className='space-y-3 pl-2'>\n {extraStatutoryPaymentsBreakdown.map((payment, index) => (\n <div key={index} className='flex justify-between items-start text-sm'>\n <div className='flex items-start gap-2'>\n <span>{payment.name}</span>\n {payment.description && (\n <BasicTooltip\n content={\n <>\n <span>{payment.description}</span>{' '}\n {payment.zendesk_article_url && (\n <ZendeskTriggerButton\n zendeskId={Number(payment.zendesk_article_id)}\n >\n Learn more\n </ZendeskTriggerButton>\n )}\n </>\n }\n >\n <Button variant='ghost' size='icon' className='h-4 w-4 p-0'>\n <Info className='h-3 w-3 text-gray-400' />\n <span className='sr-only'>Info</span>\n </Button>\n </BasicTooltip>\n )}\n </div>\n <span>{formatCurrency(payment.amount, currency)}</span>\n </div>\n ))}\n </div>\n </div>\n );\n}\n"],"mappings":"gPAAA,OAAS,QAAAA,MAAY,eA2Bf,OAkBc,YAAAC,EAjBZ,OAAAC,EADF,QAAAC,MAAA,oBAPC,SAASC,EAA8C,CAC5D,4BAAAC,EACA,gCAAAC,EACA,SAAAC,CACF,EAAuD,CACrD,OACEJ,EAAC,OACC,UAAAA,EAAC,OAAI,UAAU,yCACb,UAAAD,EAAC,MAAG,UAAU,0CAA0C,oCAExD,EACAA,EAAC,QAAK,UAAU,wBACb,SAAAM,EAAeH,EAA6BE,CAAQ,EACvD,GACF,EACAL,EAACO,EAAA,CAAU,UAAU,OAAO,EAE5BP,EAAC,OAAI,UAAU,iBACZ,SAAAI,EAAgC,IAAI,CAACI,EAASC,IAC7CR,EAAC,OAAgB,UAAU,2CACzB,UAAAA,EAAC,OAAI,UAAU,yBACb,UAAAD,EAAC,QAAM,SAAAQ,EAAQ,KAAK,EACnBA,EAAQ,aACPR,EAACU,EAAA,CACC,QACET,EAAAF,EAAA,CACE,UAAAC,EAAC,QAAM,SAAAQ,EAAQ,YAAY,EAAQ,IAClCA,EAAQ,qBACPR,EAACW,EAAA,CACC,UAAW,OAAOH,EAAQ,kBAAkB,EAC7C,sBAED,GAEJ,EAGF,SAAAP,EAACW,EAAA,CAAO,QAAQ,QAAQ,KAAK,OAAO,UAAU,cAC5C,UAAAZ,EAACa,EAAA,CAAK,UAAU,wBAAwB,EACxCb,EAAC,QAAK,UAAU,UAAU,gBAAI,GAChC,EACF,GAEJ,EACAA,EAAC,QAAM,SAAAM,EAAeE,EAAQ,OAAQH,CAAQ,EAAE,IAzBxCI,CA0BV,CACD,EACH,GACF,CAEJ,CAlDgBK,EAAAZ,EAAA","names":["Info","Fragment","jsx","jsxs","CostCalculatorExtraStatutoryPaymentsBreakdown","extraStatutoryPaymentsTotal","extraStatutoryPaymentsBreakdown","currency","formatCurrency","Separator","payment","index","BasicTooltip","ZendeskTriggerButton","Button","Info","__name"]}
|
package/dist/chunk-SRRY72CZ.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as s}from"./chunk-2W2XD7ZY.js";import{b as i}from"./chunk-TOA3JILU.js";import{b as n}from"./chunk-2YTBWEC7.js";import{a as t}from"./chunk-P37U34EQ.js";import{jsx as u}from"react/jsx-runtime";function F({onSubmit:d,onSuccess:l,onError:a}){let{contractorOnboardingBag:o}=i(),c=t(async e=>{try{await d?.(o.parseFormValues(e));let r=await o.onSubmit(e);if(r?.data){await l?.(r?.data),o?.next();return}if(r?.error){let p=n(r?.fieldErrors||[],o.meta?.fields?.contract_details);a?.({error:r?.error,rawError:r?.rawError,fieldErrors:p})}}catch(r){a?.({error:r,rawError:r,fieldErrors:[]})}},"handleSubmit"),m=o.stepState.values?.contract_details||o.initialValues.contract_details;return u(s,{defaultValues:m,onSubmit:c})}t(F,"ContractDetailsStep");export{F as a};
|
|
2
|
-
//# sourceMappingURL=chunk-SRRY72CZ.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/ContractorOnboarding/components/ContractDetailsStep.tsx"],"sourcesContent":["import { $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';\nimport {\n ContractorOnboardingContractDetailsFormPayload,\n ContractorOnboardingContractDetailsResponse,\n} from '@/src/flows/ContractorOnboarding/types';\n\ntype ContractDetailsStepProps = {\n /*\n * The function is called when the form is submitted. It receives the form values as an argument.\n */\n onSubmit?: (\n payload: ContractorOnboardingContractDetailsFormPayload,\n ) => void | Promise<void>;\n /*\n * The function is called when the form submission is successful.\n */\n onSuccess?: (\n data: ContractorOnboardingContractDetailsResponse,\n ) => 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 ContractDetailsStep({\n onSubmit,\n onSuccess,\n onError,\n}: ContractDetailsStepProps) {\n const { contractorOnboardingBag } = useContractorOnboardingContext();\n\n const handleSubmit = async (payload: $TSFixMe) => {\n try {\n await onSubmit?.(\n contractorOnboardingBag.parseFormValues(payload) as $TSFixMe, // TODO: add type\n );\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_details,\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_details ||\n contractorOnboardingBag.initialValues.contract_details;\n\n return (\n <ContractorOnboardingForm\n defaultValues={initialValues}\n onSubmit={handleSubmit}\n />\n );\n}\n"],"mappings":"gKAmFI,cAAAA,MAAA,oBA5CG,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,MAAMP,IACJG,EAAwB,gBAAgBI,CAAO,CACjD,EACA,IAAMC,EAAW,MAAML,EAAwB,SAASI,CAAO,EAC/D,GAAIC,GAAU,KAAM,CAClB,MAAMP,IAAYO,GAAU,IAAgB,EAC5CL,GAAyB,KAAK,EAC9B,MACF,CACA,GAAIK,GAAU,MAAO,CACnB,IAAMC,EAAwBC,EAC5BF,GAAU,aAAe,CAAC,EAC1BL,EAAwB,MAAM,QAAQ,gBACxC,EAEAD,IAAU,CACR,MAAOM,GAAU,MACjB,SAAUA,GAAU,SACpB,YAAaC,CACf,CAAC,CACH,CACF,OAASE,EAAgB,CACvBT,IAAU,CACR,MAAOS,EACP,SAAUA,EACV,YAAa,CAAC,CAChB,CAAC,CACH,CACF,EA9BqB,gBAgCfC,EACJT,EAAwB,UAAU,QAAQ,kBAC1CA,EAAwB,cAAc,iBAExC,OACEL,EAACe,EAAA,CACC,cAAeD,EACf,SAAUP,EACZ,CAEJ,CAjDgBC,EAAAP,EAAA","names":["jsx","ContractDetailsStep","onSubmit","onSuccess","onError","contractorOnboardingBag","useContractorOnboardingContext","handleSubmit","__name","payload","response","normalizedFieldErrors","normalizeFieldErrors","error","initialValues","ContractorOnboardingForm"]}
|
package/dist/chunk-THMWKOHC.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as H}from"./chunk-BV3PGYSH.js";import{a as he,b as Ve,c as Ue,d as Ge,e as Je,f as qe,g as je,h as Ke,i as Ye,j as Ze,k as ve,l as Qe,m as Ce,n as xe,p as be,r as et,s as tt,t as ot}from"./chunk-GOGPCCBS.js";import{b as Xe}from"./chunk-HPHWQU34.js";import{b as _e}from"./chunk-MZB24YJP.js";import{a as ye,b as O}from"./chunk-WVDTHFGS.js";import{b as S}from"./chunk-3ZWDIEEM.js";import{a as re,b as ne,c as b,d as Be,e as He,f as Oe,g as ze,h as k,i as w,j as N,k as P,l as R,m as D}from"./chunk-CNDSIADP.js";import{g as Ae}from"./chunk-WXUIXZ7P.js";import{a as v,e as oe}from"./chunk-43WMZDDH.js";import{a as n}from"./chunk-P37U34EQ.js";import{Fragment as xo,useEffect as bo,useRef as Wt}from"react";import{Fragment as Ht,jsx as A,jsxs as ae}from"react/jsx-runtime";function se({name:e,defaultValue:t,description:o,label:r,onChange:s,multiple:d,options:c,component:F,...g}){let{components:p}=S(),{control:a}=b(),u=n((i,m,f)=>{let l=f.value?[...f.value]:[];m?l.includes(i)||f.onChange([...l,i]):f.onChange(l.filter(_=>_!==i))},"handleCheckboxChange");return A(k,{control:a,name:e,defaultValue:t,render:({field:i,fieldState:m})=>{let f=F||p?.checkbox;if(f){let l={name:e,description:o,label:r,defaultValue:t,multiple:d,options:c,...g};return A(f,{field:{...i,onChange:n(_=>{if(d){let{checked:C,value:x}=_.target;u(x,C,i),s?.(C);return}i.onChange(_),s?.(_)},"onChange")},fieldState:m,fieldData:l})}return ae(w,{"data-field":e,className:v(`RemoteFlows__CheckBoxField__Item__${e}`),children:[A(P,{children:ae(Ht,{children:[c&&d?A(N,{children:r}):null,c&&d?c.map(l=>ae("div",{className:"flex space-x-2",children:[A(he,{id:l.value,onCheckedChange:_=>{u(l.value,_===!0,i),s?.(_,l.value)},checked:i.value?.includes(l.value),className:"RemoteFlows__CheckBox__Input"}),A(N,{htmlFor:l.value,className:"mb-0 RemoteFlows__CheckBox__Label",children:l.label})]},l.value)):ae("div",{className:"flex space-x-2",children:[A(he,{id:e,onCheckedChange:l=>{i.onChange(l),s?.(l)},checked:i.value,className:"RemoteFlows__CheckBox__Input"}),A(N,{htmlFor:e,className:"mb-0 RemoteFlows__CheckBox__Label",children:r})]})]})}),o&&A(R,{children:o}),m.error&&A(D,{})]})}})}n(se,"CheckBoxField");import{CalendarIcon as Vt}from"lucide-react";import{PopoverClose as Ut}from"@radix-ui/react-popover";import{ChevronLeft as Ot,ChevronRight as At}from"lucide-react";import{DayPicker as zt}from"react-day-picker";import{jsx as Se}from"react/jsx-runtime";function rt({className:e,classNames:t,showOutsideDays:o=!0,...r}){return Se(zt,{showOutsideDays:o,className:v("p-3",e),classNames:{months:"flex flex-col sm:flex-row gap-2",month:"flex flex-col gap-4",caption:"flex justify-center pt-1 relative items-center w-full",caption_label:"text-sm font-medium",nav:"flex items-center gap-1",nav_button:v(ye({variant:"outline"}),"size-7 bg-transparent p-0 opacity-50 hover:opacity-100"),nav_button_previous:"absolute left-1",nav_button_next:"absolute right-1",table:"w-full border-collapse space-x-1",head_row:"flex",head_cell:"text-muted-foreground rounded-md w-8 font-normal text-[0.8rem]",row:"flex w-full mt-2",cell:v("relative p-0 text-center text-sm focus-within:relative focus-within:z-20 [&:has([aria-selected])]:bg-accent [&:has([aria-selected].day-range-end)]:rounded-r-md",r.mode==="range"?"[&:has(>.day-range-end)]:rounded-r-md [&:has(>.day-range-start)]:rounded-l-md first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md":"[&:has([aria-selected])]:rounded-md"),day:v(ye({variant:"ghost"}),"size-8 p-0 font-normal aria-selected:opacity-100"),day_range_start:"day-range-start aria-selected:bg-primary aria-selected:text-primary-foreground",day_range_end:"day-range-end aria-selected:bg-primary aria-selected:text-primary-foreground",day_selected:"bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground",day_today:"bg-accent text-accent-foreground",day_outside:"day-outside text-muted-foreground aria-selected:text-muted-foreground",day_disabled:"text-muted-foreground opacity-50",day_range_middle:"aria-selected:bg-accent aria-selected:text-accent-foreground",day_hidden:"invisible",...t},components:{IconLeft:n(({className:s,...d})=>Se(Ot,{className:v("size-4",s),...d}),"IconLeft"),IconRight:n(({className:s,...d})=>Se(At,{className:v("size-4",s),...d}),"IconRight")},...r})}n(rt,"Calendar");import*as z from"@radix-ui/react-popover";import{jsx as ie}from"react/jsx-runtime";function le({...e}){return ie(z.Root,{"data-slot":"popover",...e})}n(le,"Popover");function me({...e}){return ie(z.Trigger,{"data-slot":"popover-trigger",...e})}n(me,"PopoverTrigger");function de({className:e,align:t="center",sideOffset:o=4,...r}){return ie(z.Portal,{children:ie(z.Content,{"data-slot":"popover-content",align:t,sideOffset:o,className:v("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",e),...r})})}n(de,"PopoverContent");import{format as nt}from"date-fns";import{Fragment as Gt,jsx as I,jsxs as ke}from"react/jsx-runtime";function at({description:e,label:t,name:o,minDate:r,maxDate:s,onChange:d,component:c,...F}){let{components:g}=S(),{control:p}=b(),a;F.meta?.mot&&typeof F.meta.mot=="number"?a=Ae(F.meta.mot):r&&(a=new Date(`${r}T00:00:00`));let u;return s&&(u=new Date(`${s}T23:59:59`)),I(k,{control:p,name:o,render:({field:i,fieldState:m})=>{let f=c||g?.date;if(f){let l={description:e,label:t,name:o,onChange:d,...a&&{minDate:a.toISOString()},...u&&{maxDate:u.toISOString()},...F};return I(f,{field:{...i,onChange:n(_=>{i.onChange(_),d?.(_)},"onChange")},fieldState:m,fieldData:l})}return ke(w,{"data-field":o,className:`flex flex-col RemoteFlows__DatePickerField__Item__${o}`,children:[I(N,{className:"RemoteFlows__DatePickerField__Label",children:t}),ke(le,{children:[I(me,{asChild:!0,children:I(P,{children:I("div",{children:ke(O,{type:"button",variant:"outline",className:v("w-full pl-3 text-left font-normal",!i.value&&"text-muted-foreground"),"data-testid":`date-picker-button-${o}`,children:[i.value&&I(Gt,{children:nt(i.value,"yyyy-MM-dd")}),I(Vt,{className:"ml-auto h-4 w-4 opacity-50"})]})})})}),I(de,{className:"w-auto p-0 RemoteFlows__DatepickerField__PopoverContent",align:"start",children:I(rt,{mode:"single",className:"RemoteFlows__DatepickerField__Calendar",selected:i.value?new Date(i.value):void 0,onSelect:l=>{i.onChange(l?nt(l,"yyyy-MM-dd"):null),d?.(l)},defaultMonth:a,components:{DayContent:n(l=>I(Ut,{children:l.date.getDate()}),"DayContent")},disabled:l=>!!(a&&l<a||u&&l>u)})})]}),e?I(R,{children:e}):null,m.error&&I(D,{className:"RemoteFlows__DatePickerField__Error"})]})}})}n(at,"DatePickerField");import{jsx as V,jsxs as Kt}from"react/jsx-runtime";var Jt=n(e=>new Promise((t,o)=>{let r=new FileReader;r.readAsDataURL(e),r.onload=()=>t(r.result),r.onerror=s=>o(s)}),"toBase64"),qt=n(async e=>await Promise.all(e.map(async o=>{let r=await Jt(o);return{...o,name:o.name,size:o.size,type:o.type,content:r.split(",")[1]}})),"convertFilesToBase64"),jt=n((e,t)=>{if(!t)return null;for(let o of e)if(o.size>t){let r=Math.round(t/1048576),s=Math.round(o.size/(1024*1024));return`File "${o.name}" exceeds maximum size of ${r}MB (file is ${s}MB)`}return null},"validateFileSize");function st({name:e,description:t,label:o,multiple:r,onChange:s,component:d,accept:c,maxSize:F,...g}){let{components:p}=S(),{control:a,setError:u,clearErrors:i}=b(),m=n(async(f,l)=>{let _=jt(f,F);if(_){u(e,{message:_});return}i(e);let C=await qt(f);l.onChange(C),s?.(C)},"handleOnChange");return V(k,{control:a,name:e,render:({field:f,fieldState:l})=>{let _=d||p?.file;if(_){let C={name:e,description:t,label:o,multiple:r,accept:c,maxFileSize:F,...g};return V(_,{field:{...f,value:f.value,onChange:n(async x=>m(x,f),"onChange")},fieldState:l,fieldData:C})}return Kt(w,{"data-field":e,className:`RemoteFlows__FileUpload__Item__${e}`,children:[V(N,{className:"RemoteFlows__FileUpload__Label",children:o}),V(P,{children:V(Ve,{onChange:C=>m(C,f),multiple:r,className:v("RemoteFlows__FileUpload__Input"),accept:c,files:f.value})}),t&&V("div",{className:"flex items-center justify-between",children:V(R,{className:"RemoteFlows__FileUpload__Description",children:t})}),l.error&&V(D,{className:"RemoteFlows__FileUpload__Error"})]})}})}n(st,"FileUploadField");import{jsx as Ne}from"react/jsx-runtime";function ce(e){let{components:t}=S(),{control:o}=b(),r=e.component||t?.number;return r?Ne(k,{control:o,name:e.name,render:({field:s,fieldState:d})=>Ne(r,{field:{...s,onChange:n(c=>{s.onChange(c),e.onChange?.(c)},"onChange")},fieldState:d,fieldData:e})}):Ne(H,{...e,type:"text",inputMode:"decimal",pattern:"^[0-9.]*$"})}n(ce,"NumberField");import{Fragment as Yt}from"react";import{jsx as W,jsxs as we}from"react/jsx-runtime";function it({name:e,defaultValue:t,description:o,label:r,options:s,onChange:d,component:c,...F}){let{components:g}=S(),{control:p}=b();return W(k,{control:p,name:e,defaultValue:t,render:({field:a,fieldState:u})=>{let i=c||g?.radio;if(i){let m={name:e,defaultValue:t,description:o,label:r,options:s,...F};return W(i,{field:{...a,onChange:n(f=>{a.onChange(f),d?.(f)},"onChange")},fieldState:u,fieldData:m})}return we(w,{className:v("space-y-3",`RemoteFlows__RadioGroupField__Item__${e}`),"data-field":e,children:[W(N,{children:r}),W(P,{children:W(Ue,{"aria-label":r||e,onValueChange:m=>{a.onChange(m),d?.(m)},value:a.value,className:"flex flex-col space-y-3",children:s?.map(m=>W(Yt,{children:we(w,{"data-field":e,className:"flex items-start space-x-3 space-y-0 gap-0 RemoteFlows__RadioField__Item",children:[W(P,{children:W(Ge,{value:m.value,className:"RemoteFlows__RadioField__Input",disabled:m.disabled})}),we("div",{children:[W(N,{className:"font-normal mb-0 RemoteFlows__RadioField__Label",children:m.label}),m.description&&W(R,{className:"mt-2",children:m.description})]})]})},m.value))})}),o&&W(R,{children:o}),u.error&&W(D,{})]})}})}n(it,"RadioGroupField");import{jsx as M,jsxs as lt}from"react/jsx-runtime";function mt({label:e,name:t,options:o,defaultValue:r,description:s,onChange:d,component:c,...F}){let{control:g}=b(),{components:p}=S();return M(k,{defaultValue:r,control:g,name:t,render:({field:a,fieldState:u})=>{let i=c||p?.select;if(i){let m={label:e,name:t,options:o,defaultValue:r,description:s,onChange:d,...F};return M(i,{field:{...a,onChange:n(f=>{let l=F.jsonType==="number"?Number(f):f;a.onChange(l),d?.(l)},"onChange")},fieldState:u,fieldData:m})}return lt(w,{"data-field":t,className:`RemoteFlows__SelectField__Item__${t}`,children:[M(N,{className:"RemoteFlows__SelectField__Label",children:e}),M(P,{children:M("div",{className:"relative",children:lt(Je,{value:a.value||"",onValueChange:m=>{let f=F.jsonType==="number"?Number(m):m;a.onChange(f),d?.(f)},children:[M(Ke,{className:"RemoteFlows__SelectField__Trigger","aria-invalid":!!u.error,"aria-label":e,children:M("span",{className:"absolute",children:M(je,{placeholder:e})})}),M(Ye,{className:"RemoteFlows__SelectField__Content",children:M(qe,{className:"RemoteFlows__SelectField__Group",children:o.map(m=>M(Ze,{value:m.value,className:"RemoteFlows__SelectField__SelectItem",disabled:m.disabled,children:m.label},m.value))})})]})})}),s&&M(R,{children:s}),u.error&&M(D,{})]})}})}n(mt,"SelectField");import{useState as oo}from"react";import{Fragment as Zt,useState as Xt}from"react";import{Check as Qt,ChevronDownIcon as eo,X as to}from"lucide-react";import{Command as K}from"cmdk";import{SearchIcon as Ur}from"lucide-react";import{jsx as Y,jsxs as jr}from"react/jsx-runtime";function dt({className:e,...t}){return Y(K,{"data-slot":"command",className:v("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md",e),...t})}n(dt,"Command");function ct({className:e,...t}){return Y(K.List,{"data-slot":"command-list",className:v("max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto",e),...t})}n(ct,"CommandList");function ut({...e}){return Y(K.Empty,{"data-slot":"command-empty",className:"py-6 text-center text-sm",...e})}n(ut,"CommandEmpty");function pt({className:e,...t}){return Y(K.Group,{"data-slot":"command-group",className:v("text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium",e),...t})}n(pt,"CommandGroup");function Ft({className:e,...t}){return Y(K.Separator,{"data-slot":"command-separator",className:v("bg-border -mx-1 h-px",e),...t})}n(Ft,"CommandSeparator");function ft({className:e,...t}){return Y(K.Item,{"data-slot":"command-item",className:v("data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e),...t})}n(ft,"CommandItem");import{jsx as E,jsxs as Z}from"react/jsx-runtime";function ue({options:e,selected:t,onChange:o,placeholder:r,...s}){let[d,c]=Xt(!1),F=n(a=>{o(t.filter(u=>u.value!==a.value))},"handleUnselect"),g=e.some(a=>a.category),p=e.reduce((a,u)=>{let i=u.category||"Uncategorized";return a[i]||(a[i]=[]),a[i].push(u),a},{});return Z(le,{open:d,onOpenChange:c,...s,children:[E(me,{children:Z(O,{variant:"outline",role:"combobox","aria-expanded":d,className:"w-full justify-between font-normal",type:"button",children:[E("div",{className:"flex gap-1 flex-wrap overflow-x-auto max-h-[2.5rem] items-center",children:t.length>0?t.map(a=>Z(Xe,{variant:"secondary",className:"mr-1 mb-1",children:[a.label,E("div",{role:"button",tabIndex:0,"aria-label":`remove ${a.label}`,className:"ml-1 ring-offset-background rounded-full outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 cursor-pointer",onKeyDown:u=>{u.key==="Enter"&&F(a)},onMouseDown:u=>{u.preventDefault(),u.stopPropagation()},onClick:()=>F(a),children:E(to,{className:"h-3 w-3 text-muted-foreground hover:text-foreground"})})]},a.label)):E("span",{className:"text-foreground",children:r})}),E(eo,{className:"size-4"})]})}),E(de,{align:"start",className:"w-full p-0",children:E(dt,{children:Z(ct,{children:[E(ut,{children:"No item found."}),Object.entries(p).map(([a,u],i)=>Z(Zt,{children:[i>0&&E(Ft,{}),E(pt,{heading:g?a:void 0,children:u.map(m=>{let f=t.some(l=>l.value===m.value);return Z(ft,{onSelect:()=>{o(f?t.filter(l=>l.value!==m.value):[...t,m])},children:[E(Qt,{className:v("mr-2 h-4 w-4",f?"opacity-100":"opacity-0")}),m.label]},m.label)})})]},a))]})})})]})}n(ue,"MultiSelect");import{jsx as U,jsxs as ro}from"react/jsx-runtime";function gt({label:e,name:t,options:o,defaultValue:r,description:s,onChange:d,$meta:c,component:F,...g}){let{control:p}=b(),{components:a}=S(),[u,i]=oo([]);return U(k,{defaultValue:r,control:p,name:t,render:({field:m,fieldState:f})=>{let l=F||a?.countries;if(l){let x={label:e,name:t,options:o,defaultValue:r,description:s,onChange:d,$meta:c,...g};return U(l,{field:{...m,onChange:n(T=>{m.onChange(T),d?.(T)},"onChange")},fieldState:f,fieldData:x})}let _=[...Object.entries(c?.regions||{}).map(([x,T])=>({value:T,label:x,category:"Regions"})),...Object.entries(c?.subregions||{}).map(([x,T])=>({value:T,label:x,category:"Subregions"})),...o.map(x=>({...x,value:x.value,label:x.label,category:"Countries"}))],C=n(x=>{let T=x.map(({value:j})=>j);m.onChange(T),d?.(T),i(x)},"handleChange");return ro(w,{"data-field":t,className:`RemoteFlows__CountryField__Item__${t}`,children:[U(N,{className:"RemoteFlows__CountryField__Label",children:e}),U(P,{children:U(ue,{options:_,selected:u,onChange:C,...g})}),s&&U(R,{children:s}),f.error&&U(D,{})]})}})}n(gt,"CountryField");import*as _t from"react";import{jsx as no}from"react/jsx-runtime";var Pe=_t.forwardRef(({className:e,...t},o)=>no("textarea",{className:v("flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:o,...t}));Pe.displayName="Textarea";import{jsx as G,jsxs as Re}from"react/jsx-runtime";function ht({name:e,description:t,label:o,onChange:r,maxLength:s,component:d,...c}){let{components:F}=S(),{control:g}=b();return G(k,{control:g,name:e,render:({field:p,fieldState:a})=>{let u=d||F?.textarea;if(u){let m={name:e,description:t,label:o,maxLength:s,...c};return G(u,{field:{...p,onChange:n(f=>{p.onChange(f),r?.(f)},"onChange")},fieldState:a,fieldData:m})}let i=p.value?.length??0;return Re(w,{"data-field":e,className:`RemoteFlows__TextArea__Item__${e}`,children:[G(N,{className:"RemoteFlows__TextArea__Label",children:o}),G(P,{children:G(Pe,{...p,value:p.value??"",onChange:m=>{p.onChange(m),r?.(m)},className:v(a.error&&"border-red-500 focus-visible:ring-red-500","RemoteFlows__TextArea__Input"),placeholder:o})}),(t||s)&&Re("div",{className:"flex items-center justify-between",children:[t&&G(R,{className:"RemoteFlows__TextArea__Description",children:t}),s&&Re("span",{className:"text-sm ml-auto RemoteFlows__TextArea__MaxLength",children:[i,"/",s]})]}),a.error&&G(D,{className:"RemoteFlows__TextArea__Error"})]})}})}n(ht,"TextAreaField");import{jsx as De}from"react/jsx-runtime";function yt(e){let{components:t}=S(),{control:o}=b(),r=e.component||t?.email;return r?De(k,{control:o,name:e.name,render:({field:s,fieldState:d})=>De(r,{field:{...s,onChange:n(c=>{s.onChange(c),e.onChange?.(c)},"onChange")},fieldState:d,fieldData:e})}):De(H,{...e,type:"email"})}n(yt,"EmailField");import{jsx as vt}from"react/jsx-runtime";function Ct(e){let{control:t}=b();return vt(k,{control:t,name:e.name,render:({field:o})=>vt("input",{...o,type:"hidden"})})}n(Ct,"HiddenField");import uo,{useEffect as po,useState as Dt}from"react";var xt=n((e,t,o)=>{if(e&&"reportValidity"in e){let r=re(o,t);e.setCustomValidity(r&&r.message||""),e.reportValidity()}},"r"),Te=n((e,t)=>{for(let o in t.fields){let r=t.fields[o];r&&r.ref&&"reportValidity"in r.ref?xt(r.ref,o,e):r&&r.refs&&r.refs.forEach(s=>xt(s,o,e))}},"o"),St=n((e,t)=>{t.shouldUseNativeValidation&&Te(e,t);let o={};for(let r in e){let s=re(t.fields,r),d=Object.assign(e[r]||{},{ref:s&&s.ref});if(ao(t.names||Object.keys(e),r)){let c=Object.assign({},re(o,r));ne(c,"root",d),ne(o,r,c)}else ne(o,r,d)}return o},"s"),ao=n((e,t)=>{let o=bt(t);return e.some(r=>bt(r).match(`^${o}\\.\\d+`))},"i");function bt(e){return e.replace(/\]|\[/g,"")}n(bt,"n");function kt(e,t,o){return t===void 0&&(t={}),o===void 0&&(o={}),function(r,s,d){try{return Promise.resolve(function(c,F){try{var g=(t.context&&process.env.NODE_ENV==="development"&&console.warn("You should not used the yup options context. Please, use the 'useForm' context object instead"),Promise.resolve(e[o.mode==="sync"?"validateSync":"validate"](r,Object.assign({abortEarly:!1},t,{context:s}))).then(function(p){return d.shouldUseNativeValidation&&Te({},d),{values:o.raw?Object.assign({},r):p,errors:{}}}))}catch(p){return F(p)}return g&&g.then?g.then(void 0,F):g}(0,function(c){if(!c.inner)throw c;return{values:{},errors:St((F=c,g=!d.shouldUseNativeValidation&&d.criteriaMode==="all",(F.inner||[]).reduce(function(p,a){if(p[a.path]||(p[a.path]={message:a.message,type:a.type}),g){var u=p[a.path].types,i=u&&u[a.type];p[a.path]=Be(a.path,g,p,a.type,i?[].concat(i,a.message):a.message)}return p},{})),d)};var F,g}))}catch(c){return Promise.reject(c)}}}n(kt,"o");import*as $ from"yup";import Nt from"lodash.groupby";import X from"lodash.capitalize";var wt=60,pe=["monday","tuesday","wednesday","thursday","friday","saturday","sunday"];function so(e){if(e<60)return`${e}m`;let t=Math.floor(e/wt),o=e%wt;return o>0?`${t}h${o}m`:`${t}h`}n(so,"convertBreakDurationToHours");function Pt(e){let t=e.reduce((o,r)=>r.hours+o,0);return Number(t.toFixed(2))}n(Pt,"calculateTotalWorkHours");function io(e,t){let o=t.map(({day:d})=>d.toLowerCase()),r=o.indexOf(e),s=null;for(;r<o.length&&!s;){let d=o[r],c=o[r+1],F=pe.indexOf(d)+1;pe[F]===c||(s=d),r+=1}return s}n(io,"findLastConsecutiveDay");function lo(e){return e.start_time&&e.end_time&&(typeof e.hours=="number"?e.hours:Number.parseInt(e.hours))>0}n(lo,"shouldSummarizeSchedule");function mo(e){return Number.parseInt(e.break_duration_minutes)>0}n(mo,"shouldSummarizeBreaks");function Rt(e){let t=e.filter(lo),o=Nt(t,F=>`${F.start_time}|${F.end_time}`),r=e.filter(mo),s=Nt(r,"break_duration_minutes"),d=Object.keys(o).map(F=>{let g=o[F],p=g[0].day,[a,u]=F.split("|"),i=`from <span>${a.replace(":","h")}</span> to <span>${u.replace(":","h")}</span>`,m=io(p,g),l=(m?g.findIndex(_=>_.day===m):-1)===g.length-1;return g.length===1?`${X(p)}, ${i}`:!l||!m?g.reduce((_,C,x)=>{let T=X(C.day);return x===g.length-1?`${_}and ${T}, ${i}`:`${_}<span>${T}</span>, `},""):`<span>${X(p)}</span> to <span>${X(m)}</span>, ${i}`}),c=Object.keys(s).reverse().map((F,g)=>{let p=g===0,a=s[F],u=so(parseInt(F,10));if(Object.keys(s).length===1)return`With ${u} daily breaks`;if(a.length===1){let i=`${u} break on ${X(a[0].day)}.`;return p?`With ${i}`:i}return a.reduce((i,m,f)=>{let l=X(m.day);return f===0?`${i} ${l}`:f===a.length-1?`${i}, and ${l}.`:`${i}, ${l}`},p?`With ${u} break on`:`${u} break on`)});return{workHoursSummary:d,breakSummary:c}}n(Rt,"buildWorkScheduleSummary");function $e(e){let{checked:t,start_time:o,end_time:r,break_duration_minutes:s}=e;if(!t)return 0;let[d,c]=o.split(":").map(Number),[F,g]=r.split(":").map(Number),p=d*60+c,i=(F*60+g-p-Number.parseInt(s||"0"))/60;return i===Math.floor(i)?i:Number(i.toFixed(2))}n($e,"calculateHours");var co={monday:"Mon",tuesday:"Tue",wednesday:"Wed",thursday:"Thu",friday:"Fri",saturday:"Sat",sunday:"Sun"};function Fe(e){return co[e]}n(Fe,"getShortWeekday");import{jsx as y,jsxs as L}from"react/jsx-runtime";var Fo=$.object({day:$.string().required(),checked:$.boolean().required(),start_time:$.string().matches(/^([01]\d|2[0-3]):([0-5]\d)$/,"Invalid time format (HH:mm)").when("checked",{is:!0,then:n(e=>e.required("Required"),"then"),otherwise:n(e=>e.optional().nullable(),"otherwise")}),end_time:$.string().matches(/^([01]\d|2[0-3]):([0-5]\d)$/,"Invalid time format (HH:mm)").when("checked",{is:!0,then:n(e=>e.required("Required"),"then"),otherwise:n(e=>e.optional().nullable(),"otherwise")}),hours:$.number().default(0),break_duration_minutes:$.string().default("0")}),fo=$.object({schedule:$.array(Fo)});function go({defaultSchedule:e,onSubmit:t}){let[o,r]=Dt(!1),s=pe.map(l=>{let _=e.find(C=>C.day.toLowerCase()===Fe(l).toLowerCase()||C.day.toLowerCase()===l.toLowerCase());return _?{..._,day:Fe(l),checked:!0}:{...e[0],checked:!1,day:Fe(l)}}),d=Oe({defaultValues:{schedule:s},resolver:kt(fo)}),{handleSubmit:c,watch:F,reset:g,control:p,formState:a}=d,{fields:u}=He({name:"schedule",control:p}),i=F("schedule");function m(l){let _=l.schedule.filter(({checked:C})=>C).map(C=>({...C,hours:$e(C)}));t(_),r(!1)}n(m,"handleSubmitWorkingHours");function f(){g(),r(!1)}return n(f,"handleCancel"),y("div",{className:"flex items-center justify-between",children:L(ve,{open:o,onOpenChange:r,children:[y(Qe,{asChild:!0,children:y(O,{variant:"link",className:"flex items-center p-0 RemoteFlows__WorkScheduleSelectionForm__Trigger",children:"Edit Schedule"})}),L(Ce,{className:"max-w-5xl max-h-[90vh] overflow-y-auto px-8 py-4 RemoteFlows__WorkScheduleSelectionForm__Content",children:[y(xe,{children:y(be,{className:"RemoteFlows__WorkScheduleSelectionForm__Title",children:"Edit employee working hours"})}),y(ze,{...d,children:L("form",{className:"space-y-4 RemoteFlows__WorkScheduleSelectionForm__Form",children:[L("div",{className:"rounded-lg",children:[y("p",{className:"text-gray-600 text-sm mb-4 RemoteFlows__WorkScheduleSelectionForm__Description",children:"The times displayed are in the employee's time zone in the 24-hour format."}),L("div",{className:"grid grid-cols-12 gap-4 text-sm font-medium text-gray-500 uppercase tracking-wide RemoteFlows__WorkScheduleSelectionForm__Header",children:[y("div",{className:"col-span-2"}),y("div",{className:"col-span-3 text-center",children:"START"}),y("div",{className:"col-span-1 text-center"}),y("div",{className:"col-span-3 text-center",children:"END"}),y("div",{className:"col-span-2 text-center",children:"HOURS"})]}),y("div",{className:"RemoteFlows__WorkScheduleSelectionForm__Rows",children:u.map((l,_)=>{let C=i[_],x=$e(C);return L(uo.Fragment,{children:[L("div",{className:"grid grid-cols-12 gap-4 items-center py-2 RemoteFlows__WorkScheduleSelectionForm__Row-Hours",children:[y("div",{className:"col-span-2 flex items-center gap-3",children:y(se,{label:l.day,name:`schedule.${_}.checked`})}),y("div",{className:"col-span-3",children:y(H,{name:`schedule.${_}.start_time`,includeErrorMessage:!1})}),y("div",{className:"col-span-1 text-center text-gray-500",children:"to"}),y("div",{className:"col-span-3",children:y(H,{name:`schedule.${_}.end_time`,includeErrorMessage:!1})}),y("div",{className:"col-span-2 text-center text-gray-600",children:isNaN(x)?"-":`${x} hours`})]}),L("div",{className:"grid grid-cols-12 gap-4 items-center py-2 RemoteFlows__WorkScheduleSelectionForm__Row-Break",children:[y("div",{className:"col-span-2 text-gray-500",children:"Break"}),y("div",{className:"col-span-2",children:y(H,{name:`schedule.${_}.break_duration_minutes`,includeErrorMessage:!1})}),y("div",{className:"col-span-2 text-gray-500",children:"minutes"}),y("div",{className:"col-span-4"})]})]},l.id)})})]}),Object.keys(a.errors).length>0&&y("p",{className:"text-destructive text-sm mb-0",children:"Invalid time format (HH:mm)"}),L("div",{className:"flex gap-4 pt-4",children:[y(O,{type:"button",className:"reset-button",variant:"outline",onClick:f,children:"Cancel"}),y(O,{type:"button",className:"submit-button",onClick:c(m),children:"Save Schedule"})]})]})})]})]})})}n(go,"WorkScheduleSelectionForm");function Tt(e){let{components:t}=S(),{setValue:o,control:r,watch:s}=b(),d=s(e.name),[c,F]=Dt(d),{workHoursSummary:g,breakSummary:p}=Rt(c),a=Pt(c);po(()=>{o(e.name,c)},[c,e.name,o]);function u(m){F(m)}n(u,"onSubmit");let i=e.component||t?.["work-schedule"];return i?y(k,{control:r,name:e.name,render:({field:m,fieldState:f})=>y(i,{field:{...m,onChange:n(l=>{m.onChange(l),e.onChange?.(l)},"onChange")},fieldState:f,fieldData:{...e,defaultFormattedValue:{workHoursSummary:g,breakSummary:p,totalWorkHours:a}}})}):L("div",{className:"flex flex-col gap-3 RemoteFlows__WorkScheduleField",children:[y("p",{className:"text-sm RemoteFlows__WorkScheduleField__Title",children:"Work hours"}),L("div",{className:"flex flex-col gap-1 RemoteFlows__WorkScheduleField__Summary",children:[y("p",{className:"text-sm text-gray-500 RemoteFlows__WorkScheduleField__Summary__WorkHours",dangerouslySetInnerHTML:{__html:g.join(", ")}}),y("p",{className:"text-sm text-gray-500 RemoteFlows__WorkScheduleField__Summary__Break",children:p.join()}),L("p",{className:"text-sm text-gray-500 RemoteFlows__WorkScheduleField__Summary__Total",children:["Total of ",y("span",{children:a})," hours per week"]}),y(go,{defaultSchedule:c,onSubmit:u})]})]})}n(Tt,"WorkScheduleField");import{useState as _o}from"react";import{jsx as J,jsxs as ho}from"react/jsx-runtime";function $t({label:e,name:t,options:o,defaultValue:r,description:s,onChange:d,component:c,...F}){let{control:g}=b(),{components:p}=S(),[a,u]=_o();return J(k,{defaultValue:r,control:g,name:t,render:({field:i,fieldState:m})=>{let f=c||p?.["multi-select"];if(f){let _={label:e,name:t,options:o,defaultValue:r,description:s,onChange:d,...F};return J(f,{field:{...i,onChange:n(C=>{i.onChange(C),d?.(C)},"onChange")},fieldState:m,fieldData:_})}let l=a||o.filter(_=>i.value.includes(_.value));return ho(w,{"data-field":t,className:`RemoteFlows__SelectField__Item__${t}`,children:[J(N,{className:"RemoteFlows__SelectField__Label",children:e}),J(P,{children:J(ue,{options:o,selected:l,onChange:_=>{let C=_.map(({value:x})=>x);i.onChange(C),d?.(C),u(_)},...F})}),s&&J(R,{children:s}),m.error&&J(D,{})]})}})}n($t,"MultiSelectField");import{jsx as yo}from"react/jsx-runtime";var It=n(e=>yo(ce,{maxLength:15,...e}),"MoneyField");var Ie={checkbox:se,text:H,email:yt,money:It,select:mt,"multi-select":$t,radio:it,number:ce,file:st,date:at,textarea:ht,countries:gt,hidden:Ct,"work-schedule":Tt};import{AlertCircle as vo}from"lucide-react";import{jsx as fe,jsxs as Co}from"react/jsx-runtime";function Mt({title:e,description:t,severity:o}){let{components:r}=S();if(r?.statement){let s=r?.statement;return fe(s,{data:{title:e,description:oe(t),severity:o}})}return Co(et,{variant:"warning",children:[fe(vo,{className:"h-4 w-4"}),e&&fe(tt,{children:e}),t&&fe(ot,{dangerouslySetInnerHTML:{__html:oe(t)}})]})}n(Mt,"Statement");import{Fragment as ko,jsx as B,jsxs as q}from"react/jsx-runtime";var So=n(({isExpanded:e,onToggle:t,className:o,...r})=>B(O,{type:"button",className:v("RemoteFlows__Button RemoteFlows__FieldSetField__ToggleButton",o),variant:"default",onClick:t,...r,children:e?"Remove":"Define"}),"DefaultToggleButton");function Et({label:e,name:t,fields:o,description:r,components:s,statement:d,isFlatFieldset:c,extra:F,variant:g="outset",features:p,meta:a}){let{helpCenter:u}=a||{},{watch:i,setValue:m,trigger:f,formState:l}=b(),{components:_}=S(),C=p?.toggle?.stateField,x=C?i(C):p?.toggle?.defaultExpanded??!0,T=o.map(({name:h})=>`${t}.${h}`),j=i(T),Me=Wt(j),Q=Wt(null),Lt=n(()=>{C&&m(C,!x)},"toggleExpanded");bo(()=>{let h=j,ee=Me.current,ge=l.isSubmitted||l.submitCount>0,Le=!1;for(let te=0;te<h.length;te++)if(h[te]!==void 0&&ee[te]!==h[te]){Le=!0;break}return Le&&ge&&(Q.current&&clearTimeout(Q.current),Q.current=setTimeout(()=>{f()},50)),Me.current=[...h],()=>{Q.current&&clearTimeout(Q.current)}},[j,f,l.isSubmitted,l.submitCount]);let Bt=_?.fieldsetToggle||So,We=`${t}-content`,Ee=`${t}-header`;return q("fieldset",{className:v("border-1 border-input p-4 rounded-xl","RemoteFlows__FieldSetField",`RemoteFlows__FieldSetField__${t}`),children:[B("legend",{className:v("text-sm font-semibold px-2",g==="inset"&&"hidden"),children:e}),u?.callToAction&&u?.id&&g==="outset"&&B(_e,{className:"RemoteFlows__FieldSetField__HelpCenterLink mb-3",zendeskId:u.id,children:u.callToAction}),g==="inset"&&q(ko,{children:[q("div",{className:"RemoteFlows__FieldSetField__Header",id:Ee,"data-state":x?"expanded":"collapsed","aria-expanded":x,children:[B("h3",{className:v("RemoteFlows__FieldSetField__Title"),children:e}),p?.toggle?.enabled&&B(Bt,{isExpanded:x,onToggle:Lt,"aria-expanded":x,"aria-controls":We,"aria-label":`${x?"Hide":"Show"} ${e}`,className:v("RemoteFlows__FieldSetField__Toggle",p.toggle?.className),children:x?p.toggle.labels?.collapse??"Remove":p.toggle.labels?.expand??"Define"})]}),u?.callToAction&&u?.id&&B(_e,{className:"RemoteFlows__FieldSetField__HelpCenterLink mb-3",zendeskId:u.id,children:u.callToAction})]}),x&&q("div",{id:We,"aria-labelledby":Ee,role:"region",children:[r?B("div",{className:"mb-5 RemoteFlows__FieldSetField__Description",dangerouslySetInnerHTML:{__html:oe(r)}}):null,q("div",{className:"grid gap-4",children:[o.map(h=>{if(h.calculateDynamicProperties&&(h={...h,...h.calculateDynamicProperties(j,h)||{}}),h.isVisible===!1||h.deprecated)return null;if(h.inputType==="fieldset")return B(Et,{...h,name:`${c?h.name:`${t}.${h.name}`}`,components:s},`${c?h.name:`${t}.${h.name}`}`);if(h.inputType==="fieldset-flat")return B(Et,{...h,name:`${c?h.name:`${t}.${h.name}`}`,components:s,isFlatFieldset:!0},`${c?h.name:`${t}.${h.name}`}`);let ee=Ie[h.inputType];if(h.Component){let{Component:ge}=h;return B(ge,{...h},h.name)}return ee?(h.inputType==="select"&&h.multiple&&(ee=Ie["multi-select"]),q(xo,{children:[B(ee,{...h,name:`${c?h.name:`${t}.${h.name}`}`,component:s?.[h.inputType]}),h.extra?h.extra:null]},`${c?h.name:`${t}.${h.name}`}`)):q("p",{className:"error",children:["Field type ",h.inputType," not supported"]})}),F||null,d?B(Mt,{...d}):null]})]})]})}n(Et,"FieldSetField");export{Ie as a,Mt as b,Et as c};
|
|
2
|
-
//# sourceMappingURL=chunk-THMWKOHC.js.map
|