@remoteoss/remote-flows 1.2.1 → 1.3.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 +4 -80
- package/dist/chunk-2FQ2KNP4.js +2 -0
- package/dist/chunk-2FQ2KNP4.js.map +1 -0
- package/dist/chunk-2Y3SXQ5B.js +2 -0
- package/dist/chunk-2Y3SXQ5B.js.map +1 -0
- package/dist/{chunk-W3JY7GB5.js → chunk-35RMJMSH.js} +2 -2
- package/dist/{chunk-7Q3N2EY2.js → chunk-3CFU6LKQ.js} +2 -2
- package/dist/{chunk-2TILNBMK.js → chunk-3F77NXWU.js} +2 -2
- package/dist/{chunk-S7INFMJB.js → chunk-3Z6AFLXW.js} +2 -2
- package/dist/{chunk-RNM46ZUE.js → chunk-44IOQYR2.js} +2 -2
- package/dist/chunk-5C3NU7R3.js +2 -0
- package/dist/chunk-5C3NU7R3.js.map +1 -0
- package/dist/{chunk-WKHYYISW.js → chunk-5DKNCKV7.js} +2 -2
- package/dist/{chunk-WKHYYISW.js.map → chunk-5DKNCKV7.js.map} +1 -1
- package/dist/{chunk-23OYALRY.js → chunk-5LSHRCAR.js} +2 -2
- package/dist/chunk-6GTRAHWJ.js +2 -0
- package/dist/chunk-6GTRAHWJ.js.map +1 -0
- package/dist/chunk-6P4DTWYK.js +2 -0
- package/dist/chunk-6P4DTWYK.js.map +1 -0
- package/dist/{chunk-SLD6QFPG.js → chunk-6S6H4NAQ.js} +2 -2
- package/dist/{chunk-4ZNCIMTR.js → chunk-7COHIUGW.js} +2 -2
- package/dist/{chunk-S6CCPQSN.js → chunk-A3GZSC5Z.js} +2 -2
- package/dist/{chunk-RJO534HJ.js → chunk-A65WMO6K.js} +2 -2
- package/dist/{chunk-2SO4LW7V.js → chunk-ARTSDUSS.js} +2 -2
- package/dist/chunk-ARTSDUSS.js.map +1 -0
- package/dist/{chunk-EDP4HELT.js → chunk-BL7OYWNX.js} +2 -2
- package/dist/{chunk-NVTGX5FY.js → chunk-C4DLDK36.js} +2 -2
- package/dist/chunk-C4DLDK36.js.map +1 -0
- package/dist/{chunk-CDCKGIF5.js → chunk-DV6PCBAX.js} +2 -2
- package/dist/chunk-EDVJBPCB.js +2 -0
- package/dist/chunk-EDVJBPCB.js.map +1 -0
- package/dist/chunk-EGRGQWIY.js +2 -0
- package/dist/chunk-EGRGQWIY.js.map +1 -0
- package/dist/{chunk-FFT7BPGS.js → chunk-EQOU2VPX.js} +2 -2
- package/dist/chunk-ERRQIROU.js +2 -0
- package/dist/chunk-ERRQIROU.js.map +1 -0
- package/dist/{chunk-GMQ4GITD.js → chunk-ETYRNQJJ.js} +2 -2
- package/dist/chunk-EYQ4PYUT.js +2 -0
- package/dist/chunk-EYQ4PYUT.js.map +1 -0
- package/dist/chunk-F3KEIVSE.js +2 -0
- package/dist/chunk-F3KEIVSE.js.map +1 -0
- package/dist/{chunk-OAPK6TR7.js → chunk-GCTHZSIN.js} +2 -2
- package/dist/{chunk-NMHISCDF.js → chunk-GE5DH3UF.js} +2 -2
- package/dist/{chunk-A5BCZOOQ.js → chunk-GHJBEQIR.js} +2 -2
- package/dist/{chunk-XQL5I2GC.js → chunk-GP6PRZVX.js} +2 -2
- package/dist/{chunk-KJZLQ77E.js → chunk-HDNBZ6CB.js} +2 -2
- package/dist/{chunk-K5P2NRJ3.js → chunk-HZVYZQ3Z.js} +2 -2
- package/dist/{chunk-FMDAJQPU.js → chunk-IBHNWMMB.js} +2 -2
- package/dist/{chunk-FUMA5UUB.js → chunk-KKGRYDZA.js} +2 -2
- package/dist/{chunk-3N4O7TE2.js → chunk-LG2LVO4C.js} +2 -2
- package/dist/{chunk-X5GMCAS7.js → chunk-LJVV6MMB.js} +2 -2
- package/dist/{chunk-E5PHO3SS.js → chunk-LKMPZJIW.js} +2 -2
- package/dist/chunk-LQBVRVXH.js +2 -0
- package/dist/chunk-LQBVRVXH.js.map +1 -0
- package/dist/chunk-LWGSXQKI.js +1 -0
- package/dist/chunk-LWGSXQKI.js.map +1 -0
- package/dist/chunk-M2TLNSTK.js +2 -0
- package/dist/chunk-M2TLNSTK.js.map +1 -0
- package/dist/{chunk-5RM36L5X.js → chunk-MEZ7LYUK.js} +2 -2
- package/dist/{chunk-NS4FRCEH.js → chunk-N6BBMT7W.js} +2 -2
- package/dist/{chunk-T2URGIP3.js → chunk-NABPCULM.js} +2 -2
- package/dist/{chunk-FXESMDKI.js → chunk-NDQ6UQFG.js} +2 -2
- package/dist/{chunk-W2SYJLOE.js → chunk-OFI5KLQ4.js} +2 -2
- package/dist/chunk-OKM7DRCF.js +2 -0
- package/dist/{chunk-TYCDD66L.js → chunk-OP72BS23.js} +2 -2
- package/dist/{chunk-ZPN5N6BA.js → chunk-OXL3QGHT.js} +2 -2
- package/dist/{chunk-VFZXJTBY.js → chunk-PZNXAOZH.js} +2 -2
- package/dist/{chunk-I4XJ764Y.js → chunk-QIVDIOJG.js} +2 -2
- package/dist/chunk-SIYKTLFS.js +2 -0
- package/dist/chunk-SIYKTLFS.js.map +1 -0
- package/dist/{chunk-JA7UP6GN.js → chunk-SXR333SU.js} +2 -2
- package/dist/chunk-T6HCUFYI.js +2 -0
- package/dist/chunk-T6HCUFYI.js.map +1 -0
- package/dist/{chunk-FLNGPYQ2.js → chunk-TVJYCR33.js} +2 -2
- package/dist/chunk-TVJYCR33.js.map +1 -0
- package/dist/{chunk-C74N2AWG.js → chunk-UA6MNQLD.js} +2 -2
- package/dist/{chunk-26JXMVXY.js → chunk-VBO75DXV.js} +2 -2
- package/dist/{chunk-XRFBLWLZ.js → chunk-VXA6RPA5.js} +2 -2
- package/dist/{chunk-NFUP6BFU.js → chunk-W3YE53JN.js} +5 -5
- package/dist/chunk-W3YE53JN.js.map +1 -0
- package/dist/chunk-WCEHP5N7.js +2 -0
- package/dist/chunk-WCEHP5N7.js.map +1 -0
- package/dist/{chunk-2VW77NBC.js → chunk-XRI6PRXK.js} +2 -2
- package/dist/chunk-Y2NSR2N6.js +2 -0
- package/dist/chunk-Y2NSR2N6.js.map +1 -0
- package/dist/chunk-Y5P5IJRN.js +2 -0
- package/dist/chunk-Y5P5IJRN.js.map +1 -0
- package/dist/{chunk-5KPB3KN7.js → chunk-Z2WV73EX.js} +2 -2
- package/dist/{chunk-BHYFPY64.js → chunk-Z6TCBVRG.js} +2 -2
- package/dist/{chunk-LE4O6V7D.js → chunk-ZYRGEEPU.js} +2 -2
- 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 +4 -4
- 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 +4 -4
- package/dist/flows/ContractAmendment/hooks.d.ts +4 -4
- package/dist/flows/ContractAmendment/hooks.js +1 -1
- package/dist/flows/ContractAmendment/index.d.ts +4 -4
- package/dist/flows/ContractAmendment/index.js +1 -1
- package/dist/flows/ContractAmendment/types.d.ts +3 -3
- package/dist/flows/ContractAmendment/utils.d.ts +1 -1
- package/dist/flows/ContractAmendment/utils.js +1 -1
- package/dist/flows/ContractorOnboarding/ContractorOnboarding.d.ts +8 -8
- package/dist/flows/ContractorOnboarding/ContractorOnboarding.js +1 -1
- package/dist/flows/ContractorOnboarding/api.d.ts +3 -3
- package/dist/flows/ContractorOnboarding/api.js +1 -1
- package/dist/flows/ContractorOnboarding/components/BasicInformationStep.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/components/BasicInformationStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.d.ts +8 -8
- package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.d.ts +8 -8
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.d.ts +6 -6
- 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 +4 -4
- 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 +8 -8
- package/dist/flows/ContractorOnboarding/components/PricingPlan.js +1 -1
- package/dist/flows/ContractorOnboarding/components/SelectCountryStep.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/components/SelectCountryStep.js +1 -1
- package/dist/flows/ContractorOnboarding/context.d.ts +6 -6
- package/dist/flows/ContractorOnboarding/hooks.d.ts +8 -8
- package/dist/flows/ContractorOnboarding/hooks.js +1 -1
- package/dist/flows/ContractorOnboarding/index.d.ts +8 -8
- package/dist/flows/ContractorOnboarding/index.js +1 -1
- package/dist/flows/ContractorOnboarding/types.d.ts +9 -9
- package/dist/flows/ContractorOnboarding/utils.d.ts +19 -1
- package/dist/flows/ContractorOnboarding/utils.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorFlow.d.ts +4 -4
- package/dist/flows/CostCalculator/CostCalculatorFlow.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorForm.d.ts +4 -4
- 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 +3 -3
- package/dist/flows/CostCalculator/EstimationResults/EstimationResults.js +1 -1
- package/dist/flows/CostCalculator/SummaryResults/SummaryResults.d.ts +3 -3
- package/dist/flows/CostCalculator/api.d.ts +3 -3
- package/dist/flows/CostCalculator/api.js +1 -1
- package/dist/flows/CostCalculator/components/SalaryField.d.ts +3 -3
- package/dist/flows/CostCalculator/components/SalaryField.js +1 -1
- package/dist/flows/CostCalculator/context.d.ts +4 -4
- package/dist/flows/CostCalculator/hooks.d.ts +4 -4
- package/dist/flows/CostCalculator/hooks.js +1 -1
- package/dist/flows/CostCalculator/index.d.ts +4 -4
- package/dist/flows/CostCalculator/index.js +1 -1
- package/dist/flows/CostCalculator/types.d.ts +3 -3
- package/dist/flows/CostCalculator/utils.d.ts +4 -4
- package/dist/flows/CostCalculator/utils.js +1 -1
- package/dist/flows/Onboarding/OnboardingFlow.d.ts +5 -5
- package/dist/flows/Onboarding/OnboardingFlow.js +1 -1
- package/dist/flows/Onboarding/api.d.ts +5 -5
- package/dist/flows/Onboarding/api.js +1 -1
- package/dist/flows/Onboarding/components/AnnualGrossSalary.d.ts +3 -3
- package/dist/flows/Onboarding/components/AnnualGrossSalary.js +1 -1
- package/dist/flows/Onboarding/components/BasicInformationStep.d.ts +5 -5
- package/dist/flows/Onboarding/components/BasicInformationStep.js +1 -1
- package/dist/flows/Onboarding/components/BenefitsStep.d.ts +5 -5
- package/dist/flows/Onboarding/components/BenefitsStep.js +1 -1
- package/dist/flows/Onboarding/components/ContractDetailsStep.d.ts +5 -5
- 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 +5 -5
- package/dist/flows/Onboarding/components/OnboardingForm.js +1 -1
- package/dist/flows/Onboarding/components/OnboardingInvite.d.ts +4 -4
- 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 +5 -5
- package/dist/flows/Onboarding/components/SaveDraftButton.d.ts +4 -4
- package/dist/flows/Onboarding/components/SaveDraftButton.js +1 -1
- package/dist/flows/Onboarding/components/SelectCountryStep.d.ts +5 -5
- package/dist/flows/Onboarding/components/SelectCountryStep.js +1 -1
- package/dist/flows/Onboarding/context.d.ts +5 -5
- package/dist/flows/Onboarding/hooks.d.ts +5 -5
- package/dist/flows/Onboarding/hooks.js +1 -1
- package/dist/flows/Onboarding/index.d.ts +5 -5
- package/dist/flows/Onboarding/index.js +1 -1
- package/dist/flows/Onboarding/types.d.ts +5 -5
- package/dist/flows/Onboarding/utils.d.ts +5 -5
- package/dist/flows/Termination/AdditionalDetailsForm.d.ts +5 -5
- package/dist/flows/Termination/AdditionalDetailsForm.js +1 -1
- package/dist/flows/Termination/EmployeeComunicationForm.d.ts +5 -5
- package/dist/flows/Termination/EmployeeComunicationForm.js +1 -1
- package/dist/flows/Termination/PaidTimeOffForm.d.ts +5 -5
- package/dist/flows/Termination/PaidTimeOffForm.js +1 -1
- package/dist/flows/Termination/TerminationBack.js +1 -1
- package/dist/flows/Termination/TerminationDetailsForm.d.ts +5 -5
- package/dist/flows/Termination/TerminationDetailsForm.js +1 -1
- package/dist/flows/Termination/TerminationFlow.d.ts +5 -5
- package/dist/flows/Termination/TerminationFlow.js +1 -1
- package/dist/flows/Termination/TerminationForm.d.ts +5 -5
- package/dist/flows/Termination/TerminationForm.js +1 -1
- package/dist/flows/Termination/TerminationSubmit.js +1 -1
- package/dist/flows/Termination/api.d.ts +6 -6
- package/dist/flows/Termination/api.js +1 -1
- package/dist/flows/Termination/components/AcknowledgeInformation/AcknowledgeInformationFees.js +1 -1
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOff.d.ts +7 -7
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOff.js +1 -1
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.d.ts +7 -7
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.js +1 -1
- package/dist/flows/Termination/components/PaidTimeOff/types.d.ts +7 -7
- package/dist/flows/Termination/components/TerminationDialogInfoContent/TerminationDialogInfoContent.js +1 -1
- package/dist/flows/Termination/context.d.ts +5 -5
- package/dist/flows/Termination/hooks.d.ts +5 -5
- package/dist/flows/Termination/hooks.js +1 -1
- package/dist/flows/Termination/index.d.ts +7 -7
- 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 +5 -5
- package/dist/flows/Termination/json-schemas/schema.js +1 -1
- package/dist/flows/Termination/types.d.ts +5 -5
- package/dist/flows/Termination/utils.d.ts +5 -5
- package/dist/flows/types.d.ts +3 -3
- package/dist/flows/utils.d.ts +1 -1
- package/dist/index.d.ts +9 -9
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internals.js +1 -1
- package/dist/{mutations-B7nzyRmB.d.ts → mutations-C051uRcC.d.ts} +1 -1
- package/dist/{remoteFlows-CnmojyGF.d.ts → remoteFlows-B9Nl1qjN.d.ts} +42 -18
- package/dist/styles.css +3 -0
- package/dist/styles.css.map +1 -0
- package/dist/styles.d.ts +2 -0
- package/dist/styles.js +2 -0
- package/dist/styles.js.map +1 -0
- package/dist/{types-DGKjcWLj.d.ts → types-Ci-EdBDb.d.ts} +3 -3
- package/dist/{types-DDcdRWu_.d.ts → types-Ckh2r3F3.d.ts} +2 -2
- package/dist/{types-D2tc0MbF.d.ts → types-DqaKYRUE.d.ts} +2 -2
- package/dist/{types-CbCzUTok.d.ts → types-Dx-2ocvG.d.ts} +6 -6
- package/dist/types-ZWIpiFgj.d.ts +4 -0
- package/dist/{types.gen-UyEyxhzQ.d.ts → types.gen-D2nbxMA0.d.ts} +1 -1
- package/package.json +18 -3
- package/dist/chunk-2SO4LW7V.js.map +0 -1
- package/dist/chunk-6YXSWOKH.js +0 -2
- package/dist/chunk-6YXSWOKH.js.map +0 -1
- package/dist/chunk-7WVNWNM2.js +0 -2
- package/dist/chunk-7WVNWNM2.js.map +0 -1
- package/dist/chunk-BIQPVUM2.js +0 -2
- package/dist/chunk-BIQPVUM2.js.map +0 -1
- package/dist/chunk-BZUYUGQF.js +0 -2
- package/dist/chunk-BZUYUGQF.js.map +0 -1
- package/dist/chunk-FLNGPYQ2.js.map +0 -1
- package/dist/chunk-FLXY4CUE.js +0 -2
- package/dist/chunk-FLXY4CUE.js.map +0 -1
- package/dist/chunk-FXRIYGSV.js +0 -2
- package/dist/chunk-FXRIYGSV.js.map +0 -1
- package/dist/chunk-LZGN6WCB.js +0 -2
- package/dist/chunk-LZGN6WCB.js.map +0 -1
- package/dist/chunk-MDDI5GLL.js +0 -2
- package/dist/chunk-MDDI5GLL.js.map +0 -1
- package/dist/chunk-N4232FEQ.js +0 -2
- package/dist/chunk-N4232FEQ.js.map +0 -1
- package/dist/chunk-NFUP6BFU.js.map +0 -1
- package/dist/chunk-NIGMIGF6.js +0 -2
- package/dist/chunk-NIGMIGF6.js.map +0 -1
- package/dist/chunk-NVTGX5FY.js.map +0 -1
- package/dist/chunk-OA7477F5.js +0 -2
- package/dist/chunk-OA7477F5.js.map +0 -1
- package/dist/chunk-QP3VWGCS.js +0 -2
- package/dist/chunk-QP3VWGCS.js.map +0 -1
- package/dist/chunk-SGFXAOTZ.js +0 -2
- package/dist/chunk-SGFXAOTZ.js.map +0 -1
- package/dist/chunk-STPJXT2A.js +0 -2
- package/dist/chunk-STPJXT2A.js.map +0 -1
- package/dist/chunk-V2L3UV7M.js +0 -2
- package/dist/chunk-V2L3UV7M.js.map +0 -1
- package/dist/chunk-XOA7GG4P.js +0 -2
- package/dist/chunk-ZOTFS35J.js +0 -2
- package/dist/chunk-ZOTFS35J.js.map +0 -1
- package/dist/types-Zg1n_9wh.d.ts +0 -3
- /package/dist/{chunk-W3JY7GB5.js.map → chunk-35RMJMSH.js.map} +0 -0
- /package/dist/{chunk-7Q3N2EY2.js.map → chunk-3CFU6LKQ.js.map} +0 -0
- /package/dist/{chunk-2TILNBMK.js.map → chunk-3F77NXWU.js.map} +0 -0
- /package/dist/{chunk-S7INFMJB.js.map → chunk-3Z6AFLXW.js.map} +0 -0
- /package/dist/{chunk-RNM46ZUE.js.map → chunk-44IOQYR2.js.map} +0 -0
- /package/dist/{chunk-23OYALRY.js.map → chunk-5LSHRCAR.js.map} +0 -0
- /package/dist/{chunk-SLD6QFPG.js.map → chunk-6S6H4NAQ.js.map} +0 -0
- /package/dist/{chunk-4ZNCIMTR.js.map → chunk-7COHIUGW.js.map} +0 -0
- /package/dist/{chunk-S6CCPQSN.js.map → chunk-A3GZSC5Z.js.map} +0 -0
- /package/dist/{chunk-RJO534HJ.js.map → chunk-A65WMO6K.js.map} +0 -0
- /package/dist/{chunk-EDP4HELT.js.map → chunk-BL7OYWNX.js.map} +0 -0
- /package/dist/{chunk-CDCKGIF5.js.map → chunk-DV6PCBAX.js.map} +0 -0
- /package/dist/{chunk-FFT7BPGS.js.map → chunk-EQOU2VPX.js.map} +0 -0
- /package/dist/{chunk-GMQ4GITD.js.map → chunk-ETYRNQJJ.js.map} +0 -0
- /package/dist/{chunk-OAPK6TR7.js.map → chunk-GCTHZSIN.js.map} +0 -0
- /package/dist/{chunk-NMHISCDF.js.map → chunk-GE5DH3UF.js.map} +0 -0
- /package/dist/{chunk-A5BCZOOQ.js.map → chunk-GHJBEQIR.js.map} +0 -0
- /package/dist/{chunk-XQL5I2GC.js.map → chunk-GP6PRZVX.js.map} +0 -0
- /package/dist/{chunk-KJZLQ77E.js.map → chunk-HDNBZ6CB.js.map} +0 -0
- /package/dist/{chunk-K5P2NRJ3.js.map → chunk-HZVYZQ3Z.js.map} +0 -0
- /package/dist/{chunk-FMDAJQPU.js.map → chunk-IBHNWMMB.js.map} +0 -0
- /package/dist/{chunk-FUMA5UUB.js.map → chunk-KKGRYDZA.js.map} +0 -0
- /package/dist/{chunk-3N4O7TE2.js.map → chunk-LG2LVO4C.js.map} +0 -0
- /package/dist/{chunk-X5GMCAS7.js.map → chunk-LJVV6MMB.js.map} +0 -0
- /package/dist/{chunk-E5PHO3SS.js.map → chunk-LKMPZJIW.js.map} +0 -0
- /package/dist/{chunk-5RM36L5X.js.map → chunk-MEZ7LYUK.js.map} +0 -0
- /package/dist/{chunk-NS4FRCEH.js.map → chunk-N6BBMT7W.js.map} +0 -0
- /package/dist/{chunk-T2URGIP3.js.map → chunk-NABPCULM.js.map} +0 -0
- /package/dist/{chunk-FXESMDKI.js.map → chunk-NDQ6UQFG.js.map} +0 -0
- /package/dist/{chunk-W2SYJLOE.js.map → chunk-OFI5KLQ4.js.map} +0 -0
- /package/dist/{chunk-XOA7GG4P.js.map → chunk-OKM7DRCF.js.map} +0 -0
- /package/dist/{chunk-TYCDD66L.js.map → chunk-OP72BS23.js.map} +0 -0
- /package/dist/{chunk-ZPN5N6BA.js.map → chunk-OXL3QGHT.js.map} +0 -0
- /package/dist/{chunk-VFZXJTBY.js.map → chunk-PZNXAOZH.js.map} +0 -0
- /package/dist/{chunk-I4XJ764Y.js.map → chunk-QIVDIOJG.js.map} +0 -0
- /package/dist/{chunk-JA7UP6GN.js.map → chunk-SXR333SU.js.map} +0 -0
- /package/dist/{chunk-C74N2AWG.js.map → chunk-UA6MNQLD.js.map} +0 -0
- /package/dist/{chunk-26JXMVXY.js.map → chunk-VBO75DXV.js.map} +0 -0
- /package/dist/{chunk-XRFBLWLZ.js.map → chunk-VXA6RPA5.js.map} +0 -0
- /package/dist/{chunk-2VW77NBC.js.map → chunk-XRI6PRXK.js.map} +0 -0
- /package/dist/{chunk-5KPB3KN7.js.map → chunk-Z2WV73EX.js.map} +0 -0
- /package/dist/{chunk-BHYFPY64.js.map → chunk-Z6TCBVRG.js.map} +0 -0
- /package/dist/{chunk-LE4O6V7D.js.map → chunk-ZYRGEEPU.js.map} +0 -0
|
@@ -1688,4 +1688,4 @@ type PostAutomatableContractAmendmentErrors = {
|
|
|
1688
1688
|
};
|
|
1689
1689
|
type PostAutomatableContractAmendmentError = PostAutomatableContractAmendmentErrors[keyof PostAutomatableContractAmendmentErrors];
|
|
1690
1690
|
|
|
1691
|
-
export type { CreateContractEligibilityParams as A, BadRequestResponse as B, ContractAmendmentAutomatableResponse as C, TerminationDetailsParams as D, Employment as E, ForbiddenResponse as F, TimeoffStatus as G, TimeoffType as H, ListLeavePoliciesSummaryResponse as I, MagicLinkResponse as J, MagicLinkParams as K, ListTimeoffResponse as L,
|
|
1691
|
+
export type { CreateContractEligibilityParams as A, BadRequestResponse as B, ContractAmendmentAutomatableResponse as C, TerminationDetailsParams as D, Employment as E, ForbiddenResponse as F, TimeoffStatus as G, TimeoffType as H, ListLeavePoliciesSummaryResponse as I, MagicLinkResponse as J, MagicLinkParams as K, ListTimeoffResponse as L, MinimalRegion as M, NotFoundResponse as N, OffboardingResponse as O, PostCreateContractAmendmentError as P, CreateOffboardingParams as Q, RequestError as R, SuccessResponse as S, TooManyRequestsResponse as T, UnprocessableEntityResponse as U, ValidationError as V, Currency as W, PayrollCalendarEor as X, HelpCenterArticle as Y, UnauthorizedResponse as a, ContractAmendmentResponse as b, PostAutomatableContractAmendmentError as c, CostCalculatorEstimateResponse as d, CostCalculatorEstimatePdfResponse as e, CostCalculatorEstimateParams as f, CostCalculatorEstimateCsvResponse as g, SignContractDocument as h, File as i, ContractorSubscriptionsSummary as j, ManageContractorPlusSubscriptionOperationsParams as k, CreateContractDocumentResponse as l, CreateContractDocument as m, MinimalCountry as n, EmploymentTermType as o, CostCalculatorEmployment as p, PostCreateEstimationError as q, EmploymentCreationResponse as r, Company as s, ConflictResponse as t, EmploymentCreateParams as u, EmploymentResponse as v, EmploymentFullParams as w, UnifiedEmploymentUpsertBenefitOffersRequest as x, ConvertCurrencyResponse as y, ConvertCurrencyParams as z };
|
package/package.json
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remoteoss/remote-flows",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
|
+
"repository": {
|
|
5
|
+
"type": "git",
|
|
6
|
+
"url": "https://github.com/remoteoss/remote-flows.git"
|
|
7
|
+
},
|
|
4
8
|
"scripts": {
|
|
5
9
|
"build": "NODE_ENV=production tsup",
|
|
6
10
|
"ci": "npm run build && npm run check-format && npm run check-exports && npm run lint && npm run type-check && npm run test",
|
|
7
|
-
"check-exports": "attw --pack . --ignore-rules=cjs-resolves-to-esm --exclude-entrypoints index.css --profile node16",
|
|
11
|
+
"check-exports": "attw --pack . --ignore-rules=cjs-resolves-to-esm --exclude-entrypoints index.css styles.css --profile node16",
|
|
8
12
|
"check-format": "prettier --check .",
|
|
9
13
|
"dev": "NODE_OPTIONS='--max-old-space-size=8192' NODE_ENV=development tsup --watch",
|
|
10
14
|
"build:reset": "postcss src/styles/reset.css -o ./example/src/css/reset.css",
|
|
@@ -20,8 +24,11 @@
|
|
|
20
24
|
"size:badge": "tsx scripts/update-size-badge.ts",
|
|
21
25
|
"type-check": "tsc --noEmit"
|
|
22
26
|
},
|
|
27
|
+
"sideEffects": [
|
|
28
|
+
"**/*.css"
|
|
29
|
+
],
|
|
23
30
|
"engines": {
|
|
24
|
-
"node": ">=
|
|
31
|
+
"node": ">=24"
|
|
25
32
|
},
|
|
26
33
|
"type": "module",
|
|
27
34
|
"main": "dist/index.js",
|
|
@@ -52,6 +59,14 @@
|
|
|
52
59
|
"import": "./dist/index.css"
|
|
53
60
|
},
|
|
54
61
|
"default": "./dist/index.css"
|
|
62
|
+
},
|
|
63
|
+
"./styles": {
|
|
64
|
+
"import": "./dist/styles.js",
|
|
65
|
+
"default": "./dist/styles.js"
|
|
66
|
+
},
|
|
67
|
+
"./styles.css": {
|
|
68
|
+
"import": "./dist/styles.css",
|
|
69
|
+
"default": "./dist/styles.css"
|
|
55
70
|
}
|
|
56
71
|
},
|
|
57
72
|
"files": [
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/files.ts","../src/components/form/utils.ts"],"sourcesContent":["const toBase64 = (file: File): Promise<string> => {\n return new Promise<string>((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => resolve(reader.result as string);\n reader.onerror = (error) => reject(error);\n });\n};\n\nexport const convertFilesToBase64 = async (files: File[]) => {\n const base64Files = await Promise.all(\n files.map(async (file) => {\n const base64 = await toBase64(file);\n return {\n ...file,\n name: file.name,\n size: file.size,\n type: file.type,\n content: base64.split(',')[1],\n };\n }),\n );\n return base64Files;\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Field } from '@/src/flows/types';\nimport { $TSFixMe, Fields } from '@remoteoss/json-schema-form-old';\nimport { convertFilesToBase64 } from '@/src/lib/files';\nimport { addBusinessDays, isWeekend, nextMonday } from 'date-fns';\nimport get from 'lodash.get';\n\nconst textInputTypes = {\n TEXT: 'text',\n TEXTAREA: 'textarea',\n NUMBER: 'number',\n SELECT: 'select',\n COUNTRIES: 'countries',\n TEL: 'tel',\n EMAIL: 'email',\n MONEY: 'money',\n DATE: 'date',\n DATE_RANGE: 'date-range',\n CURRENCIES: 'currencies',\n TIME: 'time',\n} as const;\n\nconst checkboxTypes = {\n CHECKBOX: 'checkbox',\n ACK_CHECK: 'ack-check',\n} as const;\n\nconst supportedTypes = {\n FILE: 'file',\n RADIO: 'radio',\n /** @deprecated */\n RADIO_CARD: 'radio-card',\n GROUP_ARRAY: 'group-array',\n EXTRA: 'extra',\n STATEMENT: 'statement',\n HIDDEN: 'hidden',\n FIELDSET: 'fieldset',\n FIELDSET_FLAT: 'fieldset-flat',\n WORK_SCHEDULE: 'work-schedule',\n WORK_WEEK_SCHEDULE: 'work-week-schedule',\n /** @deprecated we still display benefits in read-only contract details view, but never in any form */\n BENEFITS: 'benefits',\n SIGNATURE: 'signature',\n SELECT_MULTIPLE: 'select-multiple',\n ...textInputTypes,\n ...checkboxTypes,\n} as const;\n\nfunction round(value: number): number {\n return Math.round((value + Number.EPSILON) * 100) / 100;\n}\n\nfunction convertToValidCost(value: string) {\n return parseFloat(value.replace(/,/g, ''));\n}\n\nexport function convertToCents(\n amount?: number | string | string[] | null | boolean,\n) {\n if (\n amount == null ||\n amount === '' ||\n Number.isNaN(amount) ||\n Array.isArray(amount) ||\n typeof amount === 'boolean'\n ) {\n return null;\n }\n\n let validAmount: number;\n\n if (typeof amount === 'string') {\n validAmount = convertToValidCost(amount);\n } else {\n validAmount = amount;\n }\n\n return round(validAmount * 100);\n}\n\nexport function convertFromCents(amount?: number | string | null) {\n if (amount == null || Number.isNaN(amount)) return null;\n\n let normalizedValue: number;\n\n if (typeof amount === 'string') {\n normalizedValue = convertToValidCost(amount || '0');\n } else {\n normalizedValue = amount;\n }\n\n return round(normalizedValue / 100);\n}\n\nconst trimStringValues = (values: Record<string, any>) =>\n Object.entries(values || {}).reduce<Record<string, any>>(\n (result, [key, value]) => {\n if (Array.isArray(value)) {\n // If the value is an array, recursively process each element\n result[key] = value.map((item) =>\n typeof item === 'object' && item !== null\n ? trimStringValues(item)\n : typeof item === 'string'\n ? item.trim()\n : item,\n );\n } else if (typeof value === 'object' && value !== null) {\n // If the value is an object, recursively process it\n result[key] = trimStringValues(value);\n } else {\n // Otherwise, trim the string or keep the value as is\n result[key] = typeof value === 'string' ? value.trim() : value;\n }\n return result;\n },\n {},\n );\n\n/**\n * Given a list of form values, modify the ones that are readOnly,\n * based on their field config, by adding its defaultValue.\n * This is needed to support readOnly fields that are also conditional\n * based on the \"pivotName\" workaround.\n * @param {Object} values - List with form values { name: value }.\n * @param {Array} fields - Respective form fields configuration.\n */\nfunction prefillReadOnlyFields(values: Record<string, any>, fields: any[]) {\n const newValues: Record<string, any> = {};\n\n fields.forEach((field) => {\n const fieldName = field.name;\n\n if (\n !Object.prototype.hasOwnProperty.call(values, fieldName!) &&\n !(\n field.inputType === supportedTypes.FIELDSET &&\n field.valueGroupingDisabled\n )\n )\n return;\n\n if (\n field.inputType === supportedTypes.FIELDSET &&\n field.valueGroupingDisabled\n ) {\n Object.assign(newValues, prefillReadOnlyFields(values, field.fields));\n return;\n }\n\n if (field.readOnly && field.defaultValue) {\n newValues[fieldName!] = field.defaultValue;\n } else {\n newValues[fieldName!] = values[fieldName!];\n }\n });\n\n return newValues;\n}\n/**\n * Recursively extracts fieldsets' fields values and maps them to the field name\n * For nested fields that are fieldsets with valueGroupingDisabled, the values\n * are extracted one level up\n *\n * @param {Array} fields - Fieldset fields configuration.\n * @param {Object} formValues - List with form values { name: value }.\n * @return {Object} – Raw form values mapped to the field name\n */\nfunction extractFieldsetFieldsValues(\n fields: any[],\n formValues: Record<string, unknown>,\n) {\n return fields.reduce<Record<string, any>>((nestedAcc, subField) => {\n const isFieldsetValueGroupingDisabled =\n subField.inputType === supportedTypes.FIELDSET &&\n subField.valueGroupingDisabled;\n\n if (isFieldsetValueGroupingDisabled) {\n Object.assign(\n nestedAcc,\n extractFieldsetFieldsValues(subField.fields, formValues),\n );\n } else if (\n Object.prototype.hasOwnProperty.call(formValues, subField.name!)\n ) {\n nestedAcc[subField.name!] = formValues[subField.name!];\n }\n\n return nestedAcc;\n }, {});\n}\n\nexport const fieldTypesTransformations: Record<string, any> = {\n [supportedTypes.COUNTRIES]: {\n /**\n * @param {String[] | { name: String }[]} value\n * - Excepted: array of strings.\n * - Edge cases: array of objects. (when using dangerousTransformValue)\n * @returns {String[]} - List of countries\n * @example expected: ['Peru', 'Germany'] -> ['Peru', 'Germany']\n * @example edge cases: [{name: 'Peru'}, {name: 'Germany'}] -> ['Peru', 'Germany']\n */\n transformValueToAPI:\n (field: any) => (selectedCountries: string[] | { name: string }[]) => {\n if (!field.multiple || typeof selectedCountries === 'string') {\n return selectedCountries;\n }\n // NOTE: The value should be an array of strings, however legacy data can come as\n // an array of country objects. So, we always send an array of strings to normalize\n // the data (eg old form values being modified) until DB migration is done !5667\n return selectedCountries.map((option) =>\n typeof option === 'string' ? option : option.name,\n );\n },\n /**\n * Used for react-select, where the country selected is transformed\n * before saving on Formik state. Supports both solo and multi select\n * @param {Object|Object[]} selectedCountry[] - Current selected options\n * @param {String} selectedCountry[].value\n * @param {String} selectedCountry[].name\n * @param {String} selectedCountry[].label\n * @returns {String[]} - List of countries selected\n * @example\n * [{ value: 'Hungria' }] -> ['Hungria']\n */\n transformValue: (selectedCountry: any | any[]) => {\n // name or label are used in dragon. value is used in json-schema-form\n // TODO: it should be the same everywhere — read more at !5667\n const getCountryValue = (opt: any) =>\n opt?.name || opt?.value || opt?.label;\n return Array.isArray(selectedCountry)\n ? selectedCountry.map(getCountryValue) // support multi countries\n : getCountryValue(selectedCountry) || ''; // Fallback to '' in case user removes all countries\n },\n },\n [supportedTypes.NUMBER]: {\n transformValueToAPI: () => (value: string) => {\n // this prevents values with letters such as \"2r\" from being considered valid\n // if the input is invalid, number().cast will return NaN\n const castValue = Number(value);\n\n if (Number.isNaN(castValue)) {\n return value;\n }\n\n return castValue;\n },\n },\n [supportedTypes.MONEY]: {\n transformValueFromAPI: () => (value: string | number) =>\n convertFromCents(value) ?? '',\n transformValueToAPI: () => convertToCents,\n },\n [supportedTypes.RADIO]: {\n transformValueToAPI: (field: any) => (value: string) => {\n if (field.transformToBool) {\n return value === 'yes';\n }\n return value;\n },\n },\n [supportedTypes.CHECKBOX]: {\n transformValueToAPI: (field: any) => (value: string | boolean) => {\n if (value === undefined) {\n return false;\n }\n\n if (field.const && value === true) {\n return field.const;\n }\n return value;\n },\n },\n [supportedTypes.SELECT]: {\n /**\n * Used for react-select, where the value is transformed\n * before saving on Formik state.\n * @param {Object | Object[]} option - Object structure with options config\n * @param {String} option[].value - Key for the API\n * @param {Array} this.options[].label - Friendly label\n * @example\n * [{ value: '1', label: 'One' }, { value: '2', label: 'Two' }] -> [\"One\", \"Two\"]\n * { value: '1', label: 'One' } -> \"One\"\n * {} -> \"\"\n */\n transformValue: (option: any | any[]) =>\n Array.isArray(option)\n ? option.map((opt) => opt.value) // multi-options\n : (option?.value ?? ''), // Fallback to '' in case user removes all options,\n },\n [supportedTypes.FILE]: {\n transformValueToAPI: () => async (files: File[]) => {\n if (!files) {\n return null;\n }\n\n return await convertFilesToBase64(files);\n },\n },\n};\nexport async function parseFormValuesToAPI(\n formValues: Record<string, any> = {},\n fields: any[],\n) {\n const filteredFields = fields.filter(\n (field) =>\n formValues[field.name!] ||\n (field.inputType === supportedTypes.FIELDSET &&\n field.valueGroupingDisabled),\n );\n\n const parsedFieldsWithValues = await Promise.all(\n filteredFields.map(async (field) => {\n const acc: Record<string, any> = {};\n\n switch (field.inputType) {\n case supportedTypes.FIELDSET: {\n const fieldset = field;\n if (fieldset.valueGroupingDisabled) {\n const nestedFormValues = extractFieldsetFieldsValues(\n fieldset.fields,\n formValues,\n );\n\n Object.assign(\n acc,\n await parseFormValuesToAPI(nestedFormValues, fieldset.fields),\n );\n } else {\n const fieldsetValue = formValues[field.name!];\n\n // Filter out empty properties from fieldset objects\n // this code avoids sending department: {id: '1234', name: ''} or even department: {id: undefined, name: undefined}\n if (\n fieldsetValue &&\n typeof fieldsetValue === 'object' &&\n !Array.isArray(fieldsetValue)\n ) {\n const cleanedValue = Object.fromEntries(\n Object.entries(fieldsetValue).filter(([, value]) => {\n // Keep the property if it has a meaningful value\n return value !== '' && value !== null && value !== undefined;\n }),\n );\n\n acc[field.name!] =\n Object.keys(cleanedValue).length > 0\n ? await parseFormValuesToAPI(cleanedValue, fieldset.fields)\n : undefined;\n } else {\n acc[field.name!] = await parseFormValuesToAPI(\n fieldsetValue,\n fieldset.fields,\n );\n }\n }\n break;\n }\n\n case supportedTypes.TEXTAREA:\n case supportedTypes.TEXT:\n // Attempt to remove null bytes from form values - https://gitlab.com/remote-com/employ-starbase/tracker/-/issues/10670\n acc[field.name] = formValues[field.name].replace(/\\0/g, '');\n break;\n\n case supportedTypes.GROUP_ARRAY: {\n // NOTE: The field `name` in group arrays represents a path, but we only\n // need the last part of it which is represented by `nameKey`.\n const transformedFields = field?.fields?.().map((subField: any) => ({\n ...subField,\n name: subField.nameKey || '',\n }));\n\n const parsedFieldValues = await Promise.all(\n formValues[field.name]?.map((fieldValues: Record<string, any>) =>\n parseFormValuesToAPI(fieldValues, transformedFields),\n ) || [],\n );\n\n acc[field.name] = parsedFieldValues;\n break;\n }\n\n case supportedTypes.EXTRA: {\n const extraField = field;\n if (extraField.includeValueToApi !== false) {\n const formValue = formValues[extraField.name];\n const fieldTransformValueToAPI =\n extraField?.transformValueToAPI ||\n fieldTypesTransformations[extraField.inputType]\n ?.transformValueToAPI;\n\n if (fieldTransformValueToAPI) {\n const result = fieldTransformValueToAPI(field)(formValue);\n // Await if it's a promise\n acc[extraField.name] =\n result instanceof Promise ? await result : result;\n break;\n }\n\n acc[extraField.name] = formValue;\n break;\n }\n acc[extraField.name] = undefined;\n break;\n }\n\n default: {\n const formValue = formValues[field.name];\n const fieldTransformValueToAPI =\n field?.transformValueToAPI ||\n fieldTypesTransformations[field.inputType]?.transformValueToAPI;\n\n if (fieldTransformValueToAPI) {\n const result = fieldTransformValueToAPI(field)(formValue);\n // Await if it's a promise - THIS IS THE KEY FIX\n acc[field.name] = result instanceof Promise ? await result : result;\n break;\n }\n acc[field.name] = formValue;\n break;\n }\n }\n\n if (field.forcedValue !== undefined) {\n acc[field.name!] = field.forcedValue;\n }\n\n return acc;\n }),\n );\n\n // Merge all accumulated objects\n return parsedFieldsWithValues.reduce(\n (acc, current) => ({ ...acc, ...current }),\n { ...formValues },\n );\n}\n\nfunction isFieldVisible(field: any, formValues: Record<string, unknown>) {\n if (field.visibilityCondition) {\n return field.visibilityCondition(formValues);\n }\n\n if (typeof field.isVisible !== 'undefined') {\n return Boolean(field.isVisible);\n }\n\n return true;\n}\n\nfunction applyFieldDynamicProperties(\n field: any,\n values: Record<string, unknown> | Record<string, unknown>[],\n) {\n if (field.calculateDynamicProperties) {\n return {\n ...field,\n ...(field.calculateDynamicProperties(values) || {}),\n };\n }\n\n return field;\n}\n\nfunction excludeValuesInvisible(\n values: any,\n fields: any[],\n keepTruthyInvisibleValues?: boolean,\n parentFieldKeyPath?: string,\n) {\n const valuesAsked: Record<string, any> = {};\n\n fields\n .map((field) => applyFieldDynamicProperties(field, values))\n .forEach((field) => {\n let fieldKeyPath = field.name;\n if (parentFieldKeyPath) {\n fieldKeyPath = fieldKeyPath\n ? `${parentFieldKeyPath}.${field.name}`\n : parentFieldKeyPath;\n }\n\n const valueOfField = get(values, fieldKeyPath!);\n\n // keepTruthyInvisibleValues: false/undefined -> remove invisible field\n // keepTruthyInvisibleValues: true -> keep invisible field if it has a value\n if (\n !isFieldVisible(field, values) &&\n !(keepTruthyInvisibleValues && !!valueOfField)\n ) {\n return;\n }\n\n if (field.meta?.ignoreValue) {\n return;\n }\n\n if (field.inputType === 'fieldset' && field.valueGroupingDisabled) {\n Object.assign(\n valuesAsked,\n excludeValuesInvisible(\n values,\n field.fields,\n keepTruthyInvisibleValues,\n fieldKeyPath,\n ),\n );\n } else if (Array.isArray(field.fields)) {\n valuesAsked[field.name!] = excludeValuesInvisible(\n values,\n field.fields,\n keepTruthyInvisibleValues,\n fieldKeyPath,\n );\n } else {\n if (valueOfField === undefined) {\n return;\n }\n valuesAsked[field.name!] = valueOfField;\n }\n });\n\n return valuesAsked;\n}\n\nfunction removeEmptyValues<T extends Record<string, any>>(\n obj: T,\n): Record<string, any> {\n return Object.fromEntries(\n Object.entries(obj).filter(\n ([, value]) => value !== undefined && value !== null && value !== '',\n ),\n );\n}\n\nfunction cleanUnderscoreFields(obj: Record<string, any>): Record<string, any> {\n if (Array.isArray(obj)) {\n return obj.map(cleanUnderscoreFields);\n }\n if (obj && typeof obj === 'object') {\n return Object.entries(obj).reduce(\n (acc, [key, value]) => {\n if (!key.startsWith('_')) {\n acc[key] = cleanUnderscoreFields(value);\n }\n return acc;\n },\n {} as Record<string, any>,\n );\n }\n return obj;\n}\n\nexport async function parseSubmitValues(\n formValues: Record<string, any>,\n fields: any[],\n config?: { keepInvisibleValues?: boolean },\n) {\n const visibleFormValues = config?.keepInvisibleValues\n ? formValues\n : excludeValuesInvisible(formValues, fields);\n const convertedFormValues = await parseFormValuesToAPI(\n visibleFormValues,\n fields,\n );\n const formValuesWithTrimmedStrings = trimStringValues(convertedFormValues);\n\n const formValuesWithUndefined = removeEmptyValues(\n formValuesWithTrimmedStrings,\n );\n\n const valuesWithReadOnly = prefillReadOnlyFields(\n formValuesWithUndefined,\n fields,\n );\n return cleanUnderscoreFields(valuesWithReadOnly);\n}\n\nexport async function parseJSFToValidate(\n formValues: Record<string, any>,\n fields: Fields,\n config: { isPartialValidation: boolean } = {\n isPartialValidation: false,\n },\n) {\n const valuesParsed = await parseSubmitValues(formValues, fields, {\n /* We cannot exclude invisible fields (excludeValuesInvisible) because\n they are needed for conditional fields validations */\n keepInvisibleValues: config?.isPartialValidation,\n });\n return valuesParsed;\n}\n\nfunction castFieldTo<T>(field: Field) {\n return field as unknown as T;\n}\n\nfunction getDefaultValueForType(type: string) {\n switch (type) {\n case supportedTypes.FILE:\n return undefined; // Allows fallback values in function declarations to be used\n default:\n return '';\n }\n}\n\nfunction getInitialDefaultValue(\n defaultValues: Record<string, any>,\n field: Field,\n) {\n // lodash get is needed because some values could be nested object, like billing address\n // use camelCase to support forms with fields in snake_case or kebab_case.\n const defaultFieldValue = get(defaultValues, field.name);\n const fieldTransformValueFromAPI =\n field?.transformValueFromAPI ||\n fieldTypesTransformations[field.inputType]?.transformValueFromAPI;\n\n if (fieldTransformValueFromAPI) {\n return fieldTransformValueFromAPI(field)(defaultFieldValue);\n }\n\n // TODO: We need to get rid of value as fn for json-schema. Related !5560\n const generatedValue =\n typeof field.value === 'function'\n ? field.value(defaultFieldValue, defaultValues)\n : null;\n\n // field.value is deprecated. should use \"default\" instead.\n const defaultValueDeprecated =\n typeof field.value !== 'function' ? field.value : null;\n const initialValueForCheckboxAsBool =\n castFieldTo<$TSFixMe>(field).checkboxValue === true\n ? defaultFieldValue || false\n : null;\n\n // nullish coalescing but excluding empty strings. (to support 0 (zero) as valid numbers)\n const excludeString = (val: any) => (val === '' ? undefined : val);\n\n return (\n excludeString(generatedValue) ??\n excludeString(defaultFieldValue) ??\n excludeString(defaultValueDeprecated) ??\n excludeString(field.default) ??\n initialValueForCheckboxAsBool ??\n getDefaultValueForType(field.inputType)\n );\n}\n\n/**\n * Get initial values for sub fields within fieldsets\n * @param {Object} field The form field\n * @param {Object} defaultValues The form default values\n * @param {String=} parentFieldKeyPath The path to the parent field using dot-notation\n * @returns {Object} The initial values for a fieldset\n */\nfunction getInitialSubFieldValues(\n field: $TSFixMe,\n defaultValues: Record<string, unknown>,\n parentFieldKeyPath?: string,\n) {\n const initialValue: Record<string, Record<string, unknown>> = {};\n\n let fieldKeyPath = field.name;\n\n if (parentFieldKeyPath) {\n fieldKeyPath = fieldKeyPath\n ? `${parentFieldKeyPath}.${fieldKeyPath}`\n : parentFieldKeyPath;\n }\n\n const subFields = field.fields;\n\n if (Array.isArray(subFields)) {\n const subFieldValues = {};\n\n subFields.forEach((subField) => {\n Object.assign(\n subFieldValues,\n getInitialSubFieldValues(subField, defaultValues, fieldKeyPath),\n );\n });\n\n if (\n field.inputType === supportedTypes.FIELDSET &&\n field.valueGroupingDisabled\n ) {\n Object.assign(initialValue, subFieldValues);\n } else {\n initialValue[field.name!] = subFieldValues;\n }\n } else {\n initialValue[field.name!] = getInitialDefaultValue(defaultValues, {\n ...field,\n // NOTE: To utilize the `get` function from `lodash` in `getInitialDefaultValue` correctly\n // we need to use the field path instead of just its name.\n name: fieldKeyPath,\n });\n }\n\n return initialValue;\n}\n\nexport function getInitialValues(\n fields: Fields,\n defaultValues: Record<string, unknown>,\n) {\n const initialValues: Record<string, unknown> = {};\n const defaultFieldValues = defaultValues;\n\n // loop over fields array\n // if prop does not exit in the initialValues object,\n // pluck off the name and value props and add it to the initialValues object;\n fields\n .map((field) => applyFieldDynamicProperties(field, defaultFieldValues))\n .forEach((field) => {\n switch (field.inputType) {\n case supportedTypes.FIELDSET: {\n if (field.valueGroupingDisabled) {\n Object.assign(\n initialValues,\n getInitialValues(field.fields, defaultFieldValues),\n );\n } else {\n const subFieldValues = getInitialSubFieldValues(\n field,\n defaultFieldValues,\n );\n Object.assign(initialValues, subFieldValues);\n }\n break;\n }\n default: {\n if (!initialValues[field.name]) {\n initialValues[field.name] = getInitialDefaultValue(\n defaultFieldValues,\n field,\n );\n }\n break;\n }\n }\n });\n\n return initialValues;\n}\n\n/**\n * Wraps fields listed in fieldsets with a fieldset field.\n * @param fields - Complete fields list.\n * @param fieldsets - fields list to be wrapped in a fieldset field.\n * @param values - Values for each field.\n * @returns The fields with the fieldsets wrapped.\n */\nexport function getFieldsWithFlatFieldsets({\n fields = [],\n fieldsets = {},\n values,\n}: {\n fields: any[];\n fieldsets: Record<string, { propertiesByName: string[]; title: string }>;\n values: Record<string, unknown>;\n}) {\n const flatFieldsetsKeys = Object.keys(fieldsets);\n\n if (!flatFieldsetsKeys?.length) {\n return fields;\n }\n\n const flatFieldsetsFieldNames = new Set(\n flatFieldsetsKeys.flatMap(\n (flatFieldsetKey) => fieldsets[flatFieldsetKey]?.propertiesByName ?? [],\n ),\n );\n\n const flatFieldsetsWithFields = flatFieldsetsKeys.map((flatFieldsetKey) => {\n const { propertiesByName: flatFieldsetFields = [], ...rest } =\n fieldsets[flatFieldsetKey];\n\n const childFields = flatFieldsetFields\n .map((name) => fields.find((f) => f.name === name))\n .filter((field): field is any => !!field);\n\n return {\n ...rest,\n name: flatFieldsetKey,\n type: 'fieldset-flat',\n inputType: 'fieldset-flat',\n fields: childFields,\n label: fieldsets[flatFieldsetKey].title,\n // Hide the fieldset if none of the children fields are visible.\n isVisible: childFields\n .map((childField) => applyFieldDynamicProperties(childField, values))\n .some((childField) => isFieldVisible(childField, values)),\n };\n });\n\n const sortedFields = flatFieldsetsWithFields.reduce((accumulator, field) => {\n const accumulatedFieldsSorted = [...accumulator];\n\n /**\n * We place the flat fieldset at the original position of its first field.\n * If no field is found, we move it to the end.\n */\n const fieldsetPosition = field.fields[0]\n ? accumulator.findIndex(\n (accumulatorItem) => accumulatorItem.name === field.fields[0].name,\n )\n : accumulator.length;\n\n accumulatedFieldsSorted.splice(\n fieldsetPosition,\n 0,\n field as unknown as any,\n );\n\n return accumulatedFieldsSorted;\n }, fields);\n\n const filteredFields = sortedFields.filter(\n (field) => !flatFieldsetsFieldNames.has(field.name!),\n );\n\n return filteredFields;\n}\n\nexport function enableAckFields(\n fields: Fields,\n values: Record<string, unknown>,\n) {\n let result = values;\n fields.forEach((field) => {\n if ('const' in field) {\n result = Object.fromEntries(\n Object.entries(values).map(([k, v]) => {\n if (k === field.name) {\n return [k, field.const];\n }\n return [k, v];\n }),\n );\n }\n });\n return result;\n}\n\n/**\n * Get the minimum start date for the onboarding process.\n * @param minOnBoardingTime\n * @returns Date\n */\nexport function getMinStartDate(minOnBoardingTime: number) {\n const today = new Date();\n\n // Make sure our base date is UTC and set the time to 00:00:00\n today.setDate(today.getUTCDate());\n today.setHours(0, 0, 0, 0);\n\n // The + 1 ensures you get the full preparation time before the employee can actually start working.\n // It's the difference between \"preparation completes on this day\" vs \"earliest possible start date after preparation\".\n const minDate = addBusinessDays(today, minOnBoardingTime + 1);\n return isWeekend(minDate) ? nextMonday(minDate) : minDate;\n}\n"],"mappings":"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","names":["toBase64","__name","file","resolve","reject","reader","error","convertFilesToBase64","files","base64","addBusinessDays","isWeekend","nextMonday","get","textInputTypes","checkboxTypes","supportedTypes","round","value","__name","convertToValidCost","convertToCents","amount","validAmount","convertFromCents","normalizedValue","trimStringValues","values","result","key","item","prefillReadOnlyFields","fields","newValues","field","fieldName","extractFieldsetFieldsValues","formValues","nestedAcc","subField","fieldTypesTransformations","selectedCountries","option","selectedCountry","getCountryValue","opt","castValue","files","convertFilesToBase64","parseFormValuesToAPI","filteredFields","acc","fieldset","nestedFormValues","fieldsetValue","cleanedValue","transformedFields","parsedFieldValues","fieldValues","extraField","formValue","fieldTransformValueToAPI","current","isFieldVisible","applyFieldDynamicProperties","excludeValuesInvisible","keepTruthyInvisibleValues","parentFieldKeyPath","valuesAsked","fieldKeyPath","valueOfField","get","removeEmptyValues","obj","cleanUnderscoreFields","parseSubmitValues","config","visibleFormValues","convertedFormValues","formValuesWithTrimmedStrings","formValuesWithUndefined","valuesWithReadOnly","parseJSFToValidate","getDefaultValueForType","type","supportedTypes","__name","getInitialDefaultValue","defaultValues","field","defaultFieldValue","get","fieldTransformValueFromAPI","fieldTypesTransformations","generatedValue","defaultValueDeprecated","initialValueForCheckboxAsBool","excludeString","val","getInitialSubFieldValues","parentFieldKeyPath","initialValue","fieldKeyPath","subFields","subFieldValues","subField","getInitialValues","fields","initialValues","defaultFieldValues","applyFieldDynamicProperties","getFieldsWithFlatFieldsets","fieldsets","values","flatFieldsetsKeys","flatFieldsetsFieldNames","flatFieldsetKey","flatFieldsetFields","rest","childFields","name","f","childField","isFieldVisible","accumulator","accumulatedFieldsSorted","fieldsetPosition","accumulatorItem","enableAckFields","result","k","v","getMinStartDate","minOnBoardingTime","today","minDate","addBusinessDays","isWeekend","nextMonday"]}
|
package/dist/chunk-6YXSWOKH.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{b as m}from"./chunk-KSHK3ZPX.js";import{b as s}from"./chunk-KQPDXXG3.js";import{b as i}from"./chunk-LJGCFFAT.js";import{a as e}from"./chunk-L3Z2G32A.js";import{a as u}from"./chunk-P37U34EQ.js";import{jsx as l}from"react/jsx-runtime";function b({children:o,...t}){let{formId:n}=m(),{components:C}=s(),r=C?.button;return r?l(r,{...t,form:n,children:o}):l(i,{...t,type:"submit",className:e("RemoteFlows__CostCalculatorForm__SubmitButton",t.className),form:n,children:o})}u(b,"CostCalculatorSubmitButton");export{b as a};
|
|
2
|
-
//# sourceMappingURL=chunk-6YXSWOKH.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/CostCalculator/CostCalculatorSubmitButton.tsx"],"sourcesContent":["import { Button } from '@/src/components/ui/button';\nimport { ButtonHTMLAttributes, PropsWithChildren } from 'react';\nimport { useCostCalculatorContext } from './context';\nimport { cn } from '@/src/lib/utils';\nimport { useFormFields } from '@/src/context';\n\nexport function CostCalculatorSubmitButton({\n children,\n ...props\n}: PropsWithChildren<ButtonHTMLAttributes<HTMLButtonElement>> &\n Record<string, unknown>) {\n const { formId } = useCostCalculatorContext();\n const { components } = useFormFields();\n\n const CustomButton = components?.button;\n if (CustomButton) {\n return (\n <CustomButton {...props} form={formId}>\n {children}\n </CustomButton>\n );\n }\n\n return (\n <Button\n {...props}\n type='submit'\n className={cn(\n 'RemoteFlows__CostCalculatorForm__SubmitButton',\n props.className,\n )}\n form={formId}\n >\n {children}\n </Button>\n );\n}\n"],"mappings":"wMAiBM,cAAAA,MAAA,oBAXC,SAASC,EAA2B,CACzC,SAAAC,EACA,GAAGC,CACL,EAC2B,CACzB,GAAM,CAAE,OAAAC,CAAO,EAAIC,EAAyB,EACtC,CAAE,WAAAC,CAAW,EAAIC,EAAc,EAE/BC,EAAeF,GAAY,OACjC,OAAIE,EAEAR,EAACQ,EAAA,CAAc,GAAGL,EAAO,KAAMC,EAC5B,SAAAF,EACH,EAKFF,EAACS,EAAA,CACE,GAAGN,EACJ,KAAK,SACL,UAAWO,EACT,gDACAP,EAAM,SACR,EACA,KAAMC,EAEL,SAAAF,EACH,CAEJ,CA9BgBS,EAAAV,EAAA","names":["jsx","CostCalculatorSubmitButton","children","props","formId","useCostCalculatorContext","components","useFormFields","CustomButton","Button","cn","__name"]}
|
package/dist/chunk-7WVNWNM2.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{b as p}from"./chunk-TOA3JILU.js";import{d as u}from"./chunk-23OYALRY.js";import{a as l}from"./chunk-2YTBWEC7.js";import{b as d}from"./chunk-KQPDXXG3.js";import{b as c}from"./chunk-LJGCFFAT.js";import{a as e}from"./chunk-P37U34EQ.js";import{jsx as y}from"react/jsx-runtime";function k({onSubmit:f,onSuccess:E,onError:i,render:s,...o}){let{components:v}=d(),{contractorOnboardingBag:r}=p(),n=u(),{mutateAsync:b}=l(n),m=e(async()=>{try{if(await f?.(),r.employmentId){let t=await b({employment_id:r.employmentId});if(t.data){await E?.({data:t.data,employmentStatus:"invited"}),r.refetchEmployment();return}t.error&&i?.({error:t.error,rawError:t.rawError,fieldErrors:[]})}}catch(t){i?.({error:t,rawError:t,fieldErrors:[]})}},"handleSubmit"),a=v?.button;return a?y(a,{...o,disabled:n.isPending||o.disabled,onClick:t=>{m(),o.onClick?.(t)},children:s({employmentStatus:"invited"})}):y(c,{...o,disabled:n.isPending||o.disabled,onClick:()=>{m()},children:s({employmentStatus:"invited"})})}e(k,"OnboardingInvite");export{k as a};
|
|
2
|
-
//# sourceMappingURL=chunk-7WVNWNM2.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/ContractorOnboarding/components/OnboardingInvite.tsx"],"sourcesContent":["import { ButtonHTMLAttributes, ReactNode } from 'react';\nimport { useEmploymentInvite } from '@/src/flows/Onboarding/api';\nimport { Button } from '@/src/components/ui/button';\nimport { FieldError, mutationToPromise } from '@/src/lib/mutations';\nimport { SuccessResponse } from '@/src/client';\nimport { useFormFields } from '@/src/context';\nimport { useContractorOnboardingContext } from '@/src/flows/ContractorOnboarding/context';\n\nexport type OnboardingInviteProps = Omit<\n ButtonHTMLAttributes<HTMLButtonElement>,\n 'onError'\n> & {\n onSuccess?: ({\n data,\n employmentStatus,\n }: {\n data: SuccessResponse;\n employmentStatus: 'invited';\n }) => void | Promise<void>;\n onError?: ({\n error,\n rawError,\n fieldErrors,\n }: {\n error: Error;\n rawError: Record<string, unknown>;\n fieldErrors: FieldError[];\n }) => void;\n onSubmit?: () => void | Promise<void>;\n render: (props: { employmentStatus: 'invited' }) => ReactNode;\n} & Record<string, unknown>;\n\nexport function OnboardingInvite({\n onSubmit,\n onSuccess,\n onError,\n render,\n ...props\n}: OnboardingInviteProps) {\n const { components } = useFormFields();\n const { contractorOnboardingBag } = useContractorOnboardingContext();\n const employmentInviteMutation = useEmploymentInvite();\n\n const { mutateAsync: employmentInviteMutationAsync } = mutationToPromise(\n employmentInviteMutation,\n );\n\n const handleSubmit = async () => {\n try {\n await onSubmit?.();\n if (contractorOnboardingBag.employmentId) {\n const response = await employmentInviteMutationAsync({\n employment_id: contractorOnboardingBag.employmentId,\n });\n if (response.data) {\n await onSuccess?.({\n data: response.data as SuccessResponse,\n employmentStatus: 'invited',\n });\n contractorOnboardingBag.refetchEmployment();\n return;\n }\n if (response.error) {\n onError?.({\n error: response.error,\n rawError: response.rawError,\n fieldErrors: [],\n });\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 CustomButton = components?.button;\n if (CustomButton) {\n return (\n <CustomButton\n {...props}\n disabled={employmentInviteMutation.isPending || props.disabled}\n onClick={(evt) => {\n handleSubmit();\n props.onClick?.(evt);\n }}\n >\n {render({\n employmentStatus: 'invited',\n })}\n </CustomButton>\n );\n }\n\n return (\n <Button\n {...props}\n disabled={employmentInviteMutation.isPending || props.disabled}\n onClick={() => {\n handleSubmit();\n }}\n >\n {render({\n employmentStatus: 'invited',\n })}\n </Button>\n );\n}\n"],"mappings":"gPAkFM,cAAAA,MAAA,oBAlDC,SAASC,EAAiB,CAC/B,SAAAC,EACA,UAAAC,EACA,QAAAC,EACA,OAAAC,EACA,GAAGC,CACL,EAA0B,CACxB,GAAM,CAAE,WAAAC,CAAW,EAAIC,EAAc,EAC/B,CAAE,wBAAAC,CAAwB,EAAIC,EAA+B,EAC7DC,EAA2BC,EAAoB,EAE/C,CAAE,YAAaC,CAA8B,EAAIC,EACrDH,CACF,EAEMI,EAAeC,EAAA,SAAY,CAC/B,GAAI,CAEF,GADA,MAAMd,IAAW,EACbO,EAAwB,aAAc,CACxC,IAAMQ,EAAW,MAAMJ,EAA8B,CACnD,cAAeJ,EAAwB,YACzC,CAAC,EACD,GAAIQ,EAAS,KAAM,CACjB,MAAMd,IAAY,CAChB,KAAMc,EAAS,KACf,iBAAkB,SACpB,CAAC,EACDR,EAAwB,kBAAkB,EAC1C,MACF,CACIQ,EAAS,OACXb,IAAU,CACR,MAAOa,EAAS,MAChB,SAAUA,EAAS,SACnB,YAAa,CAAC,CAChB,CAAC,CAEL,CACF,OAASC,EAAgB,CACvBd,IAAU,CACR,MAAOc,EACP,SAAUA,EACV,YAAa,CAAC,CAChB,CAAC,CACH,CACF,EA9BqB,gBAgCfC,EAAeZ,GAAY,OACjC,OAAIY,EAEAnB,EAACmB,EAAA,CACE,GAAGb,EACJ,SAAUK,EAAyB,WAAaL,EAAM,SACtD,QAAUc,GAAQ,CAChBL,EAAa,EACbT,EAAM,UAAUc,CAAG,CACrB,EAEC,SAAAf,EAAO,CACN,iBAAkB,SACpB,CAAC,EACH,EAKFL,EAACqB,EAAA,CACE,GAAGf,EACJ,SAAUK,EAAyB,WAAaL,EAAM,SACtD,QAAS,IAAM,CACbS,EAAa,CACf,EAEC,SAAAV,EAAO,CACN,iBAAkB,SACpB,CAAC,EACH,CAEJ,CA9EgBW,EAAAf,EAAA","names":["jsx","OnboardingInvite","onSubmit","onSuccess","onError","render","props","components","useFormFields","contractorOnboardingBag","useContractorOnboardingContext","employmentInviteMutation","useEmploymentInvite","employmentInviteMutationAsync","mutationToPromise","handleSubmit","__name","response","error","CustomButton","evt","Button"]}
|
package/dist/chunk-BIQPVUM2.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{l as V}from"./chunk-23OYALRY.js";import{a as F}from"./chunk-KGKDSOER.js";import{b as K}from"./chunk-KQPDXXG3.js";import{c as J,l as U}from"./chunk-66N57DKF.js";import{a as t,b as d,c as _e}from"./chunk-P37U34EQ.js";var L=d((qt,X)=>{"use strict";function ke(e){var n=typeof e;return e!=null&&(n=="object"||n=="function")}t(ke,"isObject");X.exports=ke});var Q=d(($t,z)=>{"use strict";var we=typeof global=="object"&&global&&global.Object===Object&&global;z.exports=we});var D=d((Mt,Y)=>{"use strict";var Fe=Q(),Le=typeof self=="object"&&self&&self.Object===Object&&self,De=Fe||Le||Function("return this")();Y.exports=De});var ee=d((Pt,Z)=>{"use strict";var Ae=D(),Ne=t(function(){return Ae.Date.now()},"now");Z.exports=Ne});var ne=d((kt,te)=>{"use strict";var We=/\s/;function Be(e){for(var n=e.length;n--&&We.test(e.charAt(n)););return n}t(Be,"trimmedEndIndex");te.exports=Be});var oe=d((Ft,re)=>{"use strict";var He=ne(),Ge=/^\s+/;function Je(e){return e&&e.slice(0,He(e)+1).replace(Ge,"")}t(Je,"baseTrim");re.exports=Je});var A=d((Dt,ie)=>{"use strict";var Ke=D(),Ue=Ke.Symbol;ie.exports=Ue});var ue=d((At,ce)=>{"use strict";var se=A(),ae=Object.prototype,Ve=ae.hasOwnProperty,Xe=ae.toString,O=se?se.toStringTag:void 0;function ze(e){var n=Ve.call(e,O),r=e[O];try{e[O]=void 0;var i=!0}catch{}var a=Xe.call(e);return i&&(n?e[O]=r:delete e[O]),a}t(ze,"getRawTag");ce.exports=ze});var de=d((Wt,fe)=>{"use strict";var Qe=Object.prototype,Ye=Qe.toString;function Ze(e){return Ye.call(e)}t(Ze,"objectToString");fe.exports=Ze});var pe=d((Ht,ge)=>{"use strict";var le=A(),et=ue(),tt=de(),nt="[object Null]",rt="[object Undefined]",me=le?le.toStringTag:void 0;function ot(e){return e==null?e===void 0?rt:nt:me&&me in Object(e)?et(e):tt(e)}t(ot,"baseGetTag");ge.exports=ot});var ve=d((Jt,be)=>{"use strict";function it(e){return e!=null&&typeof e=="object"}t(it,"isObjectLike");be.exports=it});var he=d((Ut,ye)=>{"use strict";var st=pe(),at=ve(),ct="[object Symbol]";function ut(e){return typeof e=="symbol"||at(e)&&st(e)==ct}t(ut,"isSymbol");ye.exports=ut});var Se=d((Xt,Ce)=>{"use strict";var ft=oe(),xe=L(),dt=he(),Te=NaN,lt=/^[-+]0x[0-9a-f]+$/i,mt=/^0b[01]+$/i,gt=/^0o[0-7]+$/i,pt=parseInt;function bt(e){if(typeof e=="number")return e;if(dt(e))return Te;if(xe(e)){var n=typeof e.valueOf=="function"?e.valueOf():e;e=xe(n)?n+"":n}if(typeof e!="string")return e===0?e:+e;e=ft(e);var r=mt.test(e);return r||gt.test(e)?pt(e.slice(2),r?2:8):lt.test(e)?Te:+e}t(bt,"toNumber");Ce.exports=bt});var Ee=d((Qt,Oe)=>{"use strict";var vt=L(),N=ee(),je=Se(),yt="Expected a function",ht=Math.max,xt=Math.min;function Tt(e,n,r){var i,a,p,l,c,s,m=0,E=!1,u=!1,h=!0;if(typeof e!="function")throw new TypeError(yt);n=je(n)||0,vt(r)&&(E=!!r.leading,u="maxWait"in r,p=u?ht(je(r.maxWait)||0,n):p,h="trailing"in r?!!r.trailing:h);function x(o){var g=i,y=a;return i=a=void 0,m=o,l=e.apply(y,g),l}t(x,"invokeFunc");function R(o){return m=o,c=setTimeout(v,n),E?x(o):l}t(R,"leadingEdge");function C(o){var g=o-s,y=o-m,M=n-g;return u?xt(M,p-y):M}t(C,"remainingWait");function q(o){var g=o-s,y=o-m;return s===void 0||g>=n||g<0||u&&y>=p}t(q,"shouldInvoke");function v(){var o=N();if(q(o))return b(o);c=setTimeout(v,C(o))}t(v,"timerExpired");function b(o){return c=void 0,h&&i?x(o):(i=a=void 0,l)}t(b,"trailingEdge");function I(){c!==void 0&&clearTimeout(c),m=0,i=s=a=c=void 0}t(I,"cancel");function $(){return c===void 0?l:b(N())}t($,"flush");function S(){var o=N(),g=q(o);if(i=arguments,a=this,s=o,g){if(c===void 0)return R(s);if(u)return clearTimeout(c),c=setTimeout(v,n),x(s)}return c===void 0&&(c=setTimeout(v,n)),l}return t(S,"debounced"),S.cancel=I,S.flush=$,S}t(Tt,"debounce");Oe.exports=Tt});import{useState as jt,useCallback as Ot,useEffect as Ie,useRef as $e}from"react";var qe=_e(Ee(),1);import{useCallback as Ct,useEffect as St,useRef as Re}from"react";function W(e,n){let r=Re(e);St(()=>{r.current=e},[e]);let i=Re((0,qe.default)(a=>{r.current(a)},n)).current;return Ct(a=>{i(a)},[i])}t(W,"useDebounce");import{Fragment as Rt,jsx as T,jsxs as Me}from"react/jsx-runtime";var Et=t(({description:e,showConversion:n,targetCurrency:r,className:i,onClick:a})=>{let{components:p}=K(),l=n?`Hide ${r} conversion`:`Show ${r} conversion`,c=p?.button||"button";return Me("span",{className:i,children:[T(U,{as:"span",children:e})," ",T(c,{className:`${i.replace("-description","-button")}`,"data-type":"inline",onClick:a,children:l})]})},"DescriptionWithConversion"),dn=t(({sourceCurrency:e,targetCurrency:n,mainFieldName:r,conversionFieldName:i,conversionProperties:a,classNamePrefix:p,description:l,conversionType:c="spread",...s})=>{let[m,E]=jt(!1),{setValue:u,watch:h}=J(),x=h(r||s.name),R=$e(!0),C=$e(new Map),q=e&&n&&e!==n,{mutateAsync:v}=V({type:c}),b=`${s.name}_converted`;Ie(()=>{u(b,r||s.name)},[u,r,s.name,b]),Ie(()=>{if(R.current){R.current=!1;return}u(i,"")},[e,i,u]);let I=Ot(async(f,j,k,B)=>{let w=Number(f);if(!f||isNaN(w)||w<=0)return;let H=`${j}_${k}_${f}`,G=C.current.get(H);if(G){u(B,G.targetAmount);return}try{let P=await v({source_currency:j,target_currency:k,amount:w});if(P.data?.data?.conversion_data?.target_amount){let _=P.data.data.conversion_data.target_amount;if(_){u(B,_?.toString()),C.current.set(H,{targetAmount:_.toString()});let Pe=`${k}_${j}_${_}`;C.current.set(Pe,{targetAmount:f.toString()})}}}catch(P){console.error("Error converting currency:",P)}},[v,u]),$=W(f=>I(f,e,n,i),500),S=W(f=>I(f,n,e,r||s.name),500),o=t(f=>{u(b,r||s.name),m&&$(f.target.value)},"handleMainFieldChange"),g=t(f=>{u(b,i),S(f.target.value)},"handleConversionFieldChange"),y=t(f=>{f.preventDefault(),E(j=>!j),!m&&x&&$(x)},"toggleConversion"),M=q?T(Et,{targetCurrency:n,description:l,showConversion:m,className:`${p}-description`,onClick:y}):l;return Me(Rt,{children:[T(F,{...s,name:r||s.name,additionalProps:{currency:e},description:M,type:"text",inputMode:"decimal",pattern:"^[0-9.]*$",maxLength:15,onChange:o}),m&&T(F,{additionalProps:{currency:n},name:i,label:a?.label||"Conversion",description:a?.description,type:"text",inputMode:"decimal",pattern:"^[0-9.]*$",maxLength:15,onChange:g}),T("input",{type:"hidden",name:b,value:h(b)||r||s.name})]})},"CurrencyConversionField");export{dn as a};
|
|
2
|
-
//# sourceMappingURL=chunk-BIQPVUM2.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';\nimport { FormDescription } from '@/src/components/ui/form';\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 || 'button';\n return (\n <span className={className}>\n <FormDescription as='span'>{description}</FormDescription>{' '}\n <CustomButton\n className={`${className.replace('-description', '-button')}`}\n data-type='inline'\n onClick={onClick}\n >\n {label}\n </CustomButton>\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 const amount = Number(value);\n\n if (!value || isNaN(amount) || amount <= 0) 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,\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","FormDescription","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","amount","cacheKey","cached","response","reverseKey","error","debouncedConvertCurrency","useDebounce","debouncedConvertCurrencyReverse","handleMainFieldChange","evt","handleConversionFieldChange","toggleConversion","prev","extraDescription","TextField"]}
|
package/dist/chunk-BZUYUGQF.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{b as n}from"./chunk-KQPDXXG3.js";import{b as r}from"./chunk-LJGCFFAT.js";import{b as e}from"./chunk-TVZAFTPT.js";import{a as o}from"./chunk-P37U34EQ.js";import{jsx as C}from"react/jsx-runtime";function p({children:m,...t}){let{contractAmendment:{back:u}}=e(),{components:i}=n(),c=i?.button||r;return C(c,{...t,onClick:s=>{u(),t.onClick?.(s)},children:m})}o(p,"ContractAmendmentBack");export{p as a};
|
|
2
|
-
//# sourceMappingURL=chunk-BZUYUGQF.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/ContractAmendment/ContractAmendmentBack.tsx"],"sourcesContent":["import { Button } from '@/src/components/ui/button';\nimport { ButtonHTMLAttributes, PropsWithChildren } from 'react';\nimport { useContractAmendmentContext } from './context';\nimport { useFormFields } from '@/src/context';\n\nexport function ContractAmendmentBack({\n children,\n ...props\n}: PropsWithChildren<ButtonHTMLAttributes<HTMLButtonElement>> &\n Record<string, unknown>) {\n const {\n contractAmendment: { back },\n } = useContractAmendmentContext();\n\n const { components } = useFormFields();\n\n const CustomButton = components?.button || Button;\n return (\n <CustomButton\n {...props}\n onClick={(evt) => {\n back();\n props.onClick?.(evt);\n }}\n >\n {children}\n </CustomButton>\n );\n}\n"],"mappings":"gKAkBI,cAAAA,MAAA,oBAbG,SAASC,EAAsB,CACpC,SAAAC,EACA,GAAGC,CACL,EAC2B,CACzB,GAAM,CACJ,kBAAmB,CAAE,KAAAC,CAAK,CAC5B,EAAIC,EAA4B,EAE1B,CAAE,WAAAC,CAAW,EAAIC,EAAc,EAE/BC,EAAeF,GAAY,QAAUG,EAC3C,OACET,EAACQ,EAAA,CACE,GAAGL,EACJ,QAAUO,GAAQ,CAChBN,EAAK,EACLD,EAAM,UAAUO,CAAG,CACrB,EAEC,SAAAR,EACH,CAEJ,CAvBgBS,EAAAV,EAAA","names":["jsx","ContractAmendmentBack","children","props","back","useContractAmendmentContext","components","useFormFields","CustomButton","Button","evt","__name"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/CostCalculator/CostCalculatorResetButton.tsx"],"sourcesContent":["import { Button } from '@/src/components/ui/button';\nimport { ButtonHTMLAttributes, PropsWithChildren } from 'react';\nimport { useCostCalculatorContext } from './context';\nimport { cn } from '@/src/lib/utils';\nimport { useFormFields } from '@/src/context';\n\nexport function CostCalculatorResetButton({\n children,\n ...props\n}: PropsWithChildren<ButtonHTMLAttributes<HTMLButtonElement>> &\n Record<string, unknown>) {\n const { form, formId, costCalculatorBag } = useCostCalculatorContext();\n const { components } = useFormFields();\n\n const CustomButton = components?.button || Button;\n return (\n <CustomButton\n {...props}\n type='reset'\n className={cn(\n 'RemoteFlows__CostCalculatorForm__ResetButton',\n props.className,\n )}\n form={formId}\n onClick={(evt) => {\n costCalculatorBag?.resetForm();\n form.reset();\n props.onClick?.(evt);\n }}\n >\n {children}\n </CustomButton>\n );\n}\n"],"mappings":"wMAgBI,cAAAA,MAAA,oBAVG,SAASC,EAA0B,CACxC,SAAAC,EACA,GAAGC,CACL,EAC2B,CACzB,GAAM,CAAE,KAAAC,EAAM,OAAAC,EAAQ,kBAAAC,CAAkB,EAAIC,EAAyB,EAC/D,CAAE,WAAAC,CAAW,EAAIC,EAAc,EAE/BC,EAAeF,GAAY,QAAUG,EAC3C,OACEX,EAACU,EAAA,CACE,GAAGP,EACJ,KAAK,QACL,UAAWS,EACT,+CACAT,EAAM,SACR,EACA,KAAME,EACN,QAAUQ,GAAQ,CAChBP,GAAmB,UAAU,EAC7BF,EAAK,MAAM,EACXD,EAAM,UAAUU,CAAG,CACrB,EAEC,SAAAX,EACH,CAEJ,CA3BgBY,EAAAb,EAAA","names":["jsx","CostCalculatorResetButton","children","props","form","formId","costCalculatorBag","useCostCalculatorContext","components","useFormFields","CustomButton","Button","cn","evt","__name"]}
|
package/dist/chunk-FLXY4CUE.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{b as j}from"./chunk-E5PHO3SS.js";import{a as H}from"./chunk-KGKDSOER.js";import{a as ye,b as Ve,c as ze,d as Ge,e as Ue,f as Je,g as qe,h as Ze,i as Ke,j as Ye,l as Xe,m as ve,n as Qe,o as xe,p as Se,r as be,t as je,u as eo,v as oo}from"./chunk-ZIN2OWTH.js";import{b as x}from"./chunk-KQPDXXG3.js";import{a as Ce,b as B}from"./chunk-LJGCFFAT.js";import{a as ne,b as ae,c as v,d as Le,e as He,f as Be,g as Ae,h as b,i as P,j as k,k as N,l as D,m as w}from"./chunk-66N57DKF.js";import{g as Oe}from"./chunk-2SO4LW7V.js";import{a as y,e as Q}from"./chunk-L3Z2G32A.js";import{a as t}from"./chunk-P37U34EQ.js";import{Fragment as Jt,useEffect as qt,useRef as rt}from"react";import{Fragment as lt,jsx as O,jsxs as ie}from"react/jsx-runtime";function le({name:e,defaultValue:o,description:r,label:n,onChange:s,multiple:i,options:m,component:a,...d}){let{components:u}=x(),{control:l}=v(),f=t((p,h,g)=>{if(i&&g){let c=p.value?[...p.value]:[];h?c.includes(g)||p.onChange([...c,g]):p.onChange(c.filter(_=>_!==g))}else p.onChange(h)},"handleCheckboxChange");return O(b,{control:l,name:e,defaultValue:o,render:({field:p,fieldState:h})=>{let g=a||u?.checkbox;if(g){let c={name:e,description:r,label:n,defaultValue:o,multiple:i,options:m,...d};return O(g,{field:{...p,onChange:t((_,S)=>{f(p,_.target.checked,S),s?.(_.target.checked===!0,S)},"onChange")},fieldState:h,fieldData:c})}return ie(P,{"data-field":e,className:y(`RemoteFlows__CheckBoxField__Item__${e}`),children:[O(N,{children:ie(lt,{children:[m&&i?O(k,{children:n}):null,m&&i?m.map(c=>ie("div",{className:"flex space-x-2",children:[O(ye,{id:c.value,onCheckedChange:_=>{f(p,_===!0,c.value),s?.(_===!0,c.value)},checked:p.value?.includes(c.value),className:"RemoteFlows__CheckBox__Input"}),O(k,{htmlFor:c.value,className:"mb-0 RemoteFlows__CheckBox__Label",children:c.label})]},c.value)):ie("div",{className:"flex space-x-2",children:[O(ye,{id:e,onCheckedChange:c=>{f(p,c===!0,e),s?.(c===!0,e)},checked:p.value,className:"RemoteFlows__CheckBox__Input"}),O(k,{htmlFor:e,className:"mb-0 RemoteFlows__CheckBox__Label",children:n})]})]})}),r&&O(D,{children:r}),h.error&&O(w,{})]})}})}t(le,"CheckBoxField");import{CalendarIcon as pt}from"lucide-react";import{format as no}from"date-fns";import*as A from"@radix-ui/react-popover";import{PopoverClose as to}from"@radix-ui/react-popover";import{jsx as se}from"react/jsx-runtime";function me({...e}){return se(A.Root,{"data-slot":"popover",...e})}t(me,"Popover");function de({...e}){return se(A.Trigger,{"data-slot":"popover-trigger",...e})}t(de,"PopoverTrigger");function ce({className:e,align:o="center",sideOffset:r=4,...n}){return se(A.Portal,{children:se(A.Content,{"data-slot":"popover-content",align:o,sideOffset:r,className:y("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),...n})})}t(ce,"PopoverContent");import{ChevronLeft as st,ChevronRight as mt}from"lucide-react";import{DayPicker as dt}from"react-day-picker";import{jsx as ke}from"react/jsx-runtime";function ro({className:e,classNames:o,showOutsideDays:r=!0,...n}){return ke(dt,{showOutsideDays:r,className:y("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:y(Ce({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:y("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",n.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:y(Ce({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",...o},components:{IconLeft:t(({className:s,...i})=>ke(st,{className:y("size-4",s),...i}),"IconLeft"),IconRight:t(({className:s,...i})=>ke(mt,{className:y("size-4",s),...i}),"IconRight")},...n})}t(ro,"Calendar");import{jsx as ct}from"react/jsx-runtime";function pe({helpCenter:e}){return e?ct(j,{zendeskId:e.id,children:e.callToAction}):null}t(pe,"HelpCenter");import{Fragment as ut,jsx as I,jsxs as ue}from"react/jsx-runtime";function ao({field:e,fieldData:o,fieldState:r}){let{name:n,label:s,description:i,minDate:m,maxDate:a}=o,d=m?new Date(m):void 0,u=a?new Date(a):void 0;return ue(P,{"data-field":n,className:`flex flex-col RemoteFlows__DatePickerField__Item__${n}`,children:[I(k,{className:"RemoteFlows__DatePickerField__Label",children:s}),ue(me,{children:[I(de,{asChild:!0,children:I(N,{children:I("div",{children:ue(B,{type:"button",variant:"outline",className:y("w-full pl-3 text-left font-normal",!e.value&&"text-muted-foreground"),"data-testid":`date-picker-button-${n}`,children:[e.value&&I(ut,{children:no(e.value,"yyyy-MM-dd")}),I(pt,{className:"ml-auto h-4 w-4 opacity-50"})]})})})}),I(ce,{className:"w-auto p-0 RemoteFlows__DatepickerField__PopoverContent",align:"start",children:I(ro,{mode:"single",className:"RemoteFlows__DatepickerField__Calendar",selected:e.value?new Date(e.value):void 0,onSelect:l=>{e.onChange(l?no(l,"yyyy-MM-dd"):null)},defaultMonth:d,components:{DayContent:t(l=>I(to,{children:l.date.getDate()}),"DayContent")},disabled:l=>!!(d&&l<d||u&&l>u)})})]}),i?ue(D,{children:[i," ",I(pe,{helpCenter:o.meta?.helpCenter})]}):null,r.error&&I(w,{className:"RemoteFlows__DatePickerField__Error"})]})}t(ao,"DatePickerFieldDefault");import{jsx as io}from"react/jsx-runtime";function lo({description:e,label:o,name:r,minDate:n,maxDate:s,onChange:i,component:m,...a}){let{components:d}=x(),{control:u}=v(),l;a.meta?.mot&&typeof a.meta.mot=="number"?l=Oe(a.meta.mot):n&&(l=new Date(`${n}T00:00:00`));let f;return s&&(f=new Date(`${s}T23:59:59`)),io(b,{control:u,name:r,render:({field:p,fieldState:h})=>{let c=m||d?.date||ao,_={description:e,label:o,name:r,onChange:i,...l&&{minDate:l.toISOString()},...f&&{maxDate:f.toISOString()},...a};return io(c,{field:{...p,onChange:t(S=>{p.onChange(S),i?.(S)},"onChange")},fieldState:h,fieldData:_})}})}t(lo,"DatePickerField");import{jsx as G,jsxs as ft}from"react/jsx-runtime";function so({field:e,fieldState:o,fieldData:r}){let{name:n,label:s,description:i,multiple:m,accept:a}=r;return ft(P,{"data-field":n,className:`RemoteFlows__FileUpload__Item__${n}`,children:[G(k,{className:"RemoteFlows__FileUpload__Label",children:s}),G(N,{children:G(Ve,{onChange:e.onChange,multiple:m,className:y("RemoteFlows__FileUpload__Input"),accept:a,files:e.value})}),i&&G("div",{className:"flex items-center justify-between",children:G(D,{className:"RemoteFlows__FileUpload__Description",children:i})}),o.error&&G(w,{className:"RemoteFlows__FileUpload__Error"})]})}t(so,"FileUploadFieldDefault");import{jsx as mo}from"react/jsx-runtime";var Ft=t((e,o)=>{if(!o)return null;for(let r of e)if(r.size>o){let n=Math.round(o/1048576),s=Math.round(r.size/(1024*1024));return`File "${r.name}" exceeds maximum size of ${n}MB (file is ${s}MB)`}return null},"validateFileSize");function co({name:e,description:o,label:r,multiple:n,onChange:s,component:i,accept:m,maxSize:a,...d}){let{components:u}=x(),{control:l,setError:f,clearErrors:p}=v(),h=t(async(g,c)=>{let _=Ft(g,a);if(_){f(e,{message:_});return}p(e),c.onChange(g),s?.(g)},"handleOnChange");return mo(b,{control:l,name:e,render:({field:g,fieldState:c})=>{let S=i||u?.file||so,R={name:e,description:o,label:r,multiple:n,accept:m,maxFileSize:a,...d};return mo(S,{field:{...g,value:g.value,onChange:t(async z=>h(z,g),"onChange")},fieldState:c,fieldData:R})}})}t(co,"FileUploadField");import{jsx as gt}from"react/jsx-runtime";function po({field:e,fieldData:o}){return gt(H,{type:"text",inputMode:"decimal",pattern:"^[0-9.]*$",...e,...o})}t(po,"NumberFieldDefault");import{jsx as uo}from"react/jsx-runtime";function fe(e){let{components:o}=x(),{control:r}=v(),s=e.component||o?.number||po;return uo(b,{control:r,name:e.name,render:({field:i,fieldState:m})=>uo(s,{field:{...i,onChange:t(a=>{i.onChange(a),e.onChange?.(a)},"onChange")},fieldState:m,fieldData:e})})}t(fe,"NumberField");import{Fragment as ht}from"react";import{jsx as E,jsxs as Pe}from"react/jsx-runtime";var fo=t(({field:e,fieldData:o,fieldState:r})=>{let{name:n,label:s,description:i,options:m}=o;return E("fieldset",{className:y("space-y-3",`RemoteFlows__RadioGroupField__Item__${n}`),"data-field":n,children:Pe(P,{className:y("space-y-3",`RemoteFlows__RadioGroupField__Item__${n}`),"data-field":n,children:[E("legend",{children:s}),E(N,{children:E(ze,{"aria-label":s||n,onValueChange:a=>{e.onChange(a)},value:e.value,className:"flex flex-col space-y-3",children:m?.map(a=>E(ht,{children:Pe(P,{"data-field":n,className:"flex items-start space-x-3 space-y-0 gap-0 RemoteFlows__RadioField__Item",children:[E(N,{children:E(Ge,{value:a.value,className:"RemoteFlows__RadioField__Input",disabled:a.disabled})}),Pe("div",{children:[E(k,{className:"font-normal mb-0 RemoteFlows__RadioField__Label",children:a.label}),a.description&&E(D,{className:"mt-2",children:a.description})]})]})},a.value))})}),i&&E(D,{children:i}),r.error&&E(w,{})]})})},"RadioGroupFieldDefault");import{jsx as Fo}from"react/jsx-runtime";function go({name:e,defaultValue:o,description:r,label:n,options:s,onChange:i,component:m,...a}){let{components:d}=x(),{control:u}=v();return Fo(b,{control:u,name:e,defaultValue:o,render:({field:l,fieldState:f})=>{let h=m||d?.radio||fo,g={name:e,defaultValue:o,description:r,label:n,options:s,...a};return Fo(h,{field:{...l,onChange:t(c=>{l.onChange(c),i?.(c)},"onChange")},fieldState:f,fieldData:g})}})}t(go,"RadioGroupField");import{jsx as W,jsxs as ho}from"react/jsx-runtime";function _o({field:e,fieldState:o,fieldData:r}){let{name:n,label:s,description:i,options:m}=r;return ho(P,{"data-field":n,className:`RemoteFlows__SelectField__Item__${n}`,children:[W(k,{className:"RemoteFlows__SelectField__Label",children:s}),W(N,{children:W("div",{className:"relative",children:ho(Ue,{value:e.value||"",onValueChange:a=>{e.onChange(a)},children:[W(Ze,{className:"RemoteFlows__SelectField__Trigger","aria-invalid":!!o.error,"aria-label":s,children:W("span",{className:"absolute",children:W(qe,{placeholder:s})})}),W(Ke,{className:"RemoteFlows__SelectField__Content",children:W(Je,{className:"RemoteFlows__SelectField__Group",children:m?.map(a=>W(Ye,{value:a.value,className:"RemoteFlows__SelectField__SelectItem",disabled:a.disabled,children:a.label},a.value))})})]})})}),i&&W(D,{children:i}),o.error&&W(w,{})]})}t(_o,"SelectFieldDefault");import{jsx as yo}from"react/jsx-runtime";function Co({label:e,name:o,options:r,defaultValue:n,description:s,onChange:i,component:m,...a}){let{control:d}=v(),{components:u}=x();return yo(b,{defaultValue:n,control:d,name:o,render:({field:l,fieldState:f})=>{let h=m||u?.select||_o,g={label:e,name:o,options:r,defaultValue:n,description:s,onChange:i,...a};return yo(h,{field:{...l,onChange:t(c=>{let _=a.jsonType==="number"?Number(c):c;l.onChange(_),i?.(_)},"onChange")},fieldState:f,fieldData:g})}})}t(Co,"SelectField");import{useEffect as St,useState as bt}from"react";import{Fragment as _t,useState as yt}from"react";import{Check as Ct,ChevronDownIcon as vt,X as xt}from"lucide-react";import{Command as U}from"cmdk";import{SearchIcon as Vn}from"lucide-react";import{jsx as J,jsxs as Jn}from"react/jsx-runtime";function vo({className:e,...o}){return J(U,{"data-slot":"command",className:y("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md",e),...o})}t(vo,"Command");function xo({className:e,...o}){return J(U.List,{"data-slot":"command-list",className:y("max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto",e),...o})}t(xo,"CommandList");function So({...e}){return J(U.Empty,{"data-slot":"command-empty",className:"py-6 text-center text-sm",...e})}t(So,"CommandEmpty");function bo({className:e,...o}){return J(U.Group,{"data-slot":"command-group",className:y("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),...o})}t(bo,"CommandGroup");function ko({className:e,...o}){return J(U.Separator,{"data-slot":"command-separator",className:y("bg-border -mx-1 h-px",e),...o})}t(ko,"CommandSeparator");function Po({className:e,...o}){return J(U.Item,{"data-slot":"command-item",className:y("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),...o})}t(Po,"CommandItem");import{jsx as $,jsxs as q}from"react/jsx-runtime";function Fe({options:e,selected:o,onChange:r,placeholder:n,...s}){let[i,m]=yt(!1),a=t(l=>{r(o.filter(f=>f.value!==l.value))},"handleUnselect"),d=e.some(l=>l.category),u=e.reduce((l,f)=>{let p=f.category||"Uncategorized";return l[p]||(l[p]=[]),l[p].push(f),l},{});return q(me,{open:i,onOpenChange:m,...s,children:[$(de,{children:q(B,{variant:"outline",role:"combobox","aria-expanded":i,className:"w-full justify-between font-normal",type:"button",children:[$("div",{className:"flex gap-1 flex-wrap overflow-x-auto max-h-[2.5rem] items-center",children:o.length>0?o.map(l=>q(Xe,{variant:"secondary",className:"mr-1 mb-1",children:[l.label,$("div",{role:"button",tabIndex:0,"aria-label":`remove ${l.label}`,className:"ml-1 ring-offset-background rounded-full outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 cursor-pointer",onKeyDown:f=>{f.key==="Enter"&&a(l)},onMouseDown:f=>{f.preventDefault(),f.stopPropagation()},onClick:()=>a(l),children:$(xt,{className:"h-3 w-3 text-muted-foreground hover:text-foreground"})})]},l.label)):$("span",{className:"text-foreground",children:n})}),$(vt,{className:"size-4"})]})}),$(ce,{align:"start",className:"w-full p-0",children:$(vo,{children:q(xo,{children:[$(So,{children:"No item found."}),Object.entries(u).map(([l,f],p)=>q(_t,{children:[p>0&&$(ko,{}),$(bo,{heading:d?l:void 0,children:f.map(h=>{let g=o.some(c=>c.value===h.value);return q(Po,{onSelect:()=>{r(g?o.filter(c=>c.value!==h.value):[...o,h])},children:[$(Ct,{className:y("mr-2 h-4 w-4",g?"opacity-100":"opacity-0")}),h.label]},h.label)})})]},l))]})})})]})}t(Fe,"MultiSelect");import{jsx as ee,jsxs as No}from"react/jsx-runtime";function Do({field:e,fieldState:o,fieldData:r}){let[n,s]=bt([]),i=t(a=>{let d=a.map(({value:u})=>u);e.onChange(d),s(a)},"handleChange");St(()=>{e.value&&r.options&&s(e.value.map(a=>r?.options?.find(d=>d.value===a)))},[e.value,r.options]);let m=[...Object.entries(r.$meta?.regions||{}).map(([a,d])=>({value:d,label:a,category:"Regions"})),...Object.entries(r.$meta?.subregions||{}).map(([a,d])=>({value:d,label:a,category:"Subregions"})),...r.options?.map(a=>({...a,value:a.value,label:a.label,category:"Countries"}))||[]];return No(P,{"data-field":e.name,className:`RemoteFlows__CountryField__Item__${e.name}`,children:[ee(k,{className:"RemoteFlows__CountryField__Label",children:r.label}),ee(N,{children:ee(Fe,{options:m,selected:n,onChange:i})}),r.description&&No(D,{children:[r.description," ",ee(pe,{helpCenter:r.meta?.helpCenter})]}),o.error&&ee(w,{})]})}t(Do,"CountryFieldDefault");import{jsx as wo}from"react/jsx-runtime";function Ro({label:e,name:o,options:r,defaultValue:n,description:s,onChange:i,$meta:m,component:a,...d}){let{control:u}=v(),{components:l}=x();return wo(b,{defaultValue:n,control:u,name:o,render:({field:f,fieldState:p})=>{let g=a||l?.countries||Do,c={label:e,name:o,options:r,defaultValue:n,description:s,onChange:i,$meta:m,...d};return wo(g,{field:{...f,onChange:t(_=>{f.onChange(_),i?.(_)},"onChange")},fieldState:p,fieldData:c})}})}t(Ro,"CountryField");import*as To from"react";import{jsx as kt}from"react/jsx-runtime";var Ne=To.forwardRef(({className:e,...o},r)=>kt("textarea",{className:y("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:r,...o}));Ne.displayName="Textarea";import{jsx as oe,jsxs as De}from"react/jsx-runtime";function $o({field:e,fieldState:o,fieldData:r}){let{name:n,label:s,description:i,maxLength:m}=r,a=e.value?.length??0;return De(P,{"data-field":n,className:`RemoteFlows__TextArea__Item__${n}`,children:[oe(k,{className:"RemoteFlows__TextArea__Label",children:s}),oe(N,{children:oe(Ne,{...e,value:e.value??"",onChange:d=>{e.onChange(d)},className:y(o.error&&"border-red-500 focus-visible:ring-red-500","RemoteFlows__TextArea__Input"),placeholder:s})}),(i||m)&&De("div",{className:"flex items-center justify-between",children:[i&&oe(D,{className:"RemoteFlows__TextArea__Description",children:i}),m&&De("span",{className:"text-sm ml-auto RemoteFlows__TextArea__MaxLength",children:[a,"/",m]})]}),o.error&&oe(w,{className:"RemoteFlows__TextArea__Error"})]})}t($o,"TextAreaFieldDefault");import{jsx as Mo}from"react/jsx-runtime";function Io({name:e,description:o,label:r,onChange:n,maxLength:s,component:i,...m}){let{components:a}=x(),{control:d}=v();return Mo(b,{control:d,name:e,render:({field:u,fieldState:l})=>{let p=i||a?.textarea||$o,h={name:e,description:o,label:r,maxLength:s,...m};return Mo(p,{field:{...u,onChange:t(g=>{u.onChange(g),n?.(g)},"onChange")},fieldState:l,fieldData:h})}})}t(Io,"TextAreaField");import{jsx as Pt}from"react/jsx-runtime";function Eo({field:e,fieldData:o}){return Pt(H,{name:e.name,...o,type:"email"})}t(Eo,"EmailFieldDefault");import{jsx as Wo}from"react/jsx-runtime";function Lo(e){let{components:o}=x(),{control:r}=v(),s=e.component||o?.email||Eo;return Wo(b,{control:r,name:e.name,render:({field:i,fieldState:m})=>Wo(s,{field:{...i,onChange:t(a=>{i.onChange(a),e.onChange?.(a)},"onChange")},fieldState:m,fieldData:e})})}t(Lo,"EmailField");import{jsx as Ho}from"react/jsx-runtime";function Bo(e){let{control:o}=v();return Ho(b,{control:o,name:e.name,render:({field:r})=>Ho("input",{...r,type:"hidden"})})}t(Bo,"HiddenField");import Mt,{useEffect as It,useState as Zo}from"react";var Oo=t((e,o,r)=>{if(e&&"reportValidity"in e){let n=ne(r,o);e.setCustomValidity(n&&n.message||""),e.reportValidity()}},"r"),we=t((e,o)=>{for(let r in o.fields){let n=o.fields[r];n&&n.ref&&"reportValidity"in n.ref?Oo(n.ref,r,e):n&&n.refs&&n.refs.forEach(s=>Oo(s,r,e))}},"o"),Vo=t((e,o)=>{o.shouldUseNativeValidation&&we(e,o);let r={};for(let n in e){let s=ne(o.fields,n),i=Object.assign(e[n]||{},{ref:s&&s.ref});if(Nt(o.names||Object.keys(e),n)){let m=Object.assign({},ne(r,n));ae(m,"root",i),ae(r,n,m)}else ae(r,n,i)}return r},"s"),Nt=t((e,o)=>{let r=Ao(o);return e.some(n=>Ao(n).match(`^${r}\\.\\d+`))},"i");function Ao(e){return e.replace(/\]|\[/g,"")}t(Ao,"n");function zo(e,o,r){return o===void 0&&(o={}),r===void 0&&(r={}),function(n,s,i){try{return Promise.resolve((function(m,a){try{var d=(o.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[r.mode==="sync"?"validateSync":"validate"](n,Object.assign({abortEarly:!1},o,{context:s}))).then(function(u){return i.shouldUseNativeValidation&&we({},i),{values:r.raw?Object.assign({},n):u,errors:{}}}))}catch(u){return a(u)}return d&&d.then?d.then(void 0,a):d})(0,function(m){if(!m.inner)throw m;return{values:{},errors:Vo((a=m,d=!i.shouldUseNativeValidation&&i.criteriaMode==="all",(a.inner||[]).reduce(function(u,l){if(u[l.path]||(u[l.path]={message:l.message,type:l.type}),d){var f=u[l.path].types,p=f&&f[l.type];u[l.path]=Le(l.path,d,u,l.type,p?[].concat(p,l.message):l.message)}return u},{})),i)};var a,d}))}catch(m){return Promise.reject(m)}}}t(zo,"o");import*as T from"yup";import Go from"lodash.groupby";import Z from"lodash.capitalize";var Uo=60,ge=["monday","tuesday","wednesday","thursday","friday","saturday","sunday"];function Dt(e){if(e<60)return`${e}m`;let o=Math.floor(e/Uo),r=e%Uo;return r>0?`${o}h${r}m`:`${o}h`}t(Dt,"convertBreakDurationToHours");function Jo(e){let o=e.reduce((r,n)=>n.hours+r,0);return Number(o.toFixed(2))}t(Jo,"calculateTotalWorkHours");function wt(e,o){let r=o.map(({day:i})=>i.toLowerCase()),n=r.indexOf(e),s=null;for(;n<r.length&&!s;){let i=r[n],m=r[n+1],a=ge.indexOf(i)+1;ge[a]===m||(s=i),n+=1}return s}t(wt,"findLastConsecutiveDay");function Rt(e){return e.start_time&&e.end_time&&(typeof e.hours=="number"?e.hours:Number.parseInt(e.hours))>0}t(Rt,"shouldSummarizeSchedule");function Tt(e){return Number.parseInt(e.break_duration_minutes)>0}t(Tt,"shouldSummarizeBreaks");function qo(e){let o=e.filter(Rt),r=Go(o,a=>`${a.start_time}|${a.end_time}`),n=e.filter(Tt),s=Go(n,"break_duration_minutes"),i=Object.keys(r).map(a=>{let d=r[a],u=d[0].day,[l,f]=a.split("|"),p=`from <span>${l.replace(":","h")}</span> to <span>${f.replace(":","h")}</span>`,h=wt(u,d),c=(h?d.findIndex(_=>_.day===h):-1)===d.length-1;return d.length===1?`${Z(u)}, ${p}`:!c||!h?d.reduce((_,S,R)=>{let z=Z(S.day);return R===d.length-1?`${_}and ${z}, ${p}`:`${_}<span>${z}</span>, `},""):`<span>${Z(u)}</span> to <span>${Z(h)}</span>, ${p}`}),m=Object.keys(s).reverse().map((a,d)=>{let u=d===0,l=s[a],f=Dt(parseInt(a,10));if(Object.keys(s).length===1)return`With ${f} daily breaks`;if(l.length===1){let p=`${f} break on ${Z(l[0].day)}.`;return u?`With ${p}`:p}return l.reduce((p,h,g)=>{let c=Z(h.day);return g===0?`${p} ${c}`:g===l.length-1?`${p}, and ${c}.`:`${p}, ${c}`},u?`With ${f} break on`:`${f} break on`)});return{workHoursSummary:i,breakSummary:m}}t(qo,"buildWorkScheduleSummary");function Re(e){let{checked:o,start_time:r,end_time:n,break_duration_minutes:s}=e;if(!o)return 0;let[i,m]=r.split(":").map(Number),[a,d]=n.split(":").map(Number),u=i*60+m,p=(a*60+d-u-Number.parseInt(s||"0"))/60;return p===Math.floor(p)?p:Number(p.toFixed(2))}t(Re,"calculateHours");var $t={monday:"Mon",tuesday:"Tue",wednesday:"Wed",thursday:"Thu",friday:"Fri",saturday:"Sat",sunday:"Sun"};function he(e){return $t[e]}t(he,"getShortWeekday");import{jsx as C,jsxs as M}from"react/jsx-runtime";var Et=T.object({day:T.string().required(),checked:T.boolean().required(),start_time:T.string().matches(/^([01]\d|2[0-3]):([0-5]\d)$/,"Invalid time format (HH:mm)").when("checked",{is:!0,then:t(e=>e.required("Required"),"then"),otherwise:t(e=>e.optional().nullable(),"otherwise")}),end_time:T.string().matches(/^([01]\d|2[0-3]):([0-5]\d)$/,"Invalid time format (HH:mm)").when("checked",{is:!0,then:t(e=>e.required("Required"),"then"),otherwise:t(e=>e.optional().nullable(),"otherwise")}),hours:T.number().default(0),break_duration_minutes:T.string().default("0")}),Wt=T.object({schedule:T.array(Et)});function Lt({defaultSchedule:e,onSubmit:o}){let[r,n]=Zo(!1),s=ge.map(c=>{let _=e.find(S=>S.day.toLowerCase()===he(c).toLowerCase()||S.day.toLowerCase()===c.toLowerCase());return _?{..._,day:he(c),checked:!0}:{...e[0],checked:!1,day:he(c)}}),i=Be({defaultValues:{schedule:s},resolver:zo(Wt)}),{handleSubmit:m,watch:a,reset:d,control:u,formState:l}=i,{fields:f}=He({name:"schedule",control:u}),p=a("schedule");function h(c){let _=c.schedule.filter(({checked:S})=>S).map(S=>({...S,hours:Re(S)}));o(_),n(!1)}t(h,"handleSubmitWorkingHours");function g(){d(),n(!1)}return t(g,"handleCancel"),C("div",{className:"flex items-center justify-between",children:M(ve,{open:r,onOpenChange:n,children:[C(Qe,{asChild:!0,children:C(B,{variant:"link",className:"flex items-center p-0 RemoteFlows__WorkScheduleSelectionForm__Trigger",children:"Edit Schedule"})}),M(xe,{className:"max-w-5xl max-h-[90vh] overflow-y-auto px-8 py-4 RemoteFlows__WorkScheduleSelectionForm__Content",children:[C(Se,{children:C(be,{className:"RemoteFlows__WorkScheduleSelectionForm__Title",children:"Edit employee working hours"})}),C(Ae,{...i,children:M("form",{className:"space-y-4 RemoteFlows__WorkScheduleSelectionForm__Form",children:[M("div",{className:"rounded-lg",children:[C("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."}),M("div",{className:"grid grid-cols-12 gap-4 text-sm font-medium text-gray-500 uppercase tracking-wide RemoteFlows__WorkScheduleSelectionForm__Header",children:[C("div",{className:"col-span-2"}),C("div",{className:"col-span-3 text-center",children:"START"}),C("div",{className:"col-span-1 text-center"}),C("div",{className:"col-span-3 text-center",children:"END"}),C("div",{className:"col-span-2 text-center",children:"HOURS"})]}),C("div",{className:"RemoteFlows__WorkScheduleSelectionForm__Rows",children:f.map((c,_)=>{let S=p[_],R=Re(S);return M(Mt.Fragment,{children:[M("div",{className:"grid grid-cols-12 gap-4 items-center py-2 RemoteFlows__WorkScheduleSelectionForm__Row-Hours",children:[C("div",{className:"col-span-2 flex items-center gap-3",children:C(le,{label:c.day,name:`schedule.${_}.checked`})}),C("div",{className:"col-span-3",children:C(H,{name:`schedule.${_}.start_time`,includeErrorMessage:!1})}),C("div",{className:"col-span-1 text-center text-gray-500",children:"to"}),C("div",{className:"col-span-3",children:C(H,{name:`schedule.${_}.end_time`,includeErrorMessage:!1})}),C("div",{className:"col-span-2 text-center text-gray-600",children:isNaN(R)?"-":`${R} hours`})]}),M("div",{className:"grid grid-cols-12 gap-4 items-center py-2 RemoteFlows__WorkScheduleSelectionForm__Row-Break",children:[C("div",{className:"col-span-2 text-gray-500",children:"Break"}),C("div",{className:"col-span-2",children:C(H,{name:`schedule.${_}.break_duration_minutes`,includeErrorMessage:!1})}),C("div",{className:"col-span-2 text-gray-500",children:"minutes"}),C("div",{className:"col-span-4"})]})]},c.id)})})]}),Object.keys(l.errors).length>0&&C("p",{className:"text-destructive text-sm mb-0",children:"Invalid time format (HH:mm)"}),M("div",{className:"flex gap-4 pt-4",children:[C(B,{type:"button",className:"reset-button",variant:"outline",onClick:g,children:"Cancel"}),C(B,{type:"button",className:"submit-button",onClick:m(h),children:"Save Schedule"})]})]})})]})]})})}t(Lt,"WorkScheduleSelectionForm");function Ko(e){let{components:o}=x(),{setValue:r,control:n,watch:s}=v(),i=s(e.name),[m,a]=Zo(i),{workHoursSummary:d,breakSummary:u}=qo(m),l=Jo(m);It(()=>{r(e.name,m)},[m,e.name,r]);function f(h){a(h)}t(f,"onSubmit");let p=e.component||o?.["work-schedule"];return p?C(b,{control:n,name:e.name,render:({field:h,fieldState:g})=>C(p,{field:{...h,onChange:t(c=>{h.onChange(c),e.onChange?.(c)},"onChange")},fieldState:g,fieldData:{...e,defaultFormattedValue:{workHoursSummary:d,breakSummary:u,totalWorkHours:l}}})}):M("div",{className:"flex flex-col gap-3 RemoteFlows__WorkScheduleField",children:[C("p",{className:"text-sm RemoteFlows__WorkScheduleField__Title",children:"Work hours"}),M("div",{className:"flex flex-col gap-1 RemoteFlows__WorkScheduleField__Summary",children:[C("p",{className:"text-sm text-gray-500 RemoteFlows__WorkScheduleField__Summary__WorkHours",dangerouslySetInnerHTML:{__html:d.join(", ")}}),C("p",{className:"text-sm text-gray-500 RemoteFlows__WorkScheduleField__Summary__Break",children:u.join()}),M("p",{className:"text-sm text-gray-500 RemoteFlows__WorkScheduleField__Summary__Total",children:["Total of ",C("span",{children:l})," hours per week"]}),C(Lt,{defaultSchedule:m,onSubmit:f})]})]})}t(Ko,"WorkScheduleField");import{useEffect as Ht,useState as Bt}from"react";import{jsx as te,jsxs as Ot}from"react/jsx-runtime";var Yo=t(({field:e,fieldState:o,fieldData:r})=>{let[n,s]=Bt([]),{name:i,label:m,description:a,options:d}=r,u=n||d?.filter(l=>e.value?.includes(l.value));return Ht(()=>{s(d?.filter(l=>e.value?.includes(l.value))||[])},[e.value,d]),Ot(P,{"data-field":i,className:`RemoteFlows__SelectField__Item__${i}`,children:[te(k,{className:"RemoteFlows__SelectField__Label",children:m}),te(N,{children:te(Fe,{options:d||[],selected:u,onChange:l=>{let f=l.map(({value:p})=>p);e.onChange(f),s(l)}})}),a&&te(D,{children:a}),o.error&&te(w,{})]})},"MultiSelectFieldDefault");import{jsx as Xo}from"react/jsx-runtime";function Qo({label:e,name:o,options:r,defaultValue:n,description:s,onChange:i,component:m,...a}){let{control:d}=v(),{components:u}=x();return Xo(b,{defaultValue:n,control:d,name:o,render:({field:l,fieldState:f})=>{let h=m||u?.["multi-select"]||Yo,g={label:e,name:o,options:r,defaultValue:n,description:s,onChange:i,...a};return Xo(h,{field:{...l,onChange:t(c=>{l.onChange(c),i?.(c)},"onChange")},fieldState:f,fieldData:g})}})}t(Qo,"MultiSelectField");import{jsx as At}from"react/jsx-runtime";var jo=t(e=>At(fe,{maxLength:15,...e}),"MoneyField");var Te={checkbox:le,text:H,email:Lo,money:jo,select:Co,"multi-select":Qo,radio:go,number:fe,file:co,date:lo,textarea:Io,countries:Ro,hidden:Bo,"work-schedule":Ko};import{AlertCircle as Vt}from"lucide-react";import{jsx as $e,jsxs as zt}from"react/jsx-runtime";function et({data:e}){let{title:o,description:r,severity:n}=e,i={warning:"warning",error:"destructive",info:"default",success:"warning"}[n]??"warning";return zt(je,{variant:i,children:[$e(Vt,{className:"h-4 w-4"}),o&&$e(eo,{dangerouslySetInnerHTML:{__html:o}}),r&&$e(oo,{dangerouslySetInnerHTML:{__html:r}})]})}t(et,"StatementDefault");import{jsx as Gt}from"react/jsx-runtime";function ot({title:e,description:o,severity:r}){let{components:n}=x(),s=n?.statement??et;return Gt(s,{data:{title:e?Q(e):void 0,description:Q(o),severity:r}})}t(ot,"Statement");import{jsx as Ut}from"react/jsx-runtime";var tt=t(({isExpanded:e,onToggle:o,className:r,...n})=>Ut(B,{type:"button",className:y("RemoteFlows__Button RemoteFlows__FieldSetField__ToggleButton",r),variant:"default",onClick:o,...n,children:e?"Remove":"Define"}),"FieldsetToggleButtonDefault");import{Fragment as Zt,jsx as L,jsxs as V}from"react/jsx-runtime";function nt({label:e,name:o,fields:r,description:n,components:s,statement:i,isFlatFieldset:m,extra:a,variant:d="outset",features:u,meta:l}){let{helpCenter:f}=l||{},{watch:p,setValue:h,trigger:g,formState:c}=v(),{components:_}=x(),S=u?.toggle?.stateField,R=S?p(S):u?.toggle?.defaultExpanded??!0,z=r.map(({name:F})=>`${o}.${F}`),re=p(z),Me=rt(re),K=rt(null),at=t(()=>{S&&h(S,!R)},"toggleExpanded");qt(()=>{let F=re,Y=Me.current,_e=c.isSubmitted||c.submitCount>0,We=!1;for(let X=0;X<F.length;X++)if(F[X]!==void 0&&Y[X]!==F[X]){We=!0;break}return We&&_e&&(K.current&&clearTimeout(K.current),K.current=setTimeout(()=>{g()},50)),Me.current=[...F],()=>{K.current&&clearTimeout(K.current)}},[re,g,c.isSubmitted,c.submitCount]);let it=_?.fieldsetToggle||tt,Ie=`${o}-content`,Ee=`${o}-header`;return V("fieldset",{className:y("border-1 border-input p-4 rounded-xl","RemoteFlows__FieldSetField",`RemoteFlows__FieldSetField__${o}`),children:[L("legend",{className:y("text-sm font-semibold px-2",d==="inset"&&"hidden"),children:e}),f?.callToAction&&f?.id&&d==="outset"&&L(j,{className:"RemoteFlows__FieldSetField__HelpCenterLink mb-3",zendeskId:f.id,children:f.callToAction}),d==="inset"&&V(Zt,{children:[V("div",{className:"RemoteFlows__FieldSetField__Header",id:Ee,"data-state":R?"expanded":"collapsed","aria-expanded":R,children:[L("h3",{className:y("RemoteFlows__FieldSetField__Title"),children:e}),u?.toggle?.enabled&&L(it,{isExpanded:R,onToggle:at,"aria-expanded":R,"aria-controls":Ie,"aria-label":`${R?"Hide":"Show"} ${e}`,className:y("RemoteFlows__FieldSetField__Toggle",u.toggle?.className),children:R?u.toggle.labels?.collapse??"Remove":u.toggle.labels?.expand??"Define"})]}),f?.callToAction&&f?.id&&L(j,{className:"RemoteFlows__FieldSetField__HelpCenterLink mb-3",zendeskId:f.id,children:f.callToAction})]}),R&&V("div",{id:Ie,"aria-labelledby":Ee,role:"region",children:[n?L("div",{className:"mb-5 RemoteFlows__FieldSetField__Description",dangerouslySetInnerHTML:{__html:Q(n)}}):null,V("div",{className:"grid gap-4",children:[r.map(F=>{if(F.calculateDynamicProperties&&(F={...F,...F.calculateDynamicProperties(re,F)||{}}),F.isVisible===!1||F.deprecated)return null;if(F.inputType==="fieldset")return L(nt,{...F,name:`${m?F.name:`${o}.${F.name}`}`,components:s},`${m?F.name:`${o}.${F.name}`}`);if(F.inputType==="fieldset-flat")return L(nt,{...F,name:`${m?F.name:`${o}.${F.name}`}`,components:s,isFlatFieldset:!0},`${m?F.name:`${o}.${F.name}`}`);let Y=Te[F.inputType];if(F.Component){let{Component:_e}=F;return L(_e,{...F},F.name)}return Y?(F.inputType==="select"&&F.multiple&&(Y=Te["multi-select"]),V(Jt,{children:[L(Y,{...F,name:`${m?F.name:`${o}.${F.name}`}`,component:s?.[F.inputType]}),F.extra?F.extra:null]},`${m?F.name:`${o}.${F.name}`}`)):V("p",{className:"error",children:["Field type ",F.inputType," not supported"]})}),a||null,i?L(ot,{...i}):null]})]})]})}t(nt,"FieldSetField");export{Te as a,ot as b,nt as c};
|
|
2
|
-
//# sourceMappingURL=chunk-FLXY4CUE.js.map
|