@remoteoss/remote-flows 1.7.0 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ButtonDefault-NLDQHAWN.js +2 -0
- package/dist/CheckboxFieldDefault-QXABRJXG.js +2 -0
- package/dist/CountryFieldDefault-VJM3C6WE.js +2 -0
- package/dist/DatePickerFieldDefault-3MBSCS3W.js +2 -0
- package/dist/DrawerDefault-5EYKRPS7.js +2 -0
- package/dist/EmailFieldDefault-3ES7SMDC.js +2 -0
- package/dist/FieldsetToggleButtonDefault-TPLNRX3E.js +2 -0
- package/dist/FileUploadFieldDefault-PNM6H64X.js +2 -0
- package/dist/MultiSelectFieldDefault-THD7TDWF.js +2 -0
- package/dist/NumberFieldDefault-PCH6RRDK.js +2 -0
- package/dist/PDFPreviewDefault-474JH3KB.js +2 -0
- package/dist/RadioGroupFieldDefault-CM33F3EP.js +2 -0
- package/dist/SelectFieldDefault-NHDJRM5H.js +2 -0
- package/dist/StatementDefault-CSHXL3G2.js +2 -0
- package/dist/TableFieldDefault-N7MO2QJI.js +2 -0
- package/dist/TextAreaFieldDefault-OG4UM4DG.js +2 -0
- package/dist/TextFieldDefault-FECR4GRK.js +2 -0
- package/dist/WorkScheduleFieldDefault-G2MR2DBY.js +2 -0
- package/dist/ZendeskDrawerDefault-W3RCTVCH.js +2 -0
- package/dist/{chunk-W4XNUDHJ.js → chunk-2SN7VPBR.js} +2 -2
- package/dist/{chunk-2BTW5VQM.js → chunk-3JJEKIQ2.js} +2 -2
- package/dist/{chunk-X7EZIAZ3.js → chunk-3QNS3IZB.js} +2 -2
- package/dist/{chunk-H55YNNRX.js → chunk-3UAJX23Y.js} +2 -2
- package/dist/{chunk-I42KSW2T.js → chunk-3UJC7KHD.js} +2 -2
- package/dist/chunk-3X36ZFNP.js +2 -0
- package/dist/chunk-3X36ZFNP.js.map +1 -0
- package/dist/{chunk-4VDLIQW6.js → chunk-4JOZ4VIJ.js} +2 -2
- package/dist/{chunk-K537DG4M.js → chunk-5G5UBS6W.js} +2 -2
- package/dist/{chunk-QVUSRZ2Z.js → chunk-5IHRUTHD.js} +2 -2
- package/dist/chunk-5XHL6B25.js +6 -0
- package/dist/chunk-5XHL6B25.js.map +1 -0
- package/dist/{chunk-557BE4KV.js → chunk-634DTN72.js} +2 -2
- package/dist/{chunk-VZCWCH7L.js → chunk-6ZEZZZFB.js} +2 -2
- package/dist/{chunk-QPUWU5R3.js → chunk-7QP5TRMH.js} +2 -2
- package/dist/{chunk-R3V5AHPG.js → chunk-7QRAEME3.js} +2 -2
- package/dist/{chunk-CB3JGUXW.js → chunk-7SYE5KEV.js} +2 -2
- package/dist/{chunk-OZQVMA77.js → chunk-A54D24NT.js} +2 -2
- package/dist/{chunk-TN37JYBC.js → chunk-AN5U7FWW.js} +2 -2
- package/dist/{chunk-4PWW2KIE.js → chunk-BJJTAQPT.js} +2 -2
- package/dist/{chunk-7VS4FRI4.js → chunk-BMVPIRKX.js} +2 -2
- package/dist/{chunk-GH3FNNAU.js → chunk-C2NROAMW.js} +2 -2
- package/dist/{chunk-B4L4JBSX.js → chunk-C4NXXY3X.js} +2 -2
- package/dist/{chunk-Y6VAENOP.js → chunk-CEHS4AFO.js} +2 -2
- package/dist/chunk-CEM3JUSV.js +2 -0
- package/dist/chunk-CEM3JUSV.js.map +1 -0
- package/dist/{chunk-5H3G7L52.js → chunk-CKA37AR5.js} +2 -2
- package/dist/{chunk-SE7EANMF.js → chunk-CKTFJUGZ.js} +2 -2
- package/dist/{chunk-WMVZY6FJ.js → chunk-CNCOVTDL.js} +2 -2
- package/dist/{chunk-4UKIHBAU.js → chunk-COAGOVMZ.js} +2 -2
- package/dist/{chunk-2H357HMX.js → chunk-CWQQA3P4.js} +2 -2
- package/dist/{chunk-IYBUDYFU.js → chunk-D3XDJFE3.js} +2 -2
- package/dist/{chunk-H3ZZYAI6.js → chunk-D4FBB5XW.js} +2 -2
- package/dist/chunk-DG34PSAO.js +2 -0
- package/dist/chunk-DG34PSAO.js.map +1 -0
- package/dist/{chunk-2Q24UYTZ.js → chunk-DWTKSHQJ.js} +2 -2
- package/dist/{chunk-ZCXTTVGV.js → chunk-EAF6XPH6.js} +2 -2
- package/dist/chunk-EFLWMMG5.js +2 -0
- package/dist/chunk-EFLWMMG5.js.map +1 -0
- package/dist/{chunk-5QEOCZWA.js → chunk-EIFXWGXM.js} +2 -2
- package/dist/chunk-EUSCQL4H.js +2 -0
- package/dist/chunk-EUSCQL4H.js.map +1 -0
- package/dist/{chunk-NIJG4TPU.js → chunk-EW36MHXP.js} +2 -2
- package/dist/{chunk-MP4WFKD3.js → chunk-EYHFPHIA.js} +2 -2
- package/dist/{chunk-R3C7KEKY.js → chunk-F2VYTYIQ.js} +2 -2
- package/dist/{chunk-CQEMKL24.js → chunk-FJLSVTBJ.js} +2 -2
- package/dist/{chunk-LGIJO73Z.js → chunk-FJPY27YJ.js} +2 -2
- package/dist/{chunk-JGSMNVB5.js → chunk-FJZPATKO.js} +2 -2
- package/dist/{chunk-H3ZACNQ6.js → chunk-FLW5LACO.js} +2 -2
- package/dist/{chunk-IRZB32VO.js → chunk-G5DVMK4E.js} +2 -2
- package/dist/{chunk-5XEJY6AG.js → chunk-GBETAH3G.js} +2 -2
- package/dist/chunk-GCWEOZBS.js +2 -0
- package/dist/chunk-GCWEOZBS.js.map +1 -0
- package/dist/{chunk-HY45YMQX.js → chunk-GLNDB4KG.js} +2 -2
- package/dist/{chunk-LYFET6KE.js → chunk-H2OBH7SK.js} +2 -2
- package/dist/{chunk-JVBZ42B2.js → chunk-H5VA2OWQ.js} +2 -2
- package/dist/{chunk-66LATGGO.js → chunk-HBPFTEHZ.js} +2 -2
- package/dist/chunk-HLSVMRWX.js +2 -0
- package/dist/{chunk-AQPM4YXS.js.map → chunk-HLSVMRWX.js.map} +1 -1
- package/dist/chunk-I6Y6AWYE.js +2 -0
- package/dist/chunk-I6Y6AWYE.js.map +1 -0
- package/dist/{chunk-CZJTTZET.js → chunk-IEX4KZUY.js} +2 -2
- package/dist/chunk-IEXTH6YO.js +2 -0
- package/dist/chunk-IEXTH6YO.js.map +1 -0
- package/dist/{chunk-HSCS2LW2.js → chunk-IG5LQPUN.js} +2 -2
- package/dist/{chunk-B5YG3EGS.js → chunk-ILX4QHHH.js} +2 -2
- package/dist/chunk-IPITD7UK.js +2 -0
- package/dist/chunk-IPITD7UK.js.map +1 -0
- package/dist/{chunk-4VYMV32U.js → chunk-JIZKHO7L.js} +2 -2
- package/dist/{chunk-AYDY7FWS.js → chunk-JKEUTGPQ.js} +2 -2
- package/dist/{chunk-LAV3X727.js → chunk-JQ2ESL5O.js} +2 -2
- package/dist/{chunk-QN2JIZ46.js → chunk-JTSHX4RB.js} +2 -2
- package/dist/{chunk-L5IKPX6D.js → chunk-KXF27FC4.js} +2 -2
- package/dist/chunk-LDJW2CBF.js +2 -0
- package/dist/chunk-LDJW2CBF.js.map +1 -0
- package/dist/{chunk-JPG7ALCH.js → chunk-LNWBGEKE.js} +2 -2
- package/dist/{chunk-MORWF4JC.js → chunk-ML56EPFW.js} +2 -2
- package/dist/{chunk-47QOKKPT.js → chunk-MM5K3XXY.js} +2 -2
- package/dist/{chunk-ARYTUUI7.js → chunk-MZNUCWQU.js} +2 -2
- package/dist/chunk-N4W7JU2D.js +2 -0
- package/dist/{chunk-3UDG4IJO.js.map → chunk-N4W7JU2D.js.map} +1 -1
- package/dist/{chunk-MWPTUX4I.js → chunk-NCELDZXG.js} +2 -2
- package/dist/{chunk-ABYONP42.js → chunk-NXDG32BY.js} +2 -2
- package/dist/{chunk-5RYRPEXE.js → chunk-OVTH3ZHO.js} +2 -2
- package/dist/{chunk-RFKETKV4.js → chunk-OZWDFGLQ.js} +2 -2
- package/dist/{chunk-L2YAFMAT.js → chunk-P45OX5YT.js} +2 -2
- package/dist/{chunk-GL75LB2U.js → chunk-PGRQG254.js} +2 -2
- package/dist/{chunk-JZL6UTLA.js → chunk-PO57BOOY.js} +2 -2
- package/dist/{chunk-X2F3PNZY.js → chunk-RLRSNB77.js} +2 -2
- package/dist/chunk-RQUNEKD2.js +2 -0
- package/dist/chunk-RQUNEKD2.js.map +1 -0
- package/dist/{chunk-JAQTY4WI.js → chunk-S6OVT37M.js} +2 -2
- package/dist/chunk-SBQYUJFI.js +2 -0
- package/dist/chunk-SBQYUJFI.js.map +1 -0
- package/dist/{chunk-MO57FCIH.js → chunk-SVYPDGZN.js} +2 -2
- package/dist/chunk-T7O3YYOG.js +2 -0
- package/dist/chunk-T7O3YYOG.js.map +1 -0
- package/dist/{chunk-TATL6AQD.js → chunk-THPH57GK.js} +2 -2
- package/dist/{chunk-Y7WX5NK5.js → chunk-TZPHBNNS.js} +2 -2
- package/dist/{chunk-FLCQGVLT.js → chunk-UBRRCAAI.js} +2 -2
- package/dist/{chunk-2EJDEVHY.js → chunk-UHO6CCVA.js} +2 -2
- package/dist/chunk-UMOL4GLZ.js +2 -0
- package/dist/chunk-UMOL4GLZ.js.map +1 -0
- package/dist/{chunk-G2LBZKLG.js → chunk-UXUZA7XH.js} +2 -2
- package/dist/{chunk-DYG225ZX.js → chunk-VC6X3C2I.js} +2 -2
- package/dist/{chunk-FXQAB3WS.js → chunk-VIQQ3IHI.js} +2 -2
- package/dist/{chunk-LEQXRQ6X.js → chunk-VKYP2MQQ.js} +2 -2
- package/dist/{chunk-YYFKOSNH.js → chunk-VLP6L77E.js} +2 -2
- package/dist/{chunk-YYFKOSNH.js.map → chunk-VLP6L77E.js.map} +1 -1
- package/dist/{chunk-KOJ7XDQ3.js → chunk-WHROCBHG.js} +2 -2
- package/dist/{chunk-K5CZDOJG.js → chunk-WT6E5LO4.js} +2 -2
- package/dist/{chunk-S6SLUYTL.js → chunk-WTQ6PTMB.js} +2 -2
- package/dist/{chunk-4RFJXFQX.js → chunk-XDZFLJ5F.js} +2 -2
- package/dist/{chunk-ZLPAQQZI.js → chunk-XIEA775Q.js} +2 -2
- package/dist/{chunk-NTMY5VLN.js → chunk-XQUHG7HJ.js} +2 -2
- package/dist/{chunk-4Z2ZRDMG.js → chunk-XSG4QXPY.js} +2 -2
- package/dist/{chunk-5JJRVNQQ.js → chunk-YHD2RXJC.js} +2 -2
- package/dist/{chunk-VMAPQGL4.js → chunk-YHIADGM3.js} +2 -2
- package/dist/{chunk-Q24D6SO6.js → chunk-YMLXE6OO.js} +2 -2
- package/dist/{chunk-IF42CZJH.js → chunk-YRC6EEM3.js} +2 -2
- package/dist/{chunk-HMCTBCYH.js → chunk-YUQ3GDQI.js} +2 -2
- package/dist/{chunk-PRVP6ID7.js → chunk-ZNV46UUP.js} +2 -2
- package/dist/{chunk-L4ZKUL5E.js → chunk-ZOPKBLGA.js} +2 -2
- package/dist/{chunk-XJPB4XV6.js → chunk-ZTBFYRNL.js} +2 -2
- package/dist/chunk-ZVUQDK2E.js +2 -0
- package/dist/default-components.d.ts +2 -2
- package/dist/default-components.js +1 -1
- package/dist/default-components.js.map +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.d.ts +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.js +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentFlow.d.ts +3 -3
- package/dist/flows/ContractAmendment/ContractAmendmentFlow.js +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentForm.d.ts +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentForm.js +1 -1
- package/dist/flows/ContractAmendment/context.d.ts +3 -3
- package/dist/flows/ContractAmendment/hooks.d.ts +3 -3
- package/dist/flows/ContractAmendment/hooks.js +1 -1
- package/dist/flows/ContractAmendment/index.d.ts +3 -3
- package/dist/flows/ContractAmendment/index.js +1 -1
- package/dist/flows/ContractAmendment/types.d.ts +2 -2
- package/dist/flows/ContractAmendment/utils.d.ts +2 -2
- package/dist/flows/ContractAmendment/utils.js +1 -1
- package/dist/flows/ContractorOnboarding/ContractorOnboarding.d.ts +6 -6
- package/dist/flows/ContractorOnboarding/ContractorOnboarding.js +1 -1
- package/dist/flows/ContractorOnboarding/api.d.ts +303 -3
- package/dist/flows/ContractorOnboarding/api.js +1 -1
- package/dist/flows/ContractorOnboarding/components/BasicInformationStep.d.ts +4 -4
- package/dist/flows/ContractorOnboarding/components/BasicInformationStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.d.ts +6 -6
- package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractPreviewHeader.d.ts +2 -2
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStatement.d.ts +2 -2
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStatement.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.d.ts +6 -6
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.js +1 -1
- package/dist/flows/ContractorOnboarding/components/OnboardingInvite.d.ts +3 -3
- package/dist/flows/ContractorOnboarding/components/OnboardingInvite.js +1 -1
- package/dist/flows/ContractorOnboarding/components/PricingPlan.d.ts +6 -6
- package/dist/flows/ContractorOnboarding/components/PricingPlan.js +1 -1
- package/dist/flows/ContractorOnboarding/components/SelectCountryStep.d.ts +4 -4
- package/dist/flows/ContractorOnboarding/components/SelectCountryStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/StatementOfWorkDisclaimer.js +1 -1
- package/dist/flows/ContractorOnboarding/constants.d.ts +2 -1
- package/dist/flows/ContractorOnboarding/constants.js +1 -1
- package/dist/flows/ContractorOnboarding/context.d.ts +10 -6
- package/dist/flows/ContractorOnboarding/hooks.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/hooks.js +1 -1
- package/dist/flows/ContractorOnboarding/index.d.ts +6 -6
- package/dist/flows/ContractorOnboarding/index.js +1 -1
- package/dist/flows/ContractorOnboarding/jsfModify.d.ts +46 -0
- package/dist/flows/ContractorOnboarding/jsfModify.js +2 -0
- package/dist/flows/ContractorOnboarding/jsfModify.js.map +1 -0
- package/dist/flows/ContractorOnboarding/types.d.ts +6 -6
- package/dist/flows/ContractorOnboarding/utils.d.ts +2 -14
- package/dist/flows/ContractorOnboarding/utils.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorFlow.d.ts +3 -3
- package/dist/flows/CostCalculator/CostCalculatorFlow.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorForm.d.ts +3 -3
- package/dist/flows/CostCalculator/CostCalculatorForm.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorResetButton.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorSubmitButton.js +1 -1
- package/dist/flows/CostCalculator/EstimationResults/EstimationResults.d.ts +2 -2
- package/dist/flows/CostCalculator/EstimationResults/EstimationResults.js +1 -1
- package/dist/flows/CostCalculator/SummaryResults/SummaryResults.d.ts +2 -2
- package/dist/flows/CostCalculator/SummaryResults/SummaryResults.js +1 -1
- package/dist/flows/CostCalculator/api.d.ts +2 -2
- package/dist/flows/CostCalculator/api.js +1 -1
- package/dist/flows/CostCalculator/components/SalaryField.d.ts +2 -2
- package/dist/flows/CostCalculator/components/SalaryField.js +1 -1
- package/dist/flows/CostCalculator/context.d.ts +3 -3
- package/dist/flows/CostCalculator/hooks.d.ts +3 -3
- package/dist/flows/CostCalculator/hooks.js +1 -1
- package/dist/flows/CostCalculator/index.d.ts +3 -3
- package/dist/flows/CostCalculator/index.js +1 -1
- package/dist/flows/CostCalculator/types.d.ts +2 -2
- package/dist/flows/CostCalculator/utils.d.ts +3 -3
- package/dist/flows/CostCalculator/utils.js +1 -1
- package/dist/flows/Onboarding/OnboardingFlow.d.ts +4 -4
- package/dist/flows/Onboarding/OnboardingFlow.js +1 -1
- package/dist/flows/Onboarding/api.d.ts +4 -4
- package/dist/flows/Onboarding/api.js +1 -1
- package/dist/flows/Onboarding/components/AnnualGrossSalary.d.ts +2 -2
- package/dist/flows/Onboarding/components/AnnualGrossSalary.js +1 -1
- package/dist/flows/Onboarding/components/BasicInformationStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/BasicInformationStep.js +1 -1
- package/dist/flows/Onboarding/components/BenefitsStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/BenefitsStep.js +1 -1
- package/dist/flows/Onboarding/components/ContractDetailsStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/ContractDetailsStep.js +1 -1
- package/dist/flows/Onboarding/components/OnboardingForm.d.ts +4 -4
- package/dist/flows/Onboarding/components/OnboardingForm.js +1 -1
- package/dist/flows/Onboarding/components/OnboardingInvite.d.ts +3 -3
- package/dist/flows/Onboarding/components/OnboardingInvite.js +1 -1
- package/dist/flows/Onboarding/components/ReviewStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/SaveDraftButton.d.ts +3 -3
- package/dist/flows/Onboarding/components/SelectCountryStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/SelectCountryStep.js +1 -1
- package/dist/flows/Onboarding/context.d.ts +4 -4
- package/dist/flows/Onboarding/hooks.d.ts +4 -4
- package/dist/flows/Onboarding/hooks.js +1 -1
- package/dist/flows/Onboarding/index.d.ts +4 -4
- package/dist/flows/Onboarding/index.js +1 -1
- package/dist/flows/Onboarding/types.d.ts +4 -4
- package/dist/flows/Onboarding/utils.d.ts +4 -4
- package/dist/flows/Termination/AdditionalDetailsForm.d.ts +4 -4
- package/dist/flows/Termination/AdditionalDetailsForm.js +1 -1
- package/dist/flows/Termination/EmployeeComunicationForm.d.ts +4 -4
- package/dist/flows/Termination/EmployeeComunicationForm.js +1 -1
- package/dist/flows/Termination/PaidTimeOffForm.d.ts +4 -4
- package/dist/flows/Termination/PaidTimeOffForm.js +1 -1
- package/dist/flows/Termination/TerminationDetailsForm.d.ts +4 -4
- package/dist/flows/Termination/TerminationDetailsForm.js +1 -1
- package/dist/flows/Termination/TerminationFlow.d.ts +4 -4
- package/dist/flows/Termination/TerminationFlow.js +1 -1
- package/dist/flows/Termination/TerminationForm.d.ts +4 -4
- package/dist/flows/Termination/TerminationForm.js +1 -1
- package/dist/flows/Termination/api.d.ts +5 -5
- package/dist/flows/Termination/api.js +1 -1
- package/dist/flows/Termination/components/AcknowledgeInformation/AcknowledgeInformation.js +1 -1
- package/dist/flows/Termination/components/AcknowledgeInformation/AcknowledgeInformationFees.js +1 -1
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOff.d.ts +6 -6
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOff.js +1 -1
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.d.ts +6 -6
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.js +1 -1
- package/dist/flows/Termination/components/PaidTimeOff/types.d.ts +6 -6
- package/dist/flows/Termination/components/TerminationDialogInfoContent/TerminationDialogInfoContent.js +1 -1
- package/dist/flows/Termination/components/TerminationReasonsDetailContent/TerminationReasonsDetailContent.js +1 -1
- package/dist/flows/Termination/context.d.ts +4 -4
- package/dist/flows/Termination/hooks.d.ts +4 -4
- package/dist/flows/Termination/hooks.js +1 -1
- package/dist/flows/Termination/index.d.ts +6 -6
- package/dist/flows/Termination/index.js +1 -1
- package/dist/flows/Termination/json-schemas/jsonSchema.js +1 -1
- package/dist/flows/Termination/json-schemas/schema.d.ts +4 -4
- package/dist/flows/Termination/json-schemas/schema.js +1 -1
- package/dist/flows/Termination/types.d.ts +4 -4
- package/dist/flows/Termination/utils.d.ts +4 -4
- package/dist/flows/Termination/utils.js +1 -1
- package/dist/flows/types.d.ts +12 -3
- package/dist/index.d.ts +16 -10
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/internals.d.ts +3 -3
- package/dist/internals.js +1 -1
- package/dist/{mutations-1qBMUBHv.d.ts → mutations-D1eQrIJS.d.ts} +1 -1
- package/dist/{remoteFlows-CdH85jWA.d.ts → remoteFlows-DtWy_kl6.d.ts} +1 -1
- package/dist/{types-3ayA0Jjk.d.ts → types-C73xHbIf.d.ts} +3 -3
- package/dist/{types-DIkYYcU2.d.ts → types-CYEQpq5z.d.ts} +2 -2
- package/dist/{types-DzL24-XO.d.ts → types-CoznD6fc.d.ts} +1 -1
- package/dist/{types-9RkAisEn.d.ts → types-uiKCaHsn.d.ts} +10 -6
- package/dist/{types.gen-ClAI2-dt.d.ts → types.gen-Dg6qF5i1.d.ts} +53 -1
- package/dist/{utils-cwu3lIjJ.d.ts → utils-DNGgpT60.d.ts} +1 -1
- package/package.json +3 -3
- package/dist/ButtonDefault-MJNBS6JN.js +0 -2
- package/dist/CheckboxFieldDefault-5UCOCDE6.js +0 -2
- package/dist/CountryFieldDefault-ZOQTJCFL.js +0 -2
- package/dist/DatePickerFieldDefault-YOLAGQD6.js +0 -2
- package/dist/DrawerDefault-TPMJO4JW.js +0 -2
- package/dist/EmailFieldDefault-LIG2I3KN.js +0 -2
- package/dist/FieldsetToggleButtonDefault-ONS2KHTB.js +0 -2
- package/dist/FileUploadFieldDefault-Y3DOJH6L.js +0 -2
- package/dist/MultiSelectFieldDefault-LMXRGP3B.js +0 -2
- package/dist/NumberFieldDefault-O7WYKNXV.js +0 -2
- package/dist/PDFPreviewDefault-WZKNJUIU.js +0 -2
- package/dist/RadioGroupFieldDefault-Y5L4GIQE.js +0 -2
- package/dist/SelectFieldDefault-RM72IEHN.js +0 -2
- package/dist/StatementDefault-CIHGUOWH.js +0 -2
- package/dist/TableFieldDefault-42PHYI5U.js +0 -2
- package/dist/TextAreaFieldDefault-7WGZ3OOS.js +0 -2
- package/dist/TextFieldDefault-NW25MQKP.js +0 -2
- package/dist/WorkScheduleFieldDefault-RP5SBJS7.js +0 -2
- package/dist/ZendeskDrawerDefault-H7UH2G35.js +0 -2
- package/dist/chunk-27QEJQHZ.js +0 -2
- package/dist/chunk-27QEJQHZ.js.map +0 -1
- package/dist/chunk-3UDG4IJO.js +0 -2
- package/dist/chunk-42R2H2DW.js +0 -2
- package/dist/chunk-7XTH77HC.js +0 -2
- package/dist/chunk-7XTH77HC.js.map +0 -1
- package/dist/chunk-AQPM4YXS.js +0 -2
- package/dist/chunk-CVSWYOU2.js +0 -2
- package/dist/chunk-CVSWYOU2.js.map +0 -1
- package/dist/chunk-EAV5VOMZ.js +0 -2
- package/dist/chunk-EAV5VOMZ.js.map +0 -1
- package/dist/chunk-ERSXMU5E.js +0 -2
- package/dist/chunk-ERSXMU5E.js.map +0 -1
- package/dist/chunk-GYQJPYLL.js +0 -6
- package/dist/chunk-GYQJPYLL.js.map +0 -1
- package/dist/chunk-HRG5MSVG.js +0 -2
- package/dist/chunk-HRG5MSVG.js.map +0 -1
- package/dist/chunk-INTCYXNY.js +0 -2
- package/dist/chunk-INTCYXNY.js.map +0 -1
- package/dist/chunk-KLTLJUTG.js +0 -2
- package/dist/chunk-KLTLJUTG.js.map +0 -1
- package/dist/chunk-OU6HCXKJ.js +0 -2
- package/dist/chunk-OU6HCXKJ.js.map +0 -1
- package/dist/chunk-S7S2XNVU.js +0 -2
- package/dist/chunk-S7S2XNVU.js.map +0 -1
- package/dist/chunk-V63WMKGL.js +0 -2
- package/dist/chunk-V63WMKGL.js.map +0 -1
- package/dist/chunk-XXIUJVIY.js +0 -2
- package/dist/chunk-XXIUJVIY.js.map +0 -1
- package/dist/chunk-Y625DU2T.js +0 -2
- package/dist/chunk-Y625DU2T.js.map +0 -1
- /package/dist/{ButtonDefault-MJNBS6JN.js.map → ButtonDefault-NLDQHAWN.js.map} +0 -0
- /package/dist/{CheckboxFieldDefault-5UCOCDE6.js.map → CheckboxFieldDefault-QXABRJXG.js.map} +0 -0
- /package/dist/{CountryFieldDefault-ZOQTJCFL.js.map → CountryFieldDefault-VJM3C6WE.js.map} +0 -0
- /package/dist/{DatePickerFieldDefault-YOLAGQD6.js.map → DatePickerFieldDefault-3MBSCS3W.js.map} +0 -0
- /package/dist/{DrawerDefault-TPMJO4JW.js.map → DrawerDefault-5EYKRPS7.js.map} +0 -0
- /package/dist/{EmailFieldDefault-LIG2I3KN.js.map → EmailFieldDefault-3ES7SMDC.js.map} +0 -0
- /package/dist/{FieldsetToggleButtonDefault-ONS2KHTB.js.map → FieldsetToggleButtonDefault-TPLNRX3E.js.map} +0 -0
- /package/dist/{FileUploadFieldDefault-Y3DOJH6L.js.map → FileUploadFieldDefault-PNM6H64X.js.map} +0 -0
- /package/dist/{MultiSelectFieldDefault-LMXRGP3B.js.map → MultiSelectFieldDefault-THD7TDWF.js.map} +0 -0
- /package/dist/{NumberFieldDefault-O7WYKNXV.js.map → NumberFieldDefault-PCH6RRDK.js.map} +0 -0
- /package/dist/{PDFPreviewDefault-WZKNJUIU.js.map → PDFPreviewDefault-474JH3KB.js.map} +0 -0
- /package/dist/{RadioGroupFieldDefault-Y5L4GIQE.js.map → RadioGroupFieldDefault-CM33F3EP.js.map} +0 -0
- /package/dist/{SelectFieldDefault-RM72IEHN.js.map → SelectFieldDefault-NHDJRM5H.js.map} +0 -0
- /package/dist/{StatementDefault-CIHGUOWH.js.map → StatementDefault-CSHXL3G2.js.map} +0 -0
- /package/dist/{TableFieldDefault-42PHYI5U.js.map → TableFieldDefault-N7MO2QJI.js.map} +0 -0
- /package/dist/{TextAreaFieldDefault-7WGZ3OOS.js.map → TextAreaFieldDefault-OG4UM4DG.js.map} +0 -0
- /package/dist/{TextFieldDefault-NW25MQKP.js.map → TextFieldDefault-FECR4GRK.js.map} +0 -0
- /package/dist/{WorkScheduleFieldDefault-RP5SBJS7.js.map → WorkScheduleFieldDefault-G2MR2DBY.js.map} +0 -0
- /package/dist/{ZendeskDrawerDefault-H7UH2G35.js.map → ZendeskDrawerDefault-W3RCTVCH.js.map} +0 -0
- /package/dist/{chunk-W4XNUDHJ.js.map → chunk-2SN7VPBR.js.map} +0 -0
- /package/dist/{chunk-2BTW5VQM.js.map → chunk-3JJEKIQ2.js.map} +0 -0
- /package/dist/{chunk-X7EZIAZ3.js.map → chunk-3QNS3IZB.js.map} +0 -0
- /package/dist/{chunk-H55YNNRX.js.map → chunk-3UAJX23Y.js.map} +0 -0
- /package/dist/{chunk-I42KSW2T.js.map → chunk-3UJC7KHD.js.map} +0 -0
- /package/dist/{chunk-4VDLIQW6.js.map → chunk-4JOZ4VIJ.js.map} +0 -0
- /package/dist/{chunk-K537DG4M.js.map → chunk-5G5UBS6W.js.map} +0 -0
- /package/dist/{chunk-QVUSRZ2Z.js.map → chunk-5IHRUTHD.js.map} +0 -0
- /package/dist/{chunk-557BE4KV.js.map → chunk-634DTN72.js.map} +0 -0
- /package/dist/{chunk-VZCWCH7L.js.map → chunk-6ZEZZZFB.js.map} +0 -0
- /package/dist/{chunk-QPUWU5R3.js.map → chunk-7QP5TRMH.js.map} +0 -0
- /package/dist/{chunk-R3V5AHPG.js.map → chunk-7QRAEME3.js.map} +0 -0
- /package/dist/{chunk-CB3JGUXW.js.map → chunk-7SYE5KEV.js.map} +0 -0
- /package/dist/{chunk-OZQVMA77.js.map → chunk-A54D24NT.js.map} +0 -0
- /package/dist/{chunk-TN37JYBC.js.map → chunk-AN5U7FWW.js.map} +0 -0
- /package/dist/{chunk-4PWW2KIE.js.map → chunk-BJJTAQPT.js.map} +0 -0
- /package/dist/{chunk-7VS4FRI4.js.map → chunk-BMVPIRKX.js.map} +0 -0
- /package/dist/{chunk-GH3FNNAU.js.map → chunk-C2NROAMW.js.map} +0 -0
- /package/dist/{chunk-B4L4JBSX.js.map → chunk-C4NXXY3X.js.map} +0 -0
- /package/dist/{chunk-Y6VAENOP.js.map → chunk-CEHS4AFO.js.map} +0 -0
- /package/dist/{chunk-5H3G7L52.js.map → chunk-CKA37AR5.js.map} +0 -0
- /package/dist/{chunk-SE7EANMF.js.map → chunk-CKTFJUGZ.js.map} +0 -0
- /package/dist/{chunk-WMVZY6FJ.js.map → chunk-CNCOVTDL.js.map} +0 -0
- /package/dist/{chunk-4UKIHBAU.js.map → chunk-COAGOVMZ.js.map} +0 -0
- /package/dist/{chunk-2H357HMX.js.map → chunk-CWQQA3P4.js.map} +0 -0
- /package/dist/{chunk-IYBUDYFU.js.map → chunk-D3XDJFE3.js.map} +0 -0
- /package/dist/{chunk-H3ZZYAI6.js.map → chunk-D4FBB5XW.js.map} +0 -0
- /package/dist/{chunk-2Q24UYTZ.js.map → chunk-DWTKSHQJ.js.map} +0 -0
- /package/dist/{chunk-ZCXTTVGV.js.map → chunk-EAF6XPH6.js.map} +0 -0
- /package/dist/{chunk-5QEOCZWA.js.map → chunk-EIFXWGXM.js.map} +0 -0
- /package/dist/{chunk-NIJG4TPU.js.map → chunk-EW36MHXP.js.map} +0 -0
- /package/dist/{chunk-MP4WFKD3.js.map → chunk-EYHFPHIA.js.map} +0 -0
- /package/dist/{chunk-R3C7KEKY.js.map → chunk-F2VYTYIQ.js.map} +0 -0
- /package/dist/{chunk-CQEMKL24.js.map → chunk-FJLSVTBJ.js.map} +0 -0
- /package/dist/{chunk-LGIJO73Z.js.map → chunk-FJPY27YJ.js.map} +0 -0
- /package/dist/{chunk-JGSMNVB5.js.map → chunk-FJZPATKO.js.map} +0 -0
- /package/dist/{chunk-H3ZACNQ6.js.map → chunk-FLW5LACO.js.map} +0 -0
- /package/dist/{chunk-IRZB32VO.js.map → chunk-G5DVMK4E.js.map} +0 -0
- /package/dist/{chunk-5XEJY6AG.js.map → chunk-GBETAH3G.js.map} +0 -0
- /package/dist/{chunk-HY45YMQX.js.map → chunk-GLNDB4KG.js.map} +0 -0
- /package/dist/{chunk-LYFET6KE.js.map → chunk-H2OBH7SK.js.map} +0 -0
- /package/dist/{chunk-JVBZ42B2.js.map → chunk-H5VA2OWQ.js.map} +0 -0
- /package/dist/{chunk-66LATGGO.js.map → chunk-HBPFTEHZ.js.map} +0 -0
- /package/dist/{chunk-CZJTTZET.js.map → chunk-IEX4KZUY.js.map} +0 -0
- /package/dist/{chunk-HSCS2LW2.js.map → chunk-IG5LQPUN.js.map} +0 -0
- /package/dist/{chunk-B5YG3EGS.js.map → chunk-ILX4QHHH.js.map} +0 -0
- /package/dist/{chunk-4VYMV32U.js.map → chunk-JIZKHO7L.js.map} +0 -0
- /package/dist/{chunk-AYDY7FWS.js.map → chunk-JKEUTGPQ.js.map} +0 -0
- /package/dist/{chunk-LAV3X727.js.map → chunk-JQ2ESL5O.js.map} +0 -0
- /package/dist/{chunk-QN2JIZ46.js.map → chunk-JTSHX4RB.js.map} +0 -0
- /package/dist/{chunk-L5IKPX6D.js.map → chunk-KXF27FC4.js.map} +0 -0
- /package/dist/{chunk-JPG7ALCH.js.map → chunk-LNWBGEKE.js.map} +0 -0
- /package/dist/{chunk-MORWF4JC.js.map → chunk-ML56EPFW.js.map} +0 -0
- /package/dist/{chunk-47QOKKPT.js.map → chunk-MM5K3XXY.js.map} +0 -0
- /package/dist/{chunk-ARYTUUI7.js.map → chunk-MZNUCWQU.js.map} +0 -0
- /package/dist/{chunk-MWPTUX4I.js.map → chunk-NCELDZXG.js.map} +0 -0
- /package/dist/{chunk-ABYONP42.js.map → chunk-NXDG32BY.js.map} +0 -0
- /package/dist/{chunk-5RYRPEXE.js.map → chunk-OVTH3ZHO.js.map} +0 -0
- /package/dist/{chunk-RFKETKV4.js.map → chunk-OZWDFGLQ.js.map} +0 -0
- /package/dist/{chunk-L2YAFMAT.js.map → chunk-P45OX5YT.js.map} +0 -0
- /package/dist/{chunk-GL75LB2U.js.map → chunk-PGRQG254.js.map} +0 -0
- /package/dist/{chunk-JZL6UTLA.js.map → chunk-PO57BOOY.js.map} +0 -0
- /package/dist/{chunk-X2F3PNZY.js.map → chunk-RLRSNB77.js.map} +0 -0
- /package/dist/{chunk-JAQTY4WI.js.map → chunk-S6OVT37M.js.map} +0 -0
- /package/dist/{chunk-MO57FCIH.js.map → chunk-SVYPDGZN.js.map} +0 -0
- /package/dist/{chunk-TATL6AQD.js.map → chunk-THPH57GK.js.map} +0 -0
- /package/dist/{chunk-Y7WX5NK5.js.map → chunk-TZPHBNNS.js.map} +0 -0
- /package/dist/{chunk-FLCQGVLT.js.map → chunk-UBRRCAAI.js.map} +0 -0
- /package/dist/{chunk-2EJDEVHY.js.map → chunk-UHO6CCVA.js.map} +0 -0
- /package/dist/{chunk-G2LBZKLG.js.map → chunk-UXUZA7XH.js.map} +0 -0
- /package/dist/{chunk-DYG225ZX.js.map → chunk-VC6X3C2I.js.map} +0 -0
- /package/dist/{chunk-FXQAB3WS.js.map → chunk-VIQQ3IHI.js.map} +0 -0
- /package/dist/{chunk-LEQXRQ6X.js.map → chunk-VKYP2MQQ.js.map} +0 -0
- /package/dist/{chunk-KOJ7XDQ3.js.map → chunk-WHROCBHG.js.map} +0 -0
- /package/dist/{chunk-K5CZDOJG.js.map → chunk-WT6E5LO4.js.map} +0 -0
- /package/dist/{chunk-S6SLUYTL.js.map → chunk-WTQ6PTMB.js.map} +0 -0
- /package/dist/{chunk-4RFJXFQX.js.map → chunk-XDZFLJ5F.js.map} +0 -0
- /package/dist/{chunk-ZLPAQQZI.js.map → chunk-XIEA775Q.js.map} +0 -0
- /package/dist/{chunk-NTMY5VLN.js.map → chunk-XQUHG7HJ.js.map} +0 -0
- /package/dist/{chunk-4Z2ZRDMG.js.map → chunk-XSG4QXPY.js.map} +0 -0
- /package/dist/{chunk-5JJRVNQQ.js.map → chunk-YHD2RXJC.js.map} +0 -0
- /package/dist/{chunk-VMAPQGL4.js.map → chunk-YHIADGM3.js.map} +0 -0
- /package/dist/{chunk-Q24D6SO6.js.map → chunk-YMLXE6OO.js.map} +0 -0
- /package/dist/{chunk-IF42CZJH.js.map → chunk-YRC6EEM3.js.map} +0 -0
- /package/dist/{chunk-HMCTBCYH.js.map → chunk-YUQ3GDQI.js.map} +0 -0
- /package/dist/{chunk-PRVP6ID7.js.map → chunk-ZNV46UUP.js.map} +0 -0
- /package/dist/{chunk-L4ZKUL5E.js.map → chunk-ZOPKBLGA.js.map} +0 -0
- /package/dist/{chunk-XJPB4XV6.js.map → chunk-ZTBFYRNL.js.map} +0 -0
- /package/dist/{chunk-42R2H2DW.js.map → chunk-ZVUQDK2E.js.map} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as o}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as o}from"./chunk-GCWEOZBS.js";import*as t from"react";import*as e from"@radix-ui/react-checkbox";import{Check as a}from"lucide-react";import{jsx as i}from"react/jsx-runtime";var m=t.forwardRef(({className:r,...c},s)=>i(e.Root,{ref:s,className:o("peer h-4 w-4 shrink-0 rounded-sm border border-input ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-checkbox data-[state=checked]:text-primary",r),...c,children:i(e.Indicator,{className:o("flex items-center justify-center text-current"),children:i(a,{className:"h-4 w-4"})})}));m.displayName=e.Root.displayName;export{m as a};
|
|
2
|
+
//# sourceMappingURL=chunk-VIQQ3IHI.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as F}from"./chunk-P45OX5YT.js";import{a as u}from"./chunk-YHIADGM3.js";import{i as p,j as l,k as i,l as a,m as c}from"./chunk-3QNS3IZB.js";import{a as m}from"./chunk-P37U34EQ.js";import{useEffect as $,useState as v}from"react";import{jsx as n,jsxs as C}from"react/jsx-runtime";function L({field:t,fieldState:b,fieldData:o}){let[g,s]=v([]),_=m(e=>{let r=e.map(({value:S})=>S);t.onChange(r),s(e)},"handleChange");$(()=>{t.value&&o.options&&s(t.value.map(e=>o?.options?.find(r=>r.value===e)))},[t.value,o.options]);let y=[...Object.entries(o.$meta?.regions||{}).map(([e,r])=>({value:r,label:e,category:"Regions"})),...Object.entries(o.$meta?.subregions||{}).map(([e,r])=>({value:r,label:e,category:"Subregions"})),...o.options?.map(e=>({...e,value:e.value,label:e.label,category:"Countries"}))||[]];return C(p,{"data-field":t.name,className:`RemoteFlows__CountryField__Item__${t.name}`,children:[n(l,{className:"RemoteFlows__CountryField__Label",children:o.label}),n(i,{children:n(u,{options:y,selected:g,onChange:_})}),o.description&&C(a,{children:[o.description," ",n(F,{helpCenter:o.meta?.helpCenter})]}),b.error&&n(c,{})]})}m(L,"CountryFieldDefault");export{L as a};
|
|
2
|
+
//# sourceMappingURL=chunk-VKYP2MQQ.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as Z}from"./chunk-CKTFJUGZ.js";import{a as I}from"./chunk-VFRHMNLJ.js";import{a as Q,b as W,c as X,f as Y}from"./chunk-ZNV46UUP.js";import{a as C}from"./chunk-HN5HLFTB.js";import{a as G}from"./chunk-LNV36S6D.js";import{b as ee}from"./chunk-HBPFTEHZ.js";import{a as z}from"./chunk-EUSCQL4H.js";import{e as M}from"./chunk-T7O3YYOG.js";import{a as K}from"./chunk-3X36ZFNP.js";import{a as o}from"./chunk-P37U34EQ.js";import{number as Be,object as se}from"yup";import{useCallback as je,useEffect as te,useMemo as we,useRef as Re,useState as j}from"react";import{string as ne,ValidationError as re}from"yup";import{jsx as ie}from"react/jsx-runtime";var O={title:"Estimation",includeBenefits:!1,includeCostBreakdowns:!1,includePremiumBenefits:!1,enableCurrencyConversion:!1,includeEstimationTitle:!1,includeManagementFee:!1},Pe=o(t=>z(I.data.schema,void 0,t),"useStaticSchema");function xe(t,i){if(typeof t=="object"&&t!==null&&"title"in t){let l=t.title;if(l)return l}return i==="my_hiring_budget"?"Hiring budget":"Employee's annual salary"}o(xe,"getSalaryTitle");var ze=o(({defaultRegion:t,defaultCurrency:i,defaultSalary:l,estimationOptions:s,options:n,version:a}={estimationOptions:O})=>{let u=Re({fields:{}}),[k,h]=j(t),[w,R]=j(),[m,q]=j(),[H,le]=j(),{data:_,isLoading:ue}=Q({includePremiumBenefits:s.includePremiumBenefits}),{data:d,isLoading:ce}=W(),me=k||w?.value,{data:P,isLoading:de}=Y(me,{includePremiumBenefits:s.includePremiumBenefits,options:n}),U=X(),{mutateAsync:fe}=K(U),b=w?.currency,p=n?.jsfModify?.fields?.salary,F=p&&typeof p=="object"&&"presentation"in p?p.presentation:void 0,L=je(()=>{let e=b&&m?b!==m:!1;return b!==m?{from:m,to:b,shouldSwapOrder:e}:{from:b,to:m,shouldSwapOrder:e}},[b,m]),J=s.showManagementFee,$=s.includeEstimationTitle,ge=we(()=>{let{from:e,to:r,shouldSwapOrder:c}=L(),g=xe(p,H);return{fields:{salary:{...p,title:g,presentation:{salary_conversion_properties:{label:F?.salary_conversion_properties?.label,description:F?.salary_conversion_properties?.description},currencies:{from:e,to:r},Component:o(y=>ie(Z,{...y,shouldSwapOrder:c,conversionType:a==="marketing"?"no_spread":"spread",defaultValue:l}),"Component")}},hiring_budget:{...n?.jsfModify?.fields?.hiring_budget,presentation:{hidden:a=="marketing"}},management:{...n?.jsfModify?.fields?.management,properties:{...n?.jsfModify?.fields?.management?.properties,management_fee:{...n?.jsfModify?.fields?.management?.properties?.management_fee,"x-jsf-presentation":{inputType:"money",additionalProps:{currency:m||"USD"}}}},presentation:{...typeof n?.jsfModify?.fields?.management=="object"?(n?.jsfModify?.fields?.management)["x-jsf-presentation"]:{},hidden:!J,Component:o(y=>ie(ee,{...y,variant:"inset",features:{toggle:{enabled:!0,stateField:"management._expanded",labels:{expand:"Define",collapse:"Remove"}}}}),"Component")}},estimation_title:{...n?.jsfModify?.fields?.estimation_title,"x-jsf-presentation":{hidden:!$}}}}},[L,p,H,F?.salary_conversion_properties?.label,F?.salary_conversion_properties?.description,n?.jsfModify?.fields?.hiring_budget,n?.jsfModify?.fields?.management,n?.jsfModify?.fields?.estimation_title,a,m,J,$,l]),f=Pe({jsfModify:{fields:{...n?.jsfModify?.fields,...ge?.fields}}});te(()=>{if(t&&_){let e=_.find(({value:r})=>r===t);e&&R(e)}},[t,_]),te(()=>{if(i&&d){let e=d.find(({value:r})=>r===i);e&&q(e.label)}},[i,d]);async function ye(e){return fe(oe(e,s,a))}o(ye,"onSubmit");function pe(e){let r=_?.find(({value:c})=>c===e);r&&r.childRegions.length===0&&r.hasAdditionalFields?h(r.regionSlug):h(void 0),R(r)}o(pe,"onCountryChange");function Ce(e){h(e)}o(Ce,"onRegionChange");function _e(e){le(e.target.value)}o(_e,"onHiringBudgetChange");function be(e){let r=d?.find(c=>c.value===e)?.label;q(r),n?.onCurrencyChange?.(r||"")}o(be,"onChangeCurrency");let E=f.fields.find(e=>e.name==="region");if(E){let e=w?.childRegions.map(r=>({value:r.slug,label:r.name}))??[];E.options=e,E.isVisible=e.length>0,E.required=e.length>0,E.onChange=Ce,E.schema=e.length>0?ne().transform(r=>typeof r=="string"?r:"").required("Region is required"):ne()}if(d){let e=f.fields.find(r=>r.name==="currency");e&&(e.options=d,e.onChange=be)}let v=f.fields.find(e=>e.name==="hiring_budget");if(v&&(v.onChange=_e),_){let e=f.fields.find(r=>r.name==="country");e&&(e.options=_,e.onChange=pe)}let Ee=o(()=>{R(void 0),h(t)},"resetForm"),D=[...f.fields.filter(e=>e.name!=="management"),...P?.fields||[],...f.fields.filter(e=>e.name==="management")],N=ae(f.fields,m||"USD",s.includeEstimationTitle);async function Se(e){let r=null;n?.onValidation?.(e);let c=await M(e,D);try{await N.validate(c,{abortEarly:!1}),r={formErrors:{},yupError:new re([],e)}}catch(S){let B=G(S);r={formErrors:Object.entries(B).reduce((T,[A,V])=>({...T,[A]:V.message}),{}),yupError:S}}let g=P?.handleValidation(c),y=[...r?.yupError.inner||[],...g?.yupError?.inner||[]],x={...r?.yupError?.value||{},...g?.yupError?.value||{}};return{formErrors:{...r?.formErrors||{},...g?.formErrors||{}},yupError:new re(y,x)}}return o(Se,"handleValidation"),{stepState:{current:0,total:1,isLastStep:!0},fields:D,validationSchema:N,parseFormValues:o(async e=>{let{country:r,region:c,currency:g,salary_converted:y,hiring_budget:x,salary_conversion:S,management:B,estimation_title:T,...A}=e,V=e.salary;y==="salary_conversion"&&(V=S);let he=await M({country:r,region:c,salary:V,salary_converted:y,salary_conversion:S,hiring_budget:x,currency:g,management:B,estimation_title:T},f.fields),Fe=await M(A,P?.fields||[]),Ve={currency_code:d?.find(Me=>Me.value===g)?.label};return{...he,...Fe,...Ve}},"parseFormValues"),handleValidation:Se,isSubmitting:U.isPending,isLoading:ue&&ce&&de,onSubmit:ye,resetForm:Ee,currencies:d,meta:{fields:u.current?.fields}}},"useCostCalculator");function ae(t,i,l){let s=t.reduce((n,a)=>(a.name==="salary"||a.name==="salary_conversion"?n[a.name]=a.schema.when("salary_converted",{is:o(u=>u===a.name,"is"),then:o(u=>u.required("Required field"),"then"),otherwise:o(u=>u.optional(),"otherwise")}):a.name==="management"?n[a.name]=se({management_fee:Be().transform(u=>isNaN(u)?void 0:u).min(0,"Management fee must be greater than or equal to 0").max(i?C[i]:C.USD,()=>`Management fee cannot exceed ${(i?C[i]:C.USD)/100} ${i}`)}):a.name==="estimation_title"&&l?n[a.name]=a.schema.required("Required field"):n[a.name]=a.schema,n),{});return se(s)}o(ae,"buildValidationSchema");function Te(t){let i="benefit-";return Object.keys(t).reduce((l,s)=>{let n=t[s];if(n==="none")return l;let u={benefit_group_slug:s.replace(i,""),benefit_tier_slug:n};return[...l,u]},[])}o(Te,"formatBenefits");function Ae(t,i,l){let s=Number(t.management?.management_fee),n=t.currency_code;return{...{region_slug:t.region||t.country,employment_term:t.contract_duration_type??"fixed",title:t.estimation_title||i.title,age:t.age??void 0,...t.benefits&&{benefits:Te(t.benefits)},...i.includeManagementFee&&s&&{discount:{quoted_amount:i.showManagementFee?s:C[n]||C.USD,text:""}}},...Oe(t,l)}}o(Ae,"mapValueToEmployment");function Oe(t,i){let l=i==="marketing"||t.salary_converted==="salary_conversion",s=i==="standard"&&t.salary_converted==="salary",n=t.hiring_budget==="my_hiring_budget";if(l){let a=t.salary_converted==="salary_conversion";return n?{annual_total_cost_in_employer_currency:t.salary}:{[a?"annual_gross_salary_in_employer_currency":"annual_gross_salary"]:t.salary}}return s?n?{annual_total_cost:t.salary}:{annual_gross_salary:t.salary}:{}}o(Oe,"getSalaryFields");function oe(t,i=O,l="standard"){let s=Array.isArray(t)?t:[t];if(s.length===0)throw new Error("At least one employment value is required");return s.length>1&&new Set(s.map(a=>a.currency)).size>1&&console.warn("Multiple currencies detected in array. Using currency from first employment."),{employer_currency_slug:s[0].currency,include_benefits:i.includeBenefits,include_cost_breakdowns:i.includeCostBreakdowns,include_premium_benefits:i.includePremiumBenefits,include_management_fee:i.includeManagementFee,employments:s.map(n=>Ae(n,i,l))}}o(oe,"buildPayload");export{ae as a,oe as b,O as c,ze as d};
|
|
2
|
+
//# sourceMappingURL=chunk-VLP6L77E.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/CostCalculator/utils.ts","../src/flows/CostCalculator/hooks.tsx"],"sourcesContent":["import type {\n CostCalculatorEmploymentParam,\n CostCalculatorEstimateParams,\n} from '@/src/client';\n\nimport { $TSFixMe } from '@/src/types/remoteFlows';\nimport { AnyObjectSchema, number, object } from 'yup';\nimport { CostCalculatorVersion, defaultEstimationOptions } from './hooks';\nimport type {\n CostCalculatorEstimationOptions,\n CostCalculatorEstimationSubmitValues,\n CurrencyKey,\n} from './types';\nimport { BASE_RATES } from '@/src/flows/CostCalculator/constants';\n\n/**\n * Build the validation schema for the form.\n * @returns\n */\nexport function buildValidationSchema(\n fields: $TSFixMe[],\n employerBillingCurrency: string,\n includeEstimationTitle?: boolean,\n) {\n const fieldsSchema = fields.reduce<Record<string, AnyObjectSchema>>(\n (fieldsSchemaAcc, field) => {\n // Special handling for salary fields\n if (field.name === 'salary' || field.name === 'salary_conversion') {\n fieldsSchemaAcc[field.name] = (field.schema as AnyObjectSchema).when(\n 'salary_converted',\n {\n is: (val: string | null) => val === field.name,\n then: (schema) => schema.required('Required field'),\n otherwise: (schema) => schema.optional(),\n },\n );\n } else if (field.name === 'management') {\n fieldsSchemaAcc[field.name] = object({\n management_fee: number()\n .transform((value) => {\n return isNaN(value) ? undefined : value;\n })\n .min(0, 'Management fee must be greater than or equal to 0')\n .max(\n employerBillingCurrency\n ? BASE_RATES[employerBillingCurrency as CurrencyKey]\n : BASE_RATES.USD,\n () => {\n const maxValue = employerBillingCurrency\n ? BASE_RATES[employerBillingCurrency as CurrencyKey]\n : BASE_RATES.USD;\n const displayValue = maxValue / 100;\n return `Management fee cannot exceed ${displayValue} ${employerBillingCurrency}`;\n },\n ),\n });\n } else if (field.name === 'estimation_title' && includeEstimationTitle) {\n // Make estimation_title required when includeEstimationTitle is true\n fieldsSchemaAcc[field.name] = (\n field.schema as AnyObjectSchema\n ).required('Required field');\n } else {\n fieldsSchemaAcc[field.name] = field.schema as AnyObjectSchema;\n }\n return fieldsSchemaAcc;\n },\n {},\n );\n return object(fieldsSchema) as AnyObjectSchema;\n}\n\n/**\n * Format the benefits to the expected format by the API.\n * @param benefits\n * @returns\n */\nfunction formatBenefits(benefits: Record<string, string>) {\n const needle = 'benefit-';\n return Object.keys(benefits).reduce<\n Array<{ benefit_group_slug: string; benefit_tier_slug: string }>\n >((acc, key) => {\n const benefitTierSlug = benefits[key];\n if (benefitTierSlug === 'none') {\n return acc;\n }\n const benefitGroupSlug = key.replace(needle, '');\n const benefitEntry = {\n benefit_group_slug: benefitGroupSlug,\n benefit_tier_slug: benefitTierSlug,\n };\n return [...acc, benefitEntry];\n }, []);\n}\n\nfunction mapValueToEmployment(\n value: CostCalculatorEstimationSubmitValues,\n estimationOptions: CostCalculatorEstimationOptions,\n version: CostCalculatorVersion,\n): CostCalculatorEmploymentParam {\n const managementFee = Number(value.management?.management_fee);\n const currencyCode = value.currency_code;\n\n const base: CostCalculatorEmploymentParam = {\n region_slug: value.region || value.country,\n employment_term: value.contract_duration_type ?? 'fixed',\n title: value.estimation_title || estimationOptions.title,\n age: value.age ?? undefined,\n ...(value.benefits && { benefits: formatBenefits(value.benefits) }),\n ...(estimationOptions.includeManagementFee &&\n managementFee && {\n discount: {\n quoted_amount: estimationOptions.showManagementFee\n ? managementFee\n : BASE_RATES[currencyCode as keyof typeof BASE_RATES] ||\n BASE_RATES.USD,\n text: '',\n },\n }),\n };\n\n return {\n ...base,\n ...getSalaryFields(value, version),\n };\n}\n\nfunction getSalaryFields(\n value: CostCalculatorEstimationSubmitValues,\n version: CostCalculatorVersion,\n): Partial<CostCalculatorEmploymentParam> {\n const isMarketing =\n version === 'marketing' || value.salary_converted === 'salary_conversion';\n const isStandard =\n version === 'standard' && value.salary_converted === 'salary';\n const useHiringBudget = value.hiring_budget === 'my_hiring_budget';\n\n if (isMarketing) {\n const useEmployerCurrency = value.salary_converted === 'salary_conversion';\n return useHiringBudget\n ? {\n annual_total_cost_in_employer_currency: value.salary,\n }\n : {\n [useEmployerCurrency\n ? 'annual_gross_salary_in_employer_currency'\n : 'annual_gross_salary']: value.salary,\n };\n }\n\n if (isStandard) {\n return useHiringBudget\n ? {\n annual_total_cost: value.salary,\n }\n : {\n annual_gross_salary: value.salary,\n };\n }\n\n return {};\n}\n\n/**\n * Build the payload for the cost calculator estimation.\n * @param values\n * @param estimationOptions\n * @returns\n */\nexport function buildPayload(\n values:\n | CostCalculatorEstimationSubmitValues\n | CostCalculatorEstimationSubmitValues[],\n estimationOptions: CostCalculatorEstimationOptions = defaultEstimationOptions,\n version: CostCalculatorVersion = 'standard',\n): CostCalculatorEstimateParams {\n const employments = Array.isArray(values) ? values : [values];\n\n if (employments.length === 0) {\n throw new Error('At least one employment value is required');\n }\n\n if (employments.length > 1) {\n const currencies = new Set(employments.map((v) => v.currency));\n if (currencies.size > 1) {\n console.warn(\n 'Multiple currencies detected in array. Using currency from first employment.',\n );\n }\n }\n\n return {\n employer_currency_slug: employments[0].currency,\n include_benefits: estimationOptions.includeBenefits,\n include_cost_breakdowns: estimationOptions.includeCostBreakdowns,\n include_premium_benefits: estimationOptions.includePremiumBenefits,\n include_management_fee: estimationOptions.includeManagementFee,\n employments: employments.map((value) =>\n mapValueToEmployment(value, estimationOptions, version),\n ),\n };\n}\n","import { MinimalRegion } from '@/src/client';\nimport { jsonSchema } from '@/src/flows/CostCalculator/jsonSchema';\nimport type {\n CostCalculatorEstimationFormValues,\n CostCalculatorEstimationOptions,\n CostCalculatorEstimationSubmitValues,\n UseCostCalculatorOptions,\n} from '@/src/flows/CostCalculator/types';\nimport type { JSFModify } from '@/src/flows/types';\n\nimport { parseJSFToValidate } from '@/src/components/form/utils';\nimport { iterateErrors } from '@/src/components/form/validationResolver';\nimport { createHeadlessForm } from '@/src/common/createHeadlessForm';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { string, ValidationError } from 'yup';\nimport { buildPayload, buildValidationSchema } from './utils';\nimport {\n useCompanyCurrencies,\n useCostCalculatorCountries,\n useCostCalculatorEstimation,\n useRegionFields,\n} from '@/src/flows/CostCalculator/api';\nimport { $TSFixMe, JSFField, Meta } from '@/src/types/remoteFlows';\nimport { SalaryField } from '@/src/flows/CostCalculator/components/SalaryField';\nimport {\n FieldSetField,\n FieldSetProps,\n} from '@/src/components/form/fields/FieldSetField';\nimport { mutationToPromise } from '@/src/lib/mutations';\nexport type CostCalculatorVersion = 'standard' | 'marketing';\n\ntype CostCalculatorCountry = {\n value: string;\n label: string;\n childRegions: MinimalRegion[];\n hasAdditionalFields: boolean | undefined;\n regionSlug: string;\n currency: string;\n};\n\ntype JSFValidationError = {\n formErrors: Record<\n string,\n {\n type: string;\n message: string;\n }\n >;\n yupError: ValidationError;\n};\n\nexport const defaultEstimationOptions: CostCalculatorEstimationOptions = {\n title: 'Estimation',\n includeBenefits: false,\n includeCostBreakdowns: false,\n includePremiumBenefits: false,\n enableCurrencyConversion: false,\n includeEstimationTitle: false,\n includeManagementFee: false,\n};\n\ntype UseCostCalculatorParams = {\n /**\n * The default region slug to preselect a country and a region.\n */\n defaultRegion?: string;\n /**\n * The default currency slug to preselect a currency.\n */\n defaultCurrency?: string;\n\n /**\n * The default salary to preselect a salary.\n */\n defaultSalary?: string;\n /**\n * The estimation options.\n */\n estimationOptions: CostCalculatorEstimationOptions;\n options?: UseCostCalculatorOptions;\n version?: CostCalculatorVersion;\n};\n\nconst useStaticSchema = (options?: { jsfModify?: JSFModify }) => {\n return createHeadlessForm(jsonSchema.data.schema, undefined, options);\n};\n\ntype HiringBudget = 'my_hiring_budget' | 'employee_annual_salary';\n\nfunction getSalaryTitle(\n salaryField: unknown,\n hiringBudget?: HiringBudget,\n): string {\n if (\n typeof salaryField === 'object' &&\n salaryField !== null &&\n 'title' in salaryField\n ) {\n const title = (salaryField as { title?: string }).title;\n if (title) return title;\n }\n return hiringBudget === 'my_hiring_budget'\n ? 'Hiring budget'\n : \"Employee's annual salary\";\n}\n\n/**\n * Hook to use the cost calculator.\n */\nexport const useCostCalculator = (\n {\n defaultRegion,\n defaultCurrency,\n defaultSalary,\n estimationOptions,\n options,\n version,\n }: UseCostCalculatorParams = {\n estimationOptions: defaultEstimationOptions,\n },\n) => {\n const fieldsMetaRef = useRef<{\n fields: Meta;\n }>({\n fields: {},\n });\n const [selectedRegion, setSelectedRegion] = useState<string | undefined>(\n defaultRegion,\n );\n const [selectedCountry, setSelectedCountry] =\n useState<CostCalculatorCountry>();\n const [employerBillingCurrency, setEmployerBillingCurrency] = useState<\n string | undefined\n >();\n const [hiringBudget, setHiringBudget] = useState<HiringBudget>();\n const { data: countries, isLoading: isLoadingCountries } =\n useCostCalculatorCountries({\n includePremiumBenefits: estimationOptions.includePremiumBenefits,\n });\n const { data: currencies, isLoading: isLoadingCurrencies } =\n useCompanyCurrencies();\n\n const jsonSchemaRegionSlug = selectedRegion || selectedCountry?.value;\n\n const { data: jsonSchemaRegionFields, isLoading: isLoadingRegionFields } =\n useRegionFields(jsonSchemaRegionSlug, {\n includePremiumBenefits: estimationOptions.includePremiumBenefits,\n options,\n });\n const costCalculatorEstimationMutation = useCostCalculatorEstimation();\n const { mutateAsync: costCalculatorEstimationMutationAsync } =\n mutationToPromise(costCalculatorEstimationMutation);\n const employeeBillingCurrency = selectedCountry?.currency;\n\n const salaryField = options?.jsfModify?.fields?.salary;\n const salaryFieldPresentation =\n salaryField &&\n typeof salaryField === 'object' &&\n 'presentation' in salaryField\n ? (\n salaryField as {\n presentation?: {\n salary_conversion_properties?: {\n label?: string;\n description?: string;\n };\n };\n }\n ).presentation\n : undefined;\n\n const getCurrencies = useCallback(() => {\n const shouldSwapOrder =\n employeeBillingCurrency && employerBillingCurrency\n ? employeeBillingCurrency !== employerBillingCurrency\n : false;\n\n if (employeeBillingCurrency !== employerBillingCurrency) {\n return {\n from: employerBillingCurrency,\n to: employeeBillingCurrency,\n shouldSwapOrder,\n };\n }\n\n return {\n from: employeeBillingCurrency,\n to: employerBillingCurrency,\n shouldSwapOrder,\n };\n }, [employeeBillingCurrency, employerBillingCurrency]);\n\n const showManagementField = estimationOptions.showManagementFee;\n const showEstimationTitleField = estimationOptions.includeEstimationTitle;\n const customFields = useMemo(() => {\n const { from, to, shouldSwapOrder } = getCurrencies();\n const salaryTitle = getSalaryTitle(salaryField, hiringBudget);\n\n return {\n fields: {\n salary: {\n ...salaryField,\n title: salaryTitle,\n presentation: {\n salary_conversion_properties: {\n label:\n salaryFieldPresentation?.salary_conversion_properties?.label,\n description:\n salaryFieldPresentation?.salary_conversion_properties\n ?.description,\n },\n currencies: { from, to },\n Component: (\n props: JSFField & { currencies: { from: string; to: string } },\n ) => {\n return (\n <SalaryField\n {...props}\n shouldSwapOrder={shouldSwapOrder}\n conversionType={\n version === 'marketing' ? 'no_spread' : 'spread'\n }\n defaultValue={defaultSalary}\n />\n );\n },\n },\n },\n hiring_budget: {\n ...options?.jsfModify?.fields?.hiring_budget,\n presentation: {\n hidden: version == 'marketing',\n },\n },\n management: {\n ...options?.jsfModify?.fields?.management,\n properties: {\n ...(options?.jsfModify?.fields?.management as $TSFixMe)?.properties,\n management_fee: {\n ...(options?.jsfModify?.fields?.management as $TSFixMe)\n ?.properties?.management_fee,\n 'x-jsf-presentation': {\n inputType: 'money',\n additionalProps: {\n currency: employerBillingCurrency || 'USD',\n },\n },\n },\n },\n presentation: {\n ...(typeof options?.jsfModify?.fields?.management === 'object'\n ? (\n options?.jsfModify?.fields?.management as Record<\n string,\n $TSFixMe\n >\n )['x-jsf-presentation']\n : {}),\n hidden: !showManagementField,\n Component: (props: FieldSetProps) => {\n return (\n <FieldSetField\n {...props}\n variant='inset'\n features={{\n toggle: {\n enabled: true,\n stateField: 'management._expanded',\n labels: {\n expand: 'Define',\n collapse: 'Remove',\n },\n },\n }}\n />\n );\n },\n },\n },\n estimation_title: {\n ...options?.jsfModify?.fields?.estimation_title,\n 'x-jsf-presentation': {\n hidden: !showEstimationTitleField,\n },\n },\n },\n };\n }, [\n getCurrencies,\n salaryField,\n hiringBudget,\n salaryFieldPresentation?.salary_conversion_properties?.label,\n salaryFieldPresentation?.salary_conversion_properties?.description,\n options?.jsfModify?.fields?.hiring_budget,\n options?.jsfModify?.fields?.management,\n options?.jsfModify?.fields?.estimation_title,\n version,\n employerBillingCurrency,\n showManagementField,\n showEstimationTitleField,\n defaultSalary,\n ]);\n\n const fieldsJSONSchema = useStaticSchema({\n jsfModify: {\n fields: {\n ...options?.jsfModify?.fields,\n ...customFields?.fields,\n },\n },\n });\n\n useEffect(() => {\n // Initialize selectedCountry from defaultRegion\n if (defaultRegion && countries) {\n const defaultCountry = countries.find(\n ({ value }) => value === defaultRegion,\n );\n if (defaultCountry) {\n setSelectedCountry(defaultCountry);\n }\n }\n }, [defaultRegion, countries]);\n\n useEffect(() => {\n // Initialize selectedCurrency from defaultCurrency\n if (defaultCurrency && currencies) {\n const defaultCurrencyObj = currencies.find(\n ({ value }) => value === defaultCurrency,\n );\n if (defaultCurrencyObj) {\n setEmployerBillingCurrency(defaultCurrencyObj.label);\n }\n }\n }, [defaultCurrency, currencies]);\n\n /**\n * Submit the estimation form with the given values.\n * @param values\n */\n async function onSubmit(values: CostCalculatorEstimationSubmitValues) {\n return costCalculatorEstimationMutationAsync(\n buildPayload(values, estimationOptions, version),\n );\n }\n\n /**\n * If the selected country has no child regions and has additional fields,\n * set the current region to the country's region slug and fetch the region fields.\n * @param country\n */\n function onCountryChange(country: string) {\n const currentCountry = countries?.find(({ value }) => value === country);\n\n if (\n currentCountry &&\n currentCountry.childRegions.length === 0 &&\n currentCountry.hasAdditionalFields\n ) {\n setSelectedRegion(currentCountry.regionSlug);\n } else {\n setSelectedRegion(undefined);\n }\n setSelectedCountry(currentCountry);\n }\n\n /**\n * Update the selected region and fetch the region fields.\n * @param region\n */\n function onRegionChange(region: string) {\n setSelectedRegion(region);\n }\n\n function onHiringBudgetChange(event: React.ChangeEvent<HTMLInputElement>) {\n setHiringBudget(event.target.value as HiringBudget);\n }\n\n function onChangeCurrency(currency: string) {\n const selectedCurrency = currencies?.find(\n (c) => c.value === currency,\n )?.label;\n setEmployerBillingCurrency(selectedCurrency);\n options?.onCurrencyChange?.(selectedCurrency || '');\n }\n\n const regionField = fieldsJSONSchema.fields.find(\n (field) => field.name === 'region',\n );\n\n if (regionField) {\n const regions =\n selectedCountry?.childRegions.map((region) => ({\n value: region.slug,\n label: region.name,\n })) ?? [];\n regionField.options = regions;\n regionField.isVisible = regions.length > 0;\n regionField.required = regions.length > 0;\n regionField.onChange = onRegionChange;\n regionField.schema =\n regions.length > 0\n ? string()\n .transform((value) => (typeof value === 'string' ? value : ''))\n .required('Region is required')\n : string();\n }\n\n if (currencies) {\n const currencyField = fieldsJSONSchema.fields.find(\n (field) => field.name === 'currency',\n );\n if (currencyField) {\n currencyField.options = currencies;\n currencyField.onChange = onChangeCurrency;\n }\n }\n\n const hiringBudgetField = fieldsJSONSchema.fields.find(\n (field) => field.name === 'hiring_budget',\n );\n if (hiringBudgetField) {\n hiringBudgetField.onChange = onHiringBudgetChange;\n }\n\n if (countries) {\n const countryField = fieldsJSONSchema.fields.find(\n (field) => field.name === 'country',\n );\n if (countryField) {\n countryField.options = countries;\n countryField.onChange = onCountryChange;\n }\n }\n\n const resetForm = () => {\n setSelectedCountry(undefined);\n setSelectedRegion(defaultRegion);\n };\n\n const allFields = [\n ...fieldsJSONSchema.fields.filter((field) => field.name !== 'management'),\n ...(jsonSchemaRegionFields?.fields || []),\n ...fieldsJSONSchema.fields.filter((field) => field.name === 'management'),\n ];\n\n const validationSchema = buildValidationSchema(\n fieldsJSONSchema.fields,\n employerBillingCurrency || 'USD',\n estimationOptions.includeEstimationTitle,\n );\n\n async function handleValidation(values: CostCalculatorEstimationFormValues) {\n let errors: JSFValidationError | null = null;\n\n options?.onValidation?.(values);\n const parsedValues = await parseJSFToValidate(values, allFields);\n\n // 1. validate static fields first using Yup validate function\n try {\n await validationSchema.validate(parsedValues, {\n abortEarly: false,\n });\n errors = {\n formErrors: {},\n yupError: new ValidationError([], values),\n };\n } catch (error) {\n const iterateResult = iterateErrors(error as ValidationError);\n\n errors = {\n // convert the errors to a format that can be used in the form\n formErrors: Object.entries(iterateResult).reduce(\n (acc, [key, value]) => ({ ...acc, [key]: value.message }),\n {},\n ),\n yupError: error as ValidationError,\n };\n }\n\n // 2. validate json schema fields using the handleValidation (from json-schema-form)\n const handleValidationResult =\n jsonSchemaRegionFields?.handleValidation(parsedValues);\n\n // 3. combine the errors from both validations\n const combinedInnerErrors = [\n ...(errors?.yupError.inner || []),\n ...((handleValidationResult as { yupError: ValidationError })?.yupError\n ?.inner || []),\n ];\n const combinedValues = {\n ...(errors?.yupError?.value || {}),\n ...((handleValidationResult as { yupError: ValidationError })?.yupError\n ?.value || {}),\n };\n\n return {\n formErrors: {\n ...(errors?.formErrors || {}),\n ...(handleValidationResult?.formErrors || {}),\n },\n yupError: new ValidationError(combinedInnerErrors, combinedValues),\n };\n }\n\n return {\n /**\n * Current step state containing the current step and total number of steps\n */\n stepState: {\n current: 0,\n total: 1,\n isLastStep: true,\n },\n /**\n * Array of form fields from the cost calculator schema + dynamic region fields like benefits, age, etc.\n */\n fields: allFields,\n /**\n * Validation schema for the cost calculator form\n */\n validationSchema,\n /**\n * Function to parse form values before submission\n * @param values - Form values to parse\n * @returns Parsed form values\n */\n parseFormValues: async (\n values: CostCalculatorEstimationFormValues,\n ): Promise<CostCalculatorEstimationSubmitValues> => {\n const {\n country,\n region,\n currency,\n salary_converted,\n hiring_budget,\n salary_conversion,\n management,\n estimation_title,\n ...rest\n } = values;\n\n // If the salary has been converted, we take the one the user has inputted\n let salary = values.salary;\n if (salary_converted === 'salary_conversion') {\n salary = salary_conversion;\n }\n\n const jsonSchemaStaticFieldValues = {\n country,\n region,\n salary,\n salary_converted,\n salary_conversion,\n hiring_budget,\n currency,\n management,\n estimation_title,\n };\n\n const parsedStaticFields = await parseJSFToValidate(\n jsonSchemaStaticFieldValues,\n fieldsJSONSchema.fields,\n );\n\n const parsedRegionFields = await parseJSFToValidate(\n rest,\n jsonSchemaRegionFields?.fields || [],\n );\n\n const additionalFields = {\n currency_code: currencies?.find((c) => c.value === currency)?.label,\n };\n\n return {\n ...parsedStaticFields,\n ...parsedRegionFields,\n ...additionalFields,\n } as CostCalculatorEstimationSubmitValues;\n },\n /**\n * Function to handle validation of the cost calculator form\n * @param values - Form values to validate\n * @returns Validation result\n */\n handleValidation,\n /**\n * Whether the cost calculator form is currently being submitted\n */\n isSubmitting: costCalculatorEstimationMutation.isPending,\n /**\n * Whether the cost calculator form is currently loading\n */\n isLoading:\n isLoadingCountries && isLoadingCurrencies && isLoadingRegionFields,\n /**\n * Function to submit the cost calculator form\n */\n onSubmit,\n /**\n * Function to reset the cost calculator form\n */\n resetForm,\n\n /**\n * Currencies data useful to get the currency if you have a currencySlug\n */\n currencies,\n\n /**\n * Fields metadata\n */\n meta: {\n fields: fieldsMetaRef.current?.fields,\n },\n };\n};\n"],"mappings":"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","names":["number","object","useCallback","useEffect","useMemo","useRef","useState","string","ValidationError","jsx","defaultEstimationOptions","useStaticSchema","__name","options","createHeadlessForm","jsonSchema","getSalaryTitle","salaryField","hiringBudget","title","useCostCalculator","defaultRegion","defaultCurrency","defaultSalary","estimationOptions","version","fieldsMetaRef","useRef","selectedRegion","setSelectedRegion","useState","selectedCountry","setSelectedCountry","employerBillingCurrency","setEmployerBillingCurrency","setHiringBudget","countries","isLoadingCountries","useCostCalculatorCountries","currencies","isLoadingCurrencies","useCompanyCurrencies","jsonSchemaRegionSlug","jsonSchemaRegionFields","isLoadingRegionFields","useRegionFields","costCalculatorEstimationMutation","useCostCalculatorEstimation","costCalculatorEstimationMutationAsync","mutationToPromise","employeeBillingCurrency","salaryFieldPresentation","getCurrencies","useCallback","shouldSwapOrder","showManagementField","showEstimationTitleField","customFields","useMemo","from","to","salaryTitle","props","SalaryField","FieldSetField","fieldsJSONSchema","useEffect","defaultCountry","value","defaultCurrencyObj","onSubmit","values","buildPayload","onCountryChange","country","currentCountry","onRegionChange","region","onHiringBudgetChange","event","onChangeCurrency","currency","selectedCurrency","regionField","field","regions","string","currencyField","hiringBudgetField","countryField","resetForm","allFields","validationSchema","buildValidationSchema","handleValidation","errors","parsedValues","parseJSFToValidate","ValidationError","error","iterateResult","iterateErrors","acc","key","handleValidationResult","combinedInnerErrors","combinedValues","salary_converted","hiring_budget","salary_conversion","management","estimation_title","rest","salary","parsedStaticFields","parsedRegionFields","additionalFields","c","buildValidationSchema","fields","employerBillingCurrency","includeEstimationTitle","fieldsSchema","fieldsSchemaAcc","field","__name","val","schema","object","number","value","BASE_RATES","formatBenefits","benefits","needle","acc","key","benefitTierSlug","benefitEntry","mapValueToEmployment","estimationOptions","version","managementFee","currencyCode","getSalaryFields","isMarketing","isStandard","useHiringBudget","useEmployerCurrency","buildPayload","values","defaultEstimationOptions","employments","v"]}
|
|
1
|
+
{"version":3,"sources":["../src/flows/CostCalculator/utils.ts","../src/flows/CostCalculator/hooks.tsx"],"sourcesContent":["import type {\n CostCalculatorEmploymentParam,\n CostCalculatorEstimateParams,\n} from '@/src/client';\n\nimport { $TSFixMe } from '@/src/types/remoteFlows';\nimport { AnyObjectSchema, number, object } from 'yup';\nimport { CostCalculatorVersion, defaultEstimationOptions } from './hooks';\nimport type {\n CostCalculatorEstimationOptions,\n CostCalculatorEstimationSubmitValues,\n CurrencyKey,\n} from './types';\nimport { BASE_RATES } from '@/src/flows/CostCalculator/constants';\n\n/**\n * Build the validation schema for the form.\n * @returns\n */\nexport function buildValidationSchema(\n fields: $TSFixMe[],\n employerBillingCurrency: string,\n includeEstimationTitle?: boolean,\n) {\n const fieldsSchema = fields.reduce<Record<string, AnyObjectSchema>>(\n (fieldsSchemaAcc, field) => {\n // Special handling for salary fields\n if (field.name === 'salary' || field.name === 'salary_conversion') {\n fieldsSchemaAcc[field.name] = (field.schema as AnyObjectSchema).when(\n 'salary_converted',\n {\n is: (val: string | null) => val === field.name,\n then: (schema) => schema.required('Required field'),\n otherwise: (schema) => schema.optional(),\n },\n );\n } else if (field.name === 'management') {\n fieldsSchemaAcc[field.name] = object({\n management_fee: number()\n .transform((value) => {\n return isNaN(value) ? undefined : value;\n })\n .min(0, 'Management fee must be greater than or equal to 0')\n .max(\n employerBillingCurrency\n ? BASE_RATES[employerBillingCurrency as CurrencyKey]\n : BASE_RATES.USD,\n () => {\n const maxValue = employerBillingCurrency\n ? BASE_RATES[employerBillingCurrency as CurrencyKey]\n : BASE_RATES.USD;\n const displayValue = maxValue / 100;\n return `Management fee cannot exceed ${displayValue} ${employerBillingCurrency}`;\n },\n ),\n });\n } else if (field.name === 'estimation_title' && includeEstimationTitle) {\n // Make estimation_title required when includeEstimationTitle is true\n fieldsSchemaAcc[field.name] = (\n field.schema as AnyObjectSchema\n ).required('Required field');\n } else {\n fieldsSchemaAcc[field.name] = field.schema as AnyObjectSchema;\n }\n return fieldsSchemaAcc;\n },\n {},\n );\n return object(fieldsSchema) as AnyObjectSchema;\n}\n\n/**\n * Format the benefits to the expected format by the API.\n * @param benefits\n * @returns\n */\nfunction formatBenefits(benefits: Record<string, string>) {\n const needle = 'benefit-';\n return Object.keys(benefits).reduce<\n Array<{ benefit_group_slug: string; benefit_tier_slug: string }>\n >((acc, key) => {\n const benefitTierSlug = benefits[key];\n if (benefitTierSlug === 'none') {\n return acc;\n }\n const benefitGroupSlug = key.replace(needle, '');\n const benefitEntry = {\n benefit_group_slug: benefitGroupSlug,\n benefit_tier_slug: benefitTierSlug,\n };\n return [...acc, benefitEntry];\n }, []);\n}\n\nfunction mapValueToEmployment(\n value: CostCalculatorEstimationSubmitValues,\n estimationOptions: CostCalculatorEstimationOptions,\n version: CostCalculatorVersion,\n): CostCalculatorEmploymentParam {\n const managementFee = Number(value.management?.management_fee);\n const currencyCode = value.currency_code;\n\n const base: CostCalculatorEmploymentParam = {\n region_slug: value.region || value.country,\n employment_term: value.contract_duration_type ?? 'fixed',\n title: value.estimation_title || estimationOptions.title,\n age: value.age ?? undefined,\n ...(value.benefits && { benefits: formatBenefits(value.benefits) }),\n ...(estimationOptions.includeManagementFee &&\n managementFee && {\n discount: {\n quoted_amount: estimationOptions.showManagementFee\n ? managementFee\n : BASE_RATES[currencyCode as keyof typeof BASE_RATES] ||\n BASE_RATES.USD,\n text: '',\n },\n }),\n };\n\n return {\n ...base,\n ...getSalaryFields(value, version),\n };\n}\n\nfunction getSalaryFields(\n value: CostCalculatorEstimationSubmitValues,\n version: CostCalculatorVersion,\n): Partial<CostCalculatorEmploymentParam> {\n const isMarketing =\n version === 'marketing' || value.salary_converted === 'salary_conversion';\n const isStandard =\n version === 'standard' && value.salary_converted === 'salary';\n const useHiringBudget = value.hiring_budget === 'my_hiring_budget';\n\n if (isMarketing) {\n const useEmployerCurrency = value.salary_converted === 'salary_conversion';\n return useHiringBudget\n ? {\n annual_total_cost_in_employer_currency: value.salary,\n }\n : {\n [useEmployerCurrency\n ? 'annual_gross_salary_in_employer_currency'\n : 'annual_gross_salary']: value.salary,\n };\n }\n\n if (isStandard) {\n return useHiringBudget\n ? {\n annual_total_cost: value.salary,\n }\n : {\n annual_gross_salary: value.salary,\n };\n }\n\n return {};\n}\n\n/**\n * Build the payload for the cost calculator estimation.\n * @param values\n * @param estimationOptions\n * @returns\n */\nexport function buildPayload(\n values:\n | CostCalculatorEstimationSubmitValues\n | CostCalculatorEstimationSubmitValues[],\n estimationOptions: CostCalculatorEstimationOptions = defaultEstimationOptions,\n version: CostCalculatorVersion = 'standard',\n): CostCalculatorEstimateParams {\n const employments = Array.isArray(values) ? values : [values];\n\n if (employments.length === 0) {\n throw new Error('At least one employment value is required');\n }\n\n if (employments.length > 1) {\n const currencies = new Set(employments.map((v) => v.currency));\n if (currencies.size > 1) {\n console.warn(\n 'Multiple currencies detected in array. Using currency from first employment.',\n );\n }\n }\n\n return {\n employer_currency_slug: employments[0].currency,\n include_benefits: estimationOptions.includeBenefits,\n include_cost_breakdowns: estimationOptions.includeCostBreakdowns,\n include_premium_benefits: estimationOptions.includePremiumBenefits,\n include_management_fee: estimationOptions.includeManagementFee,\n employments: employments.map((value) =>\n mapValueToEmployment(value, estimationOptions, version),\n ),\n };\n}\n","import { MinimalRegion } from '@/src/client';\nimport { jsonSchema } from '@/src/flows/CostCalculator/jsonSchema';\nimport type {\n CostCalculatorEstimationFormValues,\n CostCalculatorEstimationOptions,\n CostCalculatorEstimationSubmitValues,\n UseCostCalculatorOptions,\n} from '@/src/flows/CostCalculator/types';\nimport type { JSFModify } from '@/src/flows/types';\n\nimport { parseJSFToValidate } from '@/src/components/form/utils';\nimport { iterateErrors } from '@/src/components/form/validationResolver';\nimport { createHeadlessForm } from '@/src/common/createHeadlessForm';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { string, ValidationError } from 'yup';\nimport { buildPayload, buildValidationSchema } from './utils';\nimport {\n useCompanyCurrencies,\n useCostCalculatorCountries,\n useCostCalculatorEstimation,\n useRegionFields,\n} from '@/src/flows/CostCalculator/api';\nimport { $TSFixMe, JSFField, Meta } from '@/src/types/remoteFlows';\nimport { SalaryField } from '@/src/flows/CostCalculator/components/SalaryField';\nimport {\n FieldSetField,\n FieldSetProps,\n} from '@/src/components/form/fields/FieldSetField';\nimport { mutationToPromise } from '@/src/lib/mutations';\nexport type CostCalculatorVersion = 'standard' | 'marketing';\n\ntype CostCalculatorCountry = {\n value: string;\n label: string;\n childRegions: MinimalRegion[];\n hasAdditionalFields: boolean | undefined;\n regionSlug: string;\n currency: string;\n};\n\ntype JSFValidationError = {\n formErrors: Record<\n string,\n {\n type: string;\n message: string;\n }\n >;\n yupError: ValidationError;\n};\n\nexport const defaultEstimationOptions: CostCalculatorEstimationOptions = {\n title: 'Estimation',\n includeBenefits: false,\n includeCostBreakdowns: false,\n includePremiumBenefits: false,\n enableCurrencyConversion: false,\n includeEstimationTitle: false,\n includeManagementFee: false,\n};\n\ntype UseCostCalculatorParams = {\n /**\n * The default region slug to preselect a country and a region.\n */\n defaultRegion?: string;\n /**\n * The default currency slug to preselect a currency.\n */\n defaultCurrency?: string;\n\n /**\n * The default salary to preselect a salary.\n */\n defaultSalary?: string;\n /**\n * The estimation options.\n */\n estimationOptions: CostCalculatorEstimationOptions;\n options?: UseCostCalculatorOptions;\n version?: CostCalculatorVersion;\n};\n\nconst useStaticSchema = (options?: { jsfModify?: JSFModify }) => {\n return createHeadlessForm(jsonSchema.data.schema, undefined, options);\n};\n\ntype HiringBudget = 'my_hiring_budget' | 'employee_annual_salary';\n\nfunction getSalaryTitle(\n salaryField: unknown,\n hiringBudget?: HiringBudget,\n): string {\n if (\n typeof salaryField === 'object' &&\n salaryField !== null &&\n 'title' in salaryField\n ) {\n const title = (salaryField as { title?: string }).title;\n if (title) return title;\n }\n return hiringBudget === 'my_hiring_budget'\n ? 'Hiring budget'\n : \"Employee's annual salary\";\n}\n\n/**\n * Hook to use the cost calculator.\n */\nexport const useCostCalculator = (\n {\n defaultRegion,\n defaultCurrency,\n defaultSalary,\n estimationOptions,\n options,\n version,\n }: UseCostCalculatorParams = {\n estimationOptions: defaultEstimationOptions,\n },\n) => {\n const fieldsMetaRef = useRef<{\n fields: Meta;\n }>({\n fields: {},\n });\n const [selectedRegion, setSelectedRegion] = useState<string | undefined>(\n defaultRegion,\n );\n const [selectedCountry, setSelectedCountry] =\n useState<CostCalculatorCountry>();\n const [employerBillingCurrency, setEmployerBillingCurrency] = useState<\n string | undefined\n >();\n const [hiringBudget, setHiringBudget] = useState<HiringBudget>();\n const { data: countries, isLoading: isLoadingCountries } =\n useCostCalculatorCountries({\n includePremiumBenefits: estimationOptions.includePremiumBenefits,\n });\n const { data: currencies, isLoading: isLoadingCurrencies } =\n useCompanyCurrencies();\n\n const jsonSchemaRegionSlug = selectedRegion || selectedCountry?.value;\n\n const { data: jsonSchemaRegionFields, isLoading: isLoadingRegionFields } =\n useRegionFields(jsonSchemaRegionSlug, {\n includePremiumBenefits: estimationOptions.includePremiumBenefits,\n options,\n });\n const costCalculatorEstimationMutation = useCostCalculatorEstimation();\n const { mutateAsync: costCalculatorEstimationMutationAsync } =\n mutationToPromise(costCalculatorEstimationMutation);\n const employeeBillingCurrency = selectedCountry?.currency;\n\n const salaryField = options?.jsfModify?.fields?.salary;\n const salaryFieldPresentation =\n salaryField &&\n typeof salaryField === 'object' &&\n 'presentation' in salaryField\n ? (\n salaryField as {\n presentation?: {\n salary_conversion_properties?: {\n label?: string;\n description?: string;\n };\n };\n }\n ).presentation\n : undefined;\n\n const getCurrencies = useCallback(() => {\n const shouldSwapOrder =\n employeeBillingCurrency && employerBillingCurrency\n ? employeeBillingCurrency !== employerBillingCurrency\n : false;\n\n if (employeeBillingCurrency !== employerBillingCurrency) {\n return {\n from: employerBillingCurrency,\n to: employeeBillingCurrency,\n shouldSwapOrder,\n };\n }\n\n return {\n from: employeeBillingCurrency,\n to: employerBillingCurrency,\n shouldSwapOrder,\n };\n }, [employeeBillingCurrency, employerBillingCurrency]);\n\n const showManagementField = estimationOptions.showManagementFee;\n const showEstimationTitleField = estimationOptions.includeEstimationTitle;\n const customFields = useMemo(() => {\n const { from, to, shouldSwapOrder } = getCurrencies();\n const salaryTitle = getSalaryTitle(salaryField, hiringBudget);\n\n return {\n fields: {\n salary: {\n ...salaryField,\n title: salaryTitle,\n presentation: {\n salary_conversion_properties: {\n label:\n salaryFieldPresentation?.salary_conversion_properties?.label,\n description:\n salaryFieldPresentation?.salary_conversion_properties\n ?.description,\n },\n currencies: { from, to },\n Component: (\n props: JSFField & { currencies: { from: string; to: string } },\n ) => {\n return (\n <SalaryField\n {...props}\n shouldSwapOrder={shouldSwapOrder}\n conversionType={\n version === 'marketing' ? 'no_spread' : 'spread'\n }\n defaultValue={defaultSalary}\n />\n );\n },\n },\n },\n hiring_budget: {\n ...options?.jsfModify?.fields?.hiring_budget,\n presentation: {\n hidden: version == 'marketing',\n },\n },\n management: {\n ...options?.jsfModify?.fields?.management,\n properties: {\n ...(options?.jsfModify?.fields?.management as $TSFixMe)?.properties,\n management_fee: {\n ...(options?.jsfModify?.fields?.management as $TSFixMe)\n ?.properties?.management_fee,\n 'x-jsf-presentation': {\n inputType: 'money',\n additionalProps: {\n currency: employerBillingCurrency || 'USD',\n },\n },\n },\n },\n presentation: {\n ...(typeof options?.jsfModify?.fields?.management === 'object'\n ? (\n options?.jsfModify?.fields?.management as Record<\n string,\n $TSFixMe\n >\n )['x-jsf-presentation']\n : {}),\n hidden: !showManagementField,\n Component: (props: FieldSetProps) => {\n return (\n <FieldSetField\n {...props}\n variant='inset'\n features={{\n toggle: {\n enabled: true,\n stateField: 'management._expanded',\n labels: {\n expand: 'Define',\n collapse: 'Remove',\n },\n },\n }}\n />\n );\n },\n },\n },\n estimation_title: {\n ...options?.jsfModify?.fields?.estimation_title,\n 'x-jsf-presentation': {\n hidden: !showEstimationTitleField,\n },\n },\n },\n };\n }, [\n getCurrencies,\n salaryField,\n hiringBudget,\n salaryFieldPresentation?.salary_conversion_properties?.label,\n salaryFieldPresentation?.salary_conversion_properties?.description,\n options?.jsfModify?.fields?.hiring_budget,\n options?.jsfModify?.fields?.management,\n options?.jsfModify?.fields?.estimation_title,\n version,\n employerBillingCurrency,\n showManagementField,\n showEstimationTitleField,\n defaultSalary,\n ]);\n\n const fieldsJSONSchema = useStaticSchema({\n jsfModify: {\n fields: {\n ...options?.jsfModify?.fields,\n ...customFields?.fields,\n },\n },\n });\n\n useEffect(() => {\n // Initialize selectedCountry from defaultRegion\n if (defaultRegion && countries) {\n const defaultCountry = countries.find(\n ({ value }) => value === defaultRegion,\n );\n if (defaultCountry) {\n setSelectedCountry(defaultCountry);\n }\n }\n }, [defaultRegion, countries]);\n\n useEffect(() => {\n // Initialize selectedCurrency from defaultCurrency\n if (defaultCurrency && currencies) {\n const defaultCurrencyObj = currencies.find(\n ({ value }) => value === defaultCurrency,\n );\n if (defaultCurrencyObj) {\n setEmployerBillingCurrency(defaultCurrencyObj.label);\n }\n }\n }, [defaultCurrency, currencies]);\n\n /**\n * Submit the estimation form with the given values.\n * @param values\n */\n async function onSubmit(values: CostCalculatorEstimationSubmitValues) {\n return costCalculatorEstimationMutationAsync(\n buildPayload(values, estimationOptions, version),\n );\n }\n\n /**\n * If the selected country has no child regions and has additional fields,\n * set the current region to the country's region slug and fetch the region fields.\n * @param country\n */\n function onCountryChange(country: string) {\n const currentCountry = countries?.find(({ value }) => value === country);\n\n if (\n currentCountry &&\n currentCountry.childRegions.length === 0 &&\n currentCountry.hasAdditionalFields\n ) {\n setSelectedRegion(currentCountry.regionSlug);\n } else {\n setSelectedRegion(undefined);\n }\n setSelectedCountry(currentCountry);\n }\n\n /**\n * Update the selected region and fetch the region fields.\n * @param region\n */\n function onRegionChange(region: string) {\n setSelectedRegion(region);\n }\n\n function onHiringBudgetChange(event: React.ChangeEvent<HTMLInputElement>) {\n setHiringBudget(event.target.value as HiringBudget);\n }\n\n function onChangeCurrency(currency: string) {\n const selectedCurrency = currencies?.find(\n (c) => c.value === currency,\n )?.label;\n setEmployerBillingCurrency(selectedCurrency);\n options?.onCurrencyChange?.(selectedCurrency || '');\n }\n\n const regionField = fieldsJSONSchema.fields.find(\n (field) => field.name === 'region',\n );\n\n if (regionField) {\n const regions =\n selectedCountry?.childRegions.map((region) => ({\n value: region.slug,\n label: region.name,\n })) ?? [];\n regionField.options = regions;\n regionField.isVisible = regions.length > 0;\n regionField.required = regions.length > 0;\n regionField.onChange = onRegionChange;\n regionField.schema =\n regions.length > 0\n ? string()\n .transform((value) => (typeof value === 'string' ? value : ''))\n .required('Region is required')\n : string();\n }\n\n if (currencies) {\n const currencyField = fieldsJSONSchema.fields.find(\n (field) => field.name === 'currency',\n );\n if (currencyField) {\n currencyField.options = currencies;\n currencyField.onChange = onChangeCurrency;\n }\n }\n\n const hiringBudgetField = fieldsJSONSchema.fields.find(\n (field) => field.name === 'hiring_budget',\n );\n if (hiringBudgetField) {\n hiringBudgetField.onChange = onHiringBudgetChange;\n }\n\n if (countries) {\n const countryField = fieldsJSONSchema.fields.find(\n (field) => field.name === 'country',\n );\n if (countryField) {\n countryField.options = countries;\n countryField.onChange = onCountryChange;\n }\n }\n\n const resetForm = () => {\n setSelectedCountry(undefined);\n setSelectedRegion(defaultRegion);\n };\n\n const allFields = [\n ...fieldsJSONSchema.fields.filter((field) => field.name !== 'management'),\n ...(jsonSchemaRegionFields?.fields || []),\n ...fieldsJSONSchema.fields.filter((field) => field.name === 'management'),\n ];\n\n const validationSchema = buildValidationSchema(\n fieldsJSONSchema.fields,\n employerBillingCurrency || 'USD',\n estimationOptions.includeEstimationTitle,\n );\n\n async function handleValidation(values: CostCalculatorEstimationFormValues) {\n let errors: JSFValidationError | null = null;\n\n options?.onValidation?.(values);\n const parsedValues = await parseJSFToValidate(values, allFields);\n\n // 1. validate static fields first using Yup validate function\n try {\n await validationSchema.validate(parsedValues, {\n abortEarly: false,\n });\n errors = {\n formErrors: {},\n yupError: new ValidationError([], values),\n };\n } catch (error) {\n const iterateResult = iterateErrors(error as ValidationError);\n\n errors = {\n // convert the errors to a format that can be used in the form\n formErrors: Object.entries(iterateResult).reduce(\n (acc, [key, value]) => ({ ...acc, [key]: value.message }),\n {},\n ),\n yupError: error as ValidationError,\n };\n }\n\n // 2. validate json schema fields using the handleValidation (from json-schema-form)\n const handleValidationResult =\n jsonSchemaRegionFields?.handleValidation(parsedValues);\n\n // 3. combine the errors from both validations\n const combinedInnerErrors = [\n ...(errors?.yupError.inner || []),\n ...((handleValidationResult as { yupError: ValidationError })?.yupError\n ?.inner || []),\n ];\n const combinedValues = {\n ...(errors?.yupError?.value || {}),\n ...((handleValidationResult as { yupError: ValidationError })?.yupError\n ?.value || {}),\n };\n\n return {\n formErrors: {\n ...(errors?.formErrors || {}),\n ...(handleValidationResult?.formErrors || {}),\n },\n yupError: new ValidationError(combinedInnerErrors, combinedValues),\n };\n }\n\n return {\n /**\n * Current step state containing the current step and total number of steps\n */\n stepState: {\n current: 0,\n total: 1,\n isLastStep: true,\n },\n /**\n * Array of form fields from the cost calculator schema + dynamic region fields like benefits, age, etc.\n */\n fields: allFields,\n /**\n * Validation schema for the cost calculator form\n */\n validationSchema,\n /**\n * Function to parse form values before submission\n * @param values - Form values to parse\n * @returns Parsed form values\n */\n parseFormValues: async (\n values: CostCalculatorEstimationFormValues,\n ): Promise<CostCalculatorEstimationSubmitValues> => {\n const {\n country,\n region,\n currency,\n salary_converted,\n hiring_budget,\n salary_conversion,\n management,\n estimation_title,\n ...rest\n } = values;\n\n // If the salary has been converted, we take the one the user has inputted\n let salary = values.salary;\n if (salary_converted === 'salary_conversion') {\n salary = salary_conversion;\n }\n\n const jsonSchemaStaticFieldValues = {\n country,\n region,\n salary,\n salary_converted,\n salary_conversion,\n hiring_budget,\n currency,\n management,\n estimation_title,\n };\n\n const parsedStaticFields = await parseJSFToValidate(\n jsonSchemaStaticFieldValues,\n fieldsJSONSchema.fields,\n );\n\n const parsedRegionFields = await parseJSFToValidate(\n rest,\n jsonSchemaRegionFields?.fields || [],\n );\n\n const additionalFields = {\n currency_code: currencies?.find((c) => c.value === currency)?.label,\n };\n\n return {\n ...parsedStaticFields,\n ...parsedRegionFields,\n ...additionalFields,\n } as CostCalculatorEstimationSubmitValues;\n },\n /**\n * Function to handle validation of the cost calculator form\n * @param values - Form values to validate\n * @returns Validation result\n */\n handleValidation,\n /**\n * Whether the cost calculator form is currently being submitted\n */\n isSubmitting: costCalculatorEstimationMutation.isPending,\n /**\n * Whether the cost calculator form is currently loading\n */\n isLoading:\n isLoadingCountries && isLoadingCurrencies && isLoadingRegionFields,\n /**\n * Function to submit the cost calculator form\n */\n onSubmit,\n /**\n * Function to reset the cost calculator form\n */\n resetForm,\n\n /**\n * Currencies data useful to get the currency if you have a currencySlug\n */\n currencies,\n\n /**\n * Fields metadata\n */\n meta: {\n fields: fieldsMetaRef.current?.fields,\n },\n };\n};\n"],"mappings":"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","names":["number","object","useCallback","useEffect","useMemo","useRef","useState","string","ValidationError","jsx","defaultEstimationOptions","useStaticSchema","__name","options","createHeadlessForm","jsonSchema","getSalaryTitle","salaryField","hiringBudget","title","useCostCalculator","defaultRegion","defaultCurrency","defaultSalary","estimationOptions","version","fieldsMetaRef","useRef","selectedRegion","setSelectedRegion","useState","selectedCountry","setSelectedCountry","employerBillingCurrency","setEmployerBillingCurrency","setHiringBudget","countries","isLoadingCountries","useCostCalculatorCountries","currencies","isLoadingCurrencies","useCompanyCurrencies","jsonSchemaRegionSlug","jsonSchemaRegionFields","isLoadingRegionFields","useRegionFields","costCalculatorEstimationMutation","useCostCalculatorEstimation","costCalculatorEstimationMutationAsync","mutationToPromise","employeeBillingCurrency","salaryFieldPresentation","getCurrencies","useCallback","shouldSwapOrder","showManagementField","showEstimationTitleField","customFields","useMemo","from","to","salaryTitle","props","SalaryField","FieldSetField","fieldsJSONSchema","useEffect","defaultCountry","value","defaultCurrencyObj","onSubmit","values","buildPayload","onCountryChange","country","currentCountry","onRegionChange","region","onHiringBudgetChange","event","onChangeCurrency","currency","selectedCurrency","regionField","field","regions","string","currencyField","hiringBudgetField","countryField","resetForm","allFields","validationSchema","buildValidationSchema","handleValidation","errors","parsedValues","parseJSFToValidate","ValidationError","error","iterateResult","iterateErrors","acc","key","handleValidationResult","combinedInnerErrors","combinedValues","salary_converted","hiring_budget","salary_conversion","management","estimation_title","rest","salary","parsedStaticFields","parsedRegionFields","additionalFields","c","buildValidationSchema","fields","employerBillingCurrency","includeEstimationTitle","fieldsSchema","fieldsSchemaAcc","field","__name","val","schema","object","number","value","BASE_RATES","formatBenefits","benefits","needle","acc","key","benefitTierSlug","benefitEntry","mapValueToEmployment","estimationOptions","version","managementFee","currencyCode","getSalaryFields","isMarketing","isStandard","useHiringBudget","useEmployerCurrency","buildPayload","values","defaultEstimationOptions","employments","v"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{e as a}from"./chunk-T7O3YYOG.js";import{f as n,g as m}from"./chunk-3QNS3IZB.js";import{b as i}from"./chunk-TVZAFTPT.js";import{a as o}from"./chunk-P37U34EQ.js";import{jsx as s}from"react/jsx-runtime";function R({onSubmit:d,onError:c,onSuccess:l}){let{contractAmendment:{stepState:u,isSubmitting:f,onSubmit:C,fields:p},formId:A}=i(),e=n({defaultValues:u.values?.form}),F=o(async r=>{let S=await a(r,p,{isPartialValidation:!1});await d?.(S);let t=await C(r);t.error?c?.(t.error):await l?.(t.data)},"handleSubmit");return f?null:s(m,{...e,children:s("form",{id:A,onSubmit:e.handleSubmit(F),className:"RemoteFlows__ContractAmendmentConfirmationForm"})})}o(R,"ContractAmendmentConfirmationForm");export{R as a};
|
|
2
|
+
//# sourceMappingURL=chunk-WHROCBHG.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as n,b as m,c as a}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as n,b as m,c as a}from"./chunk-FJPY27YJ.js";import{a as r}from"./chunk-P37U34EQ.js";import{CheckIcon as p,FileText as s}from"lucide-react";import{jsx as t,jsxs as i}from"react/jsx-runtime";var P=r(({reviewCompleted:l,label:e,description:o})=>i(n,{variant:"default",children:[l?t(p,{className:"h-4 w-4"}):t(s,{className:"h-4 w-4"}),e&&t(m,{dangerouslySetInnerHTML:{__html:e}}),o&&t(a,{dangerouslySetInnerHTML:{__html:o}})]}),"ContractPreviewStatement");export{P as a};
|
|
2
|
+
//# sourceMappingURL=chunk-WT6E5LO4.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as S}from"./chunk-XFD3ULUF.js";import{a as k}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as S}from"./chunk-XFD3ULUF.js";import{a as k}from"./chunk-ZVUQDK2E.js";import{a as m,b as u,c as h,d as _}from"./chunk-DFJNVGK4.js";import{a as b}from"./chunk-EUSCQL4H.js";import{P as g,c as D,y as T}from"./chunk-5XHL6B25.js";import{d as i}from"./chunk-KQPDXXG3.js";import{a as n}from"./chunk-P37U34EQ.js";var y=n(e=>{let[t,r,o]=e.split("-").map(Number);return new Date(t,r-1,o)},"parseLocalDate");import{useQuery as v}from"@tanstack/react-query";var c=n(({employmentId:e,status:t,timeoffType:r,options:o})=>{let{client:a}=i();return v({queryKey:["timeoff",e,t],retry:!1,queryFn:n(()=>g({client:a,headers:{Authorization:""},query:{employment_id:e,status:t,timeoff_type:r}}),"queryFn"),select:n(({data:s})=>o?.select?.(s)??s,"select"),enabled:o?.enabled})},"useTimeOffQuery"),R=n((e,t)=>{let r=y(e).toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"}),o=y(t).toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"});return`${r} \u2192 ${o}`},"formatDateRange"),G=n(({employmentId:e,options:t})=>c({employmentId:e,timeoffType:"paid_time_off",options:{enabled:t?.enabled,select:n(r=>({bookedDays:r?.data?.timeoffs?.reduce((o,a)=>o+(a?.timeoff_days?.filter(s=>s.hours!=null&&s.hours>0).length||0),0)||0,timeoffs:r?.data?.timeoffs?.map(o=>{let a=o?.timeoff_days?.filter(s=>s.hours>0).length||0;return{status:o?.status,duration:a,startDate:o?.start_date,endDate:o?.end_date,formattedDate:R(o?.start_date,o?.end_date)}})||[]}),"select")}}),"usePaidTimeoffBreakdownQuery"),A=n(({employmentId:e})=>{let{client:t}=i();return v({queryKey:["timeoff-balance",e],retry:!1,queryFn:n(()=>T({client:t,headers:{Authorization:""},path:{employment_id:e}}),"queryFn"),select:n(({data:r})=>r,"select")})},"useTimeOffLeavePoliciesSummaryQuery");import{useMutation as E,useQuery as Q}from"@tanstack/react-query";function F(e){return Object.entries(e).reduce((t,[r,o])=>({...t,[r]:h(o)}),{})}n(F,"formatTimeoffValues");function q(e){let t=e?.contract_details?.available_pto,r=e?.contract_details?.available_pto_type;return e?.country?.code==="USA"&&r==="unlimited"?{value:t===0?20:t}:r==="unlimited"&&t>0?{value:t}:{value:t}}n(q,"getMinimumStatutoryDays");function w(e,t){let r=0,o=0;return e.forEach(a=>{a.timeoff_days?.forEach(s=>{new Date(s.day)<=t?r+=s.hours||0:o+=s.hours||0})}),{before:r,after:o}}n(w,"getAllTimeoffHoursBeforeDate");var M=n(({employmentId:e,date:t,options:r})=>c({employmentId:e,timeoffType:"paid_time_off",status:"approved",options:{enabled:r?.enabled,select:n(o=>{let{before:a,after:s}=w(o?.data?.timeoffs||[],new Date(t));return{bookedDaysBeforeTermination:u(a),bookedDaysAfterTermination:u(s)}},"select")}}),"useBookedTimeoffBeforeAndAfterTerminationQuery"),de=n(({employmentId:e,proposedTerminationDate:t,employment:r})=>{let{value:o=0}=q(r),a=A({employmentId:e}),s=M({employmentId:e,date:t}),p=a.data?.data?.[0].annual_entitlement.type==="limited"?{days:a.data?.data?.[0].annual_entitlement.days,hours:a.data?.data?.[0].annual_entitlement.hours}:{days:o,hours:0},d={days:a.data?.data?.[0].booked.days||0,hours:a.data?.data?.[0].booked.hours||0},f=a.data?.data?.[0].current_entitlement.type==="limited"?{days:a.data?.data?.[0].current_entitlement.days||0,hours:a.data?.data?.[0].current_entitlement.hours||0}:{days:o,hours:0},l={days:a.data?.data?.[0].used.days||0,hours:a.data?.data?.[0].used.hours||0},B=s.data?.bookedDaysBeforeTermination||{days:0,hours:0},x=s.data?.bookedDaysAfterTermination||{days:0,hours:0},C=m(f.days,f.hours),H=m(l.days,l.hours),L=m(d.days,d.hours),P=C-H-L,O=_(u(P));return{data:{...F({entitledDays:p,bookedDays:d,usedDays:l,approvedDaysBeforeTermination:B,approvedDaysAfterTermination:x,remainingDays:O,currentEntitlementDays:f}),isUnlimitedPto:r?.contract_details?.available_pto_type==="unlimited"},isLoading:a.isLoading||s.isLoading,isError:a.isError||s.isError,error:a.error||s.error}},"useSummaryTimeOffDataQuery"),fe=n(()=>{let{client:e}=i();return E({mutationFn:n(t=>D({client:e,body:t}),"mutationFn")})},"useCreateTermination"),le=n(({formValues:e,jsfModify:t,step:r})=>Q({queryKey:["rmt-flows-termination-schema",r],queryFn:n(()=>k[r]??S,"queryFn"),select:n(({data:o})=>{let a=o?.schema||{};return b(a,e||{},{jsfModify:t})},"select")}),"useTerminationSchema");export{y as a,c as b,G as c,A as d,M as e,de as f,fe as g,le as h};
|
|
2
|
+
//# sourceMappingURL=chunk-WTQ6PTMB.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as s}from"./chunk-KSHK3ZPX.js";import{a as r}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b as s}from"./chunk-KSHK3ZPX.js";import{a as r}from"./chunk-GCWEOZBS.js";import{b as u}from"./chunk-KQPDXXG3.js";import{a as n}from"./chunk-P37U34EQ.js";import{jsx as a}from"react/jsx-runtime";function b({children:m,...t}){let{formId:e,costCalculatorBag:i}=s(),{components:l}=u(),o=l?.button;if(!o)throw new Error("Button component not found");return a(o,{...t,type:"submit",className:r("RemoteFlows__CostCalculatorForm__SubmitButton",t.className),form:e,disabled:t.disabled||i?.isSubmitting,children:m})}n(b,"CostCalculatorSubmitButton");export{b as a};
|
|
2
|
+
//# sourceMappingURL=chunk-XDZFLJ5F.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as e}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as e}from"./chunk-GCWEOZBS.js";import{a as n}from"./chunk-P37U34EQ.js";import{Fragment as s,jsx as o,jsxs as t}from"react/jsx-runtime";var a=[{label:"Misconduct",description:"The employee is being dismissed due to unacceptable or improper behavior."},{label:"Performance",description:"When dismissing an employee for poor performance, employers are required by law to do so fairly. This means giving the employee reasonable opportunity to improve their performance prior to termination."},{label:"Workforce reduction",description:"The employee\u2019s position is being made redundant, and a layoff is underway."},{label:"Values",description:"The employee is misaligned with the company\u2019s values."},{label:"Compliance issue",description:"Use this option if the employee violated key policies, processes or procedures. For example, they failed to comply with their employment agreement\u2019s confidentiality clause."},{label:"Incapacity to perform inherent duties",description:"Use this option if the employee is physically or mentally unable to fulfill the work requirements of their role."},{label:"Mutual agreement",description:"Employee and employer made a mutual decision to end the relationship."},{label:"Decision to cancel hiring before the employee started",description:"Use this option only if the employee has not started work yet."},{label:"Job abandonment",description:"The employee has failed to appear for work; the Employer has been unsuccessful in establishing communications with the employee and does not know the employee\u2019s whereabouts."},{label:"Dissatisfaction with EOR service",description:t("span",{children:["We\u2019re sorry to see you go. If there is anything we can do to improve or if there is any remaining feedback you want to give us, please reach out to"," ",o("a",{href:"mailto:help@remote.com",target:"_blank",rel:"noopener noreferrer",children:"help@remote.com"}),"."]})},{label:"End of fixed-term contract",description:"Use this option when the employee fixed-term contract is coming to an end and will not be renewed or extended."}],r=n(()=>t(s,{children:[t("h3",{className:e("RemoteFlows__TerminationReasonsDetailContent__Title"),children:[" ","Why is this important?"]}),o("p",{className:e("RemoteFlows__TerminationReasonsDetailContent__Description"),children:"We're here to help you follow all applicable labor laws when terminating an employee. Here are all the legal reasons for termination. Please read them to make sure you enter the correct reason in the platform."}),o("h4",{className:e("RemoteFlows__TerminationReasonsDetailContent__Subtitle"),children:"Termination Reasons"}),o("ul",{className:e("RemoteFlows__TerminationReasonsDetailContent__List list-disc list-inside"),children:a.map(i=>t("li",{className:e("RemoteFlows__TerminationReasonsDetailContent__ListItem"),children:[o("span",{className:e("RemoteFlows__TerminationReasonsDetailContent__ListItemLabel"),children:i.label}),o("span",{className:e("RemoteFlows__TerminationReasonsDetailContent__ListItemDescription"),children:i.description})]},i.label))})]}),"TerminationReasonsDetailContent");export{r as a};
|
|
2
|
+
//# sourceMappingURL=chunk-XIEA775Q.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as y}from"./chunk-PGWKJ6FK.js";import{b as
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b as y}from"./chunk-PGWKJ6FK.js";import{b as F}from"./chunk-LNV36S6D.js";import{a as u}from"./chunk-CEHS4AFO.js";import{f,g as p}from"./chunk-3QNS3IZB.js";import{b as c}from"./chunk-3X36ZFNP.js";import{a as m}from"./chunk-P37U34EQ.js";import{useEffect as S}from"react";import{jsx as b}from"react/jsx-runtime";import{createElement as V}from"react";function N({defaultValues:d,onSubmit:g,components:E}){let{formId:w,onboardingBag:o}=y(),k=F(o.handleValidation),r=f({resolver:k,defaultValues:d,shouldUnregister:!1,mode:"onBlur"});S(()=>{o.employmentId&&o?.checkFieldUpdates(r.getValues())},[]),S(()=>{let t=r?.watch(e=>{Object.keys(e).some(i=>e[i]!==d[i])&&o?.checkFieldUpdates(e)});return()=>t?.unsubscribe()},[]);let h=m(async(t,e)=>{let s=e?.nativeEvent;if(s?.isDraftSubmission){let{onSuccess:i,onError:l}=s.draftCallbacks;try{if(!await r.trigger())return;let n=await o.onSubmit(t);if(n?.data)i?.();else if(n?.error){let P=o.stepState.currentStep.name,B=o.meta?.fields?.[P],O=c(n?.fieldErrors||[],B);l?.({error:n.error,rawError:n.rawError,fieldErrors:O})}}catch(a){l?.({error:a,rawError:a,fieldErrors:[]})}}else await g(t)},"handleSubmit");return V(p,{...r,key:`form-${o.stepState.currentStep.name}`},b("form",{id:w,onSubmit:r.handleSubmit(h),className:"space-y-4 RemoteFlows__OnboardingForm",children:b(u,{components:E,fields:o.fields,fieldsets:o.meta.fieldsets,fieldValues:o.fieldValues})}))}m(N,"OnboardingForm");export{N as a};
|
|
2
|
+
//# sourceMappingURL=chunk-XQUHG7HJ.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{i as C,j as a,k as d,l as i,m as u}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{i as C,j as a,k as d,l as i,m as u}from"./chunk-3QNS3IZB.js";import{a as c}from"./chunk-VIQQ3IHI.js";import{a as h}from"./chunk-GCWEOZBS.js";import{a as _}from"./chunk-P37U34EQ.js";import{Fragment as v,jsx as o,jsxs as r}from"react/jsx-runtime";var L=_(({field:l,fieldState:k,fieldData:p})=>{let{name:m,label:s,description:n,options:t,multiple:F}=p;return r(C,{"data-field":m,className:h(`RemoteFlows__CheckBoxField__Item__${m}`),children:[o(d,{children:r(v,{children:[t&&F?o(a,{children:s}):null,t&&F?t.map(e=>r("div",{className:"flex space-x-2",children:[o(c,{id:e.value,onCheckedChange:b=>{l.onChange(b===!0,e.value)},checked:l.value?.includes(e.value),className:"RemoteFlows__CheckBox__Input"}),o(a,{htmlFor:e.value,className:"mb-0 RemoteFlows__CheckBox__Label",children:e.label})]},e.value)):r("div",{className:"flex space-x-2",children:[o(c,{id:m,onCheckedChange:e=>{l.onChange(e===!0,null)},checked:l.value,className:"RemoteFlows__CheckBox__Input"}),o(a,{htmlFor:m,className:"mb-0 RemoteFlows__CheckBox__Label",children:s})]})]})}),n&&o(i,{children:n}),k.error&&o(u,{})]})},"CheckboxFieldDefault");export{L as a};
|
|
2
|
+
//# sourceMappingURL=chunk-XSG4QXPY.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as r}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as r}from"./chunk-GCWEOZBS.js";import{a as t}from"./chunk-P37U34EQ.js";import{jsx as a}from"react/jsx-runtime";function s({className:e,direction:o="col",...n}){return a("div",{"data-slot":"card",className:r("RemoteFlows__Card bg-white text-card-foreground rounded-[10px] gap-4 border border-gray-200 px-10 py-14",o==="row"?"flex flex-row":"flex flex-col",e),...n})}t(s,"Card");function p({className:e,...o}){return a("header",{"data-slot":"card-header",className:r("flex flex-col gap-1.5 px-6",e),...o})}t(p,"CardHeader");function l({className:e,as:o,...n}){return a(o||"h2",{"data-slot":"card-title",className:r("leading-none font-semibold",e),...n})}t(l,"CardTitle");function i({className:e,...o}){return a("p",{"data-slot":"card-description",className:r("text-sm",e),...o})}t(i,"CardDescription");function m({className:e,...o}){return a("div",{"data-slot":"card-content",className:r("px-6",e),...o})}t(m,"CardContent");function f({className:e,...o}){return a("footer",{"data-slot":"card-footer",className:r("flex items-center px-6",e),...o})}t(f,"CardFooter");export{s as a,p as b,l as c,i as d,m as e,f};
|
|
2
|
+
//# sourceMappingURL=chunk-YHD2RXJC.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as x,c as y,d as k}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b as x,c as y,d as k}from"./chunk-A54D24NT.js";import{b as h}from"./chunk-PGRQG254.js";import{b as C}from"./chunk-H2OBH7SK.js";import{a as m}from"./chunk-GCWEOZBS.js";import{a as r}from"./chunk-P37U34EQ.js";import{Fragment as z,useState as G}from"react";import{Check as L,ChevronDownIcon as B,X as M}from"lucide-react";import{Command as i}from"cmdk";import{SearchIcon as H}from"lucide-react";import{jsx as d,jsxs as X}from"react/jsx-runtime";function b({className:t,...o}){return d(i,{"data-slot":"command",className:m("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md",t),...o})}r(b,"Command");function P({className:t,...o}){return d(i.List,{"data-slot":"command-list",className:m("max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto",t),...o})}r(P,"CommandList");function _({...t}){return d(i.Empty,{"data-slot":"command-empty",className:"py-6 text-center text-sm",...t})}r(_,"CommandEmpty");function w({className:t,...o}){return d(i.Group,{"data-slot":"command-group",className:m("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",t),...o})}r(w,"CommandGroup");function N({className:t,...o}){return d(i.Separator,{"data-slot":"command-separator",className:m("bg-border -mx-1 h-px",t),...o})}r(N,"CommandSeparator");function D({className:t,...o}){return d(i.Item,{"data-slot":"command-item",className:m("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",t),...o})}r(D,"CommandItem");import{jsx as a,jsxs as s}from"react/jsx-runtime";function Z({options:t,selected:o,onChange:u,placeholder:S,...I}){let[g,R]=G(!1),f=r(e=>{u(o.filter(n=>n.value!==e.value))},"handleUnselect"),O=t.some(e=>e.category),E=t.reduce((e,n)=>{let p=n.category||"Uncategorized";return e[p]||(e[p]=[]),e[p].push(n),e},{});return s(x,{open:g,onOpenChange:R,...I,children:[a(y,{children:s(C,{variant:"outline",role:"combobox","aria-expanded":g,className:"w-full justify-between font-normal",type:"button",children:[a("div",{className:"flex gap-1 flex-wrap overflow-x-auto max-h-[2.5rem] items-center",children:o.length>0?o.map(e=>s(h,{variant:"secondary",className:"mr-1 mb-1",children:[e.label,a("div",{role:"button",tabIndex:0,"aria-label":`remove ${e.label}`,className:"ml-1 ring-offset-background rounded-full outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 cursor-pointer",onKeyDown:n=>{n.key==="Enter"&&f(e)},onMouseDown:n=>{n.preventDefault(),n.stopPropagation()},onClick:()=>f(e),children:a(M,{className:"h-3 w-3 text-muted-foreground hover:text-foreground"})})]},e.label)):a("span",{className:"text-foreground",children:S})}),a(B,{className:"size-4"})]})}),a(k,{align:"start",className:"w-full p-0",children:a(b,{children:s(P,{children:[a(_,{children:"No item found."}),Object.entries(E).map(([e,n],p)=>s(z,{children:[p>0&&a(N,{}),a(w,{heading:O?e:void 0,children:n.map(l=>{let v=o.some(c=>c.value===l.value);return s(D,{onSelect:()=>{u(v?o.filter(c=>c.value!==l.value):[...o,l])},children:[a(L,{className:m("mr-2 h-4 w-4",v?"opacity-100":"opacity-0")}),l.label]},l.label)})})]},e))]})})})]})}r(Z,"MultiSelect");export{Z as a};
|
|
2
|
+
//# sourceMappingURL=chunk-YHIADGM3.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{c as d,d as S}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{c as d,d as S}from"./chunk-VLP6L77E.js";import{a as f}from"./chunk-KSHK3ZPX.js";import{a as u}from"./chunk-HN5HLFTB.js";import{b as C}from"./chunk-LNV36S6D.js";import{f as y}from"./chunk-3QNS3IZB.js";import{a as o}from"./chunk-P37U34EQ.js";import{useEffect as T,useId as U,useState as I}from"react";import{jsx as k}from"react/jsx-runtime";var l=o((n,e,r)=>r&&r[e]?r[e]:n[e]?n[e]/100:0,"getDefaultManagementFee"),A=o((n,e,r,g)=>!e&&!r?.management_fee&&n?l(u,n,g):e&&!r?.management_fee?"":r?.management_fee,"getManagementFee"),W=o(({estimationOptions:n=d,defaultValues:e={countryRegionSlug:"",regionSlug:"",currencySlug:"",salary:"",benefits:{},management:{management_fee:""}},options:r,render:g,version:_="standard"})=>{let p=U(),[R,m]=I("USD"),F=o(s=>{m(s);let a=l(u,s,n.managementFees);a&&c.setValue("management.management_fee",a.toString())},"onCurrencyChange"),t=S({defaultRegion:e.countryRegionSlug,defaultCurrency:e.currencySlug,defaultSalary:e.salary,estimationOptions:n,version:_,options:{...r,onCurrencyChange:F}}),K=C(t.handleValidation),b=A(R,e.currencySlug,e.management,n.managementFees),{countryRegionSlug:v,currencySlug:h,salary:D,benefits:P,hiringBudget:B,age:E,contractDurationType:M,regionSlug:w,...x}=e,c=y({resolver:K,defaultValues:{country:v,currency:h,region:w,salary:D,salary_conversion:"",salary_converted:void 0,hiring_budget:B||"employee_annual_salary",age:E,contract_duration_type:M,management:{management_fee:b?.toString()||""},benefits:P,estimation_title:n.title,...x},shouldUnregister:!1,mode:"onBlur"});return T(()=>{if(e.currencySlug&&t.currencies&&n.includeManagementFee&&!e.management?.management_fee){let a=t.currencies.find(i=>i.value===e.currencySlug)?.label;if(a){m(a);let i=l(u,a,n.managementFees);c.setValue("management.management_fee",i?.toString()||"")}}},[e.currencySlug,t.currencies,n.includeManagementFee,n.managementFees,e.management?.management_fee,c]),k(f.Provider,{value:{form:c,formId:p,costCalculatorBag:t},children:g(t)})},"CostCalculatorFlow");export{W as a};
|
|
2
|
+
//# sourceMappingURL=chunk-YMLXE6OO.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as t}from"./chunk-ZXGAFQXW.js";import{a}from"./chunk-LMYJ6V44.js";import{a as e}from"./chunk-TC7EQZJK.js";import{a as r}from"./chunk-NX7MM6XR.js";var i={data:{version:7,schema:{additionalProperties:!1,allOf:[...e.data.schema.allOf,...t.data.schema.allOf,...r.data.schema.allOf,...a.data.schema.allOf],properties:{...e.data.schema.properties,...t.data.schema.properties,...r.data.schema.properties,...a.data.schema.properties},required:[...e.data.schema.required,...t.data.schema.required,...r.data.schema.required,...a.data.schema.required],type:"object","x-jsf-order":[...e.data.schema["x-jsf-order"],...t.data.schema["x-jsf-order"],...r.data.schema["x-jsf-order"],...a.data.schema["x-jsf-order"]]}}};export{i as a};
|
|
2
|
+
//# sourceMappingURL=chunk-YRC6EEM3.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as t}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as t}from"./chunk-GCWEOZBS.js";import{a as e}from"./chunk-P37U34EQ.js";import*as o from"@radix-ui/react-label";import{jsx as r}from"react/jsx-runtime";function l({className:a,...i}){return r(o.Root,{"data-slot":"label",className:t("flex items-center gap-2 text-sm leading-none select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50",a),...i})}e(l,"Label");export{l as a};
|
|
2
|
+
//# sourceMappingURL=chunk-YUQ3GDQI.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as p}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as p}from"./chunk-EUSCQL4H.js";import{C as m,F as C,K as d,j as l,r as u,x as c}from"./chunk-5XHL6B25.js";import{d as o}from"./chunk-KQPDXXG3.js";import{a as t}from"./chunk-P37U34EQ.js";import{useMutation as a,useQuery as r}from"@tanstack/react-query";var h=t(({includePremiumBenefits:e})=>{let{client:i}=o();return r({queryKey:["cost-calculator-countries",e],queryFn:t(()=>c({client:i,query:{include_premium_benefits:e}}),"queryFn"),select:t(s=>s.data?.data.filter(n=>n.availability==="active").map(n=>({value:n.region_slug,label:n.name,childRegions:n.child_regions,hasAdditionalFields:n.has_additional_fields,regionSlug:n.region_slug,currency:n.currency.code})),"select")})},"useCostCalculatorCountries"),q=t(()=>{let{client:e}=o();return r({queryKey:["company-currencies"],queryFn:t(()=>d({client:e}),"queryFn"),select:t(i=>i.data?.data?.company_currencies.map(s=>({value:s.slug,label:s.code})),"select")})},"useCompanyCurrencies"),x=t(()=>{let{client:e}=o();return a({mutationFn:t(i=>l({client:e,body:i}),"mutationFn")})},"useCostCalculatorEstimation"),P=t(()=>{let{client:e}=o();return a({mutationFn:t(i=>u({client:e,body:i}),"mutationFn")})},"useCostCalculatorEstimationPdf"),v=t(()=>{let{client:e}=o();return a({mutationFn:t(i=>C({client:e,body:i}),"mutationFn")})},"useCostCalculatorEstimationCsv"),S=t((e,{includePremiumBenefits:i,options:s})=>{let{client:n}=o();return r({queryKey:["cost-calculator-region-fields",e,i],queryFn:t(()=>m({client:n,path:{slug:e},query:{include_premium_benefits:i}}),"queryFn"),enabled:!!e,select:t(({data:f})=>{let y=f?.data?.schema||{};return p(y,void 0,s)},"select")})},"useRegionFields");export{h as a,q as b,x as c,P as d,v as e,S as f};
|
|
2
|
+
//# sourceMappingURL=chunk-ZNV46UUP.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as m}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as m}from"./chunk-WHROCBHG.js";import{a as r}from"./chunk-IG5LQPUN.js";import{a}from"./chunk-U6LRMWRI.js";import{a as c}from"./chunk-PO57BOOY.js";import{a as e}from"./chunk-D5AR26AI.js";import{a as o}from"./chunk-TVZAFTPT.js";import{a as n}from"./chunk-P37U34EQ.js";import{useId as f}from"react";import{jsx as s}from"react/jsx-runtime";function k({employmentId:d,countryCode:C,options:p,render:A}){let t=c({employmentId:d,countryCode:C,options:p}),i=f();return s(o.Provider,{value:{formId:i,contractAmendmentBag:t},children:A({contractAmendmentBag:t,components:{Form:r,SubmitButton:a,ConfirmationForm:m,BackButton:e}})})}n(k,"ContractAmendmentFlow");export{k as a};
|
|
2
|
+
//# sourceMappingURL=chunk-ZOPKBLGA.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{c as x,h as _}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{c as x,h as _}from"./chunk-3QNS3IZB.js";import{b as C}from"./chunk-KQPDXXG3.js";import{a}from"./chunk-P37U34EQ.js";import D from"lodash.groupby";import $ from"lodash.capitalize";var S=60,F=["monday","tuesday","wednesday","thursday","friday","saturday","sunday"];function M(e){if(e<60)return`${e}m`;let s=Math.floor(e/S),n=e%S;return n>0?`${s}h${n}m`:`${s}h`}a(M,"convertBreakDurationToHours");function O(e){let s=e.reduce((n,u)=>u.hours+n,0);return Number(s.toFixed(2))}a(O,"calculateTotalWorkHours");function H(e,s){let n=s.map(({day:c})=>c.toLowerCase()),u=n.indexOf(e),i=null;for(;u<n.length&&!i;){let c=n[u],k=n[u+1],r=F.indexOf(c)+1;F[r]===k||(i=c),u+=1}return i}a(H,"findLastConsecutiveDay");function N(e){return e.start_time&&e.end_time&&(typeof e.hours=="number"?e.hours:Number.parseInt(e.hours))>0}a(N,"shouldSummarizeSchedule");function T(e){return Number.parseInt(e.break_duration_minutes)>0}a(T,"shouldSummarizeBreaks");function I(e){let s=e.filter(N),n=D(s,r=>`${r.start_time}|${r.end_time}`),u=e.filter(T),i=D(u,"break_duration_minutes"),c=Object.keys(n).map(r=>{let o=n[r],y=o[0].day,[p,h]=r.split("|"),t=`from <span>${p.replace(":","h")}</span> to <span>${h.replace(":","h")}</span>`,d=H(y,o),m=(d?o.findIndex(f=>f.day===d):-1)===o.length-1;return o.length===1?`${$(y)}, ${t}`:!m||!d?o.reduce((f,b,v)=>{let g=$(b.day);return v===o.length-1?`${f}and ${g}, ${t}`:`${f}<span>${g}</span>, `},""):`<span>${$(y)}</span> to <span>${$(d)}</span>, ${t}`}),k=Object.keys(i).reverse().map((r,o)=>{let y=o===0,p=i[r],h=M(parseInt(r,10));if(Object.keys(i).length===1)return`With ${h} daily breaks`;if(p.length===1){let t=`${h} break on ${$(p[0].day)}.`;return y?`With ${t}`:t}return p.reduce((t,d,l)=>{let m=$(d.day);return l===0?`${t} ${m}`:l===p.length-1?`${t}, and ${m}.`:`${t}, ${m}`},y?`With ${h} break on`:`${h} break on`)});return{workHoursSummary:c,breakSummary:k}}a(I,"buildWorkScheduleSummary");function P(e){let{checked:s,start_time:n,end_time:u,break_duration_minutes:i}=e;if(!s)return 0;let[c,k]=n.split(":").map(Number),[r,o]=u.split(":").map(Number),y=c*60+k,t=(r*60+o-y-Number.parseInt(i||"0"))/60;return t===Math.floor(t)?t:Number(t.toFixed(2))}a(P,"calculateHours");var w={monday:"Mon",tuesday:"Tue",wednesday:"Wed",thursday:"Thu",friday:"Fri",saturday:"Sat",sunday:"Sun"};function R(e){return w[e]}a(R,"getShortWeekday");import{jsx as W}from"react/jsx-runtime";function U({name:e,defaultValue:s,description:n,label:u,onChange:i,multiple:c,options:k,component:r,...o}){let{components:y}=C(),{control:p}=x(),h=a((t,d,l)=>{if(c&&l){let m=t.value?[...t.value]:[];d?m.includes(l)||t.onChange([...m,l]):t.onChange(m.filter(f=>f!==l))}else t.onChange(d)},"handleCheckboxChange");return W(_,{control:p,name:e,defaultValue:s,render:({field:t,fieldState:d})=>{let l=r||y?.checkbox;if(!l)throw new Error(`Checkbox component not found for field ${e}`);let m={name:e,description:n,label:u,defaultValue:s,multiple:c,options:k,...o};return W(l,{field:{...t,onChange:a((f,b)=>{h(t,f,b),i?.(f,b)},"onChange")},fieldState:d,fieldData:m})}})}a(U,"CheckBoxField");export{F as a,O as b,I as c,P as d,R as e,U as f};
|
|
2
|
+
//# sourceMappingURL=chunk-ZTBFYRNL.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as e}from"./chunk-ZXGAFQXW.js";import{a as i}from"./chunk-LMYJ6V44.js";import{a as o}from"./chunk-TC7EQZJK.js";import{a as m}from"./chunk-NX7MM6XR.js";var p={employee_communication:o,termination_details:e,paid_time_off:m,additional_information:i};export{p as a};
|
|
2
|
+
//# sourceMappingURL=chunk-ZVUQDK2E.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { C as Components } from './remoteFlows-
|
|
1
|
+
import { C as Components } from './remoteFlows-DtWy_kl6.js';
|
|
2
2
|
import 'react';
|
|
3
3
|
import 'yup';
|
|
4
|
-
import './types.gen-
|
|
4
|
+
import './types.gen-Dg6qF5i1.js';
|
|
5
5
|
import './types-ZWIpiFgj.js';
|
|
6
6
|
import 'react-hook-form';
|
|
7
7
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as F}from"./chunk-
|
|
1
|
+
import{a as n}from"./chunk-3JJEKIQ2.js";import{a as F}from"./chunk-CNCOVTDL.js";import{a as s}from"./chunk-XSG4QXPY.js";import{a as c}from"./chunk-TZPHBNNS.js";import{a as b}from"./chunk-JQ2ESL5O.js";import{a as k}from"./chunk-C4NXXY3X.js";import{a as m}from"./chunk-NXDG32BY.js";import{a as i}from"./chunk-7SYE5KEV.js";import{a as f}from"./chunk-H5VA2OWQ.js";import{a}from"./chunk-EIFXWGXM.js";import{a as u}from"./chunk-D4FBB5XW.js";import{a as p}from"./chunk-THPH57GK.js";import{a as D}from"./chunk-C2NROAMW.js";import{a as e}from"./chunk-3UJC7KHD.js";import{a as t}from"./chunk-VC6X3C2I.js";import{a as o}from"./chunk-KXF27FC4.js";import{a as r}from"./chunk-VKYP2MQQ.js";import"./chunk-P45OX5YT.js";import"./chunk-YHIADGM3.js";import"./chunk-A54D24NT.js";import{a as l}from"./chunk-CKA37AR5.js";import"./chunk-ZTBFYRNL.js";import{a as d}from"./chunk-AN5U7FWW.js";import"./chunk-MZNUCWQU.js";import"./chunk-CEM3JUSV.js";import"./chunk-3QNS3IZB.js";import"./chunk-5XHL6B25.js";import"./chunk-VIQQ3IHI.js";import"./chunk-FLW5LACO.js";import"./chunk-JTSHX4RB.js";import"./chunk-ILX4QHHH.js";import"./chunk-OVTH3ZHO.js";import"./chunk-F2VYTYIQ.js";import"./chunk-PGRQG254.js";import"./chunk-7QRAEME3.js";import"./chunk-FJPY27YJ.js";import"./chunk-H2OBH7SK.js";import"./chunk-YUQ3GDQI.js";import"./chunk-GCWEOZBS.js";import"./chunk-3X36ZFNP.js";import"./chunk-KQPDXXG3.js";import"./chunk-P37U34EQ.js";var V={button:b,checkbox:s,countries:r,date:m,drawer:D,email:f,fieldsetToggle:d,file:e,"multi-select":u,number:i,radio:a,select:o,statement:l,textarea:t,text:p,zendeskDrawer:n,table:F,"work-schedule":c,pdfViewer:k};export{V as defaultComponents};
|
|
2
2
|
//# sourceMappingURL=default-components.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/default-components.ts"],"sourcesContent":["import { Components } from '@/src/types/remoteFlows';\nimport { FileUploadFieldDefault } from '@/src/components/form/fields/default/FileUploadFieldDefault';\nimport { TextAreaFieldDefault } from '@/src/components/form/fields/default/TextAreaFieldDefault';\nimport { SelectFieldDefault } from '@/src/components/form/fields/default/SelectFieldDefault';\nimport { CountryFieldDefault } from '@/src/components/form/fields/default/CountryFieldDefault';\nimport { StatementDefault } from '@/src/components/form/fields/default/StatementDefault';\nimport { DatePickerFieldDefault } from '@/src/components/form/fields/default/DatePickerFieldDefault';\nimport { NumberFieldDefault } from '@/src/components/form/fields/default/NumberFieldDefault';\nimport { EmailFieldDefault } from '@/src/components/form/fields/default/EmailFieldDefault';\nimport { RadioGroupFieldDefault } from '@/src/components/form/fields/default/RadioGroupFieldDefault';\nimport { MultiSelectFieldDefault } from '@/src/components/form/fields/default/MultiSelectFieldDefault';\nimport { TextFieldDefault } from '@/src/components/form/fields/default/TextFieldDefault';\nimport { FieldsetToggleButtonDefault } from '@/src/components/form/fields/default/FieldsetToggleButtonDefault';\nimport { DrawerDefault } from '@/src/components/shared/drawer/DrawerDefault';\nimport { ZendeskDrawerDefault } from '@/src/components/shared/zendesk-drawer/ZendeskDrawerDefault';\nimport { TableFieldDefault } from '@/src/components/shared/table/TableFieldDefault';\nimport { CheckboxFieldDefault } from '@/src/components/form/fields/default/CheckboxFieldDefault';\nimport { WorkScheduleFieldDefault } from '@/src/components/form/fields/default/WorkScheduleFieldDefault';\nimport { ButtonDefault } from '@/src/components/form/fields/default/ButtonDefault';\nimport { PDFPreviewDefault } from '@/src/components/shared/pdf-preview/PDFPreviewDefault';\n/**\n * Default field components for RemoteFlows.\n *\n * This module acts as a reference for our users to know what are the components that are really overrided\n *\n */\nexport const defaultComponents: Components = {\n button: ButtonDefault,\n checkbox: CheckboxFieldDefault,\n countries: CountryFieldDefault,\n date: DatePickerFieldDefault,\n drawer: DrawerDefault,\n email: EmailFieldDefault,\n fieldsetToggle: FieldsetToggleButtonDefault,\n file: FileUploadFieldDefault,\n // TODO: we have doubts multi-select, it's actually used\n 'multi-select': MultiSelectFieldDefault,\n number: NumberFieldDefault,\n radio: RadioGroupFieldDefault,\n select: SelectFieldDefault,\n statement: StatementDefault,\n textarea: TextAreaFieldDefault,\n text: TextFieldDefault,\n zendeskDrawer: ZendeskDrawerDefault,\n table: TableFieldDefault,\n 'work-schedule': WorkScheduleFieldDefault,\n pdfViewer: PDFPreviewDefault,\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/default-components.ts"],"sourcesContent":["import { Components } from '@/src/types/remoteFlows';\nimport { FileUploadFieldDefault } from '@/src/components/form/fields/default/FileUploadFieldDefault';\nimport { TextAreaFieldDefault } from '@/src/components/form/fields/default/TextAreaFieldDefault';\nimport { SelectFieldDefault } from '@/src/components/form/fields/default/SelectFieldDefault';\nimport { CountryFieldDefault } from '@/src/components/form/fields/default/CountryFieldDefault';\nimport { StatementDefault } from '@/src/components/form/fields/default/StatementDefault';\nimport { DatePickerFieldDefault } from '@/src/components/form/fields/default/DatePickerFieldDefault';\nimport { NumberFieldDefault } from '@/src/components/form/fields/default/NumberFieldDefault';\nimport { EmailFieldDefault } from '@/src/components/form/fields/default/EmailFieldDefault';\nimport { RadioGroupFieldDefault } from '@/src/components/form/fields/default/RadioGroupFieldDefault';\nimport { MultiSelectFieldDefault } from '@/src/components/form/fields/default/MultiSelectFieldDefault';\nimport { TextFieldDefault } from '@/src/components/form/fields/default/TextFieldDefault';\nimport { FieldsetToggleButtonDefault } from '@/src/components/form/fields/default/FieldsetToggleButtonDefault';\nimport { DrawerDefault } from '@/src/components/shared/drawer/DrawerDefault';\nimport { ZendeskDrawerDefault } from '@/src/components/shared/zendesk-drawer/ZendeskDrawerDefault';\nimport { TableFieldDefault } from '@/src/components/shared/table/TableFieldDefault';\nimport { CheckboxFieldDefault } from '@/src/components/form/fields/default/CheckboxFieldDefault';\nimport { WorkScheduleFieldDefault } from '@/src/components/form/fields/default/WorkScheduleFieldDefault';\nimport { ButtonDefault } from '@/src/components/form/fields/default/ButtonDefault';\nimport { PDFPreviewDefault } from '@/src/components/shared/pdf-preview/PDFPreviewDefault';\n/**\n * Default field components for RemoteFlows.\n *\n * This module acts as a reference for our users to know what are the components that are really overrided\n *\n */\nexport const defaultComponents: Components = {\n button: ButtonDefault,\n checkbox: CheckboxFieldDefault,\n countries: CountryFieldDefault,\n date: DatePickerFieldDefault,\n drawer: DrawerDefault,\n email: EmailFieldDefault,\n fieldsetToggle: FieldsetToggleButtonDefault,\n file: FileUploadFieldDefault,\n // TODO: we have doubts multi-select, it's actually used\n 'multi-select': MultiSelectFieldDefault,\n number: NumberFieldDefault,\n radio: RadioGroupFieldDefault,\n select: SelectFieldDefault,\n statement: StatementDefault,\n textarea: TextAreaFieldDefault,\n text: TextFieldDefault,\n zendeskDrawer: ZendeskDrawerDefault,\n table: TableFieldDefault,\n 'work-schedule': WorkScheduleFieldDefault,\n pdfViewer: PDFPreviewDefault,\n};\n"],"mappings":"u3CA0BO,IAAMA,EAAgC,CAC3C,OAAQC,EACR,SAAUC,EACV,UAAWC,EACX,KAAMC,EACN,OAAQC,EACR,MAAOC,EACP,eAAgBC,EAChB,KAAMC,EAEN,eAAgBC,EAChB,OAAQC,EACR,MAAOC,EACP,OAAQC,EACR,UAAWC,EACX,SAAUC,EACV,KAAMC,EACN,cAAeC,EACf,MAAOC,EACP,gBAAiBC,EACjB,UAAWC,CACb","names":["defaultComponents","ButtonDefault","CheckboxFieldDefault","CountryFieldDefault","DatePickerFieldDefault","DrawerDefault","EmailFieldDefault","FieldsetToggleButtonDefault","FileUploadFieldDefault","MultiSelectFieldDefault","NumberFieldDefault","RadioGroupFieldDefault","SelectFieldDefault","StatementDefault","TextAreaFieldDefault","TextFieldDefault","ZendeskDrawerDefault","TableFieldDefault","WorkScheduleFieldDefault","PDFPreviewDefault"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { P as PostCreateContractAmendmentError, b as ContractAmendmentResponse } from '../../types.gen-
|
|
2
|
+
import { P as PostCreateContractAmendmentError, b as ContractAmendmentResponse } from '../../types.gen-Dg6qF5i1.js';
|
|
3
3
|
import { FieldValues } from 'react-hook-form';
|
|
4
4
|
|
|
5
5
|
type ContractAmendmentConfirmationFormProps = {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"../../chunk-
|
|
1
|
+
import{a}from"../../chunk-WHROCBHG.js";import"../../chunk-T7O3YYOG.js";import"../../chunk-3QNS3IZB.js";import"../../chunk-YUQ3GDQI.js";import"../../chunk-GCWEOZBS.js";import"../../chunk-3X36ZFNP.js";import"../../chunk-TVZAFTPT.js";import"../../chunk-P37U34EQ.js";export{a as ContractAmendmentConfirmationForm};
|
|
2
2
|
//# sourceMappingURL=ContractAmendmentConfirmationForm.js.map
|
|
@@ -5,11 +5,11 @@ import { ContractAmendmentForm } from './ContractAmendmentForm.js';
|
|
|
5
5
|
import { ContractAmendmentSubmit } from './ContractAmendmentSubmit.js';
|
|
6
6
|
import { useContractAmendment } from './hooks.js';
|
|
7
7
|
import { ContractAmendmentParams } from './types.js';
|
|
8
|
-
import '../../types.gen-
|
|
8
|
+
import '../../types.gen-Dg6qF5i1.js';
|
|
9
9
|
import 'react-hook-form';
|
|
10
10
|
import 'react';
|
|
11
|
-
import '../../mutations-
|
|
12
|
-
import '../../remoteFlows-
|
|
11
|
+
import '../../mutations-D1eQrIJS.js';
|
|
12
|
+
import '../../remoteFlows-DtWy_kl6.js';
|
|
13
13
|
import 'yup';
|
|
14
14
|
import '../../types-ZWIpiFgj.js';
|
|
15
15
|
import '@remoteoss/json-schema-form';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"../../chunk-
|
|
1
|
+
import{a}from"../../chunk-ZOPKBLGA.js";import"../../chunk-WHROCBHG.js";import"../../chunk-IG5LQPUN.js";import"../../chunk-LNV36S6D.js";import"../../chunk-CEHS4AFO.js";import"../../chunk-HBPFTEHZ.js";import"../../chunk-EYHFPHIA.js";import"../../chunk-U6LRMWRI.js";import"../../chunk-PO57BOOY.js";import"../../chunk-634DTN72.js";import"../../chunk-EAF6XPH6.js";import"../../chunk-EUSCQL4H.js";import"../../chunk-T7O3YYOG.js";import"../../chunk-ZTBFYRNL.js";import"../../chunk-AN5U7FWW.js";import"../../chunk-MZNUCWQU.js";import"../../chunk-CEM3JUSV.js";import"../../chunk-3QNS3IZB.js";import"../../chunk-5XHL6B25.js";import"../../chunk-H2OBH7SK.js";import"../../chunk-YUQ3GDQI.js";import"../../chunk-GCWEOZBS.js";import"../../chunk-3X36ZFNP.js";import"../../chunk-5BRMLRS7.js";import"../../chunk-Z5WMKCRJ.js";import"../../chunk-D5AR26AI.js";import"../../chunk-TVZAFTPT.js";import"../../chunk-KQPDXXG3.js";import"../../chunk-P37U34EQ.js";export{a as ContractAmendmentFlow};
|
|
2
2
|
//# sourceMappingURL=ContractAmendmentFlow.js.map
|