@erpsquad/common 1.11.5 → 1.11.6
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/chunks/{DynamicDependentField-Bug_QweP.esm.js → DynamicDependentField-C0XXmMlG.esm.js} +2 -2
- package/dist/chunks/{DynamicDependentField-Bug_QweP.esm.js.map → DynamicDependentField-C0XXmMlG.esm.js.map} +1 -1
- package/dist/chunks/{DynamicDependentField-GTIwrPfP.js → DynamicDependentField-CQIfDDqc.js} +2 -2
- package/dist/chunks/{DynamicDependentField-GTIwrPfP.js.map → DynamicDependentField-CQIfDDqc.js.map} +1 -1
- package/dist/chunks/{FORMS-QqBksLc2.esm.js → FORMS-B40NtUdz.esm.js} +5 -5
- package/dist/chunks/{FORMS-QqBksLc2.esm.js.map → FORMS-B40NtUdz.esm.js.map} +1 -1
- package/dist/chunks/{FORMS-DITDFHy1.js → FORMS-K5QYZYJc.js} +5 -5
- package/dist/chunks/{FORMS-DITDFHy1.js.map → FORMS-K5QYZYJc.js.map} +1 -1
- package/dist/chunks/{FlexibleReduxExample-CMUylyy1.js → FlexibleReduxExample-WGpR03V0.js} +3 -3
- package/dist/chunks/{FlexibleReduxExample-CMUylyy1.js.map → FlexibleReduxExample-WGpR03V0.js.map} +1 -1
- package/dist/chunks/{FlexibleReduxExample-BweOhhft.esm.js → FlexibleReduxExample-lJRAIjmS.esm.js} +3 -3
- package/dist/chunks/{FlexibleReduxExample-BweOhhft.esm.js.map → FlexibleReduxExample-lJRAIjmS.esm.js.map} +1 -1
- package/dist/chunks/{SectionFlowEditor-COarQdF5.esm.js → SectionFlowEditor-CFfJBYKx.esm.js} +2 -2
- package/dist/chunks/{SectionFlowEditor-COarQdF5.esm.js.map → SectionFlowEditor-CFfJBYKx.esm.js.map} +1 -1
- package/dist/chunks/{SectionFlowEditor--gfRgdM2.js → SectionFlowEditor-sKsZ3oQo.js} +2 -2
- package/dist/chunks/{SectionFlowEditor--gfRgdM2.js.map → SectionFlowEditor-sKsZ3oQo.js.map} +1 -1
- package/dist/chunks/{action-bar-sX54kFo9.esm.js → action-bar-C7Alva4T.esm.js} +3 -3
- package/dist/chunks/{action-bar-sX54kFo9.esm.js.map → action-bar-C7Alva4T.esm.js.map} +1 -1
- package/dist/chunks/{action-bar-CGP-GLkt.js → action-bar-DdtpxWNk.js} +3 -3
- package/dist/chunks/{action-bar-CGP-GLkt.js.map → action-bar-DdtpxWNk.js.map} +1 -1
- package/dist/chunks/{add-template-xyPHm3zV.esm.js → add-template-DVvbD9a4.esm.js} +2 -2
- package/dist/chunks/{add-template-xyPHm3zV.esm.js.map → add-template-DVvbD9a4.esm.js.map} +1 -1
- package/dist/chunks/{add-template-vpXcccHo.js → add-template-Dohg2bHJ.js} +2 -2
- package/dist/chunks/{add-template-vpXcccHo.js.map → add-template-Dohg2bHJ.js.map} +1 -1
- package/dist/chunks/{address-modal-DFd5sQtR.js → address-modal-CYhiC7ui.js} +2 -2
- package/dist/chunks/{address-modal-DFd5sQtR.js.map → address-modal-CYhiC7ui.js.map} +1 -1
- package/dist/chunks/{address-modal-DRT30GGc.esm.js → address-modal-CkDBjnye.esm.js} +2 -2
- package/dist/chunks/{address-modal-DRT30GGc.esm.js.map → address-modal-CkDBjnye.esm.js.map} +1 -1
- package/dist/chunks/{app-switcher-VhH9z0Rd.js → app-switcher-CyEQmYAN.js} +2 -2
- package/dist/chunks/{app-switcher-VhH9z0Rd.js.map → app-switcher-CyEQmYAN.js.map} +1 -1
- package/dist/chunks/{app-switcher-B6eapuGG.esm.js → app-switcher-D-Bvz9uO.esm.js} +2 -2
- package/dist/chunks/{app-switcher-B6eapuGG.esm.js.map → app-switcher-D-Bvz9uO.esm.js.map} +1 -1
- package/dist/chunks/{appbar-D5moUuMm.esm.js → appbar-BdTp1k68.esm.js} +2 -2
- package/dist/chunks/{appbar-D5moUuMm.esm.js.map → appbar-BdTp1k68.esm.js.map} +1 -1
- package/dist/chunks/{appbar-WvWT7p_M.js → appbar-DyIptRTa.js} +2 -2
- package/dist/chunks/{appbar-WvWT7p_M.js.map → appbar-DyIptRTa.js.map} +1 -1
- package/dist/chunks/{common-PH2uWkqL.js → common-CS5L0Ld_.js} +2 -2
- package/dist/chunks/{common-PH2uWkqL.js.map → common-CS5L0Ld_.js.map} +1 -1
- package/dist/chunks/{common-Cl5oGXmX.esm.js → common-yORBIVv-.esm.js} +2 -2
- package/dist/chunks/{common-Cl5oGXmX.esm.js.map → common-yORBIVv-.esm.js.map} +1 -1
- package/dist/chunks/{constants-D_xuLHSu.js → constants-06kIVUBw.js} +2 -2
- package/dist/chunks/{constants-D_xuLHSu.js.map → constants-06kIVUBw.js.map} +1 -1
- package/dist/chunks/{constants-BrmMAwu2.esm.js → constants-nmkxkzps.esm.js} +2 -2
- package/dist/chunks/{constants-BrmMAwu2.esm.js.map → constants-nmkxkzps.esm.js.map} +1 -1
- package/dist/chunks/{custom-form-T4yc_sE_.js → custom-form-CFU7NEVb.js} +4 -4
- package/dist/chunks/{custom-form-T4yc_sE_.js.map → custom-form-CFU7NEVb.js.map} +1 -1
- package/dist/chunks/{custom-form-B0iJKE-f.esm.js → custom-form-DD7YOHMF.esm.js} +4 -4
- package/dist/chunks/{custom-form-B0iJKE-f.esm.js.map → custom-form-DD7YOHMF.esm.js.map} +1 -1
- package/dist/chunks/{dashboard-u68tvYf2.esm.js → dashboard-B5qcT2Dt.esm.js} +3 -3
- package/dist/chunks/{dashboard-u68tvYf2.esm.js.map → dashboard-B5qcT2Dt.esm.js.map} +1 -1
- package/dist/chunks/{dashboard-Ck4clis4.js → dashboard-Dzts5-X6.js} +3 -3
- package/dist/chunks/{dashboard-Ck4clis4.js.map → dashboard-Dzts5-X6.js.map} +1 -1
- package/dist/chunks/{filter-BxLWUhFQ.esm.js → filter-COXKBEER.esm.js} +3 -3
- package/dist/chunks/{filter-BxLWUhFQ.esm.js.map → filter-COXKBEER.esm.js.map} +1 -1
- package/dist/chunks/{filter-DQNAPq4l.js → filter-Cr_OSIpb.js} +3 -3
- package/dist/chunks/{filter-DQNAPq4l.js.map → filter-Cr_OSIpb.js.map} +1 -1
- package/dist/chunks/{footer-DioOh69g.js → footer-CD3kMRdS.js} +2 -2
- package/dist/chunks/{footer-DioOh69g.js.map → footer-CD3kMRdS.js.map} +1 -1
- package/dist/chunks/{footer-BXClGYIb.esm.js → footer-m3_dlNl8.esm.js} +2 -2
- package/dist/chunks/{footer-BXClGYIb.esm.js.map → footer-m3_dlNl8.esm.js.map} +1 -1
- package/dist/chunks/{form-fields-DKFiyLCi.esm.js → form-fields-hMMnB_wE.esm.js} +2 -2
- package/dist/chunks/{form-fields-DKFiyLCi.esm.js.map → form-fields-hMMnB_wE.esm.js.map} +1 -1
- package/dist/chunks/{form-fields-BYDhbAgB.js → form-fields-yE9kwjvb.js} +2 -2
- package/dist/chunks/{form-fields-BYDhbAgB.js.map → form-fields-yE9kwjvb.js.map} +1 -1
- package/dist/chunks/{form-parser-C95b2on7.esm.js → form-parser-DbnSn5eY.esm.js} +2 -2
- package/dist/chunks/{form-parser-C95b2on7.esm.js.map → form-parser-DbnSn5eY.esm.js.map} +1 -1
- package/dist/chunks/{form-parser-BnMdMDSb.js → form-parser-m4fnw38a.js} +2 -2
- package/dist/chunks/{form-parser-BnMdMDSb.js.map → form-parser-m4fnw38a.js.map} +1 -1
- package/dist/chunks/{form-section-CFeWD-tF.js → form-section-CPIyMdk2.js} +5 -5
- package/dist/chunks/{form-section-CFeWD-tF.js.map → form-section-CPIyMdk2.js.map} +1 -1
- package/dist/chunks/{form-section-Bx_D21gW.esm.js → form-section-TMjdOVeW.esm.js} +5 -5
- package/dist/chunks/{form-section-Bx_D21gW.esm.js.map → form-section-TMjdOVeW.esm.js.map} +1 -1
- package/dist/chunks/{fullScreen-q9u5VL-5.js → fullScreen-B5iqC1y0.js} +2 -2
- package/dist/chunks/{fullScreen-q9u5VL-5.js.map → fullScreen-B5iqC1y0.js.map} +1 -1
- package/dist/chunks/{fullScreen-DTQ6tqij.esm.js → fullScreen-D-isf0wv.esm.js} +2 -2
- package/dist/chunks/{fullScreen-DTQ6tqij.esm.js.map → fullScreen-D-isf0wv.esm.js.map} +1 -1
- package/dist/chunks/{global-search-DCsutWXD.esm.js → global-search-BOkxXiZ0.esm.js} +2 -2
- package/dist/chunks/{global-search-DCsutWXD.esm.js.map → global-search-BOkxXiZ0.esm.js.map} +1 -1
- package/dist/chunks/{global-search-BTV5iL6-.js → global-search-BjKPmzsQ.js} +2 -2
- package/dist/chunks/{global-search-BTV5iL6-.js.map → global-search-BjKPmzsQ.js.map} +1 -1
- package/dist/chunks/{header-CqTEaHw3.js → header-DQ_e75rt.js} +6 -6
- package/dist/chunks/{header-CqTEaHw3.js.map → header-DQ_e75rt.js.map} +1 -1
- package/dist/chunks/{header-I2izTvvZ.esm.js → header-D_pPOjdz.esm.js} +6 -6
- package/dist/chunks/{header-I2izTvvZ.esm.js.map → header-D_pPOjdz.esm.js.map} +1 -1
- package/dist/chunks/{header-enhanced-Dxdetx0I.js → header-enhanced-DCDMljaN.js} +3 -3
- package/dist/chunks/{header-enhanced-Dxdetx0I.js.map → header-enhanced-DCDMljaN.js.map} +1 -1
- package/dist/chunks/{header-enhanced-D31BpL2H.esm.js → header-enhanced-OiKzLG4i.esm.js} +3 -3
- package/dist/chunks/{header-enhanced-D31BpL2H.esm.js.map → header-enhanced-OiKzLG4i.esm.js.map} +1 -1
- package/dist/chunks/{inline-edit-fields-CjqUhdIv.esm.js → inline-edit-fields-BYhRpPcH.esm.js} +2 -2
- package/dist/chunks/{inline-edit-fields-CjqUhdIv.esm.js.map → inline-edit-fields-BYhRpPcH.esm.js.map} +1 -1
- package/dist/chunks/{inline-edit-fields-Cd_qUOjU.js → inline-edit-fields-atDP84QL.js} +2 -2
- package/dist/chunks/{inline-edit-fields-Cd_qUOjU.js.map → inline-edit-fields-atDP84QL.js.map} +1 -1
- package/dist/chunks/{inventory-reports-title-bar-BfUMM54c.js → inventory-reports-title-bar-Bog2i0dr.js} +2 -2
- package/dist/chunks/{inventory-reports-title-bar-BfUMM54c.js.map → inventory-reports-title-bar-Bog2i0dr.js.map} +1 -1
- package/dist/chunks/{inventory-reports-title-bar-DPS3r5V2.esm.js → inventory-reports-title-bar-CP8FzW6A.esm.js} +2 -2
- package/dist/chunks/{inventory-reports-title-bar-DPS3r5V2.esm.js.map → inventory-reports-title-bar-CP8FzW6A.esm.js.map} +1 -1
- package/dist/chunks/{item-response-details-BheThTTK.js → item-response-details-DsGQ7Dlc.js} +2 -2
- package/dist/chunks/{item-response-details-BheThTTK.js.map → item-response-details-DsGQ7Dlc.js.map} +1 -1
- package/dist/chunks/{item-response-details-BtCmz7XT.esm.js → item-response-details-SHSD-nBh.esm.js} +2 -2
- package/dist/chunks/{item-response-details-BtCmz7XT.esm.js.map → item-response-details-SHSD-nBh.esm.js.map} +1 -1
- package/dist/chunks/{listing-Ck-RqIjL.esm.js → listing-C0Yb6MVq.esm.js} +4 -4
- package/dist/chunks/{listing-Ck-RqIjL.esm.js.map → listing-C0Yb6MVq.esm.js.map} +1 -1
- package/dist/chunks/{listing-BDN5cLvI.js → listing-DIuzQrzb.js} +4 -4
- package/dist/chunks/{listing-BDN5cLvI.js.map → listing-DIuzQrzb.js.map} +1 -1
- package/dist/chunks/{location-select-jwR8SCYN.esm.js → location-select-CFa00fy4.esm.js} +2 -2
- package/dist/chunks/{location-select-jwR8SCYN.esm.js.map → location-select-CFa00fy4.esm.js.map} +1 -1
- package/dist/chunks/{location-select-CLyRUilk.js → location-select-g5uczAUF.js} +2 -2
- package/dist/chunks/{location-select-CLyRUilk.js.map → location-select-g5uczAUF.js.map} +1 -1
- package/dist/chunks/{material-editable-table-DFGB0q-s.js → material-editable-table-BGLjrTzT.js} +3 -3
- package/dist/chunks/{material-editable-table-DFGB0q-s.js.map → material-editable-table-BGLjrTzT.js.map} +1 -1
- package/dist/chunks/{material-editable-table-qC9FTg-4.esm.js → material-editable-table-pAyK7KYf.esm.js} +3 -3
- package/dist/chunks/{material-editable-table-qC9FTg-4.esm.js.map → material-editable-table-pAyK7KYf.esm.js.map} +1 -1
- package/dist/chunks/{modules-DTRr7zwt.js → modules-BZNWOWrz.js} +2 -2
- package/dist/chunks/{modules-DTRr7zwt.js.map → modules-BZNWOWrz.js.map} +1 -1
- package/dist/chunks/{modules-enwLrpfQ.esm.js → modules-CWV4WSHs.esm.js} +2 -2
- package/dist/chunks/{modules-enwLrpfQ.esm.js.map → modules-CWV4WSHs.esm.js.map} +1 -1
- package/dist/chunks/{notification-menu-B00hDUbn.js → notification-menu-D7ASm-K1.js} +2 -2
- package/dist/chunks/{notification-menu-B00hDUbn.js.map → notification-menu-D7ASm-K1.js.map} +1 -1
- package/dist/chunks/{notification-menu-B_4BOTgX.esm.js → notification-menu-XAadkn-e.esm.js} +2 -2
- package/dist/chunks/{notification-menu-B_4BOTgX.esm.js.map → notification-menu-XAadkn-e.esm.js.map} +1 -1
- package/dist/chunks/{page-action-TMFOytDw.js → page-action-BPzaL2KJ.js} +2 -2
- package/dist/chunks/{page-action-TMFOytDw.js.map → page-action-BPzaL2KJ.js.map} +1 -1
- package/dist/chunks/{page-action-0S_h4623.esm.js → page-action-C07iGjvN.esm.js} +2 -2
- package/dist/chunks/{page-action-0S_h4623.esm.js.map → page-action-C07iGjvN.esm.js.map} +1 -1
- package/dist/chunks/{page-navigator-B17f-mUz.esm.js → page-navigator-8gZpp9_P.esm.js} +2 -2
- package/dist/chunks/{page-navigator-B17f-mUz.esm.js.map → page-navigator-8gZpp9_P.esm.js.map} +1 -1
- package/dist/chunks/{page-navigator-DdRsmtLy.js → page-navigator-Cgbh3tTG.js} +2 -2
- package/dist/chunks/{page-navigator-DdRsmtLy.js.map → page-navigator-Cgbh3tTG.js.map} +1 -1
- package/dist/chunks/{page-view-CnzxewUy.esm.js → page-view-CokUNMBn.esm.js} +3 -3
- package/dist/chunks/{page-view-CnzxewUy.esm.js.map → page-view-CokUNMBn.esm.js.map} +1 -1
- package/dist/chunks/{page-view-CvfqzV03.js → page-view-DJ6HS_dV.js} +3 -3
- package/dist/chunks/{page-view-CvfqzV03.js.map → page-view-DJ6HS_dV.js.map} +1 -1
- package/dist/chunks/{pathname.rental-CwK6JuID.js → pathname.rental-DgH4LoG7.js} +7 -2
- package/dist/chunks/{pathname.rental-CwK6JuID.js.map → pathname.rental-DgH4LoG7.js.map} +1 -1
- package/dist/chunks/{pathname.rental-CqHO_l_D.esm.js → pathname.rental-qsAe3XFd.esm.js} +81 -76
- package/dist/chunks/{pathname.rental-CqHO_l_D.esm.js.map → pathname.rental-qsAe3XFd.esm.js.map} +1 -1
- package/dist/chunks/{reports-title-bar-CqVqKrPd.esm.js → reports-title-bar-Cay4E8SQ.esm.js} +2 -2
- package/dist/chunks/{reports-title-bar-CqVqKrPd.esm.js.map → reports-title-bar-Cay4E8SQ.esm.js.map} +1 -1
- package/dist/chunks/{reports-title-bar-B1_IweEc.js → reports-title-bar-Kz6JjqsY.js} +2 -2
- package/dist/chunks/{reports-title-bar-B1_IweEc.js.map → reports-title-bar-Kz6JjqsY.js.map} +1 -1
- package/dist/chunks/{route-page-map-CSg28AvB.esm.js → route-page-map-DkWoisiB.esm.js} +132 -75
- package/dist/chunks/{route-page-map-CSg28AvB.esm.js.map → route-page-map-DkWoisiB.esm.js.map} +1 -1
- package/dist/chunks/{route-page-map-__F1KHUj.js → route-page-map-Dn-SAbdf.js} +59 -2
- package/dist/chunks/{route-page-map-__F1KHUj.js.map → route-page-map-Dn-SAbdf.js.map} +1 -1
- package/dist/chunks/{routes-DauYjaxu.esm.js → routes-Be8qxaVS.esm.js} +3 -3
- package/dist/chunks/{routes-DauYjaxu.esm.js.map → routes-Be8qxaVS.esm.js.map} +1 -1
- package/dist/chunks/{routes-Bs7dqd7j.js → routes-Bi8lChPT.js} +3 -3
- package/dist/chunks/{routes-Bs7dqd7j.js.map → routes-Bi8lChPT.js.map} +1 -1
- package/dist/chunks/{schedule-report-BwmZ5jea.js → schedule-report-B4ZfEuiU.js} +4 -4
- package/dist/chunks/{schedule-report-BwmZ5jea.js.map → schedule-report-B4ZfEuiU.js.map} +1 -1
- package/dist/chunks/{schedule-report-D2oYKVGN.esm.js → schedule-report-CLXjjfjc.esm.js} +4 -4
- package/dist/chunks/{schedule-report-D2oYKVGN.esm.js.map → schedule-report-CLXjjfjc.esm.js.map} +1 -1
- package/dist/chunks/{schedule-report-modal-maDNFV-h.esm.js → schedule-report-modal-CB3G9H7x.esm.js} +2 -2
- package/dist/chunks/{schedule-report-modal-maDNFV-h.esm.js.map → schedule-report-modal-CB3G9H7x.esm.js.map} +1 -1
- package/dist/chunks/{schedule-report-modal-iNnWP9s4.js → schedule-report-modal-iwoDI-sg.js} +2 -2
- package/dist/chunks/{schedule-report-modal-iNnWP9s4.js.map → schedule-report-modal-iwoDI-sg.js.map} +1 -1
- package/dist/chunks/{searchable-select-CcG1qflA.esm.js → searchable-select-0F6E4XAr.esm.js} +2 -2
- package/dist/chunks/{searchable-select-CcG1qflA.esm.js.map → searchable-select-0F6E4XAr.esm.js.map} +1 -1
- package/dist/chunks/{searchable-select-DVUCWWti.js → searchable-select-_DCkITfk.js} +2 -2
- package/dist/chunks/{searchable-select-DVUCWWti.js.map → searchable-select-_DCkITfk.js.map} +1 -1
- package/dist/chunks/{share-modal-CQYd5GU0.esm.js → share-modal-BaEyZs2h.esm.js} +2 -2
- package/dist/chunks/{share-modal-CQYd5GU0.esm.js.map → share-modal-BaEyZs2h.esm.js.map} +1 -1
- package/dist/chunks/{share-modal-CobK7BN7.js → share-modal-DrXvh-fV.js} +2 -2
- package/dist/chunks/{share-modal-CobK7BN7.js.map → share-modal-DrXvh-fV.js.map} +1 -1
- package/dist/chunks/{share-modal-enhanced-DVarD-jt.js → share-modal-enhanced-BTr0zRhF.js} +2 -2
- package/dist/chunks/{share-modal-enhanced-DVarD-jt.js.map → share-modal-enhanced-BTr0zRhF.js.map} +1 -1
- package/dist/chunks/{share-modal-enhanced-04WjO7Ej.esm.js → share-modal-enhanced-DnEdDBmu.esm.js} +2 -2
- package/dist/chunks/{share-modal-enhanced-04WjO7Ej.esm.js.map → share-modal-enhanced-DnEdDBmu.esm.js.map} +1 -1
- package/dist/chunks/{sidebarScreen-BvaFDSr8.js → sidebarScreen-3iZYCAMn.js} +2 -2
- package/dist/chunks/{sidebarScreen-BvaFDSr8.js.map → sidebarScreen-3iZYCAMn.js.map} +1 -1
- package/dist/chunks/{sidebarScreen-CLsGgJpX.esm.js → sidebarScreen-CYUn8OsB.esm.js} +2 -2
- package/dist/chunks/{sidebarScreen-CLsGgJpX.esm.js.map → sidebarScreen-CYUn8OsB.esm.js.map} +1 -1
- package/dist/chunks/{table-Bpt6ggr3.js → table-DWx7x8zw.js} +2 -2
- package/dist/chunks/{table-Bpt6ggr3.js.map → table-DWx7x8zw.js.map} +1 -1
- package/dist/chunks/{table-DgCWox6A.esm.js → table-gxAlAeTq.esm.js} +2 -2
- package/dist/chunks/{table-DgCWox6A.esm.js.map → table-gxAlAeTq.esm.js.map} +1 -1
- package/dist/chunks/{template-editor-router-Dq3Hsw99.js → template-editor-router-BRxF8Dj_.js} +2 -2
- package/dist/chunks/{template-editor-router-Dq3Hsw99.js.map → template-editor-router-BRxF8Dj_.js.map} +1 -1
- package/dist/chunks/{template-editor-router-DAGjgCfA.esm.js → template-editor-router-BV5FrwJm.esm.js} +2 -2
- package/dist/chunks/{template-editor-router-DAGjgCfA.esm.js.map → template-editor-router-BV5FrwJm.esm.js.map} +1 -1
- package/dist/chunks/{templates-BkVjG5c0.js → templates-BY9HF32G.js} +4 -4
- package/dist/chunks/{templates-BkVjG5c0.js.map → templates-BY9HF32G.js.map} +1 -1
- package/dist/chunks/{templates-DrKOJkmh.esm.js → templates-DxvU4PQY.esm.js} +4 -4
- package/dist/chunks/{templates-DrKOJkmh.esm.js.map → templates-DxvU4PQY.esm.js.map} +1 -1
- package/dist/chunks/{uom-field-wrapper-DyhwLo9Q.esm.js → uom-field-wrapper-CTbEc-MB.esm.js} +2 -2
- package/dist/chunks/{uom-field-wrapper-DyhwLo9Q.esm.js.map → uom-field-wrapper-CTbEc-MB.esm.js.map} +1 -1
- package/dist/chunks/{uom-field-wrapper-CSqeiVPY.js → uom-field-wrapper-DXZgzOYB.js} +2 -2
- package/dist/chunks/{uom-field-wrapper-CSqeiVPY.js.map → uom-field-wrapper-DXZgzOYB.js.map} +1 -1
- package/dist/chunks/{use-translations-RGIbWjPM.esm.js → use-translations-BzykVZOP.esm.js} +2 -2
- package/dist/chunks/{use-translations-RGIbWjPM.esm.js.map → use-translations-BzykVZOP.esm.js.map} +1 -1
- package/dist/chunks/{use-translations-Cn3b4Kqh.js → use-translations-CNI_xsIo.js} +2 -2
- package/dist/chunks/{use-translations-Cn3b4Kqh.js.map → use-translations-CNI_xsIo.js.map} +1 -1
- package/dist/chunks/{value-editor-Br7X_wEB.js → value-editor-BSS9Ns2T.js} +2 -2
- package/dist/chunks/{value-editor-Br7X_wEB.js.map → value-editor-BSS9Ns2T.js.map} +1 -1
- package/dist/chunks/{value-editor-DkDNIrZ4.esm.js → value-editor-DQ1qgZ2u.esm.js} +2 -2
- package/dist/chunks/{value-editor-DkDNIrZ4.esm.js.map → value-editor-DQ1qgZ2u.esm.js.map} +1 -1
- package/dist/chunks/{vendor-ai-summary-C33oHYPA.esm.js → vendor-ai-summary-BA6m2dH9.esm.js} +2 -2
- package/dist/chunks/{vendor-ai-summary-C33oHYPA.esm.js.map → vendor-ai-summary-BA6m2dH9.esm.js.map} +1 -1
- package/dist/chunks/{vendor-ai-summary-zranZkfk.js → vendor-ai-summary-DWmAaQ_N.js} +2 -2
- package/dist/chunks/{vendor-ai-summary-zranZkfk.js.map → vendor-ai-summary-DWmAaQ_N.js.map} +1 -1
- package/dist/components/action-bar/action-bar/index.esm.js +1 -1
- package/dist/components/action-bar/action-bar/index.js +1 -1
- package/dist/components/action-bar/index.esm.js +1 -1
- package/dist/components/action-bar/index.js +1 -1
- package/dist/components/address-modal/index.esm.js +1 -1
- package/dist/components/address-modal/index.js +1 -1
- package/dist/components/appbar/appbar/index.esm.js +1 -1
- package/dist/components/appbar/appbar/index.js +1 -1
- package/dist/components/appbar/index.esm.js +1 -1
- package/dist/components/appbar/index.js +1 -1
- package/dist/components/custom-forms/FORMS/index.esm.js +1 -1
- package/dist/components/custom-forms/FORMS/index.js +1 -1
- package/dist/components/custom-forms/index.esm.js +1 -1
- package/dist/components/custom-forms/index.js +1 -1
- package/dist/components/department-add-modal/index.esm.js +1 -1
- package/dist/components/department-add-modal/index.js +1 -1
- package/dist/components/designation-add-modal/index.esm.js +1 -1
- package/dist/components/designation-add-modal/index.js +1 -1
- package/dist/components/examples/FlexibleReduxExample/index.esm.js +1 -1
- package/dist/components/examples/FlexibleReduxExample/index.js +1 -1
- package/dist/components/examples/index.esm.js +1 -1
- package/dist/components/examples/index.js +1 -1
- package/dist/components/filter/components/index.esm.js +1 -1
- package/dist/components/filter/components/index.js +1 -1
- package/dist/components/filter/components/value-editor/index.esm.js +1 -1
- package/dist/components/filter/components/value-editor/index.js +1 -1
- package/dist/components/filter/filter/index.esm.js +1 -1
- package/dist/components/filter/filter/index.js +1 -1
- package/dist/components/filter/index.esm.js +2 -2
- package/dist/components/filter/index.js +2 -2
- package/dist/components/footer/footer/index.esm.js +1 -1
- package/dist/components/footer/footer/index.js +1 -1
- package/dist/components/footer/index.esm.js +1 -1
- package/dist/components/footer/index.js +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/dynamic-dependent-field/index.esm.js +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/dynamic-dependent-field/index.js +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/dynamic-select/index.esm.js +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/dynamic-select/index.js +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/fixed-asset-item-add-modal/index.esm.js +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/fixed-asset-item-add-modal/index.js +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/index.esm.js +3 -3
- package/dist/components/form-control/form-builder/form-builder-element/index.js +3 -3
- package/dist/components/form-control/form-builder/form-builder-element/location-add-modal/index.esm.js +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/location-add-modal/index.js +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/select-configuration/index.esm.js +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/select-configuration/index.js +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/table/index.esm.js +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/table/index.js +1 -1
- package/dist/components/form-control/form-builder/index.esm.js +3 -3
- package/dist/components/form-control/form-builder/index.js +3 -3
- package/dist/components/form-control/form-parser/form-parser/index.esm.js +1 -1
- package/dist/components/form-control/form-parser/form-parser/index.js +1 -1
- package/dist/components/form-control/form-parser/form-section/index.esm.js +1 -1
- package/dist/components/form-control/form-parser/form-section/index.js +1 -1
- package/dist/components/form-control/form-parser/index.esm.js +2 -2
- package/dist/components/form-control/form-parser/index.js +2 -2
- package/dist/components/form-control/index.esm.js +5 -5
- package/dist/components/form-control/index.js +5 -5
- package/dist/components/header/components/app-switcher/index.esm.js +1 -1
- package/dist/components/header/components/app-switcher/index.js +1 -1
- package/dist/components/header/components/global-search/index.esm.js +1 -1
- package/dist/components/header/components/global-search/index.js +1 -1
- package/dist/components/header/components/index.esm.js +1 -1
- package/dist/components/header/components/index.js +1 -1
- package/dist/components/header/components/notification-menu/index.esm.js +1 -1
- package/dist/components/header/components/notification-menu/index.js +1 -1
- package/dist/components/header/components/notification-menu/notification-menu/index.esm.js +1 -1
- package/dist/components/header/components/notification-menu/notification-menu/index.js +1 -1
- package/dist/components/header/header/index.esm.js +1 -1
- package/dist/components/header/header/index.js +1 -1
- package/dist/components/header/header-enhanced/index.esm.js +1 -1
- package/dist/components/header/header-enhanced/index.js +1 -1
- package/dist/components/header/index.esm.js +3 -3
- package/dist/components/header/index.js +3 -3
- package/dist/components/index.esm.js +26 -26
- package/dist/components/index.js +26 -26
- package/dist/components/inventory-reports-title-bar/index.esm.js +1 -1
- package/dist/components/inventory-reports-title-bar/index.js +1 -1
- package/dist/components/inventory-reports-title-bar/inventory-reports-title-bar/index.esm.js +1 -1
- package/dist/components/inventory-reports-title-bar/inventory-reports-title-bar/index.js +1 -1
- package/dist/components/listing/index.esm.js +1 -1
- package/dist/components/listing/index.js +1 -1
- package/dist/components/listing/listing/index.esm.js +1 -1
- package/dist/components/listing/listing/index.js +1 -1
- package/dist/components/location-select/index.esm.js +1 -1
- package/dist/components/location-select/index.js +1 -1
- package/dist/components/material-editable-table/components/index.esm.js +1 -1
- package/dist/components/material-editable-table/components/index.js +1 -1
- package/dist/components/material-editable-table/components/inline-edit-fields/index.esm.js +1 -1
- package/dist/components/material-editable-table/components/inline-edit-fields/index.js +1 -1
- package/dist/components/material-editable-table/index.esm.js +2 -2
- package/dist/components/material-editable-table/index.js +2 -2
- package/dist/components/material-editable-table/material-editable-table/index.esm.js +1 -1
- package/dist/components/material-editable-table/material-editable-table/index.js +1 -1
- package/dist/components/material-table/components/index.esm.js +1 -1
- package/dist/components/material-table/components/index.js +1 -1
- package/dist/components/material-table/components/inline-edit-fields/index.esm.js +1 -1
- package/dist/components/material-table/components/inline-edit-fields/index.js +1 -1
- package/dist/components/material-table/index.esm.js +1 -1
- package/dist/components/material-table/index.js +1 -1
- package/dist/components/material-table/material-table/index.esm.js +1 -1
- package/dist/components/material-table/material-table/index.js +1 -1
- package/dist/components/page-navigator/components/index.esm.js +1 -1
- package/dist/components/page-navigator/components/index.js +1 -1
- package/dist/components/page-navigator/components/page-action/index.esm.js +1 -1
- package/dist/components/page-navigator/components/page-action/index.js +1 -1
- package/dist/components/page-navigator/index.esm.js +2 -2
- package/dist/components/page-navigator/index.js +2 -2
- package/dist/components/page-navigator/page-navigator/index.esm.js +1 -1
- package/dist/components/page-navigator/page-navigator/index.js +1 -1
- package/dist/components/parties-modal/index.esm.js +1 -1
- package/dist/components/parties-modal/index.js +1 -1
- package/dist/components/parties-modal/parties-modal/index.esm.js +1 -1
- package/dist/components/parties-modal/parties-modal/index.js +1 -1
- package/dist/components/reports-title-bar/index.esm.js +1 -1
- package/dist/components/reports-title-bar/index.js +1 -1
- package/dist/components/reports-title-bar/reports-title-bar/index.esm.js +1 -1
- package/dist/components/reports-title-bar/reports-title-bar/index.js +1 -1
- package/dist/components/rfq-response/index.esm.js +1 -1
- package/dist/components/rfq-response/index.js +1 -1
- package/dist/components/rfq-response/item-response-details/index.esm.js +1 -1
- package/dist/components/rfq-response/item-response-details/index.js +1 -1
- package/dist/components/schedule-report/index.esm.js +2 -2
- package/dist/components/schedule-report/index.js +2 -2
- package/dist/components/schedule-report/schedule-report/index.esm.js +1 -1
- package/dist/components/schedule-report/schedule-report/index.js +1 -1
- package/dist/components/schedule-report/schedule-report-modal/index.esm.js +1 -1
- package/dist/components/schedule-report/schedule-report-modal/index.js +1 -1
- package/dist/components/searchable-select/index.esm.js +1 -1
- package/dist/components/searchable-select/index.js +1 -1
- package/dist/components/share-modal/index.esm.js +2 -2
- package/dist/components/share-modal/index.js +2 -2
- package/dist/components/share-modal/share-modal/index.esm.js +1 -1
- package/dist/components/share-modal/share-modal/index.js +1 -1
- package/dist/components/share-modal/share-modal-enhanced/index.esm.js +1 -1
- package/dist/components/share-modal/share-modal-enhanced/index.js +1 -1
- package/dist/components/team-add-modal/index.esm.js +1 -1
- package/dist/components/team-add-modal/index.js +1 -1
- package/dist/components/uom-field-wrapper/index.esm.js +1 -1
- package/dist/components/uom-field-wrapper/index.js +1 -1
- package/dist/components/uom-field-wrapper/uom-field-wrapper/index.esm.js +1 -1
- package/dist/components/uom-field-wrapper/uom-field-wrapper/index.js +1 -1
- package/dist/components/vendor-ai-summary/index.esm.js +1 -1
- package/dist/components/vendor-ai-summary/index.js +1 -1
- package/dist/constants/index.esm.js +145 -143
- package/dist/constants/index.js +5 -3
- package/dist/constants/index.js.map +1 -1
- package/dist/hooks/index.esm.js +1 -1
- package/dist/hooks/index.js +1 -1
- package/dist/hooks/use-translations/index.esm.js +1 -1
- package/dist/hooks/use-translations/index.js +1 -1
- package/dist/index.esm.js +182 -180
- package/dist/index.js +43 -41
- package/dist/index.js.map +1 -1
- package/dist/layout/fullScreen/index.esm.js +1 -1
- package/dist/layout/fullScreen/index.js +1 -1
- package/dist/layout/index.esm.js +2 -2
- package/dist/layout/index.js +2 -2
- package/dist/layout/sidebarScreen/index.esm.js +1 -1
- package/dist/layout/sidebarScreen/index.js +1 -1
- package/dist/runtime/index.esm.js +2 -2
- package/dist/runtime/index.js +2 -2
- package/dist/src/constants/defaultColumns.d.ts +1 -0
- package/dist/src/constants/pathnames/pathname.procurement.d.ts +4 -0
- package/dist/utils/export-filters/index.esm.js +1 -0
- package/dist/utils/export-filters/index.esm.js.map +1 -1
- package/dist/utils/export-filters/index.js +1 -0
- package/dist/utils/export-filters/index.js.map +1 -1
- package/dist/views/afterAuth/dashboard/index.esm.js +1 -1
- package/dist/views/afterAuth/dashboard/index.js +1 -1
- package/dist/views/afterAuth/index.esm.js +2 -2
- package/dist/views/afterAuth/index.js +2 -2
- package/dist/views/afterAuth/page-view/index.esm.js +1 -1
- package/dist/views/afterAuth/page-view/index.js +1 -1
- package/dist/views/form-builder/custom-form/index.esm.js +1 -1
- package/dist/views/form-builder/custom-form/index.js +1 -1
- package/dist/views/form-builder/form-fields/index.esm.js +1 -1
- package/dist/views/form-builder/form-fields/index.js +1 -1
- package/dist/views/form-builder/index.esm.js +3 -3
- package/dist/views/form-builder/index.js +3 -3
- package/dist/views/form-builder/utils/index.esm.js +1 -1
- package/dist/views/form-builder/utils/index.js +1 -1
- package/dist/views/index.esm.js +10 -10
- package/dist/views/index.js +10 -10
- package/dist/views/template-editor/add-template/index.esm.js +1 -1
- package/dist/views/template-editor/add-template/index.js +1 -1
- package/dist/views/template-editor/components/index.esm.js +1 -1
- package/dist/views/template-editor/components/index.js +1 -1
- package/dist/views/template-editor/index.esm.js +5 -5
- package/dist/views/template-editor/index.js +5 -5
- package/dist/views/template-editor/routes/index.esm.js +1 -1
- package/dist/views/template-editor/routes/index.js +1 -1
- package/dist/views/template-editor/templates/index.esm.js +1 -1
- package/dist/views/template-editor/templates/index.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"address-modal-DFd5sQtR.js","sources":["../../src/components/address-modal/address-modal.tsx"],"sourcesContent":["import './address-modal.scss';\n\nimport { Close } from '@mui/icons-material';\nimport {\n\tBox,\n\tCircularProgress,\n\tDialogActions,\n\tDialogContent,\n\tDialogTitle,\n\tDialogProps,\n\tFormControlLabel,\n\tGrid,\n\tIconButton,\n\tRadioGroup\n} from '@mui/material';\nimport Modal from '../modal/modal';\nimport Typography from '../typography/typography';\nimport { useEffect, useMemo, useState } from 'react';\nimport { useForm, useWatch } from 'react-hook-form';\nimport Radio from '../radio/radio';\n\nimport Button from '../button/button';\nimport { Copy } from '../icons';\n\nimport * as Yup from 'yup';\nimport { yupResolver } from '@hookform/resolvers/yup';\nimport { FormLoader } from '../loaders';\nimport DynamicInput from '../form-control/form-builder/form-builder-element/text';\nimport DynamicPhone from '../form-control/form-builder/form-builder-element/phone';\nimport { CountryData } from 'react-phone-input-2';\nimport DynamicCheckBox from '../form-control/form-builder/form-builder-element/checkbox';\nimport { enqueueSnackbar } from 'notistack';\nimport DynamicSearchSelect from '../form-control/form-builder/form-builder-element/dynamic-select';\nimport { useTranslation } from 'react-i18next';\nimport { getApiConfigSafe } from '../../utils/api-config';\n\ninterface IFormInput {\n\taddresses: {\n\t\taddress_type?: string;\n\t\tcontact_name?: string;\n\t\tdefault_shipping_address?: boolean;\n\t\tdefault_billing_address?: boolean;\n\t\tcountry_code?: string;\n\t\tmobile?: string;\n\t\tstreet_1?: string;\n\t\tstreet_2?: string;\n\t\tstreet_3?: string;\n\t\tstreet_name?: string;\n\t\tbuilding_no?: string;\n\t\tadditional_no?: string;\n\t\tnational_address?: string;\n\t\tzip_code?: string;\n\t\tcity?: string;\n\t\tdistrict_name?: string;\n\t\tstate?: number | null;\n\t\tcountry?: number | null;\n\t\tsummary?: string;\n\t};\n}\n\ninterface AddressModalProps {\n\tisOpen: boolean;\n\tsetIsOpen: () => void;\n\tmodalProps?: DialogProps;\n\titemData?: any;\n\titemIndex: number;\n\titems?: any;\n\tprefillData?: {\n\t\tcontact_name?: string;\n\t\tmobile?: string;\n\t};\n\tonSave: (data: any, itemIndex?: number) => void;\n\ttranslationKey: string;\n\toptionalFields?: string[];\n}\n\nconst addressTypeOptions = [\n\t{ label: 'Delivery', value: 'Delivery' },\n\t{ label: 'Shipping', value: 'Shipping' },\n\t{ label: 'Office', value: 'Office' }\n];\n\n// excludeEmptyString matters: without it yup runs the pattern against '' and fails, so clearing an\n// optional field would report a format error instead of simply being empty. Note it only works in\n// the options-object form - passing it as a third argument is ignored.\nconst zipCodeRule = Yup.string()\n\t.matches(/^[0-9\\u0660-\\u0669]+$/, {\n\t\tmessage: 'Zip code must contain only digits without special characters',\n\t\texcludeEmptyString: true\n\t})\n\t.test(\n\t\t'no-dot-plus',\n\t\t'Zip code must not contain \".\" or \"+\"',\n\t\t(value) => !value?.includes('.') && !value?.includes('+')\n\t);\n\nconst cityRule = Yup.string().matches(/^[A-Za-z\\u0600-\\u06FF\\s]+$/, {\n\tmessage: 'City must contain alphabets only',\n\texcludeEmptyString: true\n});\n\n// Fields that mean a pane was actually filled in. summary, country_code and the default flags are\n// derived or auto-populated, so they are not proof that the user entered anything.\nconst ADDRESS_CONTENT_FIELDS = [\n\t'address_type',\n\t'contact_name',\n\t'mobile',\n\t'street_1',\n\t'street_2',\n\t'street_3',\n\t'street_name',\n\t'building_no',\n\t'additional_no',\n\t'national_address',\n\t'zip_code',\n\t'city',\n\t'district_name',\n\t'state',\n\t'country'\n];\n\n// Every field has to be named when resetting a pane. react-hook-form leaves a field untouched if\n// its name is absent from the reset payload, so an address opened for edit would keep showing its\n// values on the other language's pane.\nconst BLANK_ADDRESS = {\n\taddress_type: '',\n\tcontact_name: '',\n\tcountry_code: '',\n\tmobile: '',\n\tstreet_1: '',\n\tstreet_2: '',\n\tstreet_3: '',\n\tstreet_name: '',\n\tbuilding_no: '',\n\tadditional_no: '',\n\tnational_address: '',\n\tzip_code: '',\n\tcity: '',\n\tdistrict_name: '',\n\tstate: null,\n\tcountry: null,\n\tsummary: '',\n\tdefault_shipping_address: false,\n\tdefault_billing_address: false\n};\n\nconst hasValues = (values?: any) =>\n\t!!values &&\n\tADDRESS_CONTENT_FIELDS.some((field) => {\n\t\tconst value = values[field];\n\t\treturn value !== undefined && value !== null && String(value).trim() !== '';\n\t});\n\nconst buildValidationSchema = (isKSA: boolean, optionalFields: string[] = []) => {\n\tconst zipOptional = optionalFields.includes('zip_code');\n\tconst stateOptional = optionalFields.includes('state');\n\n\treturn Yup.object().shape({\n\t\taddresses: Yup.object().shape({\n\t\t\taddress_type: Yup.string().required('Address type is required'),\n\t\t\tcontact_name: Yup.string().required('Contact name is required'),\n\t\t\tstreet_1: Yup.string().required('Address 1 is required'),\n\t\t\tstreet_2: Yup.string().nullable(),\n\t\t\tstreet_3: Yup.string().nullable(),\n\t\t\t...(isKSA ? { building_no: Yup.string().nullable(), additional_no: Yup.string().nullable() } : {}),\n\t\t\tzip_code: zipOptional\n\t\t\t\t? Yup.string()\n\t\t\t\t\t\t.nullable()\n\t\t\t\t\t\t.test(\n\t\t\t\t\t\t\t'optional-digits',\n\t\t\t\t\t\t\t'Zip code must contain only digits without special characters',\n\t\t\t\t\t\t\t(value) =>\n\t\t\t\t\t\t\t\t!value ||\n\t\t\t\t\t\t\t\t(!value.includes('.') &&\n\t\t\t\t\t\t\t\t\t!value.includes('+') &&\n\t\t\t\t\t\t\t\t\t/^[0-9]+$/.test(value))\n\t\t\t\t\t\t)\n\t\t\t\t: Yup.string()\n\t\t\t\t\t\t.required('Zip code is required')\n\t\t\t\t\t\t.matches(/^[0-9]+$/, 'Zip code must contain only digits without special characters')\n\t\t\t\t\t\t.test(\n\t\t\t\t\t\t\t'no-dot-plus',\n\t\t\t\t\t\t\t'Zip code must not contain \".\" or \"+\"',\n\t\t\t\t\t\t\t(value) => !value?.includes('.') && !value?.includes('+')\n\t\t\t\t\t\t),\n\t\t\tcity: Yup.string()\n\t\t\t\t.matches(/^[A-Za-z\\s]+$/, 'City must contain alphabets only'),\n\t\t\tstate: stateOptional\n\t\t\t\t? Yup.number()\n\t\t\t\t\t\t.nullable()\n\t\t\t\t\t\t.typeError('State is not valid')\n\t\t\t\t: Yup.number()\n\t\t\t\t\t\t.typeError('State is required')\n\t\t\t\t\t\t.required('State is required'),\n\t\t\tcountry: Yup.number()\n\t\t\t\t.typeError('Country is required')\n\t\t\t\t.required('Country is required')\n\t\t})\n\t});\n};\n\n// The Arabic pane is a translation of an address that was already filled in English: the dropdowns\n// are hidden and inherited from the English pane, so nothing here is required. Format rules that\n// accept Arabic characters are kept.\nconst arabicValidationSchema = Yup.object().shape({\n\taddresses: Yup.object().shape({\n\t\tzip_code: zipCodeRule,\n\t\tcity: cityRule\n\t})\n});\n\nconst AddressModal: React.FC<AddressModalProps> = ({\n\tisOpen,\n\tsetIsOpen,\n\tmodalProps,\n\titemData,\n\titemIndex,\n\titems,\n\tprefillData,\n\tonSave,\n\ttranslationKey,\n\toptionalFields = [],\n}) => {\n\tconst { t } = useTranslation();\n\tconst isKSA = getApiConfigSafe()?.countryEnv === 'ksa';\n\tconst [submitLoading, setSubmitLoading] = useState<boolean>(false);\n\tconst [language, setLanguage] = useState<'en' | 'ar'>('en');\n\t// Field values of the language that is not on screen, so switching back and forth keeps both.\n\tconst [drafts, setDrafts] = useState<{ en?: any; ar?: any }>({});\n\tconst [entryDetails, setEntryDetails] = useState<Record<string, any>>({\n\t\tcountry_data: null,\n\t\tstate_data: null\n\t});\n\n\tconst validationSchema = useMemo(\n\t\t() => buildValidationSchema(isKSA, optionalFields),\n\t\t[isKSA, optionalFields]\n\t);\n\n\tconst { country_data, state_data } = entryDetails;\n\n\tconst {\n\t\tcontrol,\n\t\thandleSubmit,\n\t\tsetValue,\n\t\treset,\n\t\tgetValues,\n\t\twatch,\n\t\ttrigger,\n\t\tgetFieldState\n\t} = useForm<IFormInput>({\n\t\tresolver: yupResolver(language === 'ar' ? arabicValidationSchema : validationSchema),\n\t\tmode: 'all'\n\t});\n\n\tconst watchedValues = useWatch({\n\t\tcontrol: control,\n\t\tname: [\n\t\t\t'addresses.contact_name',\n\t\t\t'addresses.street_1',\n\t\t\t'addresses.street_2',\n\t\t\t'addresses.street_3',\n\t\t\t'addresses.street_name',\n\t\t\t'addresses.building_no',\n\t\t\t'addresses.additional_no',\n\t\t\t'addresses.national_address',\n\t\t\t'addresses.zip_code',\n\t\t\t'addresses.city',\n\t\t\t'addresses.district_name',\n\t\t\t'addresses.state',\n\t\t\t'addresses.country'\n\t\t]\n\t});\n\n\tconst selectedCountry = watch('addresses.country');\n\tconst isDirtyC = getFieldState('addresses.country')?.isDirty || false;\n\n\tconst onSubmit = (values: any) => {\n\t\tsetSubmitLoading(true);\n\t\thandleValidateSave(values);\n\t\tsetSubmitLoading(false);\n\t};\n\n\t// Arabic is a translation of the English address, so the English pane has to be valid before it\n\t// can be opened. Each pane keeps its own values while the modal stays open.\n\tconst handleLanguageChange = async (next: 'en' | 'ar') => {\n\t\tif (next === language) {\n\t\t\treturn;\n\t\t}\n\n\t\t// The gate only applies to starting the Arabic pane. Once it holds values - a new translation\n\t\t// in progress, or an existing Arabic row being edited - switching back to it is navigation,\n\t\t// not a fresh start, and must never be blocked.\n\t\tif (next === 'ar' && !hasValues(drafts.ar)) {\n\t\t\tconst isEnglishValid = await trigger();\n\t\t\tif (!isEnglishValid) {\n\t\t\t\tenqueueSnackbar(\n\t\t\t\t\tt(`accounting.${translationKey}.msg.fill_english_address_first`, {\n\t\t\t\t\t\tdefaultValue: 'Please fill the English address first'\n\t\t\t\t\t}),\n\t\t\t\t\t{ variant: 'error' }\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tconst current = getValues()?.addresses;\n\t\tsetDrafts((prev) => ({ ...prev, [language]: current }));\n\t\tsetLanguage(next);\n\t\treset({\n\t\t\taddresses: { ...BLANK_ADDRESS, ...(drafts[next] ?? {}) } as IFormInput['addresses']\n\t\t});\n\t};\n\n\tconst handleDuplicate = async () => {\n\t\tconst v = await trigger();\n\t\tif (!v) {\n\t\t\treturn;\n\t\t}\n\t\tlet values = getValues();\n\t\tvalues = {\n\t\t\t...values,\n\t\t\taddresses: {\n\t\t\t\t...values?.addresses,\n\t\t\t\tdefault_shipping_address: false,\n\t\t\t\tdefault_billing_address: false,\n\t\t\t\tcountry: country_data,\n\t\t\t\tstate: state_data,\n\t\t\t\tlanguage\n\t\t\t}\n\t\t};\n\t\tsetSubmitLoading(true);\n\t\tonSave({ ...values });\n\t\thandleModalClose();\n\t\tsetSubmitLoading(false);\n\t};\n\n\tconst handleValidateSave = (values: any) => {\n\t\tconst validateDefaults = (data: any, index: number, type = 'shipping') => {\n\t\t\tconst u_data = [...data];\n\t\t\tif (index != null && index >= 0) {\n\t\t\t\tu_data?.splice(index, 1);\n\t\t\t}\n\n\t\t\tif (type == 'shipping') {\n\t\t\t\tconst hasDFS = u_data.some((d: any) => d?.default_shipping_address);\n\t\t\t\tif (hasDFS) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\tt(`accounting.${translationKey}.msg.default_shipping_address_msg`)\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t} else {\n\t\t\t\tconst hasDFB = u_data.some((d: any) => d?.default_billing_address);\n\t\t\t\tif (hasDFB) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\tt(`accounting.${translationKey}.msg.default_billing_address_msg`)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t};\n\n\t\ttry {\n\t\t\t// The pane on screen holds the live values, the other one its stored draft.\n\t\t\tlet englishValues = language === 'en' ? values?.addresses : drafts.en;\n\t\t\tconst arabicValues = language === 'ar' ? values?.addresses : drafts.ar;\n\n\t\t\t// The default flags only exist on the English pane, so they are checked there whichever\n\t\t\t// pane happens to be open at save time.\n\t\t\tif (englishValues?.default_shipping_address) {\n\t\t\t\tvalidateDefaults(items, itemIndex, 'shipping');\n\t\t\t}\n\n\t\t\tif (englishValues?.default_billing_address) {\n\t\t\t\tvalidateDefaults(items, itemIndex, 'billing');\n\t\t\t}\n\n\t\t\tif (englishValues && items && items?.length === 0) {\n\t\t\t\tenglishValues = {\n\t\t\t\t\t...englishValues,\n\t\t\t\t\tdefault_shipping_address: true,\n\t\t\t\t\tdefault_billing_address: true\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// One address is one row in the list. Its Arabic translation rides along nested under\n\t\t\t// `arabic` so the pair stays together, in the list and in the payload.\n\t\t\tif (!hasValues(englishValues) && !hasValues(arabicValues)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// An address that only ever had Arabic data stays Arabic-only, otherwise it would be\n\t\t\t// rewritten as an empty English row.\n\t\t\tif (!hasValues(englishValues)) {\n\t\t\t\tonSave(\n\t\t\t\t\t{\n\t\t\t\t\t\t...values,\n\t\t\t\t\t\taddresses: {\n\t\t\t\t\t\t\t...arabicValues,\n\t\t\t\t\t\t\taddress_type: arabicValues?.address_type || itemData?.address_type,\n\t\t\t\t\t\t\tcountry: country_data,\n\t\t\t\t\t\t\tstate: state_data,\n\t\t\t\t\t\t\tlanguage: 'ar'\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\titemIndex\n\t\t\t\t);\n\t\t\t\thandleModalClose();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst row: any = {\n\t\t\t\t...englishValues,\n\t\t\t\tcountry: country_data,\n\t\t\t\tstate: state_data,\n\t\t\t\tlanguage: 'en'\n\t\t\t};\n\n\t\t\t// Always set the key, never leave it out: the list merges the saved row over the old one, so\n\t\t\t// an absent `arabic` would silently keep a translation the user just cleared.\n\t\t\t// The dropdowns are hidden on the Arabic pane, so the backend fills those columns from the\n\t\t\t// English row - address_type in particular is NOT NULL on party_address_arabic.\n\t\t\trow.arabic = hasValues(arabicValues)\n\t\t\t\t? { ...arabicValues, id: itemData?.arabic?.id }\n\t\t\t\t: null;\n\n\t\t\tonSave({ ...values, addresses: row }, itemIndex);\n\t\t\thandleModalClose();\n\t\t} catch (error) {\n\t\t\tenqueueSnackbar(error?.message || 'Something went wrong', {\n\t\t\t\tvariant: 'error'\n\t\t\t});\n\t\t}\n\t};\n\n\tconst handleModalClose = () => {\n\t\treset({ addresses: null });\n\t\tsetDrafts({});\n\t\tsetLanguage('en');\n\t\tsetEntryDetails({\n\t\t\tstate_data: null,\n\t\t\tcountry_data: null\n\t\t});\n\t\tsetIsOpen();\n\t};\n\n\tconst handleSetCountryCodeField = (country: CountryData) => {\n\t\tconst values = getValues();\n\t\tconst oldVal = values?.addresses?.country_code;\n\t\tconst newVal = `+${country.dialCode}`;\n\t\tif (oldVal !== newVal) {\n\t\t\tsetValue(`addresses.country_code` as never, newVal as never);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tconst summaryVal = watchedValues.reduce((ele, ele2, index) => {\n\t\t\tif (!ele2) return ele;\n\t\t\tif (!ele) return ele2;\n\n\t\t\tif (index === 11) {\n\t\t\t\tele2 = state_data\n\t\t\t}\n\t\t\tif (index === 12) {\n\t\t\t\tele2 = country_data\n\t\t\t}\n\n\t\t\tele = ele?.name || ele;\n\t\t\tele2 = ele2?.name || ele2;\n\t\t\tif ([2, 3, 4, 5, 6, 7].includes(index)) {\n\t\t\t\treturn ele + ' ' + ele2;\n\t\t\t}\n\t\t\treturn ele + ', \\n' + ele2;\n\t\t}, '');\n\n\t\tsetValue('addresses.summary' as never, summaryVal as never);\n\t}, [setValue, watchedValues, country_data, state_data]);\n\n\tuseEffect(() => {\n\t\tif (itemData) {\n\t\t\t// Keep the row on the language it was saved with, otherwise an existing Arabic address\n\t\t\t// would be re-tagged as English and moved to the English table on save.\n\t\t\tsetLanguage(itemData?.language === 'ar' ? 'ar' : 'en');\n\t\t\t// The saved translation seeds the Arabic pane, so switching to it shows the Arabic data\n\t\t\t// rather than an empty form. It is held as a draft, never merged into the English pane.\n\t\t\tconst { arabic, ...englishData } = itemData;\n\t\t\tsetDrafts(\n\t\t\t\tarabic\n\t\t\t\t\t? {\n\t\t\t\t\t\tar: {\n\t\t\t\t\t\t\t...BLANK_ADDRESS,\n\t\t\t\t\t\t\t...arabic,\n\t\t\t\t\t\t\tcountry: arabic?.country?.id ?? arabic?.country,\n\t\t\t\t\t\t\tstate: arabic?.state?.id ?? arabic?.state\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t: {}\n\t\t\t);\n\t\t\treset({\n\t\t\t\taddresses: {\n\t\t\t\t\t...BLANK_ADDRESS,\n\t\t\t\t\t...englishData,\n\t\t\t\t\tcountry: englishData?.country?.id,\n\t\t\t\t\tstate: englishData?.state?.id\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}, [itemData, reset]);\n\n\tuseEffect(() => {\n\t\tif (isOpen && !itemData) {\n\t\t\tsetLanguage('en');\n\t\t\tsetDrafts({});\n\t\t\treset({\n\t\t\t\taddresses: {\n\t\t\t\t\t...BLANK_ADDRESS,\n\t\t\t\t\taddress_type: 'Office',\n\t\t\t\t\tcontact_name: prefillData?.contact_name || '',\n\t\t\t\t\tmobile: prefillData?.mobile || ''\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}, [isOpen, itemData, prefillData?.contact_name, prefillData?.mobile, reset]);\n\n\tconst setDetailsData = (data: any[], key: string) => {\n\t\tsetEntryDetails((prev) => ({ ...prev, [key]: data }));\n\t};\n\n\tuseEffect(() => {\n\t\tif (isDirtyC) {\n\t\t\tsetValue('addresses.state', null);\n\t\t}\n\t}, [selectedCountry, isDirtyC]);\n\n\tconst stateFilter = useMemo(() => {\n\t\treturn { '&country_id.eq': selectedCountry || 0 }\n\t}, [selectedCountry]);\n\n\treturn (\n\t\t<Modal\n\t\t\topen={isOpen}\n\t\t\tonClose={setIsOpen}\n\t\t\tmaxWidth='md'\n\t\t\tfullWidth\n\t\t\t{...modalProps}>\n\t\t\t<form onSubmit={handleSubmit(onSubmit)}>\n\t\t\t\t{submitLoading && <FormLoader />}\n\t\t\t\t<DialogTitle className='addressModal--Title'>\n\t\t\t\t\t<Typography type='s3' color='inherit' weight='medium'>\n\t\t\t\t\t\t{t(`accounting.${translationKey}.addressModal.title`)}\n\t\t\t\t\t</Typography>\n\t\t\t\t\t<IconButton onClick={handleModalClose}>\n\t\t\t\t\t\t<Close fontSize='small' />\n\t\t\t\t\t</IconButton>\n\t\t\t\t</DialogTitle>\n\t\t\t\t<DialogContent>\n\t\t\t\t\t<RadioGroup\n\t\t\t\t\t\tclassName='addressModal--LanguageSwitch'\n\t\t\t\t\t\trow\n\t\t\t\t\t\tvalue={language}\n\t\t\t\t\t\tonChange={(e) => handleLanguageChange(e.target.value as 'en' | 'ar')}>\n\t\t\t\t\t\t<FormControlLabel value='en' control={<Radio />} label='English' />\n\t\t\t\t\t\t<FormControlLabel value='ar' control={<Radio />} label='Arabic' />\n\t\t\t\t\t</RadioGroup>\n\t\t\t\t\t<Grid container rowGap={1.5} columnSpacing={3} pt={3}>\n\t\t\t\t\t\t{language === 'en' && (\n\t\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t\t<DynamicSearchSelect\n\t\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.address_type_label`)}\n\t\t\t\t\t\t\t\t\toptions={addressTypeOptions}\n\t\t\t\t\t\t\t\t\tname='address_type'\n\t\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.address_type_placeholder`)}\n\t\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.contact_name_label`)}\n\t\t\t\t\t\t\t\tname='contact_name'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.contact_name_placeholder`)}\n\t\t\t\t\t\t\t\trequired={language === 'en'}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicPhone\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.mobile_label`)}\n\t\t\t\t\t\t\t\tname='mobile'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tsetCountryCodeField={(country: CountryData) =>\n\t\t\t\t\t\t\t\t\thandleSetCountryCodeField(country)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.address1_label`)}\n\t\t\t\t\t\t\t\tname='street_1'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.address1_placeholder`)}\n\t\t\t\t\t\t\t\trequired={language === 'en'}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.address2_label`)}\n\t\t\t\t\t\t\t\tname='street_2'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.address2_placeholder`)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.address3_label`)}\n\t\t\t\t\t\t\t\tname='street_3'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.address3_placeholder`)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t{isKSA && <Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.streetName_label`)}\n\t\t\t\t\t\t\t\tname='street_name'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.streetName_placeholder`)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>}\n\t\t\t\t\t\t{isKSA && <>\n\t\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.buildingNo_label`)}\n\t\t\t\t\t\t\t\t\tname='building_no'\n\t\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\t\tplaceholder='Enter Building No.'\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.additionalNo_label`)}\n\t\t\t\t\t\t\t\t\tname='additional_no'\n\t\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\t\tplaceholder='Enter Additional No.'\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t</>}\n\t\t\t\t\t\t{isKSA && <Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.nationalAddress_label`)}\n\t\t\t\t\t\t\t\tname='national_address'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.nationalAddress_placeholder`)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>}\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.zip_code_label`)}\n\t\t\t\t\t\t\t\tname='zip_code'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.zip_code_placeholder`)}\n\t\t\t\t\t\t\t\trequired={!optionalFields.includes('zip_code') && language === 'en'}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t{language === 'en' && (\n\t\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t\t<DynamicSearchSelect\n\t\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.country_label`)}\n\t\t\t\t\t\t\t\t\tname='country'\n\t\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.country_placeholder`)}\n\t\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\t\tapiType='countries'\n\t\t\t\t\t\t\t\t\tgetSelectedData={(row: any[]) =>\n\t\t\t\t\t\t\t\t\t\tsetDetailsData(row, 'country_data')\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{language === 'en' && (\n\t\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t\t<DynamicSearchSelect\n\t\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.state_label`)}\n\t\t\t\t\t\t\t\t\tname='state'\n\t\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.state_placeholder`)}\n\t\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\t\tapiType='states'\n\t\t\t\t\t\t\t\t\tcustomeFilter={stateFilter}\n\t\t\t\t\t\t\t\t\tgetSelectedData={(row: any[]) =>\n\t\t\t\t\t\t\t\t\t\tsetDetailsData(row, 'state_data')\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.city_label`)}\n\t\t\t\t\t\t\t\tname='city'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.city_placeholder`)}\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t{isKSA && <Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.districtName_label`)}\n\t\t\t\t\t\t\t\tname='district_name'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.districtName_placeholder`)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>}\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.summary_label`)}\n\t\t\t\t\t\t\t\tname='summary'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.summary_placeholder`)}\n\t\t\t\t\t\t\t\tis_multiline\n\t\t\t\t\t\t\t\tdisabled\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t{language === 'en' && (\n\t\t\t\t\t\t\t<Grid item sm={12}>\n\t\t\t\t\t\t\t\t<DynamicCheckBox\n\t\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\t\tname='default_shipping_address'\n\t\t\t\t\t\t\t\t\ttitle={t(`accounting.${translationKey}.addressModal.default_shipping_address_label`)}\n\t\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\t\ttitlePosition='end'\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{language === 'en' && (\n\t\t\t\t\t\t\t<Grid item sm={12}>\n\t\t\t\t\t\t\t\t<DynamicCheckBox\n\t\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\t\tname='default_billing_address'\n\t\t\t\t\t\t\t\t\ttitle={t(`accounting.${translationKey}.addressModal.default_billing_address_label`)}\n\t\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\t\ttitlePosition='end'\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Grid>\n\t\t\t\t</DialogContent>\n\t\t\t\t<DialogActions\n\t\t\t\t\tclassName={`addressModal--ActionContainer ${!itemData && 'addressModal--ActionContainer--FlexEnd'}`}>\n\t\t\t\t\t{itemData && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName='addressModal--ActionContainer--WhiteBtn'\n\t\t\t\t\t\t\tstartIcon={<Copy />}\n\t\t\t\t\t\t\tdisabled={submitLoading}\n\t\t\t\t\t\t\tonClick={() => handleDuplicate()}>\n\t\t\t\t\t\t\t{t(\"common.duplicate\")}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)}\n\t\t\t\t\t<Box display='flex' gap={1.5}>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName='addressModal--ActionContainer--WhiteBtn'\n\t\t\t\t\t\t\tonClick={handleModalClose}\n\t\t\t\t\t\t\tdisabled={submitLoading}>\n\t\t\t\t\t\t\t{t(\"common.cancel\")}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ttype='submit'\n\t\t\t\t\t\t\tendIcon={\n\t\t\t\t\t\t\t\tsubmitLoading ? (\n\t\t\t\t\t\t\t\t\t<CircularProgress size={20} color='inherit' />\n\t\t\t\t\t\t\t\t) : undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdisabled={submitLoading}>\n\t\t\t\t\t\t\t{t(\"common.save\")}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</Box>\n\t\t\t\t</DialogActions>\n\t\t\t</form>\n\t\t</Modal>\n\t);\n};\n\nexport default AddressModal;\n"],"names":["Yup","useTranslation","getApiConfigSafe","useState","useMemo","useForm","yupResolver","useWatch","enqueueSnackbar","_a","useEffect","_b","jsx","Modal","jsxs","FormLoader","DialogTitle","Typography","IconButton","Close","DialogContent","RadioGroup","FormControlLabel","Radio","Grid","DynamicSearchSelect","DynamicInput","DynamicPhone","Fragment","DynamicCheckBox","DialogActions","Button","Copy","Box","CircularProgress"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"address-modal-CYhiC7ui.js","sources":["../../src/components/address-modal/address-modal.tsx"],"sourcesContent":["import './address-modal.scss';\n\nimport { Close } from '@mui/icons-material';\nimport {\n\tBox,\n\tCircularProgress,\n\tDialogActions,\n\tDialogContent,\n\tDialogTitle,\n\tDialogProps,\n\tFormControlLabel,\n\tGrid,\n\tIconButton,\n\tRadioGroup\n} from '@mui/material';\nimport Modal from '../modal/modal';\nimport Typography from '../typography/typography';\nimport { useEffect, useMemo, useState } from 'react';\nimport { useForm, useWatch } from 'react-hook-form';\nimport Radio from '../radio/radio';\n\nimport Button from '../button/button';\nimport { Copy } from '../icons';\n\nimport * as Yup from 'yup';\nimport { yupResolver } from '@hookform/resolvers/yup';\nimport { FormLoader } from '../loaders';\nimport DynamicInput from '../form-control/form-builder/form-builder-element/text';\nimport DynamicPhone from '../form-control/form-builder/form-builder-element/phone';\nimport { CountryData } from 'react-phone-input-2';\nimport DynamicCheckBox from '../form-control/form-builder/form-builder-element/checkbox';\nimport { enqueueSnackbar } from 'notistack';\nimport DynamicSearchSelect from '../form-control/form-builder/form-builder-element/dynamic-select';\nimport { useTranslation } from 'react-i18next';\nimport { getApiConfigSafe } from '../../utils/api-config';\n\ninterface IFormInput {\n\taddresses: {\n\t\taddress_type?: string;\n\t\tcontact_name?: string;\n\t\tdefault_shipping_address?: boolean;\n\t\tdefault_billing_address?: boolean;\n\t\tcountry_code?: string;\n\t\tmobile?: string;\n\t\tstreet_1?: string;\n\t\tstreet_2?: string;\n\t\tstreet_3?: string;\n\t\tstreet_name?: string;\n\t\tbuilding_no?: string;\n\t\tadditional_no?: string;\n\t\tnational_address?: string;\n\t\tzip_code?: string;\n\t\tcity?: string;\n\t\tdistrict_name?: string;\n\t\tstate?: number | null;\n\t\tcountry?: number | null;\n\t\tsummary?: string;\n\t};\n}\n\ninterface AddressModalProps {\n\tisOpen: boolean;\n\tsetIsOpen: () => void;\n\tmodalProps?: DialogProps;\n\titemData?: any;\n\titemIndex: number;\n\titems?: any;\n\tprefillData?: {\n\t\tcontact_name?: string;\n\t\tmobile?: string;\n\t};\n\tonSave: (data: any, itemIndex?: number) => void;\n\ttranslationKey: string;\n\toptionalFields?: string[];\n}\n\nconst addressTypeOptions = [\n\t{ label: 'Delivery', value: 'Delivery' },\n\t{ label: 'Shipping', value: 'Shipping' },\n\t{ label: 'Office', value: 'Office' }\n];\n\n// excludeEmptyString matters: without it yup runs the pattern against '' and fails, so clearing an\n// optional field would report a format error instead of simply being empty. Note it only works in\n// the options-object form - passing it as a third argument is ignored.\nconst zipCodeRule = Yup.string()\n\t.matches(/^[0-9\\u0660-\\u0669]+$/, {\n\t\tmessage: 'Zip code must contain only digits without special characters',\n\t\texcludeEmptyString: true\n\t})\n\t.test(\n\t\t'no-dot-plus',\n\t\t'Zip code must not contain \".\" or \"+\"',\n\t\t(value) => !value?.includes('.') && !value?.includes('+')\n\t);\n\nconst cityRule = Yup.string().matches(/^[A-Za-z\\u0600-\\u06FF\\s]+$/, {\n\tmessage: 'City must contain alphabets only',\n\texcludeEmptyString: true\n});\n\n// Fields that mean a pane was actually filled in. summary, country_code and the default flags are\n// derived or auto-populated, so they are not proof that the user entered anything.\nconst ADDRESS_CONTENT_FIELDS = [\n\t'address_type',\n\t'contact_name',\n\t'mobile',\n\t'street_1',\n\t'street_2',\n\t'street_3',\n\t'street_name',\n\t'building_no',\n\t'additional_no',\n\t'national_address',\n\t'zip_code',\n\t'city',\n\t'district_name',\n\t'state',\n\t'country'\n];\n\n// Every field has to be named when resetting a pane. react-hook-form leaves a field untouched if\n// its name is absent from the reset payload, so an address opened for edit would keep showing its\n// values on the other language's pane.\nconst BLANK_ADDRESS = {\n\taddress_type: '',\n\tcontact_name: '',\n\tcountry_code: '',\n\tmobile: '',\n\tstreet_1: '',\n\tstreet_2: '',\n\tstreet_3: '',\n\tstreet_name: '',\n\tbuilding_no: '',\n\tadditional_no: '',\n\tnational_address: '',\n\tzip_code: '',\n\tcity: '',\n\tdistrict_name: '',\n\tstate: null,\n\tcountry: null,\n\tsummary: '',\n\tdefault_shipping_address: false,\n\tdefault_billing_address: false\n};\n\nconst hasValues = (values?: any) =>\n\t!!values &&\n\tADDRESS_CONTENT_FIELDS.some((field) => {\n\t\tconst value = values[field];\n\t\treturn value !== undefined && value !== null && String(value).trim() !== '';\n\t});\n\nconst buildValidationSchema = (isKSA: boolean, optionalFields: string[] = []) => {\n\tconst zipOptional = optionalFields.includes('zip_code');\n\tconst stateOptional = optionalFields.includes('state');\n\n\treturn Yup.object().shape({\n\t\taddresses: Yup.object().shape({\n\t\t\taddress_type: Yup.string().required('Address type is required'),\n\t\t\tcontact_name: Yup.string().required('Contact name is required'),\n\t\t\tstreet_1: Yup.string().required('Address 1 is required'),\n\t\t\tstreet_2: Yup.string().nullable(),\n\t\t\tstreet_3: Yup.string().nullable(),\n\t\t\t...(isKSA ? { building_no: Yup.string().nullable(), additional_no: Yup.string().nullable() } : {}),\n\t\t\tzip_code: zipOptional\n\t\t\t\t? Yup.string()\n\t\t\t\t\t\t.nullable()\n\t\t\t\t\t\t.test(\n\t\t\t\t\t\t\t'optional-digits',\n\t\t\t\t\t\t\t'Zip code must contain only digits without special characters',\n\t\t\t\t\t\t\t(value) =>\n\t\t\t\t\t\t\t\t!value ||\n\t\t\t\t\t\t\t\t(!value.includes('.') &&\n\t\t\t\t\t\t\t\t\t!value.includes('+') &&\n\t\t\t\t\t\t\t\t\t/^[0-9]+$/.test(value))\n\t\t\t\t\t\t)\n\t\t\t\t: Yup.string()\n\t\t\t\t\t\t.required('Zip code is required')\n\t\t\t\t\t\t.matches(/^[0-9]+$/, 'Zip code must contain only digits without special characters')\n\t\t\t\t\t\t.test(\n\t\t\t\t\t\t\t'no-dot-plus',\n\t\t\t\t\t\t\t'Zip code must not contain \".\" or \"+\"',\n\t\t\t\t\t\t\t(value) => !value?.includes('.') && !value?.includes('+')\n\t\t\t\t\t\t),\n\t\t\tcity: Yup.string()\n\t\t\t\t.matches(/^[A-Za-z\\s]+$/, 'City must contain alphabets only'),\n\t\t\tstate: stateOptional\n\t\t\t\t? Yup.number()\n\t\t\t\t\t\t.nullable()\n\t\t\t\t\t\t.typeError('State is not valid')\n\t\t\t\t: Yup.number()\n\t\t\t\t\t\t.typeError('State is required')\n\t\t\t\t\t\t.required('State is required'),\n\t\t\tcountry: Yup.number()\n\t\t\t\t.typeError('Country is required')\n\t\t\t\t.required('Country is required')\n\t\t})\n\t});\n};\n\n// The Arabic pane is a translation of an address that was already filled in English: the dropdowns\n// are hidden and inherited from the English pane, so nothing here is required. Format rules that\n// accept Arabic characters are kept.\nconst arabicValidationSchema = Yup.object().shape({\n\taddresses: Yup.object().shape({\n\t\tzip_code: zipCodeRule,\n\t\tcity: cityRule\n\t})\n});\n\nconst AddressModal: React.FC<AddressModalProps> = ({\n\tisOpen,\n\tsetIsOpen,\n\tmodalProps,\n\titemData,\n\titemIndex,\n\titems,\n\tprefillData,\n\tonSave,\n\ttranslationKey,\n\toptionalFields = [],\n}) => {\n\tconst { t } = useTranslation();\n\tconst isKSA = getApiConfigSafe()?.countryEnv === 'ksa';\n\tconst [submitLoading, setSubmitLoading] = useState<boolean>(false);\n\tconst [language, setLanguage] = useState<'en' | 'ar'>('en');\n\t// Field values of the language that is not on screen, so switching back and forth keeps both.\n\tconst [drafts, setDrafts] = useState<{ en?: any; ar?: any }>({});\n\tconst [entryDetails, setEntryDetails] = useState<Record<string, any>>({\n\t\tcountry_data: null,\n\t\tstate_data: null\n\t});\n\n\tconst validationSchema = useMemo(\n\t\t() => buildValidationSchema(isKSA, optionalFields),\n\t\t[isKSA, optionalFields]\n\t);\n\n\tconst { country_data, state_data } = entryDetails;\n\n\tconst {\n\t\tcontrol,\n\t\thandleSubmit,\n\t\tsetValue,\n\t\treset,\n\t\tgetValues,\n\t\twatch,\n\t\ttrigger,\n\t\tgetFieldState\n\t} = useForm<IFormInput>({\n\t\tresolver: yupResolver(language === 'ar' ? arabicValidationSchema : validationSchema),\n\t\tmode: 'all'\n\t});\n\n\tconst watchedValues = useWatch({\n\t\tcontrol: control,\n\t\tname: [\n\t\t\t'addresses.contact_name',\n\t\t\t'addresses.street_1',\n\t\t\t'addresses.street_2',\n\t\t\t'addresses.street_3',\n\t\t\t'addresses.street_name',\n\t\t\t'addresses.building_no',\n\t\t\t'addresses.additional_no',\n\t\t\t'addresses.national_address',\n\t\t\t'addresses.zip_code',\n\t\t\t'addresses.city',\n\t\t\t'addresses.district_name',\n\t\t\t'addresses.state',\n\t\t\t'addresses.country'\n\t\t]\n\t});\n\n\tconst selectedCountry = watch('addresses.country');\n\tconst isDirtyC = getFieldState('addresses.country')?.isDirty || false;\n\n\tconst onSubmit = (values: any) => {\n\t\tsetSubmitLoading(true);\n\t\thandleValidateSave(values);\n\t\tsetSubmitLoading(false);\n\t};\n\n\t// Arabic is a translation of the English address, so the English pane has to be valid before it\n\t// can be opened. Each pane keeps its own values while the modal stays open.\n\tconst handleLanguageChange = async (next: 'en' | 'ar') => {\n\t\tif (next === language) {\n\t\t\treturn;\n\t\t}\n\n\t\t// The gate only applies to starting the Arabic pane. Once it holds values - a new translation\n\t\t// in progress, or an existing Arabic row being edited - switching back to it is navigation,\n\t\t// not a fresh start, and must never be blocked.\n\t\tif (next === 'ar' && !hasValues(drafts.ar)) {\n\t\t\tconst isEnglishValid = await trigger();\n\t\t\tif (!isEnglishValid) {\n\t\t\t\tenqueueSnackbar(\n\t\t\t\t\tt(`accounting.${translationKey}.msg.fill_english_address_first`, {\n\t\t\t\t\t\tdefaultValue: 'Please fill the English address first'\n\t\t\t\t\t}),\n\t\t\t\t\t{ variant: 'error' }\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tconst current = getValues()?.addresses;\n\t\tsetDrafts((prev) => ({ ...prev, [language]: current }));\n\t\tsetLanguage(next);\n\t\treset({\n\t\t\taddresses: { ...BLANK_ADDRESS, ...(drafts[next] ?? {}) } as IFormInput['addresses']\n\t\t});\n\t};\n\n\tconst handleDuplicate = async () => {\n\t\tconst v = await trigger();\n\t\tif (!v) {\n\t\t\treturn;\n\t\t}\n\t\tlet values = getValues();\n\t\tvalues = {\n\t\t\t...values,\n\t\t\taddresses: {\n\t\t\t\t...values?.addresses,\n\t\t\t\tdefault_shipping_address: false,\n\t\t\t\tdefault_billing_address: false,\n\t\t\t\tcountry: country_data,\n\t\t\t\tstate: state_data,\n\t\t\t\tlanguage\n\t\t\t}\n\t\t};\n\t\tsetSubmitLoading(true);\n\t\tonSave({ ...values });\n\t\thandleModalClose();\n\t\tsetSubmitLoading(false);\n\t};\n\n\tconst handleValidateSave = (values: any) => {\n\t\tconst validateDefaults = (data: any, index: number, type = 'shipping') => {\n\t\t\tconst u_data = [...data];\n\t\t\tif (index != null && index >= 0) {\n\t\t\t\tu_data?.splice(index, 1);\n\t\t\t}\n\n\t\t\tif (type == 'shipping') {\n\t\t\t\tconst hasDFS = u_data.some((d: any) => d?.default_shipping_address);\n\t\t\t\tif (hasDFS) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\tt(`accounting.${translationKey}.msg.default_shipping_address_msg`)\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t} else {\n\t\t\t\tconst hasDFB = u_data.some((d: any) => d?.default_billing_address);\n\t\t\t\tif (hasDFB) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\tt(`accounting.${translationKey}.msg.default_billing_address_msg`)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t};\n\n\t\ttry {\n\t\t\t// The pane on screen holds the live values, the other one its stored draft.\n\t\t\tlet englishValues = language === 'en' ? values?.addresses : drafts.en;\n\t\t\tconst arabicValues = language === 'ar' ? values?.addresses : drafts.ar;\n\n\t\t\t// The default flags only exist on the English pane, so they are checked there whichever\n\t\t\t// pane happens to be open at save time.\n\t\t\tif (englishValues?.default_shipping_address) {\n\t\t\t\tvalidateDefaults(items, itemIndex, 'shipping');\n\t\t\t}\n\n\t\t\tif (englishValues?.default_billing_address) {\n\t\t\t\tvalidateDefaults(items, itemIndex, 'billing');\n\t\t\t}\n\n\t\t\tif (englishValues && items && items?.length === 0) {\n\t\t\t\tenglishValues = {\n\t\t\t\t\t...englishValues,\n\t\t\t\t\tdefault_shipping_address: true,\n\t\t\t\t\tdefault_billing_address: true\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// One address is one row in the list. Its Arabic translation rides along nested under\n\t\t\t// `arabic` so the pair stays together, in the list and in the payload.\n\t\t\tif (!hasValues(englishValues) && !hasValues(arabicValues)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// An address that only ever had Arabic data stays Arabic-only, otherwise it would be\n\t\t\t// rewritten as an empty English row.\n\t\t\tif (!hasValues(englishValues)) {\n\t\t\t\tonSave(\n\t\t\t\t\t{\n\t\t\t\t\t\t...values,\n\t\t\t\t\t\taddresses: {\n\t\t\t\t\t\t\t...arabicValues,\n\t\t\t\t\t\t\taddress_type: arabicValues?.address_type || itemData?.address_type,\n\t\t\t\t\t\t\tcountry: country_data,\n\t\t\t\t\t\t\tstate: state_data,\n\t\t\t\t\t\t\tlanguage: 'ar'\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\titemIndex\n\t\t\t\t);\n\t\t\t\thandleModalClose();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst row: any = {\n\t\t\t\t...englishValues,\n\t\t\t\tcountry: country_data,\n\t\t\t\tstate: state_data,\n\t\t\t\tlanguage: 'en'\n\t\t\t};\n\n\t\t\t// Always set the key, never leave it out: the list merges the saved row over the old one, so\n\t\t\t// an absent `arabic` would silently keep a translation the user just cleared.\n\t\t\t// The dropdowns are hidden on the Arabic pane, so the backend fills those columns from the\n\t\t\t// English row - address_type in particular is NOT NULL on party_address_arabic.\n\t\t\trow.arabic = hasValues(arabicValues)\n\t\t\t\t? { ...arabicValues, id: itemData?.arabic?.id }\n\t\t\t\t: null;\n\n\t\t\tonSave({ ...values, addresses: row }, itemIndex);\n\t\t\thandleModalClose();\n\t\t} catch (error) {\n\t\t\tenqueueSnackbar(error?.message || 'Something went wrong', {\n\t\t\t\tvariant: 'error'\n\t\t\t});\n\t\t}\n\t};\n\n\tconst handleModalClose = () => {\n\t\treset({ addresses: null });\n\t\tsetDrafts({});\n\t\tsetLanguage('en');\n\t\tsetEntryDetails({\n\t\t\tstate_data: null,\n\t\t\tcountry_data: null\n\t\t});\n\t\tsetIsOpen();\n\t};\n\n\tconst handleSetCountryCodeField = (country: CountryData) => {\n\t\tconst values = getValues();\n\t\tconst oldVal = values?.addresses?.country_code;\n\t\tconst newVal = `+${country.dialCode}`;\n\t\tif (oldVal !== newVal) {\n\t\t\tsetValue(`addresses.country_code` as never, newVal as never);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tconst summaryVal = watchedValues.reduce((ele, ele2, index) => {\n\t\t\tif (!ele2) return ele;\n\t\t\tif (!ele) return ele2;\n\n\t\t\tif (index === 11) {\n\t\t\t\tele2 = state_data\n\t\t\t}\n\t\t\tif (index === 12) {\n\t\t\t\tele2 = country_data\n\t\t\t}\n\n\t\t\tele = ele?.name || ele;\n\t\t\tele2 = ele2?.name || ele2;\n\t\t\tif ([2, 3, 4, 5, 6, 7].includes(index)) {\n\t\t\t\treturn ele + ' ' + ele2;\n\t\t\t}\n\t\t\treturn ele + ', \\n' + ele2;\n\t\t}, '');\n\n\t\tsetValue('addresses.summary' as never, summaryVal as never);\n\t}, [setValue, watchedValues, country_data, state_data]);\n\n\tuseEffect(() => {\n\t\tif (itemData) {\n\t\t\t// Keep the row on the language it was saved with, otherwise an existing Arabic address\n\t\t\t// would be re-tagged as English and moved to the English table on save.\n\t\t\tsetLanguage(itemData?.language === 'ar' ? 'ar' : 'en');\n\t\t\t// The saved translation seeds the Arabic pane, so switching to it shows the Arabic data\n\t\t\t// rather than an empty form. It is held as a draft, never merged into the English pane.\n\t\t\tconst { arabic, ...englishData } = itemData;\n\t\t\tsetDrafts(\n\t\t\t\tarabic\n\t\t\t\t\t? {\n\t\t\t\t\t\tar: {\n\t\t\t\t\t\t\t...BLANK_ADDRESS,\n\t\t\t\t\t\t\t...arabic,\n\t\t\t\t\t\t\tcountry: arabic?.country?.id ?? arabic?.country,\n\t\t\t\t\t\t\tstate: arabic?.state?.id ?? arabic?.state\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t: {}\n\t\t\t);\n\t\t\treset({\n\t\t\t\taddresses: {\n\t\t\t\t\t...BLANK_ADDRESS,\n\t\t\t\t\t...englishData,\n\t\t\t\t\tcountry: englishData?.country?.id,\n\t\t\t\t\tstate: englishData?.state?.id\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}, [itemData, reset]);\n\n\tuseEffect(() => {\n\t\tif (isOpen && !itemData) {\n\t\t\tsetLanguage('en');\n\t\t\tsetDrafts({});\n\t\t\treset({\n\t\t\t\taddresses: {\n\t\t\t\t\t...BLANK_ADDRESS,\n\t\t\t\t\taddress_type: 'Office',\n\t\t\t\t\tcontact_name: prefillData?.contact_name || '',\n\t\t\t\t\tmobile: prefillData?.mobile || ''\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}, [isOpen, itemData, prefillData?.contact_name, prefillData?.mobile, reset]);\n\n\tconst setDetailsData = (data: any[], key: string) => {\n\t\tsetEntryDetails((prev) => ({ ...prev, [key]: data }));\n\t};\n\n\tuseEffect(() => {\n\t\tif (isDirtyC) {\n\t\t\tsetValue('addresses.state', null);\n\t\t}\n\t}, [selectedCountry, isDirtyC]);\n\n\tconst stateFilter = useMemo(() => {\n\t\treturn { '&country_id.eq': selectedCountry || 0 }\n\t}, [selectedCountry]);\n\n\treturn (\n\t\t<Modal\n\t\t\topen={isOpen}\n\t\t\tonClose={setIsOpen}\n\t\t\tmaxWidth='md'\n\t\t\tfullWidth\n\t\t\t{...modalProps}>\n\t\t\t<form onSubmit={handleSubmit(onSubmit)}>\n\t\t\t\t{submitLoading && <FormLoader />}\n\t\t\t\t<DialogTitle className='addressModal--Title'>\n\t\t\t\t\t<Typography type='s3' color='inherit' weight='medium'>\n\t\t\t\t\t\t{t(`accounting.${translationKey}.addressModal.title`)}\n\t\t\t\t\t</Typography>\n\t\t\t\t\t<IconButton onClick={handleModalClose}>\n\t\t\t\t\t\t<Close fontSize='small' />\n\t\t\t\t\t</IconButton>\n\t\t\t\t</DialogTitle>\n\t\t\t\t<DialogContent>\n\t\t\t\t\t<RadioGroup\n\t\t\t\t\t\tclassName='addressModal--LanguageSwitch'\n\t\t\t\t\t\trow\n\t\t\t\t\t\tvalue={language}\n\t\t\t\t\t\tonChange={(e) => handleLanguageChange(e.target.value as 'en' | 'ar')}>\n\t\t\t\t\t\t<FormControlLabel value='en' control={<Radio />} label='English' />\n\t\t\t\t\t\t<FormControlLabel value='ar' control={<Radio />} label='Arabic' />\n\t\t\t\t\t</RadioGroup>\n\t\t\t\t\t<Grid container rowGap={1.5} columnSpacing={3} pt={3}>\n\t\t\t\t\t\t{language === 'en' && (\n\t\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t\t<DynamicSearchSelect\n\t\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.address_type_label`)}\n\t\t\t\t\t\t\t\t\toptions={addressTypeOptions}\n\t\t\t\t\t\t\t\t\tname='address_type'\n\t\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.address_type_placeholder`)}\n\t\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.contact_name_label`)}\n\t\t\t\t\t\t\t\tname='contact_name'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.contact_name_placeholder`)}\n\t\t\t\t\t\t\t\trequired={language === 'en'}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicPhone\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.mobile_label`)}\n\t\t\t\t\t\t\t\tname='mobile'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tsetCountryCodeField={(country: CountryData) =>\n\t\t\t\t\t\t\t\t\thandleSetCountryCodeField(country)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.address1_label`)}\n\t\t\t\t\t\t\t\tname='street_1'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.address1_placeholder`)}\n\t\t\t\t\t\t\t\trequired={language === 'en'}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.address2_label`)}\n\t\t\t\t\t\t\t\tname='street_2'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.address2_placeholder`)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.address3_label`)}\n\t\t\t\t\t\t\t\tname='street_3'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.address3_placeholder`)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t{isKSA && <Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.streetName_label`)}\n\t\t\t\t\t\t\t\tname='street_name'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.streetName_placeholder`)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>}\n\t\t\t\t\t\t{isKSA && <>\n\t\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.buildingNo_label`)}\n\t\t\t\t\t\t\t\t\tname='building_no'\n\t\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\t\tplaceholder='Enter Building No.'\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.additionalNo_label`)}\n\t\t\t\t\t\t\t\t\tname='additional_no'\n\t\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\t\tplaceholder='Enter Additional No.'\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t</>}\n\t\t\t\t\t\t{isKSA && <Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.nationalAddress_label`)}\n\t\t\t\t\t\t\t\tname='national_address'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.nationalAddress_placeholder`)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>}\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.zip_code_label`)}\n\t\t\t\t\t\t\t\tname='zip_code'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.zip_code_placeholder`)}\n\t\t\t\t\t\t\t\trequired={!optionalFields.includes('zip_code') && language === 'en'}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t{language === 'en' && (\n\t\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t\t<DynamicSearchSelect\n\t\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.country_label`)}\n\t\t\t\t\t\t\t\t\tname='country'\n\t\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.country_placeholder`)}\n\t\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\t\tapiType='countries'\n\t\t\t\t\t\t\t\t\tgetSelectedData={(row: any[]) =>\n\t\t\t\t\t\t\t\t\t\tsetDetailsData(row, 'country_data')\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{language === 'en' && (\n\t\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t\t<DynamicSearchSelect\n\t\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.state_label`)}\n\t\t\t\t\t\t\t\t\tname='state'\n\t\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.state_placeholder`)}\n\t\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\t\tapiType='states'\n\t\t\t\t\t\t\t\t\tcustomeFilter={stateFilter}\n\t\t\t\t\t\t\t\t\tgetSelectedData={(row: any[]) =>\n\t\t\t\t\t\t\t\t\t\tsetDetailsData(row, 'state_data')\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.city_label`)}\n\t\t\t\t\t\t\t\tname='city'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.city_placeholder`)}\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t{isKSA && <Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.districtName_label`)}\n\t\t\t\t\t\t\t\tname='district_name'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.districtName_placeholder`)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>}\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.summary_label`)}\n\t\t\t\t\t\t\t\tname='summary'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.summary_placeholder`)}\n\t\t\t\t\t\t\t\tis_multiline\n\t\t\t\t\t\t\t\tdisabled\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t{language === 'en' && (\n\t\t\t\t\t\t\t<Grid item sm={12}>\n\t\t\t\t\t\t\t\t<DynamicCheckBox\n\t\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\t\tname='default_shipping_address'\n\t\t\t\t\t\t\t\t\ttitle={t(`accounting.${translationKey}.addressModal.default_shipping_address_label`)}\n\t\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\t\ttitlePosition='end'\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{language === 'en' && (\n\t\t\t\t\t\t\t<Grid item sm={12}>\n\t\t\t\t\t\t\t\t<DynamicCheckBox\n\t\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\t\tname='default_billing_address'\n\t\t\t\t\t\t\t\t\ttitle={t(`accounting.${translationKey}.addressModal.default_billing_address_label`)}\n\t\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\t\ttitlePosition='end'\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Grid>\n\t\t\t\t</DialogContent>\n\t\t\t\t<DialogActions\n\t\t\t\t\tclassName={`addressModal--ActionContainer ${!itemData && 'addressModal--ActionContainer--FlexEnd'}`}>\n\t\t\t\t\t{itemData && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName='addressModal--ActionContainer--WhiteBtn'\n\t\t\t\t\t\t\tstartIcon={<Copy />}\n\t\t\t\t\t\t\tdisabled={submitLoading}\n\t\t\t\t\t\t\tonClick={() => handleDuplicate()}>\n\t\t\t\t\t\t\t{t(\"common.duplicate\")}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)}\n\t\t\t\t\t<Box display='flex' gap={1.5}>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName='addressModal--ActionContainer--WhiteBtn'\n\t\t\t\t\t\t\tonClick={handleModalClose}\n\t\t\t\t\t\t\tdisabled={submitLoading}>\n\t\t\t\t\t\t\t{t(\"common.cancel\")}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ttype='submit'\n\t\t\t\t\t\t\tendIcon={\n\t\t\t\t\t\t\t\tsubmitLoading ? (\n\t\t\t\t\t\t\t\t\t<CircularProgress size={20} color='inherit' />\n\t\t\t\t\t\t\t\t) : undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdisabled={submitLoading}>\n\t\t\t\t\t\t\t{t(\"common.save\")}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</Box>\n\t\t\t\t</DialogActions>\n\t\t\t</form>\n\t\t</Modal>\n\t);\n};\n\nexport default AddressModal;\n"],"names":["Yup","useTranslation","getApiConfigSafe","useState","useMemo","useForm","yupResolver","useWatch","enqueueSnackbar","_a","useEffect","_b","jsx","Modal","jsxs","FormLoader","DialogTitle","Typography","IconButton","Close","DialogContent","RadioGroup","FormControlLabel","Radio","Grid","DynamicSearchSelect","DynamicInput","DynamicPhone","Fragment","DynamicCheckBox","DialogActions","Button","Copy","Box","CircularProgress"],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@ import { D as DynamicInput } from "./text-BWoRoA4r.esm.js";
|
|
|
15
15
|
import { D as DynamicPhone } from "./phone-4yVXJQwX.esm.js";
|
|
16
16
|
import { D as DynamicCheckBox } from "./checkbox-mx9cWG2N.esm.js";
|
|
17
17
|
import { enqueueSnackbar } from "notistack";
|
|
18
|
-
import { D as DynamicSearchSelect } from "./searchable-select-
|
|
18
|
+
import { D as DynamicSearchSelect } from "./searchable-select-0F6E4XAr.esm.js";
|
|
19
19
|
import { useTranslation } from "react-i18next";
|
|
20
20
|
import { getApiConfigSafe } from "../utils/api-config/index.esm.js";
|
|
21
21
|
const addressTypeOptions = [
|
|
@@ -668,4 +668,4 @@ const AddressModal = ({
|
|
|
668
668
|
export {
|
|
669
669
|
AddressModal as A
|
|
670
670
|
};
|
|
671
|
-
//# sourceMappingURL=address-modal-
|
|
671
|
+
//# sourceMappingURL=address-modal-CkDBjnye.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"address-modal-DRT30GGc.esm.js","sources":["../../src/components/address-modal/address-modal.tsx"],"sourcesContent":["import './address-modal.scss';\n\nimport { Close } from '@mui/icons-material';\nimport {\n\tBox,\n\tCircularProgress,\n\tDialogActions,\n\tDialogContent,\n\tDialogTitle,\n\tDialogProps,\n\tFormControlLabel,\n\tGrid,\n\tIconButton,\n\tRadioGroup\n} from '@mui/material';\nimport Modal from '../modal/modal';\nimport Typography from '../typography/typography';\nimport { useEffect, useMemo, useState } from 'react';\nimport { useForm, useWatch } from 'react-hook-form';\nimport Radio from '../radio/radio';\n\nimport Button from '../button/button';\nimport { Copy } from '../icons';\n\nimport * as Yup from 'yup';\nimport { yupResolver } from '@hookform/resolvers/yup';\nimport { FormLoader } from '../loaders';\nimport DynamicInput from '../form-control/form-builder/form-builder-element/text';\nimport DynamicPhone from '../form-control/form-builder/form-builder-element/phone';\nimport { CountryData } from 'react-phone-input-2';\nimport DynamicCheckBox from '../form-control/form-builder/form-builder-element/checkbox';\nimport { enqueueSnackbar } from 'notistack';\nimport DynamicSearchSelect from '../form-control/form-builder/form-builder-element/dynamic-select';\nimport { useTranslation } from 'react-i18next';\nimport { getApiConfigSafe } from '../../utils/api-config';\n\ninterface IFormInput {\n\taddresses: {\n\t\taddress_type?: string;\n\t\tcontact_name?: string;\n\t\tdefault_shipping_address?: boolean;\n\t\tdefault_billing_address?: boolean;\n\t\tcountry_code?: string;\n\t\tmobile?: string;\n\t\tstreet_1?: string;\n\t\tstreet_2?: string;\n\t\tstreet_3?: string;\n\t\tstreet_name?: string;\n\t\tbuilding_no?: string;\n\t\tadditional_no?: string;\n\t\tnational_address?: string;\n\t\tzip_code?: string;\n\t\tcity?: string;\n\t\tdistrict_name?: string;\n\t\tstate?: number | null;\n\t\tcountry?: number | null;\n\t\tsummary?: string;\n\t};\n}\n\ninterface AddressModalProps {\n\tisOpen: boolean;\n\tsetIsOpen: () => void;\n\tmodalProps?: DialogProps;\n\titemData?: any;\n\titemIndex: number;\n\titems?: any;\n\tprefillData?: {\n\t\tcontact_name?: string;\n\t\tmobile?: string;\n\t};\n\tonSave: (data: any, itemIndex?: number) => void;\n\ttranslationKey: string;\n\toptionalFields?: string[];\n}\n\nconst addressTypeOptions = [\n\t{ label: 'Delivery', value: 'Delivery' },\n\t{ label: 'Shipping', value: 'Shipping' },\n\t{ label: 'Office', value: 'Office' }\n];\n\n// excludeEmptyString matters: without it yup runs the pattern against '' and fails, so clearing an\n// optional field would report a format error instead of simply being empty. Note it only works in\n// the options-object form - passing it as a third argument is ignored.\nconst zipCodeRule = Yup.string()\n\t.matches(/^[0-9\\u0660-\\u0669]+$/, {\n\t\tmessage: 'Zip code must contain only digits without special characters',\n\t\texcludeEmptyString: true\n\t})\n\t.test(\n\t\t'no-dot-plus',\n\t\t'Zip code must not contain \".\" or \"+\"',\n\t\t(value) => !value?.includes('.') && !value?.includes('+')\n\t);\n\nconst cityRule = Yup.string().matches(/^[A-Za-z\\u0600-\\u06FF\\s]+$/, {\n\tmessage: 'City must contain alphabets only',\n\texcludeEmptyString: true\n});\n\n// Fields that mean a pane was actually filled in. summary, country_code and the default flags are\n// derived or auto-populated, so they are not proof that the user entered anything.\nconst ADDRESS_CONTENT_FIELDS = [\n\t'address_type',\n\t'contact_name',\n\t'mobile',\n\t'street_1',\n\t'street_2',\n\t'street_3',\n\t'street_name',\n\t'building_no',\n\t'additional_no',\n\t'national_address',\n\t'zip_code',\n\t'city',\n\t'district_name',\n\t'state',\n\t'country'\n];\n\n// Every field has to be named when resetting a pane. react-hook-form leaves a field untouched if\n// its name is absent from the reset payload, so an address opened for edit would keep showing its\n// values on the other language's pane.\nconst BLANK_ADDRESS = {\n\taddress_type: '',\n\tcontact_name: '',\n\tcountry_code: '',\n\tmobile: '',\n\tstreet_1: '',\n\tstreet_2: '',\n\tstreet_3: '',\n\tstreet_name: '',\n\tbuilding_no: '',\n\tadditional_no: '',\n\tnational_address: '',\n\tzip_code: '',\n\tcity: '',\n\tdistrict_name: '',\n\tstate: null,\n\tcountry: null,\n\tsummary: '',\n\tdefault_shipping_address: false,\n\tdefault_billing_address: false\n};\n\nconst hasValues = (values?: any) =>\n\t!!values &&\n\tADDRESS_CONTENT_FIELDS.some((field) => {\n\t\tconst value = values[field];\n\t\treturn value !== undefined && value !== null && String(value).trim() !== '';\n\t});\n\nconst buildValidationSchema = (isKSA: boolean, optionalFields: string[] = []) => {\n\tconst zipOptional = optionalFields.includes('zip_code');\n\tconst stateOptional = optionalFields.includes('state');\n\n\treturn Yup.object().shape({\n\t\taddresses: Yup.object().shape({\n\t\t\taddress_type: Yup.string().required('Address type is required'),\n\t\t\tcontact_name: Yup.string().required('Contact name is required'),\n\t\t\tstreet_1: Yup.string().required('Address 1 is required'),\n\t\t\tstreet_2: Yup.string().nullable(),\n\t\t\tstreet_3: Yup.string().nullable(),\n\t\t\t...(isKSA ? { building_no: Yup.string().nullable(), additional_no: Yup.string().nullable() } : {}),\n\t\t\tzip_code: zipOptional\n\t\t\t\t? Yup.string()\n\t\t\t\t\t\t.nullable()\n\t\t\t\t\t\t.test(\n\t\t\t\t\t\t\t'optional-digits',\n\t\t\t\t\t\t\t'Zip code must contain only digits without special characters',\n\t\t\t\t\t\t\t(value) =>\n\t\t\t\t\t\t\t\t!value ||\n\t\t\t\t\t\t\t\t(!value.includes('.') &&\n\t\t\t\t\t\t\t\t\t!value.includes('+') &&\n\t\t\t\t\t\t\t\t\t/^[0-9]+$/.test(value))\n\t\t\t\t\t\t)\n\t\t\t\t: Yup.string()\n\t\t\t\t\t\t.required('Zip code is required')\n\t\t\t\t\t\t.matches(/^[0-9]+$/, 'Zip code must contain only digits without special characters')\n\t\t\t\t\t\t.test(\n\t\t\t\t\t\t\t'no-dot-plus',\n\t\t\t\t\t\t\t'Zip code must not contain \".\" or \"+\"',\n\t\t\t\t\t\t\t(value) => !value?.includes('.') && !value?.includes('+')\n\t\t\t\t\t\t),\n\t\t\tcity: Yup.string()\n\t\t\t\t.matches(/^[A-Za-z\\s]+$/, 'City must contain alphabets only'),\n\t\t\tstate: stateOptional\n\t\t\t\t? Yup.number()\n\t\t\t\t\t\t.nullable()\n\t\t\t\t\t\t.typeError('State is not valid')\n\t\t\t\t: Yup.number()\n\t\t\t\t\t\t.typeError('State is required')\n\t\t\t\t\t\t.required('State is required'),\n\t\t\tcountry: Yup.number()\n\t\t\t\t.typeError('Country is required')\n\t\t\t\t.required('Country is required')\n\t\t})\n\t});\n};\n\n// The Arabic pane is a translation of an address that was already filled in English: the dropdowns\n// are hidden and inherited from the English pane, so nothing here is required. Format rules that\n// accept Arabic characters are kept.\nconst arabicValidationSchema = Yup.object().shape({\n\taddresses: Yup.object().shape({\n\t\tzip_code: zipCodeRule,\n\t\tcity: cityRule\n\t})\n});\n\nconst AddressModal: React.FC<AddressModalProps> = ({\n\tisOpen,\n\tsetIsOpen,\n\tmodalProps,\n\titemData,\n\titemIndex,\n\titems,\n\tprefillData,\n\tonSave,\n\ttranslationKey,\n\toptionalFields = [],\n}) => {\n\tconst { t } = useTranslation();\n\tconst isKSA = getApiConfigSafe()?.countryEnv === 'ksa';\n\tconst [submitLoading, setSubmitLoading] = useState<boolean>(false);\n\tconst [language, setLanguage] = useState<'en' | 'ar'>('en');\n\t// Field values of the language that is not on screen, so switching back and forth keeps both.\n\tconst [drafts, setDrafts] = useState<{ en?: any; ar?: any }>({});\n\tconst [entryDetails, setEntryDetails] = useState<Record<string, any>>({\n\t\tcountry_data: null,\n\t\tstate_data: null\n\t});\n\n\tconst validationSchema = useMemo(\n\t\t() => buildValidationSchema(isKSA, optionalFields),\n\t\t[isKSA, optionalFields]\n\t);\n\n\tconst { country_data, state_data } = entryDetails;\n\n\tconst {\n\t\tcontrol,\n\t\thandleSubmit,\n\t\tsetValue,\n\t\treset,\n\t\tgetValues,\n\t\twatch,\n\t\ttrigger,\n\t\tgetFieldState\n\t} = useForm<IFormInput>({\n\t\tresolver: yupResolver(language === 'ar' ? arabicValidationSchema : validationSchema),\n\t\tmode: 'all'\n\t});\n\n\tconst watchedValues = useWatch({\n\t\tcontrol: control,\n\t\tname: [\n\t\t\t'addresses.contact_name',\n\t\t\t'addresses.street_1',\n\t\t\t'addresses.street_2',\n\t\t\t'addresses.street_3',\n\t\t\t'addresses.street_name',\n\t\t\t'addresses.building_no',\n\t\t\t'addresses.additional_no',\n\t\t\t'addresses.national_address',\n\t\t\t'addresses.zip_code',\n\t\t\t'addresses.city',\n\t\t\t'addresses.district_name',\n\t\t\t'addresses.state',\n\t\t\t'addresses.country'\n\t\t]\n\t});\n\n\tconst selectedCountry = watch('addresses.country');\n\tconst isDirtyC = getFieldState('addresses.country')?.isDirty || false;\n\n\tconst onSubmit = (values: any) => {\n\t\tsetSubmitLoading(true);\n\t\thandleValidateSave(values);\n\t\tsetSubmitLoading(false);\n\t};\n\n\t// Arabic is a translation of the English address, so the English pane has to be valid before it\n\t// can be opened. Each pane keeps its own values while the modal stays open.\n\tconst handleLanguageChange = async (next: 'en' | 'ar') => {\n\t\tif (next === language) {\n\t\t\treturn;\n\t\t}\n\n\t\t// The gate only applies to starting the Arabic pane. Once it holds values - a new translation\n\t\t// in progress, or an existing Arabic row being edited - switching back to it is navigation,\n\t\t// not a fresh start, and must never be blocked.\n\t\tif (next === 'ar' && !hasValues(drafts.ar)) {\n\t\t\tconst isEnglishValid = await trigger();\n\t\t\tif (!isEnglishValid) {\n\t\t\t\tenqueueSnackbar(\n\t\t\t\t\tt(`accounting.${translationKey}.msg.fill_english_address_first`, {\n\t\t\t\t\t\tdefaultValue: 'Please fill the English address first'\n\t\t\t\t\t}),\n\t\t\t\t\t{ variant: 'error' }\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tconst current = getValues()?.addresses;\n\t\tsetDrafts((prev) => ({ ...prev, [language]: current }));\n\t\tsetLanguage(next);\n\t\treset({\n\t\t\taddresses: { ...BLANK_ADDRESS, ...(drafts[next] ?? {}) } as IFormInput['addresses']\n\t\t});\n\t};\n\n\tconst handleDuplicate = async () => {\n\t\tconst v = await trigger();\n\t\tif (!v) {\n\t\t\treturn;\n\t\t}\n\t\tlet values = getValues();\n\t\tvalues = {\n\t\t\t...values,\n\t\t\taddresses: {\n\t\t\t\t...values?.addresses,\n\t\t\t\tdefault_shipping_address: false,\n\t\t\t\tdefault_billing_address: false,\n\t\t\t\tcountry: country_data,\n\t\t\t\tstate: state_data,\n\t\t\t\tlanguage\n\t\t\t}\n\t\t};\n\t\tsetSubmitLoading(true);\n\t\tonSave({ ...values });\n\t\thandleModalClose();\n\t\tsetSubmitLoading(false);\n\t};\n\n\tconst handleValidateSave = (values: any) => {\n\t\tconst validateDefaults = (data: any, index: number, type = 'shipping') => {\n\t\t\tconst u_data = [...data];\n\t\t\tif (index != null && index >= 0) {\n\t\t\t\tu_data?.splice(index, 1);\n\t\t\t}\n\n\t\t\tif (type == 'shipping') {\n\t\t\t\tconst hasDFS = u_data.some((d: any) => d?.default_shipping_address);\n\t\t\t\tif (hasDFS) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\tt(`accounting.${translationKey}.msg.default_shipping_address_msg`)\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t} else {\n\t\t\t\tconst hasDFB = u_data.some((d: any) => d?.default_billing_address);\n\t\t\t\tif (hasDFB) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\tt(`accounting.${translationKey}.msg.default_billing_address_msg`)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t};\n\n\t\ttry {\n\t\t\t// The pane on screen holds the live values, the other one its stored draft.\n\t\t\tlet englishValues = language === 'en' ? values?.addresses : drafts.en;\n\t\t\tconst arabicValues = language === 'ar' ? values?.addresses : drafts.ar;\n\n\t\t\t// The default flags only exist on the English pane, so they are checked there whichever\n\t\t\t// pane happens to be open at save time.\n\t\t\tif (englishValues?.default_shipping_address) {\n\t\t\t\tvalidateDefaults(items, itemIndex, 'shipping');\n\t\t\t}\n\n\t\t\tif (englishValues?.default_billing_address) {\n\t\t\t\tvalidateDefaults(items, itemIndex, 'billing');\n\t\t\t}\n\n\t\t\tif (englishValues && items && items?.length === 0) {\n\t\t\t\tenglishValues = {\n\t\t\t\t\t...englishValues,\n\t\t\t\t\tdefault_shipping_address: true,\n\t\t\t\t\tdefault_billing_address: true\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// One address is one row in the list. Its Arabic translation rides along nested under\n\t\t\t// `arabic` so the pair stays together, in the list and in the payload.\n\t\t\tif (!hasValues(englishValues) && !hasValues(arabicValues)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// An address that only ever had Arabic data stays Arabic-only, otherwise it would be\n\t\t\t// rewritten as an empty English row.\n\t\t\tif (!hasValues(englishValues)) {\n\t\t\t\tonSave(\n\t\t\t\t\t{\n\t\t\t\t\t\t...values,\n\t\t\t\t\t\taddresses: {\n\t\t\t\t\t\t\t...arabicValues,\n\t\t\t\t\t\t\taddress_type: arabicValues?.address_type || itemData?.address_type,\n\t\t\t\t\t\t\tcountry: country_data,\n\t\t\t\t\t\t\tstate: state_data,\n\t\t\t\t\t\t\tlanguage: 'ar'\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\titemIndex\n\t\t\t\t);\n\t\t\t\thandleModalClose();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst row: any = {\n\t\t\t\t...englishValues,\n\t\t\t\tcountry: country_data,\n\t\t\t\tstate: state_data,\n\t\t\t\tlanguage: 'en'\n\t\t\t};\n\n\t\t\t// Always set the key, never leave it out: the list merges the saved row over the old one, so\n\t\t\t// an absent `arabic` would silently keep a translation the user just cleared.\n\t\t\t// The dropdowns are hidden on the Arabic pane, so the backend fills those columns from the\n\t\t\t// English row - address_type in particular is NOT NULL on party_address_arabic.\n\t\t\trow.arabic = hasValues(arabicValues)\n\t\t\t\t? { ...arabicValues, id: itemData?.arabic?.id }\n\t\t\t\t: null;\n\n\t\t\tonSave({ ...values, addresses: row }, itemIndex);\n\t\t\thandleModalClose();\n\t\t} catch (error) {\n\t\t\tenqueueSnackbar(error?.message || 'Something went wrong', {\n\t\t\t\tvariant: 'error'\n\t\t\t});\n\t\t}\n\t};\n\n\tconst handleModalClose = () => {\n\t\treset({ addresses: null });\n\t\tsetDrafts({});\n\t\tsetLanguage('en');\n\t\tsetEntryDetails({\n\t\t\tstate_data: null,\n\t\t\tcountry_data: null\n\t\t});\n\t\tsetIsOpen();\n\t};\n\n\tconst handleSetCountryCodeField = (country: CountryData) => {\n\t\tconst values = getValues();\n\t\tconst oldVal = values?.addresses?.country_code;\n\t\tconst newVal = `+${country.dialCode}`;\n\t\tif (oldVal !== newVal) {\n\t\t\tsetValue(`addresses.country_code` as never, newVal as never);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tconst summaryVal = watchedValues.reduce((ele, ele2, index) => {\n\t\t\tif (!ele2) return ele;\n\t\t\tif (!ele) return ele2;\n\n\t\t\tif (index === 11) {\n\t\t\t\tele2 = state_data\n\t\t\t}\n\t\t\tif (index === 12) {\n\t\t\t\tele2 = country_data\n\t\t\t}\n\n\t\t\tele = ele?.name || ele;\n\t\t\tele2 = ele2?.name || ele2;\n\t\t\tif ([2, 3, 4, 5, 6, 7].includes(index)) {\n\t\t\t\treturn ele + ' ' + ele2;\n\t\t\t}\n\t\t\treturn ele + ', \\n' + ele2;\n\t\t}, '');\n\n\t\tsetValue('addresses.summary' as never, summaryVal as never);\n\t}, [setValue, watchedValues, country_data, state_data]);\n\n\tuseEffect(() => {\n\t\tif (itemData) {\n\t\t\t// Keep the row on the language it was saved with, otherwise an existing Arabic address\n\t\t\t// would be re-tagged as English and moved to the English table on save.\n\t\t\tsetLanguage(itemData?.language === 'ar' ? 'ar' : 'en');\n\t\t\t// The saved translation seeds the Arabic pane, so switching to it shows the Arabic data\n\t\t\t// rather than an empty form. It is held as a draft, never merged into the English pane.\n\t\t\tconst { arabic, ...englishData } = itemData;\n\t\t\tsetDrafts(\n\t\t\t\tarabic\n\t\t\t\t\t? {\n\t\t\t\t\t\tar: {\n\t\t\t\t\t\t\t...BLANK_ADDRESS,\n\t\t\t\t\t\t\t...arabic,\n\t\t\t\t\t\t\tcountry: arabic?.country?.id ?? arabic?.country,\n\t\t\t\t\t\t\tstate: arabic?.state?.id ?? arabic?.state\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t: {}\n\t\t\t);\n\t\t\treset({\n\t\t\t\taddresses: {\n\t\t\t\t\t...BLANK_ADDRESS,\n\t\t\t\t\t...englishData,\n\t\t\t\t\tcountry: englishData?.country?.id,\n\t\t\t\t\tstate: englishData?.state?.id\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}, [itemData, reset]);\n\n\tuseEffect(() => {\n\t\tif (isOpen && !itemData) {\n\t\t\tsetLanguage('en');\n\t\t\tsetDrafts({});\n\t\t\treset({\n\t\t\t\taddresses: {\n\t\t\t\t\t...BLANK_ADDRESS,\n\t\t\t\t\taddress_type: 'Office',\n\t\t\t\t\tcontact_name: prefillData?.contact_name || '',\n\t\t\t\t\tmobile: prefillData?.mobile || ''\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}, [isOpen, itemData, prefillData?.contact_name, prefillData?.mobile, reset]);\n\n\tconst setDetailsData = (data: any[], key: string) => {\n\t\tsetEntryDetails((prev) => ({ ...prev, [key]: data }));\n\t};\n\n\tuseEffect(() => {\n\t\tif (isDirtyC) {\n\t\t\tsetValue('addresses.state', null);\n\t\t}\n\t}, [selectedCountry, isDirtyC]);\n\n\tconst stateFilter = useMemo(() => {\n\t\treturn { '&country_id.eq': selectedCountry || 0 }\n\t}, [selectedCountry]);\n\n\treturn (\n\t\t<Modal\n\t\t\topen={isOpen}\n\t\t\tonClose={setIsOpen}\n\t\t\tmaxWidth='md'\n\t\t\tfullWidth\n\t\t\t{...modalProps}>\n\t\t\t<form onSubmit={handleSubmit(onSubmit)}>\n\t\t\t\t{submitLoading && <FormLoader />}\n\t\t\t\t<DialogTitle className='addressModal--Title'>\n\t\t\t\t\t<Typography type='s3' color='inherit' weight='medium'>\n\t\t\t\t\t\t{t(`accounting.${translationKey}.addressModal.title`)}\n\t\t\t\t\t</Typography>\n\t\t\t\t\t<IconButton onClick={handleModalClose}>\n\t\t\t\t\t\t<Close fontSize='small' />\n\t\t\t\t\t</IconButton>\n\t\t\t\t</DialogTitle>\n\t\t\t\t<DialogContent>\n\t\t\t\t\t<RadioGroup\n\t\t\t\t\t\tclassName='addressModal--LanguageSwitch'\n\t\t\t\t\t\trow\n\t\t\t\t\t\tvalue={language}\n\t\t\t\t\t\tonChange={(e) => handleLanguageChange(e.target.value as 'en' | 'ar')}>\n\t\t\t\t\t\t<FormControlLabel value='en' control={<Radio />} label='English' />\n\t\t\t\t\t\t<FormControlLabel value='ar' control={<Radio />} label='Arabic' />\n\t\t\t\t\t</RadioGroup>\n\t\t\t\t\t<Grid container rowGap={1.5} columnSpacing={3} pt={3}>\n\t\t\t\t\t\t{language === 'en' && (\n\t\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t\t<DynamicSearchSelect\n\t\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.address_type_label`)}\n\t\t\t\t\t\t\t\t\toptions={addressTypeOptions}\n\t\t\t\t\t\t\t\t\tname='address_type'\n\t\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.address_type_placeholder`)}\n\t\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.contact_name_label`)}\n\t\t\t\t\t\t\t\tname='contact_name'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.contact_name_placeholder`)}\n\t\t\t\t\t\t\t\trequired={language === 'en'}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicPhone\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.mobile_label`)}\n\t\t\t\t\t\t\t\tname='mobile'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tsetCountryCodeField={(country: CountryData) =>\n\t\t\t\t\t\t\t\t\thandleSetCountryCodeField(country)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.address1_label`)}\n\t\t\t\t\t\t\t\tname='street_1'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.address1_placeholder`)}\n\t\t\t\t\t\t\t\trequired={language === 'en'}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.address2_label`)}\n\t\t\t\t\t\t\t\tname='street_2'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.address2_placeholder`)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.address3_label`)}\n\t\t\t\t\t\t\t\tname='street_3'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.address3_placeholder`)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t{isKSA && <Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.streetName_label`)}\n\t\t\t\t\t\t\t\tname='street_name'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.streetName_placeholder`)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>}\n\t\t\t\t\t\t{isKSA && <>\n\t\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.buildingNo_label`)}\n\t\t\t\t\t\t\t\t\tname='building_no'\n\t\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\t\tplaceholder='Enter Building No.'\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.additionalNo_label`)}\n\t\t\t\t\t\t\t\t\tname='additional_no'\n\t\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\t\tplaceholder='Enter Additional No.'\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t</>}\n\t\t\t\t\t\t{isKSA && <Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.nationalAddress_label`)}\n\t\t\t\t\t\t\t\tname='national_address'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.nationalAddress_placeholder`)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>}\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.zip_code_label`)}\n\t\t\t\t\t\t\t\tname='zip_code'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.zip_code_placeholder`)}\n\t\t\t\t\t\t\t\trequired={!optionalFields.includes('zip_code') && language === 'en'}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t{language === 'en' && (\n\t\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t\t<DynamicSearchSelect\n\t\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.country_label`)}\n\t\t\t\t\t\t\t\t\tname='country'\n\t\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.country_placeholder`)}\n\t\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\t\tapiType='countries'\n\t\t\t\t\t\t\t\t\tgetSelectedData={(row: any[]) =>\n\t\t\t\t\t\t\t\t\t\tsetDetailsData(row, 'country_data')\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{language === 'en' && (\n\t\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t\t<DynamicSearchSelect\n\t\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.state_label`)}\n\t\t\t\t\t\t\t\t\tname='state'\n\t\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.state_placeholder`)}\n\t\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\t\tapiType='states'\n\t\t\t\t\t\t\t\t\tcustomeFilter={stateFilter}\n\t\t\t\t\t\t\t\t\tgetSelectedData={(row: any[]) =>\n\t\t\t\t\t\t\t\t\t\tsetDetailsData(row, 'state_data')\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.city_label`)}\n\t\t\t\t\t\t\t\tname='city'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.city_placeholder`)}\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t{isKSA && <Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.districtName_label`)}\n\t\t\t\t\t\t\t\tname='district_name'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.districtName_placeholder`)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>}\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.summary_label`)}\n\t\t\t\t\t\t\t\tname='summary'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.summary_placeholder`)}\n\t\t\t\t\t\t\t\tis_multiline\n\t\t\t\t\t\t\t\tdisabled\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t{language === 'en' && (\n\t\t\t\t\t\t\t<Grid item sm={12}>\n\t\t\t\t\t\t\t\t<DynamicCheckBox\n\t\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\t\tname='default_shipping_address'\n\t\t\t\t\t\t\t\t\ttitle={t(`accounting.${translationKey}.addressModal.default_shipping_address_label`)}\n\t\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\t\ttitlePosition='end'\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{language === 'en' && (\n\t\t\t\t\t\t\t<Grid item sm={12}>\n\t\t\t\t\t\t\t\t<DynamicCheckBox\n\t\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\t\tname='default_billing_address'\n\t\t\t\t\t\t\t\t\ttitle={t(`accounting.${translationKey}.addressModal.default_billing_address_label`)}\n\t\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\t\ttitlePosition='end'\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Grid>\n\t\t\t\t</DialogContent>\n\t\t\t\t<DialogActions\n\t\t\t\t\tclassName={`addressModal--ActionContainer ${!itemData && 'addressModal--ActionContainer--FlexEnd'}`}>\n\t\t\t\t\t{itemData && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName='addressModal--ActionContainer--WhiteBtn'\n\t\t\t\t\t\t\tstartIcon={<Copy />}\n\t\t\t\t\t\t\tdisabled={submitLoading}\n\t\t\t\t\t\t\tonClick={() => handleDuplicate()}>\n\t\t\t\t\t\t\t{t(\"common.duplicate\")}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)}\n\t\t\t\t\t<Box display='flex' gap={1.5}>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName='addressModal--ActionContainer--WhiteBtn'\n\t\t\t\t\t\t\tonClick={handleModalClose}\n\t\t\t\t\t\t\tdisabled={submitLoading}>\n\t\t\t\t\t\t\t{t(\"common.cancel\")}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ttype='submit'\n\t\t\t\t\t\t\tendIcon={\n\t\t\t\t\t\t\t\tsubmitLoading ? (\n\t\t\t\t\t\t\t\t\t<CircularProgress size={20} color='inherit' />\n\t\t\t\t\t\t\t\t) : undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdisabled={submitLoading}>\n\t\t\t\t\t\t\t{t(\"common.save\")}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</Box>\n\t\t\t\t</DialogActions>\n\t\t\t</form>\n\t\t</Modal>\n\t);\n};\n\nexport default AddressModal;\n"],"names":["_a","_b"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"address-modal-CkDBjnye.esm.js","sources":["../../src/components/address-modal/address-modal.tsx"],"sourcesContent":["import './address-modal.scss';\n\nimport { Close } from '@mui/icons-material';\nimport {\n\tBox,\n\tCircularProgress,\n\tDialogActions,\n\tDialogContent,\n\tDialogTitle,\n\tDialogProps,\n\tFormControlLabel,\n\tGrid,\n\tIconButton,\n\tRadioGroup\n} from '@mui/material';\nimport Modal from '../modal/modal';\nimport Typography from '../typography/typography';\nimport { useEffect, useMemo, useState } from 'react';\nimport { useForm, useWatch } from 'react-hook-form';\nimport Radio from '../radio/radio';\n\nimport Button from '../button/button';\nimport { Copy } from '../icons';\n\nimport * as Yup from 'yup';\nimport { yupResolver } from '@hookform/resolvers/yup';\nimport { FormLoader } from '../loaders';\nimport DynamicInput from '../form-control/form-builder/form-builder-element/text';\nimport DynamicPhone from '../form-control/form-builder/form-builder-element/phone';\nimport { CountryData } from 'react-phone-input-2';\nimport DynamicCheckBox from '../form-control/form-builder/form-builder-element/checkbox';\nimport { enqueueSnackbar } from 'notistack';\nimport DynamicSearchSelect from '../form-control/form-builder/form-builder-element/dynamic-select';\nimport { useTranslation } from 'react-i18next';\nimport { getApiConfigSafe } from '../../utils/api-config';\n\ninterface IFormInput {\n\taddresses: {\n\t\taddress_type?: string;\n\t\tcontact_name?: string;\n\t\tdefault_shipping_address?: boolean;\n\t\tdefault_billing_address?: boolean;\n\t\tcountry_code?: string;\n\t\tmobile?: string;\n\t\tstreet_1?: string;\n\t\tstreet_2?: string;\n\t\tstreet_3?: string;\n\t\tstreet_name?: string;\n\t\tbuilding_no?: string;\n\t\tadditional_no?: string;\n\t\tnational_address?: string;\n\t\tzip_code?: string;\n\t\tcity?: string;\n\t\tdistrict_name?: string;\n\t\tstate?: number | null;\n\t\tcountry?: number | null;\n\t\tsummary?: string;\n\t};\n}\n\ninterface AddressModalProps {\n\tisOpen: boolean;\n\tsetIsOpen: () => void;\n\tmodalProps?: DialogProps;\n\titemData?: any;\n\titemIndex: number;\n\titems?: any;\n\tprefillData?: {\n\t\tcontact_name?: string;\n\t\tmobile?: string;\n\t};\n\tonSave: (data: any, itemIndex?: number) => void;\n\ttranslationKey: string;\n\toptionalFields?: string[];\n}\n\nconst addressTypeOptions = [\n\t{ label: 'Delivery', value: 'Delivery' },\n\t{ label: 'Shipping', value: 'Shipping' },\n\t{ label: 'Office', value: 'Office' }\n];\n\n// excludeEmptyString matters: without it yup runs the pattern against '' and fails, so clearing an\n// optional field would report a format error instead of simply being empty. Note it only works in\n// the options-object form - passing it as a third argument is ignored.\nconst zipCodeRule = Yup.string()\n\t.matches(/^[0-9\\u0660-\\u0669]+$/, {\n\t\tmessage: 'Zip code must contain only digits without special characters',\n\t\texcludeEmptyString: true\n\t})\n\t.test(\n\t\t'no-dot-plus',\n\t\t'Zip code must not contain \".\" or \"+\"',\n\t\t(value) => !value?.includes('.') && !value?.includes('+')\n\t);\n\nconst cityRule = Yup.string().matches(/^[A-Za-z\\u0600-\\u06FF\\s]+$/, {\n\tmessage: 'City must contain alphabets only',\n\texcludeEmptyString: true\n});\n\n// Fields that mean a pane was actually filled in. summary, country_code and the default flags are\n// derived or auto-populated, so they are not proof that the user entered anything.\nconst ADDRESS_CONTENT_FIELDS = [\n\t'address_type',\n\t'contact_name',\n\t'mobile',\n\t'street_1',\n\t'street_2',\n\t'street_3',\n\t'street_name',\n\t'building_no',\n\t'additional_no',\n\t'national_address',\n\t'zip_code',\n\t'city',\n\t'district_name',\n\t'state',\n\t'country'\n];\n\n// Every field has to be named when resetting a pane. react-hook-form leaves a field untouched if\n// its name is absent from the reset payload, so an address opened for edit would keep showing its\n// values on the other language's pane.\nconst BLANK_ADDRESS = {\n\taddress_type: '',\n\tcontact_name: '',\n\tcountry_code: '',\n\tmobile: '',\n\tstreet_1: '',\n\tstreet_2: '',\n\tstreet_3: '',\n\tstreet_name: '',\n\tbuilding_no: '',\n\tadditional_no: '',\n\tnational_address: '',\n\tzip_code: '',\n\tcity: '',\n\tdistrict_name: '',\n\tstate: null,\n\tcountry: null,\n\tsummary: '',\n\tdefault_shipping_address: false,\n\tdefault_billing_address: false\n};\n\nconst hasValues = (values?: any) =>\n\t!!values &&\n\tADDRESS_CONTENT_FIELDS.some((field) => {\n\t\tconst value = values[field];\n\t\treturn value !== undefined && value !== null && String(value).trim() !== '';\n\t});\n\nconst buildValidationSchema = (isKSA: boolean, optionalFields: string[] = []) => {\n\tconst zipOptional = optionalFields.includes('zip_code');\n\tconst stateOptional = optionalFields.includes('state');\n\n\treturn Yup.object().shape({\n\t\taddresses: Yup.object().shape({\n\t\t\taddress_type: Yup.string().required('Address type is required'),\n\t\t\tcontact_name: Yup.string().required('Contact name is required'),\n\t\t\tstreet_1: Yup.string().required('Address 1 is required'),\n\t\t\tstreet_2: Yup.string().nullable(),\n\t\t\tstreet_3: Yup.string().nullable(),\n\t\t\t...(isKSA ? { building_no: Yup.string().nullable(), additional_no: Yup.string().nullable() } : {}),\n\t\t\tzip_code: zipOptional\n\t\t\t\t? Yup.string()\n\t\t\t\t\t\t.nullable()\n\t\t\t\t\t\t.test(\n\t\t\t\t\t\t\t'optional-digits',\n\t\t\t\t\t\t\t'Zip code must contain only digits without special characters',\n\t\t\t\t\t\t\t(value) =>\n\t\t\t\t\t\t\t\t!value ||\n\t\t\t\t\t\t\t\t(!value.includes('.') &&\n\t\t\t\t\t\t\t\t\t!value.includes('+') &&\n\t\t\t\t\t\t\t\t\t/^[0-9]+$/.test(value))\n\t\t\t\t\t\t)\n\t\t\t\t: Yup.string()\n\t\t\t\t\t\t.required('Zip code is required')\n\t\t\t\t\t\t.matches(/^[0-9]+$/, 'Zip code must contain only digits without special characters')\n\t\t\t\t\t\t.test(\n\t\t\t\t\t\t\t'no-dot-plus',\n\t\t\t\t\t\t\t'Zip code must not contain \".\" or \"+\"',\n\t\t\t\t\t\t\t(value) => !value?.includes('.') && !value?.includes('+')\n\t\t\t\t\t\t),\n\t\t\tcity: Yup.string()\n\t\t\t\t.matches(/^[A-Za-z\\s]+$/, 'City must contain alphabets only'),\n\t\t\tstate: stateOptional\n\t\t\t\t? Yup.number()\n\t\t\t\t\t\t.nullable()\n\t\t\t\t\t\t.typeError('State is not valid')\n\t\t\t\t: Yup.number()\n\t\t\t\t\t\t.typeError('State is required')\n\t\t\t\t\t\t.required('State is required'),\n\t\t\tcountry: Yup.number()\n\t\t\t\t.typeError('Country is required')\n\t\t\t\t.required('Country is required')\n\t\t})\n\t});\n};\n\n// The Arabic pane is a translation of an address that was already filled in English: the dropdowns\n// are hidden and inherited from the English pane, so nothing here is required. Format rules that\n// accept Arabic characters are kept.\nconst arabicValidationSchema = Yup.object().shape({\n\taddresses: Yup.object().shape({\n\t\tzip_code: zipCodeRule,\n\t\tcity: cityRule\n\t})\n});\n\nconst AddressModal: React.FC<AddressModalProps> = ({\n\tisOpen,\n\tsetIsOpen,\n\tmodalProps,\n\titemData,\n\titemIndex,\n\titems,\n\tprefillData,\n\tonSave,\n\ttranslationKey,\n\toptionalFields = [],\n}) => {\n\tconst { t } = useTranslation();\n\tconst isKSA = getApiConfigSafe()?.countryEnv === 'ksa';\n\tconst [submitLoading, setSubmitLoading] = useState<boolean>(false);\n\tconst [language, setLanguage] = useState<'en' | 'ar'>('en');\n\t// Field values of the language that is not on screen, so switching back and forth keeps both.\n\tconst [drafts, setDrafts] = useState<{ en?: any; ar?: any }>({});\n\tconst [entryDetails, setEntryDetails] = useState<Record<string, any>>({\n\t\tcountry_data: null,\n\t\tstate_data: null\n\t});\n\n\tconst validationSchema = useMemo(\n\t\t() => buildValidationSchema(isKSA, optionalFields),\n\t\t[isKSA, optionalFields]\n\t);\n\n\tconst { country_data, state_data } = entryDetails;\n\n\tconst {\n\t\tcontrol,\n\t\thandleSubmit,\n\t\tsetValue,\n\t\treset,\n\t\tgetValues,\n\t\twatch,\n\t\ttrigger,\n\t\tgetFieldState\n\t} = useForm<IFormInput>({\n\t\tresolver: yupResolver(language === 'ar' ? arabicValidationSchema : validationSchema),\n\t\tmode: 'all'\n\t});\n\n\tconst watchedValues = useWatch({\n\t\tcontrol: control,\n\t\tname: [\n\t\t\t'addresses.contact_name',\n\t\t\t'addresses.street_1',\n\t\t\t'addresses.street_2',\n\t\t\t'addresses.street_3',\n\t\t\t'addresses.street_name',\n\t\t\t'addresses.building_no',\n\t\t\t'addresses.additional_no',\n\t\t\t'addresses.national_address',\n\t\t\t'addresses.zip_code',\n\t\t\t'addresses.city',\n\t\t\t'addresses.district_name',\n\t\t\t'addresses.state',\n\t\t\t'addresses.country'\n\t\t]\n\t});\n\n\tconst selectedCountry = watch('addresses.country');\n\tconst isDirtyC = getFieldState('addresses.country')?.isDirty || false;\n\n\tconst onSubmit = (values: any) => {\n\t\tsetSubmitLoading(true);\n\t\thandleValidateSave(values);\n\t\tsetSubmitLoading(false);\n\t};\n\n\t// Arabic is a translation of the English address, so the English pane has to be valid before it\n\t// can be opened. Each pane keeps its own values while the modal stays open.\n\tconst handleLanguageChange = async (next: 'en' | 'ar') => {\n\t\tif (next === language) {\n\t\t\treturn;\n\t\t}\n\n\t\t// The gate only applies to starting the Arabic pane. Once it holds values - a new translation\n\t\t// in progress, or an existing Arabic row being edited - switching back to it is navigation,\n\t\t// not a fresh start, and must never be blocked.\n\t\tif (next === 'ar' && !hasValues(drafts.ar)) {\n\t\t\tconst isEnglishValid = await trigger();\n\t\t\tif (!isEnglishValid) {\n\t\t\t\tenqueueSnackbar(\n\t\t\t\t\tt(`accounting.${translationKey}.msg.fill_english_address_first`, {\n\t\t\t\t\t\tdefaultValue: 'Please fill the English address first'\n\t\t\t\t\t}),\n\t\t\t\t\t{ variant: 'error' }\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tconst current = getValues()?.addresses;\n\t\tsetDrafts((prev) => ({ ...prev, [language]: current }));\n\t\tsetLanguage(next);\n\t\treset({\n\t\t\taddresses: { ...BLANK_ADDRESS, ...(drafts[next] ?? {}) } as IFormInput['addresses']\n\t\t});\n\t};\n\n\tconst handleDuplicate = async () => {\n\t\tconst v = await trigger();\n\t\tif (!v) {\n\t\t\treturn;\n\t\t}\n\t\tlet values = getValues();\n\t\tvalues = {\n\t\t\t...values,\n\t\t\taddresses: {\n\t\t\t\t...values?.addresses,\n\t\t\t\tdefault_shipping_address: false,\n\t\t\t\tdefault_billing_address: false,\n\t\t\t\tcountry: country_data,\n\t\t\t\tstate: state_data,\n\t\t\t\tlanguage\n\t\t\t}\n\t\t};\n\t\tsetSubmitLoading(true);\n\t\tonSave({ ...values });\n\t\thandleModalClose();\n\t\tsetSubmitLoading(false);\n\t};\n\n\tconst handleValidateSave = (values: any) => {\n\t\tconst validateDefaults = (data: any, index: number, type = 'shipping') => {\n\t\t\tconst u_data = [...data];\n\t\t\tif (index != null && index >= 0) {\n\t\t\t\tu_data?.splice(index, 1);\n\t\t\t}\n\n\t\t\tif (type == 'shipping') {\n\t\t\t\tconst hasDFS = u_data.some((d: any) => d?.default_shipping_address);\n\t\t\t\tif (hasDFS) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\tt(`accounting.${translationKey}.msg.default_shipping_address_msg`)\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t} else {\n\t\t\t\tconst hasDFB = u_data.some((d: any) => d?.default_billing_address);\n\t\t\t\tif (hasDFB) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\tt(`accounting.${translationKey}.msg.default_billing_address_msg`)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t};\n\n\t\ttry {\n\t\t\t// The pane on screen holds the live values, the other one its stored draft.\n\t\t\tlet englishValues = language === 'en' ? values?.addresses : drafts.en;\n\t\t\tconst arabicValues = language === 'ar' ? values?.addresses : drafts.ar;\n\n\t\t\t// The default flags only exist on the English pane, so they are checked there whichever\n\t\t\t// pane happens to be open at save time.\n\t\t\tif (englishValues?.default_shipping_address) {\n\t\t\t\tvalidateDefaults(items, itemIndex, 'shipping');\n\t\t\t}\n\n\t\t\tif (englishValues?.default_billing_address) {\n\t\t\t\tvalidateDefaults(items, itemIndex, 'billing');\n\t\t\t}\n\n\t\t\tif (englishValues && items && items?.length === 0) {\n\t\t\t\tenglishValues = {\n\t\t\t\t\t...englishValues,\n\t\t\t\t\tdefault_shipping_address: true,\n\t\t\t\t\tdefault_billing_address: true\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// One address is one row in the list. Its Arabic translation rides along nested under\n\t\t\t// `arabic` so the pair stays together, in the list and in the payload.\n\t\t\tif (!hasValues(englishValues) && !hasValues(arabicValues)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// An address that only ever had Arabic data stays Arabic-only, otherwise it would be\n\t\t\t// rewritten as an empty English row.\n\t\t\tif (!hasValues(englishValues)) {\n\t\t\t\tonSave(\n\t\t\t\t\t{\n\t\t\t\t\t\t...values,\n\t\t\t\t\t\taddresses: {\n\t\t\t\t\t\t\t...arabicValues,\n\t\t\t\t\t\t\taddress_type: arabicValues?.address_type || itemData?.address_type,\n\t\t\t\t\t\t\tcountry: country_data,\n\t\t\t\t\t\t\tstate: state_data,\n\t\t\t\t\t\t\tlanguage: 'ar'\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\titemIndex\n\t\t\t\t);\n\t\t\t\thandleModalClose();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst row: any = {\n\t\t\t\t...englishValues,\n\t\t\t\tcountry: country_data,\n\t\t\t\tstate: state_data,\n\t\t\t\tlanguage: 'en'\n\t\t\t};\n\n\t\t\t// Always set the key, never leave it out: the list merges the saved row over the old one, so\n\t\t\t// an absent `arabic` would silently keep a translation the user just cleared.\n\t\t\t// The dropdowns are hidden on the Arabic pane, so the backend fills those columns from the\n\t\t\t// English row - address_type in particular is NOT NULL on party_address_arabic.\n\t\t\trow.arabic = hasValues(arabicValues)\n\t\t\t\t? { ...arabicValues, id: itemData?.arabic?.id }\n\t\t\t\t: null;\n\n\t\t\tonSave({ ...values, addresses: row }, itemIndex);\n\t\t\thandleModalClose();\n\t\t} catch (error) {\n\t\t\tenqueueSnackbar(error?.message || 'Something went wrong', {\n\t\t\t\tvariant: 'error'\n\t\t\t});\n\t\t}\n\t};\n\n\tconst handleModalClose = () => {\n\t\treset({ addresses: null });\n\t\tsetDrafts({});\n\t\tsetLanguage('en');\n\t\tsetEntryDetails({\n\t\t\tstate_data: null,\n\t\t\tcountry_data: null\n\t\t});\n\t\tsetIsOpen();\n\t};\n\n\tconst handleSetCountryCodeField = (country: CountryData) => {\n\t\tconst values = getValues();\n\t\tconst oldVal = values?.addresses?.country_code;\n\t\tconst newVal = `+${country.dialCode}`;\n\t\tif (oldVal !== newVal) {\n\t\t\tsetValue(`addresses.country_code` as never, newVal as never);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tconst summaryVal = watchedValues.reduce((ele, ele2, index) => {\n\t\t\tif (!ele2) return ele;\n\t\t\tif (!ele) return ele2;\n\n\t\t\tif (index === 11) {\n\t\t\t\tele2 = state_data\n\t\t\t}\n\t\t\tif (index === 12) {\n\t\t\t\tele2 = country_data\n\t\t\t}\n\n\t\t\tele = ele?.name || ele;\n\t\t\tele2 = ele2?.name || ele2;\n\t\t\tif ([2, 3, 4, 5, 6, 7].includes(index)) {\n\t\t\t\treturn ele + ' ' + ele2;\n\t\t\t}\n\t\t\treturn ele + ', \\n' + ele2;\n\t\t}, '');\n\n\t\tsetValue('addresses.summary' as never, summaryVal as never);\n\t}, [setValue, watchedValues, country_data, state_data]);\n\n\tuseEffect(() => {\n\t\tif (itemData) {\n\t\t\t// Keep the row on the language it was saved with, otherwise an existing Arabic address\n\t\t\t// would be re-tagged as English and moved to the English table on save.\n\t\t\tsetLanguage(itemData?.language === 'ar' ? 'ar' : 'en');\n\t\t\t// The saved translation seeds the Arabic pane, so switching to it shows the Arabic data\n\t\t\t// rather than an empty form. It is held as a draft, never merged into the English pane.\n\t\t\tconst { arabic, ...englishData } = itemData;\n\t\t\tsetDrafts(\n\t\t\t\tarabic\n\t\t\t\t\t? {\n\t\t\t\t\t\tar: {\n\t\t\t\t\t\t\t...BLANK_ADDRESS,\n\t\t\t\t\t\t\t...arabic,\n\t\t\t\t\t\t\tcountry: arabic?.country?.id ?? arabic?.country,\n\t\t\t\t\t\t\tstate: arabic?.state?.id ?? arabic?.state\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t: {}\n\t\t\t);\n\t\t\treset({\n\t\t\t\taddresses: {\n\t\t\t\t\t...BLANK_ADDRESS,\n\t\t\t\t\t...englishData,\n\t\t\t\t\tcountry: englishData?.country?.id,\n\t\t\t\t\tstate: englishData?.state?.id\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}, [itemData, reset]);\n\n\tuseEffect(() => {\n\t\tif (isOpen && !itemData) {\n\t\t\tsetLanguage('en');\n\t\t\tsetDrafts({});\n\t\t\treset({\n\t\t\t\taddresses: {\n\t\t\t\t\t...BLANK_ADDRESS,\n\t\t\t\t\taddress_type: 'Office',\n\t\t\t\t\tcontact_name: prefillData?.contact_name || '',\n\t\t\t\t\tmobile: prefillData?.mobile || ''\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}, [isOpen, itemData, prefillData?.contact_name, prefillData?.mobile, reset]);\n\n\tconst setDetailsData = (data: any[], key: string) => {\n\t\tsetEntryDetails((prev) => ({ ...prev, [key]: data }));\n\t};\n\n\tuseEffect(() => {\n\t\tif (isDirtyC) {\n\t\t\tsetValue('addresses.state', null);\n\t\t}\n\t}, [selectedCountry, isDirtyC]);\n\n\tconst stateFilter = useMemo(() => {\n\t\treturn { '&country_id.eq': selectedCountry || 0 }\n\t}, [selectedCountry]);\n\n\treturn (\n\t\t<Modal\n\t\t\topen={isOpen}\n\t\t\tonClose={setIsOpen}\n\t\t\tmaxWidth='md'\n\t\t\tfullWidth\n\t\t\t{...modalProps}>\n\t\t\t<form onSubmit={handleSubmit(onSubmit)}>\n\t\t\t\t{submitLoading && <FormLoader />}\n\t\t\t\t<DialogTitle className='addressModal--Title'>\n\t\t\t\t\t<Typography type='s3' color='inherit' weight='medium'>\n\t\t\t\t\t\t{t(`accounting.${translationKey}.addressModal.title`)}\n\t\t\t\t\t</Typography>\n\t\t\t\t\t<IconButton onClick={handleModalClose}>\n\t\t\t\t\t\t<Close fontSize='small' />\n\t\t\t\t\t</IconButton>\n\t\t\t\t</DialogTitle>\n\t\t\t\t<DialogContent>\n\t\t\t\t\t<RadioGroup\n\t\t\t\t\t\tclassName='addressModal--LanguageSwitch'\n\t\t\t\t\t\trow\n\t\t\t\t\t\tvalue={language}\n\t\t\t\t\t\tonChange={(e) => handleLanguageChange(e.target.value as 'en' | 'ar')}>\n\t\t\t\t\t\t<FormControlLabel value='en' control={<Radio />} label='English' />\n\t\t\t\t\t\t<FormControlLabel value='ar' control={<Radio />} label='Arabic' />\n\t\t\t\t\t</RadioGroup>\n\t\t\t\t\t<Grid container rowGap={1.5} columnSpacing={3} pt={3}>\n\t\t\t\t\t\t{language === 'en' && (\n\t\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t\t<DynamicSearchSelect\n\t\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.address_type_label`)}\n\t\t\t\t\t\t\t\t\toptions={addressTypeOptions}\n\t\t\t\t\t\t\t\t\tname='address_type'\n\t\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.address_type_placeholder`)}\n\t\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.contact_name_label`)}\n\t\t\t\t\t\t\t\tname='contact_name'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.contact_name_placeholder`)}\n\t\t\t\t\t\t\t\trequired={language === 'en'}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicPhone\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.mobile_label`)}\n\t\t\t\t\t\t\t\tname='mobile'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tsetCountryCodeField={(country: CountryData) =>\n\t\t\t\t\t\t\t\t\thandleSetCountryCodeField(country)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.address1_label`)}\n\t\t\t\t\t\t\t\tname='street_1'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.address1_placeholder`)}\n\t\t\t\t\t\t\t\trequired={language === 'en'}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.address2_label`)}\n\t\t\t\t\t\t\t\tname='street_2'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.address2_placeholder`)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.address3_label`)}\n\t\t\t\t\t\t\t\tname='street_3'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.address3_placeholder`)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t{isKSA && <Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.streetName_label`)}\n\t\t\t\t\t\t\t\tname='street_name'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.streetName_placeholder`)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>}\n\t\t\t\t\t\t{isKSA && <>\n\t\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.buildingNo_label`)}\n\t\t\t\t\t\t\t\t\tname='building_no'\n\t\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\t\tplaceholder='Enter Building No.'\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.additionalNo_label`)}\n\t\t\t\t\t\t\t\t\tname='additional_no'\n\t\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\t\tplaceholder='Enter Additional No.'\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t</>}\n\t\t\t\t\t\t{isKSA && <Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.nationalAddress_label`)}\n\t\t\t\t\t\t\t\tname='national_address'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.nationalAddress_placeholder`)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>}\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.zip_code_label`)}\n\t\t\t\t\t\t\t\tname='zip_code'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.zip_code_placeholder`)}\n\t\t\t\t\t\t\t\trequired={!optionalFields.includes('zip_code') && language === 'en'}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t{language === 'en' && (\n\t\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t\t<DynamicSearchSelect\n\t\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.country_label`)}\n\t\t\t\t\t\t\t\t\tname='country'\n\t\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.country_placeholder`)}\n\t\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\t\tapiType='countries'\n\t\t\t\t\t\t\t\t\tgetSelectedData={(row: any[]) =>\n\t\t\t\t\t\t\t\t\t\tsetDetailsData(row, 'country_data')\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{language === 'en' && (\n\t\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t\t<DynamicSearchSelect\n\t\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.state_label`)}\n\t\t\t\t\t\t\t\t\tname='state'\n\t\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.state_placeholder`)}\n\t\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\t\tapiType='states'\n\t\t\t\t\t\t\t\t\tcustomeFilter={stateFilter}\n\t\t\t\t\t\t\t\t\tgetSelectedData={(row: any[]) =>\n\t\t\t\t\t\t\t\t\t\tsetDetailsData(row, 'state_data')\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.city_label`)}\n\t\t\t\t\t\t\t\tname='city'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.city_placeholder`)}\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t{isKSA && <Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.districtName_label`)}\n\t\t\t\t\t\t\t\tname='district_name'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.districtName_placeholder`)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>}\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.summary_label`)}\n\t\t\t\t\t\t\t\tname='summary'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.summary_placeholder`)}\n\t\t\t\t\t\t\t\tis_multiline\n\t\t\t\t\t\t\t\tdisabled\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t{language === 'en' && (\n\t\t\t\t\t\t\t<Grid item sm={12}>\n\t\t\t\t\t\t\t\t<DynamicCheckBox\n\t\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\t\tname='default_shipping_address'\n\t\t\t\t\t\t\t\t\ttitle={t(`accounting.${translationKey}.addressModal.default_shipping_address_label`)}\n\t\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\t\ttitlePosition='end'\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{language === 'en' && (\n\t\t\t\t\t\t\t<Grid item sm={12}>\n\t\t\t\t\t\t\t\t<DynamicCheckBox\n\t\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\t\tname='default_billing_address'\n\t\t\t\t\t\t\t\t\ttitle={t(`accounting.${translationKey}.addressModal.default_billing_address_label`)}\n\t\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\t\ttitlePosition='end'\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Grid>\n\t\t\t\t</DialogContent>\n\t\t\t\t<DialogActions\n\t\t\t\t\tclassName={`addressModal--ActionContainer ${!itemData && 'addressModal--ActionContainer--FlexEnd'}`}>\n\t\t\t\t\t{itemData && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName='addressModal--ActionContainer--WhiteBtn'\n\t\t\t\t\t\t\tstartIcon={<Copy />}\n\t\t\t\t\t\t\tdisabled={submitLoading}\n\t\t\t\t\t\t\tonClick={() => handleDuplicate()}>\n\t\t\t\t\t\t\t{t(\"common.duplicate\")}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)}\n\t\t\t\t\t<Box display='flex' gap={1.5}>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName='addressModal--ActionContainer--WhiteBtn'\n\t\t\t\t\t\t\tonClick={handleModalClose}\n\t\t\t\t\t\t\tdisabled={submitLoading}>\n\t\t\t\t\t\t\t{t(\"common.cancel\")}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ttype='submit'\n\t\t\t\t\t\t\tendIcon={\n\t\t\t\t\t\t\t\tsubmitLoading ? (\n\t\t\t\t\t\t\t\t\t<CircularProgress size={20} color='inherit' />\n\t\t\t\t\t\t\t\t) : undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdisabled={submitLoading}>\n\t\t\t\t\t\t\t{t(\"common.save\")}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</Box>\n\t\t\t\t</DialogActions>\n\t\t\t</form>\n\t\t</Modal>\n\t);\n};\n\nexport default AddressModal;\n"],"names":["_a","_b"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ const jsxRuntime = require("react/jsx-runtime");
|
|
|
3
3
|
const React = require("react");
|
|
4
4
|
const reactRouterDom = require("react-router-dom");
|
|
5
5
|
const material = require("@mui/material");
|
|
6
|
-
const constants = require("./constants-
|
|
6
|
+
const constants = require("./constants-06kIVUBw.js");
|
|
7
7
|
const icons = require("./icons-CiB5E_Ao.js");
|
|
8
8
|
function AppSwitcher({ erp_modules, selectedModule }) {
|
|
9
9
|
const navigate = reactRouterDom.useNavigate();
|
|
@@ -173,4 +173,4 @@ function AppSwitcher({ erp_modules, selectedModule }) {
|
|
|
173
173
|
] });
|
|
174
174
|
}
|
|
175
175
|
exports.AppSwitcher = AppSwitcher;
|
|
176
|
-
//# sourceMappingURL=app-switcher-
|
|
176
|
+
//# sourceMappingURL=app-switcher-CyEQmYAN.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-switcher-VhH9z0Rd.js","sources":["../../src/components/header/components/app-switcher/app-switcher.tsx"],"sourcesContent":["import React, { useState, useCallback, useMemo, useRef } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { Popover } from \"@mui/material\";\n\nimport { IModule } from \"../../types\";\nimport { MODULE_META } from \"../../constants\";\nimport { IconApps, IconPinFilled, IconPinOutline } from \"../../icons\";\n\ninterface AppSwitcherProps {\n erp_modules: IModule[];\n selectedModule: IModule | null;\n}\n\nexport function AppSwitcher({ erp_modules, selectedModule }: AppSwitcherProps) {\n const navigate = useNavigate();\n const appSwitchRef = useRef<HTMLButtonElement>(null);\n const [appSwitchOpen, setAppSwitchOpen] = useState(false);\n const [asSrch, setAsSrch] = useState(\"\");\n const [pinnedModules, setPinnedModules] = useState<string[]>(() => {\n try { return JSON.parse(localStorage.getItem(\"_pinned_modules\") || \"[]\"); }\n catch { return []; }\n });\n\n const togglePin = useCallback((link: string, e: React.MouseEvent) => {\n e.stopPropagation();\n setPinnedModules(prev => {\n const next = prev.includes(link) ? prev.filter(l => l !== link) : [...prev, link];\n localStorage.setItem(\"_pinned_modules\", JSON.stringify(next));\n return next;\n });\n }, []);\n\n const filteredModules = useMemo(() => {\n if (!asSrch.trim()) return erp_modules;\n return erp_modules.filter(m =>\n String(m.label).toLowerCase().includes(asSrch.toLowerCase())\n );\n }, [erp_modules, asSrch]);\n\n const pinnedList = useMemo(() =>\n erp_modules.filter(m => pinnedModules.includes(m.link)),\n [erp_modules, pinnedModules]\n );\n\n return (\n <>\n <button\n ref={appSwitchRef}\n className={`app-switch${appSwitchOpen ? \" open\" : \"\"}`}\n type=\"button\"\n aria-label=\"Switch module\"\n aria-haspopup=\"true\"\n aria-expanded={appSwitchOpen}\n onClick={() => setAppSwitchOpen(v => !v)}\n >\n <IconApps />\n </button>\n\n <Popover\n open={appSwitchOpen}\n anchorEl={appSwitchRef.current}\n onClose={() => { setAppSwitchOpen(false); setAsSrch(\"\"); }}\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"left\" }}\n transformOrigin={{ vertical: \"top\", horizontal: \"left\" }}\n slotProps={{ paper: { className: \"as-pop\", elevation: 0 } }}\n marginThreshold={8}\n disableScrollLock\n >\n <div className=\"as-head\">\n <input\n className=\"as-search-input\"\n placeholder=\"Search modules, apps, recent…\"\n value={asSrch}\n onChange={(e) => setAsSrch(e.target.value)}\n autoFocus\n />\n <span className=\"as-pin\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.8\" style={{ width: 11, height: 11 }}>\n <path d=\"M12 2v10\"/><path d=\"M5 12l7 7 7-7\"/>\n </svg>\n Pin to start\n </span>\n </div>\n\n <div className=\"as-body\">\n {pinnedList.length > 0 && (\n <div className=\"as-section\">\n <div className=\"as-section-label\">\n Pinned <span className=\"badge\">{pinnedList.length}</span>\n </div>\n <div className=\"as-grid\">\n {pinnedList.map((m, i) => (\n <button\n key={i}\n className=\"as-tile pinned\"\n type=\"button\"\n style={{ \"--tile-bg\": m.bg || \"#F2F3F4\", \"--tile-fg\": MODULE_META[m.link]?.fg || \"#4A4C50\" } as React.CSSProperties}\n onClick={() => { setAppSwitchOpen(false); navigate(m.link); setAsSrch(\"\"); }}\n >\n <span className=\"as-tile-icon\">\n <img src={m.icon} alt=\"\" width={15} height={15} />\n </span>\n <div>\n <div className=\"as-tile-row\">\n <div className=\"as-tile-name\">{m.label}</div>\n {MODULE_META[m.link]?.isNew && <span className=\"new-pill\">NEW</span>}\n </div>\n {MODULE_META[m.link]?.meta && (\n <div className=\"as-tile-meta\">{MODULE_META[m.link].meta}</div>\n )}\n </div>\n <span className=\"pin\" onClick={(e) => togglePin(m.link, e)} title=\"Unpin\">\n <IconPinFilled />\n </span>\n </button>\n ))}\n </div>\n </div>\n )}\n\n <div className=\"as-section\">\n {pinnedList.length > 0 && (\n <div className=\"as-section-label\">\n All Apps <span className=\"badge\">{filteredModules.length}</span>\n </div>\n )}\n <div className=\"as-grid\">\n {filteredModules.map((m, i) => {\n const isPinned = pinnedModules.includes(m.link);\n const isActive = selectedModule?.link === m.link;\n return (\n <button\n key={i}\n className={`as-tile${isPinned ? \" pinned\" : \"\"}${isActive ? \" active\" : \"\"}`}\n type=\"button\"\n style={{ \"--tile-bg\": m.bg || \"#F2F3F4\", \"--tile-fg\": MODULE_META[m.link]?.fg || \"#4A4C50\" } as React.CSSProperties}\n onClick={() => { setAppSwitchOpen(false); navigate(m.link); setAsSrch(\"\"); }}\n >\n <span className=\"as-tile-icon\">\n <img src={m.icon} alt=\"\" width={15} height={15} />\n </span>\n <div>\n <div className=\"as-tile-row\">\n <div className=\"as-tile-name\">{m.label}</div>\n {MODULE_META[m.link]?.isNew && <span className=\"new-pill\">NEW</span>}\n </div>\n {MODULE_META[m.link]?.meta && (\n <div className=\"as-tile-meta\">{MODULE_META[m.link].meta}</div>\n )}\n </div>\n <span\n className=\"pin\"\n onClick={(e) => togglePin(m.link, e)}\n title={isPinned ? \"Unpin\" : \"Pin\"}\n >\n {isPinned ? <IconPinFilled /> : <IconPinOutline />}\n </span>\n </button>\n );\n })}\n </div>\n </div>\n </div>\n\n <div className=\"as-foot\">\n <span>⌘ + 1–9 to switch modules instantly</span>\n <span className=\"right\">\n <a onClick={() => setAppSwitchOpen(false)}>Customize workspace →</a>\n </span>\n </div>\n </Popover>\n </>\n );\n}\n\nexport default AppSwitcher;\n"],"names":["useNavigate","useRef","useState","useCallback","useMemo","jsxs","Fragment","jsx","IconApps","Popover","MODULE_META","IconPinFilled","IconPinOutline"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"app-switcher-CyEQmYAN.js","sources":["../../src/components/header/components/app-switcher/app-switcher.tsx"],"sourcesContent":["import React, { useState, useCallback, useMemo, useRef } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { Popover } from \"@mui/material\";\n\nimport { IModule } from \"../../types\";\nimport { MODULE_META } from \"../../constants\";\nimport { IconApps, IconPinFilled, IconPinOutline } from \"../../icons\";\n\ninterface AppSwitcherProps {\n erp_modules: IModule[];\n selectedModule: IModule | null;\n}\n\nexport function AppSwitcher({ erp_modules, selectedModule }: AppSwitcherProps) {\n const navigate = useNavigate();\n const appSwitchRef = useRef<HTMLButtonElement>(null);\n const [appSwitchOpen, setAppSwitchOpen] = useState(false);\n const [asSrch, setAsSrch] = useState(\"\");\n const [pinnedModules, setPinnedModules] = useState<string[]>(() => {\n try { return JSON.parse(localStorage.getItem(\"_pinned_modules\") || \"[]\"); }\n catch { return []; }\n });\n\n const togglePin = useCallback((link: string, e: React.MouseEvent) => {\n e.stopPropagation();\n setPinnedModules(prev => {\n const next = prev.includes(link) ? prev.filter(l => l !== link) : [...prev, link];\n localStorage.setItem(\"_pinned_modules\", JSON.stringify(next));\n return next;\n });\n }, []);\n\n const filteredModules = useMemo(() => {\n if (!asSrch.trim()) return erp_modules;\n return erp_modules.filter(m =>\n String(m.label).toLowerCase().includes(asSrch.toLowerCase())\n );\n }, [erp_modules, asSrch]);\n\n const pinnedList = useMemo(() =>\n erp_modules.filter(m => pinnedModules.includes(m.link)),\n [erp_modules, pinnedModules]\n );\n\n return (\n <>\n <button\n ref={appSwitchRef}\n className={`app-switch${appSwitchOpen ? \" open\" : \"\"}`}\n type=\"button\"\n aria-label=\"Switch module\"\n aria-haspopup=\"true\"\n aria-expanded={appSwitchOpen}\n onClick={() => setAppSwitchOpen(v => !v)}\n >\n <IconApps />\n </button>\n\n <Popover\n open={appSwitchOpen}\n anchorEl={appSwitchRef.current}\n onClose={() => { setAppSwitchOpen(false); setAsSrch(\"\"); }}\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"left\" }}\n transformOrigin={{ vertical: \"top\", horizontal: \"left\" }}\n slotProps={{ paper: { className: \"as-pop\", elevation: 0 } }}\n marginThreshold={8}\n disableScrollLock\n >\n <div className=\"as-head\">\n <input\n className=\"as-search-input\"\n placeholder=\"Search modules, apps, recent…\"\n value={asSrch}\n onChange={(e) => setAsSrch(e.target.value)}\n autoFocus\n />\n <span className=\"as-pin\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.8\" style={{ width: 11, height: 11 }}>\n <path d=\"M12 2v10\"/><path d=\"M5 12l7 7 7-7\"/>\n </svg>\n Pin to start\n </span>\n </div>\n\n <div className=\"as-body\">\n {pinnedList.length > 0 && (\n <div className=\"as-section\">\n <div className=\"as-section-label\">\n Pinned <span className=\"badge\">{pinnedList.length}</span>\n </div>\n <div className=\"as-grid\">\n {pinnedList.map((m, i) => (\n <button\n key={i}\n className=\"as-tile pinned\"\n type=\"button\"\n style={{ \"--tile-bg\": m.bg || \"#F2F3F4\", \"--tile-fg\": MODULE_META[m.link]?.fg || \"#4A4C50\" } as React.CSSProperties}\n onClick={() => { setAppSwitchOpen(false); navigate(m.link); setAsSrch(\"\"); }}\n >\n <span className=\"as-tile-icon\">\n <img src={m.icon} alt=\"\" width={15} height={15} />\n </span>\n <div>\n <div className=\"as-tile-row\">\n <div className=\"as-tile-name\">{m.label}</div>\n {MODULE_META[m.link]?.isNew && <span className=\"new-pill\">NEW</span>}\n </div>\n {MODULE_META[m.link]?.meta && (\n <div className=\"as-tile-meta\">{MODULE_META[m.link].meta}</div>\n )}\n </div>\n <span className=\"pin\" onClick={(e) => togglePin(m.link, e)} title=\"Unpin\">\n <IconPinFilled />\n </span>\n </button>\n ))}\n </div>\n </div>\n )}\n\n <div className=\"as-section\">\n {pinnedList.length > 0 && (\n <div className=\"as-section-label\">\n All Apps <span className=\"badge\">{filteredModules.length}</span>\n </div>\n )}\n <div className=\"as-grid\">\n {filteredModules.map((m, i) => {\n const isPinned = pinnedModules.includes(m.link);\n const isActive = selectedModule?.link === m.link;\n return (\n <button\n key={i}\n className={`as-tile${isPinned ? \" pinned\" : \"\"}${isActive ? \" active\" : \"\"}`}\n type=\"button\"\n style={{ \"--tile-bg\": m.bg || \"#F2F3F4\", \"--tile-fg\": MODULE_META[m.link]?.fg || \"#4A4C50\" } as React.CSSProperties}\n onClick={() => { setAppSwitchOpen(false); navigate(m.link); setAsSrch(\"\"); }}\n >\n <span className=\"as-tile-icon\">\n <img src={m.icon} alt=\"\" width={15} height={15} />\n </span>\n <div>\n <div className=\"as-tile-row\">\n <div className=\"as-tile-name\">{m.label}</div>\n {MODULE_META[m.link]?.isNew && <span className=\"new-pill\">NEW</span>}\n </div>\n {MODULE_META[m.link]?.meta && (\n <div className=\"as-tile-meta\">{MODULE_META[m.link].meta}</div>\n )}\n </div>\n <span\n className=\"pin\"\n onClick={(e) => togglePin(m.link, e)}\n title={isPinned ? \"Unpin\" : \"Pin\"}\n >\n {isPinned ? <IconPinFilled /> : <IconPinOutline />}\n </span>\n </button>\n );\n })}\n </div>\n </div>\n </div>\n\n <div className=\"as-foot\">\n <span>⌘ + 1–9 to switch modules instantly</span>\n <span className=\"right\">\n <a onClick={() => setAppSwitchOpen(false)}>Customize workspace →</a>\n </span>\n </div>\n </Popover>\n </>\n );\n}\n\nexport default AppSwitcher;\n"],"names":["useNavigate","useRef","useState","useCallback","useMemo","jsxs","Fragment","jsx","IconApps","Popover","MODULE_META","IconPinFilled","IconPinOutline"],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { jsxs, Fragment, jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { useRef, useState, useCallback, useMemo } from "react";
|
|
3
3
|
import { useNavigate } from "react-router-dom";
|
|
4
4
|
import { Popover } from "@mui/material";
|
|
5
|
-
import { M as MODULE_META } from "./constants-
|
|
5
|
+
import { M as MODULE_META } from "./constants-nmkxkzps.esm.js";
|
|
6
6
|
import { I as IconApps, a as IconPinFilled, b as IconPinOutline } from "./icons-Dgw0RR6H.esm.js";
|
|
7
7
|
function AppSwitcher({ erp_modules, selectedModule }) {
|
|
8
8
|
const navigate = useNavigate();
|
|
@@ -174,4 +174,4 @@ function AppSwitcher({ erp_modules, selectedModule }) {
|
|
|
174
174
|
export {
|
|
175
175
|
AppSwitcher as A
|
|
176
176
|
};
|
|
177
|
-
//# sourceMappingURL=app-switcher-
|
|
177
|
+
//# sourceMappingURL=app-switcher-D-Bvz9uO.esm.js.map
|