@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":"modules-DTRr7zwt.js","sources":["../../src/constants/pathnames/pathname.onboarding.ts","../../src/constants/modules.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Pathname } from \"./pathname\";\n\nexport const PathnameGenerator = (name: string): string => Pathname.DASHBOARD_ONBOARDING + name;\n\nconst CRUD_ACTIONS = { ADD: 'add', VIEW: 'view', EDIT: 'edit' } as const;\n\ntype ModulePaths = Record<string, string>;\n\nexport const MAIN_MENU: ModulePaths = {\n SETTINGS: 'settings',\n};\n\nexport const MODULES: ModulePaths = {\n SETTINGS: 'settings',\n};\n\nexport const generateCrudPaths = (\n base: string,\n entity: string,\n prefix = '',\n keyPostfix = ''\n) =>\n { \n return Object.fromEntries(\n Object.entries(CRUD_ACTIONS).map(([key, action]) => {\n const isEditOrView = action === 'edit' || action === 'view';\n const id = (isEditOrView && MODULES[base]?.includes(':id')) ? `:${entity?.replace('-', \"\")}Id` : ':id'\n const routeParts = [prefix, MODULES[base]];\n if (isEditOrView) {\n routeParts.push(id, `${action}-${entity}`);\n } else {\n routeParts.push(`${action}-${entity}`);\n }\n\n return [\n `${key}_${keyPostfix.replace(/[^a-zA-Z0-9]/g, '_').toUpperCase()}`,\n `/${routeParts.filter(Boolean).join('/')}`,\n ];\n })\n );\n}\n\n\nexport const generateModulePaths = (mainModule: keyof typeof MAIN_MENU, subModule: keyof typeof MODULES = '', entity: string, keyPostfix = '') => ({\n [subModule.replace(/[^a-zA-Z0-9]/g, '_').toUpperCase()]: `/${[MAIN_MENU[mainModule], MODULES[subModule]].filter(Boolean).join('/')}`,\n ...generateCrudPaths(subModule, entity, MAIN_MENU[mainModule], keyPostfix),\n});\n\nexport const PathnameOnBoarding: Record<any, string> = {\n LANDING_PAGE: '/',\n LIST: '/list',\n FORMS: \"/settings/forms\",\n};\n\n","import { Pathname } from \"./pathnames/pathname\";\nimport image from \"../assets/images\";\nimport { PathnameUsers } from \"./pathnames/pathname.user\";\nimport { PathnameAccounting } from \"./pathnames/pathname.accounting\";\nimport { PathnameDocument } from \"./pathnames/pathname.document\";\nimport { PathnameInventory } from \"./pathnames/pathname.inventory\";\nimport { PathnameManufacturing } from \"./pathnames/pathname.manufacturing\";\nimport { PathnameCrm } from \"./pathnames/pathname.crm\";\nimport { PathnamePurchase } from \"./pathnames/pathname.procurement\";\nimport { PathnameRental } from \"./pathnames/pathname.rental\";\nimport { PathnameHrms } from \"./pathnames/pathname.hrms\";\nimport { PathnameOnBoarding } from \"./pathnames/pathname.onboarding\";\nimport { getApiConfig } from \"../utils/api-config\";\nimport { getModuleRoutes } from \"../utils/module-routes-config\";\n\n// Helper to conditionally create the onboarding menu item\nconst getOnboardingMenuItem = (t: any, env: string) => {\n if (!['ksa'].includes(env)) {\n return [];\n }\n\n return [\n {\n label: t(\"onboarding.name\"),\n link: Pathname.DASHBOARD_ONBOARDING,\n sidebar: image.sidebar.user,\n bacModuleName: \"user\",\n icon: image.user,\n permission: \"\",\n beModuleName: \"rbac\",\n bg: \"#F3E8FF\",\n connectedRoutes: Object.values(PathnameOnBoarding).map(\n (path: string) => Pathname.DASHBOARD_ONBOARDING + path\n ),\n translationModule: [\"onboarding\"],\n },\n ];\n};\n\nconst modules = (t: any) => {\n const u_data = localStorage.getItem(\"_u_data\") || undefined;\n const userData = u_data ? JSON.parse(u_data) : \"\";\n const config: any = getApiConfig();\n const access_modules = userData?.module_access || [];\n const VITE_APP_ENV = config?.zatcaEnvironment || 'simulation';\n const accessibleModules = access_modules.map((module: any) => module.module_name);\n const accessibleModulesSet = new Set(accessibleModules);\n\n const MenuBar = [\n {\n label: t(\"common.modules.user.title\"),\n link: Pathname.DASHBOARD_USER,\n sidebar: image.sidebar.user,\n bacModuleName: \"user\",\n icon: image.user,\n permission: \"\",\n beModuleName: \"rbac\",\n bg: \"#F3E8FF\",\n connectedRoutes: Object.values(PathnameUsers).map(\n (path: string) => Pathname.DASHBOARD_USER + path\n ),\n translationModule: [\"user\"]\n },\n {\n label: t(\"common.modules.document.title\"),\n link: Pathname.DASHBOARD_DOCUMENT,\n sidebar: image.sidebar.document,\n bacModuleName: \"document\",\n icon: image.document,\n permission: \"\",\n beModuleName: \"document\",\n bg: \"#E0F2FE\",\n connectedRoutes: Object.values(PathnameDocument).map(\n (path: string) => Pathname.DASHBOARD_DOCUMENT + path\n ),\n translationModule: [\"document\"]\n },\n {\n label: t(\"common.modules.accounting.title\"),\n link: Pathname.DASHBOARD_ACCOUNTING,\n sidebar: image.sidebar.accountingIcon,\n bacModuleName: \"accounts-and-finance\",\n icon: image.accounting,\n permission: \"\",\n beModuleName: \"accounts-and-finance\",\n bg: \"#E8EAF6\",\n connectedRoutes: Object.values(PathnameAccounting).map(\n (path: string) => Pathname.DASHBOARD_ACCOUNTING + path\n ),\n translationModule: [\"accounting\"]\n },\n {\n label: t(\"common.modules.inventory.title\"),\n link: Pathname.DASHBOARD_INVENTORY,\n sidebar: image.sidebar.inventoryIcon,\n bacModuleName: \"inventory\",\n icon: image.inventory,\n permission: \"\",\n beModuleName: \"inventory\",\n bg: \"#FFF3E6\",\n connectedRoutes: Object.values(PathnameInventory).map(\n (path: string) => Pathname.DASHBOARD_INVENTORY + path\n ),\n translationModule: [\"inventory\"]\n },\n {\n label: t(\"common.modules.project.title\"),\n link: Pathname.DASHBOARD_PROJECT,\n sidebar: image.sidebar.projectIcon,\n bacModuleName: \"project\",\n icon: image.project,\n permission: \"\",\n beModuleName: \"project\",\n bg: \"#DCFCE7\",\n connectedRoutes: [],\n translationModule: [\"project\"]\n },\n {\n label: t(\"common.modules.procurement.title\"),\n link: Pathname.DASHBOARD_PROCUREMENT,\n sidebar: image.sidebar.procurementIcon,\n bacModuleName: \"purchase\",\n icon: image.procurement,\n permission: \"\",\n beModuleName: \"purchase\",\n bg: \"#FFEBE6\",\n connectedRoutes: Object.values(PathnamePurchase).map(\n (path: string) => Pathname.DASHBOARD_PROCUREMENT + path\n ),\n // connectedRoutes: [],\n translationModule: [\"procurement\", \"accounting\"]\n },\n {\n label: t(\"common.modules.manufacturing.title\"),\n link: Pathname.DASHBOARD_MANUFACTURING,\n sidebar: image.sidebar.manufacturingIcon,\n bacModuleName: \"manufacturing\",\n icon: image.manufacturing,\n permission: \"\",\n beModuleName: \"manufacturing\",\n bg: \"#F0FDF4\",\n connectedRoutes: Object.values(PathnameManufacturing).map(\n (path: string) => Pathname.DASHBOARD_MANUFACTURING + path\n ),\n translationModule: [\"manufacturing\"]\n },\n {\n label: t(\"common.modules.crm.title\"),\n link: Pathname.DASHBOARD_CRM,\n sidebar: image.sidebar.crmIcon,\n bacModuleName: \"sales\",\n icon: image.crm,\n permission: \"\",\n beModuleName: \"sales\",\n bg: \"#FCEBEC\",\n connectedRoutes: Object.values(PathnameCrm).map(\n (path: string) => Pathname.DASHBOARD_CRM + path\n ),\n translationModule: [\"crm\", \"accounting\"]\n },\n // {\n // label: t(\"purchase.name\"),\n // link: Pathname.DASHBOARD_PURCHASE,\n // sidebar: image.sidebar.purchaseIcon,\n // icon: image.sidebar.purchaseIcon,\n // permission: \"\",\n // bg: \"rgba(111, 102, 215, 0.10)\",\n // connectedRoutes: [],\n // },\n {\n label: t(\"common.modules.hrms.title\"),\n link: Pathname.DASHBOARD_HRMS,\n sidebar: image.sidebar.hrmsIcon,\n bacModuleName: \"hrms\",\n icon: image.hrms,\n permission: \"\",\n beModuleName: \"hrms\",\n bg: \"#EBF9F2\",\n connectedRoutes: (() => {\n // Prefer MFE-injected routes (set via ERPUIProvider's moduleRoutes prop)\n // which contain the full, up-to-date route list from the HRMS MFE.\n // Fall back to common-hub's PathnameHrms if no MFE routes were injected.\n const mfeRoutes = getModuleRoutes('hrms');\n if (mfeRoutes.length > 0) return mfeRoutes;\n return Object.values(PathnameHrms).map(\n (path: string) => Pathname.DASHBOARD_HRMS + path\n );\n })(),\n translationModule: [\"hrms\"]\n },\n {\n label: t(\"common.modules.office.title\"),\n link: Pathname.DASHBOARD_OFFICE,\n sidebar: image.sidebar.officeIcon,\n bacModuleName: \"office\",\n icon: image.office,\n permission: \"\",\n beModuleName: \"office\",\n bg: \"#DCFCE7\",\n connectedRoutes: [],\n translationModule: [\"office\"]\n },\n {\n label: t(\"common.modules.rental.title\"),\n link: Pathname.DASHBOARD_RENTAL,\n sidebar: image.sidebar.rentalIcon,\n bacModuleName: \"rental\",\n icon: image.rental,\n permission: \"\",\n beModuleName: \"rental\",\n bg: \"#FEF3C7\",\n connectedRoutes: Object.values(PathnameRental).map(\n (path: string) => Pathname.DASHBOARD_RENTAL + path\n ),\n translationModule: [\"rental\",\"inventory\"]\n },\n {\n label: t(\"common.modules.settings.title\"),\n link: Pathname.DASHBOARD_QUOTES,\n sidebar: image.sidebar.setting,\n bacModuleName: \"setting\",\n icon: image.settings,\n permission: \"\",\n beModuleName: \"setting\",\n bg: \"#EEF2FF\",\n connectedRoutes: [],\n translationModule: [\"settings\"]\n },\n ...getOnboardingMenuItem(t, VITE_APP_ENV),\n ];\n\n function filterMenu(menu: any[]) {\n return menu.filter((item) => {\n const isModuleAccessible = accessibleModulesSet.has(item.bacModuleName);\n let hasValidSubmenu = false;\n\n if (item.submenu && item.submenu.length > 0) {\n item.submenu = filterMenu(item.submenu); // Recursively filter submenu\n hasValidSubmenu = item.submenu.length > 0;\n }\n\n return isModuleAccessible || hasValidSubmenu;\n });\n }\n\n const filteredMenu = filterMenu(MenuBar);\n\n return filteredMenu;\n};\n\nexport default modules;"],"names":["Pathname","image","getApiConfig","module","PathnameUsers","PathnameDocument","PathnameAccounting","PathnameInventory","PathnamePurchase","PathnameManufacturing","PathnameCrm","getModuleRoutes","PathnameHrms","PathnameRental"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"modules-BZNWOWrz.js","sources":["../../src/constants/pathnames/pathname.onboarding.ts","../../src/constants/modules.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Pathname } from \"./pathname\";\n\nexport const PathnameGenerator = (name: string): string => Pathname.DASHBOARD_ONBOARDING + name;\n\nconst CRUD_ACTIONS = { ADD: 'add', VIEW: 'view', EDIT: 'edit' } as const;\n\ntype ModulePaths = Record<string, string>;\n\nexport const MAIN_MENU: ModulePaths = {\n SETTINGS: 'settings',\n};\n\nexport const MODULES: ModulePaths = {\n SETTINGS: 'settings',\n};\n\nexport const generateCrudPaths = (\n base: string,\n entity: string,\n prefix = '',\n keyPostfix = ''\n) =>\n { \n return Object.fromEntries(\n Object.entries(CRUD_ACTIONS).map(([key, action]) => {\n const isEditOrView = action === 'edit' || action === 'view';\n const id = (isEditOrView && MODULES[base]?.includes(':id')) ? `:${entity?.replace('-', \"\")}Id` : ':id'\n const routeParts = [prefix, MODULES[base]];\n if (isEditOrView) {\n routeParts.push(id, `${action}-${entity}`);\n } else {\n routeParts.push(`${action}-${entity}`);\n }\n\n return [\n `${key}_${keyPostfix.replace(/[^a-zA-Z0-9]/g, '_').toUpperCase()}`,\n `/${routeParts.filter(Boolean).join('/')}`,\n ];\n })\n );\n}\n\n\nexport const generateModulePaths = (mainModule: keyof typeof MAIN_MENU, subModule: keyof typeof MODULES = '', entity: string, keyPostfix = '') => ({\n [subModule.replace(/[^a-zA-Z0-9]/g, '_').toUpperCase()]: `/${[MAIN_MENU[mainModule], MODULES[subModule]].filter(Boolean).join('/')}`,\n ...generateCrudPaths(subModule, entity, MAIN_MENU[mainModule], keyPostfix),\n});\n\nexport const PathnameOnBoarding: Record<any, string> = {\n LANDING_PAGE: '/',\n LIST: '/list',\n FORMS: \"/settings/forms\",\n};\n\n","import { Pathname } from \"./pathnames/pathname\";\nimport image from \"../assets/images\";\nimport { PathnameUsers } from \"./pathnames/pathname.user\";\nimport { PathnameAccounting } from \"./pathnames/pathname.accounting\";\nimport { PathnameDocument } from \"./pathnames/pathname.document\";\nimport { PathnameInventory } from \"./pathnames/pathname.inventory\";\nimport { PathnameManufacturing } from \"./pathnames/pathname.manufacturing\";\nimport { PathnameCrm } from \"./pathnames/pathname.crm\";\nimport { PathnamePurchase } from \"./pathnames/pathname.procurement\";\nimport { PathnameRental } from \"./pathnames/pathname.rental\";\nimport { PathnameHrms } from \"./pathnames/pathname.hrms\";\nimport { PathnameOnBoarding } from \"./pathnames/pathname.onboarding\";\nimport { getApiConfig } from \"../utils/api-config\";\nimport { getModuleRoutes } from \"../utils/module-routes-config\";\n\n// Helper to conditionally create the onboarding menu item\nconst getOnboardingMenuItem = (t: any, env: string) => {\n if (!['ksa'].includes(env)) {\n return [];\n }\n\n return [\n {\n label: t(\"onboarding.name\"),\n link: Pathname.DASHBOARD_ONBOARDING,\n sidebar: image.sidebar.user,\n bacModuleName: \"user\",\n icon: image.user,\n permission: \"\",\n beModuleName: \"rbac\",\n bg: \"#F3E8FF\",\n connectedRoutes: Object.values(PathnameOnBoarding).map(\n (path: string) => Pathname.DASHBOARD_ONBOARDING + path\n ),\n translationModule: [\"onboarding\"],\n },\n ];\n};\n\nconst modules = (t: any) => {\n const u_data = localStorage.getItem(\"_u_data\") || undefined;\n const userData = u_data ? JSON.parse(u_data) : \"\";\n const config: any = getApiConfig();\n const access_modules = userData?.module_access || [];\n const VITE_APP_ENV = config?.zatcaEnvironment || 'simulation';\n const accessibleModules = access_modules.map((module: any) => module.module_name);\n const accessibleModulesSet = new Set(accessibleModules);\n\n const MenuBar = [\n {\n label: t(\"common.modules.user.title\"),\n link: Pathname.DASHBOARD_USER,\n sidebar: image.sidebar.user,\n bacModuleName: \"user\",\n icon: image.user,\n permission: \"\",\n beModuleName: \"rbac\",\n bg: \"#F3E8FF\",\n connectedRoutes: Object.values(PathnameUsers).map(\n (path: string) => Pathname.DASHBOARD_USER + path\n ),\n translationModule: [\"user\"]\n },\n {\n label: t(\"common.modules.document.title\"),\n link: Pathname.DASHBOARD_DOCUMENT,\n sidebar: image.sidebar.document,\n bacModuleName: \"document\",\n icon: image.document,\n permission: \"\",\n beModuleName: \"document\",\n bg: \"#E0F2FE\",\n connectedRoutes: Object.values(PathnameDocument).map(\n (path: string) => Pathname.DASHBOARD_DOCUMENT + path\n ),\n translationModule: [\"document\"]\n },\n {\n label: t(\"common.modules.accounting.title\"),\n link: Pathname.DASHBOARD_ACCOUNTING,\n sidebar: image.sidebar.accountingIcon,\n bacModuleName: \"accounts-and-finance\",\n icon: image.accounting,\n permission: \"\",\n beModuleName: \"accounts-and-finance\",\n bg: \"#E8EAF6\",\n connectedRoutes: Object.values(PathnameAccounting).map(\n (path: string) => Pathname.DASHBOARD_ACCOUNTING + path\n ),\n translationModule: [\"accounting\"]\n },\n {\n label: t(\"common.modules.inventory.title\"),\n link: Pathname.DASHBOARD_INVENTORY,\n sidebar: image.sidebar.inventoryIcon,\n bacModuleName: \"inventory\",\n icon: image.inventory,\n permission: \"\",\n beModuleName: \"inventory\",\n bg: \"#FFF3E6\",\n connectedRoutes: Object.values(PathnameInventory).map(\n (path: string) => Pathname.DASHBOARD_INVENTORY + path\n ),\n translationModule: [\"inventory\"]\n },\n {\n label: t(\"common.modules.project.title\"),\n link: Pathname.DASHBOARD_PROJECT,\n sidebar: image.sidebar.projectIcon,\n bacModuleName: \"project\",\n icon: image.project,\n permission: \"\",\n beModuleName: \"project\",\n bg: \"#DCFCE7\",\n connectedRoutes: [],\n translationModule: [\"project\"]\n },\n {\n label: t(\"common.modules.procurement.title\"),\n link: Pathname.DASHBOARD_PROCUREMENT,\n sidebar: image.sidebar.procurementIcon,\n bacModuleName: \"purchase\",\n icon: image.procurement,\n permission: \"\",\n beModuleName: \"purchase\",\n bg: \"#FFEBE6\",\n connectedRoutes: Object.values(PathnamePurchase).map(\n (path: string) => Pathname.DASHBOARD_PROCUREMENT + path\n ),\n // connectedRoutes: [],\n translationModule: [\"procurement\", \"accounting\"]\n },\n {\n label: t(\"common.modules.manufacturing.title\"),\n link: Pathname.DASHBOARD_MANUFACTURING,\n sidebar: image.sidebar.manufacturingIcon,\n bacModuleName: \"manufacturing\",\n icon: image.manufacturing,\n permission: \"\",\n beModuleName: \"manufacturing\",\n bg: \"#F0FDF4\",\n connectedRoutes: Object.values(PathnameManufacturing).map(\n (path: string) => Pathname.DASHBOARD_MANUFACTURING + path\n ),\n translationModule: [\"manufacturing\"]\n },\n {\n label: t(\"common.modules.crm.title\"),\n link: Pathname.DASHBOARD_CRM,\n sidebar: image.sidebar.crmIcon,\n bacModuleName: \"sales\",\n icon: image.crm,\n permission: \"\",\n beModuleName: \"sales\",\n bg: \"#FCEBEC\",\n connectedRoutes: Object.values(PathnameCrm).map(\n (path: string) => Pathname.DASHBOARD_CRM + path\n ),\n translationModule: [\"crm\", \"accounting\"]\n },\n // {\n // label: t(\"purchase.name\"),\n // link: Pathname.DASHBOARD_PURCHASE,\n // sidebar: image.sidebar.purchaseIcon,\n // icon: image.sidebar.purchaseIcon,\n // permission: \"\",\n // bg: \"rgba(111, 102, 215, 0.10)\",\n // connectedRoutes: [],\n // },\n {\n label: t(\"common.modules.hrms.title\"),\n link: Pathname.DASHBOARD_HRMS,\n sidebar: image.sidebar.hrmsIcon,\n bacModuleName: \"hrms\",\n icon: image.hrms,\n permission: \"\",\n beModuleName: \"hrms\",\n bg: \"#EBF9F2\",\n connectedRoutes: (() => {\n // Prefer MFE-injected routes (set via ERPUIProvider's moduleRoutes prop)\n // which contain the full, up-to-date route list from the HRMS MFE.\n // Fall back to common-hub's PathnameHrms if no MFE routes were injected.\n const mfeRoutes = getModuleRoutes('hrms');\n if (mfeRoutes.length > 0) return mfeRoutes;\n return Object.values(PathnameHrms).map(\n (path: string) => Pathname.DASHBOARD_HRMS + path\n );\n })(),\n translationModule: [\"hrms\"]\n },\n {\n label: t(\"common.modules.office.title\"),\n link: Pathname.DASHBOARD_OFFICE,\n sidebar: image.sidebar.officeIcon,\n bacModuleName: \"office\",\n icon: image.office,\n permission: \"\",\n beModuleName: \"office\",\n bg: \"#DCFCE7\",\n connectedRoutes: [],\n translationModule: [\"office\"]\n },\n {\n label: t(\"common.modules.rental.title\"),\n link: Pathname.DASHBOARD_RENTAL,\n sidebar: image.sidebar.rentalIcon,\n bacModuleName: \"rental\",\n icon: image.rental,\n permission: \"\",\n beModuleName: \"rental\",\n bg: \"#FEF3C7\",\n connectedRoutes: Object.values(PathnameRental).map(\n (path: string) => Pathname.DASHBOARD_RENTAL + path\n ),\n translationModule: [\"rental\",\"inventory\"]\n },\n {\n label: t(\"common.modules.settings.title\"),\n link: Pathname.DASHBOARD_QUOTES,\n sidebar: image.sidebar.setting,\n bacModuleName: \"setting\",\n icon: image.settings,\n permission: \"\",\n beModuleName: \"setting\",\n bg: \"#EEF2FF\",\n connectedRoutes: [],\n translationModule: [\"settings\"]\n },\n ...getOnboardingMenuItem(t, VITE_APP_ENV),\n ];\n\n function filterMenu(menu: any[]) {\n return menu.filter((item) => {\n const isModuleAccessible = accessibleModulesSet.has(item.bacModuleName);\n let hasValidSubmenu = false;\n\n if (item.submenu && item.submenu.length > 0) {\n item.submenu = filterMenu(item.submenu); // Recursively filter submenu\n hasValidSubmenu = item.submenu.length > 0;\n }\n\n return isModuleAccessible || hasValidSubmenu;\n });\n }\n\n const filteredMenu = filterMenu(MenuBar);\n\n return filteredMenu;\n};\n\nexport default modules;"],"names":["Pathname","image","getApiConfig","module","PathnameUsers","PathnameDocument","PathnameAccounting","PathnameInventory","PathnamePurchase","PathnameManufacturing","PathnameCrm","getModuleRoutes","PathnameHrms","PathnameRental"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { P as Pathname } from "./pathname-DkK1_yYM.esm.js";
|
|
2
2
|
import images from "../images/index.esm.js";
|
|
3
3
|
import { a as PathnameUsers, P as PathnameHrms } from "./pathname.hrms-Jflm4teT.esm.js";
|
|
4
|
-
import { P as PathnameAccounting, b as PathnameInventory, d as PathnamePurchase, c as PathnameManufacturing, a as PathnameCrm, e as PathnameRental } from "./pathname.rental-
|
|
4
|
+
import { P as PathnameAccounting, b as PathnameInventory, d as PathnamePurchase, c as PathnameManufacturing, a as PathnameCrm, e as PathnameRental } from "./pathname.rental-qsAe3XFd.esm.js";
|
|
5
5
|
import { P as PathnameDocument } from "./pathname.document-CiCHLywm.esm.js";
|
|
6
6
|
import { getApiConfig } from "../utils/api-config/index.esm.js";
|
|
7
7
|
import { getModuleRoutes } from "../utils/module-routes-config/index.esm.js";
|
|
@@ -235,4 +235,4 @@ const modules = (t) => {
|
|
|
235
235
|
export {
|
|
236
236
|
modules as m
|
|
237
237
|
};
|
|
238
|
-
//# sourceMappingURL=modules-
|
|
238
|
+
//# sourceMappingURL=modules-CWV4WSHs.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modules-enwLrpfQ.esm.js","sources":["../../src/constants/pathnames/pathname.onboarding.ts","../../src/constants/modules.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Pathname } from \"./pathname\";\n\nexport const PathnameGenerator = (name: string): string => Pathname.DASHBOARD_ONBOARDING + name;\n\nconst CRUD_ACTIONS = { ADD: 'add', VIEW: 'view', EDIT: 'edit' } as const;\n\ntype ModulePaths = Record<string, string>;\n\nexport const MAIN_MENU: ModulePaths = {\n SETTINGS: 'settings',\n};\n\nexport const MODULES: ModulePaths = {\n SETTINGS: 'settings',\n};\n\nexport const generateCrudPaths = (\n base: string,\n entity: string,\n prefix = '',\n keyPostfix = ''\n) =>\n { \n return Object.fromEntries(\n Object.entries(CRUD_ACTIONS).map(([key, action]) => {\n const isEditOrView = action === 'edit' || action === 'view';\n const id = (isEditOrView && MODULES[base]?.includes(':id')) ? `:${entity?.replace('-', \"\")}Id` : ':id'\n const routeParts = [prefix, MODULES[base]];\n if (isEditOrView) {\n routeParts.push(id, `${action}-${entity}`);\n } else {\n routeParts.push(`${action}-${entity}`);\n }\n\n return [\n `${key}_${keyPostfix.replace(/[^a-zA-Z0-9]/g, '_').toUpperCase()}`,\n `/${routeParts.filter(Boolean).join('/')}`,\n ];\n })\n );\n}\n\n\nexport const generateModulePaths = (mainModule: keyof typeof MAIN_MENU, subModule: keyof typeof MODULES = '', entity: string, keyPostfix = '') => ({\n [subModule.replace(/[^a-zA-Z0-9]/g, '_').toUpperCase()]: `/${[MAIN_MENU[mainModule], MODULES[subModule]].filter(Boolean).join('/')}`,\n ...generateCrudPaths(subModule, entity, MAIN_MENU[mainModule], keyPostfix),\n});\n\nexport const PathnameOnBoarding: Record<any, string> = {\n LANDING_PAGE: '/',\n LIST: '/list',\n FORMS: \"/settings/forms\",\n};\n\n","import { Pathname } from \"./pathnames/pathname\";\nimport image from \"../assets/images\";\nimport { PathnameUsers } from \"./pathnames/pathname.user\";\nimport { PathnameAccounting } from \"./pathnames/pathname.accounting\";\nimport { PathnameDocument } from \"./pathnames/pathname.document\";\nimport { PathnameInventory } from \"./pathnames/pathname.inventory\";\nimport { PathnameManufacturing } from \"./pathnames/pathname.manufacturing\";\nimport { PathnameCrm } from \"./pathnames/pathname.crm\";\nimport { PathnamePurchase } from \"./pathnames/pathname.procurement\";\nimport { PathnameRental } from \"./pathnames/pathname.rental\";\nimport { PathnameHrms } from \"./pathnames/pathname.hrms\";\nimport { PathnameOnBoarding } from \"./pathnames/pathname.onboarding\";\nimport { getApiConfig } from \"../utils/api-config\";\nimport { getModuleRoutes } from \"../utils/module-routes-config\";\n\n// Helper to conditionally create the onboarding menu item\nconst getOnboardingMenuItem = (t: any, env: string) => {\n if (!['ksa'].includes(env)) {\n return [];\n }\n\n return [\n {\n label: t(\"onboarding.name\"),\n link: Pathname.DASHBOARD_ONBOARDING,\n sidebar: image.sidebar.user,\n bacModuleName: \"user\",\n icon: image.user,\n permission: \"\",\n beModuleName: \"rbac\",\n bg: \"#F3E8FF\",\n connectedRoutes: Object.values(PathnameOnBoarding).map(\n (path: string) => Pathname.DASHBOARD_ONBOARDING + path\n ),\n translationModule: [\"onboarding\"],\n },\n ];\n};\n\nconst modules = (t: any) => {\n const u_data = localStorage.getItem(\"_u_data\") || undefined;\n const userData = u_data ? JSON.parse(u_data) : \"\";\n const config: any = getApiConfig();\n const access_modules = userData?.module_access || [];\n const VITE_APP_ENV = config?.zatcaEnvironment || 'simulation';\n const accessibleModules = access_modules.map((module: any) => module.module_name);\n const accessibleModulesSet = new Set(accessibleModules);\n\n const MenuBar = [\n {\n label: t(\"common.modules.user.title\"),\n link: Pathname.DASHBOARD_USER,\n sidebar: image.sidebar.user,\n bacModuleName: \"user\",\n icon: image.user,\n permission: \"\",\n beModuleName: \"rbac\",\n bg: \"#F3E8FF\",\n connectedRoutes: Object.values(PathnameUsers).map(\n (path: string) => Pathname.DASHBOARD_USER + path\n ),\n translationModule: [\"user\"]\n },\n {\n label: t(\"common.modules.document.title\"),\n link: Pathname.DASHBOARD_DOCUMENT,\n sidebar: image.sidebar.document,\n bacModuleName: \"document\",\n icon: image.document,\n permission: \"\",\n beModuleName: \"document\",\n bg: \"#E0F2FE\",\n connectedRoutes: Object.values(PathnameDocument).map(\n (path: string) => Pathname.DASHBOARD_DOCUMENT + path\n ),\n translationModule: [\"document\"]\n },\n {\n label: t(\"common.modules.accounting.title\"),\n link: Pathname.DASHBOARD_ACCOUNTING,\n sidebar: image.sidebar.accountingIcon,\n bacModuleName: \"accounts-and-finance\",\n icon: image.accounting,\n permission: \"\",\n beModuleName: \"accounts-and-finance\",\n bg: \"#E8EAF6\",\n connectedRoutes: Object.values(PathnameAccounting).map(\n (path: string) => Pathname.DASHBOARD_ACCOUNTING + path\n ),\n translationModule: [\"accounting\"]\n },\n {\n label: t(\"common.modules.inventory.title\"),\n link: Pathname.DASHBOARD_INVENTORY,\n sidebar: image.sidebar.inventoryIcon,\n bacModuleName: \"inventory\",\n icon: image.inventory,\n permission: \"\",\n beModuleName: \"inventory\",\n bg: \"#FFF3E6\",\n connectedRoutes: Object.values(PathnameInventory).map(\n (path: string) => Pathname.DASHBOARD_INVENTORY + path\n ),\n translationModule: [\"inventory\"]\n },\n {\n label: t(\"common.modules.project.title\"),\n link: Pathname.DASHBOARD_PROJECT,\n sidebar: image.sidebar.projectIcon,\n bacModuleName: \"project\",\n icon: image.project,\n permission: \"\",\n beModuleName: \"project\",\n bg: \"#DCFCE7\",\n connectedRoutes: [],\n translationModule: [\"project\"]\n },\n {\n label: t(\"common.modules.procurement.title\"),\n link: Pathname.DASHBOARD_PROCUREMENT,\n sidebar: image.sidebar.procurementIcon,\n bacModuleName: \"purchase\",\n icon: image.procurement,\n permission: \"\",\n beModuleName: \"purchase\",\n bg: \"#FFEBE6\",\n connectedRoutes: Object.values(PathnamePurchase).map(\n (path: string) => Pathname.DASHBOARD_PROCUREMENT + path\n ),\n // connectedRoutes: [],\n translationModule: [\"procurement\", \"accounting\"]\n },\n {\n label: t(\"common.modules.manufacturing.title\"),\n link: Pathname.DASHBOARD_MANUFACTURING,\n sidebar: image.sidebar.manufacturingIcon,\n bacModuleName: \"manufacturing\",\n icon: image.manufacturing,\n permission: \"\",\n beModuleName: \"manufacturing\",\n bg: \"#F0FDF4\",\n connectedRoutes: Object.values(PathnameManufacturing).map(\n (path: string) => Pathname.DASHBOARD_MANUFACTURING + path\n ),\n translationModule: [\"manufacturing\"]\n },\n {\n label: t(\"common.modules.crm.title\"),\n link: Pathname.DASHBOARD_CRM,\n sidebar: image.sidebar.crmIcon,\n bacModuleName: \"sales\",\n icon: image.crm,\n permission: \"\",\n beModuleName: \"sales\",\n bg: \"#FCEBEC\",\n connectedRoutes: Object.values(PathnameCrm).map(\n (path: string) => Pathname.DASHBOARD_CRM + path\n ),\n translationModule: [\"crm\", \"accounting\"]\n },\n // {\n // label: t(\"purchase.name\"),\n // link: Pathname.DASHBOARD_PURCHASE,\n // sidebar: image.sidebar.purchaseIcon,\n // icon: image.sidebar.purchaseIcon,\n // permission: \"\",\n // bg: \"rgba(111, 102, 215, 0.10)\",\n // connectedRoutes: [],\n // },\n {\n label: t(\"common.modules.hrms.title\"),\n link: Pathname.DASHBOARD_HRMS,\n sidebar: image.sidebar.hrmsIcon,\n bacModuleName: \"hrms\",\n icon: image.hrms,\n permission: \"\",\n beModuleName: \"hrms\",\n bg: \"#EBF9F2\",\n connectedRoutes: (() => {\n // Prefer MFE-injected routes (set via ERPUIProvider's moduleRoutes prop)\n // which contain the full, up-to-date route list from the HRMS MFE.\n // Fall back to common-hub's PathnameHrms if no MFE routes were injected.\n const mfeRoutes = getModuleRoutes('hrms');\n if (mfeRoutes.length > 0) return mfeRoutes;\n return Object.values(PathnameHrms).map(\n (path: string) => Pathname.DASHBOARD_HRMS + path\n );\n })(),\n translationModule: [\"hrms\"]\n },\n {\n label: t(\"common.modules.office.title\"),\n link: Pathname.DASHBOARD_OFFICE,\n sidebar: image.sidebar.officeIcon,\n bacModuleName: \"office\",\n icon: image.office,\n permission: \"\",\n beModuleName: \"office\",\n bg: \"#DCFCE7\",\n connectedRoutes: [],\n translationModule: [\"office\"]\n },\n {\n label: t(\"common.modules.rental.title\"),\n link: Pathname.DASHBOARD_RENTAL,\n sidebar: image.sidebar.rentalIcon,\n bacModuleName: \"rental\",\n icon: image.rental,\n permission: \"\",\n beModuleName: \"rental\",\n bg: \"#FEF3C7\",\n connectedRoutes: Object.values(PathnameRental).map(\n (path: string) => Pathname.DASHBOARD_RENTAL + path\n ),\n translationModule: [\"rental\",\"inventory\"]\n },\n {\n label: t(\"common.modules.settings.title\"),\n link: Pathname.DASHBOARD_QUOTES,\n sidebar: image.sidebar.setting,\n bacModuleName: \"setting\",\n icon: image.settings,\n permission: \"\",\n beModuleName: \"setting\",\n bg: \"#EEF2FF\",\n connectedRoutes: [],\n translationModule: [\"settings\"]\n },\n ...getOnboardingMenuItem(t, VITE_APP_ENV),\n ];\n\n function filterMenu(menu: any[]) {\n return menu.filter((item) => {\n const isModuleAccessible = accessibleModulesSet.has(item.bacModuleName);\n let hasValidSubmenu = false;\n\n if (item.submenu && item.submenu.length > 0) {\n item.submenu = filterMenu(item.submenu); // Recursively filter submenu\n hasValidSubmenu = item.submenu.length > 0;\n }\n\n return isModuleAccessible || hasValidSubmenu;\n });\n }\n\n const filteredMenu = filterMenu(MenuBar);\n\n return filteredMenu;\n};\n\nexport default modules;"],"names":["image"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"modules-CWV4WSHs.esm.js","sources":["../../src/constants/pathnames/pathname.onboarding.ts","../../src/constants/modules.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Pathname } from \"./pathname\";\n\nexport const PathnameGenerator = (name: string): string => Pathname.DASHBOARD_ONBOARDING + name;\n\nconst CRUD_ACTIONS = { ADD: 'add', VIEW: 'view', EDIT: 'edit' } as const;\n\ntype ModulePaths = Record<string, string>;\n\nexport const MAIN_MENU: ModulePaths = {\n SETTINGS: 'settings',\n};\n\nexport const MODULES: ModulePaths = {\n SETTINGS: 'settings',\n};\n\nexport const generateCrudPaths = (\n base: string,\n entity: string,\n prefix = '',\n keyPostfix = ''\n) =>\n { \n return Object.fromEntries(\n Object.entries(CRUD_ACTIONS).map(([key, action]) => {\n const isEditOrView = action === 'edit' || action === 'view';\n const id = (isEditOrView && MODULES[base]?.includes(':id')) ? `:${entity?.replace('-', \"\")}Id` : ':id'\n const routeParts = [prefix, MODULES[base]];\n if (isEditOrView) {\n routeParts.push(id, `${action}-${entity}`);\n } else {\n routeParts.push(`${action}-${entity}`);\n }\n\n return [\n `${key}_${keyPostfix.replace(/[^a-zA-Z0-9]/g, '_').toUpperCase()}`,\n `/${routeParts.filter(Boolean).join('/')}`,\n ];\n })\n );\n}\n\n\nexport const generateModulePaths = (mainModule: keyof typeof MAIN_MENU, subModule: keyof typeof MODULES = '', entity: string, keyPostfix = '') => ({\n [subModule.replace(/[^a-zA-Z0-9]/g, '_').toUpperCase()]: `/${[MAIN_MENU[mainModule], MODULES[subModule]].filter(Boolean).join('/')}`,\n ...generateCrudPaths(subModule, entity, MAIN_MENU[mainModule], keyPostfix),\n});\n\nexport const PathnameOnBoarding: Record<any, string> = {\n LANDING_PAGE: '/',\n LIST: '/list',\n FORMS: \"/settings/forms\",\n};\n\n","import { Pathname } from \"./pathnames/pathname\";\nimport image from \"../assets/images\";\nimport { PathnameUsers } from \"./pathnames/pathname.user\";\nimport { PathnameAccounting } from \"./pathnames/pathname.accounting\";\nimport { PathnameDocument } from \"./pathnames/pathname.document\";\nimport { PathnameInventory } from \"./pathnames/pathname.inventory\";\nimport { PathnameManufacturing } from \"./pathnames/pathname.manufacturing\";\nimport { PathnameCrm } from \"./pathnames/pathname.crm\";\nimport { PathnamePurchase } from \"./pathnames/pathname.procurement\";\nimport { PathnameRental } from \"./pathnames/pathname.rental\";\nimport { PathnameHrms } from \"./pathnames/pathname.hrms\";\nimport { PathnameOnBoarding } from \"./pathnames/pathname.onboarding\";\nimport { getApiConfig } from \"../utils/api-config\";\nimport { getModuleRoutes } from \"../utils/module-routes-config\";\n\n// Helper to conditionally create the onboarding menu item\nconst getOnboardingMenuItem = (t: any, env: string) => {\n if (!['ksa'].includes(env)) {\n return [];\n }\n\n return [\n {\n label: t(\"onboarding.name\"),\n link: Pathname.DASHBOARD_ONBOARDING,\n sidebar: image.sidebar.user,\n bacModuleName: \"user\",\n icon: image.user,\n permission: \"\",\n beModuleName: \"rbac\",\n bg: \"#F3E8FF\",\n connectedRoutes: Object.values(PathnameOnBoarding).map(\n (path: string) => Pathname.DASHBOARD_ONBOARDING + path\n ),\n translationModule: [\"onboarding\"],\n },\n ];\n};\n\nconst modules = (t: any) => {\n const u_data = localStorage.getItem(\"_u_data\") || undefined;\n const userData = u_data ? JSON.parse(u_data) : \"\";\n const config: any = getApiConfig();\n const access_modules = userData?.module_access || [];\n const VITE_APP_ENV = config?.zatcaEnvironment || 'simulation';\n const accessibleModules = access_modules.map((module: any) => module.module_name);\n const accessibleModulesSet = new Set(accessibleModules);\n\n const MenuBar = [\n {\n label: t(\"common.modules.user.title\"),\n link: Pathname.DASHBOARD_USER,\n sidebar: image.sidebar.user,\n bacModuleName: \"user\",\n icon: image.user,\n permission: \"\",\n beModuleName: \"rbac\",\n bg: \"#F3E8FF\",\n connectedRoutes: Object.values(PathnameUsers).map(\n (path: string) => Pathname.DASHBOARD_USER + path\n ),\n translationModule: [\"user\"]\n },\n {\n label: t(\"common.modules.document.title\"),\n link: Pathname.DASHBOARD_DOCUMENT,\n sidebar: image.sidebar.document,\n bacModuleName: \"document\",\n icon: image.document,\n permission: \"\",\n beModuleName: \"document\",\n bg: \"#E0F2FE\",\n connectedRoutes: Object.values(PathnameDocument).map(\n (path: string) => Pathname.DASHBOARD_DOCUMENT + path\n ),\n translationModule: [\"document\"]\n },\n {\n label: t(\"common.modules.accounting.title\"),\n link: Pathname.DASHBOARD_ACCOUNTING,\n sidebar: image.sidebar.accountingIcon,\n bacModuleName: \"accounts-and-finance\",\n icon: image.accounting,\n permission: \"\",\n beModuleName: \"accounts-and-finance\",\n bg: \"#E8EAF6\",\n connectedRoutes: Object.values(PathnameAccounting).map(\n (path: string) => Pathname.DASHBOARD_ACCOUNTING + path\n ),\n translationModule: [\"accounting\"]\n },\n {\n label: t(\"common.modules.inventory.title\"),\n link: Pathname.DASHBOARD_INVENTORY,\n sidebar: image.sidebar.inventoryIcon,\n bacModuleName: \"inventory\",\n icon: image.inventory,\n permission: \"\",\n beModuleName: \"inventory\",\n bg: \"#FFF3E6\",\n connectedRoutes: Object.values(PathnameInventory).map(\n (path: string) => Pathname.DASHBOARD_INVENTORY + path\n ),\n translationModule: [\"inventory\"]\n },\n {\n label: t(\"common.modules.project.title\"),\n link: Pathname.DASHBOARD_PROJECT,\n sidebar: image.sidebar.projectIcon,\n bacModuleName: \"project\",\n icon: image.project,\n permission: \"\",\n beModuleName: \"project\",\n bg: \"#DCFCE7\",\n connectedRoutes: [],\n translationModule: [\"project\"]\n },\n {\n label: t(\"common.modules.procurement.title\"),\n link: Pathname.DASHBOARD_PROCUREMENT,\n sidebar: image.sidebar.procurementIcon,\n bacModuleName: \"purchase\",\n icon: image.procurement,\n permission: \"\",\n beModuleName: \"purchase\",\n bg: \"#FFEBE6\",\n connectedRoutes: Object.values(PathnamePurchase).map(\n (path: string) => Pathname.DASHBOARD_PROCUREMENT + path\n ),\n // connectedRoutes: [],\n translationModule: [\"procurement\", \"accounting\"]\n },\n {\n label: t(\"common.modules.manufacturing.title\"),\n link: Pathname.DASHBOARD_MANUFACTURING,\n sidebar: image.sidebar.manufacturingIcon,\n bacModuleName: \"manufacturing\",\n icon: image.manufacturing,\n permission: \"\",\n beModuleName: \"manufacturing\",\n bg: \"#F0FDF4\",\n connectedRoutes: Object.values(PathnameManufacturing).map(\n (path: string) => Pathname.DASHBOARD_MANUFACTURING + path\n ),\n translationModule: [\"manufacturing\"]\n },\n {\n label: t(\"common.modules.crm.title\"),\n link: Pathname.DASHBOARD_CRM,\n sidebar: image.sidebar.crmIcon,\n bacModuleName: \"sales\",\n icon: image.crm,\n permission: \"\",\n beModuleName: \"sales\",\n bg: \"#FCEBEC\",\n connectedRoutes: Object.values(PathnameCrm).map(\n (path: string) => Pathname.DASHBOARD_CRM + path\n ),\n translationModule: [\"crm\", \"accounting\"]\n },\n // {\n // label: t(\"purchase.name\"),\n // link: Pathname.DASHBOARD_PURCHASE,\n // sidebar: image.sidebar.purchaseIcon,\n // icon: image.sidebar.purchaseIcon,\n // permission: \"\",\n // bg: \"rgba(111, 102, 215, 0.10)\",\n // connectedRoutes: [],\n // },\n {\n label: t(\"common.modules.hrms.title\"),\n link: Pathname.DASHBOARD_HRMS,\n sidebar: image.sidebar.hrmsIcon,\n bacModuleName: \"hrms\",\n icon: image.hrms,\n permission: \"\",\n beModuleName: \"hrms\",\n bg: \"#EBF9F2\",\n connectedRoutes: (() => {\n // Prefer MFE-injected routes (set via ERPUIProvider's moduleRoutes prop)\n // which contain the full, up-to-date route list from the HRMS MFE.\n // Fall back to common-hub's PathnameHrms if no MFE routes were injected.\n const mfeRoutes = getModuleRoutes('hrms');\n if (mfeRoutes.length > 0) return mfeRoutes;\n return Object.values(PathnameHrms).map(\n (path: string) => Pathname.DASHBOARD_HRMS + path\n );\n })(),\n translationModule: [\"hrms\"]\n },\n {\n label: t(\"common.modules.office.title\"),\n link: Pathname.DASHBOARD_OFFICE,\n sidebar: image.sidebar.officeIcon,\n bacModuleName: \"office\",\n icon: image.office,\n permission: \"\",\n beModuleName: \"office\",\n bg: \"#DCFCE7\",\n connectedRoutes: [],\n translationModule: [\"office\"]\n },\n {\n label: t(\"common.modules.rental.title\"),\n link: Pathname.DASHBOARD_RENTAL,\n sidebar: image.sidebar.rentalIcon,\n bacModuleName: \"rental\",\n icon: image.rental,\n permission: \"\",\n beModuleName: \"rental\",\n bg: \"#FEF3C7\",\n connectedRoutes: Object.values(PathnameRental).map(\n (path: string) => Pathname.DASHBOARD_RENTAL + path\n ),\n translationModule: [\"rental\",\"inventory\"]\n },\n {\n label: t(\"common.modules.settings.title\"),\n link: Pathname.DASHBOARD_QUOTES,\n sidebar: image.sidebar.setting,\n bacModuleName: \"setting\",\n icon: image.settings,\n permission: \"\",\n beModuleName: \"setting\",\n bg: \"#EEF2FF\",\n connectedRoutes: [],\n translationModule: [\"settings\"]\n },\n ...getOnboardingMenuItem(t, VITE_APP_ENV),\n ];\n\n function filterMenu(menu: any[]) {\n return menu.filter((item) => {\n const isModuleAccessible = accessibleModulesSet.has(item.bacModuleName);\n let hasValidSubmenu = false;\n\n if (item.submenu && item.submenu.length > 0) {\n item.submenu = filterMenu(item.submenu); // Recursively filter submenu\n hasValidSubmenu = item.submenu.length > 0;\n }\n\n return isModuleAccessible || hasValidSubmenu;\n });\n }\n\n const filteredMenu = filterMenu(MenuBar);\n\n return filteredMenu;\n};\n\nexport default modules;"],"names":["image"],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ const utils_formatText = require("../utils/format-text/index.js");
|
|
|
9
9
|
const typography = require("./typography-Bqfr1Ksf.js");
|
|
10
10
|
const images = require("../images/index.js");
|
|
11
11
|
const utils_routeUtils = require("../utils/route-utils/index.js");
|
|
12
|
-
const pathname_rental = require("./pathname.rental-
|
|
12
|
+
const pathname_rental = require("./pathname.rental-DgH4LoG7.js");
|
|
13
13
|
const reactRouterDom = require("react-router-dom");
|
|
14
14
|
const notification = require("./notification-DK92P_4L.js");
|
|
15
15
|
const tick = require("./tick-CQMWRTch.js");
|
|
@@ -597,4 +597,4 @@ const NotificationMenu = () => {
|
|
|
597
597
|
] });
|
|
598
598
|
};
|
|
599
599
|
exports.NotificationMenu = NotificationMenu;
|
|
600
|
-
//# sourceMappingURL=notification-menu-
|
|
600
|
+
//# sourceMappingURL=notification-menu-D7ASm-K1.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notification-menu-B00hDUbn.js","sources":["../../src/components/header/components/notification-menu/notification-menu.tsx"],"sourcesContent":["import React, { useState, useCallback, useRef, useEffect } from 'react'\nimport {\n\tIconButton,\n\tMenu,\n\tMenuItem,\n\tBadge,\n\tBox,\n\tCircularProgress,\n\tAvatar,\n\tListItemText,\n\tListItemAvatar,\n\tAlert,\n\tSkeleton,\n} from '@mui/material'\nimport {\n\tPerson as PersonIcon,\n\tEmail as EmailIcon,\n\tWarning as WarningIcon,\n\tCheckCircle as CheckCircleIcon,\n\tAssignment as AssignmentIcon,\n\tAccountBalance as AccountBalanceIcon,\n\tHourglassEmpty as HourglassEmptyIcon,\n\tCancel as CancelIcon,\n} from '@mui/icons-material'\nimport {\n\tgetV1Notification,\n\tgetV1NotificationMarkAllAsRead,\n\tpatchV1NotificationMarkAsReadId,\n} from '../../../../api-client/api.system-feature/api'\nimport { getErrorMessage, getToken } from '../../../../utils/common'\nimport formatText, { convertToUnderscore, formatLabel } from '../../../../utils/format-text'\nimport Typography from '../../../typography/typography'\nimport images from '../../../../assets/images'\nimport { generateRouteWithId } from '../../../../utils/route-utils'\nimport { PathnameGenerator, PathnameAccounting } from '../../../../constants/pathnames/pathname.accounting'\nimport { ROUTES as RENTALROUTES } from '../../../../constants/pathnames/pathname.rental'\n\nimport { PathnameInventory, PathnameGenerator as PathnameGeneratorInventory } from '../../../../constants/pathnames/pathname.inventory'\n\nimport {\n\tPathnameManufacturing,\n\tPathnameGenerator as PathnameGeneratorManufacuring,\n} from '../../../../constants/pathnames/pathname.manufacturing.ts'\n\nimport {\n\tPathnamePurchase,\n\tPathnameGenerator as PathnameGeneratorPurchase,\n} from '../../../../constants/pathnames/pathname.procurement.ts'\n\nimport { PathnameCrm, PathnameGenerator as PathnameGeneratorCrm } from '../../../../constants/pathnames/pathname.crm.ts'\n\nimport { PathnameRental, PathnameGenerator as PathnameGeneratorRental } from '../../../../constants/pathnames/pathname.rental.ts'\n\nimport { useNavigate } from 'react-router-dom'\nimport { Notification, Tick } from '../../../icons'\nimport Button from '../../../button/button'\nimport { enqueueSnackbar } from 'notistack'\n\nconst getNotificationUrl = (data: any) => {\n\tconst { moduleName = '', moduleId = '', notificationData = {} } = data\n\tconst key = convertToUnderscore(moduleName)\n\n\tconst routeMap: Record<string, () => string> = {\n\t\tsales_invoice: () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_SALES_INVOICES), moduleId.toString()),\n\n\t\tasset_transfers: () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_ASSET_TRANSFER), moduleId.toString()),\n\n\t\tbudgets: () => generateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_BUDGET), moduleId.toString()),\n\n\t\tcash_expense: () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_CASH_EXPENSE), moduleId.toString()),\n\n\t\tcredit_notes: () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_CREDIT_NOTE), moduleId.toString()),\n\n\t\tdebit_notes: () => generateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_DEBIT_NOTE), moduleId.toString()),\n\n\t\texpense_reimbursement: () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_EXPENSE_REIMBURSEMENT), moduleId.toString()),\n\n\t\tjournal_entries: () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_JOURNAL_ENTRY), moduleId.toString()),\n\n\t\tpayment_entries: () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_PAYMENT_ENTRY), moduleId.toString()),\n\n\t\tpurchase_invoice: () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_PURCHASE_INVOICE), moduleId.toString()),\n\n\t\tstock_transfer: () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorInventory(PathnameInventory.VIEW_STOCK_TRANSFER), moduleId.toString()),\n\n\t\tbills_of_materials: () =>\n\t\t\tgenerateRouteWithId(\n\t\t\t\tPathnameGeneratorManufacuring(PathnameManufacturing.VIEW_BILL_OF_MATERIAL),\n\t\t\t\tmoduleId.toString()\n\t\t\t),\n\n\t\tpurchase_agreement: () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorPurchase(PathnamePurchase.VIEW_PURCHASE_AGREEMENT), moduleId.toString()),\n\n\t\tpurchase_orders: () =>\n\t\t\tgenerateRouteWithId(\n\t\t\t\tnotificationData?.data?.is_rental == 1\n\t\t\t\t\t? RENTALROUTES.VIEW\n\t\t\t\t\t: PathnameGeneratorPurchase(PathnamePurchase.VIEW_PURCHASE_ORDER),\n\t\t\t\tmoduleId.toString()\n\t\t\t),\n\n\t\tpurchase_request: () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorPurchase(PathnamePurchase.VIEW_PURCHASE_ORDER), moduleId.toString()),\n\n\t\tvra: () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorPurchase(PathnamePurchase.VIEW_VENDOR_RETURNS), moduleId.toString()),\n\n\t\tsales_customer_returns: () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorCrm(PathnameCrm.VIEW_CUSTOMER_RETURNS), moduleId.toString()),\n\n\t\tsales_order: () => generateRouteWithId(PathnameGeneratorCrm(PathnameCrm.VIEW_SALES_ORDER), moduleId.toString()),\n\n\t\tquotation: () => generateRouteWithId(PathnameGeneratorCrm(PathnameCrm.VIEW_QUOTATION), moduleId.toString()),\n\n\t\trental_order: () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorRental(PathnameRental.VIEW_RENTAL_ORDER), moduleId.toString()),\n\n\t\treplacement_order: () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorRental(PathnameRental.VIEW_RENTAL_ORDER), moduleId.toString()),\n\n\t\trental_agreement: () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorRental(PathnameRental.VIEW_AGREEMENT), moduleId.toString()),\n\n\t\tcross_hire_order: () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorRental(PathnameRental.VIEW_CROSS_HIRE_ORDER), moduleId.toString()),\n\n\t\tcross_hire_request: () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorRental(PathnameRental.VIEW_CROSS_HIRE_REQUEST), moduleId.toString()),\n\t}\n\n\treturn routeMap[key]?.() || '/dashboard'\n}\n\nconst mainModuleIcons = {\n\trbac: images.user,\n\tdocument: images.document,\n\t'accounts-and-finance': images.accounting,\n\tinventory: images.inventory,\n\tmanufacturing: images.manufacturing,\n\tsales: images.crm,\n\trental: images.rental,\n\tuser: images.user,\n\tpurchase: images.procurement,\n\thrms: images.hrms,\n}\nconst mainModuleBgColors = {\n\trbac: '#F3E5F5',\n\tdocument: '#FFF8E1',\n\t'accounts-and-finance': '#E8F5E8',\n\tinventory: '#E3F2FD',\n\tmanufacturing: '#FFF3E0',\n\tsales: '#F3E5F5',\n\trental: '#E8F5E8',\n\tuser: '#F3E5F5',\n\tpurchase: '#FCE4EC',\n\thrms: '#fcfcfc',\n}\n\nconst NotificationMenu = () => {\n\tconst [anchorEl, setAnchorEl] = useState(null)\n\tconst [notifications, setNotifications] = useState([])\n\tconst [loading, setLoading] = useState(false)\n\tconst [loadingMore, setLoadingMore] = useState(false)\n\tconst [error, setError] = useState(null)\n\tconst [unreadCount, setUnreadCount] = useState(0)\n\tconst [markingAllAsRead, setMarkingAllAsRead] = useState(false)\n\tconst [pagination, setPagination] = useState({\n\t\tskip: 0,\n\t\tlimit: 20,\n\t\ttotalCount: 0,\n\t\thasMore: true,\n\t})\n\n\tconst navigate = useNavigate()\n\n\tconst menuRef = useRef(null)\n\tconst isLoadingMoreRef = useRef(false)\n\tconst open = Boolean(anchorEl)\n\n\t// Transform API notification to display format\n\tconst transformNotification = (apiNotification) => {\n\t\tconst moduleIcons = {\n\t\t\t'accounts-and-finance': <AccountBalanceIcon color=\"primary\" />,\n\t\t\tuser: <PersonIcon color=\"action\" />,\n\t\t\tapproval: <AssignmentIcon color=\"warning\" />,\n\t\t}\n\n\t\tconst getInitials = (performedUser) => {\n\t\t\tif (!performedUser) return null\n\t\t\tconst firstName = performedUser.first_name || ''\n\t\t\tconst lastName = performedUser.last_name || ''\n\t\t\tif (!firstName && !lastName) return null\n\t\t\treturn (firstName.charAt(0) + lastName.charAt(0)).toUpperCase()\n\t\t}\n\n\t\tconst getFullName = (performedUser) => {\n\t\t\tif (!performedUser) return null\n\t\t\tconst firstName = performedUser.first_name || ''\n\t\t\tconst lastName = performedUser.last_name || ''\n\t\t\treturn `${firstName} ${lastName}`.trim() || null\n\t\t}\n\n\t\tconst formatTimestamp = (dateString) => {\n\t\t\tconst date = new Date(dateString)\n\t\t\tconst now = new Date()\n\t\t\tconst diffMs = now - date\n\t\t\tconst diffMins = Math.floor(diffMs / 60000)\n\t\t\tconst diffHours = Math.floor(diffMs / 3600000)\n\t\t\tconst diffDays = Math.floor(diffMs / 86400000)\n\n\t\t\tif (diffMins < 1) return 'Just now'\n\t\t\tif (diffMins < 60) return `${diffMins} minute${diffMins > 1 ? 's' : ''} ago`\n\t\t\tif (diffHours < 24) return `${diffHours} hour${diffHours > 1 ? 's' : ''} ago`\n\t\t\tif (diffDays < 7) return `${diffDays} day${diffDays > 1 ? 's' : ''} ago`\n\t\t\treturn date.toLocaleDateString()\n\t\t}\n\n\t\tconst subData = apiNotification.sub_module_data || {}\n\n\t\treturn {\n\t\t\tid: apiNotification.id,\n\t\t\ttype: apiNotification.action || apiNotification.notification_type || 'info',\n\t\t\ttitle: formatText(apiNotification.title),\n\t\t\tmessage: apiNotification.message,\n\t\t\ttimestamp: formatTimestamp(apiNotification.created_at),\n\t\t\tread: apiNotification.status === 'read',\n\t\t\tavatar: getInitials(apiNotification.performed_user),\n\t\t\tperformedByName: getFullName(apiNotification.performed_user),\n\t\t\tmodule: apiNotification.module,\n\t\t\tsubModule: apiNotification.sub_module,\n\t\t\tsubModuleId: apiNotification.sub_module_id,\n\t\t\tstatus: apiNotification.status,\n\t\t\tseriesNumber: subData.series_number || null,\n\t\t\tdocumentStatus: subData.status || null,\n\t\t\tcustomerName: subData.customer_name || null,\n\t\t\ticon: moduleIcons[apiNotification.module] || moduleIcons[apiNotification.action] || <PersonIcon color=\"action\" />,\n\t\t}\n\t}\n\n\t// Fetch notifications with pagination\n\tconst fetchNotifications = useCallback(async (isLoadMore = false) => {\n\t\t// Prevent multiple simultaneous load more requests\n\t\tif (isLoadMore && isLoadingMoreRef.current) {\n\t\t\treturn\n\t\t}\n\n\t\tif (isLoadMore) {\n\t\t\tisLoadingMoreRef.current = true\n\t\t\tsetLoadingMore(true)\n\t\t} else {\n\t\t\tsetLoading(true)\n\t\t\t// Reset pagination when loading fresh data\n\t\t\tsetPagination((prev) => ({\n\t\t\t\t...prev,\n\t\t\t\tskip: 0,\n\t\t\t\thasMore: true,\n\t\t\t}))\n\t\t}\n\t\tsetError(null)\n\n\t\ttry {\n\t\t\tconst currentSkip = isLoadMore ? pagination.skip : 0\n\t\t\tconst response = await getV1Notification({\n\t\t\t\tskip: currentSkip,\n\t\t\t\tlimit: pagination.limit,\n\t\t\t\t...getToken(),\n\t\t\t})\n\n\t\t\tif (response.success && response.data) {\n\t\t\t\tconst transformedNotifications = response.data.notifications.map(transformNotification)\n\n\t\t\t\tif (isLoadMore) {\n\t\t\t\t\tsetNotifications((prev) => [...prev, ...transformedNotifications])\n\t\t\t\t} else {\n\t\t\t\t\tsetNotifications(transformedNotifications)\n\t\t\t\t}\n\n\t\t\t\t// Update pagination\n\t\t\t\tconst newSkip = currentSkip + response.data.notifications.length\n\t\t\t\tconst hasMore = newSkip < response.data.pagination.totalCount\n\n\t\t\t\tsetPagination((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\tskip: newSkip,\n\t\t\t\t\ttotalCount: response.data.pagination.totalCount,\n\t\t\t\t\thasMore,\n\t\t\t\t}))\n\n\t\t\t\t// Calculate unread count (assuming 'pending' status means unread)\n\t\t\t\tif (!isLoadMore) {\n\t\t\t\t\tconst unread = response.data.pagination.unreadCount\n\t\t\t\t\tsetUnreadCount(unread)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsetUnreadCount(0)\n\t\t\t\tthrow new Error(response.message || 'Failed to load notifications')\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tsetError('Failed to load notifications')\n\t\t} finally {\n\t\t\tsetLoading(false)\n\t\t\tsetLoadingMore(false)\n\t\t\tif (isLoadMore) {\n\t\t\t\tisLoadingMoreRef.current = false\n\t\t\t}\n\t\t}\n\t}, [pagination.limit, pagination.skip])\n\n\t// Handle scroll for infinite loading\n\tconst handleScroll = useCallback(\n\t\t(event) => {\n\t\t\tconst { scrollTop, scrollHeight, clientHeight } = event.target\n\t\t\tconst isNearBottom = scrollTop + clientHeight >= scrollHeight - 50 // Increased threshold\n\n\t\t\tif (isNearBottom && !isLoadingMoreRef.current && !loading && pagination.hasMore) {\n\t\t\t\tfetchNotifications(true)\n\t\t\t}\n\t\t},\n\t\t[fetchNotifications, loading, pagination.hasMore]\n\t)\n\n\tconst handleClick = (event) => {\n\t\tsetAnchorEl(event.currentTarget)\n\t\tif (notifications.length === 0) {\n\t\t\tfetchNotifications()\n\t\t}\n\t}\n\n\tconst handleClose = () => {\n\t\tsetAnchorEl(null)\n\n\t\t// Don't clear notifications immediately to avoid flickering\n\t\t// They will be refreshed when menu is opened again\n\t}\n\n\tconst handleNotificationClick = async (notificationId) => {\n\t\t// Mark notification as read\n\t\tconst n = notifications.find((n) => {\n\t\t\treturn n.id === notificationId\n\t\t})\n\t\tif (!n) return\n\n\t\thandleClose()\n\n\t\tif (n.status === 'pending') {\n\t\t\tawait patchV1NotificationMarkAsReadId({\n\t\t\t\tid: notificationId,\n\t\t\t\t...getToken(),\n\t\t\t})\n\t\t}\n\n\t\tsetNotifications((prev) => prev.map((n) => (n.id === notificationId ? { ...n, read: true } : n)))\n\t\tsetUnreadCount((prev) => Math.max(0, prev - 1))\n\t\tconst url = getNotificationUrl({\n\t\t\tmoduleName: n.subModule,\n\t\t\tmoduleId: n.subModuleId,\n\t\t\tnotificationData: n,\n\t\t})\n setTimeout(() => {\n navigate(url)\n }, 300)\n\t}\n\n\tconst getNotificationIcon = (notification) => {\n\t\tif (notification.icon) {\n\t\t\treturn notification.icon\n\t\t}\n\n\t\tswitch (notification.type) {\n\t\t\tcase 'approval':\n\t\t\t\treturn <AssignmentIcon color=\"warning\" />\n\t\t\tcase 'user':\n\t\t\t\treturn <PersonIcon color=\"action\" />\n\t\t\tcase 'message':\n\t\t\t\treturn <EmailIcon color=\"primary\" />\n\t\t\tcase 'warning':\n\t\t\t\treturn <WarningIcon color=\"warning\" />\n\t\t\tcase 'success':\n\t\t\t\treturn <CheckCircleIcon color=\"success\" />\n\t\t\tdefault:\n\t\t\t\treturn <PersonIcon color=\"action\" />\n\t\t}\n\t}\n\n\tconst handleMarkAllAsRead = useCallback(async () => {\n\t\tif (markingAllAsRead) return // Prevent multiple calls\n\n\t\tsetMarkingAllAsRead(true)\n\n\t\tif (!unreadCount) {\n\t\t\tenqueueSnackbar('No unread notifications!')\n\t\t\tsetMarkingAllAsRead(false)\n\t\t\treturn\n\t\t}\n\n\t\ttry {\n\t\t\tawait getV1NotificationMarkAllAsRead({ ...getToken() })\n\t\t\t// Update local state immediately for better UX\n\t\t\tsetNotifications((prev) => prev.map((n) => ({ ...n, read: true, status: 'read' })))\n\t\t\tsetUnreadCount(0)\n\t\t} catch (error) {\n\t\t\tconst m = getErrorMessage(error.message)\n\t\t\tenqueueSnackbar(m, { variant: 'error' })\n\t\t} finally {\n\t\t\tsetMarkingAllAsRead(false)\n\t\t}\n\t}, [markingAllAsRead, unreadCount])\n\n\t// Remove the problematic useEffect that was causing extra API calls\n\n useEffect(() => {\n if(!open) {\n setTimeout(() => {\n setNotifications([])\n }, 500)\n }\n }, [open])\n\n\tconst getPerformerLabel = (action: string) => {\n\t\tswitch (action?.toLowerCase()) {\n\t\t\tcase 'approved':\n\t\t\t\treturn 'Approved by'\n\t\t\tcase 'rejected':\n\t\t\tcase 'reject':\n\t\t\t\treturn 'Rejected by'\n\t\t\tdefault:\n\t\t\t\treturn 'Request to'\n\t\t}\n\t}\n\n\tconst getStatusIcon = (action: string) => {\n\t\tswitch (action?.toLowerCase()) {\n\t\t\tcase 'approved':\n\t\t\t\treturn <CheckCircleIcon sx={{ fontSize: '0.9rem', color: 'success.main' }} />\n\t\t\tcase 'rejected':\n\t\t\tcase 'reject':\n\t\t\t\treturn <CancelIcon sx={{ fontSize: '0.9rem', color: 'error.main' }} />\n\t\t\tdefault:\n\t\t\t\treturn <HourglassEmptyIcon sx={{ fontSize: '0.9rem', color: 'warning.main' }} />\n\t\t}\n\t}\n\n\treturn (\n\t\t<Box>\n\t\t\t<IconButton\n\t\t\t\t// size=\"small\"\n\t\t\t\taria-label=\"notifications\"\n\t\t\t\taria-controls={open ? 'notification-menu' : undefined}\n\t\t\t\taria-haspopup=\"true\"\n\t\t\t\taria-expanded={open ? 'true' : undefined}\n\t\t\t\tonClick={handleClick}\n\t\t\t>\n\t\t\t\t<Badge badgeContent={unreadCount} color=\"error\">\n\t\t\t\t\t<Notification fontSize=\"medium\" />\n\t\t\t\t</Badge>\n\t\t\t</IconButton>\n\n\t\t\t<Menu\n\t\t\t\tid=\"notification-menu\"\n\t\t\t\tanchorEl={anchorEl}\n\t\t\t\topen={open}\n\t\t\t\tonClose={handleClose}\n\t\t\t\tref={menuRef}\n\t\t\t\tslotProps={{\n\t\t\t\t\tpaper: {\n\t\t\t\t\t\tsx: {\n\t\t\t\t\t\t\toverflow: 'visible',\n\t\t\t\t\t\t\tminWidth: 400,\n\t\t\t\t\t\t\tmaxWidth: 450,\n\t\t\t\t\t\t\tmaxHeight: 520,\n\t\t\t\t\t\t\t'&:before': {\n\t\t\t\t\t\t\t\tcontent: '\"\"',\n\t\t\t\t\t\t\t\tdisplay: 'block',\n\t\t\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\t\t\tright: 13,\n\t\t\t\t\t\t\t\twidth: 10,\n\t\t\t\t\t\t\t\theight: 10,\n\t\t\t\t\t\t\t\tbgcolor: 'background.paper',\n\t\t\t\t\t\t\t\ttransform: 'translateY(-50%) rotate(45deg)',\n\t\t\t\t\t\t\t\tzIndex: 0,\n\t\t\t\t\t\t\t\tborder: '1px solid',\n\t\t\t\t\t\t\t\tborderColor: ({ palette }) => palette.grey[300],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}}\n\t\t\t\tsx={{\n\t\t\t\t\t'& .MuiList-root': {\n\t\t\t\t\t\tborderRadius: '8px',\n\t\t\t\t\t\tmaxHeight: 520,\n\t\t\t\t\t\toverflowY: 'auto',\n\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t},\n\t\t\t\t}}\n\t\t\t\ttransformOrigin={{ horizontal: 'right', vertical: 'top' }}\n\t\t\t\tanchorOrigin={{ horizontal: 'right', vertical: 'bottom' }}\n\t\t\t\tonScroll={handleScroll}\n\t\t\t>\n\t\t\t\t{/* Header */}\n\t\t\t\t<Box sx={{ px: 2, py: 1, borderBottom: '1px solid #e0e0e0', backgroundColor: '#fafafa' }}>\n\t\t\t\t\t<Typography type=\"h5\" weight=\"bold\" color=\"grey.1000\">\n\t\t\t\t\t\tNotifications\n\t\t\t\t\t</Typography>\n\t\t\t\t\t{unreadCount > 0 && (\n\t\t\t\t\t\t<Box sx={{ display: 'flex', justifyContent: 'space-between', width: '100%', alignItems: 'center' }}>\n\t\t\t\t\t\t\t<Typography type=\"s4\" color=\"grey.800\">\n\t\t\t\t\t\t\t\tYou have {unreadCount} unread notification{unreadCount > 1 ? 's' : ''}\n\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"text\"\n\t\t\t\t\t\t\t\tstartIcon={\n\t\t\t\t\t\t\t\t\tmarkingAllAsRead ? (\n\t\t\t\t\t\t\t\t\t\t<CircularProgress size={15} color=\"inherit\" />\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<Tick sx={{ fontSize: '0.75rem !important' }} color=\"grey.900\" />\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tsx={{ p: 0 }}\n\t\t\t\t\t\t\t\tonClick={handleMarkAllAsRead}\n\t\t\t\t\t\t\t\tdisabled={unreadCount <= 0 || markingAllAsRead}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Typography type=\"s4\" color=\"grey.900\">\n\t\t\t\t\t\t\t\t\tMark all as read\n\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</Box>\n\t\t\t\t\t)}\n\t\t\t\t</Box>\n\n\t\t\t\t{/* Loading State */}\n\t\t\t\t{loading && notifications.length === 0 && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<Box\n\t\t\t\t\t\t\tsx={{\n\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\tflexDirection: 'column',\n\t\t\t\t\t\t\t\tgap: 1,\n\t\t\t\t\t\t\t\tjustifyContent: 'center',\n\t\t\t\t\t\t\t\tminWidth: 400,\n\t\t\t\t\t\t\t\tp: 1,\n\t\t\t\t\t\t\t\tm: 1,\n\t\t\t\t\t\t\t\tbackgroundColor: 'grey.200',\n\t\t\t\t\t\t\t\tborderRadius: '8px',\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Box sx={{ display: 'flex', gap: 1 }}>\n\t\t\t\t\t\t\t\t<Skeleton variant=\"rounded\" width={40} height={40} />\n\t\t\t\t\t\t\t\t<Box sx={{ display: 'flex', flexDirection: 'column', gap: 0.5 }}>\n\t\t\t\t\t\t\t\t\t<Skeleton variant=\"rounded\" width={360} height={25} />\n\t\t\t\t\t\t\t\t\t<Skeleton variant=\"rounded\" width={150} height={11} />\n\t\t\t\t\t\t\t\t\t<Skeleton variant=\"rounded\" width={360} height={11} />\n\t\t\t\t\t\t\t\t\t<Skeleton variant=\"rounded\" width={360} height={11} />\n\t\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t<Box\n\t\t\t\t\t\t\tsx={{\n\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\tflexDirection: 'column',\n\t\t\t\t\t\t\t\tgap: 1,\n\t\t\t\t\t\t\t\tjustifyContent: 'center',\n\t\t\t\t\t\t\t\tminWidth: 400,\n\t\t\t\t\t\t\t\tp: 1,\n\t\t\t\t\t\t\t\tm: 1,\n\t\t\t\t\t\t\t\tbackgroundColor: 'grey.200',\n\t\t\t\t\t\t\t\tborderRadius: '8px',\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Box sx={{ display: 'flex', gap: 1 }}>\n\t\t\t\t\t\t\t\t<Skeleton variant=\"rounded\" width={40} height={40} />\n\t\t\t\t\t\t\t\t<Box sx={{ display: 'flex', flexDirection: 'column', gap: 0.5 }}>\n\t\t\t\t\t\t\t\t\t<Skeleton variant=\"rounded\" width={360} height={25} />\n\t\t\t\t\t\t\t\t\t<Skeleton variant=\"rounded\" width={150} height={11} />\n\t\t\t\t\t\t\t\t\t<Skeleton variant=\"rounded\" width={360} height={11} />\n\t\t\t\t\t\t\t\t\t<Skeleton variant=\"rounded\" width={360} height={11} />\n\t\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t<Box\n\t\t\t\t\t\t\tsx={{\n\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\tflexDirection: 'column',\n\t\t\t\t\t\t\t\tgap: 1,\n\t\t\t\t\t\t\t\tjustifyContent: 'center',\n\t\t\t\t\t\t\t\tminWidth: 400,\n\t\t\t\t\t\t\t\tp: 1,\n\t\t\t\t\t\t\t\tm: 1,\n\t\t\t\t\t\t\t\tbackgroundColor: 'grey.200',\n\t\t\t\t\t\t\t\tborderRadius: '8px',\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Box sx={{ display: 'flex', gap: 1 }}>\n\t\t\t\t\t\t\t\t<Skeleton variant=\"rounded\" width={40} height={40} />\n\t\t\t\t\t\t\t\t<Box sx={{ display: 'flex', flexDirection: 'column', gap: 0.5 }}>\n\t\t\t\t\t\t\t\t\t<Skeleton variant=\"rounded\" width={360} height={25} />\n\t\t\t\t\t\t\t\t\t<Skeleton variant=\"rounded\" width={150} height={11} />\n\t\t\t\t\t\t\t\t\t<Skeleton variant=\"rounded\" width={360} height={11} />\n\t\t\t\t\t\t\t\t\t<Skeleton variant=\"rounded\" width={360} height={11} />\n\t\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t</Box>\n\t\t\t\t\t</>\n\t\t\t\t)}\n\n\t\t\t\t{/* Error State */}\n\t\t\t\t{error && (\n\t\t\t\t\t<Box sx={{ p: 2 }}>\n\t\t\t\t\t\t<Alert severity=\"error\">{error}</Alert>\n\t\t\t\t\t</Box>\n\t\t\t\t)}\n\n\t\t\t\t{/* Notifications List */}\n\t\t\t\t{!loading && !error && notifications.length > 0 && (\n\t\t\t\t\t<Box sx={{ maxHeight: 420, overflowY: 'auto', p: 1 }} onScroll={handleScroll}>\n\t\t\t\t\t\t{notifications.map((notification) => (\n\t\t\t\t\t\t\t<div key={notification.id}>\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\tonClick={() => handleNotificationClick(notification.id)}\n\t\t\t\t\t\t\t\t\tsx={({ palette }) => ({\n\t\t\t\t\t\t\t\t\t\tpy: 1,\n\t\t\t\t\t\t\t\t\t\tpx: 1,\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: !notification.read ? palette.theme.grey[200] : 'transparent',\n\t\t\t\t\t\t\t\t\t\tborder: `1px solid ${palette.grey[200]}`,\n\t\t\t\t\t\t\t\t\t\tmarginBottom: '4px !important',\n\t\t\t\t\t\t\t\t\t\t'&:hover': {\n\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: palette.theme.grey[200],\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\talignItems: 'flex-start',\n\t\t\t\t\t\t\t\t\t\tminHeight: 'auto',\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ListItemAvatar sx={{ minWidth: 48, mt: 0 }}>\n\t\t\t\t\t\t\t\t\t\t{mainModuleIcons?.[notification.module] ? (\n\t\t\t\t\t\t\t\t\t\t\t<Avatar\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth: 40,\n\t\t\t\t\t\t\t\t\t\t\t\t\theight: 40,\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: '0.875rem',\n\t\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: mainModuleBgColors[notification.module] || 'primary.main',\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: 'white',\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: '8px',\n\t\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: '0 2px 8px rgba(0,0,0,0.1)',\n\t\t\t\t\t\t\t\t\t\t\t\t\t'& img': {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: '28px',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: '28px',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tobjectFit: 'contain',\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\tsrc={mainModuleIcons?.[notification.module]}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t{notification.avatar ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Avatar\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: 40,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: 40,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: '0.875rem',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: 'primary.main',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: 'white',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: '8px',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: '0 2px 8px rgba(0,0,0,0.1)',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{notification.avatar}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</Avatar>\n\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Avatar\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: 36,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: 36,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: 'grey.100',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: 'grey.600',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: '8px',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: '0 2px 8px rgba(0,0,0,0.1)',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{getNotificationIcon(notification)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</Avatar>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</ListItemAvatar>\n\t\t\t\t\t\t\t\t\t<ListItemText\n\t\t\t\t\t\t\t\t\t\tsx={{ margin: 0, pr: 1 }}\n\t\t\t\t\t\t\t\t\t\tprimary={\n\t\t\t\t\t\t\t\t\t\t\t// Line 1: title seriesNumber statusIcon\n\t\t\t\t\t\t\t\t\t\t\t<Box sx={{ display: 'flex', alignItems: 'center', gap: 0.5, flexWrap: 'wrap', mb: 0.25 }}>\n\t\t\t\t\t\t\t\t\t\t\t\t<Typography type=\"s3\" weight=\"bold\" color=\"grey.1000\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{notification.title}\n\t\t\t\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t\t\t\t\t{notification.seriesNumber && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Typography type=\"s4\" sx={{ color: 'text.secondary', fontWeight: 500 }}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{notification.seriesNumber}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t{getStatusIcon(notification.type)}\n\t\t\t\t\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tsecondary={\n\t\t\t\t\t\t\t\t\t\t\t<Box>\n\t\t\t\t\t\t\t\t\t\t\t\t{/* Line 2: Customer / Vendor label + name */}\n\t\t\t\t\t\t\t\t\t\t\t\t{notification.customerName && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Typography type=\"s4\" color=\"grey.800\" sx={{ display: 'block', mb: 0.25 }}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Typography component=\"span\" type=\"s5\" sx={{ fontSize: '0.7rem !important', color: 'text.secondary', mr: 0.5 }}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{notification.module === 'purchase' ? 'Vendor:' : 'Customer:'}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{notification.customerName}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t{/* Line 3: Approved by {name} · timestamp */}\n\t\t\t\t\t\t\t\t\t\t\t\t<Box sx={{ display: 'flex', alignItems: 'center', gap: 0.5, flexWrap: 'wrap' }}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{notification.performedByName && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Typography type=\"s5\" sx={{ fontSize: '0.7rem !important', color: 'text.secondary' }}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{getPerformerLabel(notification.type)} {notification.performedByName}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t{notification.performedByName && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Box sx={{ height: 4, width: 4, borderRadius: '100%', backgroundColor: 'grey.400', flexShrink: 0 }} />\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Typography type=\"s5\" color=\"primary\" sx={{ fontSize: '0.65rem !important' }}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{notification.timestamp}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{!notification.read && (\n\t\t\t\t\t\t\t\t\t\t<Box\n\t\t\t\t\t\t\t\t\t\t\tsx={{\n\t\t\t\t\t\t\t\t\t\t\t\twidth: 10,\n\t\t\t\t\t\t\t\t\t\t\t\theight: 10,\n\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: '50%',\n\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: 'primary.main',\n\t\t\t\t\t\t\t\t\t\t\t\tflexShrink: 0,\n\t\t\t\t\t\t\t\t\t\t\t\tmt: 0.5,\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t))}\n\n\t\t\t\t\t\t{/* Loading More Indicator */}\n\t\t\t\t\t\t{loadingMore && (\n\t\t\t\t\t\t\t<Box sx={{ display: 'flex', justifyContent: 'center', py: 2.5, px: 3 }}>\n\t\t\t\t\t\t\t\t<CircularProgress size={20} />\n\t\t\t\t\t\t\t\t<Typography variant=\"body2\" sx={{ ml: 1.5, color: 'text.secondary' }}>\n\t\t\t\t\t\t\t\t\tLoading more...\n\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{/* End of List Indicator */}\n\t\t\t\t\t\t{!pagination.hasMore && notifications.length > 0 && (\n\t\t\t\t\t\t\t<Box sx={{ textAlign: 'center', py: 1.5, px: 2 }}>\n\t\t\t\t\t\t\t\t<Typography type=\"s3\" color=\"grey.800\" textAlign=\"center\">\n\t\t\t\t\t\t\t\t\tNo more notifications\n\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Box>\n\t\t\t\t)}\n\n\t\t\t\t{/* Empty State */}\n\t\t\t\t{!loading && !error && notifications.length === 0 && (\n\t\t\t\t\t<Box sx={{ p: 4, textAlign: 'center' }}>\n\t\t\t\t\t\t<Notification sx={{ fontSize: 56, color: 'text.secondary', mb: 2 }} />\n\t\t\t\t\t\t<Typography type=\"s1\" color=\"grey.800\" sx={{ mb: 1 }} textAlign=\"center\">\n\t\t\t\t\t\t\tNo notifications yet\n\t\t\t\t\t\t</Typography>\n\t\t\t\t\t</Box>\n\t\t\t\t)}\n\t\t\t</Menu>\n\t\t</Box>\n\t)\n}\n\nexport { NotificationMenu };\nexport default NotificationMenu\n"],"names":["convertToUnderscore","generateRouteWithId","PathnameGenerator","PathnameAccounting","PathnameGeneratorInventory","PathnameInventory","PathnameGeneratorManufacuring","PathnameManufacturing","PathnameGeneratorPurchase","PathnamePurchase","_a","RENTALROUTES","PathnameGeneratorCrm","PathnameCrm","PathnameGeneratorRental","PathnameRental","images","useState","useNavigate","useRef","jsx","AccountBalanceIcon","PersonIcon","AssignmentIcon","formatText","useCallback","getV1Notification","getToken","n","patchV1NotificationMarkAsReadId","notification","EmailIcon","WarningIcon","CheckCircleIcon","enqueueSnackbar","getV1NotificationMarkAllAsRead","error","getErrorMessage","useEffect","CancelIcon","HourglassEmptyIcon","Box","IconButton","Badge","Notification","jsxs","Menu","Typography","Button","CircularProgress","Tick","Fragment","Skeleton","Alert","MenuItem","ListItemAvatar","Avatar","ListItemText"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"notification-menu-D7ASm-K1.js","sources":["../../src/components/header/components/notification-menu/notification-menu.tsx"],"sourcesContent":["import React, { useState, useCallback, useRef, useEffect } from 'react'\nimport {\n\tIconButton,\n\tMenu,\n\tMenuItem,\n\tBadge,\n\tBox,\n\tCircularProgress,\n\tAvatar,\n\tListItemText,\n\tListItemAvatar,\n\tAlert,\n\tSkeleton,\n} from '@mui/material'\nimport {\n\tPerson as PersonIcon,\n\tEmail as EmailIcon,\n\tWarning as WarningIcon,\n\tCheckCircle as CheckCircleIcon,\n\tAssignment as AssignmentIcon,\n\tAccountBalance as AccountBalanceIcon,\n\tHourglassEmpty as HourglassEmptyIcon,\n\tCancel as CancelIcon,\n} from '@mui/icons-material'\nimport {\n\tgetV1Notification,\n\tgetV1NotificationMarkAllAsRead,\n\tpatchV1NotificationMarkAsReadId,\n} from '../../../../api-client/api.system-feature/api'\nimport { getErrorMessage, getToken } from '../../../../utils/common'\nimport formatText, { convertToUnderscore, formatLabel } from '../../../../utils/format-text'\nimport Typography from '../../../typography/typography'\nimport images from '../../../../assets/images'\nimport { generateRouteWithId } from '../../../../utils/route-utils'\nimport { PathnameGenerator, PathnameAccounting } from '../../../../constants/pathnames/pathname.accounting'\nimport { ROUTES as RENTALROUTES } from '../../../../constants/pathnames/pathname.rental'\n\nimport { PathnameInventory, PathnameGenerator as PathnameGeneratorInventory } from '../../../../constants/pathnames/pathname.inventory'\n\nimport {\n\tPathnameManufacturing,\n\tPathnameGenerator as PathnameGeneratorManufacuring,\n} from '../../../../constants/pathnames/pathname.manufacturing.ts'\n\nimport {\n\tPathnamePurchase,\n\tPathnameGenerator as PathnameGeneratorPurchase,\n} from '../../../../constants/pathnames/pathname.procurement.ts'\n\nimport { PathnameCrm, PathnameGenerator as PathnameGeneratorCrm } from '../../../../constants/pathnames/pathname.crm.ts'\n\nimport { PathnameRental, PathnameGenerator as PathnameGeneratorRental } from '../../../../constants/pathnames/pathname.rental.ts'\n\nimport { useNavigate } from 'react-router-dom'\nimport { Notification, Tick } from '../../../icons'\nimport Button from '../../../button/button'\nimport { enqueueSnackbar } from 'notistack'\n\nconst getNotificationUrl = (data: any) => {\n\tconst { moduleName = '', moduleId = '', notificationData = {} } = data\n\tconst key = convertToUnderscore(moduleName)\n\n\tconst routeMap: Record<string, () => string> = {\n\t\tsales_invoice: () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_SALES_INVOICES), moduleId.toString()),\n\n\t\tasset_transfers: () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_ASSET_TRANSFER), moduleId.toString()),\n\n\t\tbudgets: () => generateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_BUDGET), moduleId.toString()),\n\n\t\tcash_expense: () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_CASH_EXPENSE), moduleId.toString()),\n\n\t\tcredit_notes: () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_CREDIT_NOTE), moduleId.toString()),\n\n\t\tdebit_notes: () => generateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_DEBIT_NOTE), moduleId.toString()),\n\n\t\texpense_reimbursement: () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_EXPENSE_REIMBURSEMENT), moduleId.toString()),\n\n\t\tjournal_entries: () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_JOURNAL_ENTRY), moduleId.toString()),\n\n\t\tpayment_entries: () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_PAYMENT_ENTRY), moduleId.toString()),\n\n\t\tpurchase_invoice: () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_PURCHASE_INVOICE), moduleId.toString()),\n\n\t\tstock_transfer: () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorInventory(PathnameInventory.VIEW_STOCK_TRANSFER), moduleId.toString()),\n\n\t\tbills_of_materials: () =>\n\t\t\tgenerateRouteWithId(\n\t\t\t\tPathnameGeneratorManufacuring(PathnameManufacturing.VIEW_BILL_OF_MATERIAL),\n\t\t\t\tmoduleId.toString()\n\t\t\t),\n\n\t\tpurchase_agreement: () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorPurchase(PathnamePurchase.VIEW_PURCHASE_AGREEMENT), moduleId.toString()),\n\n\t\tpurchase_orders: () =>\n\t\t\tgenerateRouteWithId(\n\t\t\t\tnotificationData?.data?.is_rental == 1\n\t\t\t\t\t? RENTALROUTES.VIEW\n\t\t\t\t\t: PathnameGeneratorPurchase(PathnamePurchase.VIEW_PURCHASE_ORDER),\n\t\t\t\tmoduleId.toString()\n\t\t\t),\n\n\t\tpurchase_request: () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorPurchase(PathnamePurchase.VIEW_PURCHASE_ORDER), moduleId.toString()),\n\n\t\tvra: () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorPurchase(PathnamePurchase.VIEW_VENDOR_RETURNS), moduleId.toString()),\n\n\t\tsales_customer_returns: () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorCrm(PathnameCrm.VIEW_CUSTOMER_RETURNS), moduleId.toString()),\n\n\t\tsales_order: () => generateRouteWithId(PathnameGeneratorCrm(PathnameCrm.VIEW_SALES_ORDER), moduleId.toString()),\n\n\t\tquotation: () => generateRouteWithId(PathnameGeneratorCrm(PathnameCrm.VIEW_QUOTATION), moduleId.toString()),\n\n\t\trental_order: () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorRental(PathnameRental.VIEW_RENTAL_ORDER), moduleId.toString()),\n\n\t\treplacement_order: () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorRental(PathnameRental.VIEW_RENTAL_ORDER), moduleId.toString()),\n\n\t\trental_agreement: () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorRental(PathnameRental.VIEW_AGREEMENT), moduleId.toString()),\n\n\t\tcross_hire_order: () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorRental(PathnameRental.VIEW_CROSS_HIRE_ORDER), moduleId.toString()),\n\n\t\tcross_hire_request: () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorRental(PathnameRental.VIEW_CROSS_HIRE_REQUEST), moduleId.toString()),\n\t}\n\n\treturn routeMap[key]?.() || '/dashboard'\n}\n\nconst mainModuleIcons = {\n\trbac: images.user,\n\tdocument: images.document,\n\t'accounts-and-finance': images.accounting,\n\tinventory: images.inventory,\n\tmanufacturing: images.manufacturing,\n\tsales: images.crm,\n\trental: images.rental,\n\tuser: images.user,\n\tpurchase: images.procurement,\n\thrms: images.hrms,\n}\nconst mainModuleBgColors = {\n\trbac: '#F3E5F5',\n\tdocument: '#FFF8E1',\n\t'accounts-and-finance': '#E8F5E8',\n\tinventory: '#E3F2FD',\n\tmanufacturing: '#FFF3E0',\n\tsales: '#F3E5F5',\n\trental: '#E8F5E8',\n\tuser: '#F3E5F5',\n\tpurchase: '#FCE4EC',\n\thrms: '#fcfcfc',\n}\n\nconst NotificationMenu = () => {\n\tconst [anchorEl, setAnchorEl] = useState(null)\n\tconst [notifications, setNotifications] = useState([])\n\tconst [loading, setLoading] = useState(false)\n\tconst [loadingMore, setLoadingMore] = useState(false)\n\tconst [error, setError] = useState(null)\n\tconst [unreadCount, setUnreadCount] = useState(0)\n\tconst [markingAllAsRead, setMarkingAllAsRead] = useState(false)\n\tconst [pagination, setPagination] = useState({\n\t\tskip: 0,\n\t\tlimit: 20,\n\t\ttotalCount: 0,\n\t\thasMore: true,\n\t})\n\n\tconst navigate = useNavigate()\n\n\tconst menuRef = useRef(null)\n\tconst isLoadingMoreRef = useRef(false)\n\tconst open = Boolean(anchorEl)\n\n\t// Transform API notification to display format\n\tconst transformNotification = (apiNotification) => {\n\t\tconst moduleIcons = {\n\t\t\t'accounts-and-finance': <AccountBalanceIcon color=\"primary\" />,\n\t\t\tuser: <PersonIcon color=\"action\" />,\n\t\t\tapproval: <AssignmentIcon color=\"warning\" />,\n\t\t}\n\n\t\tconst getInitials = (performedUser) => {\n\t\t\tif (!performedUser) return null\n\t\t\tconst firstName = performedUser.first_name || ''\n\t\t\tconst lastName = performedUser.last_name || ''\n\t\t\tif (!firstName && !lastName) return null\n\t\t\treturn (firstName.charAt(0) + lastName.charAt(0)).toUpperCase()\n\t\t}\n\n\t\tconst getFullName = (performedUser) => {\n\t\t\tif (!performedUser) return null\n\t\t\tconst firstName = performedUser.first_name || ''\n\t\t\tconst lastName = performedUser.last_name || ''\n\t\t\treturn `${firstName} ${lastName}`.trim() || null\n\t\t}\n\n\t\tconst formatTimestamp = (dateString) => {\n\t\t\tconst date = new Date(dateString)\n\t\t\tconst now = new Date()\n\t\t\tconst diffMs = now - date\n\t\t\tconst diffMins = Math.floor(diffMs / 60000)\n\t\t\tconst diffHours = Math.floor(diffMs / 3600000)\n\t\t\tconst diffDays = Math.floor(diffMs / 86400000)\n\n\t\t\tif (diffMins < 1) return 'Just now'\n\t\t\tif (diffMins < 60) return `${diffMins} minute${diffMins > 1 ? 's' : ''} ago`\n\t\t\tif (diffHours < 24) return `${diffHours} hour${diffHours > 1 ? 's' : ''} ago`\n\t\t\tif (diffDays < 7) return `${diffDays} day${diffDays > 1 ? 's' : ''} ago`\n\t\t\treturn date.toLocaleDateString()\n\t\t}\n\n\t\tconst subData = apiNotification.sub_module_data || {}\n\n\t\treturn {\n\t\t\tid: apiNotification.id,\n\t\t\ttype: apiNotification.action || apiNotification.notification_type || 'info',\n\t\t\ttitle: formatText(apiNotification.title),\n\t\t\tmessage: apiNotification.message,\n\t\t\ttimestamp: formatTimestamp(apiNotification.created_at),\n\t\t\tread: apiNotification.status === 'read',\n\t\t\tavatar: getInitials(apiNotification.performed_user),\n\t\t\tperformedByName: getFullName(apiNotification.performed_user),\n\t\t\tmodule: apiNotification.module,\n\t\t\tsubModule: apiNotification.sub_module,\n\t\t\tsubModuleId: apiNotification.sub_module_id,\n\t\t\tstatus: apiNotification.status,\n\t\t\tseriesNumber: subData.series_number || null,\n\t\t\tdocumentStatus: subData.status || null,\n\t\t\tcustomerName: subData.customer_name || null,\n\t\t\ticon: moduleIcons[apiNotification.module] || moduleIcons[apiNotification.action] || <PersonIcon color=\"action\" />,\n\t\t}\n\t}\n\n\t// Fetch notifications with pagination\n\tconst fetchNotifications = useCallback(async (isLoadMore = false) => {\n\t\t// Prevent multiple simultaneous load more requests\n\t\tif (isLoadMore && isLoadingMoreRef.current) {\n\t\t\treturn\n\t\t}\n\n\t\tif (isLoadMore) {\n\t\t\tisLoadingMoreRef.current = true\n\t\t\tsetLoadingMore(true)\n\t\t} else {\n\t\t\tsetLoading(true)\n\t\t\t// Reset pagination when loading fresh data\n\t\t\tsetPagination((prev) => ({\n\t\t\t\t...prev,\n\t\t\t\tskip: 0,\n\t\t\t\thasMore: true,\n\t\t\t}))\n\t\t}\n\t\tsetError(null)\n\n\t\ttry {\n\t\t\tconst currentSkip = isLoadMore ? pagination.skip : 0\n\t\t\tconst response = await getV1Notification({\n\t\t\t\tskip: currentSkip,\n\t\t\t\tlimit: pagination.limit,\n\t\t\t\t...getToken(),\n\t\t\t})\n\n\t\t\tif (response.success && response.data) {\n\t\t\t\tconst transformedNotifications = response.data.notifications.map(transformNotification)\n\n\t\t\t\tif (isLoadMore) {\n\t\t\t\t\tsetNotifications((prev) => [...prev, ...transformedNotifications])\n\t\t\t\t} else {\n\t\t\t\t\tsetNotifications(transformedNotifications)\n\t\t\t\t}\n\n\t\t\t\t// Update pagination\n\t\t\t\tconst newSkip = currentSkip + response.data.notifications.length\n\t\t\t\tconst hasMore = newSkip < response.data.pagination.totalCount\n\n\t\t\t\tsetPagination((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\tskip: newSkip,\n\t\t\t\t\ttotalCount: response.data.pagination.totalCount,\n\t\t\t\t\thasMore,\n\t\t\t\t}))\n\n\t\t\t\t// Calculate unread count (assuming 'pending' status means unread)\n\t\t\t\tif (!isLoadMore) {\n\t\t\t\t\tconst unread = response.data.pagination.unreadCount\n\t\t\t\t\tsetUnreadCount(unread)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsetUnreadCount(0)\n\t\t\t\tthrow new Error(response.message || 'Failed to load notifications')\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tsetError('Failed to load notifications')\n\t\t} finally {\n\t\t\tsetLoading(false)\n\t\t\tsetLoadingMore(false)\n\t\t\tif (isLoadMore) {\n\t\t\t\tisLoadingMoreRef.current = false\n\t\t\t}\n\t\t}\n\t}, [pagination.limit, pagination.skip])\n\n\t// Handle scroll for infinite loading\n\tconst handleScroll = useCallback(\n\t\t(event) => {\n\t\t\tconst { scrollTop, scrollHeight, clientHeight } = event.target\n\t\t\tconst isNearBottom = scrollTop + clientHeight >= scrollHeight - 50 // Increased threshold\n\n\t\t\tif (isNearBottom && !isLoadingMoreRef.current && !loading && pagination.hasMore) {\n\t\t\t\tfetchNotifications(true)\n\t\t\t}\n\t\t},\n\t\t[fetchNotifications, loading, pagination.hasMore]\n\t)\n\n\tconst handleClick = (event) => {\n\t\tsetAnchorEl(event.currentTarget)\n\t\tif (notifications.length === 0) {\n\t\t\tfetchNotifications()\n\t\t}\n\t}\n\n\tconst handleClose = () => {\n\t\tsetAnchorEl(null)\n\n\t\t// Don't clear notifications immediately to avoid flickering\n\t\t// They will be refreshed when menu is opened again\n\t}\n\n\tconst handleNotificationClick = async (notificationId) => {\n\t\t// Mark notification as read\n\t\tconst n = notifications.find((n) => {\n\t\t\treturn n.id === notificationId\n\t\t})\n\t\tif (!n) return\n\n\t\thandleClose()\n\n\t\tif (n.status === 'pending') {\n\t\t\tawait patchV1NotificationMarkAsReadId({\n\t\t\t\tid: notificationId,\n\t\t\t\t...getToken(),\n\t\t\t})\n\t\t}\n\n\t\tsetNotifications((prev) => prev.map((n) => (n.id === notificationId ? { ...n, read: true } : n)))\n\t\tsetUnreadCount((prev) => Math.max(0, prev - 1))\n\t\tconst url = getNotificationUrl({\n\t\t\tmoduleName: n.subModule,\n\t\t\tmoduleId: n.subModuleId,\n\t\t\tnotificationData: n,\n\t\t})\n setTimeout(() => {\n navigate(url)\n }, 300)\n\t}\n\n\tconst getNotificationIcon = (notification) => {\n\t\tif (notification.icon) {\n\t\t\treturn notification.icon\n\t\t}\n\n\t\tswitch (notification.type) {\n\t\t\tcase 'approval':\n\t\t\t\treturn <AssignmentIcon color=\"warning\" />\n\t\t\tcase 'user':\n\t\t\t\treturn <PersonIcon color=\"action\" />\n\t\t\tcase 'message':\n\t\t\t\treturn <EmailIcon color=\"primary\" />\n\t\t\tcase 'warning':\n\t\t\t\treturn <WarningIcon color=\"warning\" />\n\t\t\tcase 'success':\n\t\t\t\treturn <CheckCircleIcon color=\"success\" />\n\t\t\tdefault:\n\t\t\t\treturn <PersonIcon color=\"action\" />\n\t\t}\n\t}\n\n\tconst handleMarkAllAsRead = useCallback(async () => {\n\t\tif (markingAllAsRead) return // Prevent multiple calls\n\n\t\tsetMarkingAllAsRead(true)\n\n\t\tif (!unreadCount) {\n\t\t\tenqueueSnackbar('No unread notifications!')\n\t\t\tsetMarkingAllAsRead(false)\n\t\t\treturn\n\t\t}\n\n\t\ttry {\n\t\t\tawait getV1NotificationMarkAllAsRead({ ...getToken() })\n\t\t\t// Update local state immediately for better UX\n\t\t\tsetNotifications((prev) => prev.map((n) => ({ ...n, read: true, status: 'read' })))\n\t\t\tsetUnreadCount(0)\n\t\t} catch (error) {\n\t\t\tconst m = getErrorMessage(error.message)\n\t\t\tenqueueSnackbar(m, { variant: 'error' })\n\t\t} finally {\n\t\t\tsetMarkingAllAsRead(false)\n\t\t}\n\t}, [markingAllAsRead, unreadCount])\n\n\t// Remove the problematic useEffect that was causing extra API calls\n\n useEffect(() => {\n if(!open) {\n setTimeout(() => {\n setNotifications([])\n }, 500)\n }\n }, [open])\n\n\tconst getPerformerLabel = (action: string) => {\n\t\tswitch (action?.toLowerCase()) {\n\t\t\tcase 'approved':\n\t\t\t\treturn 'Approved by'\n\t\t\tcase 'rejected':\n\t\t\tcase 'reject':\n\t\t\t\treturn 'Rejected by'\n\t\t\tdefault:\n\t\t\t\treturn 'Request to'\n\t\t}\n\t}\n\n\tconst getStatusIcon = (action: string) => {\n\t\tswitch (action?.toLowerCase()) {\n\t\t\tcase 'approved':\n\t\t\t\treturn <CheckCircleIcon sx={{ fontSize: '0.9rem', color: 'success.main' }} />\n\t\t\tcase 'rejected':\n\t\t\tcase 'reject':\n\t\t\t\treturn <CancelIcon sx={{ fontSize: '0.9rem', color: 'error.main' }} />\n\t\t\tdefault:\n\t\t\t\treturn <HourglassEmptyIcon sx={{ fontSize: '0.9rem', color: 'warning.main' }} />\n\t\t}\n\t}\n\n\treturn (\n\t\t<Box>\n\t\t\t<IconButton\n\t\t\t\t// size=\"small\"\n\t\t\t\taria-label=\"notifications\"\n\t\t\t\taria-controls={open ? 'notification-menu' : undefined}\n\t\t\t\taria-haspopup=\"true\"\n\t\t\t\taria-expanded={open ? 'true' : undefined}\n\t\t\t\tonClick={handleClick}\n\t\t\t>\n\t\t\t\t<Badge badgeContent={unreadCount} color=\"error\">\n\t\t\t\t\t<Notification fontSize=\"medium\" />\n\t\t\t\t</Badge>\n\t\t\t</IconButton>\n\n\t\t\t<Menu\n\t\t\t\tid=\"notification-menu\"\n\t\t\t\tanchorEl={anchorEl}\n\t\t\t\topen={open}\n\t\t\t\tonClose={handleClose}\n\t\t\t\tref={menuRef}\n\t\t\t\tslotProps={{\n\t\t\t\t\tpaper: {\n\t\t\t\t\t\tsx: {\n\t\t\t\t\t\t\toverflow: 'visible',\n\t\t\t\t\t\t\tminWidth: 400,\n\t\t\t\t\t\t\tmaxWidth: 450,\n\t\t\t\t\t\t\tmaxHeight: 520,\n\t\t\t\t\t\t\t'&:before': {\n\t\t\t\t\t\t\t\tcontent: '\"\"',\n\t\t\t\t\t\t\t\tdisplay: 'block',\n\t\t\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\t\t\tright: 13,\n\t\t\t\t\t\t\t\twidth: 10,\n\t\t\t\t\t\t\t\theight: 10,\n\t\t\t\t\t\t\t\tbgcolor: 'background.paper',\n\t\t\t\t\t\t\t\ttransform: 'translateY(-50%) rotate(45deg)',\n\t\t\t\t\t\t\t\tzIndex: 0,\n\t\t\t\t\t\t\t\tborder: '1px solid',\n\t\t\t\t\t\t\t\tborderColor: ({ palette }) => palette.grey[300],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}}\n\t\t\t\tsx={{\n\t\t\t\t\t'& .MuiList-root': {\n\t\t\t\t\t\tborderRadius: '8px',\n\t\t\t\t\t\tmaxHeight: 520,\n\t\t\t\t\t\toverflowY: 'auto',\n\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t},\n\t\t\t\t}}\n\t\t\t\ttransformOrigin={{ horizontal: 'right', vertical: 'top' }}\n\t\t\t\tanchorOrigin={{ horizontal: 'right', vertical: 'bottom' }}\n\t\t\t\tonScroll={handleScroll}\n\t\t\t>\n\t\t\t\t{/* Header */}\n\t\t\t\t<Box sx={{ px: 2, py: 1, borderBottom: '1px solid #e0e0e0', backgroundColor: '#fafafa' }}>\n\t\t\t\t\t<Typography type=\"h5\" weight=\"bold\" color=\"grey.1000\">\n\t\t\t\t\t\tNotifications\n\t\t\t\t\t</Typography>\n\t\t\t\t\t{unreadCount > 0 && (\n\t\t\t\t\t\t<Box sx={{ display: 'flex', justifyContent: 'space-between', width: '100%', alignItems: 'center' }}>\n\t\t\t\t\t\t\t<Typography type=\"s4\" color=\"grey.800\">\n\t\t\t\t\t\t\t\tYou have {unreadCount} unread notification{unreadCount > 1 ? 's' : ''}\n\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"text\"\n\t\t\t\t\t\t\t\tstartIcon={\n\t\t\t\t\t\t\t\t\tmarkingAllAsRead ? (\n\t\t\t\t\t\t\t\t\t\t<CircularProgress size={15} color=\"inherit\" />\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<Tick sx={{ fontSize: '0.75rem !important' }} color=\"grey.900\" />\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tsx={{ p: 0 }}\n\t\t\t\t\t\t\t\tonClick={handleMarkAllAsRead}\n\t\t\t\t\t\t\t\tdisabled={unreadCount <= 0 || markingAllAsRead}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Typography type=\"s4\" color=\"grey.900\">\n\t\t\t\t\t\t\t\t\tMark all as read\n\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</Box>\n\t\t\t\t\t)}\n\t\t\t\t</Box>\n\n\t\t\t\t{/* Loading State */}\n\t\t\t\t{loading && notifications.length === 0 && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<Box\n\t\t\t\t\t\t\tsx={{\n\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\tflexDirection: 'column',\n\t\t\t\t\t\t\t\tgap: 1,\n\t\t\t\t\t\t\t\tjustifyContent: 'center',\n\t\t\t\t\t\t\t\tminWidth: 400,\n\t\t\t\t\t\t\t\tp: 1,\n\t\t\t\t\t\t\t\tm: 1,\n\t\t\t\t\t\t\t\tbackgroundColor: 'grey.200',\n\t\t\t\t\t\t\t\tborderRadius: '8px',\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Box sx={{ display: 'flex', gap: 1 }}>\n\t\t\t\t\t\t\t\t<Skeleton variant=\"rounded\" width={40} height={40} />\n\t\t\t\t\t\t\t\t<Box sx={{ display: 'flex', flexDirection: 'column', gap: 0.5 }}>\n\t\t\t\t\t\t\t\t\t<Skeleton variant=\"rounded\" width={360} height={25} />\n\t\t\t\t\t\t\t\t\t<Skeleton variant=\"rounded\" width={150} height={11} />\n\t\t\t\t\t\t\t\t\t<Skeleton variant=\"rounded\" width={360} height={11} />\n\t\t\t\t\t\t\t\t\t<Skeleton variant=\"rounded\" width={360} height={11} />\n\t\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t<Box\n\t\t\t\t\t\t\tsx={{\n\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\tflexDirection: 'column',\n\t\t\t\t\t\t\t\tgap: 1,\n\t\t\t\t\t\t\t\tjustifyContent: 'center',\n\t\t\t\t\t\t\t\tminWidth: 400,\n\t\t\t\t\t\t\t\tp: 1,\n\t\t\t\t\t\t\t\tm: 1,\n\t\t\t\t\t\t\t\tbackgroundColor: 'grey.200',\n\t\t\t\t\t\t\t\tborderRadius: '8px',\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Box sx={{ display: 'flex', gap: 1 }}>\n\t\t\t\t\t\t\t\t<Skeleton variant=\"rounded\" width={40} height={40} />\n\t\t\t\t\t\t\t\t<Box sx={{ display: 'flex', flexDirection: 'column', gap: 0.5 }}>\n\t\t\t\t\t\t\t\t\t<Skeleton variant=\"rounded\" width={360} height={25} />\n\t\t\t\t\t\t\t\t\t<Skeleton variant=\"rounded\" width={150} height={11} />\n\t\t\t\t\t\t\t\t\t<Skeleton variant=\"rounded\" width={360} height={11} />\n\t\t\t\t\t\t\t\t\t<Skeleton variant=\"rounded\" width={360} height={11} />\n\t\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t<Box\n\t\t\t\t\t\t\tsx={{\n\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\tflexDirection: 'column',\n\t\t\t\t\t\t\t\tgap: 1,\n\t\t\t\t\t\t\t\tjustifyContent: 'center',\n\t\t\t\t\t\t\t\tminWidth: 400,\n\t\t\t\t\t\t\t\tp: 1,\n\t\t\t\t\t\t\t\tm: 1,\n\t\t\t\t\t\t\t\tbackgroundColor: 'grey.200',\n\t\t\t\t\t\t\t\tborderRadius: '8px',\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Box sx={{ display: 'flex', gap: 1 }}>\n\t\t\t\t\t\t\t\t<Skeleton variant=\"rounded\" width={40} height={40} />\n\t\t\t\t\t\t\t\t<Box sx={{ display: 'flex', flexDirection: 'column', gap: 0.5 }}>\n\t\t\t\t\t\t\t\t\t<Skeleton variant=\"rounded\" width={360} height={25} />\n\t\t\t\t\t\t\t\t\t<Skeleton variant=\"rounded\" width={150} height={11} />\n\t\t\t\t\t\t\t\t\t<Skeleton variant=\"rounded\" width={360} height={11} />\n\t\t\t\t\t\t\t\t\t<Skeleton variant=\"rounded\" width={360} height={11} />\n\t\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t</Box>\n\t\t\t\t\t</>\n\t\t\t\t)}\n\n\t\t\t\t{/* Error State */}\n\t\t\t\t{error && (\n\t\t\t\t\t<Box sx={{ p: 2 }}>\n\t\t\t\t\t\t<Alert severity=\"error\">{error}</Alert>\n\t\t\t\t\t</Box>\n\t\t\t\t)}\n\n\t\t\t\t{/* Notifications List */}\n\t\t\t\t{!loading && !error && notifications.length > 0 && (\n\t\t\t\t\t<Box sx={{ maxHeight: 420, overflowY: 'auto', p: 1 }} onScroll={handleScroll}>\n\t\t\t\t\t\t{notifications.map((notification) => (\n\t\t\t\t\t\t\t<div key={notification.id}>\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\tonClick={() => handleNotificationClick(notification.id)}\n\t\t\t\t\t\t\t\t\tsx={({ palette }) => ({\n\t\t\t\t\t\t\t\t\t\tpy: 1,\n\t\t\t\t\t\t\t\t\t\tpx: 1,\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: !notification.read ? palette.theme.grey[200] : 'transparent',\n\t\t\t\t\t\t\t\t\t\tborder: `1px solid ${palette.grey[200]}`,\n\t\t\t\t\t\t\t\t\t\tmarginBottom: '4px !important',\n\t\t\t\t\t\t\t\t\t\t'&:hover': {\n\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: palette.theme.grey[200],\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\talignItems: 'flex-start',\n\t\t\t\t\t\t\t\t\t\tminHeight: 'auto',\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ListItemAvatar sx={{ minWidth: 48, mt: 0 }}>\n\t\t\t\t\t\t\t\t\t\t{mainModuleIcons?.[notification.module] ? (\n\t\t\t\t\t\t\t\t\t\t\t<Avatar\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth: 40,\n\t\t\t\t\t\t\t\t\t\t\t\t\theight: 40,\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: '0.875rem',\n\t\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: mainModuleBgColors[notification.module] || 'primary.main',\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: 'white',\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: '8px',\n\t\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: '0 2px 8px rgba(0,0,0,0.1)',\n\t\t\t\t\t\t\t\t\t\t\t\t\t'& img': {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: '28px',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: '28px',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tobjectFit: 'contain',\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\tsrc={mainModuleIcons?.[notification.module]}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t{notification.avatar ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Avatar\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: 40,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: 40,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: '0.875rem',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: 'primary.main',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: 'white',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: '8px',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: '0 2px 8px rgba(0,0,0,0.1)',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{notification.avatar}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</Avatar>\n\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Avatar\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: 36,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: 36,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: 'grey.100',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: 'grey.600',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: '8px',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: '0 2px 8px rgba(0,0,0,0.1)',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{getNotificationIcon(notification)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</Avatar>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</ListItemAvatar>\n\t\t\t\t\t\t\t\t\t<ListItemText\n\t\t\t\t\t\t\t\t\t\tsx={{ margin: 0, pr: 1 }}\n\t\t\t\t\t\t\t\t\t\tprimary={\n\t\t\t\t\t\t\t\t\t\t\t// Line 1: title seriesNumber statusIcon\n\t\t\t\t\t\t\t\t\t\t\t<Box sx={{ display: 'flex', alignItems: 'center', gap: 0.5, flexWrap: 'wrap', mb: 0.25 }}>\n\t\t\t\t\t\t\t\t\t\t\t\t<Typography type=\"s3\" weight=\"bold\" color=\"grey.1000\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{notification.title}\n\t\t\t\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t\t\t\t\t{notification.seriesNumber && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Typography type=\"s4\" sx={{ color: 'text.secondary', fontWeight: 500 }}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{notification.seriesNumber}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t{getStatusIcon(notification.type)}\n\t\t\t\t\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tsecondary={\n\t\t\t\t\t\t\t\t\t\t\t<Box>\n\t\t\t\t\t\t\t\t\t\t\t\t{/* Line 2: Customer / Vendor label + name */}\n\t\t\t\t\t\t\t\t\t\t\t\t{notification.customerName && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Typography type=\"s4\" color=\"grey.800\" sx={{ display: 'block', mb: 0.25 }}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Typography component=\"span\" type=\"s5\" sx={{ fontSize: '0.7rem !important', color: 'text.secondary', mr: 0.5 }}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{notification.module === 'purchase' ? 'Vendor:' : 'Customer:'}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{notification.customerName}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t{/* Line 3: Approved by {name} · timestamp */}\n\t\t\t\t\t\t\t\t\t\t\t\t<Box sx={{ display: 'flex', alignItems: 'center', gap: 0.5, flexWrap: 'wrap' }}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{notification.performedByName && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Typography type=\"s5\" sx={{ fontSize: '0.7rem !important', color: 'text.secondary' }}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{getPerformerLabel(notification.type)} {notification.performedByName}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t{notification.performedByName && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Box sx={{ height: 4, width: 4, borderRadius: '100%', backgroundColor: 'grey.400', flexShrink: 0 }} />\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Typography type=\"s5\" color=\"primary\" sx={{ fontSize: '0.65rem !important' }}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{notification.timestamp}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{!notification.read && (\n\t\t\t\t\t\t\t\t\t\t<Box\n\t\t\t\t\t\t\t\t\t\t\tsx={{\n\t\t\t\t\t\t\t\t\t\t\t\twidth: 10,\n\t\t\t\t\t\t\t\t\t\t\t\theight: 10,\n\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: '50%',\n\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: 'primary.main',\n\t\t\t\t\t\t\t\t\t\t\t\tflexShrink: 0,\n\t\t\t\t\t\t\t\t\t\t\t\tmt: 0.5,\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t))}\n\n\t\t\t\t\t\t{/* Loading More Indicator */}\n\t\t\t\t\t\t{loadingMore && (\n\t\t\t\t\t\t\t<Box sx={{ display: 'flex', justifyContent: 'center', py: 2.5, px: 3 }}>\n\t\t\t\t\t\t\t\t<CircularProgress size={20} />\n\t\t\t\t\t\t\t\t<Typography variant=\"body2\" sx={{ ml: 1.5, color: 'text.secondary' }}>\n\t\t\t\t\t\t\t\t\tLoading more...\n\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{/* End of List Indicator */}\n\t\t\t\t\t\t{!pagination.hasMore && notifications.length > 0 && (\n\t\t\t\t\t\t\t<Box sx={{ textAlign: 'center', py: 1.5, px: 2 }}>\n\t\t\t\t\t\t\t\t<Typography type=\"s3\" color=\"grey.800\" textAlign=\"center\">\n\t\t\t\t\t\t\t\t\tNo more notifications\n\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Box>\n\t\t\t\t)}\n\n\t\t\t\t{/* Empty State */}\n\t\t\t\t{!loading && !error && notifications.length === 0 && (\n\t\t\t\t\t<Box sx={{ p: 4, textAlign: 'center' }}>\n\t\t\t\t\t\t<Notification sx={{ fontSize: 56, color: 'text.secondary', mb: 2 }} />\n\t\t\t\t\t\t<Typography type=\"s1\" color=\"grey.800\" sx={{ mb: 1 }} textAlign=\"center\">\n\t\t\t\t\t\t\tNo notifications yet\n\t\t\t\t\t\t</Typography>\n\t\t\t\t\t</Box>\n\t\t\t\t)}\n\t\t\t</Menu>\n\t\t</Box>\n\t)\n}\n\nexport { NotificationMenu };\nexport default NotificationMenu\n"],"names":["convertToUnderscore","generateRouteWithId","PathnameGenerator","PathnameAccounting","PathnameGeneratorInventory","PathnameInventory","PathnameGeneratorManufacuring","PathnameManufacturing","PathnameGeneratorPurchase","PathnamePurchase","_a","RENTALROUTES","PathnameGeneratorCrm","PathnameCrm","PathnameGeneratorRental","PathnameRental","images","useState","useNavigate","useRef","jsx","AccountBalanceIcon","PersonIcon","AssignmentIcon","formatText","useCallback","getV1Notification","getToken","n","patchV1NotificationMarkAsReadId","notification","EmailIcon","WarningIcon","CheckCircleIcon","enqueueSnackbar","getV1NotificationMarkAllAsRead","error","getErrorMessage","useEffect","CancelIcon","HourglassEmptyIcon","Box","IconButton","Badge","Notification","jsxs","Menu","Typography","Button","CircularProgress","Tick","Fragment","Skeleton","Alert","MenuItem","ListItemAvatar","Avatar","ListItemText"],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ import formatText, { convertToUnderscore } from "../utils/format-text/index.esm.
|
|
|
8
8
|
import { T as Typography } from "./typography-CG_A0iOJ.esm.js";
|
|
9
9
|
import images from "../images/index.esm.js";
|
|
10
10
|
import { generateRouteWithId } from "../utils/route-utils/index.esm.js";
|
|
11
|
-
import {
|
|
11
|
+
import { aH as PathnameGenerator, e as PathnameRental, aI as PathnameGenerator$1, a as PathnameCrm, aJ as PathnameGenerator$2, d as PathnamePurchase, aK as ROUTES, aL as PathnameGenerator$3, c as PathnameManufacturing, aM as PathnameGenerator$4, b as PathnameInventory, aN as PathnameGenerator$5, P as PathnameAccounting } from "./pathname.rental-qsAe3XFd.esm.js";
|
|
12
12
|
import { useNavigate } from "react-router-dom";
|
|
13
13
|
import { N as Notification } from "./notification-gdofLCzq.esm.js";
|
|
14
14
|
import { T as Tick } from "./tick-qkKHtwAf.esm.js";
|
|
@@ -598,4 +598,4 @@ const NotificationMenu = () => {
|
|
|
598
598
|
export {
|
|
599
599
|
NotificationMenu as N
|
|
600
600
|
};
|
|
601
|
-
//# sourceMappingURL=notification-menu-
|
|
601
|
+
//# sourceMappingURL=notification-menu-XAadkn-e.esm.js.map
|