@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
package/dist/chunks/{notification-menu-B_4BOTgX.esm.js.map → notification-menu-XAadkn-e.esm.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notification-menu-B_4BOTgX.esm.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":["PathnameGenerator","PathnameGeneratorInventory","PathnameGeneratorManufacuring","PathnameGeneratorPurchase","_a","RENTALROUTES","PathnameGeneratorCrm","PathnameGeneratorRental","AccountBalanceIcon","PersonIcon","AssignmentIcon","n","EmailIcon","WarningIcon","CheckCircleIcon","error","CancelIcon","HourglassEmptyIcon"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"notification-menu-XAadkn-e.esm.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":["PathnameGenerator","PathnameGeneratorInventory","PathnameGeneratorManufacuring","PathnameGeneratorPurchase","_a","RENTALROUTES","PathnameGeneratorCrm","PathnameGeneratorRental","AccountBalanceIcon","PersonIcon","AssignmentIcon","n","EmailIcon","WarningIcon","CheckCircleIcon","error","CancelIcon","HourglassEmptyIcon"],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ const menu = require("./menu-CbpcDA_h.js");
|
|
|
5
5
|
const typography = require("./typography-Bqfr1Ksf.js");
|
|
6
6
|
const React = require("react");
|
|
7
7
|
const addPageModal = require("./add-page-modal-Dh7O4CUf.js");
|
|
8
|
-
const shareModal = require("./share-modal-
|
|
8
|
+
const shareModal = require("./share-modal-DrXvh-fV.js");
|
|
9
9
|
const shareModalData = require("./share-modal-data-J-9voO07.js");
|
|
10
10
|
const confirmModal = require("./confirm-modal-BpCtXddt.js");
|
|
11
11
|
const reactRedux = require("react-redux");
|
|
@@ -321,4 +321,4 @@ const PageAction = ({
|
|
|
321
321
|
] });
|
|
322
322
|
};
|
|
323
323
|
exports.PageAction = PageAction;
|
|
324
|
-
//# sourceMappingURL=page-action-
|
|
324
|
+
//# sourceMappingURL=page-action-BPzaL2KJ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-action-TMFOytDw.js","sources":["../../src/components/page-navigator/components/page-action.tsx"],"sourcesContent":["import { Divider, MenuItem } from \"@mui/material\";\nimport Menu from \"../../menu/menu\";\nimport Typography from \"../../typography/typography\";\nimport { useEffect, useState } from \"react\";\nimport AddPageModal from \"./add-page-modal\";\nimport { IPage } from \"../../../@types/page\";\nimport SharePopUp from \"../../share-modal/share-modal\";\nimport { userRoles } from \"../../../views/beforeAuth/components/share-modal-data/share-modal-data\";\nimport ConfirmPopUp from \"../../confirm-modal/confirm-modal\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { pinToDashboardList } from \"../../../views/afterAuth/dashboard/redux/reducer\";\nimport {\n // deleteV1DashboardId,\n // putV1DashboardId,\n} from \"../../../api-client/api.system-feature/api\";\n// import type * as Types from \"../../api-client/api.system-feature/api-types\";\nimport { sharePage } from \"../../share-modal/redux/actionCreator\";\nimport { useAppDispatch } from \"../../../redux/hooks\";\nimport { generateRandomId } from \"../../../utils/common\";\nimport { usePages } from '@erpsquad/common/runtime';\n\ninterface IPageAction {\n open: null | HTMLElement;\n onClose: () => void;\n page?: IPage;\n pages: IPage[];\n setCurrentPage: React.Dispatch<React.SetStateAction<number>>;\n setPages: React.Dispatch<React.SetStateAction<IPage[]>>;\n resource: string;\n handlePageDelete: (pages: any[]) => void;\n}\n\nconst moveLeft = (arr: IPage[], pageValue: number) => {\n const updatedArray = [...arr];\n if (updatedArray.length <= 1) return;\n\n const index = updatedArray.findIndex((item) => item._id === pageValue);\n\n if (index === 0) return;\n\n const elementToShift = updatedArray.splice(index, 1)[0];\n updatedArray.splice(index - 1, 0, elementToShift);\n return updatedArray;\n};\n\nconst moveRight = (arr: IPage[], pageValue: number) => {\n const updatedArray = [...arr];\n if (updatedArray.length <= 1) return;\n\n const index = updatedArray.findIndex((item) => item._id === pageValue);\n\n if (index === updatedArray.length - 1) return;\n\n const elementToShift = updatedArray.splice(index, 1)[0];\n updatedArray.splice(index + 1, 0, elementToShift);\n return updatedArray;\n};\n\nconst deletePage = (arr: IPage[], pageValue: number) => {\n const updatedArray = [...arr];\n if (updatedArray.length <= 1) return;\n\n const index = updatedArray.findIndex((item) => item._id === pageValue);\n\n updatedArray.splice(index, 1);\n return updatedArray;\n};\n\nconst PageAction = ({\n open,\n onClose,\n page,\n pages,\n setCurrentPage,\n setPages,\n resource,\n handlePageDelete,\n}: IPageAction) => {\n \n const [isEditPageModalOpen, setIsEditPageModalOpen] = useState(false);\n const [isShareModalOpen, setIsShareModalOpen] = useState(false);\n const [isConfirmOpen, setIsConfirmOpen] = useState(false);\n const [deletePageNo, setDeletePageNo] = useState<any>({});\n const [defaultSharedData, setDefaultSharedData] = useState<any>({});\n const [pageSharedData, setPageSharedData] = useState<any>([]);\n const pinToDashboardStore = useSelector((state: any) => state);\n const [pinToDashboardData, setPinToDashboardData] = useState<any>(\n pinToDashboardStore?.dashboard?.pinToDashboardList || [],\n );\n\n\n const appDispatch = useAppDispatch();\n const dispatch = useDispatch();\n const {setIsCreatePage}=usePages()\n // const token = zI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6OSwiaWF0IjoxNzA2NDcwNzQwfQ.6dtxBVGl4hF0TrNDanSBTiFtV_TUshjaiaYe9XT2Ld8\";\n useEffect(() => {\n dispatch(pinToDashboardList(pinToDashboardData));\n }, [dispatch, pageSharedData, pinToDashboardData]);\n\n useEffect(()=>{\n \n if(page){\n setPageSharedData([...pageSharedData,{\n page:{\n ...page,\n value:page?._id\n },\n isPublic: true,\n shareUsers:page?.selectedUsers,\n }])\n }\n //eslint-disable-next-line\n },[page])\n \n\n const handleOpenEditModal = () => {\n onClose();\n setIsEditPageModalOpen(true);\n };\n\n const handleCloseEditModal = () => {\n setIsEditPageModalOpen(false);\n };\n\n const handleShare = (pageData: any) => {\n pageData.pages = pages;\n appDispatch(sharePage(pageData)).then((res) => {\n if (res?.payload?.data?.pages?.length) {\n setPages(res?.payload?.data?.pages);\n }\n setIsShareModalOpen(false);\n });\n };\n\n const handleSharePage = (page: any) => {\n const defaultData = pageSharedData.find(\n (item: any) => item.page?.value === page?.value,\n );\n if (defaultData) {\n setDefaultSharedData({\n isPublic: defaultData.isPublic,\n selectedUsers: defaultData.shareUsers,\n \n });\n } else {\n setDefaultSharedData({\n isPublic: page?.selectedUsers?.length>0,\n ...page,\n });\n }\n setIsShareModalOpen(true);\n setIsShareModalOpen(true);\n };\n\n const handleDuplicatePage = (page: any) => {\n const labelExists = (label: string) =>\n pages.some((item) => item.name === label);\n const { uniqueNumberId: _id } = generateRandomId();\n let newLabel = page.name;\n\n if (labelExists(newLabel)) {\n let counter = 1;\n while (labelExists(`${page.name} ${counter}`)) {\n counter++;\n }\n newLabel = `${page.name} ${counter}`;\n }\n const updatedPage = [\n ...pages,\n { ...page, name: newLabel, _id, data: page.data, isShared: false },\n ];\n\n setPages(updatedPage);\n setIsCreatePage(true)\n };\n\n const handleEdit = (newPage: IPage) => {\n const updatedPages = pages.map((page) => {\n if (page._id === newPage._id) {\n return {\n ...page,\n name: newPage.name\n }\n }\n return page\n })\n\n setPages(updatedPages);\n setIsCreatePage(true)\n // const putDashboardRequest: Types.PutV1DashboardIdRequest = {\n // \"x-token\": token,\n // module: \"user\",\n // user_id: \"1\",\n // name: newPage.name,\n // id: newPage._id,\n // };\n // putV1DashboardId(putDashboardRequest)\n // .then((response: any) => {\n // const prevPages = [...pages];\n // const updatedPages = prevPages.map((page) =>\n // page._id === newPage._id ? newPage : page,\n // );\n // setPages(updatedPages);\n // updatePinToDashboardPage(updatedPages);\n // })\n // .catch((err: any) => console.log(\"Error in adding page\", err));\n };\n\n // const updatePinToDashboardPage = (updatedPages: any) => {\n // const currentPageLabel = updatedPages.find(\n // (item: any) => item.value === page?._id,\n // )?.label;\n\n // const updatedPinToDashboardData = pinToDashboardData.map((data: any) => ({\n // ...data,\n // label: data.value === page?._id ? currentPageLabel : data.label,\n // }));\n\n // setPinToDashboardData(updatedPinToDashboardData);\n // };\n\n const handleMoveLeft = (pageValue: any) => {\n const updatedArray = moveLeft(pages, pageValue?._id);\n if (updatedArray) setPages(updatedArray);\n };\n\n const handleMoveRight = (pageValue: any) => {\n const updatedArray = moveRight(pages, pageValue?._id);\n if (updatedArray) setPages(updatedArray);\n };\n\n const handleDeletePage = (pageValue: any) => {\n setIsConfirmOpen(true);\n setDeletePageNo(pageValue);\n };\n\n const handleConfirmDelete = () => {\n // if (!isNaN(deletePageNo._id)) {\n // const deleteDashboardRequest: Types.DeleteV1DashboardIdRequest = {\n // \"x-token\": token,\n // id: deletePageNo._id,\n // };\n // deleteV1DashboardId(deleteDashboardRequest)\n // .then((response: any) => {\n // })\n // .catch((err: any) => console.log(\"Error in deleting page\", err));\n // }\n \n const updatedArray = deletePage(pages, deletePageNo?._id);\n deletePinToDashboardPage();\n setDeletePageNo({});\n setIsConfirmOpen(false);\n if (updatedArray) {\n setCurrentPage(updatedArray[0]);\n setPages(updatedArray);\n handlePageDelete(updatedArray);\n } else {\n handlePageDelete([]);\n setPages([]);\n }\n };\n\n const deletePinToDashboardPage = () => {\n const updatedPinToDashboardData = pinToDashboardData.filter(\n (data: any) => data.value !== page?._id,\n );\n setPinToDashboardData(updatedPinToDashboardData);\n };\n\n const handleShareModal = (selectedUsers: any) => {\n\n let updatedData: any[] = [];\n const existingItem = pageSharedData.find(\n (item: any) => item.page.value === page?._id,\n );\n\n if (existingItem) {\n updatedData = pageSharedData.map((item: any) => {\n if (item.page.value === page?._id) {\n return {\n ...item,\n isPublic: selectedUsers.isPublic,\n shareUsers: selectedUsers.selectedUsers,\n };\n }\n return item;\n });\n } else {\n updatedData = [\n ...pageSharedData,\n {\n page: page,\n isPublic: selectedUsers.isPublic,\n shareUsers: selectedUsers.selectedUsers,\n viewStyle: 1,\n owner: 0,\n },\n ];\n }\n setPageSharedData(updatedData);\n handleShare({ ...selectedUsers, page: page, resource });\n };\n\n const handlePinToDashboard = () => {\n const index = pinToDashboardData.findIndex(\n (item: any) => item.value === page?._id,\n );\n\n if (index !== -1) {\n setPinToDashboardData((prevData: any) => {\n const updatedData = [...prevData];\n updatedData[index] = { ...updatedData[index], label: page?.name };\n return updatedData;\n });\n } else {\n setPinToDashboardData((prevData: any) => [...prevData, page]);\n }\n };\n\n const actions = [\n {\n label: \"Rename\",\n func: handleOpenEditModal,\n disabled: Boolean(page?.isShared)\n },\n {\n label: \"Duplicate\",\n func: handleDuplicatePage,\n },\n {\n label: \"Share\",\n func: handleSharePage,\n disabled: Boolean(page?.isShared)\n },\n {\n label: \"Pin to dashboard\",\n func: handlePinToDashboard,\n disabled: Boolean(page?.isShared)\n },\n {\n label: \"Move Right\",\n func: handleMoveRight,\n disabled: (pages?.length <= 1) || Boolean(page?.isShared)\n },\n {\n label: \"Move Left\",\n func: handleMoveLeft,\n disabled: (pages?.length <= 1) || Boolean(page?.isShared)\n },\n ];\n\n const handleAction = (func: any) => {\n func(page);\n onClose();\n };\n\n return (\n <>\n <Menu open={Boolean(open)} anchorEl={open} onClose={onClose}>\n {actions?.map((action) => (\n <MenuItem\n key={action?.label}\n onClick={() => handleAction(action.func)}\n disabled={Boolean(action?.disabled)}\n >\n <Typography color=\"theme.secondary.1000\" type=\"s4\">\n {action?.label}\n </Typography>\n </MenuItem>\n ))}\n <Divider sx={{ mt: `4px !important`, mb: `4px !important` }}/>\n <MenuItem onClick={() => handleAction(handleDeletePage)} disabled={Boolean(page?.isShared)}\n sx={{\n '&:hover': {\n backgroundColor: 'theme.error.100'\n }\n }}\n >\n <Typography color=\"theme.error.500\" type=\"s4\">\n Delete\n </Typography>\n </MenuItem>\n </Menu>\n\n <AddPageModal\n open={isEditPageModalOpen}\n page={page}\n pages={pages}\n onClose={handleCloseEditModal}\n handleSubmit={handleEdit}\n />\n\n <ConfirmPopUp\n open={isConfirmOpen}\n onClose={() => setIsConfirmOpen(false)}\n onConfirm={handleConfirmDelete}\n title=\"Delete Confirmation?\"\n description=\"Are you sure you want to delete this page ?\"\n />\n <SharePopUp\n open={isShareModalOpen}\n onClose={() => setIsShareModalOpen(false)}\n title={`Share page ${page?.name}`}\n roles={userRoles}\n toggleSwitch={true}\n value={defaultSharedData}\n onSubmit={handleShareModal}\n />\n </>\n );\n};\n\nexport { PageAction };\nexport default PageAction;\n"],"names":["useState","useSelector","useAppDispatch","useDispatch","usePages","useEffect","pinToDashboardList","sharePage","_a","page","generateRandomId","jsxs","Fragment","Menu","jsx","MenuItem","Typography","Divider","AddPageModal","ConfirmPopUp","SharePopUp","userRoles"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"page-action-BPzaL2KJ.js","sources":["../../src/components/page-navigator/components/page-action.tsx"],"sourcesContent":["import { Divider, MenuItem } from \"@mui/material\";\nimport Menu from \"../../menu/menu\";\nimport Typography from \"../../typography/typography\";\nimport { useEffect, useState } from \"react\";\nimport AddPageModal from \"./add-page-modal\";\nimport { IPage } from \"../../../@types/page\";\nimport SharePopUp from \"../../share-modal/share-modal\";\nimport { userRoles } from \"../../../views/beforeAuth/components/share-modal-data/share-modal-data\";\nimport ConfirmPopUp from \"../../confirm-modal/confirm-modal\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { pinToDashboardList } from \"../../../views/afterAuth/dashboard/redux/reducer\";\nimport {\n // deleteV1DashboardId,\n // putV1DashboardId,\n} from \"../../../api-client/api.system-feature/api\";\n// import type * as Types from \"../../api-client/api.system-feature/api-types\";\nimport { sharePage } from \"../../share-modal/redux/actionCreator\";\nimport { useAppDispatch } from \"../../../redux/hooks\";\nimport { generateRandomId } from \"../../../utils/common\";\nimport { usePages } from '@erpsquad/common/runtime';\n\ninterface IPageAction {\n open: null | HTMLElement;\n onClose: () => void;\n page?: IPage;\n pages: IPage[];\n setCurrentPage: React.Dispatch<React.SetStateAction<number>>;\n setPages: React.Dispatch<React.SetStateAction<IPage[]>>;\n resource: string;\n handlePageDelete: (pages: any[]) => void;\n}\n\nconst moveLeft = (arr: IPage[], pageValue: number) => {\n const updatedArray = [...arr];\n if (updatedArray.length <= 1) return;\n\n const index = updatedArray.findIndex((item) => item._id === pageValue);\n\n if (index === 0) return;\n\n const elementToShift = updatedArray.splice(index, 1)[0];\n updatedArray.splice(index - 1, 0, elementToShift);\n return updatedArray;\n};\n\nconst moveRight = (arr: IPage[], pageValue: number) => {\n const updatedArray = [...arr];\n if (updatedArray.length <= 1) return;\n\n const index = updatedArray.findIndex((item) => item._id === pageValue);\n\n if (index === updatedArray.length - 1) return;\n\n const elementToShift = updatedArray.splice(index, 1)[0];\n updatedArray.splice(index + 1, 0, elementToShift);\n return updatedArray;\n};\n\nconst deletePage = (arr: IPage[], pageValue: number) => {\n const updatedArray = [...arr];\n if (updatedArray.length <= 1) return;\n\n const index = updatedArray.findIndex((item) => item._id === pageValue);\n\n updatedArray.splice(index, 1);\n return updatedArray;\n};\n\nconst PageAction = ({\n open,\n onClose,\n page,\n pages,\n setCurrentPage,\n setPages,\n resource,\n handlePageDelete,\n}: IPageAction) => {\n \n const [isEditPageModalOpen, setIsEditPageModalOpen] = useState(false);\n const [isShareModalOpen, setIsShareModalOpen] = useState(false);\n const [isConfirmOpen, setIsConfirmOpen] = useState(false);\n const [deletePageNo, setDeletePageNo] = useState<any>({});\n const [defaultSharedData, setDefaultSharedData] = useState<any>({});\n const [pageSharedData, setPageSharedData] = useState<any>([]);\n const pinToDashboardStore = useSelector((state: any) => state);\n const [pinToDashboardData, setPinToDashboardData] = useState<any>(\n pinToDashboardStore?.dashboard?.pinToDashboardList || [],\n );\n\n\n const appDispatch = useAppDispatch();\n const dispatch = useDispatch();\n const {setIsCreatePage}=usePages()\n // const token = zI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6OSwiaWF0IjoxNzA2NDcwNzQwfQ.6dtxBVGl4hF0TrNDanSBTiFtV_TUshjaiaYe9XT2Ld8\";\n useEffect(() => {\n dispatch(pinToDashboardList(pinToDashboardData));\n }, [dispatch, pageSharedData, pinToDashboardData]);\n\n useEffect(()=>{\n \n if(page){\n setPageSharedData([...pageSharedData,{\n page:{\n ...page,\n value:page?._id\n },\n isPublic: true,\n shareUsers:page?.selectedUsers,\n }])\n }\n //eslint-disable-next-line\n },[page])\n \n\n const handleOpenEditModal = () => {\n onClose();\n setIsEditPageModalOpen(true);\n };\n\n const handleCloseEditModal = () => {\n setIsEditPageModalOpen(false);\n };\n\n const handleShare = (pageData: any) => {\n pageData.pages = pages;\n appDispatch(sharePage(pageData)).then((res) => {\n if (res?.payload?.data?.pages?.length) {\n setPages(res?.payload?.data?.pages);\n }\n setIsShareModalOpen(false);\n });\n };\n\n const handleSharePage = (page: any) => {\n const defaultData = pageSharedData.find(\n (item: any) => item.page?.value === page?.value,\n );\n if (defaultData) {\n setDefaultSharedData({\n isPublic: defaultData.isPublic,\n selectedUsers: defaultData.shareUsers,\n \n });\n } else {\n setDefaultSharedData({\n isPublic: page?.selectedUsers?.length>0,\n ...page,\n });\n }\n setIsShareModalOpen(true);\n setIsShareModalOpen(true);\n };\n\n const handleDuplicatePage = (page: any) => {\n const labelExists = (label: string) =>\n pages.some((item) => item.name === label);\n const { uniqueNumberId: _id } = generateRandomId();\n let newLabel = page.name;\n\n if (labelExists(newLabel)) {\n let counter = 1;\n while (labelExists(`${page.name} ${counter}`)) {\n counter++;\n }\n newLabel = `${page.name} ${counter}`;\n }\n const updatedPage = [\n ...pages,\n { ...page, name: newLabel, _id, data: page.data, isShared: false },\n ];\n\n setPages(updatedPage);\n setIsCreatePage(true)\n };\n\n const handleEdit = (newPage: IPage) => {\n const updatedPages = pages.map((page) => {\n if (page._id === newPage._id) {\n return {\n ...page,\n name: newPage.name\n }\n }\n return page\n })\n\n setPages(updatedPages);\n setIsCreatePage(true)\n // const putDashboardRequest: Types.PutV1DashboardIdRequest = {\n // \"x-token\": token,\n // module: \"user\",\n // user_id: \"1\",\n // name: newPage.name,\n // id: newPage._id,\n // };\n // putV1DashboardId(putDashboardRequest)\n // .then((response: any) => {\n // const prevPages = [...pages];\n // const updatedPages = prevPages.map((page) =>\n // page._id === newPage._id ? newPage : page,\n // );\n // setPages(updatedPages);\n // updatePinToDashboardPage(updatedPages);\n // })\n // .catch((err: any) => console.log(\"Error in adding page\", err));\n };\n\n // const updatePinToDashboardPage = (updatedPages: any) => {\n // const currentPageLabel = updatedPages.find(\n // (item: any) => item.value === page?._id,\n // )?.label;\n\n // const updatedPinToDashboardData = pinToDashboardData.map((data: any) => ({\n // ...data,\n // label: data.value === page?._id ? currentPageLabel : data.label,\n // }));\n\n // setPinToDashboardData(updatedPinToDashboardData);\n // };\n\n const handleMoveLeft = (pageValue: any) => {\n const updatedArray = moveLeft(pages, pageValue?._id);\n if (updatedArray) setPages(updatedArray);\n };\n\n const handleMoveRight = (pageValue: any) => {\n const updatedArray = moveRight(pages, pageValue?._id);\n if (updatedArray) setPages(updatedArray);\n };\n\n const handleDeletePage = (pageValue: any) => {\n setIsConfirmOpen(true);\n setDeletePageNo(pageValue);\n };\n\n const handleConfirmDelete = () => {\n // if (!isNaN(deletePageNo._id)) {\n // const deleteDashboardRequest: Types.DeleteV1DashboardIdRequest = {\n // \"x-token\": token,\n // id: deletePageNo._id,\n // };\n // deleteV1DashboardId(deleteDashboardRequest)\n // .then((response: any) => {\n // })\n // .catch((err: any) => console.log(\"Error in deleting page\", err));\n // }\n \n const updatedArray = deletePage(pages, deletePageNo?._id);\n deletePinToDashboardPage();\n setDeletePageNo({});\n setIsConfirmOpen(false);\n if (updatedArray) {\n setCurrentPage(updatedArray[0]);\n setPages(updatedArray);\n handlePageDelete(updatedArray);\n } else {\n handlePageDelete([]);\n setPages([]);\n }\n };\n\n const deletePinToDashboardPage = () => {\n const updatedPinToDashboardData = pinToDashboardData.filter(\n (data: any) => data.value !== page?._id,\n );\n setPinToDashboardData(updatedPinToDashboardData);\n };\n\n const handleShareModal = (selectedUsers: any) => {\n\n let updatedData: any[] = [];\n const existingItem = pageSharedData.find(\n (item: any) => item.page.value === page?._id,\n );\n\n if (existingItem) {\n updatedData = pageSharedData.map((item: any) => {\n if (item.page.value === page?._id) {\n return {\n ...item,\n isPublic: selectedUsers.isPublic,\n shareUsers: selectedUsers.selectedUsers,\n };\n }\n return item;\n });\n } else {\n updatedData = [\n ...pageSharedData,\n {\n page: page,\n isPublic: selectedUsers.isPublic,\n shareUsers: selectedUsers.selectedUsers,\n viewStyle: 1,\n owner: 0,\n },\n ];\n }\n setPageSharedData(updatedData);\n handleShare({ ...selectedUsers, page: page, resource });\n };\n\n const handlePinToDashboard = () => {\n const index = pinToDashboardData.findIndex(\n (item: any) => item.value === page?._id,\n );\n\n if (index !== -1) {\n setPinToDashboardData((prevData: any) => {\n const updatedData = [...prevData];\n updatedData[index] = { ...updatedData[index], label: page?.name };\n return updatedData;\n });\n } else {\n setPinToDashboardData((prevData: any) => [...prevData, page]);\n }\n };\n\n const actions = [\n {\n label: \"Rename\",\n func: handleOpenEditModal,\n disabled: Boolean(page?.isShared)\n },\n {\n label: \"Duplicate\",\n func: handleDuplicatePage,\n },\n {\n label: \"Share\",\n func: handleSharePage,\n disabled: Boolean(page?.isShared)\n },\n {\n label: \"Pin to dashboard\",\n func: handlePinToDashboard,\n disabled: Boolean(page?.isShared)\n },\n {\n label: \"Move Right\",\n func: handleMoveRight,\n disabled: (pages?.length <= 1) || Boolean(page?.isShared)\n },\n {\n label: \"Move Left\",\n func: handleMoveLeft,\n disabled: (pages?.length <= 1) || Boolean(page?.isShared)\n },\n ];\n\n const handleAction = (func: any) => {\n func(page);\n onClose();\n };\n\n return (\n <>\n <Menu open={Boolean(open)} anchorEl={open} onClose={onClose}>\n {actions?.map((action) => (\n <MenuItem\n key={action?.label}\n onClick={() => handleAction(action.func)}\n disabled={Boolean(action?.disabled)}\n >\n <Typography color=\"theme.secondary.1000\" type=\"s4\">\n {action?.label}\n </Typography>\n </MenuItem>\n ))}\n <Divider sx={{ mt: `4px !important`, mb: `4px !important` }}/>\n <MenuItem onClick={() => handleAction(handleDeletePage)} disabled={Boolean(page?.isShared)}\n sx={{\n '&:hover': {\n backgroundColor: 'theme.error.100'\n }\n }}\n >\n <Typography color=\"theme.error.500\" type=\"s4\">\n Delete\n </Typography>\n </MenuItem>\n </Menu>\n\n <AddPageModal\n open={isEditPageModalOpen}\n page={page}\n pages={pages}\n onClose={handleCloseEditModal}\n handleSubmit={handleEdit}\n />\n\n <ConfirmPopUp\n open={isConfirmOpen}\n onClose={() => setIsConfirmOpen(false)}\n onConfirm={handleConfirmDelete}\n title=\"Delete Confirmation?\"\n description=\"Are you sure you want to delete this page ?\"\n />\n <SharePopUp\n open={isShareModalOpen}\n onClose={() => setIsShareModalOpen(false)}\n title={`Share page ${page?.name}`}\n roles={userRoles}\n toggleSwitch={true}\n value={defaultSharedData}\n onSubmit={handleShareModal}\n />\n </>\n );\n};\n\nexport { PageAction };\nexport default PageAction;\n"],"names":["useState","useSelector","useAppDispatch","useDispatch","usePages","useEffect","pinToDashboardList","sharePage","_a","page","generateRandomId","jsxs","Fragment","Menu","jsx","MenuItem","Typography","Divider","AddPageModal","ConfirmPopUp","SharePopUp","userRoles"],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { M as Menu } from "./menu-B2SzzeqF.esm.js";
|
|
|
4
4
|
import { T as Typography } from "./typography-CG_A0iOJ.esm.js";
|
|
5
5
|
import { useState, useEffect } from "react";
|
|
6
6
|
import { A as AddPageModal } from "./add-page-modal-gFgr2t09.esm.js";
|
|
7
|
-
import { S as SharePopUp } from "./share-modal-
|
|
7
|
+
import { S as SharePopUp } from "./share-modal-BaEyZs2h.esm.js";
|
|
8
8
|
import { u as userRoles } from "./share-modal-data-Daax3e8o.esm.js";
|
|
9
9
|
import { C as ConfirmPopUp } from "./confirm-modal-PbguB4YV.esm.js";
|
|
10
10
|
import { useSelector, useDispatch } from "react-redux";
|
|
@@ -322,4 +322,4 @@ const PageAction = ({
|
|
|
322
322
|
export {
|
|
323
323
|
PageAction as P
|
|
324
324
|
};
|
|
325
|
-
//# sourceMappingURL=page-action-
|
|
325
|
+
//# sourceMappingURL=page-action-C07iGjvN.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-action-0S_h4623.esm.js","sources":["../../src/components/page-navigator/components/page-action.tsx"],"sourcesContent":["import { Divider, MenuItem } from \"@mui/material\";\nimport Menu from \"../../menu/menu\";\nimport Typography from \"../../typography/typography\";\nimport { useEffect, useState } from \"react\";\nimport AddPageModal from \"./add-page-modal\";\nimport { IPage } from \"../../../@types/page\";\nimport SharePopUp from \"../../share-modal/share-modal\";\nimport { userRoles } from \"../../../views/beforeAuth/components/share-modal-data/share-modal-data\";\nimport ConfirmPopUp from \"../../confirm-modal/confirm-modal\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { pinToDashboardList } from \"../../../views/afterAuth/dashboard/redux/reducer\";\nimport {\n // deleteV1DashboardId,\n // putV1DashboardId,\n} from \"../../../api-client/api.system-feature/api\";\n// import type * as Types from \"../../api-client/api.system-feature/api-types\";\nimport { sharePage } from \"../../share-modal/redux/actionCreator\";\nimport { useAppDispatch } from \"../../../redux/hooks\";\nimport { generateRandomId } from \"../../../utils/common\";\nimport { usePages } from '@erpsquad/common/runtime';\n\ninterface IPageAction {\n open: null | HTMLElement;\n onClose: () => void;\n page?: IPage;\n pages: IPage[];\n setCurrentPage: React.Dispatch<React.SetStateAction<number>>;\n setPages: React.Dispatch<React.SetStateAction<IPage[]>>;\n resource: string;\n handlePageDelete: (pages: any[]) => void;\n}\n\nconst moveLeft = (arr: IPage[], pageValue: number) => {\n const updatedArray = [...arr];\n if (updatedArray.length <= 1) return;\n\n const index = updatedArray.findIndex((item) => item._id === pageValue);\n\n if (index === 0) return;\n\n const elementToShift = updatedArray.splice(index, 1)[0];\n updatedArray.splice(index - 1, 0, elementToShift);\n return updatedArray;\n};\n\nconst moveRight = (arr: IPage[], pageValue: number) => {\n const updatedArray = [...arr];\n if (updatedArray.length <= 1) return;\n\n const index = updatedArray.findIndex((item) => item._id === pageValue);\n\n if (index === updatedArray.length - 1) return;\n\n const elementToShift = updatedArray.splice(index, 1)[0];\n updatedArray.splice(index + 1, 0, elementToShift);\n return updatedArray;\n};\n\nconst deletePage = (arr: IPage[], pageValue: number) => {\n const updatedArray = [...arr];\n if (updatedArray.length <= 1) return;\n\n const index = updatedArray.findIndex((item) => item._id === pageValue);\n\n updatedArray.splice(index, 1);\n return updatedArray;\n};\n\nconst PageAction = ({\n open,\n onClose,\n page,\n pages,\n setCurrentPage,\n setPages,\n resource,\n handlePageDelete,\n}: IPageAction) => {\n \n const [isEditPageModalOpen, setIsEditPageModalOpen] = useState(false);\n const [isShareModalOpen, setIsShareModalOpen] = useState(false);\n const [isConfirmOpen, setIsConfirmOpen] = useState(false);\n const [deletePageNo, setDeletePageNo] = useState<any>({});\n const [defaultSharedData, setDefaultSharedData] = useState<any>({});\n const [pageSharedData, setPageSharedData] = useState<any>([]);\n const pinToDashboardStore = useSelector((state: any) => state);\n const [pinToDashboardData, setPinToDashboardData] = useState<any>(\n pinToDashboardStore?.dashboard?.pinToDashboardList || [],\n );\n\n\n const appDispatch = useAppDispatch();\n const dispatch = useDispatch();\n const {setIsCreatePage}=usePages()\n // const token = zI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6OSwiaWF0IjoxNzA2NDcwNzQwfQ.6dtxBVGl4hF0TrNDanSBTiFtV_TUshjaiaYe9XT2Ld8\";\n useEffect(() => {\n dispatch(pinToDashboardList(pinToDashboardData));\n }, [dispatch, pageSharedData, pinToDashboardData]);\n\n useEffect(()=>{\n \n if(page){\n setPageSharedData([...pageSharedData,{\n page:{\n ...page,\n value:page?._id\n },\n isPublic: true,\n shareUsers:page?.selectedUsers,\n }])\n }\n //eslint-disable-next-line\n },[page])\n \n\n const handleOpenEditModal = () => {\n onClose();\n setIsEditPageModalOpen(true);\n };\n\n const handleCloseEditModal = () => {\n setIsEditPageModalOpen(false);\n };\n\n const handleShare = (pageData: any) => {\n pageData.pages = pages;\n appDispatch(sharePage(pageData)).then((res) => {\n if (res?.payload?.data?.pages?.length) {\n setPages(res?.payload?.data?.pages);\n }\n setIsShareModalOpen(false);\n });\n };\n\n const handleSharePage = (page: any) => {\n const defaultData = pageSharedData.find(\n (item: any) => item.page?.value === page?.value,\n );\n if (defaultData) {\n setDefaultSharedData({\n isPublic: defaultData.isPublic,\n selectedUsers: defaultData.shareUsers,\n \n });\n } else {\n setDefaultSharedData({\n isPublic: page?.selectedUsers?.length>0,\n ...page,\n });\n }\n setIsShareModalOpen(true);\n setIsShareModalOpen(true);\n };\n\n const handleDuplicatePage = (page: any) => {\n const labelExists = (label: string) =>\n pages.some((item) => item.name === label);\n const { uniqueNumberId: _id } = generateRandomId();\n let newLabel = page.name;\n\n if (labelExists(newLabel)) {\n let counter = 1;\n while (labelExists(`${page.name} ${counter}`)) {\n counter++;\n }\n newLabel = `${page.name} ${counter}`;\n }\n const updatedPage = [\n ...pages,\n { ...page, name: newLabel, _id, data: page.data, isShared: false },\n ];\n\n setPages(updatedPage);\n setIsCreatePage(true)\n };\n\n const handleEdit = (newPage: IPage) => {\n const updatedPages = pages.map((page) => {\n if (page._id === newPage._id) {\n return {\n ...page,\n name: newPage.name\n }\n }\n return page\n })\n\n setPages(updatedPages);\n setIsCreatePage(true)\n // const putDashboardRequest: Types.PutV1DashboardIdRequest = {\n // \"x-token\": token,\n // module: \"user\",\n // user_id: \"1\",\n // name: newPage.name,\n // id: newPage._id,\n // };\n // putV1DashboardId(putDashboardRequest)\n // .then((response: any) => {\n // const prevPages = [...pages];\n // const updatedPages = prevPages.map((page) =>\n // page._id === newPage._id ? newPage : page,\n // );\n // setPages(updatedPages);\n // updatePinToDashboardPage(updatedPages);\n // })\n // .catch((err: any) => console.log(\"Error in adding page\", err));\n };\n\n // const updatePinToDashboardPage = (updatedPages: any) => {\n // const currentPageLabel = updatedPages.find(\n // (item: any) => item.value === page?._id,\n // )?.label;\n\n // const updatedPinToDashboardData = pinToDashboardData.map((data: any) => ({\n // ...data,\n // label: data.value === page?._id ? currentPageLabel : data.label,\n // }));\n\n // setPinToDashboardData(updatedPinToDashboardData);\n // };\n\n const handleMoveLeft = (pageValue: any) => {\n const updatedArray = moveLeft(pages, pageValue?._id);\n if (updatedArray) setPages(updatedArray);\n };\n\n const handleMoveRight = (pageValue: any) => {\n const updatedArray = moveRight(pages, pageValue?._id);\n if (updatedArray) setPages(updatedArray);\n };\n\n const handleDeletePage = (pageValue: any) => {\n setIsConfirmOpen(true);\n setDeletePageNo(pageValue);\n };\n\n const handleConfirmDelete = () => {\n // if (!isNaN(deletePageNo._id)) {\n // const deleteDashboardRequest: Types.DeleteV1DashboardIdRequest = {\n // \"x-token\": token,\n // id: deletePageNo._id,\n // };\n // deleteV1DashboardId(deleteDashboardRequest)\n // .then((response: any) => {\n // })\n // .catch((err: any) => console.log(\"Error in deleting page\", err));\n // }\n \n const updatedArray = deletePage(pages, deletePageNo?._id);\n deletePinToDashboardPage();\n setDeletePageNo({});\n setIsConfirmOpen(false);\n if (updatedArray) {\n setCurrentPage(updatedArray[0]);\n setPages(updatedArray);\n handlePageDelete(updatedArray);\n } else {\n handlePageDelete([]);\n setPages([]);\n }\n };\n\n const deletePinToDashboardPage = () => {\n const updatedPinToDashboardData = pinToDashboardData.filter(\n (data: any) => data.value !== page?._id,\n );\n setPinToDashboardData(updatedPinToDashboardData);\n };\n\n const handleShareModal = (selectedUsers: any) => {\n\n let updatedData: any[] = [];\n const existingItem = pageSharedData.find(\n (item: any) => item.page.value === page?._id,\n );\n\n if (existingItem) {\n updatedData = pageSharedData.map((item: any) => {\n if (item.page.value === page?._id) {\n return {\n ...item,\n isPublic: selectedUsers.isPublic,\n shareUsers: selectedUsers.selectedUsers,\n };\n }\n return item;\n });\n } else {\n updatedData = [\n ...pageSharedData,\n {\n page: page,\n isPublic: selectedUsers.isPublic,\n shareUsers: selectedUsers.selectedUsers,\n viewStyle: 1,\n owner: 0,\n },\n ];\n }\n setPageSharedData(updatedData);\n handleShare({ ...selectedUsers, page: page, resource });\n };\n\n const handlePinToDashboard = () => {\n const index = pinToDashboardData.findIndex(\n (item: any) => item.value === page?._id,\n );\n\n if (index !== -1) {\n setPinToDashboardData((prevData: any) => {\n const updatedData = [...prevData];\n updatedData[index] = { ...updatedData[index], label: page?.name };\n return updatedData;\n });\n } else {\n setPinToDashboardData((prevData: any) => [...prevData, page]);\n }\n };\n\n const actions = [\n {\n label: \"Rename\",\n func: handleOpenEditModal,\n disabled: Boolean(page?.isShared)\n },\n {\n label: \"Duplicate\",\n func: handleDuplicatePage,\n },\n {\n label: \"Share\",\n func: handleSharePage,\n disabled: Boolean(page?.isShared)\n },\n {\n label: \"Pin to dashboard\",\n func: handlePinToDashboard,\n disabled: Boolean(page?.isShared)\n },\n {\n label: \"Move Right\",\n func: handleMoveRight,\n disabled: (pages?.length <= 1) || Boolean(page?.isShared)\n },\n {\n label: \"Move Left\",\n func: handleMoveLeft,\n disabled: (pages?.length <= 1) || Boolean(page?.isShared)\n },\n ];\n\n const handleAction = (func: any) => {\n func(page);\n onClose();\n };\n\n return (\n <>\n <Menu open={Boolean(open)} anchorEl={open} onClose={onClose}>\n {actions?.map((action) => (\n <MenuItem\n key={action?.label}\n onClick={() => handleAction(action.func)}\n disabled={Boolean(action?.disabled)}\n >\n <Typography color=\"theme.secondary.1000\" type=\"s4\">\n {action?.label}\n </Typography>\n </MenuItem>\n ))}\n <Divider sx={{ mt: `4px !important`, mb: `4px !important` }}/>\n <MenuItem onClick={() => handleAction(handleDeletePage)} disabled={Boolean(page?.isShared)}\n sx={{\n '&:hover': {\n backgroundColor: 'theme.error.100'\n }\n }}\n >\n <Typography color=\"theme.error.500\" type=\"s4\">\n Delete\n </Typography>\n </MenuItem>\n </Menu>\n\n <AddPageModal\n open={isEditPageModalOpen}\n page={page}\n pages={pages}\n onClose={handleCloseEditModal}\n handleSubmit={handleEdit}\n />\n\n <ConfirmPopUp\n open={isConfirmOpen}\n onClose={() => setIsConfirmOpen(false)}\n onConfirm={handleConfirmDelete}\n title=\"Delete Confirmation?\"\n description=\"Are you sure you want to delete this page ?\"\n />\n <SharePopUp\n open={isShareModalOpen}\n onClose={() => setIsShareModalOpen(false)}\n title={`Share page ${page?.name}`}\n roles={userRoles}\n toggleSwitch={true}\n value={defaultSharedData}\n onSubmit={handleShareModal}\n />\n </>\n );\n};\n\nexport { PageAction };\nexport default PageAction;\n"],"names":["_a","page"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"page-action-C07iGjvN.esm.js","sources":["../../src/components/page-navigator/components/page-action.tsx"],"sourcesContent":["import { Divider, MenuItem } from \"@mui/material\";\nimport Menu from \"../../menu/menu\";\nimport Typography from \"../../typography/typography\";\nimport { useEffect, useState } from \"react\";\nimport AddPageModal from \"./add-page-modal\";\nimport { IPage } from \"../../../@types/page\";\nimport SharePopUp from \"../../share-modal/share-modal\";\nimport { userRoles } from \"../../../views/beforeAuth/components/share-modal-data/share-modal-data\";\nimport ConfirmPopUp from \"../../confirm-modal/confirm-modal\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { pinToDashboardList } from \"../../../views/afterAuth/dashboard/redux/reducer\";\nimport {\n // deleteV1DashboardId,\n // putV1DashboardId,\n} from \"../../../api-client/api.system-feature/api\";\n// import type * as Types from \"../../api-client/api.system-feature/api-types\";\nimport { sharePage } from \"../../share-modal/redux/actionCreator\";\nimport { useAppDispatch } from \"../../../redux/hooks\";\nimport { generateRandomId } from \"../../../utils/common\";\nimport { usePages } from '@erpsquad/common/runtime';\n\ninterface IPageAction {\n open: null | HTMLElement;\n onClose: () => void;\n page?: IPage;\n pages: IPage[];\n setCurrentPage: React.Dispatch<React.SetStateAction<number>>;\n setPages: React.Dispatch<React.SetStateAction<IPage[]>>;\n resource: string;\n handlePageDelete: (pages: any[]) => void;\n}\n\nconst moveLeft = (arr: IPage[], pageValue: number) => {\n const updatedArray = [...arr];\n if (updatedArray.length <= 1) return;\n\n const index = updatedArray.findIndex((item) => item._id === pageValue);\n\n if (index === 0) return;\n\n const elementToShift = updatedArray.splice(index, 1)[0];\n updatedArray.splice(index - 1, 0, elementToShift);\n return updatedArray;\n};\n\nconst moveRight = (arr: IPage[], pageValue: number) => {\n const updatedArray = [...arr];\n if (updatedArray.length <= 1) return;\n\n const index = updatedArray.findIndex((item) => item._id === pageValue);\n\n if (index === updatedArray.length - 1) return;\n\n const elementToShift = updatedArray.splice(index, 1)[0];\n updatedArray.splice(index + 1, 0, elementToShift);\n return updatedArray;\n};\n\nconst deletePage = (arr: IPage[], pageValue: number) => {\n const updatedArray = [...arr];\n if (updatedArray.length <= 1) return;\n\n const index = updatedArray.findIndex((item) => item._id === pageValue);\n\n updatedArray.splice(index, 1);\n return updatedArray;\n};\n\nconst PageAction = ({\n open,\n onClose,\n page,\n pages,\n setCurrentPage,\n setPages,\n resource,\n handlePageDelete,\n}: IPageAction) => {\n \n const [isEditPageModalOpen, setIsEditPageModalOpen] = useState(false);\n const [isShareModalOpen, setIsShareModalOpen] = useState(false);\n const [isConfirmOpen, setIsConfirmOpen] = useState(false);\n const [deletePageNo, setDeletePageNo] = useState<any>({});\n const [defaultSharedData, setDefaultSharedData] = useState<any>({});\n const [pageSharedData, setPageSharedData] = useState<any>([]);\n const pinToDashboardStore = useSelector((state: any) => state);\n const [pinToDashboardData, setPinToDashboardData] = useState<any>(\n pinToDashboardStore?.dashboard?.pinToDashboardList || [],\n );\n\n\n const appDispatch = useAppDispatch();\n const dispatch = useDispatch();\n const {setIsCreatePage}=usePages()\n // const token = zI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6OSwiaWF0IjoxNzA2NDcwNzQwfQ.6dtxBVGl4hF0TrNDanSBTiFtV_TUshjaiaYe9XT2Ld8\";\n useEffect(() => {\n dispatch(pinToDashboardList(pinToDashboardData));\n }, [dispatch, pageSharedData, pinToDashboardData]);\n\n useEffect(()=>{\n \n if(page){\n setPageSharedData([...pageSharedData,{\n page:{\n ...page,\n value:page?._id\n },\n isPublic: true,\n shareUsers:page?.selectedUsers,\n }])\n }\n //eslint-disable-next-line\n },[page])\n \n\n const handleOpenEditModal = () => {\n onClose();\n setIsEditPageModalOpen(true);\n };\n\n const handleCloseEditModal = () => {\n setIsEditPageModalOpen(false);\n };\n\n const handleShare = (pageData: any) => {\n pageData.pages = pages;\n appDispatch(sharePage(pageData)).then((res) => {\n if (res?.payload?.data?.pages?.length) {\n setPages(res?.payload?.data?.pages);\n }\n setIsShareModalOpen(false);\n });\n };\n\n const handleSharePage = (page: any) => {\n const defaultData = pageSharedData.find(\n (item: any) => item.page?.value === page?.value,\n );\n if (defaultData) {\n setDefaultSharedData({\n isPublic: defaultData.isPublic,\n selectedUsers: defaultData.shareUsers,\n \n });\n } else {\n setDefaultSharedData({\n isPublic: page?.selectedUsers?.length>0,\n ...page,\n });\n }\n setIsShareModalOpen(true);\n setIsShareModalOpen(true);\n };\n\n const handleDuplicatePage = (page: any) => {\n const labelExists = (label: string) =>\n pages.some((item) => item.name === label);\n const { uniqueNumberId: _id } = generateRandomId();\n let newLabel = page.name;\n\n if (labelExists(newLabel)) {\n let counter = 1;\n while (labelExists(`${page.name} ${counter}`)) {\n counter++;\n }\n newLabel = `${page.name} ${counter}`;\n }\n const updatedPage = [\n ...pages,\n { ...page, name: newLabel, _id, data: page.data, isShared: false },\n ];\n\n setPages(updatedPage);\n setIsCreatePage(true)\n };\n\n const handleEdit = (newPage: IPage) => {\n const updatedPages = pages.map((page) => {\n if (page._id === newPage._id) {\n return {\n ...page,\n name: newPage.name\n }\n }\n return page\n })\n\n setPages(updatedPages);\n setIsCreatePage(true)\n // const putDashboardRequest: Types.PutV1DashboardIdRequest = {\n // \"x-token\": token,\n // module: \"user\",\n // user_id: \"1\",\n // name: newPage.name,\n // id: newPage._id,\n // };\n // putV1DashboardId(putDashboardRequest)\n // .then((response: any) => {\n // const prevPages = [...pages];\n // const updatedPages = prevPages.map((page) =>\n // page._id === newPage._id ? newPage : page,\n // );\n // setPages(updatedPages);\n // updatePinToDashboardPage(updatedPages);\n // })\n // .catch((err: any) => console.log(\"Error in adding page\", err));\n };\n\n // const updatePinToDashboardPage = (updatedPages: any) => {\n // const currentPageLabel = updatedPages.find(\n // (item: any) => item.value === page?._id,\n // )?.label;\n\n // const updatedPinToDashboardData = pinToDashboardData.map((data: any) => ({\n // ...data,\n // label: data.value === page?._id ? currentPageLabel : data.label,\n // }));\n\n // setPinToDashboardData(updatedPinToDashboardData);\n // };\n\n const handleMoveLeft = (pageValue: any) => {\n const updatedArray = moveLeft(pages, pageValue?._id);\n if (updatedArray) setPages(updatedArray);\n };\n\n const handleMoveRight = (pageValue: any) => {\n const updatedArray = moveRight(pages, pageValue?._id);\n if (updatedArray) setPages(updatedArray);\n };\n\n const handleDeletePage = (pageValue: any) => {\n setIsConfirmOpen(true);\n setDeletePageNo(pageValue);\n };\n\n const handleConfirmDelete = () => {\n // if (!isNaN(deletePageNo._id)) {\n // const deleteDashboardRequest: Types.DeleteV1DashboardIdRequest = {\n // \"x-token\": token,\n // id: deletePageNo._id,\n // };\n // deleteV1DashboardId(deleteDashboardRequest)\n // .then((response: any) => {\n // })\n // .catch((err: any) => console.log(\"Error in deleting page\", err));\n // }\n \n const updatedArray = deletePage(pages, deletePageNo?._id);\n deletePinToDashboardPage();\n setDeletePageNo({});\n setIsConfirmOpen(false);\n if (updatedArray) {\n setCurrentPage(updatedArray[0]);\n setPages(updatedArray);\n handlePageDelete(updatedArray);\n } else {\n handlePageDelete([]);\n setPages([]);\n }\n };\n\n const deletePinToDashboardPage = () => {\n const updatedPinToDashboardData = pinToDashboardData.filter(\n (data: any) => data.value !== page?._id,\n );\n setPinToDashboardData(updatedPinToDashboardData);\n };\n\n const handleShareModal = (selectedUsers: any) => {\n\n let updatedData: any[] = [];\n const existingItem = pageSharedData.find(\n (item: any) => item.page.value === page?._id,\n );\n\n if (existingItem) {\n updatedData = pageSharedData.map((item: any) => {\n if (item.page.value === page?._id) {\n return {\n ...item,\n isPublic: selectedUsers.isPublic,\n shareUsers: selectedUsers.selectedUsers,\n };\n }\n return item;\n });\n } else {\n updatedData = [\n ...pageSharedData,\n {\n page: page,\n isPublic: selectedUsers.isPublic,\n shareUsers: selectedUsers.selectedUsers,\n viewStyle: 1,\n owner: 0,\n },\n ];\n }\n setPageSharedData(updatedData);\n handleShare({ ...selectedUsers, page: page, resource });\n };\n\n const handlePinToDashboard = () => {\n const index = pinToDashboardData.findIndex(\n (item: any) => item.value === page?._id,\n );\n\n if (index !== -1) {\n setPinToDashboardData((prevData: any) => {\n const updatedData = [...prevData];\n updatedData[index] = { ...updatedData[index], label: page?.name };\n return updatedData;\n });\n } else {\n setPinToDashboardData((prevData: any) => [...prevData, page]);\n }\n };\n\n const actions = [\n {\n label: \"Rename\",\n func: handleOpenEditModal,\n disabled: Boolean(page?.isShared)\n },\n {\n label: \"Duplicate\",\n func: handleDuplicatePage,\n },\n {\n label: \"Share\",\n func: handleSharePage,\n disabled: Boolean(page?.isShared)\n },\n {\n label: \"Pin to dashboard\",\n func: handlePinToDashboard,\n disabled: Boolean(page?.isShared)\n },\n {\n label: \"Move Right\",\n func: handleMoveRight,\n disabled: (pages?.length <= 1) || Boolean(page?.isShared)\n },\n {\n label: \"Move Left\",\n func: handleMoveLeft,\n disabled: (pages?.length <= 1) || Boolean(page?.isShared)\n },\n ];\n\n const handleAction = (func: any) => {\n func(page);\n onClose();\n };\n\n return (\n <>\n <Menu open={Boolean(open)} anchorEl={open} onClose={onClose}>\n {actions?.map((action) => (\n <MenuItem\n key={action?.label}\n onClick={() => handleAction(action.func)}\n disabled={Boolean(action?.disabled)}\n >\n <Typography color=\"theme.secondary.1000\" type=\"s4\">\n {action?.label}\n </Typography>\n </MenuItem>\n ))}\n <Divider sx={{ mt: `4px !important`, mb: `4px !important` }}/>\n <MenuItem onClick={() => handleAction(handleDeletePage)} disabled={Boolean(page?.isShared)}\n sx={{\n '&:hover': {\n backgroundColor: 'theme.error.100'\n }\n }}\n >\n <Typography color=\"theme.error.500\" type=\"s4\">\n Delete\n </Typography>\n </MenuItem>\n </Menu>\n\n <AddPageModal\n open={isEditPageModalOpen}\n page={page}\n pages={pages}\n onClose={handleCloseEditModal}\n handleSubmit={handleEdit}\n />\n\n <ConfirmPopUp\n open={isConfirmOpen}\n onClose={() => setIsConfirmOpen(false)}\n onConfirm={handleConfirmDelete}\n title=\"Delete Confirmation?\"\n description=\"Are you sure you want to delete this page ?\"\n />\n <SharePopUp\n open={isShareModalOpen}\n onClose={() => setIsShareModalOpen(false)}\n title={`Share page ${page?.name}`}\n roles={userRoles}\n toggleSwitch={true}\n value={defaultSharedData}\n onSubmit={handleShareModal}\n />\n </>\n );\n};\n\nexport { PageAction };\nexport default PageAction;\n"],"names":["_a","page"],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import KeyboardArrowDownIcon from "@mui/icons-material/KeyboardArrowDown";
|
|
|
6
6
|
import { T as Typography } from "./typography-CG_A0iOJ.esm.js";
|
|
7
7
|
import { M as Menu } from "./menu-B2SzzeqF.esm.js";
|
|
8
8
|
import { A as AddPage } from "./add-page-DagoKPkS.esm.js";
|
|
9
|
-
import { P as PageAction } from "./page-action-
|
|
9
|
+
import { P as PageAction } from "./page-action-C07iGjvN.esm.js";
|
|
10
10
|
import { T as Tooltip } from "./Tooltip-C4ENi_0y.esm.js";
|
|
11
11
|
import { usePages, defaultPageState } from "@erpsquad/common/runtime";
|
|
12
12
|
import { B as Button } from "./button-BtdpXmjA.esm.js";
|
|
@@ -240,4 +240,4 @@ const PageNavigator = ({
|
|
|
240
240
|
export {
|
|
241
241
|
PageNavigator as P
|
|
242
242
|
};
|
|
243
|
-
//# sourceMappingURL=page-navigator-
|
|
243
|
+
//# sourceMappingURL=page-navigator-8gZpp9_P.esm.js.map
|
package/dist/chunks/{page-navigator-B17f-mUz.esm.js.map → page-navigator-8gZpp9_P.esm.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-navigator-B17f-mUz.esm.js","sources":["../../src/components/page-navigator/page-navigator.tsx"],"sourcesContent":["/* eslint-disable no-mixed-spaces-and-tabs */\nimport { useCallback, useEffect, useState } from 'react';\nimport {\n\tTabs,\n\tTab as MUITab,\n\tstyled,\n\tIconButton,\n\tMenuItem,\n\tDivider,\n\tBox,\n\tCircularProgress\n} from '@mui/material';\nimport MenuIcon from '@mui/icons-material/Menu';\nimport KeyboardArrowDown from '@mui/icons-material/KeyboardArrowDown';\nimport Typography from '../typography/typography';\nimport Menu from '../menu/menu';\nimport AddPage from './components/add-page';\nimport PageAction from './components/page-action';\nimport Tooltip from '../tooltip/Tooltip';\nimport { IPage } from '../../@types/page';\nimport { defaultPageState } from '@erpsquad/common/runtime';\nimport { usePages } from '@erpsquad/common/runtime';\nimport Button from '../button/button';\nimport _ from 'lodash';\nimport { Save, Share } from '@mui/icons-material';\nimport './page-navigator.scss';\nimport React from 'react';\n\nconst StyledTabs = styled(Tabs)(() => ({\n\tminHeight: 'fit-content',\n\n\t'.MuiTabs-indicator': {\n\t\theight: '0px !important'\n\t},\n\t'& .MuiTabs-flexContainer': {\n\t\tgap: '4px'\n\t}\n}));\n\nconst StyledTab = styled(MUITab)(({ theme: { palette } }) => ({\n\tminHeight: '2rem',\n\ttextTransform: 'none',\n\tpadding: '0rem 1rem',\n\tminWidth: 'fit-content',\n\tborderRadius: 4,\n\t'&.Mui-selected': {\n\t\tbackground: palette.theme?.primary[100],\n\t\tcolor: palette.theme?.primary[700],\n\t\tborderTop: `2px solid ${palette.theme?.primary[700]}`\n\t},\n\t'.MuiIconButton-root': {\n\t\tpadding: '0rem'\n\t},\n\t\"&:hover\": {\n\t\tbackground: palette.theme?.primary[100]\n\t}\n}));\n\nconst title = `successfully created, complete with your saved filters, sorting options, and views.`;\n\nexport interface IPageNavigator {\n\tpages: IPage[];\n\tsetPages: React.Dispatch<React.SetStateAction<IPage[]>>;\n\tcurrentPage: string | number;\n\tsetCurrentPage: React.Dispatch<React.SetStateAction<number>>;\n\tsharedPages: any;\n\tresource: string;\n\thandlePageDelete: (pages: any[]) => void;\n\tisPageSaving?: boolean;\n}\n\nexport const PageNavigator = ({\n\t// sharedPages,\n\tresource,\n\t// handlePageDelete\n}: IPageNavigator) => {\n\tconst { pages, setPages, setActivePage, activePage, savePages, setIsChanged, isSaving, generatedColumns, sharedPages, isChanged, deletePage, isCreatePage, setIsCreatePage, addOrDeletePage } = usePages();\n\tconst shareTitle = (owner) => `shared by ${owner}`;\n\tconst [isActionsMenuOpen, setIsActionsMenuOpen] =\n\t\tuseState<null | HTMLElement>(null);\n\tconst [page, setPage] = useState<IPage>();\n\n\tconst [isAllPagesMenuOpen, setIsAllPagesMenuOpen] =\n\t\tuseState<null | HTMLElement>(null);\n\n\tconst handleChangePage = (_: React.SyntheticEvent, newValue: number) => {\n\t\tconst pg = pages.find((p) => p?._id == newValue);\n\t\tsetActivePage(pg);\n\t};\n\n\tconst handleOpenActionsMenu = (\n\t\tevent: React.MouseEvent<HTMLButtonElement>,\n\t\tclickedPage: IPage\n\t) => {\n\t\tevent.stopPropagation();\n\t\tsetPage(clickedPage);\n\t\tsetIsActionsMenuOpen(event.currentTarget);\n\t};\n\tconst handleCloseActionsMenu = () => setIsActionsMenuOpen(null);\n\n\tconst handleOpenAllPagesMenu = (\n\t\tevent: React.MouseEvent<HTMLButtonElement>\n\t) => {\n\t\tevent.stopPropagation();\n\t\tsetIsAllPagesMenuOpen(event.currentTarget);\n\t};\n\tconst handleCloseAllPagesMenu = () => setIsAllPagesMenuOpen(null);\n\n\tconst handleChangePageFromMenu = (val: number) => {\n\t\tsetActivePage(val);\n\t\thandleCloseAllPagesMenu();\n\t};\n\n\tconst handleAddPage = (newPage: IPage) => {\n\t\tconst nPage = {\n\t\t\t...defaultPageState,\n\t\t\t...newPage,\n\t\t\tname: newPage.name,\n\t\t\tvisible_columns: generatedColumns.columns,\n\t\t\tcolumn_order: _.uniq(generatedColumns.orderKeys),\n\t\t\t_id: pages.length + 1,\n\t\t\tactive_view: 'Table',\n\t\t\tviews: [{\n\t\t\t\tlabel: 'Table',\n\t\t\t\tposition: 0\n\t\t\t}]\n\t\t};\n\t\tconst updatedPages: any = [\n\t\t\t...pages,\n\t\t\t...[nPage]\n\t\t];\n\t\tsetActivePage({ ...nPage });\n\t\tsetPages([...updatedPages]);\n\t\tsetIsCreatePage(true)\n\n\t};\n\n\tconst handlePageDeleteFunction = (pages: any[]) => {\n\n\t\tdeletePage(pages)\n\t}\n\n\n\tconst handleAddOrdeletePage = useCallback(async () => {\n\t\tif (isCreatePage) {\n\t\t\tconst res = await addOrDeletePage();\n\t\t\tif (res?.status_code === 200) {\n\t\t\t\tsetPages(res?.data?.pages);\n\t\t\t\tsetIsChanged(false)\n\t\t\t}\n\t\t}\n\t\tsetTimeout(() => {\n\t\t\tsetIsCreatePage(false);\n\n\t\t}, 2000)\n\t\t//eslint-disable-next-line\n\t}, [isCreatePage])\n\n\tuseEffect(() => {\n\t\thandleAddOrdeletePage()\n\t\t//eslint-disable-next-line\n\t}, [handleAddOrdeletePage])\n\n\treturn (\n\t\t<Box display=\"flex\" gap={2} alignItems={'center'} className='page-navigator-container'>\n\t\t\t<Box\n\t\t\t\tdisplay={'flex'}\n\t\t\t\tclassName='page-navigator'\n\t\t\t\tsx={{ display: 'flex', opacity: isSaving ? 0.5 : 1 }}>\n\t\t\t\t<IconButton\n\t\t\t\t\t// size='small'\n\t\t\t\t\tonClick={handleOpenAllPagesMenu}\n\t\t\t\t\tdisabled={isSaving}>\n\t\t\t\t\t<MenuIcon fontSize='small' />\n\t\t\t\t</IconButton>\n\t\t\t\t<StyledTabs\n\t\t\t\t\tvalue={activePage?._id}\n\t\t\t\t\tvariant='scrollable'\n\t\t\t\t\tonChange={handleChangePage}\n\t\t\t\t\taria-label='basic tabs example'>\n\t\t\t\t\t{pages?.map((page) => (\n\t\t\t\t\t\t<StyledTab\n\t\t\t\t\t\t\ticonPosition='end'\n\t\t\t\t\t\t\tdisableRipple\n\t\t\t\t\t\t\tkey={page}\n\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\tsize='small'\n\t\t\t\t\t\t\t\t\tedge='end'\n\t\t\t\t\t\t\t\t\tonClick={(e) => handleOpenActionsMenu(e, page)}\n\t\t\t\t\t\t\t\t\tdisabled={isSaving}>\n\t\t\t\t\t\t\t\t\t<KeyboardArrowDown fontSize='small' color={activePage?._id === page?._id ? 'primary' : undefined} />\n\t\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\t\t\ttitle={`The '${page.name}' page has been ${page?.isShared ? shareTitle(page?.owner) : title}`}\n\t\t\t\t\t\t\t\t\tkey={page._id}\n\t\t\t\t\t\t\t\t\tplacement='top'\n\t\t\t\t\t\t\t\t\tarrow>\n\t\t\t\t\t\t\t\t\t<Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>\n\t\t\t\t\t\t\t\t\t\t{page?.isShared && <Share sx={{ fontSize: '20px', color: '#4AC08C' }} />}\n\t\t\t\t\t\t\t\t\t\t<span>{page.name}</span>\n\t\t\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvalue={page?._id}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t</StyledTabs>\n\n\t\t\t\t<Divider\n\t\t\t\t\torientation='vertical'\n\t\t\t\t\tvariant='middle'\n\t\t\t\t\tflexItem\n\t\t\t\t\tsx={{\n\t\t\t\t\t\tml: 2,\n\t\t\t\t\t\tborderWidth: '1px'\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\t<Box display=\"flex\" alignItems={'center'}>\n\t\t\t\t\t<AddPage\n\t\t\t\t\t\tpages={pages}\n\t\t\t\t\t\thandleAddPage={handleAddPage}\n\t\t\t\t\t\tsharedPages={sharedPages}\n\t\t\t\t\t/>\n\t\t\t\t</Box>\n\n\t\t\t\t<PageAction\n\t\t\t\t\topen={isActionsMenuOpen}\n\t\t\t\t\tonClose={handleCloseActionsMenu}\n\t\t\t\t\tpage={page}\n\t\t\t\t\tsetPages={setPages}\n\t\t\t\t\tsetCurrentPage={setActivePage}\n\t\t\t\t\tpages={pages}\n\t\t\t\t\tresource={resource}\n\t\t\t\t\thandlePageDelete={handlePageDeleteFunction}\n\t\t\t\t/>\n\n\t\t\t\t<Menu\n\t\t\t\t\topen={Boolean(isAllPagesMenuOpen)}\n\t\t\t\t\tanchorEl={isAllPagesMenuOpen}\n\t\t\t\t\tonClose={handleCloseAllPagesMenu}>\n\t\t\t\t\t{pages?.map((page) => (\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tselected={page._id === activePage?._id}\n\t\t\t\t\t\t\tkey={page._id}\n\t\t\t\t\t\t\tonClick={() => handleChangePageFromMenu(page)}>\n\t\t\t\t\t\t\t<Typography color='theme.secondary.1000' type='s4'>\n\t\t\t\t\t\t\t\t{page.name}\n\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t))}\n\t\t\t\t</Menu>\n\t\t\t</Box>\n\t\t\t<Box display=\"flex\" alignItems={'center'}>\n\t\t\t\t<Button\n\t\t\t\t\tsize='small'\n\t\t\t\t\tvariant='contained'\n\t\t\t\t\tonClick={() => savePages()}\n\t\t\t\t\t// sx={{fontWeight:600, marginBottom:'2px',px:3}}\n\t\t\t\t\tendIcon={\n\t\t\t\t\t\tisSaving ? <CircularProgress size={15} color='inherit' /> : <Save fontSize='small' />\n\t\t\t\t\t}\n\t\t\t\t\tdisabled={!isChanged || isSaving}>\n\t\t\t\t\tSave\n\t\t\t\t</Button>\n\t\t\t</Box>\n\t\t</Box>\n\t);\n};\n\nexport default PageNavigator;\n"],"names":["MUITab","_","pages","page","KeyboardArrowDown"],"mappings":";;;;;;;;;;;;;;;AA4BA,MAAM,aAAa,OAAO,IAAI,EAAE,OAAO;AAAA,EACtC,WAAW;AAAA,EAEX,sBAAsB;AAAA,IACrB,QAAQ;AAAA,EAAA;AAAA,EAET,4BAA4B;AAAA,IAC3B,KAAK;AAAA,EAAA;AAEP,EAAE;AAEF,MAAM,YAAY,OAAOA,GAAM,EAAE,CAAC,EAAE,OAAO,EAAE,QAAA,QAAU;;AAAO;AAAA,IAC7D,WAAW;AAAA,IACX,eAAe;AAAA,IACf,SAAS;AAAA,IACT,UAAU;AAAA,IACV,cAAc;AAAA,IACd,kBAAkB;AAAA,MACjB,aAAY,aAAQ,UAAR,mBAAe,QAAQ;AAAA,MACnC,QAAO,aAAQ,UAAR,mBAAe,QAAQ;AAAA,MAC9B,WAAW,cAAa,aAAQ,UAAR,mBAAe,QAAQ,IAAI;AAAA,IAAA;AAAA,IAEpD,uBAAuB;AAAA,MACtB,SAAS;AAAA,IAAA;AAAA,IAEV,WAAW;AAAA,MACV,aAAY,aAAQ,UAAR,mBAAe,QAAQ;AAAA,IAAG;AAAA,EAExC;AAAA,CAAE;AAEF,MAAM,QAAQ;AAaP,MAAM,gBAAgB,CAAC;AAAA;AAAA,EAE7B;AAAA;AAED,MAAsB;AACrB,QAAM,EAAE,OAAO,UAAU,eAAe,YAAY,WAAW,cAAc,UAAU,kBAAkB,aAAa,WAAW,YAAY,cAAc,iBAAiB,gBAAA,IAAoB,SAAA;AAChM,QAAM,aAAa,CAAC,UAAU,aAAa,KAAK;AAChD,QAAM,CAAC,mBAAmB,oBAAoB,IAC7C,SAA6B,IAAI;AAClC,QAAM,CAAC,MAAM,OAAO,IAAI,SAAA;AAExB,QAAM,CAAC,oBAAoB,qBAAqB,IAC/C,SAA6B,IAAI;AAElC,QAAM,mBAAmB,CAACC,IAAyB,aAAqB;AACvE,UAAM,KAAK,MAAM,KAAK,CAAC,OAAM,uBAAG,QAAO,QAAQ;AAC/C,kBAAc,EAAE;AAAA,EACjB;AAEA,QAAM,wBAAwB,CAC7B,OACA,gBACI;AACJ,UAAM,gBAAA;AACN,YAAQ,WAAW;AACnB,yBAAqB,MAAM,aAAa;AAAA,EACzC;AACA,QAAM,yBAAyB,MAAM,qBAAqB,IAAI;AAE9D,QAAM,yBAAyB,CAC9B,UACI;AACJ,UAAM,gBAAA;AACN,0BAAsB,MAAM,aAAa;AAAA,EAC1C;AACA,QAAM,0BAA0B,MAAM,sBAAsB,IAAI;AAEhE,QAAM,2BAA2B,CAAC,QAAgB;AACjD,kBAAc,GAAG;AACjB,4BAAA;AAAA,EACD;AAEA,QAAM,gBAAgB,CAAC,YAAmB;AACzC,UAAM,QAAQ;AAAA,MACb,GAAG;AAAA,MACH,GAAG;AAAA,MACH,MAAM,QAAQ;AAAA,MACd,iBAAiB,iBAAiB;AAAA,MAClC,cAAc,EAAE,KAAK,iBAAiB,SAAS;AAAA,MAC/C,KAAK,MAAM,SAAS;AAAA,MACpB,aAAa;AAAA,MACb,OAAO,CAAC;AAAA,QACP,OAAO;AAAA,QACP,UAAU;AAAA,MAAA,CACV;AAAA,IAAA;AAEF,UAAM,eAAoB;AAAA,MACzB,GAAG;AAAA,MACH,GAAG,CAAC,KAAK;AAAA,IAAA;AAEV,kBAAc,EAAE,GAAG,OAAO;AAC1B,aAAS,CAAC,GAAG,YAAY,CAAC;AAC1B,oBAAgB,IAAI;AAAA,EAErB;AAEA,QAAM,2BAA2B,CAACC,WAAiB;AAElD,eAAWA,MAAK;AAAA,EACjB;AAGA,QAAM,wBAAwB,YAAY,YAAY;;AACrD,QAAI,cAAc;AACjB,YAAM,MAAM,MAAM,gBAAA;AAClB,WAAI,2BAAK,iBAAgB,KAAK;AAC7B,kBAAS,gCAAK,SAAL,mBAAW,KAAK;AACzB,qBAAa,KAAK;AAAA,MACnB;AAAA,IACD;AACA,eAAW,MAAM;AAChB,sBAAgB,KAAK;AAAA,IAEtB,GAAG,GAAI;AAAA,EAER,GAAG,CAAC,YAAY,CAAC;AAEjB,YAAU,MAAM;AACf,0BAAA;AAAA,EAED,GAAG,CAAC,qBAAqB,CAAC;AAE1B,SACC,qBAAC,OAAI,SAAQ,QAAO,KAAK,GAAG,YAAY,UAAU,WAAU,4BAC3D,UAAA;AAAA,IAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACA,SAAS;AAAA,QACT,WAAU;AAAA,QACV,IAAI,EAAE,SAAS,QAAQ,SAAS,WAAW,MAAM,EAAA;AAAA,QACjD,UAAA;AAAA,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cAEA,SAAS;AAAA,cACT,UAAU;AAAA,cACV,UAAA,oBAAC,UAAA,EAAS,UAAS,QAAA,CAAQ;AAAA,YAAA;AAAA,UAAA;AAAA,UAE5B;AAAA,YAAC;AAAA,YAAA;AAAA,cACA,OAAO,yCAAY;AAAA,cACnB,SAAQ;AAAA,cACR,UAAU;AAAA,cACV,cAAW;AAAA,cACV,UAAA,+BAAO,IAAI,CAACC,UACZ;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACA,cAAa;AAAA,kBACb,eAAa;AAAA,kBAEb,MACC;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACA,MAAK;AAAA,sBACL,MAAK;AAAA,sBACL,SAAS,CAAC,MAAM,sBAAsB,GAAGA,KAAI;AAAA,sBAC7C,UAAU;AAAA,sBACV,UAAA,oBAACC,uBAAA,EAAkB,UAAS,SAAQ,QAAO,yCAAY,UAAQD,+BAAM,OAAM,YAAY,OAAA,CAAW;AAAA,oBAAA;AAAA,kBAAA;AAAA,kBAGpG,OACC;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACA,OAAO,QAAQA,MAAK,IAAI,qBAAoBA,+BAAM,YAAW,WAAWA,+BAAM,KAAK,IAAI,KAAK;AAAA,sBAE5F,WAAU;AAAA,sBACV,OAAK;AAAA,sBACL,UAAA,qBAAC,KAAA,EAAI,IAAI,EAAE,SAAS,QAAQ,YAAY,UAAU,KAAK,EAAA,GACrD,UAAA;AAAA,yBAAAA,+BAAM,aAAY,oBAAC,OAAA,EAAM,IAAI,EAAE,UAAU,QAAQ,OAAO,UAAA,EAAU,CAAG;AAAA,wBACtE,oBAAC,QAAA,EAAM,UAAAA,MAAK,KAAA,CAAK;AAAA,sBAAA,EAAA,CAClB;AAAA,oBAAA;AAAA,oBANKA,MAAK;AAAA,kBAAA;AAAA,kBASZ,OAAOA,+BAAM;AAAA,gBAAA;AAAA,gBAtBRA;AAAAA,cAAA;AAAA,YAwBN;AAAA,UAAA;AAAA,UAGF;AAAA,YAAC;AAAA,YAAA;AAAA,cACA,aAAY;AAAA,cACZ,SAAQ;AAAA,cACR,UAAQ;AAAA,cACR,IAAI;AAAA,gBACH,IAAI;AAAA,gBACJ,aAAa;AAAA,cAAA;AAAA,YACd;AAAA,UAAA;AAAA,UAED,oBAAC,KAAA,EAAI,SAAQ,QAAO,YAAY,UAC/B,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YAAA;AAAA,UAAA,GAEF;AAAA,UAEA;AAAA,YAAC;AAAA,YAAA;AAAA,cACA,MAAM;AAAA,cACN,SAAS;AAAA,cACT;AAAA,cACA;AAAA,cACA,gBAAgB;AAAA,cAChB;AAAA,cACA;AAAA,cACA,kBAAkB;AAAA,YAAA;AAAA,UAAA;AAAA,UAGnB;AAAA,YAAC;AAAA,YAAA;AAAA,cACA,MAAM,QAAQ,kBAAkB;AAAA,cAChC,UAAU;AAAA,cACV,SAAS;AAAA,cACR,UAAA,+BAAO,IAAI,CAACA,UACZ;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACA,UAAUA,MAAK,SAAQ,yCAAY;AAAA,kBAEnC,SAAS,MAAM,yBAAyBA,KAAI;AAAA,kBAC5C,UAAA,oBAAC,cAAW,OAAM,wBAAuB,MAAK,MAC5C,UAAAA,MAAK,KAAA,CACP;AAAA,gBAAA;AAAA,gBAJKA,MAAK;AAAA,cAAA;AAAA,YAMX;AAAA,UAAA;AAAA,QACF;AAAA,MAAA;AAAA,IAAA;AAAA,IAED,oBAAC,KAAA,EAAI,SAAQ,QAAO,YAAY,UAC/B,UAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACA,MAAK;AAAA,QACL,SAAQ;AAAA,QACR,SAAS,MAAM,UAAA;AAAA,QAEf,SACC,WAAW,oBAAC,kBAAA,EAAiB,MAAM,IAAI,OAAM,UAAA,CAAU,IAAK,oBAAC,MAAA,EAAK,UAAS,QAAA,CAAQ;AAAA,QAEpF,UAAU,CAAC,aAAa;AAAA,QAAU,UAAA;AAAA,MAAA;AAAA,IAAA,EAEnC,CACD;AAAA,EAAA,GACD;AAEF;"}
|
|
1
|
+
{"version":3,"file":"page-navigator-8gZpp9_P.esm.js","sources":["../../src/components/page-navigator/page-navigator.tsx"],"sourcesContent":["/* eslint-disable no-mixed-spaces-and-tabs */\nimport { useCallback, useEffect, useState } from 'react';\nimport {\n\tTabs,\n\tTab as MUITab,\n\tstyled,\n\tIconButton,\n\tMenuItem,\n\tDivider,\n\tBox,\n\tCircularProgress\n} from '@mui/material';\nimport MenuIcon from '@mui/icons-material/Menu';\nimport KeyboardArrowDown from '@mui/icons-material/KeyboardArrowDown';\nimport Typography from '../typography/typography';\nimport Menu from '../menu/menu';\nimport AddPage from './components/add-page';\nimport PageAction from './components/page-action';\nimport Tooltip from '../tooltip/Tooltip';\nimport { IPage } from '../../@types/page';\nimport { defaultPageState } from '@erpsquad/common/runtime';\nimport { usePages } from '@erpsquad/common/runtime';\nimport Button from '../button/button';\nimport _ from 'lodash';\nimport { Save, Share } from '@mui/icons-material';\nimport './page-navigator.scss';\nimport React from 'react';\n\nconst StyledTabs = styled(Tabs)(() => ({\n\tminHeight: 'fit-content',\n\n\t'.MuiTabs-indicator': {\n\t\theight: '0px !important'\n\t},\n\t'& .MuiTabs-flexContainer': {\n\t\tgap: '4px'\n\t}\n}));\n\nconst StyledTab = styled(MUITab)(({ theme: { palette } }) => ({\n\tminHeight: '2rem',\n\ttextTransform: 'none',\n\tpadding: '0rem 1rem',\n\tminWidth: 'fit-content',\n\tborderRadius: 4,\n\t'&.Mui-selected': {\n\t\tbackground: palette.theme?.primary[100],\n\t\tcolor: palette.theme?.primary[700],\n\t\tborderTop: `2px solid ${palette.theme?.primary[700]}`\n\t},\n\t'.MuiIconButton-root': {\n\t\tpadding: '0rem'\n\t},\n\t\"&:hover\": {\n\t\tbackground: palette.theme?.primary[100]\n\t}\n}));\n\nconst title = `successfully created, complete with your saved filters, sorting options, and views.`;\n\nexport interface IPageNavigator {\n\tpages: IPage[];\n\tsetPages: React.Dispatch<React.SetStateAction<IPage[]>>;\n\tcurrentPage: string | number;\n\tsetCurrentPage: React.Dispatch<React.SetStateAction<number>>;\n\tsharedPages: any;\n\tresource: string;\n\thandlePageDelete: (pages: any[]) => void;\n\tisPageSaving?: boolean;\n}\n\nexport const PageNavigator = ({\n\t// sharedPages,\n\tresource,\n\t// handlePageDelete\n}: IPageNavigator) => {\n\tconst { pages, setPages, setActivePage, activePage, savePages, setIsChanged, isSaving, generatedColumns, sharedPages, isChanged, deletePage, isCreatePage, setIsCreatePage, addOrDeletePage } = usePages();\n\tconst shareTitle = (owner) => `shared by ${owner}`;\n\tconst [isActionsMenuOpen, setIsActionsMenuOpen] =\n\t\tuseState<null | HTMLElement>(null);\n\tconst [page, setPage] = useState<IPage>();\n\n\tconst [isAllPagesMenuOpen, setIsAllPagesMenuOpen] =\n\t\tuseState<null | HTMLElement>(null);\n\n\tconst handleChangePage = (_: React.SyntheticEvent, newValue: number) => {\n\t\tconst pg = pages.find((p) => p?._id == newValue);\n\t\tsetActivePage(pg);\n\t};\n\n\tconst handleOpenActionsMenu = (\n\t\tevent: React.MouseEvent<HTMLButtonElement>,\n\t\tclickedPage: IPage\n\t) => {\n\t\tevent.stopPropagation();\n\t\tsetPage(clickedPage);\n\t\tsetIsActionsMenuOpen(event.currentTarget);\n\t};\n\tconst handleCloseActionsMenu = () => setIsActionsMenuOpen(null);\n\n\tconst handleOpenAllPagesMenu = (\n\t\tevent: React.MouseEvent<HTMLButtonElement>\n\t) => {\n\t\tevent.stopPropagation();\n\t\tsetIsAllPagesMenuOpen(event.currentTarget);\n\t};\n\tconst handleCloseAllPagesMenu = () => setIsAllPagesMenuOpen(null);\n\n\tconst handleChangePageFromMenu = (val: number) => {\n\t\tsetActivePage(val);\n\t\thandleCloseAllPagesMenu();\n\t};\n\n\tconst handleAddPage = (newPage: IPage) => {\n\t\tconst nPage = {\n\t\t\t...defaultPageState,\n\t\t\t...newPage,\n\t\t\tname: newPage.name,\n\t\t\tvisible_columns: generatedColumns.columns,\n\t\t\tcolumn_order: _.uniq(generatedColumns.orderKeys),\n\t\t\t_id: pages.length + 1,\n\t\t\tactive_view: 'Table',\n\t\t\tviews: [{\n\t\t\t\tlabel: 'Table',\n\t\t\t\tposition: 0\n\t\t\t}]\n\t\t};\n\t\tconst updatedPages: any = [\n\t\t\t...pages,\n\t\t\t...[nPage]\n\t\t];\n\t\tsetActivePage({ ...nPage });\n\t\tsetPages([...updatedPages]);\n\t\tsetIsCreatePage(true)\n\n\t};\n\n\tconst handlePageDeleteFunction = (pages: any[]) => {\n\n\t\tdeletePage(pages)\n\t}\n\n\n\tconst handleAddOrdeletePage = useCallback(async () => {\n\t\tif (isCreatePage) {\n\t\t\tconst res = await addOrDeletePage();\n\t\t\tif (res?.status_code === 200) {\n\t\t\t\tsetPages(res?.data?.pages);\n\t\t\t\tsetIsChanged(false)\n\t\t\t}\n\t\t}\n\t\tsetTimeout(() => {\n\t\t\tsetIsCreatePage(false);\n\n\t\t}, 2000)\n\t\t//eslint-disable-next-line\n\t}, [isCreatePage])\n\n\tuseEffect(() => {\n\t\thandleAddOrdeletePage()\n\t\t//eslint-disable-next-line\n\t}, [handleAddOrdeletePage])\n\n\treturn (\n\t\t<Box display=\"flex\" gap={2} alignItems={'center'} className='page-navigator-container'>\n\t\t\t<Box\n\t\t\t\tdisplay={'flex'}\n\t\t\t\tclassName='page-navigator'\n\t\t\t\tsx={{ display: 'flex', opacity: isSaving ? 0.5 : 1 }}>\n\t\t\t\t<IconButton\n\t\t\t\t\t// size='small'\n\t\t\t\t\tonClick={handleOpenAllPagesMenu}\n\t\t\t\t\tdisabled={isSaving}>\n\t\t\t\t\t<MenuIcon fontSize='small' />\n\t\t\t\t</IconButton>\n\t\t\t\t<StyledTabs\n\t\t\t\t\tvalue={activePage?._id}\n\t\t\t\t\tvariant='scrollable'\n\t\t\t\t\tonChange={handleChangePage}\n\t\t\t\t\taria-label='basic tabs example'>\n\t\t\t\t\t{pages?.map((page) => (\n\t\t\t\t\t\t<StyledTab\n\t\t\t\t\t\t\ticonPosition='end'\n\t\t\t\t\t\t\tdisableRipple\n\t\t\t\t\t\t\tkey={page}\n\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\tsize='small'\n\t\t\t\t\t\t\t\t\tedge='end'\n\t\t\t\t\t\t\t\t\tonClick={(e) => handleOpenActionsMenu(e, page)}\n\t\t\t\t\t\t\t\t\tdisabled={isSaving}>\n\t\t\t\t\t\t\t\t\t<KeyboardArrowDown fontSize='small' color={activePage?._id === page?._id ? 'primary' : undefined} />\n\t\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\t\t\ttitle={`The '${page.name}' page has been ${page?.isShared ? shareTitle(page?.owner) : title}`}\n\t\t\t\t\t\t\t\t\tkey={page._id}\n\t\t\t\t\t\t\t\t\tplacement='top'\n\t\t\t\t\t\t\t\t\tarrow>\n\t\t\t\t\t\t\t\t\t<Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>\n\t\t\t\t\t\t\t\t\t\t{page?.isShared && <Share sx={{ fontSize: '20px', color: '#4AC08C' }} />}\n\t\t\t\t\t\t\t\t\t\t<span>{page.name}</span>\n\t\t\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvalue={page?._id}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t</StyledTabs>\n\n\t\t\t\t<Divider\n\t\t\t\t\torientation='vertical'\n\t\t\t\t\tvariant='middle'\n\t\t\t\t\tflexItem\n\t\t\t\t\tsx={{\n\t\t\t\t\t\tml: 2,\n\t\t\t\t\t\tborderWidth: '1px'\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\t<Box display=\"flex\" alignItems={'center'}>\n\t\t\t\t\t<AddPage\n\t\t\t\t\t\tpages={pages}\n\t\t\t\t\t\thandleAddPage={handleAddPage}\n\t\t\t\t\t\tsharedPages={sharedPages}\n\t\t\t\t\t/>\n\t\t\t\t</Box>\n\n\t\t\t\t<PageAction\n\t\t\t\t\topen={isActionsMenuOpen}\n\t\t\t\t\tonClose={handleCloseActionsMenu}\n\t\t\t\t\tpage={page}\n\t\t\t\t\tsetPages={setPages}\n\t\t\t\t\tsetCurrentPage={setActivePage}\n\t\t\t\t\tpages={pages}\n\t\t\t\t\tresource={resource}\n\t\t\t\t\thandlePageDelete={handlePageDeleteFunction}\n\t\t\t\t/>\n\n\t\t\t\t<Menu\n\t\t\t\t\topen={Boolean(isAllPagesMenuOpen)}\n\t\t\t\t\tanchorEl={isAllPagesMenuOpen}\n\t\t\t\t\tonClose={handleCloseAllPagesMenu}>\n\t\t\t\t\t{pages?.map((page) => (\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tselected={page._id === activePage?._id}\n\t\t\t\t\t\t\tkey={page._id}\n\t\t\t\t\t\t\tonClick={() => handleChangePageFromMenu(page)}>\n\t\t\t\t\t\t\t<Typography color='theme.secondary.1000' type='s4'>\n\t\t\t\t\t\t\t\t{page.name}\n\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t))}\n\t\t\t\t</Menu>\n\t\t\t</Box>\n\t\t\t<Box display=\"flex\" alignItems={'center'}>\n\t\t\t\t<Button\n\t\t\t\t\tsize='small'\n\t\t\t\t\tvariant='contained'\n\t\t\t\t\tonClick={() => savePages()}\n\t\t\t\t\t// sx={{fontWeight:600, marginBottom:'2px',px:3}}\n\t\t\t\t\tendIcon={\n\t\t\t\t\t\tisSaving ? <CircularProgress size={15} color='inherit' /> : <Save fontSize='small' />\n\t\t\t\t\t}\n\t\t\t\t\tdisabled={!isChanged || isSaving}>\n\t\t\t\t\tSave\n\t\t\t\t</Button>\n\t\t\t</Box>\n\t\t</Box>\n\t);\n};\n\nexport default PageNavigator;\n"],"names":["MUITab","_","pages","page","KeyboardArrowDown"],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ const KeyboardArrowDownIcon = require("@mui/icons-material/KeyboardArrowDown");
|
|
|
7
7
|
const typography = require("./typography-Bqfr1Ksf.js");
|
|
8
8
|
const menu = require("./menu-CbpcDA_h.js");
|
|
9
9
|
const addPage = require("./add-page-kmj2dpNR.js");
|
|
10
|
-
const pageAction = require("./page-action-
|
|
10
|
+
const pageAction = require("./page-action-BPzaL2KJ.js");
|
|
11
11
|
const Tooltip = require("./Tooltip-2SPKKR77.js");
|
|
12
12
|
const runtime = require("@erpsquad/common/runtime");
|
|
13
13
|
const button = require("./button-CYiSRppg.js");
|
|
@@ -239,4 +239,4 @@ const PageNavigator = ({
|
|
|
239
239
|
] });
|
|
240
240
|
};
|
|
241
241
|
exports.PageNavigator = PageNavigator;
|
|
242
|
-
//# sourceMappingURL=page-navigator-
|
|
242
|
+
//# sourceMappingURL=page-navigator-Cgbh3tTG.js.map
|