@remoteoss/remote-flows 1.50.0 → 1.52.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/CheckboxFieldDefault-23VE43PP.js +2 -0
- package/dist/CountryFieldDefault-FVAAL55P.js +2 -0
- package/dist/DatePickerFieldDefault-KXEMGK5B.js +2 -0
- package/dist/EmailFieldDefault-OFHDLOOT.js +2 -0
- package/dist/FileUploadFieldDefault-GX22C22E.js +2 -0
- package/dist/ForcedValueFieldDefault-ESITCZWK.js +2 -0
- package/dist/MultiSelectFieldDefault-DAUBH5JV.js +2 -0
- package/dist/NumberFieldDefault-MXZD7YVE.js +2 -0
- package/dist/PDFPreviewDefault-T6YPWXGY.js +2 -0
- package/dist/RadioGroupFieldDefault-QFUUJGSR.js +2 -0
- package/dist/SelectFieldDefault-3QTJE222.js +2 -0
- package/dist/TelFieldDefault-5U5X37LI.js +2 -0
- package/dist/TextAreaFieldDefault-JX2MVJVY.js +2 -0
- package/dist/TextFieldDefault-WCUD6XYS.js +2 -0
- package/dist/TimeFieldDefault-UNF7PKLT.js +2 -0
- package/dist/WorkScheduleFieldDefault-2A2RCDXV.js +2 -0
- package/dist/{chunk-SLRPDXK6.js → chunk-235XZBTZ.js} +2 -2
- package/dist/chunk-2EXX7BNU.js +2 -0
- package/dist/{chunk-PUK2TIQX.js.map → chunk-2EXX7BNU.js.map} +1 -1
- package/dist/chunk-2L6AB46E.js +2 -0
- package/dist/{chunk-A7U3KJIP.js.map → chunk-2L6AB46E.js.map} +1 -1
- package/dist/{chunk-GE74QKS6.js → chunk-335N2CVQ.js} +2 -2
- package/dist/chunk-36DZMQHH.js +2 -0
- package/dist/{chunk-DDMXUBCN.js.map → chunk-36DZMQHH.js.map} +1 -1
- package/dist/{chunk-N7HCQXUM.js → chunk-3B7FASV7.js} +2 -2
- package/dist/{chunk-STHZZZRL.js → chunk-3BDWVNHX.js} +2 -2
- package/dist/chunk-3CGFAN3F.js +2 -0
- package/dist/{chunk-DP6L72YF.js.map → chunk-3CGFAN3F.js.map} +1 -1
- package/dist/{chunk-ZREW7KZA.js → chunk-3DOSHTJS.js} +2 -2
- package/dist/{chunk-SZI67IXU.js → chunk-3HMBTPH7.js} +2 -2
- package/dist/{chunk-NTPHMYYC.js → chunk-3NC2JJM3.js} +2 -2
- package/dist/{chunk-ED35NFA6.js → chunk-3OHORFIX.js} +2 -2
- package/dist/{chunk-WGO25FWG.js → chunk-3WRO57UF.js} +2 -2
- package/dist/chunk-463G2HDA.js +2 -0
- package/dist/{chunk-CONMRDRL.js.map → chunk-463G2HDA.js.map} +1 -1
- package/dist/{chunk-4CNDASPA.js → chunk-4AQMMGXK.js} +2 -2
- package/dist/{chunk-G6EKGJBB.js → chunk-4BFGSBOK.js} +2 -2
- package/dist/{chunk-VVZTXCX2.js → chunk-4KIOOLOG.js} +2 -2
- package/dist/{chunk-SUYI33NX.js → chunk-4UN7DBEV.js} +2 -2
- package/dist/{chunk-RZL44CPH.js → chunk-57Y5XQ3D.js} +2 -2
- package/dist/{chunk-P6FFLJDP.js → chunk-5DPOL3DT.js} +2 -2
- package/dist/{chunk-FV6NNYDP.js → chunk-5FST4WDH.js} +2 -2
- package/dist/chunk-5NN5RWBG.js +2 -0
- package/dist/chunk-5NN5RWBG.js.map +1 -0
- package/dist/{chunk-46BOEYFO.js → chunk-6OLV37C2.js} +2 -2
- package/dist/{chunk-YHZZHQP5.js → chunk-6RPIMHYS.js} +2 -2
- package/dist/{chunk-MXAFJYLQ.js → chunk-6TLBBS6E.js} +2 -2
- package/dist/{chunk-EVUTX6TJ.js → chunk-77LDJPXF.js} +2 -2
- package/dist/chunk-7PEZVTSQ.js +2 -0
- package/dist/chunk-7PEZVTSQ.js.map +1 -0
- package/dist/{chunk-BTCC6PNG.js → chunk-7TELDH6M.js} +2 -2
- package/dist/{chunk-OWOIDZHI.js → chunk-7Y4NHODP.js} +2 -2
- package/dist/{chunk-GBVBMT3H.js → chunk-ADL2ZH54.js} +2 -2
- package/dist/{chunk-UZFEJMO6.js → chunk-AFTFDGSD.js} +2 -2
- package/dist/chunk-ANPNVWCB.js +2 -0
- package/dist/{chunk-E5ATCB4A.js → chunk-AOE6FXVP.js} +2 -2
- package/dist/{chunk-E5ATCB4A.js.map → chunk-AOE6FXVP.js.map} +1 -1
- package/dist/{chunk-L2YOD4GP.js → chunk-APSKAXM2.js} +2 -2
- package/dist/{chunk-5HDMU73I.js → chunk-B2WE3PSY.js} +2 -2
- package/dist/{chunk-FSCAWXCB.js → chunk-B677Q3B3.js} +2 -2
- package/dist/chunk-BQGTMOIQ.js +2 -0
- package/dist/{chunk-53QBSOMG.js.map → chunk-BQGTMOIQ.js.map} +1 -1
- package/dist/{chunk-WKWL57L6.js → chunk-BYD4TSDD.js} +2 -2
- package/dist/chunk-C7KVPEVX.js +2 -0
- package/dist/chunk-C7KVPEVX.js.map +1 -0
- package/dist/chunk-COQVI5OD.js +2 -0
- package/dist/chunk-COQVI5OD.js.map +1 -0
- package/dist/{chunk-5JXLXWTD.js → chunk-CR5J5KK6.js} +2 -2
- package/dist/chunk-D7F3QKN5.js +2 -0
- package/dist/chunk-D7F3QKN5.js.map +1 -0
- package/dist/chunk-DAUDKN32.js +8 -0
- package/dist/{chunk-QQV5REGG.js.map → chunk-DAUDKN32.js.map} +1 -1
- package/dist/{chunk-LXGL7HF5.js → chunk-DIPYFRXX.js} +2 -2
- package/dist/chunk-DSJXT5ZP.js +2 -0
- package/dist/chunk-DSJXT5ZP.js.map +1 -0
- package/dist/{chunk-ZOTKZZ67.js → chunk-DTNFGOBK.js} +2 -2
- package/dist/{chunk-JLZFNUBH.js → chunk-E7Y3YBZH.js} +2 -2
- package/dist/chunk-EP3BNRH3.js +2 -0
- package/dist/chunk-EP3BNRH3.js.map +1 -0
- package/dist/{chunk-GTS7KFEM.js → chunk-EQOOVJ7K.js} +2 -2
- package/dist/chunk-EUQLCVA5.js +2 -0
- package/dist/chunk-EUQLCVA5.js.map +1 -0
- package/dist/{chunk-R4ZUOFYN.js → chunk-FF5OB2GF.js} +2 -2
- package/dist/{chunk-H47XUL2L.js → chunk-FFRROEPQ.js} +2 -2
- package/dist/chunk-FIJSNO57.js +2 -0
- package/dist/chunk-FIJSNO57.js.map +1 -0
- package/dist/{chunk-UGQNOBQH.js → chunk-GF4MSLVP.js} +2 -2
- package/dist/{chunk-P2WUHKEU.js → chunk-GIBD2ZCJ.js} +2 -2
- package/dist/{chunk-XDLVDPQ7.js → chunk-GNVGW65D.js} +2 -2
- package/dist/{chunk-4IGLIHGF.js → chunk-GRLZH65T.js} +2 -2
- package/dist/chunk-GSUGHAHA.js +2 -0
- package/dist/{chunk-4BHEQMZV.js.map → chunk-GSUGHAHA.js.map} +1 -1
- package/dist/{chunk-CCGAAOXN.js → chunk-H4NJGAN4.js} +2 -2
- package/dist/chunk-HDFAFTHC.js +2 -0
- package/dist/chunk-HDFAFTHC.js.map +1 -0
- package/dist/{chunk-7FKNXW2I.js → chunk-HDTQOERP.js} +2 -2
- package/dist/{chunk-MEYX4D5K.js → chunk-I53YCEOC.js} +2 -2
- package/dist/{chunk-V3AVEPNA.js → chunk-I5NW7AQZ.js} +2 -2
- package/dist/{chunk-YME2HZZJ.js → chunk-I65OXH33.js} +2 -2
- package/dist/{chunk-ICYCECFS.js → chunk-IBQVGZMF.js} +2 -2
- package/dist/{chunk-ICYCECFS.js.map → chunk-IBQVGZMF.js.map} +1 -1
- package/dist/{chunk-TX6RWQUR.js → chunk-IJS67A57.js} +2 -2
- package/dist/chunk-IK2LTVOV.js +2 -0
- package/dist/chunk-IK2LTVOV.js.map +1 -0
- package/dist/{chunk-RYZ7TJVS.js → chunk-ISPN7HQ5.js} +2 -2
- package/dist/chunk-IYWSUSS2.js +2 -0
- package/dist/chunk-IYWSUSS2.js.map +1 -0
- package/dist/{chunk-FQBOMXMX.js → chunk-J244N33S.js} +2 -2
- package/dist/chunk-JKNE2D47.js +2 -0
- package/dist/{chunk-VRPZ4GHN.js.map → chunk-JKNE2D47.js.map} +1 -1
- package/dist/chunk-JO5D2522.js +2 -0
- package/dist/chunk-JO5D2522.js.map +1 -0
- package/dist/{chunk-ILMRP364.js → chunk-JUSQGITN.js} +2 -2
- package/dist/{chunk-GMSYO53D.js → chunk-KD7UBTZG.js} +2 -2
- package/dist/chunk-KF52YXGI.js +2 -0
- package/dist/chunk-KF52YXGI.js.map +1 -0
- package/dist/{chunk-VYTUM3RI.js → chunk-KFIUXU6I.js} +2 -2
- package/dist/chunk-KSSQR2CS.js +2 -0
- package/dist/chunk-KSSQR2CS.js.map +1 -0
- package/dist/{chunk-G75LPZV5.js → chunk-L7FN3XPX.js} +2 -2
- package/dist/{chunk-WVE2IOLY.js → chunk-LIZMNUQI.js} +2 -2
- package/dist/{chunk-KGNLBYM5.js → chunk-LJ32QPJF.js} +2 -2
- package/dist/chunk-LXABE3VR.js +2 -0
- package/dist/chunk-LXABE3VR.js.map +1 -0
- package/dist/chunk-LY5PCHQ2.js +2 -0
- package/dist/{chunk-B4O5YUYL.js.map → chunk-LY5PCHQ2.js.map} +1 -1
- package/dist/{chunk-BB3M25A3.js → chunk-MGCW2SS4.js} +2 -2
- package/dist/chunk-MNHXHKTE.js +2 -0
- package/dist/{chunk-EMMFAZZC.js.map → chunk-MNHXHKTE.js.map} +1 -1
- package/dist/{chunk-CUO7OGD5.js → chunk-MOOSPB2G.js} +2 -2
- package/dist/{chunk-ITCWBZDM.js → chunk-MZFT4MWM.js} +2 -2
- package/dist/chunk-NGBNHXAA.js +2 -0
- package/dist/{chunk-NYR6FVCU.js.map → chunk-NGBNHXAA.js.map} +1 -1
- package/dist/chunk-NQSJBVFL.js +2 -0
- package/dist/chunk-NQSJBVFL.js.map +1 -0
- package/dist/{chunk-V6PPOGPT.js → chunk-NVOUXFGX.js} +2 -2
- package/dist/{chunk-D6PMXNBM.js → chunk-OAX6TPIP.js} +2 -2
- package/dist/{chunk-4WSYC3Q5.js → chunk-OJ4TXF6G.js} +2 -2
- package/dist/{chunk-C7MVEDVY.js → chunk-OT5JE2SM.js} +2 -2
- package/dist/{chunk-QFTBKRUI.js → chunk-PJAHLEOR.js} +2 -2
- package/dist/{chunk-BLKWR77C.js → chunk-PJDHQ4ZQ.js} +2 -2
- package/dist/{chunk-AAXPKULB.js → chunk-PKORRCMX.js} +2 -2
- package/dist/{chunk-3G4HOZCM.js → chunk-POIDXI3T.js} +2 -2
- package/dist/chunk-QATHYZUV.js +2 -0
- package/dist/chunk-QATHYZUV.js.map +1 -0
- package/dist/{chunk-VKUGCD5J.js → chunk-QIY6K2FB.js} +2 -2
- package/dist/chunk-QMMNXGQF.js +2 -0
- package/dist/chunk-QMMNXGQF.js.map +1 -0
- package/dist/{chunk-ILEO7LN4.js → chunk-QRSMCORC.js} +2 -2
- package/dist/{chunk-TJZ5BJV3.js → chunk-QUJBIRNY.js} +2 -2
- package/dist/{chunk-OKBPMWVB.js → chunk-R23HFBV4.js} +2 -2
- package/dist/chunk-R4E37FVX.js +2 -0
- package/dist/{chunk-R5ADEPLC.js.map → chunk-R4E37FVX.js.map} +1 -1
- package/dist/chunk-RJXFAG4D.js +2 -0
- package/dist/chunk-RJXFAG4D.js.map +1 -0
- package/dist/{chunk-XEVHXHHC.js → chunk-ROVMQ5NT.js} +2 -2
- package/dist/{chunk-6CBC5OAQ.js → chunk-SDPYDCS7.js} +2 -2
- package/dist/{chunk-25MUO3XP.js → chunk-SMCLTRJW.js} +2 -2
- package/dist/chunk-SRLBVFNQ.js +2 -0
- package/dist/chunk-SRLBVFNQ.js.map +1 -0
- package/dist/{chunk-NFWKD7UR.js → chunk-SUGZPBET.js} +2 -2
- package/dist/{chunk-Z7XLK4JL.js → chunk-SV35IBBH.js} +2 -2
- package/dist/{chunk-7B3ATY3M.js → chunk-SYZIGZ2F.js} +2 -2
- package/dist/{chunk-7B3ATY3M.js.map → chunk-SYZIGZ2F.js.map} +1 -1
- package/dist/chunk-TUIEY7ZM.js +2 -0
- package/dist/chunk-TUIEY7ZM.js.map +1 -0
- package/dist/{chunk-ERBEPQJP.js → chunk-UBWNTSWS.js} +2 -2
- package/dist/chunk-UETBVQT5.js +2 -0
- package/dist/chunk-UETBVQT5.js.map +1 -0
- package/dist/{chunk-RFMYNPR7.js → chunk-URNFXEOZ.js} +2 -2
- package/dist/{chunk-5PUW4YCY.js → chunk-UTWBY65S.js} +2 -2
- package/dist/{chunk-XMVV6S77.js → chunk-UWIUECXU.js} +2 -2
- package/dist/{chunk-JVZ5LUV4.js → chunk-VEQWK7QQ.js} +2 -2
- package/dist/{chunk-JVZ5LUV4.js.map → chunk-VEQWK7QQ.js.map} +1 -1
- package/dist/{chunk-LADLAP2S.js → chunk-VRZJWJGM.js} +2 -2
- package/dist/chunk-VSK4KV55.js +2 -0
- package/dist/chunk-VSK4KV55.js.map +1 -0
- package/dist/chunk-WC7TWLA7.js +2 -0
- package/dist/chunk-WC7TWLA7.js.map +1 -0
- package/dist/{chunk-JI3PAIMV.js → chunk-WHY2WNWH.js} +2 -2
- package/dist/{chunk-77AA65OH.js → chunk-WNOQNNRR.js} +2 -2
- package/dist/{chunk-77AA65OH.js.map → chunk-WNOQNNRR.js.map} +1 -1
- package/dist/{chunk-JVXI4RZU.js → chunk-WU66SHVJ.js} +2 -2
- package/dist/{chunk-PKJZ2N4C.js → chunk-XLHTMWJ3.js} +2 -2
- package/dist/{chunk-ZODT3MJM.js → chunk-XPLWBO73.js} +2 -2
- package/dist/{chunk-DOPQK5RP.js → chunk-YANQP45B.js} +2 -2
- package/dist/{chunk-PKQG25GH.js → chunk-YE6NRJ2L.js} +2 -2
- package/dist/{chunk-PKQG25GH.js.map → chunk-YE6NRJ2L.js.map} +1 -1
- package/dist/{chunk-CD6H4MBI.js → chunk-YRRX7EOU.js} +2 -2
- package/dist/{chunk-XMIVJW5E.js → chunk-YWLAZIIO.js} +2 -2
- package/dist/{chunk-2UH6Y56R.js → chunk-ZJ55AKB6.js} +2 -2
- package/dist/{chunk-GHZABLDV.js → chunk-ZULOHKU6.js} +2 -2
- package/dist/default-components.d.ts +2 -2
- package/dist/default-components.js +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.d.ts +1 -1
- package/dist/flows/ContractAmendment/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 +3 -3
- package/dist/flows/ContractAmendment/utils.d.ts +2 -2
- package/dist/flows/ContractorOnboarding/ContractorOnboarding.d.ts +7 -5
- package/dist/flows/ContractorOnboarding/ContractorOnboarding.js +1 -1
- package/dist/flows/ContractorOnboarding/api.d.ts +311 -14
- 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 +7 -5
- package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractOriginStep.d.ts +3 -3
- package/dist/flows/ContractorOnboarding/components/ContractOriginStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractPreviewHeader.d.ts +2 -2
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStatement.d.ts +2 -2
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.d.ts +7 -5
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractReviewButton.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.d.ts +7 -5
- package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.js +1 -1
- package/dist/flows/ContractorOnboarding/components/CreateInvoiceScheduleStep.d.ts +3 -3
- package/dist/flows/ContractorOnboarding/components/CreateInvoiceScheduleStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/EligibilityQuestionnaireStep.d.ts +7 -5
- package/dist/flows/ContractorOnboarding/components/EligibilityQuestionnaireStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/InvoiceScheduleStep.d.ts +7 -5
- package/dist/flows/ContractorOnboarding/components/InvoiceScheduleStep.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/PreviewInvoiceButton.d.ts +29 -27
- package/dist/flows/ContractorOnboarding/components/PreviewInvoiceButton.js +1 -1
- package/dist/flows/ContractorOnboarding/components/PricingPlan.d.ts +7 -5
- package/dist/flows/ContractorOnboarding/components/PricingPlan.js +1 -1
- package/dist/flows/ContractorOnboarding/components/SaveDraftButton.d.ts +3 -3
- package/dist/flows/ContractorOnboarding/components/SelectCountryStep.d.ts +4 -4
- package/dist/flows/ContractorOnboarding/components/SelectCountryStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/SkipInvoiceScheduleButton.d.ts +3 -3
- package/dist/flows/ContractorOnboarding/context.d.ts +7 -5
- package/dist/flows/ContractorOnboarding/hooks.d.ts +7 -5
- package/dist/flows/ContractorOnboarding/hooks.js +1 -1
- package/dist/flows/ContractorOnboarding/index.d.ts +7 -5
- package/dist/flows/ContractorOnboarding/index.js +1 -1
- package/dist/flows/ContractorOnboarding/jsfModify.d.ts +7 -5
- package/dist/flows/ContractorOnboarding/jsfModify.js +1 -1
- package/dist/flows/ContractorOnboarding/json-schemas/createInvoiceSchedule.d.ts +177 -1
- package/dist/flows/ContractorOnboarding/json-schemas/createInvoiceSchedule.js +1 -1
- package/dist/flows/ContractorOnboarding/types.d.ts +7 -5
- package/dist/flows/ContractorOnboarding/utils.d.ts +4 -4
- package/dist/flows/CostCalculator/CostCalculatorFlow.d.ts +3 -3
- package/dist/flows/CostCalculator/CostCalculatorFlow.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorForm.d.ts +3 -3
- package/dist/flows/CostCalculator/CostCalculatorForm.js +1 -1
- package/dist/flows/CostCalculator/EstimationResults/EstimationResults.d.ts +3 -3
- package/dist/flows/CostCalculator/EstimationResults/EstimationResults.js +1 -1
- package/dist/flows/CostCalculator/SummaryResults/SummaryResults.d.ts +3 -3
- package/dist/flows/CostCalculator/api.d.ts +3 -3
- package/dist/flows/CostCalculator/api.js +1 -1
- package/dist/flows/CostCalculator/components/SalaryField.d.ts +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/jsonSchema.d.ts +3 -0
- package/dist/flows/CostCalculator/jsonSchema.js +1 -1
- package/dist/flows/CostCalculator/types.d.ts +3 -3
- package/dist/flows/CostCalculator/utils.d.ts +3 -3
- package/dist/flows/CostCalculator/utils.js +1 -1
- package/dist/flows/CreateCompany/CreateCompany.d.ts +4 -4
- package/dist/flows/CreateCompany/CreateCompany.js +1 -1
- package/dist/flows/CreateCompany/api.d.ts +3 -3
- package/dist/flows/CreateCompany/api.js +1 -1
- package/dist/flows/CreateCompany/components/AddressDetailsStep.d.ts +4 -4
- package/dist/flows/CreateCompany/components/AddressDetailsStep.js +1 -1
- package/dist/flows/CreateCompany/components/CompanyBasicInformationStep.d.ts +4 -4
- package/dist/flows/CreateCompany/components/CompanyBasicInformationStep.js +1 -1
- package/dist/flows/CreateCompany/components/CreateCompanyForm.d.ts +2 -2
- package/dist/flows/CreateCompany/components/CreateCompanyForm.js +1 -1
- package/dist/flows/CreateCompany/context.d.ts +4 -4
- package/dist/flows/CreateCompany/hooks.d.ts +4 -4
- package/dist/flows/CreateCompany/hooks.js +1 -1
- package/dist/flows/CreateCompany/index.d.ts +4 -4
- package/dist/flows/CreateCompany/index.js +1 -1
- package/dist/flows/CreateCompany/types.d.ts +4 -4
- package/dist/flows/InvoiceSchedule/InvoiceScheduleFlow.d.ts +8 -16
- package/dist/flows/InvoiceSchedule/InvoiceScheduleFlow.js +1 -1
- package/dist/flows/InvoiceSchedule/InvoiceScheduleForm.d.ts +3 -7
- package/dist/flows/InvoiceSchedule/InvoiceScheduleForm.js +1 -1
- package/dist/flows/InvoiceSchedule/InvoiceSchedulePreviewButton.d.ts +33 -0
- package/dist/flows/InvoiceSchedule/InvoiceSchedulePreviewButton.js +2 -0
- package/dist/flows/InvoiceSchedule/InvoiceScheduleSubmitButton.js +1 -1
- package/dist/flows/InvoiceSchedule/context.d.ts +10 -20
- package/dist/flows/InvoiceSchedule/hooks.d.ts +33 -41
- package/dist/flows/InvoiceSchedule/hooks.js +1 -1
- package/dist/flows/InvoiceSchedule/index.d.ts +6 -8
- package/dist/flows/InvoiceSchedule/index.js +1 -1
- package/dist/flows/InvoiceSchedule/types.d.ts +8 -35
- package/dist/flows/JsonSchemaPlayground/JsonSchemaPlaygroundFlow.d.ts +3 -3
- package/dist/flows/JsonSchemaPlayground/JsonSchemaPlaygroundFlow.js +1 -1
- package/dist/flows/JsonSchemaPlayground/JsonSchemaPlaygroundForm.d.ts +3 -3
- package/dist/flows/JsonSchemaPlayground/JsonSchemaPlaygroundForm.js +1 -1
- package/dist/flows/JsonSchemaPlayground/context.d.ts +3 -3
- package/dist/flows/JsonSchemaPlayground/hooks.d.ts +3 -3
- package/dist/flows/JsonSchemaPlayground/hooks.js +1 -1
- package/dist/flows/JsonSchemaPlayground/index.d.ts +3 -3
- package/dist/flows/JsonSchemaPlayground/index.js +1 -1
- package/dist/flows/JsonSchemaPlayground/types.d.ts +3 -3
- 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/DailySchedule/DailySchedule.d.ts +11 -0
- package/dist/flows/Onboarding/components/DailySchedule/DailySchedule.js +2 -0
- package/dist/flows/Onboarding/components/DailySchedule/DailyScheduleContainer.d.ts +16 -0
- package/dist/flows/Onboarding/components/DailySchedule/DailyScheduleContainer.js +2 -0
- package/dist/flows/Onboarding/components/DailySchedule/DailyScheduleContainer.js.map +1 -0
- package/dist/flows/Onboarding/components/DailySchedule/DailyScheduleHoursErrorBanner.d.ts +12 -0
- package/dist/flows/Onboarding/components/DailySchedule/DailyScheduleHoursErrorBanner.js +2 -0
- package/dist/flows/Onboarding/components/DailySchedule/DailyScheduleHoursErrorBanner.js.map +1 -0
- package/dist/flows/Onboarding/components/DailySchedule/DailyScheduleSummaryBody.d.ts +13 -0
- package/dist/flows/Onboarding/components/DailySchedule/DailyScheduleSummaryBody.js +2 -0
- package/dist/flows/Onboarding/components/DailySchedule/DailyScheduleSummaryBody.js.map +1 -0
- package/dist/flows/Onboarding/components/DailySchedule/types.d.ts +91 -0
- package/dist/flows/Onboarding/components/DailySchedule/types.js +1 -0
- package/dist/flows/Onboarding/components/DailySchedule/types.js.map +1 -0
- package/dist/flows/Onboarding/components/DailySchedule/utils.d.ts +57 -0
- package/dist/flows/Onboarding/components/DailySchedule/utils.js +2 -0
- package/dist/flows/Onboarding/components/DailySchedule/utils.js.map +1 -0
- package/dist/flows/Onboarding/components/EmploymentAgreementInfoContent.js +1 -1
- package/dist/flows/Onboarding/components/EngagementAgreementDetailsStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/EngagementAgreementDetailsStep.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/PreOnboardingRequirements.d.ts +4 -4
- package/dist/flows/Onboarding/components/PreOnboardingRequirements.js +1 -1
- package/dist/flows/Onboarding/components/PreviewEmploymentAgreementStep.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 +5 -5
- 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/json-schemas/selectCountryStep.d.ts +3 -0
- package/dist/flows/Onboarding/json-schemas/selectCountryStep.js +1 -1
- package/dist/flows/Onboarding/types.d.ts +4 -4
- package/dist/flows/Onboarding/utils.d.ts +4 -4
- package/dist/flows/PayrollAdminOnboarding/PayrollAdminOnboardingFlow.d.ts +5 -5
- package/dist/flows/PayrollAdminOnboarding/PayrollAdminOnboardingFlow.js +1 -1
- package/dist/flows/PayrollAdminOnboarding/api.d.ts +2 -2
- package/dist/flows/PayrollAdminOnboarding/api.js +1 -1
- package/dist/flows/PayrollAdminOnboarding/components/AdministrativeDetailsStep.d.ts +3 -3
- package/dist/flows/PayrollAdminOnboarding/components/AdministrativeDetailsStep.js +1 -1
- package/dist/flows/PayrollAdminOnboarding/components/ContractDetailsStep.d.ts +3 -3
- package/dist/flows/PayrollAdminOnboarding/components/ContractDetailsStep.js +1 -1
- package/dist/flows/PayrollAdminOnboarding/components/InvitationStep.d.ts +3 -3
- package/dist/flows/PayrollAdminOnboarding/components/InvitationStep.js +1 -1
- package/dist/flows/PayrollAdminOnboarding/components/PayrollAdminForm.d.ts +2 -2
- package/dist/flows/PayrollAdminOnboarding/components/PayrollAdminForm.js +1 -1
- package/dist/flows/PayrollAdminOnboarding/components/SelectCountryStep.d.ts +3 -3
- package/dist/flows/PayrollAdminOnboarding/components/SelectCountryStep.js +1 -1
- package/dist/flows/PayrollAdminOnboarding/components/useStepSubmitHandler.d.ts +3 -3
- package/dist/flows/PayrollAdminOnboarding/context.d.ts +5 -5
- package/dist/flows/PayrollAdminOnboarding/hooks.d.ts +5 -5
- package/dist/flows/PayrollAdminOnboarding/hooks.js +1 -1
- package/dist/flows/PayrollAdminOnboarding/index.d.ts +5 -5
- package/dist/flows/PayrollAdminOnboarding/index.js +1 -1
- package/dist/flows/PayrollAdminOnboarding/json-schemas/selectCountryStep.d.ts +3 -0
- package/dist/flows/PayrollAdminOnboarding/json-schemas/selectCountryStep.js +1 -1
- package/dist/flows/PayrollAdminOnboarding/types.d.ts +5 -5
- package/dist/flows/PayrollEmployeeOnboarding/PayrollEmployeeOnboardingFlow.d.ts +5 -5
- package/dist/flows/PayrollEmployeeOnboarding/PayrollEmployeeOnboardingFlow.js +1 -1
- package/dist/flows/PayrollEmployeeOnboarding/api.d.ts +3 -3
- package/dist/flows/PayrollEmployeeOnboarding/api.js +1 -1
- package/dist/flows/PayrollEmployeeOnboarding/components/BankAccountStep.d.ts +3 -3
- package/dist/flows/PayrollEmployeeOnboarding/components/BankAccountStep.js +1 -1
- package/dist/flows/PayrollEmployeeOnboarding/components/FederalTaxesStep.d.ts +3 -3
- package/dist/flows/PayrollEmployeeOnboarding/components/FederalTaxesStep.js +1 -1
- package/dist/flows/PayrollEmployeeOnboarding/components/HomeAddressStep.d.ts +3 -3
- package/dist/flows/PayrollEmployeeOnboarding/components/HomeAddressStep.js +1 -1
- package/dist/flows/PayrollEmployeeOnboarding/components/PayrollEmployeeForm.d.ts +2 -2
- package/dist/flows/PayrollEmployeeOnboarding/components/PayrollEmployeeForm.js +1 -1
- package/dist/flows/PayrollEmployeeOnboarding/components/PersonalDetailsStep.d.ts +3 -3
- package/dist/flows/PayrollEmployeeOnboarding/components/PersonalDetailsStep.js +1 -1
- package/dist/flows/PayrollEmployeeOnboarding/components/StateTaxesStep.d.ts +3 -3
- package/dist/flows/PayrollEmployeeOnboarding/components/StateTaxesStep.js +1 -1
- package/dist/flows/PayrollEmployeeOnboarding/components/useEmployeeStepSubmitHandler.d.ts +3 -3
- package/dist/flows/PayrollEmployeeOnboarding/context.d.ts +5 -5
- package/dist/flows/PayrollEmployeeOnboarding/hooks.d.ts +5 -5
- package/dist/flows/PayrollEmployeeOnboarding/hooks.js +1 -1
- package/dist/flows/PayrollEmployeeOnboarding/index.d.ts +5 -5
- package/dist/flows/PayrollEmployeeOnboarding/index.js +1 -1
- package/dist/flows/PayrollEmployeeOnboarding/types.d.ts +5 -5
- 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/AcknowledgeInformationFees.js +1 -1
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOff.d.ts +6 -6
- 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/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/additionalInformation.d.ts +1 -1
- package/dist/flows/Termination/json-schemas/additionalInformation.js +1 -1
- package/dist/flows/Termination/json-schemas/defaultSchema.d.ts +1 -1
- package/dist/flows/Termination/json-schemas/defaultSchema.js +1 -1
- package/dist/flows/Termination/json-schemas/employeeComunication.d.ts +1 -1
- package/dist/flows/Termination/json-schemas/employeeComunication.js +1 -1
- package/dist/flows/Termination/json-schemas/jsonSchema.d.ts +1 -1
- package/dist/flows/Termination/json-schemas/jsonSchema.js +1 -1
- package/dist/flows/Termination/json-schemas/paidTimeOff.d.ts +1 -1
- package/dist/flows/Termination/json-schemas/paidTimeOff.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/json-schemas/terminationDetails.d.ts +1 -1
- package/dist/flows/Termination/json-schemas/terminationDetails.js +1 -1
- package/dist/flows/Termination/types.d.ts +4 -4
- package/dist/flows/Termination/utils.d.ts +4 -4
- package/dist/flows/types.d.ts +3 -3
- package/dist/flows/utils.d.ts +2 -2
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +18 -17
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/internals.d.ts +4 -4
- package/dist/internals.js +1 -1
- package/dist/{mutations-Dg60ZjS0.d.ts → mutations-DU9Ens-k.d.ts} +1 -1
- package/dist/{remoteFlows-7WBvzlJt.d.ts → remoteFlows-BlMarq2K.d.ts} +1 -1
- package/dist/styles.css +1 -1
- package/dist/styles.css.map +1 -1
- package/dist/{types-CgNwKzZf.d.ts → types-B2hGbfw_.d.ts} +3 -3
- package/dist/{types-CJHW5xRl.d.ts → types-BFSFdXKe.d.ts} +1 -1
- package/dist/{types-DmvLgred.d.ts → types-BGoAzP0c.d.ts} +1 -1
- package/dist/{types-CT7w2kHS.d.ts → types-C3sJ1GdL.d.ts} +2 -2
- package/dist/{types-1IycaCkN.d.ts → types-CTIVW_BN.d.ts} +5 -5
- package/dist/{types--IwjF9ei.d.ts → types-Ce5Sou3Z.d.ts} +7 -37
- package/dist/{types-CI8Tx4se.d.ts → types-DKfzko2j.d.ts} +3 -3
- package/dist/types-DvsjrBmu.d.ts +15 -0
- package/dist/{types-DPlWZa2M.d.ts → types-p2MsBnGq.d.ts} +3 -3
- package/dist/{types.gen-TcbORUL-.d.ts → types.gen-CMDAS1NL.d.ts} +1 -1
- package/dist/{utils-DSHROBN2.d.ts → utils-DpJmWzrf.d.ts} +1 -1
- package/package.json +4 -3
- package/dist/CheckboxFieldDefault-JOUZXB4Y.js +0 -2
- package/dist/CountryFieldDefault-IZQOFNX5.js +0 -2
- package/dist/DatePickerFieldDefault-AWV7LUPI.js +0 -2
- package/dist/EmailFieldDefault-QVKXB67I.js +0 -2
- package/dist/FileUploadFieldDefault-NZ33IMPU.js +0 -2
- package/dist/ForcedValueFieldDefault-RY5AN7O6.js +0 -2
- package/dist/MultiSelectFieldDefault-DOZQUBEE.js +0 -2
- package/dist/NumberFieldDefault-O7OKTFG4.js +0 -2
- package/dist/PDFPreviewDefault-HSSMYKV5.js +0 -2
- package/dist/RadioGroupFieldDefault-GFDO56LK.js +0 -2
- package/dist/SelectFieldDefault-E4KFZBJ7.js +0 -2
- package/dist/TelFieldDefault-2EPAKDTW.js +0 -2
- package/dist/TextAreaFieldDefault-WZIVM4RZ.js +0 -2
- package/dist/TextFieldDefault-YVXZO4AN.js +0 -2
- package/dist/TimeFieldDefault-JN4MDIO6.js +0 -2
- package/dist/WorkScheduleFieldDefault-23WY3SVD.js +0 -2
- package/dist/chunk-3OKB5OHA.js +0 -2
- package/dist/chunk-3OKB5OHA.js.map +0 -1
- package/dist/chunk-4BHEQMZV.js +0 -2
- package/dist/chunk-53QBSOMG.js +0 -2
- package/dist/chunk-5YI7MY5T.js +0 -2
- package/dist/chunk-5YI7MY5T.js.map +0 -1
- package/dist/chunk-A7U3KJIP.js +0 -2
- package/dist/chunk-AUPAAQUT.js +0 -2
- package/dist/chunk-AUPAAQUT.js.map +0 -1
- package/dist/chunk-B4O5YUYL.js +0 -2
- package/dist/chunk-CONMRDRL.js +0 -2
- package/dist/chunk-DDMXUBCN.js +0 -2
- package/dist/chunk-DP6L72YF.js +0 -2
- package/dist/chunk-DYIMRD6T.js +0 -2
- package/dist/chunk-DYIMRD6T.js.map +0 -1
- package/dist/chunk-EMMFAZZC.js +0 -2
- package/dist/chunk-GIZQZBHB.js +0 -2
- package/dist/chunk-GIZQZBHB.js.map +0 -1
- package/dist/chunk-HMJ4PIDI.js +0 -2
- package/dist/chunk-HMJ4PIDI.js.map +0 -1
- package/dist/chunk-I4DU34BA.js +0 -2
- package/dist/chunk-I4DU34BA.js.map +0 -1
- package/dist/chunk-IHGCXP2X.js +0 -2
- package/dist/chunk-IHGCXP2X.js.map +0 -1
- package/dist/chunk-LSUBNZ64.js +0 -2
- package/dist/chunk-LSUBNZ64.js.map +0 -1
- package/dist/chunk-NAFECQWK.js +0 -2
- package/dist/chunk-NYR6FVCU.js +0 -2
- package/dist/chunk-PUK2TIQX.js +0 -2
- package/dist/chunk-QQPF2DUF.js +0 -2
- package/dist/chunk-QQPF2DUF.js.map +0 -1
- package/dist/chunk-QQV5REGG.js +0 -8
- package/dist/chunk-R5ADEPLC.js +0 -2
- package/dist/chunk-ROO2IFBF.js +0 -2
- package/dist/chunk-ROO2IFBF.js.map +0 -1
- package/dist/chunk-SVU7GWUR.js +0 -2
- package/dist/chunk-SVU7GWUR.js.map +0 -1
- package/dist/chunk-SVVZOMLQ.js +0 -2
- package/dist/chunk-SVVZOMLQ.js.map +0 -1
- package/dist/chunk-T5H35HYL.js +0 -2
- package/dist/chunk-T5H35HYL.js.map +0 -1
- package/dist/chunk-TRDNTXE7.js +0 -2
- package/dist/chunk-TRDNTXE7.js.map +0 -1
- package/dist/chunk-U4H7URYB.js +0 -2
- package/dist/chunk-U4H7URYB.js.map +0 -1
- package/dist/chunk-UWHJF45X.js +0 -2
- package/dist/chunk-UWHJF45X.js.map +0 -1
- package/dist/chunk-VFRHMNLJ.js +0 -2
- package/dist/chunk-VFRHMNLJ.js.map +0 -1
- package/dist/chunk-VRPZ4GHN.js +0 -2
- package/dist/chunk-WRTUY6K3.js +0 -2
- package/dist/chunk-WRTUY6K3.js.map +0 -1
- package/dist/chunk-WVJDCDGZ.js +0 -2
- package/dist/chunk-WVJDCDGZ.js.map +0 -1
- package/dist/chunk-XFVXRCMH.js +0 -2
- package/dist/chunk-XFVXRCMH.js.map +0 -1
- package/dist/chunk-ZD4H63AL.js +0 -2
- package/dist/chunk-ZD4H63AL.js.map +0 -1
- package/dist/createInvoiceSchedule-BweQB6DI.d.ts +0 -195
- package/dist/flows/InvoiceSchedule/api.d.ts +0 -47
- package/dist/flows/InvoiceSchedule/api.js +0 -2
- package/dist/flows/InvoiceSchedule/components/ContractorSelectField.d.ts +0 -20
- package/dist/flows/InvoiceSchedule/components/ContractorSelectField.js +0 -2
- package/dist/types.gen-Dtb8ECVb.d.ts +0 -308
- /package/dist/{CheckboxFieldDefault-JOUZXB4Y.js.map → CheckboxFieldDefault-23VE43PP.js.map} +0 -0
- /package/dist/{CountryFieldDefault-IZQOFNX5.js.map → CountryFieldDefault-FVAAL55P.js.map} +0 -0
- /package/dist/{DatePickerFieldDefault-AWV7LUPI.js.map → DatePickerFieldDefault-KXEMGK5B.js.map} +0 -0
- /package/dist/{EmailFieldDefault-QVKXB67I.js.map → EmailFieldDefault-OFHDLOOT.js.map} +0 -0
- /package/dist/{FileUploadFieldDefault-NZ33IMPU.js.map → FileUploadFieldDefault-GX22C22E.js.map} +0 -0
- /package/dist/{ForcedValueFieldDefault-RY5AN7O6.js.map → ForcedValueFieldDefault-ESITCZWK.js.map} +0 -0
- /package/dist/{MultiSelectFieldDefault-DOZQUBEE.js.map → MultiSelectFieldDefault-DAUBH5JV.js.map} +0 -0
- /package/dist/{NumberFieldDefault-O7OKTFG4.js.map → NumberFieldDefault-MXZD7YVE.js.map} +0 -0
- /package/dist/{PDFPreviewDefault-HSSMYKV5.js.map → PDFPreviewDefault-T6YPWXGY.js.map} +0 -0
- /package/dist/{RadioGroupFieldDefault-GFDO56LK.js.map → RadioGroupFieldDefault-QFUUJGSR.js.map} +0 -0
- /package/dist/{SelectFieldDefault-E4KFZBJ7.js.map → SelectFieldDefault-3QTJE222.js.map} +0 -0
- /package/dist/{TelFieldDefault-2EPAKDTW.js.map → TelFieldDefault-5U5X37LI.js.map} +0 -0
- /package/dist/{TextAreaFieldDefault-WZIVM4RZ.js.map → TextAreaFieldDefault-JX2MVJVY.js.map} +0 -0
- /package/dist/{TextFieldDefault-YVXZO4AN.js.map → TextFieldDefault-WCUD6XYS.js.map} +0 -0
- /package/dist/{TimeFieldDefault-JN4MDIO6.js.map → TimeFieldDefault-UNF7PKLT.js.map} +0 -0
- /package/dist/{WorkScheduleFieldDefault-23WY3SVD.js.map → WorkScheduleFieldDefault-2A2RCDXV.js.map} +0 -0
- /package/dist/{chunk-SLRPDXK6.js.map → chunk-235XZBTZ.js.map} +0 -0
- /package/dist/{chunk-GE74QKS6.js.map → chunk-335N2CVQ.js.map} +0 -0
- /package/dist/{chunk-N7HCQXUM.js.map → chunk-3B7FASV7.js.map} +0 -0
- /package/dist/{chunk-STHZZZRL.js.map → chunk-3BDWVNHX.js.map} +0 -0
- /package/dist/{chunk-ZREW7KZA.js.map → chunk-3DOSHTJS.js.map} +0 -0
- /package/dist/{chunk-SZI67IXU.js.map → chunk-3HMBTPH7.js.map} +0 -0
- /package/dist/{chunk-NTPHMYYC.js.map → chunk-3NC2JJM3.js.map} +0 -0
- /package/dist/{chunk-ED35NFA6.js.map → chunk-3OHORFIX.js.map} +0 -0
- /package/dist/{chunk-WGO25FWG.js.map → chunk-3WRO57UF.js.map} +0 -0
- /package/dist/{chunk-4CNDASPA.js.map → chunk-4AQMMGXK.js.map} +0 -0
- /package/dist/{chunk-G6EKGJBB.js.map → chunk-4BFGSBOK.js.map} +0 -0
- /package/dist/{chunk-VVZTXCX2.js.map → chunk-4KIOOLOG.js.map} +0 -0
- /package/dist/{chunk-SUYI33NX.js.map → chunk-4UN7DBEV.js.map} +0 -0
- /package/dist/{chunk-RZL44CPH.js.map → chunk-57Y5XQ3D.js.map} +0 -0
- /package/dist/{chunk-P6FFLJDP.js.map → chunk-5DPOL3DT.js.map} +0 -0
- /package/dist/{chunk-FV6NNYDP.js.map → chunk-5FST4WDH.js.map} +0 -0
- /package/dist/{chunk-46BOEYFO.js.map → chunk-6OLV37C2.js.map} +0 -0
- /package/dist/{chunk-YHZZHQP5.js.map → chunk-6RPIMHYS.js.map} +0 -0
- /package/dist/{chunk-MXAFJYLQ.js.map → chunk-6TLBBS6E.js.map} +0 -0
- /package/dist/{chunk-EVUTX6TJ.js.map → chunk-77LDJPXF.js.map} +0 -0
- /package/dist/{chunk-BTCC6PNG.js.map → chunk-7TELDH6M.js.map} +0 -0
- /package/dist/{chunk-OWOIDZHI.js.map → chunk-7Y4NHODP.js.map} +0 -0
- /package/dist/{chunk-GBVBMT3H.js.map → chunk-ADL2ZH54.js.map} +0 -0
- /package/dist/{chunk-UZFEJMO6.js.map → chunk-AFTFDGSD.js.map} +0 -0
- /package/dist/{chunk-NAFECQWK.js.map → chunk-ANPNVWCB.js.map} +0 -0
- /package/dist/{chunk-L2YOD4GP.js.map → chunk-APSKAXM2.js.map} +0 -0
- /package/dist/{chunk-5HDMU73I.js.map → chunk-B2WE3PSY.js.map} +0 -0
- /package/dist/{chunk-FSCAWXCB.js.map → chunk-B677Q3B3.js.map} +0 -0
- /package/dist/{chunk-WKWL57L6.js.map → chunk-BYD4TSDD.js.map} +0 -0
- /package/dist/{chunk-5JXLXWTD.js.map → chunk-CR5J5KK6.js.map} +0 -0
- /package/dist/{chunk-LXGL7HF5.js.map → chunk-DIPYFRXX.js.map} +0 -0
- /package/dist/{chunk-ZOTKZZ67.js.map → chunk-DTNFGOBK.js.map} +0 -0
- /package/dist/{chunk-JLZFNUBH.js.map → chunk-E7Y3YBZH.js.map} +0 -0
- /package/dist/{chunk-GTS7KFEM.js.map → chunk-EQOOVJ7K.js.map} +0 -0
- /package/dist/{chunk-R4ZUOFYN.js.map → chunk-FF5OB2GF.js.map} +0 -0
- /package/dist/{chunk-H47XUL2L.js.map → chunk-FFRROEPQ.js.map} +0 -0
- /package/dist/{chunk-UGQNOBQH.js.map → chunk-GF4MSLVP.js.map} +0 -0
- /package/dist/{chunk-P2WUHKEU.js.map → chunk-GIBD2ZCJ.js.map} +0 -0
- /package/dist/{chunk-XDLVDPQ7.js.map → chunk-GNVGW65D.js.map} +0 -0
- /package/dist/{chunk-4IGLIHGF.js.map → chunk-GRLZH65T.js.map} +0 -0
- /package/dist/{chunk-CCGAAOXN.js.map → chunk-H4NJGAN4.js.map} +0 -0
- /package/dist/{chunk-7FKNXW2I.js.map → chunk-HDTQOERP.js.map} +0 -0
- /package/dist/{chunk-MEYX4D5K.js.map → chunk-I53YCEOC.js.map} +0 -0
- /package/dist/{chunk-V3AVEPNA.js.map → chunk-I5NW7AQZ.js.map} +0 -0
- /package/dist/{chunk-YME2HZZJ.js.map → chunk-I65OXH33.js.map} +0 -0
- /package/dist/{chunk-TX6RWQUR.js.map → chunk-IJS67A57.js.map} +0 -0
- /package/dist/{chunk-RYZ7TJVS.js.map → chunk-ISPN7HQ5.js.map} +0 -0
- /package/dist/{chunk-FQBOMXMX.js.map → chunk-J244N33S.js.map} +0 -0
- /package/dist/{chunk-ILMRP364.js.map → chunk-JUSQGITN.js.map} +0 -0
- /package/dist/{chunk-GMSYO53D.js.map → chunk-KD7UBTZG.js.map} +0 -0
- /package/dist/{chunk-VYTUM3RI.js.map → chunk-KFIUXU6I.js.map} +0 -0
- /package/dist/{chunk-G75LPZV5.js.map → chunk-L7FN3XPX.js.map} +0 -0
- /package/dist/{chunk-WVE2IOLY.js.map → chunk-LIZMNUQI.js.map} +0 -0
- /package/dist/{chunk-KGNLBYM5.js.map → chunk-LJ32QPJF.js.map} +0 -0
- /package/dist/{chunk-BB3M25A3.js.map → chunk-MGCW2SS4.js.map} +0 -0
- /package/dist/{chunk-CUO7OGD5.js.map → chunk-MOOSPB2G.js.map} +0 -0
- /package/dist/{chunk-ITCWBZDM.js.map → chunk-MZFT4MWM.js.map} +0 -0
- /package/dist/{chunk-V6PPOGPT.js.map → chunk-NVOUXFGX.js.map} +0 -0
- /package/dist/{chunk-D6PMXNBM.js.map → chunk-OAX6TPIP.js.map} +0 -0
- /package/dist/{chunk-4WSYC3Q5.js.map → chunk-OJ4TXF6G.js.map} +0 -0
- /package/dist/{chunk-C7MVEDVY.js.map → chunk-OT5JE2SM.js.map} +0 -0
- /package/dist/{chunk-QFTBKRUI.js.map → chunk-PJAHLEOR.js.map} +0 -0
- /package/dist/{chunk-BLKWR77C.js.map → chunk-PJDHQ4ZQ.js.map} +0 -0
- /package/dist/{chunk-AAXPKULB.js.map → chunk-PKORRCMX.js.map} +0 -0
- /package/dist/{chunk-3G4HOZCM.js.map → chunk-POIDXI3T.js.map} +0 -0
- /package/dist/{chunk-VKUGCD5J.js.map → chunk-QIY6K2FB.js.map} +0 -0
- /package/dist/{chunk-ILEO7LN4.js.map → chunk-QRSMCORC.js.map} +0 -0
- /package/dist/{chunk-TJZ5BJV3.js.map → chunk-QUJBIRNY.js.map} +0 -0
- /package/dist/{chunk-OKBPMWVB.js.map → chunk-R23HFBV4.js.map} +0 -0
- /package/dist/{chunk-XEVHXHHC.js.map → chunk-ROVMQ5NT.js.map} +0 -0
- /package/dist/{chunk-6CBC5OAQ.js.map → chunk-SDPYDCS7.js.map} +0 -0
- /package/dist/{chunk-25MUO3XP.js.map → chunk-SMCLTRJW.js.map} +0 -0
- /package/dist/{chunk-NFWKD7UR.js.map → chunk-SUGZPBET.js.map} +0 -0
- /package/dist/{chunk-Z7XLK4JL.js.map → chunk-SV35IBBH.js.map} +0 -0
- /package/dist/{chunk-ERBEPQJP.js.map → chunk-UBWNTSWS.js.map} +0 -0
- /package/dist/{chunk-RFMYNPR7.js.map → chunk-URNFXEOZ.js.map} +0 -0
- /package/dist/{chunk-5PUW4YCY.js.map → chunk-UTWBY65S.js.map} +0 -0
- /package/dist/{chunk-XMVV6S77.js.map → chunk-UWIUECXU.js.map} +0 -0
- /package/dist/{chunk-LADLAP2S.js.map → chunk-VRZJWJGM.js.map} +0 -0
- /package/dist/{chunk-JI3PAIMV.js.map → chunk-WHY2WNWH.js.map} +0 -0
- /package/dist/{chunk-JVXI4RZU.js.map → chunk-WU66SHVJ.js.map} +0 -0
- /package/dist/{chunk-PKJZ2N4C.js.map → chunk-XLHTMWJ3.js.map} +0 -0
- /package/dist/{chunk-ZODT3MJM.js.map → chunk-XPLWBO73.js.map} +0 -0
- /package/dist/{chunk-DOPQK5RP.js.map → chunk-YANQP45B.js.map} +0 -0
- /package/dist/{chunk-CD6H4MBI.js.map → chunk-YRRX7EOU.js.map} +0 -0
- /package/dist/{chunk-XMIVJW5E.js.map → chunk-YWLAZIIO.js.map} +0 -0
- /package/dist/{chunk-2UH6Y56R.js.map → chunk-ZJ55AKB6.js.map} +0 -0
- /package/dist/{chunk-GHZABLDV.js.map → chunk-ZULOHKU6.js.map} +0 -0
- /package/dist/flows/InvoiceSchedule/{api.js.map → InvoiceSchedulePreviewButton.js.map} +0 -0
- /package/dist/flows/{InvoiceSchedule/components/ContractorSelectField.js.map → Onboarding/components/DailySchedule/DailySchedule.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/ui/collapsible.tsx","../src/components/ui/full-screen-dialog.tsx","../src/components/ui/tabs.tsx","../src/components/ui/scroll-area.tsx","../src/components/JsonSchemaComparison/JsonSchemaComparison.tsx","../src/components/JsonSchemaComparison/formDiffDetector.ts","../src/components/JsonSchemaComparison/SchemaFormComparison.tsx","../src/components/JsonSchemaComparison/schemaVersions.ts"],"sourcesContent":["import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';\n\nconst Collapsible = CollapsiblePrimitive.Root;\n\nconst CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger;\n\nconst CollapsibleContent = CollapsiblePrimitive.CollapsibleContent;\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent };\n","import * as React from 'react';\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\nimport { XIcon } from 'lucide-react';\n\nimport { cn } from '@/src/lib/utils';\n\nfunction FullScreenDialog({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot='full-screen-dialog' {...props} />;\n}\n\nfunction FullScreenDialogTrigger({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return (\n <DialogPrimitive.Trigger\n data-slot='full-screen-dialog-trigger'\n {...props}\n />\n );\n}\n\nfunction FullScreenDialogPortal({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return (\n <DialogPrimitive.Portal data-slot='full-screen-dialog-portal' {...props} />\n );\n}\n\nfunction FullScreenDialogClose({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return (\n <DialogPrimitive.Close data-slot='full-screen-dialog-close' {...props} />\n );\n}\n\nfunction FullScreenDialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot='full-screen-dialog-overlay'\n className={cn(\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FullScreenDialogContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content>) {\n return (\n <FullScreenDialogPortal data-slot='full-screen-dialog-portal'>\n <FullScreenDialogOverlay />\n <DialogPrimitive.Content\n data-slot='full-screen-dialog-content'\n className={cn(\n 'bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 flex flex-col',\n className,\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 RemoteFlows__FullScreenDialog__Close\">\n <XIcon />\n <span className='sr-only'>Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </FullScreenDialogPortal>\n );\n}\n\nfunction FullScreenDialogHeader({\n className,\n ...props\n}: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot='full-screen-dialog-header'\n className={cn('flex flex-col gap-2 text-center sm:text-left', className)}\n {...props}\n />\n );\n}\n\nfunction FullScreenDialogFooter({\n className,\n ...props\n}: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot='full-screen-dialog-footer'\n className={cn(\n 'flex flex-col-reverse gap-2 sm:flex-row sm:justify-end',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FullScreenDialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return (\n <DialogPrimitive.Title\n data-slot='full-screen-dialog-title'\n className={cn('text-lg leading-none font-semibold', className)}\n {...props}\n />\n );\n}\n\nfunction FullScreenDialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n data-slot='full-screen-dialog-description'\n className={cn('text-muted-foreground text-sm', className)}\n {...props}\n />\n );\n}\n\nexport {\n FullScreenDialog,\n FullScreenDialogClose,\n FullScreenDialogContent,\n FullScreenDialogDescription,\n FullScreenDialogFooter,\n FullScreenDialogHeader,\n FullScreenDialogOverlay,\n FullScreenDialogPortal,\n FullScreenDialogTitle,\n FullScreenDialogTrigger,\n};\n","import * as React from 'react';\nimport * as TabsPrimitive from '@radix-ui/react-tabs';\n\nimport { cn } from '@/src/lib/utils';\n\nfunction Tabs({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Root>) {\n return (\n <TabsPrimitive.Root\n data-slot='tabs'\n className={cn('flex flex-col gap-2', className)}\n {...props}\n />\n );\n}\n\nfunction TabsList({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.List>) {\n return (\n <TabsPrimitive.List\n data-slot='tabs-list'\n className={cn(\n 'bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-1',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TabsTrigger({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Trigger>) {\n return (\n <TabsPrimitive.Trigger\n data-slot='tabs-trigger'\n className={cn(\n \"data-[state=active]:bg-background data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring inline-flex flex-1 items-center justify-center gap-1.5 rounded-md px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TabsContent({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Content>) {\n return (\n <TabsPrimitive.Content\n data-slot='tabs-content'\n className={cn('flex-1 outline-none', className)}\n {...props}\n />\n );\n}\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent };\n","import * as React from 'react';\nimport * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';\n\nimport { cn } from '@/src/lib/utils';\n\nconst ScrollArea = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root>\n>(({ className, children, ...props }, ref) => (\n <ScrollAreaPrimitive.Root\n ref={ref}\n className={cn('relative overflow-hidden', className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport className='h-full w-full rounded-[inherit]'>\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n));\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;\n\nconst ScrollBar = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>\n>(({ className, orientation = 'vertical', ...props }, ref) => (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n ref={ref}\n orientation={orientation}\n className={cn(\n 'flex touch-none select-none transition-colors',\n orientation === 'vertical' &&\n 'h-full w-2.5 border-l border-l-transparent p-[1px]',\n orientation === 'horizontal' &&\n 'h-2.5 flex-col border-t border-t-transparent p-[1px]',\n className,\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb className='relative flex-1 rounded-full bg-border' />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n));\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;\n\nexport { ScrollArea, ScrollBar };\n","import { useState, useEffect, useMemo } from 'react';\nimport { useQuery } from '@tanstack/react-query';\nimport {\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n} from '@/src/components/ui/card';\nimport { Label } from '@/src/components/ui/label';\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from '@/src/components/ui/select';\nimport { Tabs, TabsList, TabsTrigger } from '@/src/components/ui/tabs';\nimport { useJSONSchemaForm } from '@/src/flows/Onboarding/api';\nimport { SchemaFormComparison } from './SchemaFormComparison';\nimport {\n BASIC_INFO_VERSIONS,\n COUNTRY_CONTRACT_VERSIONS,\n COUNTRY_CONTRACT_VERSIONS_WITH_MULTIPLE_VERSIONS,\n FORM_TYPES,\n type FormType,\n type SchemaVersion,\n} from './schemaVersions';\nimport { countriesOptions } from '@/src/common/api/countries';\nimport { useClient } from '@/src/context';\nimport type { Client } from '@/src/client/client';\nimport { JSFField } from '@/src/types/remoteFlows';\n\nexport const JsonSchemaComparison = () => {\n const [formType, setFormType] = useState<FormType>(\n 'employment_basic_information',\n );\n const [topVersion, setTopVersion] = useState<SchemaVersion>(1);\n const [bottomVersion, setBottomVersion] = useState<SchemaVersion>(1);\n const [countryCode, setCountryCode] = useState<string>('ARE');\n\n const { client } = useClient();\n\n const { data: countriesData } = useQuery({\n ...countriesOptions(client as Client, 'schema-comparison'),\n select: (response) =>\n response.data?.data\n ?.filter(\n (country: { eor_onboarding?: boolean }) => country.eor_onboarding,\n )\n .filter((country: { code: string }) =>\n Object.keys(\n COUNTRY_CONTRACT_VERSIONS_WITH_MULTIPLE_VERSIONS,\n ).includes(country.code),\n )\n .map((country: { name: string; code: string }) => ({\n label: country.name,\n value: country.code,\n })) || [],\n });\n\n const isContractDetails = formType === 'contract_details';\n\n const { data: topSchema, isLoading: isLoadingTop } = useJSONSchemaForm({\n countryCode: countryCode,\n form: formType,\n fieldValues: {},\n jsonSchemaVersion: topVersion,\n options: {\n queryOptions: {\n enabled: true,\n },\n },\n });\n\n const { data: bottomSchema, isLoading: isLoadingBottom } = useJSONSchemaForm({\n countryCode: countryCode,\n form: formType,\n fieldValues: {},\n jsonSchemaVersion: bottomVersion,\n options: {\n queryOptions: {\n enabled: true,\n },\n },\n });\n\n const isLoading = isLoadingTop || isLoadingBottom;\n\n const countryVersions = COUNTRY_CONTRACT_VERSIONS[countryCode];\n const hasCountryMapping = countryVersions !== undefined;\n\n const versionOptions = useMemo(() => {\n return formType === 'employment_basic_information'\n ? BASIC_INFO_VERSIONS\n : countryVersions || [{ value: 'latest', label: 'Latest' }];\n }, [formType, countryVersions]);\n\n useEffect(() => {\n const availableVersionValues = versionOptions.map((v) => v.value);\n\n if (!availableVersionValues.includes(topVersion)) {\n // WE NEED TO FIX: react-hooks/set-state-in-effect - Calling setState synchronously within an effect can trigger cascading renders\n // oxlint-disable-next-line react-hooks/set-state-in-effect\n setTopVersion(versionOptions[0].value);\n }\n if (!availableVersionValues.includes(bottomVersion)) {\n setBottomVersion(versionOptions[0].value);\n }\n }, [formType, countryCode, versionOptions, topVersion, bottomVersion]);\n\n return (\n <div className='space-y-6'>\n <Card>\n <CardHeader>\n <CardTitle>Configuration</CardTitle>\n </CardHeader>\n <CardContent className='space-y-4'>\n <div>\n <Label className='mb-2 block'>Form Type</Label>\n <Tabs\n value={formType}\n onValueChange={(value) => setFormType(value as FormType)}\n >\n <TabsList className='grid w-full grid-cols-2'>\n {FORM_TYPES.map((type) => (\n <TabsTrigger key={type.value} value={type.value}>\n {type.label}\n </TabsTrigger>\n ))}\n </TabsList>\n </Tabs>\n </div>\n\n {isContractDetails && !hasCountryMapping && (\n <div className='rounded-md bg-yellow-50 p-4 border border-yellow-200'>\n <div className='flex'>\n <div className='flex-shrink-0'>\n <svg\n className='h-5 w-5 text-yellow-400'\n viewBox='0 0 20 20'\n fill='currentColor'\n >\n <path\n fillRule='evenodd'\n d='M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z'\n clipRule='evenodd'\n />\n </svg>\n </div>\n <div className='ml-3'>\n <h3 className='text-sm font-medium text-yellow-800'>\n Version mappings not found\n </h3>\n <div className='mt-2 text-sm text-yellow-700'>\n <p>\n Country{' '}\n <span className='font-semibold'>{countryCode}</span> is\n not configured in COUNTRY_CONTRACT_VERSIONS. Using default\n (latest only).\n </p>\n </div>\n </div>\n </div>\n </div>\n )}\n\n {isContractDetails && (\n <div>\n <Label htmlFor='country-select' className='mb-2 block'>\n Country\n </Label>\n <Select value={countryCode} onValueChange={setCountryCode}>\n <SelectTrigger id='country-select'>\n <SelectValue placeholder='Select a country' />\n </SelectTrigger>\n <SelectContent>\n {countriesData?.map(\n (country: { label: string; value: string }) => (\n <SelectItem key={country.value} value={country.value}>\n {country.label}\n </SelectItem>\n ),\n )}\n </SelectContent>\n </Select>\n </div>\n )}\n\n <div className='grid grid-cols-2 gap-4'>\n <div>\n <Label htmlFor='top-version' className='mb-2 block'>\n Left Version\n </Label>\n <Select\n value={String(topVersion)}\n onValueChange={(value) =>\n setTopVersion(value === 'latest' ? 'latest' : Number(value))\n }\n >\n <SelectTrigger id='top-version'>\n <SelectValue placeholder='Select version' />\n </SelectTrigger>\n <SelectContent>\n {versionOptions.map((version) => (\n <SelectItem\n key={String(version.value)}\n value={String(version.value)}\n >\n {version.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n\n <div>\n <Label htmlFor='bottom-version' className='mb-2 block'>\n Right Version\n </Label>\n <Select\n value={String(bottomVersion)}\n onValueChange={(value) =>\n setBottomVersion(\n value === 'latest' ? 'latest' : Number(value),\n )\n }\n >\n <SelectTrigger id='bottom-version'>\n <SelectValue placeholder='Select version' />\n </SelectTrigger>\n <SelectContent>\n {versionOptions.map((version) => (\n <SelectItem\n key={String(version.value)}\n value={String(version.value)}\n >\n {version.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n </div>\n </CardContent>\n </Card>\n\n <SchemaFormComparison\n topVersion={topVersion}\n bottomVersion={bottomVersion}\n topFields={(topSchema?.fields as JSFField[]) || []}\n bottomFields={(bottomSchema?.fields as JSFField[]) || []}\n topFieldsets={topSchema?.meta?.['x-jsf-fieldsets']}\n bottomFieldsets={bottomSchema?.meta?.['x-jsf-fieldsets']}\n isLoading={isLoading}\n />\n </div>\n );\n};\n","import type { $TSFixMe, JSFField } from '@/src/types/remoteFlows';\nimport equal from 'fast-deep-equal';\n\nexport type DiffType = 'added' | 'removed' | 'modified' | 'unchanged';\n\nexport interface FieldDiff {\n fieldName: string;\n diffType: DiffType;\n changes?: {\n label?: { old: string; new: string };\n required?: { old: boolean; new: boolean };\n type?: { old: string; new: string };\n inputType?: { old: string; new: string };\n jsonType?: { old: string; new: string };\n defaultValue?: { old: unknown; new: unknown };\n minDate?: { old: string; new: string };\n maxDate?: { old: string; new: string };\n maxLength?: { old: number; new: number };\n multiple?: { old: boolean; new: boolean };\n isVisible?: { old: boolean; new: boolean };\n options?: {\n added: Array<{ value: string; label: string }>;\n removed: Array<{ value: string; label: string }>;\n modified: Array<{\n value: string;\n changes: { label?: { old: string; new: string } };\n }>;\n };\n nestedFields?: FieldDiff[];\n };\n}\n\nexport interface FormDiff {\n added: string[];\n removed: string[];\n modified: string[];\n unchanged: string[];\n fieldDiffs: Map<string, FieldDiff>;\n}\n\nconst validateField = (field: JSFField): boolean => {\n if (!field.name) {\n console.warn('Field missing required \"name\" property:', field);\n return false;\n }\n if (!field.type) {\n console.warn(`Field \"${field.name}\" missing required \"type\" property`);\n return false;\n }\n return true;\n};\n\nconst compareOptions = (\n options1: JSFField['options'],\n options2: JSFField['options'],\n):\n | {\n added: Array<{ value: string; label: string }>;\n removed: Array<{ value: string; label: string }>;\n modified: Array<{\n value: string;\n changes: { label?: { old: string; new: string } };\n }>;\n }\n | undefined => {\n if (equal(options1, options2)) return undefined;\n\n const map1 = new Map((options1 || []).map((o) => [o.value, o]));\n const map2 = new Map((options2 || []).map((o) => [o.value, o]));\n\n const added: Array<{ value: string; label: string }> = [];\n const removed: Array<{ value: string; label: string }> = [];\n const modified: Array<{\n value: string;\n changes: { label?: { old: string; new: string } };\n }> = [];\n\n map2.forEach((option, value) => {\n if (!map1.has(value)) {\n added.push({ value: option.value, label: option.label });\n }\n });\n\n map1.forEach((option1, value) => {\n if (!map2.has(value)) {\n removed.push({ value: option1.value, label: option1.label });\n } else {\n const option2 = map2.get(value)!;\n if (!equal(option1, option2)) {\n const changes: { label?: { old: string; new: string } } = {};\n if (option1.label !== option2.label) {\n changes.label = { old: option1.label, new: option2.label };\n }\n if (Object.keys(changes).length > 0) {\n modified.push({ value, changes });\n }\n }\n }\n });\n\n if (added.length === 0 && removed.length === 0 && modified.length === 0) {\n return undefined;\n }\n\n return { added, removed, modified };\n};\n\nconst compareNestedFields = (\n field1: JSFField,\n field2: JSFField,\n): FieldDiff[] | undefined => {\n const nestedFields1 = (field1 as $TSFixMe).fields;\n\n const nestedFields2 = (field2 as $TSFixMe).fields;\n\n if (!nestedFields1 && !nestedFields2) return undefined;\n\n const nestedDiff = compareFormFields(\n nestedFields1 || [],\n nestedFields2 || [],\n );\n\n const hasChanges =\n nestedDiff.added.length > 0 ||\n nestedDiff.removed.length > 0 ||\n nestedDiff.modified.length > 0;\n\n if (!hasChanges) return undefined;\n\n return Array.from(nestedDiff.fieldDiffs.values());\n};\n\nconst isFieldModified = (field1: JSFField, field2: JSFField): boolean => {\n // Only compare user-facing schema properties, not internal/computed ones\n // Ignore: schema (Yup), computedAttributes, scopedJsonSchema, errorMessage, meta, description\n // Note: nested fields are checked via compareNestedFields to avoid deep equal with problematic properties\n const checks = {\n label: field1.label !== field2.label,\n required: field1.required !== field2.required,\n inputType: field1.inputType !== field2.inputType,\n type: field1.type !== field2.type,\n jsonType: !equal(field1.jsonType, field2.jsonType), // Use equal since jsonType can be an array like ['string', 'null']\n name: field1.name !== field2.name,\n defaultValue: field1.defaultValue !== field2.defaultValue,\n minDate: field1.minDate !== field2.minDate,\n maxDate: field1.maxDate !== field2.maxDate,\n maxLength: field1.maxLength !== field2.maxLength,\n multiple: field1.multiple !== field2.multiple,\n isVisible: field1.isVisible !== field2.isVisible,\n options: !equal(field1.options, field2.options),\n };\n\n // Check for nested field changes using compareNestedFields to avoid deep isEqual\n const hasNestedChanges = (() => {\n const nestedFields1 = (field1 as $TSFixMe).fields;\n const nestedFields2 = (field2 as $TSFixMe).fields;\n\n // If both undefined or null, no changes\n if (!nestedFields1 && !nestedFields2) return false;\n\n // If one is defined and the other isn't, there's a change\n if (!nestedFields1 || !nestedFields2) return true;\n\n // Recursively compare using our proper comparison logic\n const nestedDiff = compareFormFields(nestedFields1, nestedFields2);\n return (\n nestedDiff.added.length > 0 ||\n nestedDiff.removed.length > 0 ||\n nestedDiff.modified.length > 0\n );\n })();\n\n const isModified =\n Object.values(checks).some((check) => check) || hasNestedChanges;\n\n return isModified;\n};\n\nconst getFieldChanges = (field1: JSFField, field2: JSFField) => {\n const changes: FieldDiff['changes'] = {};\n\n if (field1.label !== field2.label) {\n changes.label = { old: field1.label, new: field2.label };\n }\n\n if (field1.required !== field2.required) {\n changes.required = { old: field1.required, new: field2.required };\n }\n\n if (field1.type !== field2.type) {\n changes.type = { old: field1.type, new: field2.type };\n }\n\n if (field1.inputType !== field2.inputType) {\n changes.inputType = {\n old: field1.inputType,\n new: field2.inputType,\n };\n }\n\n if (!equal(field1.jsonType, field2.jsonType)) {\n changes.jsonType = {\n old: field1.jsonType,\n new: field2.jsonType,\n };\n }\n\n if (!equal(field1.defaultValue, field2.defaultValue)) {\n changes.defaultValue = {\n old: field1.defaultValue,\n new: field2.defaultValue,\n };\n }\n\n if (field1.minDate !== field2.minDate) {\n changes.minDate = {\n old: field1.minDate || '',\n new: field2.minDate || '',\n };\n }\n\n if (field1.maxDate !== field2.maxDate) {\n changes.maxDate = {\n old: field1.maxDate || '',\n new: field2.maxDate || '',\n };\n }\n\n if (field1.maxLength !== field2.maxLength) {\n changes.maxLength = {\n old: field1.maxLength || 0,\n new: field2.maxLength || 0,\n };\n }\n\n if (field1.multiple !== field2.multiple) {\n changes.multiple = {\n old: field1.multiple || false,\n new: field2.multiple || false,\n };\n }\n\n if (field1.isVisible !== field2.isVisible) {\n changes.isVisible = {\n old: field1.isVisible,\n new: field2.isVisible,\n };\n }\n\n const optionsDiff = compareOptions(field1.options, field2.options);\n if (optionsDiff) {\n changes.options = optionsDiff;\n }\n\n const nestedFieldsDiff = compareNestedFields(field1, field2);\n if (nestedFieldsDiff) {\n changes.nestedFields = nestedFieldsDiff;\n }\n\n return Object.keys(changes).length > 0 ? changes : undefined;\n};\n\nexport const compareFormFields = (\n fields1: JSFField[] = [],\n fields2: JSFField[] = [],\n): FormDiff => {\n const validFields1 = fields1.filter(validateField);\n const validFields2 = fields2.filter(validateField);\n\n const fieldMap1 = new Map(validFields1.map((f) => [f.name, { field: f }]));\n const fieldMap2 = new Map(validFields2.map((f) => [f.name, { field: f }]));\n\n const added: string[] = [];\n const removed: string[] = [];\n const modified: string[] = [];\n const unchanged: string[] = [];\n const fieldDiffs = new Map<string, FieldDiff>();\n\n fieldMap2.forEach((_, name) => {\n if (!fieldMap1.has(name)) {\n added.push(name);\n fieldDiffs.set(name, {\n fieldName: name,\n diffType: 'added',\n });\n }\n });\n\n fieldMap1.forEach(({ field: field1 }, name) => {\n if (!fieldMap2.has(name)) {\n removed.push(name);\n fieldDiffs.set(name, {\n fieldName: name,\n diffType: 'removed',\n });\n } else {\n const { field: field2 } = fieldMap2.get(name)!;\n\n if (isFieldModified(field1, field2)) {\n modified.push(name);\n fieldDiffs.set(name, {\n fieldName: name,\n diffType: 'modified',\n changes: getFieldChanges(field1, field2),\n });\n } else {\n unchanged.push(name);\n fieldDiffs.set(name, {\n fieldName: name,\n diffType: 'unchanged',\n });\n }\n }\n });\n\n return {\n added,\n removed,\n modified,\n unchanged,\n fieldDiffs,\n };\n};\n\nexport const getDiffStyles = (diffType: DiffType): string => {\n switch (diffType) {\n case 'added':\n return 'bg-green-50 border-l-4 border-green-500';\n case 'removed':\n return 'bg-red-50 border-l-4 border-red-500';\n case 'modified':\n return 'bg-yellow-50 border-l-4 border-yellow-500';\n case 'unchanged':\n default:\n return '';\n }\n};\n","import { JSONSchemaFormFields } from '@/src/components/form/JSONSchemaForm';\nimport { Form } from '@/src/components/ui/form';\nimport { useForm } from 'react-hook-form';\nimport {\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n} from '@/src/components/ui/card';\nimport type { JSFField, JSFFieldset } from '@/src/types/remoteFlows';\nimport { compareFormFields, getDiffStyles } from './formDiffDetector';\nimport { useMemo, useRef, useEffect } from 'react';\n\ninterface SchemaFormComparisonProps {\n topVersion: string | number;\n bottomVersion: string | number;\n topFields: JSFField[];\n bottomFields: JSFField[];\n topFieldsets?: JSFFieldset | null;\n bottomFieldsets?: JSFFieldset | null;\n isLoading?: boolean;\n}\n\nconst FieldWrapper = ({\n children,\n diffType,\n changes,\n}: {\n children: React.ReactNode;\n diffType: 'added' | 'removed' | 'modified' | 'unchanged';\n fieldName: string;\n changes?: {\n label?: { old: string; new: string };\n required?: { old: boolean; new: boolean };\n type?: { old: string; new: string };\n inputType?: { old: string; new: string };\n jsonType?: { old: string; new: string };\n defaultValue?: { old: unknown; new: unknown };\n minDate?: { old: string; new: string };\n maxDate?: { old: string; new: string };\n maxLength?: { old: number; new: number };\n multiple?: { old: boolean; new: boolean };\n isVisible?: { old: boolean; new: boolean };\n options?: {\n added: Array<{ value: string; label: string }>;\n removed: Array<{ value: string; label: string }>;\n modified: Array<{\n value: string;\n changes: { label?: { old: string; new: string } };\n }>;\n };\n nestedFields?: unknown[];\n };\n}) => {\n const styles = getDiffStyles(diffType);\n\n if (diffType === 'unchanged') {\n return <div>{children}</div>;\n }\n\n const badges = {\n added: (\n <span className='text-xs font-semibold text-green-700 bg-green-100 px-2 py-1 rounded'>\n NEW\n </span>\n ),\n removed: (\n <span className='text-xs font-semibold text-red-700 bg-red-100 px-2 py-1 rounded'>\n REMOVED\n </span>\n ),\n modified: (\n <span className='text-xs font-semibold text-yellow-700 bg-yellow-100 px-2 py-1 rounded'>\n MODIFIED\n </span>\n ),\n };\n\n const badge = badges[diffType];\n\n const renderChanges = () => {\n if (!changes || diffType !== 'modified') return null;\n\n const changesList: React.ReactNode[] = [];\n\n if (changes.label) {\n changesList.push(\n <div key='label' className='text-xs'>\n <span className='font-semibold'>Label:</span>{' '}\n <span className='line-through text-red-600'>{changes.label.old}</span>{' '}\n → <span className='text-green-600'>{changes.label.new}</span>\n </div>,\n );\n }\n\n if (changes.required) {\n changesList.push(\n <div key='required' className='text-xs'>\n <span className='font-semibold'>Required:</span>{' '}\n <span className='line-through text-red-600'>\n {changes.required.old ? 'Yes' : 'No'}\n </span>{' '}\n →{' '}\n <span className='text-green-600'>\n {changes.required.new ? 'Yes' : 'No'}\n </span>\n </div>,\n );\n }\n\n if (changes.type) {\n changesList.push(\n <div key='type' className='text-xs'>\n <span className='font-semibold'>Type:</span>{' '}\n <span className='line-through text-red-600'>{changes.type.old}</span>{' '}\n → <span className='text-green-600'>{changes.type.new}</span>\n </div>,\n );\n }\n\n if (changes.inputType) {\n changesList.push(\n <div key='inputType' className='text-xs'>\n <span className='font-semibold'>Input Type:</span>{' '}\n <span className='line-through text-red-600'>\n {changes.inputType.old}\n </span>{' '}\n → <span className='text-green-600'>{changes.inputType.new}</span>\n </div>,\n );\n }\n\n if (changes.jsonType) {\n const oldJsonType = Array.isArray(changes.jsonType.old)\n ? changes.jsonType.old.join(' | ')\n : changes.jsonType.old;\n const newJsonType = Array.isArray(changes.jsonType.new)\n ? changes.jsonType.new.join(' | ')\n : changes.jsonType.new;\n\n changesList.push(\n <div key='jsonType' className='text-xs'>\n <span className='font-semibold'>JSON Type:</span>{' '}\n <span className='line-through text-red-600'>{oldJsonType}</span> →{' '}\n <span className='text-green-600'>{newJsonType}</span>\n </div>,\n );\n }\n\n if (changes.defaultValue !== undefined) {\n changesList.push(\n <div key='defaultValue' className='text-xs'>\n <span className='font-semibold'>Default Value:</span>{' '}\n <span className='line-through text-red-600'>\n {JSON.stringify(changes.defaultValue.old)}\n </span>{' '}\n →{' '}\n <span className='text-green-600'>\n {JSON.stringify(changes.defaultValue.new)}\n </span>\n </div>,\n );\n }\n\n if (changes.options) {\n if (changes.options.added.length > 0) {\n changesList.push(\n <div key='options-added' className='text-xs'>\n <span className='font-semibold text-green-700'>Options Added:</span>{' '}\n {changes.options.added.map((opt) => opt.label).join(', ')}\n </div>,\n );\n }\n if (changes.options.removed.length > 0) {\n changesList.push(\n <div key='options-removed' className='text-xs'>\n <span className='font-semibold text-red-700'>Options Removed:</span>{' '}\n {changes.options.removed.map((opt) => opt.label).join(', ')}\n </div>,\n );\n }\n if (changes.options.modified.length > 0) {\n changesList.push(\n <div key='options-modified' className='text-xs'>\n <span className='font-semibold'>Options Modified:</span>{' '}\n {changes.options.modified.length} option(s)\n </div>,\n );\n }\n }\n\n if (changes.nestedFields && changes.nestedFields.length > 0) {\n changesList.push(\n <div key='nestedFields' className='text-xs'>\n <span className='font-semibold'>Nested Fields:</span>{' '}\n {changes.nestedFields.length} field(s) changed\n </div>,\n );\n }\n\n if (changesList.length === 0) return null;\n\n return (\n <div className='mt-2 p-2 bg-yellow-50 rounded border border-yellow-200 space-y-1'>\n <div className='text-xs font-semibold text-yellow-800 mb-1'>\n Changes:\n </div>\n {changesList}\n </div>\n );\n };\n\n return (\n <div className={`p-3 mb-2 rounded ${styles} relative`}>\n <div className='absolute top-2 right-2'>{badge}</div>\n {children}\n {renderChanges()}\n </div>\n );\n};\n\nconst FormPanel = ({\n version,\n fields,\n fieldsets,\n diffMap,\n title,\n scrollRef,\n}: {\n version: string | number;\n fields: JSFField[];\n fieldsets?: JSFFieldset | null;\n diffMap: Map<\n string,\n {\n diffType: 'added' | 'removed' | 'modified' | 'unchanged';\n changes?: unknown;\n }\n >;\n title: string;\n scrollRef?: React.RefObject<HTMLDivElement | null>;\n}) => {\n const form = useForm({\n mode: 'onBlur',\n });\n\n const fieldsWithWrappers = useMemo(() => {\n // Recursive function to apply wrappers to fields and their nested fields\n const applyWrappers = (\n fields: JSFField[],\n diffMap: Map<\n string,\n {\n diffType: 'added' | 'removed' | 'modified' | 'unchanged';\n changes?: unknown;\n }\n >,\n ): JSFField[] => {\n return fields.map((field) => {\n const diff = diffMap.get(field.name);\n const diffType = diff?.diffType || 'unchanged';\n const changes = diff?.changes;\n\n // If this field has nested fields (e.g., fieldset), recursively apply wrappers\n const nestedFields = (field as never as { fields?: JSFField[] }).fields;\n let processedField = field;\n\n if (nestedFields && Array.isArray(nestedFields)) {\n // Build a nested diff map from the changes.nestedFields\n const nestedDiffMap = new Map<\n string,\n {\n diffType: 'added' | 'removed' | 'modified' | 'unchanged';\n changes?: unknown;\n }\n >();\n\n if (\n changes &&\n typeof changes === 'object' &&\n 'nestedFields' in changes &&\n Array.isArray(changes.nestedFields)\n ) {\n (\n changes.nestedFields as Array<{\n fieldName: string;\n diffType: 'added' | 'removed' | 'modified' | 'unchanged';\n changes?: unknown;\n }>\n ).forEach((nestedDiff) => {\n nestedDiffMap.set(nestedDiff.fieldName, {\n diffType: nestedDiff.diffType,\n changes: nestedDiff.changes,\n });\n });\n }\n\n // Recursively apply wrappers to nested fields\n const wrappedNestedFields = applyWrappers(\n nestedFields,\n nestedDiffMap,\n );\n processedField = {\n ...field,\n fields: wrappedNestedFields,\n } as JSFField;\n }\n\n return {\n ...processedField,\n WrapperComponent: ({ children }: { children: React.ReactNode }) => (\n <FieldWrapper\n diffType={diffType}\n fieldName={field.name}\n changes={changes as never}\n >\n {children}\n </FieldWrapper>\n ),\n };\n });\n };\n\n return applyWrappers(fields, diffMap);\n }, [fields, diffMap]);\n\n return (\n <Card className='h-full'>\n <CardHeader>\n <CardTitle>\n {title} - Version {version}\n </CardTitle>\n </CardHeader>\n <CardContent ref={scrollRef} className='overflow-y-auto max-h-[600px]'>\n <Form {...form}>\n <form className='space-y-4'>\n <JSONSchemaFormFields\n fields={fieldsWithWrappers}\n fieldsets={fieldsets}\n fieldValues={{}}\n />\n </form>\n </Form>\n </CardContent>\n </Card>\n );\n};\n\nexport const SchemaFormComparison = ({\n topVersion,\n bottomVersion,\n topFields,\n bottomFields,\n topFieldsets,\n bottomFieldsets,\n isLoading,\n}: SchemaFormComparisonProps) => {\n const diff = useMemo(\n () => compareFormFields(topFields, bottomFields),\n [topFields, bottomFields],\n );\n\n const leftScrollRef = useRef<HTMLDivElement>(null);\n const rightScrollRef = useRef<HTMLDivElement>(null);\n const isSyncing = useRef(false);\n\n useEffect(() => {\n const leftEl = leftScrollRef.current;\n const rightEl = rightScrollRef.current;\n\n if (!leftEl || !rightEl) return;\n\n const handleLeftScroll = () => {\n if (isSyncing.current) return;\n isSyncing.current = true;\n rightEl.scrollTop = leftEl.scrollTop;\n requestAnimationFrame(() => {\n isSyncing.current = false;\n });\n };\n\n const handleRightScroll = () => {\n if (isSyncing.current) return;\n isSyncing.current = true;\n leftEl.scrollTop = rightEl.scrollTop;\n requestAnimationFrame(() => {\n isSyncing.current = false;\n });\n };\n\n leftEl.addEventListener('scroll', handleLeftScroll);\n rightEl.addEventListener('scroll', handleRightScroll);\n\n return () => {\n leftEl.removeEventListener('scroll', handleLeftScroll);\n rightEl.removeEventListener('scroll', handleRightScroll);\n };\n }, [topFields, bottomFields]);\n\n if (isLoading) {\n return (\n <div className='flex items-center justify-center h-96'>\n <div className='text-center'>\n <div className='animate-spin rounded-full h-12 w-12 border-b-2 border-gray-900 mx-auto'></div>\n <p className='mt-4 text-gray-600'>Loading schemas...</p>\n </div>\n </div>\n );\n }\n\n const hasNoDifferences =\n diff.added.length === 0 &&\n diff.removed.length === 0 &&\n diff.modified.length === 0;\n\n return (\n <div className='space-y-6'>\n <Card>\n <CardContent className='pt-6'>\n {hasNoDifferences ? (\n <p className='text-center text-gray-600'>\n No differences detected between the two versions\n </p>\n ) : (\n <div className='flex gap-6 justify-center'>\n {diff.added.length > 0 && (\n <div className='flex items-center gap-2'>\n <span className='w-4 h-4 bg-green-500 rounded'></span>\n <span className='text-sm'>\n {diff.added.length} field{diff.added.length > 1 ? 's' : ''}{' '}\n added\n </span>\n </div>\n )}\n {diff.removed.length > 0 && (\n <div className='flex items-center gap-2'>\n <span className='w-4 h-4 bg-red-500 rounded'></span>\n <span className='text-sm'>\n {diff.removed.length} field\n {diff.removed.length > 1 ? 's' : ''} removed\n </span>\n </div>\n )}\n {diff.modified.length > 0 && (\n <div className='flex items-center gap-2'>\n <span className='w-4 h-4 bg-yellow-500 rounded'></span>\n <span className='text-sm'>\n {diff.modified.length} field\n {diff.modified.length > 1 ? 's' : ''} modified\n </span>\n </div>\n )}\n </div>\n )}\n </CardContent>\n </Card>\n\n <div className='grid grid-cols-2 gap-6'>\n <FormPanel\n version={topVersion}\n fields={topFields}\n fieldsets={topFieldsets}\n diffMap={diff.fieldDiffs}\n title='Left'\n scrollRef={leftScrollRef}\n />\n <FormPanel\n version={bottomVersion}\n fields={bottomFields}\n fieldsets={bottomFieldsets}\n diffMap={diff.fieldDiffs}\n title='Right'\n scrollRef={rightScrollRef}\n />\n </div>\n </div>\n );\n};\n","export type SchemaVersion = number | 'latest';\n\nexport interface VersionOption {\n value: SchemaVersion;\n label: string;\n}\n\nexport const BASIC_INFO_VERSIONS: VersionOption[] = [\n { value: 1, label: 'v1' },\n { value: 3, label: 'v3' },\n { value: 4, label: 'v4 (Recommended)' },\n];\n\n// AI generated from tiger\n// Last updated: 2026-06-29\nexport const COUNTRY_CONTRACT_VERSIONS: Record<string, VersionOption[]> = {\n ALB: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n ARE: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n ARG: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n ARM: [{ value: 1, label: 'v1' }],\n AUS: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n { value: 4, label: 'v4' },\n ],\n AUT: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n { value: 4, label: 'v4' },\n { value: 5, label: 'v5' },\n { value: 6, label: 'v6' },\n ],\n BEL: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n BGD: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n { value: 4, label: 'v4' },\n ],\n BGR: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n { value: 4, label: 'v4' },\n ],\n BIH: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n { value: 4, label: 'v4' },\n ],\n BLR: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n BOL: [{ value: 1, label: 'v1' }],\n BRA: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n CAN: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n CHE: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n CHL: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n CHN: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n { value: 4, label: 'v4' },\n { value: 5, label: 'v5' },\n ],\n COL: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n CRI: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n CYP: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n CZE: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n { value: 4, label: 'v4' },\n ],\n DEU: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n { value: 4, label: 'v4' },\n ],\n DNK: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n DOM: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n ECU: [{ value: 1, label: 'v1' }],\n EGY: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n ESP: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n EST: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n FIN: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n FRA: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n FRA_SAS: [{ value: 1, label: 'v1' }],\n GBR: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n { value: 4, label: 'v4' },\n ],\n GEO: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n GRC: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n GTM: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n HKG: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n HND: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n HRV: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n HUN: [{ value: 1, label: 'v1' }],\n IDN: [{ value: 1, label: 'v1' }],\n IND: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n IRL: [{ value: 1, label: 'v1' }],\n ISL: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n ISR: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n { value: 4, label: 'v4' },\n ],\n ITA: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n ITA_APL: [{ value: 1, label: 'v1' }],\n JAM: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n JPN: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n KEN: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n KGZ: [{ value: 1, label: 'v1' }],\n KHM: [{ value: 1, label: 'v1' }],\n KOR: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n { value: 4, label: 'v4' },\n ],\n LBN: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n LKA: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n { value: 4, label: 'v4' },\n ],\n LTU: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n LUX: [{ value: 1, label: 'v1' }],\n LVA: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n { value: 4, label: 'v4' },\n ],\n MAR: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n MDA: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n MEX: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n { value: 4, label: 'v4' },\n ],\n MKD: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n { value: 4, label: 'v4' },\n ],\n MLT: [{ value: 1, label: 'v1' }],\n MNG: [{ value: 1, label: 'v1' }],\n MUS: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n MYS: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n NGA: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n NIC: [{ value: 1, label: 'v1' }],\n NLD: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n NOR: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n NZL: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n { value: 4, label: 'v4' },\n ],\n PAK: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n PAN: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n PER: [{ value: 1, label: 'v1' }],\n PHL: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n POL: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n PRI: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n PRT: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n { value: 4, label: 'v4' },\n ],\n PRY: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n ROU: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n SAU: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n SGP: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n SLV: [{ value: 1, label: 'v1' }],\n SRB: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n { value: 4, label: 'v4' },\n { value: 5, label: 'v5' },\n ],\n SVK: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n SVN: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n { value: 4, label: 'v4' },\n ],\n SWE: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n THA: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n TUN: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n TUR: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n { value: 4, label: 'v4' },\n ],\n TWN: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n UGA: [{ value: 1, label: 'v1' }],\n UKR: [{ value: 1, label: 'v1' }],\n URY: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n USA: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n VNM: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n XKX: [{ value: 1, label: 'v1' }],\n ZAF: [{ value: 1, label: 'v1' }],\n ZWE: [{ value: 1, label: 'v1' }],\n};\n\nexport const COUNTRY_CONTRACT_VERSIONS_WITH_MULTIPLE_VERSIONS =\n Object.fromEntries(\n Object.entries(COUNTRY_CONTRACT_VERSIONS).filter(\n ([, versions]) => versions.length > 1,\n ),\n ) as Record<string, VersionOption[]>;\n\nexport const FORM_TYPES = [\n { value: 'employment_basic_information', label: 'Basic Information' },\n { value: 'contract_details', label: 'Contract Details' },\n] as const;\n\nexport type FormType = (typeof FORM_TYPES)[number]['value'];\n"],"mappings":"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","names":["CollapsiblePrimitive","Collapsible","CollapsibleTrigger","CollapsibleContent","DialogPrimitive","XIcon","jsx","jsxs","FullScreenDialog","props","__name","FullScreenDialogTrigger","FullScreenDialogPortal","FullScreenDialogOverlay","className","props","jsx","cn","__name","FullScreenDialogContent","children","jsxs","FullScreenDialogPortal","XIcon","FullScreenDialogHeader","FullScreenDialogFooter","FullScreenDialogTitle","FullScreenDialogDescription","TabsPrimitive","jsx","Tabs","className","props","cn","__name","TabsList","TabsTrigger","TabsContent","React","ScrollAreaPrimitive","jsx","jsxs","ScrollArea","className","children","props","ref","cn","ScrollBar","orientation","useState","useEffect","useMemo","useQuery","equal","validateField","__name","field","compareOptions","options1","options2","equal","map1","o","map2","added","removed","modified","option","value","option1","option2","changes","compareNestedFields","field1","field2","nestedFields1","nestedFields2","nestedDiff","compareFormFields","isFieldModified","checks","hasNestedChanges","check","getFieldChanges","optionsDiff","nestedFieldsDiff","fields1","fields2","validFields1","validFields2","fieldMap1","fieldMap2","unchanged","fieldDiffs","_","name","getDiffStyles","diffType","useMemo","useRef","useEffect","jsx","jsxs","FieldWrapper","__name","children","diffType","changes","styles","getDiffStyles","badge","renderChanges","changesList","oldJsonType","newJsonType","opt","FormPanel","version","fields","fieldsets","diffMap","title","scrollRef","form","useForm","fieldsWithWrappers","useMemo","applyWrappers","field","diff","nestedFields","processedField","nestedDiffMap","nestedDiff","wrappedNestedFields","Card","CardHeader","CardTitle","CardContent","Form","JSONSchemaFormFields","SchemaFormComparison","topVersion","bottomVersion","topFields","bottomFields","topFieldsets","bottomFieldsets","isLoading","compareFormFields","leftScrollRef","useRef","rightScrollRef","isSyncing","useEffect","leftEl","rightEl","handleLeftScroll","handleRightScroll","hasNoDifferences","BASIC_INFO_VERSIONS","COUNTRY_CONTRACT_VERSIONS","COUNTRY_CONTRACT_VERSIONS_WITH_MULTIPLE_VERSIONS","versions","FORM_TYPES","jsx","jsxs","JsonSchemaComparison","__name","formType","setFormType","useState","topVersion","setTopVersion","bottomVersion","setBottomVersion","countryCode","setCountryCode","client","useClient","countriesData","useQuery","countriesOptions","response","country","COUNTRY_CONTRACT_VERSIONS_WITH_MULTIPLE_VERSIONS","isContractDetails","topSchema","isLoadingTop","useJSONSchemaForm","bottomSchema","isLoadingBottom","isLoading","countryVersions","COUNTRY_CONTRACT_VERSIONS","hasCountryMapping","versionOptions","useMemo","BASIC_INFO_VERSIONS","useEffect","availableVersionValues","v","Card","CardHeader","CardTitle","CardContent","Label","Tabs","value","TabsList","FORM_TYPES","type","TabsTrigger","Select","SelectTrigger","SelectValue","SelectContent","SelectItem","version","SchemaFormComparison"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/collapsible.tsx","../src/components/ui/full-screen-dialog.tsx","../src/components/ui/tabs.tsx","../src/components/ui/scroll-area.tsx","../src/components/JsonSchemaComparison/JsonSchemaComparison.tsx","../src/components/JsonSchemaComparison/formDiffDetector.ts","../src/components/JsonSchemaComparison/SchemaFormComparison.tsx","../src/components/JsonSchemaComparison/schemaVersions.ts"],"sourcesContent":["import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';\n\nconst Collapsible = CollapsiblePrimitive.Root;\n\nconst CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger;\n\nconst CollapsibleContent = CollapsiblePrimitive.CollapsibleContent;\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent };\n","import * as React from 'react';\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\nimport { XIcon } from 'lucide-react';\n\nimport { cn } from '@/src/lib/utils';\n\nfunction FullScreenDialog({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot='full-screen-dialog' {...props} />;\n}\n\nfunction FullScreenDialogTrigger({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return (\n <DialogPrimitive.Trigger\n data-slot='full-screen-dialog-trigger'\n {...props}\n />\n );\n}\n\nfunction FullScreenDialogPortal({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return (\n <DialogPrimitive.Portal data-slot='full-screen-dialog-portal' {...props} />\n );\n}\n\nfunction FullScreenDialogClose({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return (\n <DialogPrimitive.Close data-slot='full-screen-dialog-close' {...props} />\n );\n}\n\nfunction FullScreenDialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot='full-screen-dialog-overlay'\n className={cn(\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FullScreenDialogContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content>) {\n return (\n <FullScreenDialogPortal data-slot='full-screen-dialog-portal'>\n <FullScreenDialogOverlay />\n <DialogPrimitive.Content\n data-slot='full-screen-dialog-content'\n className={cn(\n 'bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 flex flex-col',\n className,\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 RemoteFlows__FullScreenDialog__Close\">\n <XIcon />\n <span className='sr-only'>Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </FullScreenDialogPortal>\n );\n}\n\nfunction FullScreenDialogHeader({\n className,\n ...props\n}: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot='full-screen-dialog-header'\n className={cn('flex flex-col gap-2 text-center sm:text-left', className)}\n {...props}\n />\n );\n}\n\nfunction FullScreenDialogFooter({\n className,\n ...props\n}: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot='full-screen-dialog-footer'\n className={cn(\n 'flex flex-col-reverse gap-2 sm:flex-row sm:justify-end',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FullScreenDialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return (\n <DialogPrimitive.Title\n data-slot='full-screen-dialog-title'\n className={cn('text-lg leading-none font-semibold', className)}\n {...props}\n />\n );\n}\n\nfunction FullScreenDialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n data-slot='full-screen-dialog-description'\n className={cn('text-muted-foreground text-sm', className)}\n {...props}\n />\n );\n}\n\nexport {\n FullScreenDialog,\n FullScreenDialogClose,\n FullScreenDialogContent,\n FullScreenDialogDescription,\n FullScreenDialogFooter,\n FullScreenDialogHeader,\n FullScreenDialogOverlay,\n FullScreenDialogPortal,\n FullScreenDialogTitle,\n FullScreenDialogTrigger,\n};\n","import * as React from 'react';\nimport * as TabsPrimitive from '@radix-ui/react-tabs';\n\nimport { cn } from '@/src/lib/utils';\n\nfunction Tabs({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Root>) {\n return (\n <TabsPrimitive.Root\n data-slot='tabs'\n className={cn('flex flex-col gap-2', className)}\n {...props}\n />\n );\n}\n\nfunction TabsList({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.List>) {\n return (\n <TabsPrimitive.List\n data-slot='tabs-list'\n className={cn(\n 'bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-1',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TabsTrigger({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Trigger>) {\n return (\n <TabsPrimitive.Trigger\n data-slot='tabs-trigger'\n className={cn(\n \"data-[state=active]:bg-background data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring inline-flex flex-1 items-center justify-center gap-1.5 rounded-md px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TabsContent({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Content>) {\n return (\n <TabsPrimitive.Content\n data-slot='tabs-content'\n className={cn('flex-1 outline-none', className)}\n {...props}\n />\n );\n}\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent };\n","import * as React from 'react';\nimport * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';\n\nimport { cn } from '@/src/lib/utils';\n\nconst ScrollArea = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root>\n>(({ className, children, ...props }, ref) => (\n <ScrollAreaPrimitive.Root\n ref={ref}\n className={cn('relative overflow-hidden', className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport className='h-full w-full rounded-[inherit]'>\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n));\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;\n\nconst ScrollBar = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>\n>(({ className, orientation = 'vertical', ...props }, ref) => (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n ref={ref}\n orientation={orientation}\n className={cn(\n 'flex touch-none select-none transition-colors',\n orientation === 'vertical' &&\n 'h-full w-2.5 border-l border-l-transparent p-[1px]',\n orientation === 'horizontal' &&\n 'h-2.5 flex-col border-t border-t-transparent p-[1px]',\n className,\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb className='relative flex-1 rounded-full bg-border' />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n));\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;\n\nexport { ScrollArea, ScrollBar };\n","import { useState, useEffect, useMemo } from 'react';\nimport { useQuery } from '@tanstack/react-query';\nimport {\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n} from '@/src/components/ui/card';\nimport { Label } from '@/src/components/ui/label';\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from '@/src/components/ui/select';\nimport { Tabs, TabsList, TabsTrigger } from '@/src/components/ui/tabs';\nimport { useJSONSchemaForm } from '@/src/flows/Onboarding/api';\nimport { SchemaFormComparison } from './SchemaFormComparison';\nimport {\n BASIC_INFO_VERSIONS,\n COUNTRY_CONTRACT_VERSIONS,\n COUNTRY_CONTRACT_VERSIONS_WITH_MULTIPLE_VERSIONS,\n FORM_TYPES,\n type FormType,\n type SchemaVersion,\n} from './schemaVersions';\nimport { countriesOptions } from '@/src/common/api/countries';\nimport { useClient } from '@/src/context';\nimport type { Client } from '@/src/client/client';\nimport { JSFField } from '@/src/types/remoteFlows';\n\nexport const JsonSchemaComparison = () => {\n const [formType, setFormType] = useState<FormType>(\n 'employment_basic_information',\n );\n const [topVersion, setTopVersion] = useState<SchemaVersion>(1);\n const [bottomVersion, setBottomVersion] = useState<SchemaVersion>(1);\n const [countryCode, setCountryCode] = useState<string>('ARE');\n\n const { client } = useClient();\n\n const { data: countriesData } = useQuery({\n ...countriesOptions(client as Client, 'schema-comparison'),\n select: (response) =>\n response.data?.data\n ?.filter(\n (country: { eor_onboarding?: boolean }) => country.eor_onboarding,\n )\n .filter((country: { code: string }) =>\n Object.keys(\n COUNTRY_CONTRACT_VERSIONS_WITH_MULTIPLE_VERSIONS,\n ).includes(country.code),\n )\n .map((country: { name: string; code: string }) => ({\n label: country.name,\n value: country.code,\n })) || [],\n });\n\n const isContractDetails = formType === 'contract_details';\n\n const { data: topSchema, isLoading: isLoadingTop } = useJSONSchemaForm({\n countryCode: countryCode,\n form: formType,\n fieldValues: {},\n jsonSchemaVersion: topVersion,\n options: {\n queryOptions: {\n enabled: true,\n },\n },\n });\n\n const { data: bottomSchema, isLoading: isLoadingBottom } = useJSONSchemaForm({\n countryCode: countryCode,\n form: formType,\n fieldValues: {},\n jsonSchemaVersion: bottomVersion,\n options: {\n queryOptions: {\n enabled: true,\n },\n },\n });\n\n const isLoading = isLoadingTop || isLoadingBottom;\n\n const countryVersions = COUNTRY_CONTRACT_VERSIONS[countryCode];\n const hasCountryMapping = countryVersions !== undefined;\n\n const versionOptions = useMemo(() => {\n return formType === 'employment_basic_information'\n ? BASIC_INFO_VERSIONS\n : countryVersions || [{ value: 'latest', label: 'Latest' }];\n }, [formType, countryVersions]);\n\n useEffect(() => {\n const availableVersionValues = versionOptions.map((v) => v.value);\n\n if (!availableVersionValues.includes(topVersion)) {\n // WE NEED TO FIX: react-hooks/set-state-in-effect - Calling setState synchronously within an effect can trigger cascading renders\n // oxlint-disable-next-line react-hooks/set-state-in-effect\n setTopVersion(versionOptions[0].value);\n }\n if (!availableVersionValues.includes(bottomVersion)) {\n setBottomVersion(versionOptions[0].value);\n }\n }, [formType, countryCode, versionOptions, topVersion, bottomVersion]);\n\n return (\n <div className='space-y-6'>\n <Card>\n <CardHeader>\n <CardTitle>Configuration</CardTitle>\n </CardHeader>\n <CardContent className='space-y-4'>\n <div>\n <Label className='mb-2 block'>Form Type</Label>\n <Tabs\n value={formType}\n onValueChange={(value) => setFormType(value as FormType)}\n >\n <TabsList className='grid w-full grid-cols-2'>\n {FORM_TYPES.map((type) => (\n <TabsTrigger key={type.value} value={type.value}>\n {type.label}\n </TabsTrigger>\n ))}\n </TabsList>\n </Tabs>\n </div>\n\n {isContractDetails && !hasCountryMapping && (\n <div className='rounded-md bg-yellow-50 p-4 border border-yellow-200'>\n <div className='flex'>\n <div className='flex-shrink-0'>\n <svg\n className='h-5 w-5 text-yellow-400'\n viewBox='0 0 20 20'\n fill='currentColor'\n >\n <path\n fillRule='evenodd'\n d='M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z'\n clipRule='evenodd'\n />\n </svg>\n </div>\n <div className='ml-3'>\n <h3 className='text-sm font-medium text-yellow-800'>\n Version mappings not found\n </h3>\n <div className='mt-2 text-sm text-yellow-700'>\n <p>\n Country{' '}\n <span className='font-semibold'>{countryCode}</span> is\n not configured in COUNTRY_CONTRACT_VERSIONS. Using default\n (latest only).\n </p>\n </div>\n </div>\n </div>\n </div>\n )}\n\n {isContractDetails && (\n <div>\n <Label htmlFor='country-select' className='mb-2 block'>\n Country\n </Label>\n <Select value={countryCode} onValueChange={setCountryCode}>\n <SelectTrigger id='country-select'>\n <SelectValue placeholder='Select a country' />\n </SelectTrigger>\n <SelectContent>\n {countriesData?.map(\n (country: { label: string; value: string }) => (\n <SelectItem key={country.value} value={country.value}>\n {country.label}\n </SelectItem>\n ),\n )}\n </SelectContent>\n </Select>\n </div>\n )}\n\n <div className='grid grid-cols-2 gap-4'>\n <div>\n <Label htmlFor='top-version' className='mb-2 block'>\n Left Version\n </Label>\n <Select\n value={String(topVersion)}\n onValueChange={(value) =>\n setTopVersion(value === 'latest' ? 'latest' : Number(value))\n }\n >\n <SelectTrigger id='top-version'>\n <SelectValue placeholder='Select version' />\n </SelectTrigger>\n <SelectContent>\n {versionOptions.map((version) => (\n <SelectItem\n key={String(version.value)}\n value={String(version.value)}\n >\n {version.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n\n <div>\n <Label htmlFor='bottom-version' className='mb-2 block'>\n Right Version\n </Label>\n <Select\n value={String(bottomVersion)}\n onValueChange={(value) =>\n setBottomVersion(\n value === 'latest' ? 'latest' : Number(value),\n )\n }\n >\n <SelectTrigger id='bottom-version'>\n <SelectValue placeholder='Select version' />\n </SelectTrigger>\n <SelectContent>\n {versionOptions.map((version) => (\n <SelectItem\n key={String(version.value)}\n value={String(version.value)}\n >\n {version.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n </div>\n </CardContent>\n </Card>\n\n <SchemaFormComparison\n topVersion={topVersion}\n bottomVersion={bottomVersion}\n topFields={(topSchema?.fields as JSFField[]) || []}\n bottomFields={(bottomSchema?.fields as JSFField[]) || []}\n topFieldsets={topSchema?.meta?.['x-jsf-fieldsets']}\n bottomFieldsets={bottomSchema?.meta?.['x-jsf-fieldsets']}\n isLoading={isLoading}\n />\n </div>\n );\n};\n","import type { $TSFixMe, JSFField } from '@/src/types/remoteFlows';\nimport equal from 'fast-deep-equal';\n\nexport type DiffType = 'added' | 'removed' | 'modified' | 'unchanged';\n\nexport interface FieldDiff {\n fieldName: string;\n diffType: DiffType;\n changes?: {\n label?: { old: string; new: string };\n required?: { old: boolean; new: boolean };\n type?: { old: string; new: string };\n inputType?: { old: string; new: string };\n jsonType?: { old: string; new: string };\n defaultValue?: { old: unknown; new: unknown };\n minDate?: { old: string; new: string };\n maxDate?: { old: string; new: string };\n maxLength?: { old: number; new: number };\n multiple?: { old: boolean; new: boolean };\n isVisible?: { old: boolean; new: boolean };\n options?: {\n added: Array<{ value: string; label: string }>;\n removed: Array<{ value: string; label: string }>;\n modified: Array<{\n value: string;\n changes: { label?: { old: string; new: string } };\n }>;\n };\n nestedFields?: FieldDiff[];\n };\n}\n\nexport interface FormDiff {\n added: string[];\n removed: string[];\n modified: string[];\n unchanged: string[];\n fieldDiffs: Map<string, FieldDiff>;\n}\n\nconst validateField = (field: JSFField): boolean => {\n if (!field.name) {\n console.warn('Field missing required \"name\" property:', field);\n return false;\n }\n if (!field.type) {\n console.warn(`Field \"${field.name}\" missing required \"type\" property`);\n return false;\n }\n return true;\n};\n\nconst compareOptions = (\n options1: JSFField['options'],\n options2: JSFField['options'],\n):\n | {\n added: Array<{ value: string; label: string }>;\n removed: Array<{ value: string; label: string }>;\n modified: Array<{\n value: string;\n changes: { label?: { old: string; new: string } };\n }>;\n }\n | undefined => {\n if (equal(options1, options2)) return undefined;\n\n const map1 = new Map((options1 || []).map((o) => [o.value, o]));\n const map2 = new Map((options2 || []).map((o) => [o.value, o]));\n\n const added: Array<{ value: string; label: string }> = [];\n const removed: Array<{ value: string; label: string }> = [];\n const modified: Array<{\n value: string;\n changes: { label?: { old: string; new: string } };\n }> = [];\n\n map2.forEach((option, value) => {\n if (!map1.has(value)) {\n added.push({ value: option.value, label: option.label });\n }\n });\n\n map1.forEach((option1, value) => {\n if (!map2.has(value)) {\n removed.push({ value: option1.value, label: option1.label });\n } else {\n const option2 = map2.get(value)!;\n if (!equal(option1, option2)) {\n const changes: { label?: { old: string; new: string } } = {};\n if (option1.label !== option2.label) {\n changes.label = { old: option1.label, new: option2.label };\n }\n if (Object.keys(changes).length > 0) {\n modified.push({ value, changes });\n }\n }\n }\n });\n\n if (added.length === 0 && removed.length === 0 && modified.length === 0) {\n return undefined;\n }\n\n return { added, removed, modified };\n};\n\nconst compareNestedFields = (\n field1: JSFField,\n field2: JSFField,\n): FieldDiff[] | undefined => {\n const nestedFields1 = (field1 as $TSFixMe).fields;\n\n const nestedFields2 = (field2 as $TSFixMe).fields;\n\n if (!nestedFields1 && !nestedFields2) return undefined;\n\n const nestedDiff = compareFormFields(\n nestedFields1 || [],\n nestedFields2 || [],\n );\n\n const hasChanges =\n nestedDiff.added.length > 0 ||\n nestedDiff.removed.length > 0 ||\n nestedDiff.modified.length > 0;\n\n if (!hasChanges) return undefined;\n\n return Array.from(nestedDiff.fieldDiffs.values());\n};\n\nconst isFieldModified = (field1: JSFField, field2: JSFField): boolean => {\n // Only compare user-facing schema properties, not internal/computed ones\n // Ignore: schema (Yup), computedAttributes, scopedJsonSchema, errorMessage, meta, description\n // Note: nested fields are checked via compareNestedFields to avoid deep equal with problematic properties\n const checks = {\n label: field1.label !== field2.label,\n required: field1.required !== field2.required,\n inputType: field1.inputType !== field2.inputType,\n type: field1.type !== field2.type,\n jsonType: !equal(field1.jsonType, field2.jsonType), // Use equal since jsonType can be an array like ['string', 'null']\n name: field1.name !== field2.name,\n defaultValue: field1.defaultValue !== field2.defaultValue,\n minDate: field1.minDate !== field2.minDate,\n maxDate: field1.maxDate !== field2.maxDate,\n maxLength: field1.maxLength !== field2.maxLength,\n multiple: field1.multiple !== field2.multiple,\n isVisible: field1.isVisible !== field2.isVisible,\n options: !equal(field1.options, field2.options),\n };\n\n // Check for nested field changes using compareNestedFields to avoid deep isEqual\n const hasNestedChanges = (() => {\n const nestedFields1 = (field1 as $TSFixMe).fields;\n const nestedFields2 = (field2 as $TSFixMe).fields;\n\n // If both undefined or null, no changes\n if (!nestedFields1 && !nestedFields2) return false;\n\n // If one is defined and the other isn't, there's a change\n if (!nestedFields1 || !nestedFields2) return true;\n\n // Recursively compare using our proper comparison logic\n const nestedDiff = compareFormFields(nestedFields1, nestedFields2);\n return (\n nestedDiff.added.length > 0 ||\n nestedDiff.removed.length > 0 ||\n nestedDiff.modified.length > 0\n );\n })();\n\n const isModified =\n Object.values(checks).some((check) => check) || hasNestedChanges;\n\n return isModified;\n};\n\nconst getFieldChanges = (field1: JSFField, field2: JSFField) => {\n const changes: FieldDiff['changes'] = {};\n\n if (field1.label !== field2.label) {\n changes.label = { old: field1.label, new: field2.label };\n }\n\n if (field1.required !== field2.required) {\n changes.required = { old: field1.required, new: field2.required };\n }\n\n if (field1.type !== field2.type) {\n changes.type = { old: field1.type, new: field2.type };\n }\n\n if (field1.inputType !== field2.inputType) {\n changes.inputType = {\n old: field1.inputType,\n new: field2.inputType,\n };\n }\n\n if (!equal(field1.jsonType, field2.jsonType)) {\n changes.jsonType = {\n old: field1.jsonType,\n new: field2.jsonType,\n };\n }\n\n if (!equal(field1.defaultValue, field2.defaultValue)) {\n changes.defaultValue = {\n old: field1.defaultValue,\n new: field2.defaultValue,\n };\n }\n\n if (field1.minDate !== field2.minDate) {\n changes.minDate = {\n old: field1.minDate || '',\n new: field2.minDate || '',\n };\n }\n\n if (field1.maxDate !== field2.maxDate) {\n changes.maxDate = {\n old: field1.maxDate || '',\n new: field2.maxDate || '',\n };\n }\n\n if (field1.maxLength !== field2.maxLength) {\n changes.maxLength = {\n old: field1.maxLength || 0,\n new: field2.maxLength || 0,\n };\n }\n\n if (field1.multiple !== field2.multiple) {\n changes.multiple = {\n old: field1.multiple || false,\n new: field2.multiple || false,\n };\n }\n\n if (field1.isVisible !== field2.isVisible) {\n changes.isVisible = {\n old: field1.isVisible,\n new: field2.isVisible,\n };\n }\n\n const optionsDiff = compareOptions(field1.options, field2.options);\n if (optionsDiff) {\n changes.options = optionsDiff;\n }\n\n const nestedFieldsDiff = compareNestedFields(field1, field2);\n if (nestedFieldsDiff) {\n changes.nestedFields = nestedFieldsDiff;\n }\n\n return Object.keys(changes).length > 0 ? changes : undefined;\n};\n\nexport const compareFormFields = (\n fields1: JSFField[] = [],\n fields2: JSFField[] = [],\n): FormDiff => {\n const validFields1 = fields1.filter(validateField);\n const validFields2 = fields2.filter(validateField);\n\n const fieldMap1 = new Map(validFields1.map((f) => [f.name, { field: f }]));\n const fieldMap2 = new Map(validFields2.map((f) => [f.name, { field: f }]));\n\n const added: string[] = [];\n const removed: string[] = [];\n const modified: string[] = [];\n const unchanged: string[] = [];\n const fieldDiffs = new Map<string, FieldDiff>();\n\n fieldMap2.forEach((_, name) => {\n if (!fieldMap1.has(name)) {\n added.push(name);\n fieldDiffs.set(name, {\n fieldName: name,\n diffType: 'added',\n });\n }\n });\n\n fieldMap1.forEach(({ field: field1 }, name) => {\n if (!fieldMap2.has(name)) {\n removed.push(name);\n fieldDiffs.set(name, {\n fieldName: name,\n diffType: 'removed',\n });\n } else {\n const { field: field2 } = fieldMap2.get(name)!;\n\n if (isFieldModified(field1, field2)) {\n modified.push(name);\n fieldDiffs.set(name, {\n fieldName: name,\n diffType: 'modified',\n changes: getFieldChanges(field1, field2),\n });\n } else {\n unchanged.push(name);\n fieldDiffs.set(name, {\n fieldName: name,\n diffType: 'unchanged',\n });\n }\n }\n });\n\n return {\n added,\n removed,\n modified,\n unchanged,\n fieldDiffs,\n };\n};\n\nexport const getDiffStyles = (diffType: DiffType): string => {\n switch (diffType) {\n case 'added':\n return 'bg-green-50 border-l-4 border-green-500';\n case 'removed':\n return 'bg-red-50 border-l-4 border-red-500';\n case 'modified':\n return 'bg-yellow-50 border-l-4 border-yellow-500';\n case 'unchanged':\n default:\n return '';\n }\n};\n","import { JSONSchemaFormFields } from '@/src/components/form/JSONSchemaForm';\nimport { Form } from '@/src/components/ui/form';\nimport { useForm } from 'react-hook-form';\nimport {\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n} from '@/src/components/ui/card';\nimport type { JSFField, JSFFieldset } from '@/src/types/remoteFlows';\nimport { compareFormFields, getDiffStyles } from './formDiffDetector';\nimport { useMemo, useRef, useEffect } from 'react';\n\ninterface SchemaFormComparisonProps {\n topVersion: string | number;\n bottomVersion: string | number;\n topFields: JSFField[];\n bottomFields: JSFField[];\n topFieldsets?: JSFFieldset | null;\n bottomFieldsets?: JSFFieldset | null;\n isLoading?: boolean;\n}\n\nconst FieldWrapper = ({\n children,\n diffType,\n changes,\n}: {\n children: React.ReactNode;\n diffType: 'added' | 'removed' | 'modified' | 'unchanged';\n fieldName: string;\n changes?: {\n label?: { old: string; new: string };\n required?: { old: boolean; new: boolean };\n type?: { old: string; new: string };\n inputType?: { old: string; new: string };\n jsonType?: { old: string; new: string };\n defaultValue?: { old: unknown; new: unknown };\n minDate?: { old: string; new: string };\n maxDate?: { old: string; new: string };\n maxLength?: { old: number; new: number };\n multiple?: { old: boolean; new: boolean };\n isVisible?: { old: boolean; new: boolean };\n options?: {\n added: Array<{ value: string; label: string }>;\n removed: Array<{ value: string; label: string }>;\n modified: Array<{\n value: string;\n changes: { label?: { old: string; new: string } };\n }>;\n };\n nestedFields?: unknown[];\n };\n}) => {\n const styles = getDiffStyles(diffType);\n\n if (diffType === 'unchanged') {\n return <div>{children}</div>;\n }\n\n const badges = {\n added: (\n <span className='text-xs font-semibold text-green-700 bg-green-100 px-2 py-1 rounded'>\n NEW\n </span>\n ),\n removed: (\n <span className='text-xs font-semibold text-red-700 bg-red-100 px-2 py-1 rounded'>\n REMOVED\n </span>\n ),\n modified: (\n <span className='text-xs font-semibold text-yellow-700 bg-yellow-100 px-2 py-1 rounded'>\n MODIFIED\n </span>\n ),\n };\n\n const badge = badges[diffType];\n\n const renderChanges = () => {\n if (!changes || diffType !== 'modified') return null;\n\n const changesList: React.ReactNode[] = [];\n\n if (changes.label) {\n changesList.push(\n <div key='label' className='text-xs'>\n <span className='font-semibold'>Label:</span>{' '}\n <span className='line-through text-red-600'>{changes.label.old}</span>{' '}\n → <span className='text-green-600'>{changes.label.new}</span>\n </div>,\n );\n }\n\n if (changes.required) {\n changesList.push(\n <div key='required' className='text-xs'>\n <span className='font-semibold'>Required:</span>{' '}\n <span className='line-through text-red-600'>\n {changes.required.old ? 'Yes' : 'No'}\n </span>{' '}\n →{' '}\n <span className='text-green-600'>\n {changes.required.new ? 'Yes' : 'No'}\n </span>\n </div>,\n );\n }\n\n if (changes.type) {\n changesList.push(\n <div key='type' className='text-xs'>\n <span className='font-semibold'>Type:</span>{' '}\n <span className='line-through text-red-600'>{changes.type.old}</span>{' '}\n → <span className='text-green-600'>{changes.type.new}</span>\n </div>,\n );\n }\n\n if (changes.inputType) {\n changesList.push(\n <div key='inputType' className='text-xs'>\n <span className='font-semibold'>Input Type:</span>{' '}\n <span className='line-through text-red-600'>\n {changes.inputType.old}\n </span>{' '}\n → <span className='text-green-600'>{changes.inputType.new}</span>\n </div>,\n );\n }\n\n if (changes.jsonType) {\n const oldJsonType = Array.isArray(changes.jsonType.old)\n ? changes.jsonType.old.join(' | ')\n : changes.jsonType.old;\n const newJsonType = Array.isArray(changes.jsonType.new)\n ? changes.jsonType.new.join(' | ')\n : changes.jsonType.new;\n\n changesList.push(\n <div key='jsonType' className='text-xs'>\n <span className='font-semibold'>JSON Type:</span>{' '}\n <span className='line-through text-red-600'>{oldJsonType}</span> →{' '}\n <span className='text-green-600'>{newJsonType}</span>\n </div>,\n );\n }\n\n if (changes.defaultValue !== undefined) {\n changesList.push(\n <div key='defaultValue' className='text-xs'>\n <span className='font-semibold'>Default Value:</span>{' '}\n <span className='line-through text-red-600'>\n {JSON.stringify(changes.defaultValue.old)}\n </span>{' '}\n →{' '}\n <span className='text-green-600'>\n {JSON.stringify(changes.defaultValue.new)}\n </span>\n </div>,\n );\n }\n\n if (changes.options) {\n if (changes.options.added.length > 0) {\n changesList.push(\n <div key='options-added' className='text-xs'>\n <span className='font-semibold text-green-700'>Options Added:</span>{' '}\n {changes.options.added.map((opt) => opt.label).join(', ')}\n </div>,\n );\n }\n if (changes.options.removed.length > 0) {\n changesList.push(\n <div key='options-removed' className='text-xs'>\n <span className='font-semibold text-red-700'>Options Removed:</span>{' '}\n {changes.options.removed.map((opt) => opt.label).join(', ')}\n </div>,\n );\n }\n if (changes.options.modified.length > 0) {\n changesList.push(\n <div key='options-modified' className='text-xs'>\n <span className='font-semibold'>Options Modified:</span>{' '}\n {changes.options.modified.length} option(s)\n </div>,\n );\n }\n }\n\n if (changes.nestedFields && changes.nestedFields.length > 0) {\n changesList.push(\n <div key='nestedFields' className='text-xs'>\n <span className='font-semibold'>Nested Fields:</span>{' '}\n {changes.nestedFields.length} field(s) changed\n </div>,\n );\n }\n\n if (changesList.length === 0) return null;\n\n return (\n <div className='mt-2 p-2 bg-yellow-50 rounded border border-yellow-200 space-y-1'>\n <div className='text-xs font-semibold text-yellow-800 mb-1'>\n Changes:\n </div>\n {changesList}\n </div>\n );\n };\n\n return (\n <div className={`p-3 mb-2 rounded ${styles} relative`}>\n <div className='absolute top-2 right-2'>{badge}</div>\n {children}\n {renderChanges()}\n </div>\n );\n};\n\nconst FormPanel = ({\n version,\n fields,\n fieldsets,\n diffMap,\n title,\n scrollRef,\n}: {\n version: string | number;\n fields: JSFField[];\n fieldsets?: JSFFieldset | null;\n diffMap: Map<\n string,\n {\n diffType: 'added' | 'removed' | 'modified' | 'unchanged';\n changes?: unknown;\n }\n >;\n title: string;\n scrollRef?: React.RefObject<HTMLDivElement | null>;\n}) => {\n const form = useForm({\n mode: 'onBlur',\n });\n\n const fieldsWithWrappers = useMemo(() => {\n // Recursive function to apply wrappers to fields and their nested fields\n const applyWrappers = (\n fields: JSFField[],\n diffMap: Map<\n string,\n {\n diffType: 'added' | 'removed' | 'modified' | 'unchanged';\n changes?: unknown;\n }\n >,\n ): JSFField[] => {\n return fields.map((field) => {\n const diff = diffMap.get(field.name);\n const diffType = diff?.diffType || 'unchanged';\n const changes = diff?.changes;\n\n // If this field has nested fields (e.g., fieldset), recursively apply wrappers\n const nestedFields = (field as never as { fields?: JSFField[] }).fields;\n let processedField = field;\n\n if (nestedFields && Array.isArray(nestedFields)) {\n // Build a nested diff map from the changes.nestedFields\n const nestedDiffMap = new Map<\n string,\n {\n diffType: 'added' | 'removed' | 'modified' | 'unchanged';\n changes?: unknown;\n }\n >();\n\n if (\n changes &&\n typeof changes === 'object' &&\n 'nestedFields' in changes &&\n Array.isArray(changes.nestedFields)\n ) {\n (\n changes.nestedFields as Array<{\n fieldName: string;\n diffType: 'added' | 'removed' | 'modified' | 'unchanged';\n changes?: unknown;\n }>\n ).forEach((nestedDiff) => {\n nestedDiffMap.set(nestedDiff.fieldName, {\n diffType: nestedDiff.diffType,\n changes: nestedDiff.changes,\n });\n });\n }\n\n // Recursively apply wrappers to nested fields\n const wrappedNestedFields = applyWrappers(\n nestedFields,\n nestedDiffMap,\n );\n processedField = {\n ...field,\n fields: wrappedNestedFields,\n } as JSFField;\n }\n\n return {\n ...processedField,\n WrapperComponent: ({ children }: { children: React.ReactNode }) => (\n <FieldWrapper\n diffType={diffType}\n fieldName={field.name}\n changes={changes as never}\n >\n {children}\n </FieldWrapper>\n ),\n };\n });\n };\n\n return applyWrappers(fields, diffMap);\n }, [fields, diffMap]);\n\n return (\n <Card className='h-full'>\n <CardHeader>\n <CardTitle>\n {title} - Version {version}\n </CardTitle>\n </CardHeader>\n <CardContent ref={scrollRef} className='overflow-y-auto max-h-[600px]'>\n <Form {...form}>\n <form className='space-y-4'>\n <JSONSchemaFormFields\n fields={fieldsWithWrappers}\n fieldsets={fieldsets}\n fieldValues={{}}\n />\n </form>\n </Form>\n </CardContent>\n </Card>\n );\n};\n\nexport const SchemaFormComparison = ({\n topVersion,\n bottomVersion,\n topFields,\n bottomFields,\n topFieldsets,\n bottomFieldsets,\n isLoading,\n}: SchemaFormComparisonProps) => {\n const diff = useMemo(\n () => compareFormFields(topFields, bottomFields),\n [topFields, bottomFields],\n );\n\n const leftScrollRef = useRef<HTMLDivElement>(null);\n const rightScrollRef = useRef<HTMLDivElement>(null);\n const isSyncing = useRef(false);\n\n useEffect(() => {\n const leftEl = leftScrollRef.current;\n const rightEl = rightScrollRef.current;\n\n if (!leftEl || !rightEl) return;\n\n const handleLeftScroll = () => {\n if (isSyncing.current) return;\n isSyncing.current = true;\n rightEl.scrollTop = leftEl.scrollTop;\n requestAnimationFrame(() => {\n isSyncing.current = false;\n });\n };\n\n const handleRightScroll = () => {\n if (isSyncing.current) return;\n isSyncing.current = true;\n leftEl.scrollTop = rightEl.scrollTop;\n requestAnimationFrame(() => {\n isSyncing.current = false;\n });\n };\n\n leftEl.addEventListener('scroll', handleLeftScroll);\n rightEl.addEventListener('scroll', handleRightScroll);\n\n return () => {\n leftEl.removeEventListener('scroll', handleLeftScroll);\n rightEl.removeEventListener('scroll', handleRightScroll);\n };\n }, [topFields, bottomFields]);\n\n if (isLoading) {\n return (\n <div className='flex items-center justify-center h-96'>\n <div className='text-center'>\n <div className='animate-spin rounded-full h-12 w-12 border-b-2 border-gray-900 mx-auto'></div>\n <p className='mt-4 text-gray-600'>Loading schemas...</p>\n </div>\n </div>\n );\n }\n\n const hasNoDifferences =\n diff.added.length === 0 &&\n diff.removed.length === 0 &&\n diff.modified.length === 0;\n\n return (\n <div className='space-y-6'>\n <Card>\n <CardContent className='pt-6'>\n {hasNoDifferences ? (\n <p className='text-center text-gray-600'>\n No differences detected between the two versions\n </p>\n ) : (\n <div className='flex gap-6 justify-center'>\n {diff.added.length > 0 && (\n <div className='flex items-center gap-2'>\n <span className='w-4 h-4 bg-green-500 rounded'></span>\n <span className='text-sm'>\n {diff.added.length} field{diff.added.length > 1 ? 's' : ''}{' '}\n added\n </span>\n </div>\n )}\n {diff.removed.length > 0 && (\n <div className='flex items-center gap-2'>\n <span className='w-4 h-4 bg-red-500 rounded'></span>\n <span className='text-sm'>\n {diff.removed.length} field\n {diff.removed.length > 1 ? 's' : ''} removed\n </span>\n </div>\n )}\n {diff.modified.length > 0 && (\n <div className='flex items-center gap-2'>\n <span className='w-4 h-4 bg-yellow-500 rounded'></span>\n <span className='text-sm'>\n {diff.modified.length} field\n {diff.modified.length > 1 ? 's' : ''} modified\n </span>\n </div>\n )}\n </div>\n )}\n </CardContent>\n </Card>\n\n <div className='grid grid-cols-2 gap-6'>\n <FormPanel\n version={topVersion}\n fields={topFields}\n fieldsets={topFieldsets}\n diffMap={diff.fieldDiffs}\n title='Left'\n scrollRef={leftScrollRef}\n />\n <FormPanel\n version={bottomVersion}\n fields={bottomFields}\n fieldsets={bottomFieldsets}\n diffMap={diff.fieldDiffs}\n title='Right'\n scrollRef={rightScrollRef}\n />\n </div>\n </div>\n );\n};\n","export type SchemaVersion = number | 'latest';\n\nexport interface VersionOption {\n value: SchemaVersion;\n label: string;\n}\n\nexport const BASIC_INFO_VERSIONS: VersionOption[] = [\n { value: 1, label: 'v1' },\n { value: 3, label: 'v3' },\n { value: 4, label: 'v4 (Recommended)' },\n];\n\n// AI generated from tiger\n// Last updated: 2026-06-29\nexport const COUNTRY_CONTRACT_VERSIONS: Record<string, VersionOption[]> = {\n ALB: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n ARE: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n ARG: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n ARM: [{ value: 1, label: 'v1' }],\n AUS: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n { value: 4, label: 'v4' },\n ],\n AUT: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n { value: 4, label: 'v4' },\n { value: 5, label: 'v5' },\n { value: 6, label: 'v6' },\n ],\n BEL: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n BGD: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n { value: 4, label: 'v4' },\n ],\n BGR: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n { value: 4, label: 'v4' },\n ],\n BIH: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n { value: 4, label: 'v4' },\n ],\n BLR: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n BOL: [{ value: 1, label: 'v1' }],\n BRA: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n CAN: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n CHE: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n CHL: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n CHN: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n { value: 4, label: 'v4' },\n { value: 5, label: 'v5' },\n ],\n COL: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n CRI: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n CYP: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n CZE: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n { value: 4, label: 'v4' },\n ],\n DEU: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n { value: 4, label: 'v4' },\n ],\n DNK: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n DOM: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n ECU: [{ value: 1, label: 'v1' }],\n EGY: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n ESP: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n EST: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n FIN: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n FRA: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n FRA_SAS: [{ value: 1, label: 'v1' }],\n GBR: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n { value: 4, label: 'v4' },\n ],\n GEO: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n GRC: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n GTM: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n HKG: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n HND: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n HRV: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n HUN: [{ value: 1, label: 'v1' }],\n IDN: [{ value: 1, label: 'v1' }],\n IND: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n IRL: [{ value: 1, label: 'v1' }],\n ISL: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n ISR: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n { value: 4, label: 'v4' },\n ],\n ITA: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n ITA_APL: [{ value: 1, label: 'v1' }],\n JAM: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n JPN: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n KEN: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n KGZ: [{ value: 1, label: 'v1' }],\n KHM: [{ value: 1, label: 'v1' }],\n KOR: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n { value: 4, label: 'v4' },\n ],\n LBN: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n LKA: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n { value: 4, label: 'v4' },\n ],\n LTU: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n LUX: [{ value: 1, label: 'v1' }],\n LVA: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n { value: 4, label: 'v4' },\n ],\n MAR: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n MDA: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n MEX: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n { value: 4, label: 'v4' },\n ],\n MKD: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n { value: 4, label: 'v4' },\n ],\n MLT: [{ value: 1, label: 'v1' }],\n MNG: [{ value: 1, label: 'v1' }],\n MUS: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n MYS: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n NGA: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n NIC: [{ value: 1, label: 'v1' }],\n NLD: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n NOR: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n NZL: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n { value: 4, label: 'v4' },\n ],\n PAK: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n PAN: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n PER: [{ value: 1, label: 'v1' }],\n PHL: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n POL: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n PRI: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n PRT: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n { value: 4, label: 'v4' },\n ],\n PRY: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n ROU: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n SAU: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n SGP: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n SLV: [{ value: 1, label: 'v1' }],\n SRB: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n { value: 4, label: 'v4' },\n { value: 5, label: 'v5' },\n ],\n SVK: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n SVN: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n { value: 4, label: 'v4' },\n ],\n SWE: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n THA: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n TUN: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n TUR: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n { value: 4, label: 'v4' },\n ],\n TWN: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n UGA: [{ value: 1, label: 'v1' }],\n UKR: [{ value: 1, label: 'v1' }],\n URY: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n ],\n USA: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n VNM: [\n { value: 1, label: 'v1' },\n { value: 2, label: 'v2' },\n { value: 3, label: 'v3' },\n ],\n XKX: [{ value: 1, label: 'v1' }],\n ZAF: [{ value: 1, label: 'v1' }],\n ZWE: [{ value: 1, label: 'v1' }],\n};\n\nexport const COUNTRY_CONTRACT_VERSIONS_WITH_MULTIPLE_VERSIONS =\n Object.fromEntries(\n Object.entries(COUNTRY_CONTRACT_VERSIONS).filter(\n ([, versions]) => versions.length > 1,\n ),\n ) as Record<string, VersionOption[]>;\n\nexport const FORM_TYPES = [\n { value: 'employment_basic_information', label: 'Basic Information' },\n { value: 'contract_details', label: 'Contract Details' },\n] as const;\n\nexport type FormType = (typeof FORM_TYPES)[number]['value'];\n"],"mappings":"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","names":["CollapsiblePrimitive","Collapsible","CollapsibleTrigger","CollapsibleContent","DialogPrimitive","XIcon","jsx","jsxs","FullScreenDialog","props","__name","FullScreenDialogTrigger","FullScreenDialogPortal","FullScreenDialogOverlay","className","props","jsx","cn","__name","FullScreenDialogContent","children","jsxs","FullScreenDialogPortal","XIcon","FullScreenDialogHeader","FullScreenDialogFooter","FullScreenDialogTitle","FullScreenDialogDescription","TabsPrimitive","jsx","Tabs","className","props","cn","__name","TabsList","TabsTrigger","TabsContent","React","ScrollAreaPrimitive","jsx","jsxs","ScrollArea","className","children","props","ref","cn","ScrollBar","orientation","useState","useEffect","useMemo","useQuery","equal","validateField","__name","field","compareOptions","options1","options2","equal","map1","o","map2","added","removed","modified","option","value","option1","option2","changes","compareNestedFields","field1","field2","nestedFields1","nestedFields2","nestedDiff","compareFormFields","isFieldModified","checks","hasNestedChanges","check","getFieldChanges","optionsDiff","nestedFieldsDiff","fields1","fields2","validFields1","validFields2","fieldMap1","fieldMap2","unchanged","fieldDiffs","_","name","getDiffStyles","diffType","useMemo","useRef","useEffect","jsx","jsxs","FieldWrapper","__name","children","diffType","changes","styles","getDiffStyles","badge","renderChanges","changesList","oldJsonType","newJsonType","opt","FormPanel","version","fields","fieldsets","diffMap","title","scrollRef","form","useForm","fieldsWithWrappers","useMemo","applyWrappers","field","diff","nestedFields","processedField","nestedDiffMap","nestedDiff","wrappedNestedFields","Card","CardHeader","CardTitle","CardContent","Form","JSONSchemaFormFields","SchemaFormComparison","topVersion","bottomVersion","topFields","bottomFields","topFieldsets","bottomFieldsets","isLoading","compareFormFields","leftScrollRef","useRef","rightScrollRef","isSyncing","useEffect","leftEl","rightEl","handleLeftScroll","handleRightScroll","hasNoDifferences","BASIC_INFO_VERSIONS","COUNTRY_CONTRACT_VERSIONS","COUNTRY_CONTRACT_VERSIONS_WITH_MULTIPLE_VERSIONS","versions","FORM_TYPES","jsx","jsxs","JsonSchemaComparison","__name","formType","setFormType","useState","topVersion","setTopVersion","bottomVersion","setBottomVersion","countryCode","setCountryCode","client","useClient","countriesData","useQuery","countriesOptions","response","country","COUNTRY_CONTRACT_VERSIONS_WITH_MULTIPLE_VERSIONS","isContractDetails","topSchema","isLoadingTop","useJSONSchemaForm","bottomSchema","isLoadingBottom","isLoading","countryVersions","COUNTRY_CONTRACT_VERSIONS","hasCountryMapping","versionOptions","useMemo","BASIC_INFO_VERSIONS","useEffect","availableVersionValues","v","Card","CardHeader","CardTitle","CardContent","Label","Tabs","value","TabsList","FORM_TYPES","type","TabsTrigger","Select","SelectTrigger","SelectValue","SelectContent","SelectItem","version","SchemaFormComparison"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a}from"./chunk-3WRO57UF.js";import{a as m}from"./chunk-JUSQGITN.js";import{a as p}from"./chunk-IFIJ7OVJ.js";import{a as e}from"./chunk-76ZDXC2T.js";import{a as r}from"./chunk-MGCW2SS4.js";import{a as t}from"./chunk-P37U34EQ.js";import{useId as y}from"react";import{jsx as d}from"react/jsx-runtime";var P=t(({render:n,countryCode:C,options:i,initialValues:s})=>{let o=r({options:i,countryCode:C,initialValues:s}),f=y();return d(e.Provider,{value:{createCompanyBag:o,formId:f},children:n({createCompanyBag:o,components:{CompanyBasicInformationStep:m,AddressDetailsStep:a,SubmitButton:p}})})},"CreateCompanyFlow");export{P as a};
|
|
2
|
+
//# sourceMappingURL=chunk-MOOSPB2G.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as ee}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as ee}from"./chunk-463G2HDA.js";import{a as C}from"./chunk-HN5HLFTB.js";import{a as z}from"./chunk-QATHYZUV.js";import{a as W,b as X,c as Y,f as Z}from"./chunk-NGBNHXAA.js";import{a as I}from"./chunk-KFYWUBRS.js";import{c as te}from"./chunk-KSSQR2CS.js";import{a as Q}from"./chunk-JO5D2522.js";import{b as G,h as M}from"./chunk-C4HFMTSB.js";import{a as o}from"./chunk-P37U34EQ.js";import{number as Te,object as le}from"yup";import{useCallback as we,useEffect as ne,useMemo as Re,useRef as Pe,useState as j}from"react";import{string as re,ValidationError as ie}from"yup";import{jsx as ae}from"react/jsx-runtime";var O={title:"Estimation",includeBenefits:!1,includeCostBreakdowns:!1,includePremiumBenefits:!1,enableCurrencyConversion:!1,includeEstimationTitle:!1,includeManagementFee:!1},xe=o(t=>Q(z.data.schema,void 0,t),"useStaticSchema");function Be(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(Be,"getSalaryTitle");var Qe=o(({defaultRegion:t,defaultCurrency:i,defaultSalary:l,estimationOptions:s,options:n,version:a}={estimationOptions:O})=>{let c=Pe({fields:{}}),[k,h]=j(t),[w,R]=j(),[m,q]=j(),[H,ce]=j(),{data:_,isLoading:ue}=W({includePremiumBenefits:s.includePremiumBenefits}),{data:d,isLoading:me}=X(),de=k||w?.value,{data:P,isLoading:fe}=Z(de,{includePremiumBenefits:s.includePremiumBenefits,options:n}),U=Y(),{mutateAsync:ge}=G(U),b=w?.currency,p=n?.jsfModify?.fields?.salary,F=p&&typeof p=="object"&&"presentation"in p?p.presentation:void 0,L=we(()=>{let e=b&&m?b!==m:!1;return b!==m?{from:m,to:b,shouldSwapOrder:e}:{from:b,to:m,shouldSwapOrder:e}},[b,m]),D=s.showManagementFee,J=s.includeEstimationTitle,$=n?.features?.includes("split_salary_description")??!1,ye=Re(()=>{let{from:e,to:r,shouldSwapOrder:u}=L(),g=Be(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=>ae(ee,{...y,shouldSwapOrder:u,conversionType:a==="marketing"?"no_spread":"spread",defaultValue:l,splitDescription:$}),"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:!D,Component:o(y=>ae(te,{...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:!J}}}}},[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,D,J,l,$]),f=xe({jsfModify:{fields:{...n?.jsfModify?.fields,...ye?.fields}}});ne(()=>{if(t&&_){let e=_.find(({value:r})=>r===t);e&&R(e)}},[t,_]),ne(()=>{if(i&&d){let e=d.find(({value:r})=>r===i);e&&q(e.label)}},[i,d]);async function pe(e){return ge(se(e,s,a))}o(pe,"onSubmit");function Ce(e){let r=_?.find(({value:u})=>u===e);r&&r.childRegions.length===0&&r.hasAdditionalFields?h(r.regionSlug):h(void 0),R(r)}o(Ce,"onCountryChange");function _e(e){h(e)}o(_e,"onRegionChange");function be(e){ce(e.target.value)}o(be,"onHiringBudgetChange");function Se(e){let r=d?.find(u=>u.value===e)?.label;q(r),n?.onCurrencyChange?.(r||"")}o(Se,"onChangeCurrency");let S=f.fields.find(e=>e.name==="region");if(S){let e=w?.childRegions.map(r=>({value:r.slug,label:r.name}))??[];S.options=e,S.isVisible=e.length>0,S.required=e.length>0,S.onChange=_e,S.schema=e.length>0?re().transform(r=>typeof r=="string"?r:"").required("Region is required"):re()}if(d){let e=f.fields.find(r=>r.name==="currency");e&&(e.options=d,e.onChange=Se)}let v=f.fields.find(e=>e.name==="hiring_budget");if(v&&(v.onChange=be),_){let e=f.fields.find(r=>r.name==="country");e&&(e.options=_,e.onChange=Ce)}let Ee=o(()=>{R(void 0),h(t)},"resetForm"),N=[...f.fields.filter(e=>e.name!=="management"),...P?.fields||[],...f.fields.filter(e=>e.name==="management")],K=oe(f.fields,m||"USD",s.includeEstimationTitle);async function he(e){let r=null;n?.onValidation?.(e);let u=await M(e,N);try{await K.validate(u,{abortEarly:!1}),r={formErrors:{},yupError:new ie([],e)}}catch(E){let B=I(E);r={formErrors:Object.entries(B).reduce((T,[A,V])=>({...T,[A]:V.message}),{}),yupError:E}}let g=P?.handleValidation(u),y=[...r?.yupError.inner||[],...g?.yupError?.inner||[]],x={...r?.yupError?.value||{},...g?.yupError?.value||{}};return{formErrors:{...r?.formErrors||{},...g?.formErrors||{}},yupError:new ie(y,x)}}return o(he,"handleValidation"),{stepState:{current:0,total:1,isLastStep:!0},fields:N,validationSchema:K,parseFormValues:o(async e=>{let{country:r,region:u,currency:g,salary_converted:y,hiring_budget:x,salary_conversion:E,management:B,estimation_title:T,...A}=e,V=e.salary;y==="salary_conversion"&&(V=E);let Fe=await M({country:r,region:u,salary:V,salary_converted:y,salary_conversion:E,hiring_budget:x,currency:g,management:B,estimation_title:T},f.fields),Ve=await M(A,P?.fields||[]),Me={currency_code:d?.find(je=>je.value===g)?.label};return{...Fe,...Ve,...Me}},"parseFormValues"),handleValidation:he,isSubmitting:U.isPending,isLoading:ue&&me&&fe,onSubmit:pe,resetForm:Ee,currencies:d,meta:{fields:c.current?.fields}}},"useCostCalculator");function oe(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(c=>c===a.name,"is"),then:o(c=>c.required("Required field"),"then"),otherwise:o(c=>c.optional(),"otherwise")}):a.name==="management"?n[a.name]=le({management_fee:Te().transform(c=>isNaN(c)?void 0:c).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 le(s)}o(oe,"buildValidationSchema");function Ae(t){let i="benefit-";return Object.keys(t).reduce((l,s)=>{let n=t[s];if(n==="none")return l;let c={benefit_group_slug:s.replace(i,""),benefit_tier_slug:n};return[...l,c]},[])}o(Ae,"formatBenefits");function Oe(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:Ae(t.benefits)},...i.includeManagementFee&&s&&{discount:{quoted_amount:i.showManagementFee?s:C[n]||C.USD,text:""}}},...ke(t,l)}}o(Oe,"mapValueToEmployment");function ke(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(ke,"getSalaryFields");function se(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=>Oe(n,i,l))}}o(se,"buildPayload");export{oe as a,se as b,O as c,Qe as d};
|
|
2
|
+
//# sourceMappingURL=chunk-MZFT4MWM.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as p}from"./chunk-JO5D2522.js";import{$ as C,C as u,N as c,V as m,fa as d,p as l}from"./chunk-DAUDKN32.js";import{e as i}from"./chunk-H2O4CVKF.js";import{a as t}from"./chunk-P37U34EQ.js";import{useMutation as n,useQuery as r}from"@tanstack/react-query";var q=t(({includePremiumBenefits:e})=>{let{client:o}=i();return r({queryKey:["cost-calculator-countries",e],queryFn:t(()=>c({client:o,query:{include_premium_benefits:e}}),"queryFn"),select:t(a=>a.data?.data.filter(s=>s.availability==="active").map(s=>({value:s.region_slug,label:s.name,childRegions:s.child_regions,hasAdditionalFields:s.has_additional_fields,regionSlug:s.region_slug,currency:s.currency.code})),"select")})},"useCostCalculatorCountries"),P=t(()=>{let{client:e}=i();return r({queryKey:["company-currencies"],queryFn:t(()=>d({client:e}),"queryFn"),select:t(o=>o.data?.data?.company_currencies.map(a=>({value:a.slug,label:a.code})),"select")})},"useCompanyCurrencies"),h=t(()=>{let{client:e}=i();return n({mutationFn:t(o=>l({client:e,body:o}),"mutationFn")})},"useCostCalculatorEstimation"),v=t(()=>{let{client:e}=i();return n({mutationFn:t(o=>u({client:e,body:o}),"mutationFn")})},"useCostCalculatorEstimationPdf"),x=t(()=>{let{client:e}=i();return n({mutationFn:t(o=>C({client:e,body:o}),"mutationFn")})},"useCostCalculatorEstimationCsv"),V=t((e,{includePremiumBenefits:o,options:a})=>{let{client:s}=i();return r({queryKey:["cost-calculator-region-fields",e,o],queryFn:t(()=>m({client:s,path:{slug:e},query:{include_premium_benefits:o}}),"queryFn"),enabled:!!e,select:t(({data:f})=>{let y=f?.data?.schema||{};return p(y,void 0,a)},"select")})},"useRegionFields");export{q as a,P as b,h as c,v as d,x as e,V as f};
|
|
2
|
+
//# sourceMappingURL=chunk-NGBNHXAA.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/CostCalculator/api.ts"],"sourcesContent":["import { createHeadlessForm } from '@/src/common/createHeadlessForm';\nimport {\n CostCalculatorEstimateParams,\n getV1CompanyCurrencies,\n getV1CostCalculatorCountries,\n getV1CostCalculatorRegionsSlugFields,\n postV1CostCalculatorEstimation,\n postV1CostCalculatorEstimationCsv,\n postV1CostCalculatorEstimationPdf,\n} from '@/src/client';\nimport { Client } from '@/src/client/client';\nimport { useClient } from '@/src/context';\nimport { useMutation, useQuery } from '@tanstack/react-query';\nimport { CostCalculatorEstimationOptions } from '@/src/flows/CostCalculator/types';\nimport { JSFModify } from '@/src/flows/types';\n\n/**\n * Hook to fetch the countries for the cost calculator.\n * @returns\n */\nexport const useCostCalculatorCountries = ({\n includePremiumBenefits,\n}: {\n includePremiumBenefits: CostCalculatorEstimationOptions['includePremiumBenefits'];\n}) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['cost-calculator-countries', includePremiumBenefits],\n queryFn: () => {\n return getV1CostCalculatorCountries({\n client: client as Client,\n query: {\n include_premium_benefits: includePremiumBenefits,\n },\n });\n },\n select: (data) =>\n data.data?.data\n .filter((country) => country.availability === 'active')\n .map((country) => ({\n value: country.region_slug,\n label: country.name,\n childRegions: country.child_regions,\n hasAdditionalFields: country.has_additional_fields,\n regionSlug: country.region_slug,\n currency: country.currency.code,\n })),\n });\n};\n\n/**\n * Hook to fetch the company currencies.\n * @returns\n */\nexport const useCompanyCurrencies = () => {\n const { client } = useClient();\n\n return useQuery({\n queryKey: ['company-currencies'],\n queryFn: () => {\n return getV1CompanyCurrencies({\n client: client as Client,\n });\n },\n select: (data) =>\n data.data?.data?.company_currencies.map((currency) => ({\n value: currency.slug,\n label: currency.code,\n })),\n });\n};\n\n/**\n * Hook to create an estimation.\n * @returns\n */\nexport const useCostCalculatorEstimation = () => {\n const { client } = useClient();\n\n return useMutation({\n mutationFn: (payload: CostCalculatorEstimateParams) => {\n return postV1CostCalculatorEstimation({\n client: client as Client,\n body: payload,\n });\n },\n });\n};\n\n/**\n * Custom hook to create a PDF estimation.\n *\n * @returns\n */\nexport const useCostCalculatorEstimationPdf = () => {\n const { client } = useClient();\n\n return useMutation({\n mutationFn: (payload: CostCalculatorEstimateParams) => {\n return postV1CostCalculatorEstimationPdf({\n client: client as Client,\n body: payload,\n });\n },\n });\n};\n\n/**\n * Custom hook to create a CSV estimation.\n *\n * @returns\n */\nexport const useCostCalculatorEstimationCsv = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: (payload: CostCalculatorEstimateParams) => {\n return postV1CostCalculatorEstimationCsv({\n client: client as Client,\n body: payload,\n });\n },\n });\n};\n\n/**\n * Hook to fetch the region fields.\n * @param region\n * @returns\n */\nexport const useRegionFields = (\n region: string | undefined,\n {\n includePremiumBenefits,\n options,\n }: {\n includePremiumBenefits: CostCalculatorEstimationOptions['includePremiumBenefits'];\n options?: {\n jsfModify?: JSFModify;\n };\n },\n) => {\n const { client } = useClient();\n\n return useQuery({\n queryKey: ['cost-calculator-region-fields', region, includePremiumBenefits],\n queryFn: () => {\n return getV1CostCalculatorRegionsSlugFields({\n client: client as Client,\n path: { slug: region as string },\n query: {\n include_premium_benefits: includePremiumBenefits,\n },\n });\n },\n enabled: !!region,\n select: ({ data }) => {\n const jsfSchema = data?.data?.schema || {};\n return createHeadlessForm(jsfSchema, undefined, options);\n },\n });\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/flows/CostCalculator/api.ts"],"sourcesContent":["import { createHeadlessForm } from '@/src/common/createHeadlessForm';\nimport {\n CostCalculatorEstimateParams,\n getV1CompanyCurrencies,\n getV1CostCalculatorCountries,\n getV1CostCalculatorRegionsSlugFields,\n postV1CostCalculatorEstimation,\n postV1CostCalculatorEstimationCsv,\n postV1CostCalculatorEstimationPdf,\n} from '@/src/client';\nimport { Client } from '@/src/client/client';\nimport { useClient } from '@/src/context';\nimport { useMutation, useQuery } from '@tanstack/react-query';\nimport { CostCalculatorEstimationOptions } from '@/src/flows/CostCalculator/types';\nimport { JSFModify } from '@/src/flows/types';\n\n/**\n * Hook to fetch the countries for the cost calculator.\n * @returns\n */\nexport const useCostCalculatorCountries = ({\n includePremiumBenefits,\n}: {\n includePremiumBenefits: CostCalculatorEstimationOptions['includePremiumBenefits'];\n}) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['cost-calculator-countries', includePremiumBenefits],\n queryFn: () => {\n return getV1CostCalculatorCountries({\n client: client as Client,\n query: {\n include_premium_benefits: includePremiumBenefits,\n },\n });\n },\n select: (data) =>\n data.data?.data\n .filter((country) => country.availability === 'active')\n .map((country) => ({\n value: country.region_slug,\n label: country.name,\n childRegions: country.child_regions,\n hasAdditionalFields: country.has_additional_fields,\n regionSlug: country.region_slug,\n currency: country.currency.code,\n })),\n });\n};\n\n/**\n * Hook to fetch the company currencies.\n * @returns\n */\nexport const useCompanyCurrencies = () => {\n const { client } = useClient();\n\n return useQuery({\n queryKey: ['company-currencies'],\n queryFn: () => {\n return getV1CompanyCurrencies({\n client: client as Client,\n });\n },\n select: (data) =>\n data.data?.data?.company_currencies.map((currency) => ({\n value: currency.slug,\n label: currency.code,\n })),\n });\n};\n\n/**\n * Hook to create an estimation.\n * @returns\n */\nexport const useCostCalculatorEstimation = () => {\n const { client } = useClient();\n\n return useMutation({\n mutationFn: (payload: CostCalculatorEstimateParams) => {\n return postV1CostCalculatorEstimation({\n client: client as Client,\n body: payload,\n });\n },\n });\n};\n\n/**\n * Custom hook to create a PDF estimation.\n *\n * @returns\n */\nexport const useCostCalculatorEstimationPdf = () => {\n const { client } = useClient();\n\n return useMutation({\n mutationFn: (payload: CostCalculatorEstimateParams) => {\n return postV1CostCalculatorEstimationPdf({\n client: client as Client,\n body: payload,\n });\n },\n });\n};\n\n/**\n * Custom hook to create a CSV estimation.\n *\n * @returns\n */\nexport const useCostCalculatorEstimationCsv = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: (payload: CostCalculatorEstimateParams) => {\n return postV1CostCalculatorEstimationCsv({\n client: client as Client,\n body: payload,\n });\n },\n });\n};\n\n/**\n * Hook to fetch the region fields.\n * @param region\n * @returns\n */\nexport const useRegionFields = (\n region: string | undefined,\n {\n includePremiumBenefits,\n options,\n }: {\n includePremiumBenefits: CostCalculatorEstimationOptions['includePremiumBenefits'];\n options?: {\n jsfModify?: JSFModify;\n };\n },\n) => {\n const { client } = useClient();\n\n return useQuery({\n queryKey: ['cost-calculator-region-fields', region, includePremiumBenefits],\n queryFn: () => {\n return getV1CostCalculatorRegionsSlugFields({\n client: client as Client,\n path: { slug: region as string },\n query: {\n include_premium_benefits: includePremiumBenefits,\n },\n });\n },\n enabled: !!region,\n select: ({ data }) => {\n const jsfSchema = data?.data?.schema || {};\n return createHeadlessForm(jsfSchema, undefined, options);\n },\n });\n};\n"],"mappings":"oMAYA,OAAS,eAAAA,EAAa,YAAAC,MAAgB,wBAQ/B,IAAMC,EAA6BC,EAAA,CAAC,CACzC,uBAAAC,CACF,IAEM,CACJ,GAAM,CAAE,OAAAC,CAAO,EAAIC,EAAU,EAC7B,OAAOC,EAAS,CACd,SAAU,CAAC,4BAA6BH,CAAsB,EAC9D,QAASD,EAAA,IACAK,EAA6B,CAClC,OAAQH,EACR,MAAO,CACL,yBAA0BD,CAC5B,CACF,CAAC,EANM,WAQT,OAAQD,EAACM,GACPA,EAAK,MAAM,KACR,OAAQC,GAAYA,EAAQ,eAAiB,QAAQ,EACrD,IAAKA,IAAa,CACjB,MAAOA,EAAQ,YACf,MAAOA,EAAQ,KACf,aAAcA,EAAQ,cACtB,oBAAqBA,EAAQ,sBAC7B,WAAYA,EAAQ,YACpB,SAAUA,EAAQ,SAAS,IAC7B,EAAE,EAVE,SAWV,CAAC,CACH,EA5B0C,8BAkC7BC,EAAuBR,EAAA,IAAM,CACxC,GAAM,CAAE,OAAAE,CAAO,EAAIC,EAAU,EAE7B,OAAOC,EAAS,CACd,SAAU,CAAC,oBAAoB,EAC/B,QAASJ,EAAA,IACAS,EAAuB,CAC5B,OAAQP,CACV,CAAC,EAHM,WAKT,OAAQF,EAACM,GACPA,EAAK,MAAM,MAAM,mBAAmB,IAAKI,IAAc,CACrD,MAAOA,EAAS,KAChB,MAAOA,EAAS,IAClB,EAAE,EAJI,SAKV,CAAC,CACH,EAhBoC,wBAsBvBC,EAA8BX,EAAA,IAAM,CAC/C,GAAM,CAAE,OAAAE,CAAO,EAAIC,EAAU,EAE7B,OAAOS,EAAY,CACjB,WAAYZ,EAACa,GACJC,EAA+B,CACpC,OAAQZ,EACR,KAAMW,CACR,CAAC,EAJS,aAMd,CAAC,CACH,EAX2C,+BAkB9BE,EAAiCf,EAAA,IAAM,CAClD,GAAM,CAAE,OAAAE,CAAO,EAAIC,EAAU,EAE7B,OAAOS,EAAY,CACjB,WAAYZ,EAACa,GACJG,EAAkC,CACvC,OAAQd,EACR,KAAMW,CACR,CAAC,EAJS,aAMd,CAAC,CACH,EAX8C,kCAkBjCI,EAAiCjB,EAAA,IAAM,CAClD,GAAM,CAAE,OAAAE,CAAO,EAAIC,EAAU,EAC7B,OAAOS,EAAY,CACjB,WAAYZ,EAACa,GACJK,EAAkC,CACvC,OAAQhB,EACR,KAAMW,CACR,CAAC,EAJS,aAMd,CAAC,CACH,EAV8C,kCAiBjCM,EAAkBnB,EAAA,CAC7BoB,EACA,CACE,uBAAAnB,EACA,QAAAoB,CACF,IAMG,CACH,GAAM,CAAE,OAAAnB,CAAO,EAAIC,EAAU,EAE7B,OAAOC,EAAS,CACd,SAAU,CAAC,gCAAiCgB,EAAQnB,CAAsB,EAC1E,QAASD,EAAA,IACAsB,EAAqC,CAC1C,OAAQpB,EACR,KAAM,CAAE,KAAMkB,CAAiB,EAC/B,MAAO,CACL,yBAA0BnB,CAC5B,CACF,CAAC,EAPM,WAST,QAAS,CAAC,CAACmB,EACX,OAAQpB,EAAA,CAAC,CAAE,KAAAM,CAAK,IAAM,CACpB,IAAMiB,EAAYjB,GAAM,MAAM,QAAU,CAAC,EACzC,OAAOkB,EAAmBD,EAAW,OAAWF,CAAO,CACzD,EAHQ,SAIV,CAAC,CACH,EA/B+B","names":["useMutation","useQuery","useCostCalculatorCountries","__name","includePremiumBenefits","client","useClient","useQuery","getV1CostCalculatorCountries","data","country","useCompanyCurrencies","getV1CompanyCurrencies","currency","useCostCalculatorEstimation","useMutation","payload","postV1CostCalculatorEstimation","useCostCalculatorEstimationPdf","postV1CostCalculatorEstimationPdf","useCostCalculatorEstimationCsv","postV1CostCalculatorEstimationCsv","useRegionFields","region","options","getV1CostCalculatorRegionsSlugFields","jsfSchema","createHeadlessForm"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as D}from"./chunk-SGE4DLC3.js";import{a as i}from"./chunk-P37U34EQ.js";import h from"lodash.groupby";var f=["monday","tuesday","wednesday","thursday","friday","saturday","sunday"];function C(e){let{subtract_breaks_in_work_hours:t,country_name:n,default_start_time:r,default_end_time:u,default_break_duration_minutes:a,default_schedule:l,work_hours_per_week:m,work_days:s=f}=e;return{subtractBreaksFromWorkHours:t,countryName:n,defaultStartTime:r,defaultEndTime:u,defaultBreakDurationMinutes:a,defaultSchedule:l,workHoursPerWeekConfig:m,availableWorkDays:s}}i(C,"getDefaultsFromSchema");var p="core_business_hours",k="full_time",b="part_time";function U(e,{scheduleType:t,workSchedule:n}){let r=t===p?1:void 0;return n===k?{minimum:r??e.full_time.minimum,maximum:e.full_time.maximum}:n===b?{minimum:r??e.part_time.minimum,maximum:e.part_time.maximum}:{minimum:r??e.baseline.minimum,maximum:e.baseline.maximum}}i(U,"getWorkHoursBounds");var c=60;function _(e){let[t,n]=e.split(":").map(r=>parseInt(r,10));return t*c+n}i(_,"convertTimeStringToMinutes");function x(e){let t=e/c,n=t.toString().split(".")[1];return!n||n.length<=2?t:Math.floor(t*100)/100}i(x,"convertMinutesToHours");function W(e,t,n){if(!e||!t)return 0;let r=_(e),a=_(t)-r-(n||0);return a<0?0:x(a)}i(W,"calculateWorkingHours");function L(e,t){let n=t.indexOf(e),r=null;for(;n<t.length&&!r;){let u=t[n],a=t[n+1];if(a===void 0){r=u;break}f[f.indexOf(u)+1]!==a&&(r=u),n+=1}return r}i(L,"findLastConsecutiveDay");function g(e){return e.replace(":","h")}i(g,"formatTimeLabel");function y(e){return e.charAt(0).toUpperCase()+e.slice(1)}i(y,"capitalizeDay");function H(e){return e.flatMap((t,n)=>{let r={text:y(t),bold:!0};return n===0?[r]:[{text:n===e.length-1?" and ":", "},r]})}i(H,"boldDayListSegments");function T(e,t){let[n,r]=e.split("|"),u=t.map(S=>S.day),a=u[0],l=L(a,u),m=l!==null&&u.indexOf(l)===u.length-1,s=[{text:"from "},{text:g(n),bold:!0},{text:" to "},{text:g(r),bold:!0}];return u.length===1?{key:e,segments:[{text:y(a),bold:!0},{text:", "},...s]}:m?{key:e,segments:[{text:y(a),bold:!0},{text:" to "},{text:y(l),bold:!0},{text:", "},...s]}:{key:e,segments:[...H(u),{text:", "},...s]}}i(T,"buildWorkHoursLine");function E(e){let t=e.map(y);return t.length===1?t[0]:t.length===2?`${t[0]} and ${t[1]}`:`${t.slice(0,-1).join(", ")} and ${t[t.length-1]}`}i(E,"formatDayListText");function $(e){if(e<c)return`${e}m`;let t=Math.floor(e/c),n=e%c;return n>0?`${t}h${n}m`:`${t}h`}i($,"formatBreakDurationLabel");function I(e,t,n){let r=$(Number(e));if(n)return{key:e,segments:[{text:"With "},{text:`${r} daily breaks`,bold:!0}]};let u=E(t.map(a=>a.day));return{key:e,segments:[{text:"With "},{text:r,bold:!0},{text:` break on ${u}.`}]}}i(I,"buildBreakLine");function v(e,t){let n=[...e].sort((o,d)=>f.indexOf(o.day)-f.indexOf(d.day)),r=n.reduce((o,d)=>o+W(d.start_time,d.end_time,t?d.break_duration_minutes:0),0),u=h(n,o=>`${o.start_time}|${o.end_time}`),a=Object.entries(u).map(([o,d])=>T(o,d)),l=n.filter(o=>o.break_duration_minutes>0),m=h(l,o=>String(o.break_duration_minutes)),s=[...new Set(l.map(o=>String(o.break_duration_minutes)))],S=s.map(o=>I(o,m[o],s.length===1));return{workHoursLines:a,breakLines:S,totalWeeklyHours:r}}i(v,"buildDailyScheduleSummary");function B({value:e,defaultSchedule:t}){return e!==void 0?e:{selected_days:t.map(n=>n.day),schedule:t.reduce((n,r)=>({...n,[r.day]:{start_time:r.start_time,end_time:r.end_time,break_duration_minutes:r.break_duration_minutes}}),{})}}i(B,"resolveDailyScheduleValue");function R(e,t){let{selected_days:n,schedule:r}=B({value:e,defaultSchedule:t});return n.map(a=>{let l=r[a];return{day:a,start_time:l?.start_time??"",end_time:l?.end_time??"",break_duration_minutes:l?.break_duration_minutes??0}})}i(R,"getDailyScheduleSummaryDays");function M(e){return e===k?"a full-time employee":e===b?"a part-time employee":"an employee"}i(M,"workScheduleCopy");function N({totalWeeklyHours:e,workHoursBounds:t,countryName:n,workSchedule:r}){if(e===0)return null;let{minimum:u,maximum:a}=t;if(e>=u&&e<=a)return null;let l=D({number:a,singular:"hour",plural:"hours",followCopyGuidelines:!1}),m=u===a?l:`between ${u} and ${l}`;return{header:"Work hours outside of weekly range",message:`The work week for ${M(r)} in ${n} is ${m}.`}}i(N,"getDailyScheduleHoursError");export{f as a,C as b,U as c,_ as d,x as e,W as f,v as g,R as h,N as i};
|
|
2
|
+
//# sourceMappingURL=chunk-NQSJBVFL.js.map
|