@erpsquad/common 1.11.7 → 1.11.8
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/api-client/index.esm.js +2 -2
- package/dist/chunks/{DynamicDependentField-DOGY6cA_.esm.js → DynamicDependentField-C0XXmMlG.esm.js} +2 -2
- package/dist/chunks/{DynamicDependentField-DOGY6cA_.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/{ERPUIProvider-Dz0s77BR.esm.js → ERPUIProvider-I4j_X_SD.esm.js} +3 -3
- package/dist/chunks/{ERPUIProvider-Dz0s77BR.esm.js.map → ERPUIProvider-I4j_X_SD.esm.js.map} +1 -1
- package/dist/chunks/{FORMS-EouVYay1.js → FORMS-CUx32b_4.js} +5 -5
- package/dist/chunks/{FORMS-EouVYay1.js.map → FORMS-CUx32b_4.js.map} +1 -1
- package/dist/chunks/{FORMS-CR_DlD1m.esm.js → FORMS-pxf6g6xE.esm.js} +8 -8
- package/dist/chunks/{FORMS-CR_DlD1m.esm.js.map → FORMS-pxf6g6xE.esm.js.map} +1 -1
- package/dist/chunks/{FlexibleReduxExample-CMUylyy1.js → FlexibleReduxExample--GtoEJhc.js} +3 -3
- package/dist/chunks/{FlexibleReduxExample-CMUylyy1.js.map → FlexibleReduxExample--GtoEJhc.js.map} +1 -1
- package/dist/chunks/{FlexibleReduxExample-B2e7Wa_S.esm.js → FlexibleReduxExample-C-2qOGIw.esm.js} +4 -4
- package/dist/chunks/{FlexibleReduxExample-B2e7Wa_S.esm.js.map → FlexibleReduxExample-C-2qOGIw.esm.js.map} +1 -1
- package/dist/chunks/SectionFlowEditor-CFfJBYKx.esm.js +5479 -0
- package/dist/chunks/SectionFlowEditor-CFfJBYKx.esm.js.map +1 -0
- package/dist/chunks/SectionFlowEditor-sKsZ3oQo.js +5478 -0
- package/dist/chunks/SectionFlowEditor-sKsZ3oQo.js.map +1 -0
- package/dist/chunks/{action-bar-Ci6RlMBM.esm.js → action-bar-C7Alva4T.esm.js} +6 -6
- package/dist/chunks/{action-bar-Ci6RlMBM.esm.js.map → action-bar-C7Alva4T.esm.js.map} +1 -1
- package/dist/chunks/{action-bar-jLqQTqU7.js → action-bar-DdtpxWNk.js} +3 -3
- package/dist/chunks/{action-bar-jLqQTqU7.js.map → action-bar-DdtpxWNk.js.map} +1 -1
- package/dist/chunks/{actionCreator-DIdMRO9L.esm.js → actionCreator-CL5ICuqZ.esm.js} +2 -2
- package/dist/chunks/{actionCreator-DIdMRO9L.esm.js.map → actionCreator-CL5ICuqZ.esm.js.map} +1 -1
- package/dist/chunks/{actionCreator-DKYufGAZ.esm.js → actionCreator-Cb3NxILP.esm.js} +2 -2
- package/dist/chunks/{actionCreator-DKYufGAZ.esm.js.map → actionCreator-Cb3NxILP.esm.js.map} +1 -1
- package/dist/chunks/{actionCreator-D3uwEAua.esm.js → actionCreator-Cl8vPLVO.esm.js} +3 -3
- package/dist/chunks/{actionCreator-D3uwEAua.esm.js.map → actionCreator-Cl8vPLVO.esm.js.map} +1 -1
- package/dist/chunks/{actionCreator-B6lXR_k1.esm.js → actionCreator-CpePNxQM.esm.js} +2 -2
- package/dist/chunks/{actionCreator-B6lXR_k1.esm.js.map → actionCreator-CpePNxQM.esm.js.map} +1 -1
- package/dist/chunks/{actionCreator-DcdyGsIX.esm.js → actionCreator-Dar9Z8_d.esm.js} +3 -3
- package/dist/chunks/{actionCreator-DcdyGsIX.esm.js.map → actionCreator-Dar9Z8_d.esm.js.map} +1 -1
- package/dist/chunks/add-template-DVvbD9a4.esm.js +11 -0
- package/dist/chunks/add-template-DVvbD9a4.esm.js.map +1 -0
- package/dist/chunks/add-template-Dohg2bHJ.js +10 -0
- package/dist/chunks/add-template-Dohg2bHJ.js.map +1 -0
- 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-DYGLjrqd.esm.js → address-modal-CkDBjnye.esm.js} +2 -2
- package/dist/chunks/{address-modal-DYGLjrqd.esm.js.map → address-modal-CkDBjnye.esm.js.map} +1 -1
- package/dist/chunks/{ai-summary-x2t8BZCx.esm.js → ai-summary-SKK5KN2s.esm.js} +2 -2
- package/dist/chunks/{ai-summary-x2t8BZCx.esm.js.map → ai-summary-SKK5KN2s.esm.js.map} +1 -1
- package/dist/chunks/{api-8jutPLh0.esm.js → api-BIVCMSwW.esm.js} +3 -3
- package/dist/chunks/{api-8jutPLh0.esm.js.map → api-BIVCMSwW.esm.js.map} +1 -1
- package/dist/chunks/{api-yLpQ3k5s.esm.js → api-DBmWILBN.esm.js} +9 -9
- package/dist/chunks/{api-yLpQ3k5s.esm.js.map → api-DBmWILBN.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-B8EgZsrn.esm.js → appbar-BRbO--as.esm.js} +2 -2
- package/dist/chunks/{appbar-B8EgZsrn.esm.js.map → appbar-BRbO--as.esm.js.map} +1 -1
- package/dist/chunks/{appbar-Is_7kfVo.js → appbar-rqqjZ99v.js} +2 -2
- package/dist/chunks/{appbar-Is_7kfVo.js.map → appbar-rqqjZ99v.js.map} +1 -1
- package/dist/chunks/{approval-wrapper-_kYfACQp.esm.js → approval-wrapper-BTtmXMlk.esm.js} +2 -2
- package/dist/chunks/{approval-wrapper-_kYfACQp.esm.js.map → approval-wrapper-BTtmXMlk.esm.js.map} +1 -1
- package/dist/chunks/{chat-bot-DO3vAGxA.esm.js → chat-bot-BpNtrZEL.esm.js} +39 -33
- package/dist/chunks/chat-bot-BpNtrZEL.esm.js.map +1 -0
- package/dist/chunks/{chat-bot-2Ga_xA_K.js → chat-bot-osiGMG3g.js} +38 -32
- package/dist/chunks/chat-bot-osiGMG3g.js.map +1 -0
- package/dist/chunks/common-C5AokA7z.js +368 -0
- package/dist/chunks/common-C5AokA7z.js.map +1 -0
- 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-CaomnEjX.esm.js +369 -0
- package/dist/chunks/common-CaomnEjX.esm.js.map +1 -0
- package/dist/chunks/common-utility-CA_Upser.js.map +1 -1
- package/dist/chunks/{common-utility-CS_sNoAC.esm.js → common-utility-DGpbsf7S.esm.js} +2 -2
- package/dist/chunks/common-utility-DGpbsf7S.esm.js.map +1 -0
- 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/company-selection-modal-B7jFVWWs.js.map +1 -1
- package/dist/chunks/company-selection-modal-Dn2L_skh.esm.js.map +1 -1
- package/dist/chunks/{constant-BXPcBhJN.esm.js → constant-Bwg2s_Sn.esm.js} +5 -35
- package/dist/chunks/constant-Bwg2s_Sn.esm.js.map +1 -0
- package/dist/chunks/{constant-BXeJD4Af.js → constant-ZYAN_teD.js} +5 -35
- package/dist/chunks/constant-ZYAN_teD.js.map +1 -0
- 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-editor-C-B5BK-H.esm.js → custom-editor-6-xqhKz6.esm.js} +3 -3
- package/dist/chunks/{custom-editor-C-B5BK-H.esm.js.map → custom-editor-6-xqhKz6.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-DNUpk0nq.esm.js → custom-form-DD7YOHMF.esm.js} +7 -7
- package/dist/chunks/{custom-form-DNUpk0nq.esm.js.map → custom-form-DD7YOHMF.esm.js.map} +1 -1
- package/dist/chunks/{dashboard-eMHQayU_.js → dashboard-BcWVkWZt.js} +3 -3
- package/dist/chunks/{dashboard-eMHQayU_.js.map → dashboard-BcWVkWZt.js.map} +1 -1
- package/dist/chunks/{dashboard-B4xzJ1Xc.esm.js → dashboard-DL83yYRR.esm.js} +4 -4
- package/dist/chunks/{dashboard-B4xzJ1Xc.esm.js.map → dashboard-DL83yYRR.esm.js.map} +1 -1
- package/dist/chunks/default-data-6IxhqPTP.esm.js.map +1 -1
- package/dist/chunks/default-data-yreKVx_z.js.map +1 -1
- package/dist/chunks/{dynamic-report-CMguvXj2.esm.js → dynamic-report-tKn-KqAd.esm.js} +4 -4
- package/dist/chunks/{dynamic-report-CMguvXj2.esm.js.map → dynamic-report-tKn-KqAd.esm.js.map} +1 -1
- package/dist/chunks/{dynamic-rows-CmAE9nbA.esm.js → dynamic-rows-CTGETfcP.esm.js} +2 -2
- package/dist/chunks/{dynamic-rows-CmAE9nbA.esm.js.map → dynamic-rows-CTGETfcP.esm.js.map} +1 -1
- package/dist/chunks/{dynamic-text-editor-CSWdR1lK.esm.js → dynamic-text-editor-CPvlGcLK.esm.js} +2 -2
- package/dist/chunks/{dynamic-text-editor-CSWdR1lK.esm.js.map → dynamic-text-editor-CPvlGcLK.esm.js.map} +1 -1
- package/dist/chunks/{edit-section-modal-HihKbN6K.esm.js → edit-section-modal-BW-aZmUv.esm.js} +2 -2
- package/dist/chunks/edit-section-modal-BW-aZmUv.esm.js.map +1 -0
- package/dist/chunks/edit-section-modal-Br2ITvLk.js.map +1 -1
- package/dist/chunks/{filter-D9BHP_qc.esm.js → filter-COXKBEER.esm.js} +5 -5
- package/dist/chunks/{filter-D9BHP_qc.esm.js.map → filter-COXKBEER.esm.js.map} +1 -1
- package/dist/chunks/{filter-DtCrOG6W.js → filter-Cr_OSIpb.js} +3 -3
- package/dist/chunks/{filter-DtCrOG6W.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-Bv5NOAf9.esm.js → footer-m3_dlNl8.esm.js} +2 -2
- package/dist/chunks/{footer-Bv5NOAf9.esm.js.map → footer-m3_dlNl8.esm.js.map} +1 -1
- package/dist/chunks/{form-fields-Di-p9XKG.esm.js → form-fields-hMMnB_wE.esm.js} +2 -2
- package/dist/chunks/{form-fields-Di-p9XKG.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-ZQpEVrzG.esm.js → form-parser-DbnSn5eY.esm.js} +2 -2
- package/dist/chunks/{form-parser-ZQpEVrzG.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-BJ7Iqb9R.esm.js → form-section-TMjdOVeW.esm.js} +5 -5
- package/dist/chunks/{form-section-BJ7Iqb9R.esm.js.map → form-section-TMjdOVeW.esm.js.map} +1 -1
- package/dist/chunks/{fullScreen-h0JqBN4O.js → fullScreen-BLLa9ogA.js} +5 -5
- package/dist/chunks/fullScreen-BLLa9ogA.js.map +1 -0
- package/dist/chunks/{fullScreen-Cz3FIdU4.esm.js → fullScreen-DFgzE41_.esm.js} +5 -5
- package/dist/chunks/fullScreen-DFgzE41_.esm.js.map +1 -0
- package/dist/chunks/{global-search-CGmupYFQ.esm.js → global-search-BOkxXiZ0.esm.js} +3 -3
- package/dist/chunks/{global-search-CGmupYFQ.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/{grid-view-BMfleQMC.esm.js → grid-view-Bo86x7YL.esm.js} +2 -2
- package/dist/chunks/{grid-view-BMfleQMC.esm.js.map → grid-view-Bo86x7YL.esm.js.map} +1 -1
- package/dist/chunks/{header-BnVzqpGs.esm.js → header-B-HaoeK7.esm.js} +10 -12
- package/dist/chunks/{header-BnVzqpGs.esm.js.map → header-B-HaoeK7.esm.js.map} +1 -1
- package/dist/chunks/{header-jWPMgcy6.js → header-BHsex2As.js} +9 -11
- package/dist/chunks/{header-jWPMgcy6.js.map → header-BHsex2As.js.map} +1 -1
- package/dist/chunks/{header-enhanced-CkROCaOF.esm.js → header-enhanced-BjfqyQ1a.esm.js} +3 -3
- package/dist/chunks/{header-enhanced-CkROCaOF.esm.js.map → header-enhanced-BjfqyQ1a.esm.js.map} +1 -1
- package/dist/chunks/{header-enhanced-Dxdetx0I.js → header-enhanced-gJl4iC4m.js} +3 -3
- package/dist/chunks/{header-enhanced-Dxdetx0I.js.map → header-enhanced-gJl4iC4m.js.map} +1 -1
- package/dist/chunks/{index-BCmGHdos.esm.js → index-ALqg8b5U.esm.js} +2 -2
- package/dist/chunks/{index-BCmGHdos.esm.js.map → index-ALqg8b5U.esm.js.map} +1 -1
- package/dist/chunks/{inline-edit-fields-VOIx3qmC.esm.js → inline-edit-fields-BYhRpPcH.esm.js} +2 -2
- package/dist/chunks/{inline-edit-fields-VOIx3qmC.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-CZZFFqDc.esm.js → inventory-reports-title-bar-CP8FzW6A.esm.js} +3 -3
- package/dist/chunks/{inventory-reports-title-bar-CZZFFqDc.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-BTHf6ZvN.esm.js → item-response-details-SHSD-nBh.esm.js} +4 -4
- package/dist/chunks/{item-response-details-BTHf6ZvN.esm.js.map → item-response-details-SHSD-nBh.esm.js.map} +1 -1
- package/dist/chunks/{listing-ELQeM6S3.esm.js → listing-C0Yb6MVq.esm.js} +4 -4
- package/dist/chunks/{listing-ELQeM6S3.esm.js.map → listing-C0Yb6MVq.esm.js.map} +1 -1
- package/dist/chunks/{listing-Dr_1DDBr.js → listing-DIuzQrzb.js} +4 -4
- package/dist/chunks/{listing-Dr_1DDBr.js.map → listing-DIuzQrzb.js.map} +1 -1
- package/dist/chunks/{location-select-z1C88kCy.esm.js → location-select-CFa00fy4.esm.js} +2 -2
- package/dist/chunks/{location-select-z1C88kCy.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-DyGdqNkX.esm.js → material-editable-table-pAyK7KYf.esm.js} +4 -4
- package/dist/chunks/{material-editable-table-DyGdqNkX.esm.js.map → material-editable-table-pAyK7KYf.esm.js.map} +1 -1
- package/dist/chunks/{module-reducer-CEv3LZCX.esm.js → module-reducer-DMxxForv.esm.js} +2 -2
- package/dist/chunks/{module-reducer-CEv3LZCX.esm.js.map → module-reducer-DMxxForv.esm.js.map} +1 -1
- package/dist/chunks/{modules-enwLrpfQ.esm.js → modules-BBu2Y-K9.esm.js} +5 -5
- package/dist/chunks/{modules-enwLrpfQ.esm.js.map → modules-BBu2Y-K9.esm.js.map} +1 -1
- package/dist/chunks/{modules-DTRr7zwt.js → modules-maXT99-4.js} +5 -5
- package/dist/chunks/{modules-DTRr7zwt.js.map → modules-maXT99-4.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-CehCt5fA.esm.js → notification-menu-XAadkn-e.esm.js} +4 -4
- package/dist/chunks/{notification-menu-CehCt5fA.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-RqVevciV.esm.js → page-action-C07iGjvN.esm.js} +4 -4
- package/dist/chunks/{page-action-RqVevciV.esm.js.map → page-action-C07iGjvN.esm.js.map} +1 -1
- package/dist/chunks/{page-navigator-CuIJ0KGf.esm.js → page-navigator-8gZpp9_P.esm.js} +2 -2
- package/dist/chunks/{page-navigator-CuIJ0KGf.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-Daz-OKd_.esm.js → page-view-CokUNMBn.esm.js} +3 -3
- package/dist/chunks/{page-view-Daz-OKd_.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/{quick-approval-modal-B-jvkgue.esm.js → quick-approval-modal-CPWs8htH.esm.js} +2 -2
- package/dist/chunks/{quick-approval-modal-B-jvkgue.esm.js.map → quick-approval-modal-CPWs8htH.esm.js.map} +1 -1
- package/dist/chunks/{reducer-BOwyP0QZ.esm.js → reducer-3tSO6RW6.esm.js} +3 -3
- package/dist/chunks/{reducer-BOwyP0QZ.esm.js.map → reducer-3tSO6RW6.esm.js.map} +1 -1
- package/dist/chunks/{reducer-BMkh_0Py.esm.js → reducer-CdJ6znKF.esm.js} +3 -3
- package/dist/chunks/{reducer-BMkh_0Py.esm.js.map → reducer-CdJ6znKF.esm.js.map} +1 -1
- package/dist/chunks/{reducer-BTfG9J4W.esm.js → reducer-IsgN83rP.esm.js} +2 -2
- package/dist/chunks/{reducer-BTfG9J4W.esm.js.map → reducer-IsgN83rP.esm.js.map} +1 -1
- package/dist/chunks/{reducer-CD1VDqeT.esm.js → reducer-sgaK2vfW.esm.js} +2 -2
- package/dist/chunks/{reducer-CD1VDqeT.esm.js.map → reducer-sgaK2vfW.esm.js.map} +1 -1
- package/dist/chunks/{reducer-BWiX5vxL.esm.js → reducer-yyZtsg1A.esm.js} +2 -2
- package/dist/chunks/{reducer-BWiX5vxL.esm.js.map → reducer-yyZtsg1A.esm.js.map} +1 -1
- package/dist/chunks/{reports-title-bar-Kl8XQe-K.esm.js → reports-title-bar-Cay4E8SQ.esm.js} +4 -4
- package/dist/chunks/{reports-title-bar-Kl8XQe-K.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-D6-7jBQT.esm.js → route-page-map-DkWoisiB.esm.js} +133 -76
- package/dist/chunks/{route-page-map-D6-7jBQT.esm.js.map → route-page-map-DkWoisiB.esm.js.map} +1 -1
- package/dist/chunks/{route-page-map-CzFUh-SC.js → route-page-map-Dn-SAbdf.js} +60 -3
- package/dist/chunks/{route-page-map-CzFUh-SC.js.map → route-page-map-Dn-SAbdf.js.map} +1 -1
- package/dist/chunks/{routes-D9y_XQRu.esm.js → routes-CAc76Zan.esm.js} +4 -4
- package/dist/chunks/{routes-D9y_XQRu.esm.js.map → routes-CAc76Zan.esm.js.map} +1 -1
- package/dist/chunks/{routes-Dsumzjw0.js → routes-CfqLAYgR.js} +4 -4
- package/dist/chunks/{routes-Dsumzjw0.js.map → routes-CfqLAYgR.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-CJXHVZ68.esm.js → schedule-report-CLXjjfjc.esm.js} +6 -6
- package/dist/chunks/{schedule-report-CJXHVZ68.esm.js.map → schedule-report-CLXjjfjc.esm.js.map} +1 -1
- package/dist/chunks/{schedule-report-modal-D8Y-TZ4u.esm.js → schedule-report-modal-CB3G9H7x.esm.js} +3 -3
- package/dist/chunks/{schedule-report-modal-D8Y-TZ4u.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-BQtcqBKV.esm.js → searchable-select-0F6E4XAr.esm.js} +6 -6
- package/dist/chunks/{searchable-select-BQtcqBKV.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-BOyLBawK.esm.js → share-modal-BaEyZs2h.esm.js} +3 -3
- package/dist/chunks/{share-modal-BOyLBawK.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-CTp-tQw8.esm.js → share-modal-enhanced-DnEdDBmu.esm.js} +2 -2
- package/dist/chunks/{share-modal-enhanced-CTp-tQw8.esm.js.map → share-modal-enhanced-DnEdDBmu.esm.js.map} +1 -1
- package/dist/chunks/{sidebarScreen-lR6rw8bW.esm.js → sidebarScreen-DiOAiXeU.esm.js} +4 -4
- package/dist/chunks/{sidebarScreen-lR6rw8bW.esm.js.map → sidebarScreen-DiOAiXeU.esm.js.map} +1 -1
- package/dist/chunks/{sidebarScreen-K-dlM6NA.js → sidebarScreen-DpYj_wlK.js} +3 -3
- package/dist/chunks/{sidebarScreen-K-dlM6NA.js.map → sidebarScreen-DpYj_wlK.js.map} +1 -1
- package/dist/chunks/{store-DJh8C3Vv.esm.js → store-BL5VFPie.esm.js} +6 -6
- package/dist/chunks/{store-DJh8C3Vv.esm.js.map → store-BL5VFPie.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-form-8_f3FwhX.esm.js → table-form-DsTwCUcs.esm.js} +2 -2
- package/dist/chunks/{table-form-8_f3FwhX.esm.js.map → table-form-DsTwCUcs.esm.js.map} +1 -1
- package/dist/chunks/{table-DI3MyTNm.esm.js → table-gxAlAeTq.esm.js} +3 -3
- package/dist/chunks/{table-DI3MyTNm.esm.js.map → table-gxAlAeTq.esm.js.map} +1 -1
- package/dist/chunks/{template-editor-router-uzghBOap.esm.js → template-editor-router-BXLUTvsk.esm.js} +2 -2
- package/dist/chunks/{template-editor-router-uzghBOap.esm.js.map → template-editor-router-BXLUTvsk.esm.js.map} +1 -1
- package/dist/chunks/{template-editor-router-DugWbCh0.js → template-editor-router-D4NIwVws.js} +2 -2
- package/dist/chunks/{template-editor-router-DugWbCh0.js.map → template-editor-router-D4NIwVws.js.map} +1 -1
- package/dist/chunks/{template-modal-D7aLacan.esm.js → template-modal-B2VgotrF.esm.js} +6 -7
- package/dist/chunks/template-modal-B2VgotrF.esm.js.map +1 -0
- package/dist/chunks/{template-modal-Df7gF4QI.js → template-modal-X-iSmlki.js} +4 -5
- package/dist/chunks/template-modal-X-iSmlki.js.map +1 -0
- package/dist/chunks/{template-name-modal-ClreVUaz.js → template-name-modal-CeqxIE2r.js} +5 -12
- package/dist/chunks/template-name-modal-CeqxIE2r.js.map +1 -0
- package/dist/chunks/{template-name-modal-Dwe7U72p.esm.js → template-name-modal-Dctn8t3t.esm.js} +5 -12
- package/dist/chunks/template-name-modal-Dctn8t3t.esm.js.map +1 -0
- package/dist/chunks/{templates-9ZMHwRR6.esm.js → templates-CCy1eG6A.esm.js} +17 -10
- package/dist/chunks/templates-CCy1eG6A.esm.js.map +1 -0
- package/dist/chunks/{templates-DCXbeOtH.js → templates-CUREMwYo.js} +14 -7
- package/dist/chunks/templates-CUREMwYo.js.map +1 -0
- package/dist/chunks/{text-measurement-DMVkqP6b.esm.js → text-measurement-BCjauPbB.esm.js} +2 -2
- package/dist/chunks/{text-measurement-DMVkqP6b.esm.js.map → text-measurement-BCjauPbB.esm.js.map} +1 -1
- package/dist/chunks/{translations-JcE6qyDJ.esm.js → translations-BrwQcVN3.esm.js} +3 -3
- package/dist/chunks/{translations-JcE6qyDJ.esm.js.map → translations-BrwQcVN3.esm.js.map} +1 -1
- package/dist/chunks/{uom-field-wrapper-CWTsSsSi.esm.js → uom-field-wrapper-CTbEc-MB.esm.js} +2 -2
- package/dist/chunks/{uom-field-wrapper-CWTsSsSi.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/{upload-excel-CkEQqZW2.esm.js → upload-excel-BZPP13tP.esm.js} +2 -2
- package/dist/chunks/{upload-excel-CkEQqZW2.esm.js.map → upload-excel-BZPP13tP.esm.js.map} +1 -1
- package/dist/chunks/{use-translations-Cn3b4Kqh.js → use-translations-5wUQBxMm.js} +2 -2
- package/dist/chunks/{use-translations-Cn3b4Kqh.js.map → use-translations-5wUQBxMm.js.map} +1 -1
- package/dist/chunks/{use-translations-BqBPN1DM.esm.js → use-translations-CcjSFA3F.esm.js} +3 -3
- package/dist/chunks/{use-translations-BqBPN1DM.esm.js.map → use-translations-CcjSFA3F.esm.js.map} +1 -1
- package/dist/chunks/{useAccountSetting-DsU5zsjb.esm.js → useAccountSetting-vAqgEiJB.esm.js} +2 -2
- package/dist/chunks/{useAccountSetting-DsU5zsjb.esm.js.map → useAccountSetting-vAqgEiJB.esm.js.map} +1 -1
- package/dist/chunks/{useCheckSkuAndName-5ua30aZf.esm.js → useCheckSkuAndName-Dl24wQO-.esm.js} +2 -2
- package/dist/chunks/{useCheckSkuAndName-5ua30aZf.esm.js.map → useCheckSkuAndName-Dl24wQO-.esm.js.map} +1 -1
- package/dist/chunks/{useReduxIntegration-BlLpfwk6.esm.js → useReduxIntegration-DZBfKF7d.esm.js} +2 -2
- package/dist/chunks/{useReduxIntegration-BlLpfwk6.esm.js.map → useReduxIntegration-DZBfKF7d.esm.js.map} +1 -1
- package/dist/chunks/{useUniquenessCheck-CiR2q5bM.esm.js → useUniquenessCheck-bYjnp_0P.esm.js} +2 -2
- package/dist/chunks/{useUniquenessCheck-CiR2q5bM.esm.js.map → useUniquenessCheck-bYjnp_0P.esm.js.map} +1 -1
- package/dist/chunks/{useVendorAICompare-DMJvJJ3Y.esm.js → useVendorAICompare-DZRFDk4i.esm.js} +2 -2
- package/dist/chunks/{useVendorAICompare-DMJvJJ3Y.esm.js.map → useVendorAICompare-DZRFDk4i.esm.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-BxFdnUyM.esm.js → value-editor-DQ1qgZ2u.esm.js} +4 -4
- package/dist/chunks/{value-editor-BxFdnUyM.esm.js.map → value-editor-DQ1qgZ2u.esm.js.map} +1 -1
- package/dist/chunks/{vendor-ai-summary-Cpx90QOx.esm.js → vendor-ai-summary-BA6m2dH9.esm.js} +2 -2
- package/dist/chunks/{vendor-ai-summary-Cpx90QOx.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/ai-summary/ai-summary/index.esm.js +1 -1
- package/dist/components/ai-summary/index.esm.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/approval-wrapper/approval-wrapper/index.esm.js +1 -1
- package/dist/components/approval-wrapper/index.esm.js +1 -1
- package/dist/components/chat-bot/index.esm.js +1 -1
- package/dist/components/chat-bot/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/grid-view/grid-view/index.esm.js +1 -1
- package/dist/components/custom-forms/grid-view/index.esm.js +1 -1
- package/dist/components/custom-forms/index.esm.js +2 -2
- 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/editor/custom-editor/index.esm.js +1 -1
- package/dist/components/editor/index.esm.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/dynamic-text-editor/index.esm.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 +4 -4
- 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 +4 -4
- 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 +6 -6
- 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 +5 -5
- package/dist/components/header/index.js +3 -3
- package/dist/components/header/redux/actionCreator/index.esm.js +1 -1
- package/dist/components/header/redux/index.esm.js +2 -2
- package/dist/components/header/redux/reducer/index.esm.js +1 -1
- package/dist/components/index.esm.js +36 -36
- package/dist/components/index.js +27 -27
- package/dist/components/inventory-reports-title-bar/index.esm.js +3 -3
- 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/inventory-reports-title-bar/redux/actionCreator/index.esm.js +1 -1
- package/dist/components/inventory-reports-title-bar/redux/index.esm.js +2 -2
- package/dist/components/inventory-reports-title-bar/redux/reducer/index.esm.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/providers/ERPUIProvider/index.esm.js +1 -1
- package/dist/components/providers/index.esm.js +1 -1
- package/dist/components/quick-approval-modal/index.esm.js +1 -1
- package/dist/components/quick-approval-modal/quick-approval-modal/index.esm.js +1 -1
- package/dist/components/reports/dynamic-report/dynamic-report/index.esm.js +1 -1
- package/dist/components/reports/dynamic-report/dynamic-rows/index.esm.js +1 -1
- package/dist/components/reports/dynamic-report/index.esm.js +2 -2
- package/dist/components/reports/index.esm.js +2 -2
- package/dist/components/reports-title-bar/index.esm.js +3 -3
- package/dist/components/reports-title-bar/index.js +1 -1
- package/dist/components/reports-title-bar/redux/actionCreator/index.esm.js +1 -1
- package/dist/components/reports-title-bar/redux/index.esm.js +2 -2
- package/dist/components/reports-title-bar/redux/reducer/index.esm.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/schedule-report/utils/common/index.esm.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 +4 -4
- package/dist/components/share-modal/index.js +2 -2
- package/dist/components/share-modal/redux/actionCreator/index.esm.js +1 -1
- package/dist/components/share-modal/redux/index.esm.js +2 -2
- package/dist/components/share-modal/redux/reducer/index.esm.js +1 -1
- 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/upload-excel/index.esm.js +1 -1
- package/dist/components/upload-excel/upload-excel/index.esm.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 +6 -6
- 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/hooks/useAccountSetting/index.esm.js +1 -1
- package/dist/hooks/useCheckSkuAndName/index.esm.js +1 -1
- package/dist/hooks/useReduxIntegration/index.esm.js +1 -1
- package/dist/hooks/useUniquenessCheck/index.esm.js +1 -1
- package/dist/images/index.esm.js +5 -5
- package/dist/images/index.esm.js.map +1 -1
- package/dist/images/index.js +5 -5
- package/dist/images/index.js.map +1 -1
- package/dist/index.esm.js +232 -235
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +64 -67
- 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/redux/index.esm.js +3 -3
- package/dist/runtime/index.esm.js +4 -4
- package/dist/runtime/index.js +2 -2
- package/dist/src/components/chat-bot/chat-bot-welcome.d.ts +2 -1
- package/dist/src/components/chat-bot/chat-bot.d.ts +5 -1
- package/dist/src/constants/defaultColumns.d.ts +1 -0
- package/dist/src/constants/pathnames/pathname.procurement.d.ts +4 -0
- package/dist/src/layout/fullScreen/fullScreen.d.ts +1 -0
- package/dist/src/views/template-editor/components/EditorCanvas.d.ts +12 -30
- package/dist/src/views/template-editor/components/EditorHeader.d.ts +0 -6
- package/dist/src/views/template-editor/components/EditorSection.d.ts +0 -1
- package/dist/src/views/template-editor/components/SectionFlowEditor.d.ts +3 -2
- package/dist/src/views/template-editor/components/SectionFormatPanel.d.ts +1 -2
- package/dist/src/views/template-editor/components/controllers/TableControls.d.ts +0 -23
- package/dist/src/views/template-editor/components/controllers/TextControls.d.ts +0 -3
- package/dist/src/views/template-editor/types/editor.d.ts +108 -20
- package/dist/src/views/template-editor/utils/common.d.ts +1 -10
- package/dist/src/views/template-editor/utils/constant.d.ts +1 -4
- package/dist/style.css +100 -4629
- package/dist/utils/api/index.esm.js +1 -1
- package/dist/utils/common/index.esm.js +1 -1
- package/dist/utils/common-utility/index.esm.js +1 -1
- 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/utils/index.esm.js +8 -8
- package/dist/utils/server/index.esm.js +2 -2
- package/dist/utils/text-measurement/index.esm.js +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/element-edit-forms/index.esm.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 +5 -5
- package/dist/views/form-builder/index.js +3 -3
- package/dist/views/form-builder/redux/index.esm.js +1 -1
- 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 +34 -39
- package/dist/views/index.esm.js.map +1 -1
- package/dist/views/index.js +31 -36
- package/dist/views/index.js.map +1 -1
- 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 +6 -7
- package/dist/views/template-editor/components/index.esm.js.map +1 -1
- package/dist/views/template-editor/components/index.js +3 -4
- package/dist/views/template-editor/components/index.js.map +1 -1
- package/dist/views/template-editor/edit-section-modal/index.esm.js +1 -1
- package/dist/views/template-editor/index.esm.js +20 -25
- package/dist/views/template-editor/index.esm.js.map +1 -1
- package/dist/views/template-editor/index.js +11 -16
- package/dist/views/template-editor/index.js.map +1 -1
- 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/template-modal/index.esm.js +1 -1
- package/dist/views/template-editor/template-modal/index.js +1 -1
- package/dist/views/template-editor/template-name-modal/index.esm.js +1 -1
- package/dist/views/template-editor/template-name-modal/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/dist/views/template-editor/utils/index.esm.js +6 -10
- package/dist/views/template-editor/utils/index.js +2 -6
- package/dist/views/template-editor/utils/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunks/EditorSection-BLGcgQFm.esm.js +0 -849
- package/dist/chunks/EditorSection-BLGcgQFm.esm.js.map +0 -1
- package/dist/chunks/EditorSection-D6yaBfjP.js +0 -848
- package/dist/chunks/EditorSection-D6yaBfjP.js.map +0 -1
- package/dist/chunks/SectionFlowEditor-Dp-mjWT9.esm.js +0 -12543
- package/dist/chunks/SectionFlowEditor-Dp-mjWT9.esm.js.map +0 -1
- package/dist/chunks/SectionFlowEditor-Dz1SuCm2.js +0 -12542
- package/dist/chunks/SectionFlowEditor-Dz1SuCm2.js.map +0 -1
- package/dist/chunks/add-template-CUPbU0z7.js +0 -10
- package/dist/chunks/add-template-CUPbU0z7.js.map +0 -1
- package/dist/chunks/add-template-CxvhzFMF.esm.js +0 -11
- package/dist/chunks/add-template-CxvhzFMF.esm.js.map +0 -1
- package/dist/chunks/chat-bot-2Ga_xA_K.js.map +0 -1
- package/dist/chunks/chat-bot-DO3vAGxA.esm.js.map +0 -1
- package/dist/chunks/common-BgXEAs_y.esm.js +0 -851
- package/dist/chunks/common-BgXEAs_y.esm.js.map +0 -1
- package/dist/chunks/common-D6T6NGWY.js +0 -850
- package/dist/chunks/common-D6T6NGWY.js.map +0 -1
- package/dist/chunks/common-utility-CS_sNoAC.esm.js.map +0 -1
- package/dist/chunks/constant-BXPcBhJN.esm.js.map +0 -1
- package/dist/chunks/constant-BXeJD4Af.js.map +0 -1
- package/dist/chunks/edit-section-modal-HihKbN6K.esm.js.map +0 -1
- package/dist/chunks/fullScreen-Cz3FIdU4.esm.js.map +0 -1
- package/dist/chunks/fullScreen-h0JqBN4O.js.map +0 -1
- package/dist/chunks/template-modal-D7aLacan.esm.js.map +0 -1
- package/dist/chunks/template-modal-Df7gF4QI.js.map +0 -1
- package/dist/chunks/template-name-modal-ClreVUaz.js.map +0 -1
- package/dist/chunks/template-name-modal-Dwe7U72p.esm.js.map +0 -1
- package/dist/chunks/templates-9ZMHwRR6.esm.js.map +0 -1
- package/dist/chunks/templates-DCXbeOtH.js.map +0 -1
- package/dist/src/views/template-editor/components/EditorCanvas/FreeCanvas.d.ts +0 -34
- package/dist/src/views/template-editor/components/EditorCanvas/FreeElement.d.ts +0 -30
- package/dist/src/views/template-editor/components/stationery/StationeryPreview.d.ts +0 -24
- package/dist/src/views/template-editor/components/stationery/StationerySidebar.d.ts +0 -9
- package/dist/src/views/template-editor/engine/ai.d.ts +0 -12
- package/dist/src/views/template-editor/engine/app.d.ts +0 -1
- package/dist/src/views/template-editor/engine/controls.d.ts +0 -4
- package/dist/src/views/template-editor/engine/design-canvas.d.ts +0 -24
- package/dist/src/views/template-editor/engine/editor.d.ts +0 -17
- package/dist/src/views/template-editor/engine/engine.d.ts +0 -18
- package/dist/src/views/template-editor/engine/icons.d.ts +0 -91
- package/dist/src/views/template-editor/engine/letterpads.d.ts +0 -1
- package/dist/src/views/template-editor/engine/model.d.ts +0 -20
- package/dist/src/views/template-editor/engine/paginator.d.ts +0 -30
- package/dist/src/views/template-editor/engine/picker.d.ts +0 -20
- package/dist/src/views/template-editor/engine/schema.d.ts +0 -647
- package/dist/src/views/template-editor/engine/stationery-app.d.ts +0 -10
- package/dist/src/views/template-editor/engine/stationery-doc.d.ts +0 -62
- package/dist/src/views/template-editor/engine/stationery-free-element.d.ts +0 -22
- package/dist/src/views/template-editor/engine/stationery-store.d.ts +0 -154
- package/dist/src/views/template-editor/engine/templatebuilder.d.ts +0 -51
- package/dist/src/views/template-editor/engine/templates.d.ts +0 -11
- package/dist/src/views/template-editor/icons/custom-styled-icon.d.ts +0 -7
- package/dist/src/views/template-editor/icons/edit.d.ts +0 -4
- package/dist/src/views/template-editor/icons/trash.d.ts +0 -4
- package/dist/src/views/template-editor/types/stationery.d.ts +0 -66
- package/dist/src/views/template-editor/utils/compiler.d.ts +0 -12
package/dist/chunks/{template-editor-router-DugWbCh0.js → template-editor-router-D4NIwVws.js}
RENAMED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const reactRouterDom = require("react-router-dom");
|
|
3
|
-
const routes = require("./routes-
|
|
3
|
+
const routes = require("./routes-CfqLAYgR.js");
|
|
4
4
|
function TemplateEditorRouter({ modulePath, module: module2 }) {
|
|
5
5
|
return reactRouterDom.useRoutes(routes.templateEditorRoutes(modulePath, module2));
|
|
6
6
|
}
|
|
7
7
|
exports.TemplateEditorRouter = TemplateEditorRouter;
|
|
8
|
-
//# sourceMappingURL=template-editor-router-
|
|
8
|
+
//# sourceMappingURL=template-editor-router-D4NIwVws.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-editor-router-
|
|
1
|
+
{"version":3,"file":"template-editor-router-D4NIwVws.js","sources":["../../src/views/template-editor/template-editor-router.tsx"],"sourcesContent":["import { useRoutes } from \"react-router-dom\";\nimport { templateEditorRoutes } from \"./routes\";\n\ninterface Props {\n\tmodulePath: string;\n\tmodule: string;\n}\n\nexport default function TemplateEditorRouter({ modulePath, module }: Props) {\n\treturn useRoutes(templateEditorRoutes(modulePath, module));\n}\n"],"names":["module","useRoutes","templateEditorRoutes"],"mappings":";;;AAQA,SAAwB,qBAAqB,EAAE,YAAY,QAAAA,WAAiB;AAC3E,SAAOC,yBAAUC,OAAAA,qBAAqB,YAAYF,OAAM,CAAC;AAC1D;;"}
|
|
@@ -4,8 +4,8 @@ import { Box, Skeleton, Fade, Tooltip, IconButton, Divider, DialogTitle, MenuIte
|
|
|
4
4
|
import Close from "@mui/icons-material/Close";
|
|
5
5
|
import { T as Typography } from "./typography-CG_A0iOJ.esm.js";
|
|
6
6
|
import { M as Modal } from "./modal-DCla9U60.esm.js";
|
|
7
|
-
import { v as getV1Templates, w as patchV1TemplatesIdSetDefault, x as deleteV1TemplatesId } from "./api-
|
|
8
|
-
import { ab as getToken, W as getErrorMessage } from "./api-
|
|
7
|
+
import { v as getV1Templates, w as patchV1TemplatesIdSetDefault, x as deleteV1TemplatesId } from "./api-DBmWILBN.esm.js";
|
|
8
|
+
import { ab as getToken, W as getErrorMessage } from "./api-BIVCMSwW.esm.js";
|
|
9
9
|
import { B as Button } from "./button-BtdpXmjA.esm.js";
|
|
10
10
|
import { useNavigate } from "react-router-dom";
|
|
11
11
|
import { enqueueSnackbar } from "notistack";
|
|
@@ -569,8 +569,8 @@ const TemplateModal = ({ email, onClose, open, companies = [], templateRoutes, s
|
|
|
569
569
|
const handleClose = () => {
|
|
570
570
|
onClose();
|
|
571
571
|
};
|
|
572
|
-
const handleViewTemplate = (
|
|
573
|
-
navigate(templateRoutes.EDIT_TEMPLATE(email._id,
|
|
572
|
+
const handleViewTemplate = () => {
|
|
573
|
+
navigate(templateRoutes.EDIT_TEMPLATE(email._id, selectedTemplate), {
|
|
574
574
|
state: { company_id: selectedCompany, isViewOnly: true, fromPreview: true }
|
|
575
575
|
});
|
|
576
576
|
};
|
|
@@ -579,7 +579,7 @@ const TemplateModal = ({ email, onClose, open, companies = [], templateRoutes, s
|
|
|
579
579
|
const template = templates.find((t) => (t == null ? void 0 : t._id) === id);
|
|
580
580
|
setSelectedTemplateForPreview(template);
|
|
581
581
|
setSelectedTemplate(id);
|
|
582
|
-
handleViewTemplate(
|
|
582
|
+
handleViewTemplate();
|
|
583
583
|
} else {
|
|
584
584
|
setSelectedTemplate(id);
|
|
585
585
|
}
|
|
@@ -600,7 +600,6 @@ const TemplateModal = ({ email, onClose, open, companies = [], templateRoutes, s
|
|
|
600
600
|
try {
|
|
601
601
|
await patchV1TemplatesIdSetDefault({ ...getToken(), id: selectedTemplate });
|
|
602
602
|
enqueueSnackbar("Template has been set as default");
|
|
603
|
-
await getTemplatesViaSubject();
|
|
604
603
|
} catch (error) {
|
|
605
604
|
const m = getErrorMessage(error == null ? void 0 : error.message);
|
|
606
605
|
enqueueSnackbar(m, { variant: "error" });
|
|
@@ -767,4 +766,4 @@ export {
|
|
|
767
766
|
HtmlThumbnailPreview as H,
|
|
768
767
|
TemplateModal as T
|
|
769
768
|
};
|
|
770
|
-
//# sourceMappingURL=template-modal-
|
|
769
|
+
//# sourceMappingURL=template-modal-B2VgotrF.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-modal-B2VgotrF.esm.js","sources":["../../src/views/template-editor/template-modal/html-thumbnail-preview.tsx","../../src/views/template-editor/template-modal/html-thumbnail-preview-full.tsx","../../src/views/template-editor/template-modal/template-modal.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable unused-imports/no-unused-vars */\nimport React, { useState, useRef, useEffect, useCallback } from 'react';\nimport { Box, Skeleton, IconButton, Tooltip, Divider, Fade } from '@mui/material';\nimport { ZoomIn, ZoomOut, Refresh } from '@mui/icons-material';\nimport { Trash } from '../../../components/icons';\nimport Typography from '../../../components/typography/typography';\n\nconst HtmlThumbnailPreview = ({ \n template, \n width = 300, \n height = 200, \n scale = 0.25,\n showControls = false,\n onClick = null,\n selectedTemplateId = '',\n isFetching = false,\n onDelete,\n minScale = 0.1,\n maxScale = 1,\n scaleStep = 1.2,\n loadingDelay = 500,\n refreshDelay = 300,\n normalView = false,\n}) => {\n const [isLoading, setIsLoading] = useState(isFetching || true);\n const [currentScale, setCurrentScale] = useState(scale);\n const [error, setError] = useState(null);\n const [isHovered, setIsHovered] = useState(false);\n const containerRef = useRef(null);\n const contentRef = useRef(null);\n const loadingTimeoutRef = useRef(null);\n const refreshTimeoutRef = useRef(null);\n\n // Calculate dimensions based on scale\n const scaledWidth = width / currentScale;\n const scaledHeight = height / currentScale;\n\n // Cleanup timeouts on unmount\n useEffect(() => {\n return () => {\n if (loadingTimeoutRef.current) {\n clearTimeout(loadingTimeoutRef.current);\n }\n if (refreshTimeoutRef.current) {\n clearTimeout(refreshTimeoutRef.current);\n }\n };\n }, []);\n\n // Handle initial loading\n useEffect(() => {\n if (loadingTimeoutRef.current) {\n clearTimeout(loadingTimeoutRef.current);\n }\n \n loadingTimeoutRef.current = setTimeout(() => {\n setIsLoading(false);\n }, loadingDelay);\n\n return () => {\n if (loadingTimeoutRef.current) {\n clearTimeout(loadingTimeoutRef.current);\n }\n };\n }, [template.contents, loadingDelay]);\n\n // Handle external loading state\n useEffect(() => {\n setIsLoading(isFetching);\n }, [isFetching]);\n\n // Memoized event handlers\n const handleZoomIn = useCallback(() => {\n setCurrentScale(prev => Math.min(prev * scaleStep, maxScale));\n }, [scaleStep, maxScale]);\n\n const handleZoomOut = useCallback(() => {\n setCurrentScale(prev => Math.max(prev / scaleStep, minScale));\n }, [scaleStep, minScale]);\n\n const handleRefresh = useCallback(() => {\n setIsLoading(true);\n setError(null);\n \n if (refreshTimeoutRef.current) {\n clearTimeout(refreshTimeoutRef.current);\n }\n \n refreshTimeoutRef.current = setTimeout(() => {\n setIsLoading(false);\n }, refreshDelay);\n }, [refreshDelay]);\n\n const handleClick = useCallback(() => {\n if (onClick && !isLoading) {\n onClick(template);\n }\n }, [onClick, template, isLoading]);\n\n const handleDelete = useCallback((e) => {\n e.stopPropagation(); // Prevent triggering onClick\n if (onDelete && !template?.is_default) {\n onDelete(template);\n }\n }, [onDelete, template]);\n\n const handleMouseEnter = useCallback(() => {\n setIsHovered(true);\n }, []);\n\n const handleMouseLeave = useCallback(() => {\n setIsHovered(false);\n }, []);\n\n // Loading state\n if (isLoading) {\n return (\n <Box \n sx={{ \n width, \n height,\n borderRadius: 1,\n overflow: 'hidden',\n border: '1px solid',\n borderColor: 'divider'\n }}\n >\n <Skeleton \n variant=\"rectangular\" \n width=\"100%\" \n height=\"100%\" \n animation=\"wave\"\n />\n </Box>\n );\n }\n\n // Error state\n if (error) {\n return (\n <Box \n sx={{ \n width, \n height,\n borderRadius: 1,\n overflow: 'hidden',\n border: '1px solid',\n borderColor: 'error.main',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: 'error.light',\n color: 'error.contrastText'\n }}\n >\n Failed to load template\n </Box>\n );\n }\n\n const isSelected = selectedTemplateId === template._id;\n const canZoomIn = currentScale < maxScale;\n const canZoomOut = currentScale > minScale;\n const canDelete = !template?.is_default;\n\n return (\n <Box \n sx={{ position: 'relative', display: 'inline-block' }}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n {/* Main Container */}\n <Box\n ref={containerRef}\n onClick={handleClick}\n sx={(theme) => ({\n width,\n height,\n border: '1px solid',\n borderRadius: 1,\n overflow: 'hidden',\n position: 'relative',\n cursor: onClick ? 'pointer' : 'default',\n backgroundColor: '#fff',\n // boxShadow: '0 2px 8px rgba(0,0,0,0.1)',\n transition: 'all 0.2s ease-in-out',\n '&:hover': onClick ? {\n boxShadow: '0 4px 16px rgba(0,0,0,0.15)',\n transform: 'translateY(-1px)',\n } : {},\n borderColor: normalView && isSelected ? theme.palette.theme.primary[800] : 'grey.300',\n borderWidth: isSelected ? 2 : 1,\n })}\n >\n {/* Scaled Content Wrapper */}\n <Box\n sx={{\n width: scaledWidth,\n height: scaledHeight,\n transform: `scale(${currentScale})`,\n transformOrigin: 'top left',\n position: 'absolute',\n top: 0,\n left: 0,\n overflow: 'hidden',\n }}\n >\n {/* HTML Content */}\n <Box\n ref={contentRef}\n sx={{\n width: '100%',\n height: '100%',\n userSelect: 'none',\n pointerEvents: 'none',\n pt: 2,\n '& *': {\n maxWidth: '100% !important',\n boxSizing: 'border-box !important',\n },\n // Reset common problematic styles\n '& body': {\n margin: '0 !important',\n padding: '0 !important',\n overflow: 'hidden !important',\n },\n // Handle images\n '& img': {\n maxWidth: '100% !important',\n height: 'auto !important',\n },\n // Handle tables\n '& table': {\n width: '100% !important',\n tableLayout: 'fixed !important',\n },\n // Prevent absolute positioning issues\n '& *[style*=\"position: absolute\"]': {\n position: 'relative !important',\n },\n '& .email-container': {\n width: '85% !important',\n }\n }}\n dangerouslySetInnerHTML={{ __html: template.contents }}\n />\n </Box>\n\n {/* Loading Overlay */}\n {isLoading && (\n <Box\n sx={{\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'rgba(255,255,255,0.8)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n zIndex: 2,\n }}\n >\n <Skeleton variant=\"rectangular\" width=\"90%\" height=\"90%\" />\n </Box>\n )}\n\n {/* Selection Indicator */}\n {template?.is_default && (\n <Box\n sx={(theme) => ({\n position: 'absolute',\n top: 8,\n left: 8,\n width: 12,\n height: 12,\n borderRadius: '50%',\n backgroundColor: theme.palette.theme?.primary[800],\n zIndex: 3,\n })}\n />\n )}\n </Box>\n {template?.name && <Typography type='s3' weight='medium' color='theme.secondary.1000' align='center' sx={{width, mt:0.5}}>{template?.name}</Typography>}\n\n {/* Hover Controls */}\n {showControls && (\n <Fade in={isHovered} timeout={200}>\n <Box\n sx={{\n position: 'absolute',\n top: -8,\n right: -8,\n display: 'flex',\n gap: 0.5,\n zIndex: 4,\n backgroundColor: 'rgba(255,255,255,0.95)',\n border: '1px solid',\n borderColor: 'grey.300',\n borderRadius: 2,\n padding: 0.5,\n boxShadow: '0 4px 12px rgba(0,0,0,0.15)',\n backdropFilter: 'blur(4px)',\n }}\n >\n <Tooltip title={`Zoom In (${Math.round(currentScale * 100)}%)`} arrow>\n <span>\n <IconButton\n size=\"small\"\n onClick={handleZoomIn}\n disabled={!canZoomIn}\n sx={{\n backgroundColor: 'transparent',\n '&:hover': { \n backgroundColor: 'primary.light',\n color: 'primary.contrastText' \n },\n '&:disabled': {\n opacity: 0.5\n }\n }}\n >\n <ZoomIn fontSize=\"small\" />\n </IconButton>\n </span>\n </Tooltip>\n\n <Divider orientation=\"vertical\" variant=\"middle\" flexItem />\n\n <Tooltip title={`Zoom Out (${Math.round(currentScale * 100)}%)`} arrow>\n <span>\n <IconButton\n size=\"small\"\n onClick={handleZoomOut}\n disabled={!canZoomOut}\n sx={{\n backgroundColor: 'transparent',\n '&:hover': { \n backgroundColor: 'primary.light',\n color: 'primary.contrastText' \n },\n '&:disabled': {\n opacity: 0.5\n }\n }}\n >\n <ZoomOut fontSize=\"small\" />\n </IconButton>\n </span>\n </Tooltip>\n\n <Divider orientation=\"vertical\" variant=\"middle\" flexItem />\n\n <Tooltip title=\"Refresh Preview\" arrow>\n <IconButton\n size=\"small\"\n onClick={handleRefresh}\n sx={{\n backgroundColor: 'transparent',\n '&:hover': { \n backgroundColor: 'primary.light',\n color: 'primary.contrastText' \n },\n }}\n >\n <Refresh fontSize=\"small\" />\n </IconButton>\n </Tooltip>\n\n {onDelete && (\n <>\n <Divider orientation=\"vertical\" variant=\"middle\" flexItem />\n <Tooltip \n title={canDelete ? \"Delete Template\" : \"Cannot delete default template\"} \n arrow\n >\n <span>\n <IconButton\n size=\"small\"\n onClick={handleDelete}\n disabled={!canDelete}\n sx={{\n backgroundColor: 'transparent',\n '&:hover': !canDelete ? {} : { \n backgroundColor: 'error.light',\n color: 'error.contrastText' \n },\n '&:disabled': {\n opacity: 0.5\n }\n }}\n >\n <Trash fontSize=\"small\" />\n </IconButton>\n </span>\n </Tooltip>\n </>\n )}\n </Box>\n </Fade>\n )}\n </Box>\n );\n};\n\nexport { HtmlThumbnailPreview };\nexport default HtmlThumbnailPreview;","/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable unused-imports/no-unused-vars */\nimport React, { useState, useRef, useEffect, useCallback } from 'react';\nimport { Box, Skeleton, IconButton, Tooltip, Divider, Fade } from '@mui/material';\nimport { ZoomIn, ZoomOut, Refresh } from '@mui/icons-material';\nimport { Trash } from '../../../components/icons';\nimport Typography from '../../../components/typography/typography';\n\ninterface HtmlThumbnailPreviewProps {\n template: any;\n width?: number | string; \n height?: number;\n scale?: number;\n showControls?: boolean;\n onClick?: (template: any) => void;\n selectedTemplateId?: string;\n isFetching?: boolean;\n onDelete?: (template: any) => void;\n normalView?: boolean;\n minScale?: number;\n maxScale?: number;\n scaleStep?: number;\n loadingDelay?: number;\n refreshDelay?: number;\n}\n\nconst HtmlThumbnailPreviewFull: React.FC<HtmlThumbnailPreviewProps> = ({\n template,\n width = '100%',\n height = 800,\n scale = 0.25,\n showControls = false,\n onClick = null,\n selectedTemplateId = '',\n isFetching = false,\n onDelete,\n normalView = false,\n minScale = 0.1,\n maxScale = 1,\n scaleStep = 1.2,\n loadingDelay = 500,\n refreshDelay = 300,\n}) => {\n const [isLoading, setIsLoading] = useState(isFetching || true);\n const [currentScale, setCurrentScale] = useState(scale);\n const [error, setError] = useState<null | string>(null);\n const [isHovered, setIsHovered] = useState(false);\n const containerRef = useRef<HTMLDivElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n const loadingTimeoutRef = useRef<any>(null);\n const refreshTimeoutRef = useRef<any>(null);\n\n const [containerPixelWidth, setContainerPixelWidth] = useState<number>(typeof width === 'number' ? width : 800);\n\n // Measure container width for responsive scaling\n useEffect(() => {\n const updateWidth = () => {\n if (containerRef.current) {\n const newWidth = containerRef.current.offsetWidth;\n setContainerPixelWidth(newWidth);\n }\n };\n updateWidth();\n window.addEventListener('resize', updateWidth);\n return () => window.removeEventListener('resize', updateWidth);\n }, []);\n\n const scaledWidth = containerPixelWidth / currentScale;\n const scaledHeight = height / currentScale;\n\n useEffect(() => {\n return () => {\n clearTimeout(loadingTimeoutRef.current);\n clearTimeout(refreshTimeoutRef.current);\n };\n }, []);\n\n useEffect(() => {\n clearTimeout(loadingTimeoutRef.current);\n loadingTimeoutRef.current = setTimeout(() => setIsLoading(false), loadingDelay);\n return () => clearTimeout(loadingTimeoutRef.current);\n }, [template.contents, loadingDelay]);\n\n useEffect(() => setIsLoading(isFetching), [isFetching]);\n\n const handleZoomIn = useCallback(() => setCurrentScale(prev => Math.min(prev * scaleStep, maxScale)), [scaleStep, maxScale]);\n const handleZoomOut = useCallback(() => setCurrentScale(prev => Math.max(prev / scaleStep, minScale)), [scaleStep, minScale]);\n const handleRefresh = useCallback(() => {\n setIsLoading(true);\n setError(null);\n clearTimeout(refreshTimeoutRef.current);\n refreshTimeoutRef.current = setTimeout(() => setIsLoading(false), refreshDelay);\n }, [refreshDelay]);\n\n const handleClick = useCallback(() => {\n if (onClick && !isLoading) onClick(template);\n }, [onClick, template, isLoading]);\n\n const handleDelete = useCallback((e: React.MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n if (onDelete && !template?.is_default) onDelete(template);\n }, [onDelete, template]);\n\n const handleMouseEnter = useCallback(() => setIsHovered(true), []);\n const handleMouseLeave = useCallback(() => setIsHovered(false), []);\n\n if (isLoading) return (\n <Box sx={{ width, height, borderRadius: 1, overflow: 'hidden', border: '1px solid', borderColor: 'divider' }}>\n <Skeleton variant=\"rectangular\" width=\"100%\" height=\"100%\" animation=\"wave\" />\n </Box>\n );\n\n if (error) return (\n <Box sx={{\n width, height, borderRadius: 1, overflow: 'hidden', border: '1px solid',\n borderColor: 'error.main', display: 'flex', alignItems: 'center', justifyContent: 'center',\n backgroundColor: 'error.light', color: 'error.contrastText'\n }}>\n Failed to load template\n </Box>\n );\n\n const isSelected = selectedTemplateId === template._id;\n const canZoomIn = currentScale < maxScale;\n const canZoomOut = currentScale > minScale;\n const canDelete = !template?.is_default;\n\n return (\n <Box\n ref={containerRef}\n sx={{ position: 'relative', width, marginInline: 'auto', display: 'inline-block' }}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n <Box\n onClick={handleClick}\n sx={(theme) => ({\n width: '100%',\n height,\n marginBlock: 0,\n overflow: 'hidden',\n position: 'relative',\n backgroundColor: '#fff',\n transition: 'all 0.2s ease-in-out',\n '&:hover': onClick ? { boxShadow: '0 4px 16px rgba(0,0,0,0.15)', transform: 'translateY(-1px)' } : {},\n })}\n >\n <Box\n sx={{\n width: '100%',\n height: '100%',\n display: 'flex',\n justifyContent: 'center', \n alignItems: 'center', \n overflow: 'auto',\n backgroundColor: '#fff',\n }}\n >\n <Box\n sx={{\n transform: `scale(${currentScale})`,\n transformOrigin: 'top left',\n pointerEvents: 'none',\n userSelect: 'none',\n width: containerPixelWidth,\n height: height,\n }}\n >\n <Box\n ref={contentRef}\n sx={{\n width: '100%',\n height: '100%',\n '& *': { maxWidth: '100% !important', boxSizing: 'border-box !important' },\n '& body': { margin: 0, padding: 0, overflow: 'hidden' },\n '& img': { maxWidth: '100% !important', height: 'auto !important' },\n '& table': { width: '100% !important', tableLayout: 'fixed !important' },\n '& *[style*=\"position: absolute\"]': { position: 'relative !important' },\n '& .email-container': { width: '85% !important' },\n }}\n dangerouslySetInnerHTML={{ __html: template.contents }}\n />\n </Box>\n </Box>\n\n {template?.is_default && (\n <Box sx={(theme) => ({ position: 'absolute', top: 8, left: 8, width: 12, height: 12, borderRadius: '50%', backgroundColor: theme.palette.theme.primary[800], zIndex: 3 })} />\n )}\n </Box>\n\n {template?.name && <Typography type='s3' weight='medium' color='theme.secondary.1000' align='center' sx={{ width, mt: 0.5 }}>{template?.name}</Typography>}\n\n {showControls && (\n <Fade in={isHovered} timeout={200}>\n <Box sx={{ position: 'absolute', top: -8, right: -8, display: 'flex', gap: 0.5, zIndex: 4, backgroundColor: 'rgba(255,255,255,0.95)', border: '1px solid', borderColor: 'grey.300', borderRadius: 2, padding: 0.5, boxShadow: '0 4px 12px rgba(0,0,0,0.15)', backdropFilter: 'blur(4px)' }}>\n <Tooltip title={`Zoom In (${Math.round(currentScale * 100)}%)`} arrow>\n <span><IconButton size=\"small\" onClick={handleZoomIn} disabled={!canZoomIn}><ZoomIn fontSize=\"small\" /></IconButton></span>\n </Tooltip>\n <Divider orientation=\"vertical\" flexItem />\n <Tooltip title={`Zoom Out (${Math.round(currentScale * 100)}%)`} arrow>\n <span><IconButton size=\"small\" onClick={handleZoomOut} disabled={!canZoomOut}><ZoomOut fontSize=\"small\" /></IconButton></span>\n </Tooltip>\n <Divider orientation=\"vertical\" flexItem />\n <Tooltip title=\"Refresh Preview\" arrow>\n <IconButton size=\"small\" onClick={handleRefresh}><Refresh fontSize=\"small\" /></IconButton>\n </Tooltip>\n {onDelete && <>\n <Divider orientation=\"vertical\" flexItem />\n <Tooltip title={canDelete ? \"Delete Template\" : \"Cannot delete default template\"} arrow>\n <span><IconButton size=\"small\" onClick={handleDelete} disabled={!canDelete}><Trash fontSize=\"small\" /></IconButton></span>\n </Tooltip>\n </>}\n </Box>\n </Fade>\n )}\n </Box>\n );\n};\n\nexport default HtmlThumbnailPreviewFull;","/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable unused-imports/no-unused-vars */\nimport React, { useEffect, useState } from 'react';\nimport { \n DialogTitle, \n DialogContent, \n DialogActions,\n IconButton,\n Box,\n MenuItem\n} from '@mui/material';\nimport CloseIcon from '@mui/icons-material/Close';\nimport Typography from '../../../components/typography/typography';\nimport Modal from '../../../components/modal/modal';\nimport { deleteV1TemplatesId, getV1Templates, patchV1TemplatesIdSetDefault } from '../../../api-client/api.system-feature/api';\nimport { getErrorMessage, getToken } from '../../../utils/common';\nimport Button from '../../../components/button/button';\n// import ModalLoader from '../../../components/loader/modal-loader';\nimport { useNavigate } from 'react-router-dom';\nimport { enqueueSnackbar } from 'notistack';\nimport Select from '../../../components/select/select';\nimport HtmlThumbnailPreview from './html-thumbnail-preview';\nimport HtmlThumbnailPreviewFull from './html-thumbnail-preview-full';\nimport ConfirmPopUp from '../../../components/confirm-modal/confirm-modal';\n\nconst TemplateModal = ({ email, onClose, open, companies = [], templateRoutes, source = 'add' }) => {\n const [templates, setTemplates] = useState([]);\n const [selectedTemplate, setSelectedTemplate] = useState('');\n const [defaultTemplate, setDefaultTemplate] = useState('');\n const [loading, setLoding] = useState(true);\n const [selectedCompany, setSelectedCompany] = React.useState<number>(companies?.[0]?.id || 0);\n const [templateToDelete, setTemplateToDelete] = React.useState<Record<string, any> | null>(null);\n const [selectedTemplateForPreview, setSelectedTemplateForPreview] = useState(null);\n\n const navigate = useNavigate();\n\n const handleClose = () => {\n onClose();\n };\n\n const handleViewTemplate = () => {\n navigate(templateRoutes.EDIT_TEMPLATE(email._id, selectedTemplate), { \n state: { company_id: selectedCompany, isViewOnly: true, fromPreview: true }\n });\n };\n\n const handleTemplateSelect = (id: any) => {\n if (source === 'view') {\n const template = templates.find((t: any) => t?._id === id);\n setSelectedTemplateForPreview(template);\n setSelectedTemplate(id);\n handleViewTemplate();\n } else {\n setSelectedTemplate(id);\n }\n }\n\n const getTemplatesViaSubject = async () => {\n setLoding(true)\n const res = await getV1Templates({ ...getToken(), filters: `(company_id.eq=${selectedCompany}&subject_id.eq=${email._id})` })\n if(res?.data) {\n const dTemplate = res?.data?.find(t => t.is_default === true)\n setDefaultTemplate(dTemplate)\n setSelectedTemplate(dTemplate?._id)\n setTemplates(res?.data)\n }\n\n setLoding(false)\n }\n\n const handleDefaultTemplate = async () => {\n try {\n await patchV1TemplatesIdSetDefault({ ...getToken(), id: selectedTemplate })\n enqueueSnackbar('Template has been set as default');\n } catch (error) {\n const m = getErrorMessage(error?.message);\n enqueueSnackbar(m, { variant: 'error' });\n }\n }\n\n const handleDeleteTemplate = async () => {\n try {\n if(templateToDelete) {\n await deleteV1TemplatesId({ ...getToken(), id: templateToDelete?._id })\n enqueueSnackbar('Template has been deleted');\n setTemplateToDelete(null)\n await getTemplatesViaSubject()\n }\n } catch (error) {\n const m = getErrorMessage(error?.message);\n enqueueSnackbar(m, { variant: 'error' });\n }\n }\n\n useEffect(() => {\n getTemplatesViaSubject()\n return () => { setLoding(true) }\n }, [selectedCompany])\n\n return (\n <div>\n <Modal \n open={open} \n onClose={handleClose} \n maxWidth=\"lg\" \n fullWidth\n aria-labelledby=\"email-template-selection\"\n sx={{\n '& .MuiDialog-paper': {\n height: '85vh',\n display: 'flex',\n flexDirection: 'column'\n }\n }}\n >\n\n {console.log(source, \"soure in modal +++++++++++++++++++++++debug\")}\n {/* {loading && <ModalLoader/>} */}\n <DialogTitle sx={{ marginBottom: '1rem', padding: '0.75rem 1rem 0.75rem 1.5rem', borderBottom: '1px solid #D3D3D4'}}>\n <Box display='flex' alignItems='center' gap={2}>\n {selectedTemplateForPreview && (\n <IconButton\n onClick={() => setSelectedTemplateForPreview(null)}\n size='small'\n sx={{ color: (theme) => theme.palette.grey[700] }}\n >\n <Typography>← Back</Typography>\n </IconButton>\n )}\n <Typography type='s1' weight='medium' color='theme.secondary.1000' sx={{ flex: 1, textAlign: 'center' }}> \n {selectedTemplateForPreview ? 'Template Preview' : (source === 'view' ? 'Template Preview' : 'Select Template')}\n </Typography>\n </Box>\n <Box display='flex' alignItems={'center'} gap={1} position='absolute' right='1%' top='4px'>\n <Typography type='s3' weight='medium' color='theme.secondary.800'> Company</Typography>\n <Select\n displayEmpty\n value={selectedCompany}\n size='small'\n renderValue={(value) => value ? companies.find((option) => option.value === value)?.label : 'Select Company'}\n // fullWidth\n // sx={{\n // bgcolor: 'white',\n // borderRadius: 1,\n // '& .MuiSelect-select': { py: 0.75 }\n // }}\n onChange={(e) => {\n if (e.target.value) {\n setSelectedCompany(e.target.value as number);\n }\n }}>\n {companies.map((option) => (\n <MenuItem key={option.value} value={option.value}>\n <Typography type='s3' color='theme.secondary.1000'>{option.label}</Typography>\n </MenuItem>\n ))}\n </Select>\n <IconButton\n aria-label=\"close\"\n onClick={handleClose}\n size='small'\n sx={{\n color: (theme) => theme.palette.grey[500],\n }}\n >\n <CloseIcon fontSize='small'/>\n </IconButton>\n </Box>\n </DialogTitle>\n \n {\n selectedTemplateForPreview ? (\n <DialogContent sx={{ display: 'flex', flexDirection: 'column', gap: 3, width: '100%', p: 3, flex: 1, overflow: 'auto', scrollbarWidth: 'none', msOverflowStyle: 'none', '&::-webkit-scrollbar': { display: 'none' } }}>\n {/* Main Preview */}\n <Box sx={{ width: '100%', display: 'flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', flexShrink: 0 }}>\n <HtmlThumbnailPreviewFull\n template={selectedTemplateForPreview}\n width={'100%'}\n height={600}\n scale={1}\n showControls={true}\n isFetching={loading}\n normalView={true}\n />\n </Box>\n </DialogContent>\n ) : (\n <DialogContent sx={{ flex: 1, overflow: 'auto', display: 'flex', flexDirection: 'column', scrollbarWidth: 'none', msOverflowStyle: 'none', '&::-webkit-scrollbar': { display: 'none' } }}>\n {/* <Grid container spacing={6}> */}\n {!templates.length && (\n // <Grid item xs={12} sx={{ minHeight: 350}}>\n <Box display='flex' alignItems='center' width='100%' height='100%' justifyContent='center'>\n {!loading && <Typography type='s1' weight='medium' color='theme.secondary.1000' sx={{ textAlign: 'center' }}>No templates found</Typography>}\n </Box>\n // </Grid>\n )}\n <Box sx={{ \n display: 'grid', \n gridTemplateColumns: 'repeat(auto-fill, minmax(300px, 1fr))', \n gap: 2, \n p: 2,\n justifyItems: 'center',\n alignItems: 'center'\n }}>\n {templates.map((template, index) => (\n <HtmlThumbnailPreview\n key={template._id || index}\n template={template}\n width={300}\n height={200}\n showControls={source === 'add'}\n selectedTemplateId={selectedTemplate}\n onClick={(template: any) => {\n handleTemplateSelect(template._id)\n }}\n normalView={source === 'add'}\n isFetching={loading}\n onDelete={(template: any) => setTemplateToDelete(template)}\n />\n ))}\n </Box>\n </DialogContent>\n )}\n {source === 'add' && (\n <DialogActions sx={{ p: 2, justifyContent: 'center', borderTop: '1px solid #D3D3D4' }}>\n <Button\n onClick={() => navigate(templateRoutes.EDIT_TEMPLATE(email._id, selectedTemplate), { state: { company_id: selectedCompany } })}\n disabled={!selectedTemplate}\n >\n Continue\n </Button>\n <Button\n onClick={() => handleDefaultTemplate()}\n disabled={!selectedTemplate || defaultTemplate?._id === selectedTemplate}\n >\n Set to Default\n </Button>\n </DialogActions>\n )}\n </Modal>\n <ConfirmPopUp\n open={templateToDelete !== null}\n onClose={() => setTemplateToDelete(null)}\n title='Remove Template'\n description='Are you sure you want to delete ?'\n onConfirm={() => handleDeleteTemplate()}\n loading={loading}\n />\n </div>\n );\n};\n\nexport { TemplateModal };\nexport default TemplateModal;"],"names":["React","_a","CloseIcon","template"],"mappings":"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"}
|
|
@@ -570,8 +570,8 @@ const TemplateModal = ({ email, onClose, open, companies = [], templateRoutes, s
|
|
|
570
570
|
const handleClose = () => {
|
|
571
571
|
onClose();
|
|
572
572
|
};
|
|
573
|
-
const handleViewTemplate = (
|
|
574
|
-
navigate(templateRoutes.EDIT_TEMPLATE(email._id,
|
|
573
|
+
const handleViewTemplate = () => {
|
|
574
|
+
navigate(templateRoutes.EDIT_TEMPLATE(email._id, selectedTemplate), {
|
|
575
575
|
state: { company_id: selectedCompany, isViewOnly: true, fromPreview: true }
|
|
576
576
|
});
|
|
577
577
|
};
|
|
@@ -580,7 +580,7 @@ const TemplateModal = ({ email, onClose, open, companies = [], templateRoutes, s
|
|
|
580
580
|
const template = templates.find((t) => (t == null ? void 0 : t._id) === id);
|
|
581
581
|
setSelectedTemplateForPreview(template);
|
|
582
582
|
setSelectedTemplate(id);
|
|
583
|
-
handleViewTemplate(
|
|
583
|
+
handleViewTemplate();
|
|
584
584
|
} else {
|
|
585
585
|
setSelectedTemplate(id);
|
|
586
586
|
}
|
|
@@ -601,7 +601,6 @@ const TemplateModal = ({ email, onClose, open, companies = [], templateRoutes, s
|
|
|
601
601
|
try {
|
|
602
602
|
await api.patchV1TemplatesIdSetDefault({ ...api$1.getToken(), id: selectedTemplate });
|
|
603
603
|
notistack.enqueueSnackbar("Template has been set as default");
|
|
604
|
-
await getTemplatesViaSubject();
|
|
605
604
|
} catch (error) {
|
|
606
605
|
const m = api$1.getErrorMessage(error == null ? void 0 : error.message);
|
|
607
606
|
notistack.enqueueSnackbar(m, { variant: "error" });
|
|
@@ -766,4 +765,4 @@ const TemplateModal = ({ email, onClose, open, companies = [], templateRoutes, s
|
|
|
766
765
|
};
|
|
767
766
|
exports.HtmlThumbnailPreview = HtmlThumbnailPreview;
|
|
768
767
|
exports.TemplateModal = TemplateModal;
|
|
769
|
-
//# sourceMappingURL=template-modal-
|
|
768
|
+
//# sourceMappingURL=template-modal-X-iSmlki.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-modal-X-iSmlki.js","sources":["../../src/views/template-editor/template-modal/html-thumbnail-preview.tsx","../../src/views/template-editor/template-modal/html-thumbnail-preview-full.tsx","../../src/views/template-editor/template-modal/template-modal.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable unused-imports/no-unused-vars */\nimport React, { useState, useRef, useEffect, useCallback } from 'react';\nimport { Box, Skeleton, IconButton, Tooltip, Divider, Fade } from '@mui/material';\nimport { ZoomIn, ZoomOut, Refresh } from '@mui/icons-material';\nimport { Trash } from '../../../components/icons';\nimport Typography from '../../../components/typography/typography';\n\nconst HtmlThumbnailPreview = ({ \n template, \n width = 300, \n height = 200, \n scale = 0.25,\n showControls = false,\n onClick = null,\n selectedTemplateId = '',\n isFetching = false,\n onDelete,\n minScale = 0.1,\n maxScale = 1,\n scaleStep = 1.2,\n loadingDelay = 500,\n refreshDelay = 300,\n normalView = false,\n}) => {\n const [isLoading, setIsLoading] = useState(isFetching || true);\n const [currentScale, setCurrentScale] = useState(scale);\n const [error, setError] = useState(null);\n const [isHovered, setIsHovered] = useState(false);\n const containerRef = useRef(null);\n const contentRef = useRef(null);\n const loadingTimeoutRef = useRef(null);\n const refreshTimeoutRef = useRef(null);\n\n // Calculate dimensions based on scale\n const scaledWidth = width / currentScale;\n const scaledHeight = height / currentScale;\n\n // Cleanup timeouts on unmount\n useEffect(() => {\n return () => {\n if (loadingTimeoutRef.current) {\n clearTimeout(loadingTimeoutRef.current);\n }\n if (refreshTimeoutRef.current) {\n clearTimeout(refreshTimeoutRef.current);\n }\n };\n }, []);\n\n // Handle initial loading\n useEffect(() => {\n if (loadingTimeoutRef.current) {\n clearTimeout(loadingTimeoutRef.current);\n }\n \n loadingTimeoutRef.current = setTimeout(() => {\n setIsLoading(false);\n }, loadingDelay);\n\n return () => {\n if (loadingTimeoutRef.current) {\n clearTimeout(loadingTimeoutRef.current);\n }\n };\n }, [template.contents, loadingDelay]);\n\n // Handle external loading state\n useEffect(() => {\n setIsLoading(isFetching);\n }, [isFetching]);\n\n // Memoized event handlers\n const handleZoomIn = useCallback(() => {\n setCurrentScale(prev => Math.min(prev * scaleStep, maxScale));\n }, [scaleStep, maxScale]);\n\n const handleZoomOut = useCallback(() => {\n setCurrentScale(prev => Math.max(prev / scaleStep, minScale));\n }, [scaleStep, minScale]);\n\n const handleRefresh = useCallback(() => {\n setIsLoading(true);\n setError(null);\n \n if (refreshTimeoutRef.current) {\n clearTimeout(refreshTimeoutRef.current);\n }\n \n refreshTimeoutRef.current = setTimeout(() => {\n setIsLoading(false);\n }, refreshDelay);\n }, [refreshDelay]);\n\n const handleClick = useCallback(() => {\n if (onClick && !isLoading) {\n onClick(template);\n }\n }, [onClick, template, isLoading]);\n\n const handleDelete = useCallback((e) => {\n e.stopPropagation(); // Prevent triggering onClick\n if (onDelete && !template?.is_default) {\n onDelete(template);\n }\n }, [onDelete, template]);\n\n const handleMouseEnter = useCallback(() => {\n setIsHovered(true);\n }, []);\n\n const handleMouseLeave = useCallback(() => {\n setIsHovered(false);\n }, []);\n\n // Loading state\n if (isLoading) {\n return (\n <Box \n sx={{ \n width, \n height,\n borderRadius: 1,\n overflow: 'hidden',\n border: '1px solid',\n borderColor: 'divider'\n }}\n >\n <Skeleton \n variant=\"rectangular\" \n width=\"100%\" \n height=\"100%\" \n animation=\"wave\"\n />\n </Box>\n );\n }\n\n // Error state\n if (error) {\n return (\n <Box \n sx={{ \n width, \n height,\n borderRadius: 1,\n overflow: 'hidden',\n border: '1px solid',\n borderColor: 'error.main',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: 'error.light',\n color: 'error.contrastText'\n }}\n >\n Failed to load template\n </Box>\n );\n }\n\n const isSelected = selectedTemplateId === template._id;\n const canZoomIn = currentScale < maxScale;\n const canZoomOut = currentScale > minScale;\n const canDelete = !template?.is_default;\n\n return (\n <Box \n sx={{ position: 'relative', display: 'inline-block' }}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n {/* Main Container */}\n <Box\n ref={containerRef}\n onClick={handleClick}\n sx={(theme) => ({\n width,\n height,\n border: '1px solid',\n borderRadius: 1,\n overflow: 'hidden',\n position: 'relative',\n cursor: onClick ? 'pointer' : 'default',\n backgroundColor: '#fff',\n // boxShadow: '0 2px 8px rgba(0,0,0,0.1)',\n transition: 'all 0.2s ease-in-out',\n '&:hover': onClick ? {\n boxShadow: '0 4px 16px rgba(0,0,0,0.15)',\n transform: 'translateY(-1px)',\n } : {},\n borderColor: normalView && isSelected ? theme.palette.theme.primary[800] : 'grey.300',\n borderWidth: isSelected ? 2 : 1,\n })}\n >\n {/* Scaled Content Wrapper */}\n <Box\n sx={{\n width: scaledWidth,\n height: scaledHeight,\n transform: `scale(${currentScale})`,\n transformOrigin: 'top left',\n position: 'absolute',\n top: 0,\n left: 0,\n overflow: 'hidden',\n }}\n >\n {/* HTML Content */}\n <Box\n ref={contentRef}\n sx={{\n width: '100%',\n height: '100%',\n userSelect: 'none',\n pointerEvents: 'none',\n pt: 2,\n '& *': {\n maxWidth: '100% !important',\n boxSizing: 'border-box !important',\n },\n // Reset common problematic styles\n '& body': {\n margin: '0 !important',\n padding: '0 !important',\n overflow: 'hidden !important',\n },\n // Handle images\n '& img': {\n maxWidth: '100% !important',\n height: 'auto !important',\n },\n // Handle tables\n '& table': {\n width: '100% !important',\n tableLayout: 'fixed !important',\n },\n // Prevent absolute positioning issues\n '& *[style*=\"position: absolute\"]': {\n position: 'relative !important',\n },\n '& .email-container': {\n width: '85% !important',\n }\n }}\n dangerouslySetInnerHTML={{ __html: template.contents }}\n />\n </Box>\n\n {/* Loading Overlay */}\n {isLoading && (\n <Box\n sx={{\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'rgba(255,255,255,0.8)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n zIndex: 2,\n }}\n >\n <Skeleton variant=\"rectangular\" width=\"90%\" height=\"90%\" />\n </Box>\n )}\n\n {/* Selection Indicator */}\n {template?.is_default && (\n <Box\n sx={(theme) => ({\n position: 'absolute',\n top: 8,\n left: 8,\n width: 12,\n height: 12,\n borderRadius: '50%',\n backgroundColor: theme.palette.theme?.primary[800],\n zIndex: 3,\n })}\n />\n )}\n </Box>\n {template?.name && <Typography type='s3' weight='medium' color='theme.secondary.1000' align='center' sx={{width, mt:0.5}}>{template?.name}</Typography>}\n\n {/* Hover Controls */}\n {showControls && (\n <Fade in={isHovered} timeout={200}>\n <Box\n sx={{\n position: 'absolute',\n top: -8,\n right: -8,\n display: 'flex',\n gap: 0.5,\n zIndex: 4,\n backgroundColor: 'rgba(255,255,255,0.95)',\n border: '1px solid',\n borderColor: 'grey.300',\n borderRadius: 2,\n padding: 0.5,\n boxShadow: '0 4px 12px rgba(0,0,0,0.15)',\n backdropFilter: 'blur(4px)',\n }}\n >\n <Tooltip title={`Zoom In (${Math.round(currentScale * 100)}%)`} arrow>\n <span>\n <IconButton\n size=\"small\"\n onClick={handleZoomIn}\n disabled={!canZoomIn}\n sx={{\n backgroundColor: 'transparent',\n '&:hover': { \n backgroundColor: 'primary.light',\n color: 'primary.contrastText' \n },\n '&:disabled': {\n opacity: 0.5\n }\n }}\n >\n <ZoomIn fontSize=\"small\" />\n </IconButton>\n </span>\n </Tooltip>\n\n <Divider orientation=\"vertical\" variant=\"middle\" flexItem />\n\n <Tooltip title={`Zoom Out (${Math.round(currentScale * 100)}%)`} arrow>\n <span>\n <IconButton\n size=\"small\"\n onClick={handleZoomOut}\n disabled={!canZoomOut}\n sx={{\n backgroundColor: 'transparent',\n '&:hover': { \n backgroundColor: 'primary.light',\n color: 'primary.contrastText' \n },\n '&:disabled': {\n opacity: 0.5\n }\n }}\n >\n <ZoomOut fontSize=\"small\" />\n </IconButton>\n </span>\n </Tooltip>\n\n <Divider orientation=\"vertical\" variant=\"middle\" flexItem />\n\n <Tooltip title=\"Refresh Preview\" arrow>\n <IconButton\n size=\"small\"\n onClick={handleRefresh}\n sx={{\n backgroundColor: 'transparent',\n '&:hover': { \n backgroundColor: 'primary.light',\n color: 'primary.contrastText' \n },\n }}\n >\n <Refresh fontSize=\"small\" />\n </IconButton>\n </Tooltip>\n\n {onDelete && (\n <>\n <Divider orientation=\"vertical\" variant=\"middle\" flexItem />\n <Tooltip \n title={canDelete ? \"Delete Template\" : \"Cannot delete default template\"} \n arrow\n >\n <span>\n <IconButton\n size=\"small\"\n onClick={handleDelete}\n disabled={!canDelete}\n sx={{\n backgroundColor: 'transparent',\n '&:hover': !canDelete ? {} : { \n backgroundColor: 'error.light',\n color: 'error.contrastText' \n },\n '&:disabled': {\n opacity: 0.5\n }\n }}\n >\n <Trash fontSize=\"small\" />\n </IconButton>\n </span>\n </Tooltip>\n </>\n )}\n </Box>\n </Fade>\n )}\n </Box>\n );\n};\n\nexport { HtmlThumbnailPreview };\nexport default HtmlThumbnailPreview;","/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable unused-imports/no-unused-vars */\nimport React, { useState, useRef, useEffect, useCallback } from 'react';\nimport { Box, Skeleton, IconButton, Tooltip, Divider, Fade } from '@mui/material';\nimport { ZoomIn, ZoomOut, Refresh } from '@mui/icons-material';\nimport { Trash } from '../../../components/icons';\nimport Typography from '../../../components/typography/typography';\n\ninterface HtmlThumbnailPreviewProps {\n template: any;\n width?: number | string; \n height?: number;\n scale?: number;\n showControls?: boolean;\n onClick?: (template: any) => void;\n selectedTemplateId?: string;\n isFetching?: boolean;\n onDelete?: (template: any) => void;\n normalView?: boolean;\n minScale?: number;\n maxScale?: number;\n scaleStep?: number;\n loadingDelay?: number;\n refreshDelay?: number;\n}\n\nconst HtmlThumbnailPreviewFull: React.FC<HtmlThumbnailPreviewProps> = ({\n template,\n width = '100%',\n height = 800,\n scale = 0.25,\n showControls = false,\n onClick = null,\n selectedTemplateId = '',\n isFetching = false,\n onDelete,\n normalView = false,\n minScale = 0.1,\n maxScale = 1,\n scaleStep = 1.2,\n loadingDelay = 500,\n refreshDelay = 300,\n}) => {\n const [isLoading, setIsLoading] = useState(isFetching || true);\n const [currentScale, setCurrentScale] = useState(scale);\n const [error, setError] = useState<null | string>(null);\n const [isHovered, setIsHovered] = useState(false);\n const containerRef = useRef<HTMLDivElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n const loadingTimeoutRef = useRef<any>(null);\n const refreshTimeoutRef = useRef<any>(null);\n\n const [containerPixelWidth, setContainerPixelWidth] = useState<number>(typeof width === 'number' ? width : 800);\n\n // Measure container width for responsive scaling\n useEffect(() => {\n const updateWidth = () => {\n if (containerRef.current) {\n const newWidth = containerRef.current.offsetWidth;\n setContainerPixelWidth(newWidth);\n }\n };\n updateWidth();\n window.addEventListener('resize', updateWidth);\n return () => window.removeEventListener('resize', updateWidth);\n }, []);\n\n const scaledWidth = containerPixelWidth / currentScale;\n const scaledHeight = height / currentScale;\n\n useEffect(() => {\n return () => {\n clearTimeout(loadingTimeoutRef.current);\n clearTimeout(refreshTimeoutRef.current);\n };\n }, []);\n\n useEffect(() => {\n clearTimeout(loadingTimeoutRef.current);\n loadingTimeoutRef.current = setTimeout(() => setIsLoading(false), loadingDelay);\n return () => clearTimeout(loadingTimeoutRef.current);\n }, [template.contents, loadingDelay]);\n\n useEffect(() => setIsLoading(isFetching), [isFetching]);\n\n const handleZoomIn = useCallback(() => setCurrentScale(prev => Math.min(prev * scaleStep, maxScale)), [scaleStep, maxScale]);\n const handleZoomOut = useCallback(() => setCurrentScale(prev => Math.max(prev / scaleStep, minScale)), [scaleStep, minScale]);\n const handleRefresh = useCallback(() => {\n setIsLoading(true);\n setError(null);\n clearTimeout(refreshTimeoutRef.current);\n refreshTimeoutRef.current = setTimeout(() => setIsLoading(false), refreshDelay);\n }, [refreshDelay]);\n\n const handleClick = useCallback(() => {\n if (onClick && !isLoading) onClick(template);\n }, [onClick, template, isLoading]);\n\n const handleDelete = useCallback((e: React.MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n if (onDelete && !template?.is_default) onDelete(template);\n }, [onDelete, template]);\n\n const handleMouseEnter = useCallback(() => setIsHovered(true), []);\n const handleMouseLeave = useCallback(() => setIsHovered(false), []);\n\n if (isLoading) return (\n <Box sx={{ width, height, borderRadius: 1, overflow: 'hidden', border: '1px solid', borderColor: 'divider' }}>\n <Skeleton variant=\"rectangular\" width=\"100%\" height=\"100%\" animation=\"wave\" />\n </Box>\n );\n\n if (error) return (\n <Box sx={{\n width, height, borderRadius: 1, overflow: 'hidden', border: '1px solid',\n borderColor: 'error.main', display: 'flex', alignItems: 'center', justifyContent: 'center',\n backgroundColor: 'error.light', color: 'error.contrastText'\n }}>\n Failed to load template\n </Box>\n );\n\n const isSelected = selectedTemplateId === template._id;\n const canZoomIn = currentScale < maxScale;\n const canZoomOut = currentScale > minScale;\n const canDelete = !template?.is_default;\n\n return (\n <Box\n ref={containerRef}\n sx={{ position: 'relative', width, marginInline: 'auto', display: 'inline-block' }}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n <Box\n onClick={handleClick}\n sx={(theme) => ({\n width: '100%',\n height,\n marginBlock: 0,\n overflow: 'hidden',\n position: 'relative',\n backgroundColor: '#fff',\n transition: 'all 0.2s ease-in-out',\n '&:hover': onClick ? { boxShadow: '0 4px 16px rgba(0,0,0,0.15)', transform: 'translateY(-1px)' } : {},\n })}\n >\n <Box\n sx={{\n width: '100%',\n height: '100%',\n display: 'flex',\n justifyContent: 'center', \n alignItems: 'center', \n overflow: 'auto',\n backgroundColor: '#fff',\n }}\n >\n <Box\n sx={{\n transform: `scale(${currentScale})`,\n transformOrigin: 'top left',\n pointerEvents: 'none',\n userSelect: 'none',\n width: containerPixelWidth,\n height: height,\n }}\n >\n <Box\n ref={contentRef}\n sx={{\n width: '100%',\n height: '100%',\n '& *': { maxWidth: '100% !important', boxSizing: 'border-box !important' },\n '& body': { margin: 0, padding: 0, overflow: 'hidden' },\n '& img': { maxWidth: '100% !important', height: 'auto !important' },\n '& table': { width: '100% !important', tableLayout: 'fixed !important' },\n '& *[style*=\"position: absolute\"]': { position: 'relative !important' },\n '& .email-container': { width: '85% !important' },\n }}\n dangerouslySetInnerHTML={{ __html: template.contents }}\n />\n </Box>\n </Box>\n\n {template?.is_default && (\n <Box sx={(theme) => ({ position: 'absolute', top: 8, left: 8, width: 12, height: 12, borderRadius: '50%', backgroundColor: theme.palette.theme.primary[800], zIndex: 3 })} />\n )}\n </Box>\n\n {template?.name && <Typography type='s3' weight='medium' color='theme.secondary.1000' align='center' sx={{ width, mt: 0.5 }}>{template?.name}</Typography>}\n\n {showControls && (\n <Fade in={isHovered} timeout={200}>\n <Box sx={{ position: 'absolute', top: -8, right: -8, display: 'flex', gap: 0.5, zIndex: 4, backgroundColor: 'rgba(255,255,255,0.95)', border: '1px solid', borderColor: 'grey.300', borderRadius: 2, padding: 0.5, boxShadow: '0 4px 12px rgba(0,0,0,0.15)', backdropFilter: 'blur(4px)' }}>\n <Tooltip title={`Zoom In (${Math.round(currentScale * 100)}%)`} arrow>\n <span><IconButton size=\"small\" onClick={handleZoomIn} disabled={!canZoomIn}><ZoomIn fontSize=\"small\" /></IconButton></span>\n </Tooltip>\n <Divider orientation=\"vertical\" flexItem />\n <Tooltip title={`Zoom Out (${Math.round(currentScale * 100)}%)`} arrow>\n <span><IconButton size=\"small\" onClick={handleZoomOut} disabled={!canZoomOut}><ZoomOut fontSize=\"small\" /></IconButton></span>\n </Tooltip>\n <Divider orientation=\"vertical\" flexItem />\n <Tooltip title=\"Refresh Preview\" arrow>\n <IconButton size=\"small\" onClick={handleRefresh}><Refresh fontSize=\"small\" /></IconButton>\n </Tooltip>\n {onDelete && <>\n <Divider orientation=\"vertical\" flexItem />\n <Tooltip title={canDelete ? \"Delete Template\" : \"Cannot delete default template\"} arrow>\n <span><IconButton size=\"small\" onClick={handleDelete} disabled={!canDelete}><Trash fontSize=\"small\" /></IconButton></span>\n </Tooltip>\n </>}\n </Box>\n </Fade>\n )}\n </Box>\n );\n};\n\nexport default HtmlThumbnailPreviewFull;","/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable unused-imports/no-unused-vars */\nimport React, { useEffect, useState } from 'react';\nimport { \n DialogTitle, \n DialogContent, \n DialogActions,\n IconButton,\n Box,\n MenuItem\n} from '@mui/material';\nimport CloseIcon from '@mui/icons-material/Close';\nimport Typography from '../../../components/typography/typography';\nimport Modal from '../../../components/modal/modal';\nimport { deleteV1TemplatesId, getV1Templates, patchV1TemplatesIdSetDefault } from '../../../api-client/api.system-feature/api';\nimport { getErrorMessage, getToken } from '../../../utils/common';\nimport Button from '../../../components/button/button';\n// import ModalLoader from '../../../components/loader/modal-loader';\nimport { useNavigate } from 'react-router-dom';\nimport { enqueueSnackbar } from 'notistack';\nimport Select from '../../../components/select/select';\nimport HtmlThumbnailPreview from './html-thumbnail-preview';\nimport HtmlThumbnailPreviewFull from './html-thumbnail-preview-full';\nimport ConfirmPopUp from '../../../components/confirm-modal/confirm-modal';\n\nconst TemplateModal = ({ email, onClose, open, companies = [], templateRoutes, source = 'add' }) => {\n const [templates, setTemplates] = useState([]);\n const [selectedTemplate, setSelectedTemplate] = useState('');\n const [defaultTemplate, setDefaultTemplate] = useState('');\n const [loading, setLoding] = useState(true);\n const [selectedCompany, setSelectedCompany] = React.useState<number>(companies?.[0]?.id || 0);\n const [templateToDelete, setTemplateToDelete] = React.useState<Record<string, any> | null>(null);\n const [selectedTemplateForPreview, setSelectedTemplateForPreview] = useState(null);\n\n const navigate = useNavigate();\n\n const handleClose = () => {\n onClose();\n };\n\n const handleViewTemplate = () => {\n navigate(templateRoutes.EDIT_TEMPLATE(email._id, selectedTemplate), { \n state: { company_id: selectedCompany, isViewOnly: true, fromPreview: true }\n });\n };\n\n const handleTemplateSelect = (id: any) => {\n if (source === 'view') {\n const template = templates.find((t: any) => t?._id === id);\n setSelectedTemplateForPreview(template);\n setSelectedTemplate(id);\n handleViewTemplate();\n } else {\n setSelectedTemplate(id);\n }\n }\n\n const getTemplatesViaSubject = async () => {\n setLoding(true)\n const res = await getV1Templates({ ...getToken(), filters: `(company_id.eq=${selectedCompany}&subject_id.eq=${email._id})` })\n if(res?.data) {\n const dTemplate = res?.data?.find(t => t.is_default === true)\n setDefaultTemplate(dTemplate)\n setSelectedTemplate(dTemplate?._id)\n setTemplates(res?.data)\n }\n\n setLoding(false)\n }\n\n const handleDefaultTemplate = async () => {\n try {\n await patchV1TemplatesIdSetDefault({ ...getToken(), id: selectedTemplate })\n enqueueSnackbar('Template has been set as default');\n } catch (error) {\n const m = getErrorMessage(error?.message);\n enqueueSnackbar(m, { variant: 'error' });\n }\n }\n\n const handleDeleteTemplate = async () => {\n try {\n if(templateToDelete) {\n await deleteV1TemplatesId({ ...getToken(), id: templateToDelete?._id })\n enqueueSnackbar('Template has been deleted');\n setTemplateToDelete(null)\n await getTemplatesViaSubject()\n }\n } catch (error) {\n const m = getErrorMessage(error?.message);\n enqueueSnackbar(m, { variant: 'error' });\n }\n }\n\n useEffect(() => {\n getTemplatesViaSubject()\n return () => { setLoding(true) }\n }, [selectedCompany])\n\n return (\n <div>\n <Modal \n open={open} \n onClose={handleClose} \n maxWidth=\"lg\" \n fullWidth\n aria-labelledby=\"email-template-selection\"\n sx={{\n '& .MuiDialog-paper': {\n height: '85vh',\n display: 'flex',\n flexDirection: 'column'\n }\n }}\n >\n\n {console.log(source, \"soure in modal +++++++++++++++++++++++debug\")}\n {/* {loading && <ModalLoader/>} */}\n <DialogTitle sx={{ marginBottom: '1rem', padding: '0.75rem 1rem 0.75rem 1.5rem', borderBottom: '1px solid #D3D3D4'}}>\n <Box display='flex' alignItems='center' gap={2}>\n {selectedTemplateForPreview && (\n <IconButton\n onClick={() => setSelectedTemplateForPreview(null)}\n size='small'\n sx={{ color: (theme) => theme.palette.grey[700] }}\n >\n <Typography>← Back</Typography>\n </IconButton>\n )}\n <Typography type='s1' weight='medium' color='theme.secondary.1000' sx={{ flex: 1, textAlign: 'center' }}> \n {selectedTemplateForPreview ? 'Template Preview' : (source === 'view' ? 'Template Preview' : 'Select Template')}\n </Typography>\n </Box>\n <Box display='flex' alignItems={'center'} gap={1} position='absolute' right='1%' top='4px'>\n <Typography type='s3' weight='medium' color='theme.secondary.800'> Company</Typography>\n <Select\n displayEmpty\n value={selectedCompany}\n size='small'\n renderValue={(value) => value ? companies.find((option) => option.value === value)?.label : 'Select Company'}\n // fullWidth\n // sx={{\n // bgcolor: 'white',\n // borderRadius: 1,\n // '& .MuiSelect-select': { py: 0.75 }\n // }}\n onChange={(e) => {\n if (e.target.value) {\n setSelectedCompany(e.target.value as number);\n }\n }}>\n {companies.map((option) => (\n <MenuItem key={option.value} value={option.value}>\n <Typography type='s3' color='theme.secondary.1000'>{option.label}</Typography>\n </MenuItem>\n ))}\n </Select>\n <IconButton\n aria-label=\"close\"\n onClick={handleClose}\n size='small'\n sx={{\n color: (theme) => theme.palette.grey[500],\n }}\n >\n <CloseIcon fontSize='small'/>\n </IconButton>\n </Box>\n </DialogTitle>\n \n {\n selectedTemplateForPreview ? (\n <DialogContent sx={{ display: 'flex', flexDirection: 'column', gap: 3, width: '100%', p: 3, flex: 1, overflow: 'auto', scrollbarWidth: 'none', msOverflowStyle: 'none', '&::-webkit-scrollbar': { display: 'none' } }}>\n {/* Main Preview */}\n <Box sx={{ width: '100%', display: 'flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', flexShrink: 0 }}>\n <HtmlThumbnailPreviewFull\n template={selectedTemplateForPreview}\n width={'100%'}\n height={600}\n scale={1}\n showControls={true}\n isFetching={loading}\n normalView={true}\n />\n </Box>\n </DialogContent>\n ) : (\n <DialogContent sx={{ flex: 1, overflow: 'auto', display: 'flex', flexDirection: 'column', scrollbarWidth: 'none', msOverflowStyle: 'none', '&::-webkit-scrollbar': { display: 'none' } }}>\n {/* <Grid container spacing={6}> */}\n {!templates.length && (\n // <Grid item xs={12} sx={{ minHeight: 350}}>\n <Box display='flex' alignItems='center' width='100%' height='100%' justifyContent='center'>\n {!loading && <Typography type='s1' weight='medium' color='theme.secondary.1000' sx={{ textAlign: 'center' }}>No templates found</Typography>}\n </Box>\n // </Grid>\n )}\n <Box sx={{ \n display: 'grid', \n gridTemplateColumns: 'repeat(auto-fill, minmax(300px, 1fr))', \n gap: 2, \n p: 2,\n justifyItems: 'center',\n alignItems: 'center'\n }}>\n {templates.map((template, index) => (\n <HtmlThumbnailPreview\n key={template._id || index}\n template={template}\n width={300}\n height={200}\n showControls={source === 'add'}\n selectedTemplateId={selectedTemplate}\n onClick={(template: any) => {\n handleTemplateSelect(template._id)\n }}\n normalView={source === 'add'}\n isFetching={loading}\n onDelete={(template: any) => setTemplateToDelete(template)}\n />\n ))}\n </Box>\n </DialogContent>\n )}\n {source === 'add' && (\n <DialogActions sx={{ p: 2, justifyContent: 'center', borderTop: '1px solid #D3D3D4' }}>\n <Button\n onClick={() => navigate(templateRoutes.EDIT_TEMPLATE(email._id, selectedTemplate), { state: { company_id: selectedCompany } })}\n disabled={!selectedTemplate}\n >\n Continue\n </Button>\n <Button\n onClick={() => handleDefaultTemplate()}\n disabled={!selectedTemplate || defaultTemplate?._id === selectedTemplate}\n >\n Set to Default\n </Button>\n </DialogActions>\n )}\n </Modal>\n <ConfirmPopUp\n open={templateToDelete !== null}\n onClose={() => setTemplateToDelete(null)}\n title='Remove Template'\n description='Are you sure you want to delete ?'\n onConfirm={() => handleDeleteTemplate()}\n loading={loading}\n />\n </div>\n );\n};\n\nexport { TemplateModal };\nexport default TemplateModal;"],"names":["useState","useRef","useEffect","useCallback","jsx","Box","Skeleton","jsxs","Typography","Fade","Tooltip","IconButton","ZoomIn","Divider","ZoomOut","Refresh","Fragment","Trash","useNavigate","getV1Templates","getToken","_a","patchV1TemplatesIdSetDefault","enqueueSnackbar","getErrorMessage","deleteV1TemplatesId","Modal","DialogTitle","Select","MenuItem","CloseIcon","DialogContent","template","DialogActions","Button","ConfirmPopUp"],"mappings":"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"}
|
|
@@ -7,12 +7,10 @@ const button = require("./button-CYiSRppg.js");
|
|
|
7
7
|
const material = require("@mui/material");
|
|
8
8
|
const Close = require("@mui/icons-material/Close");
|
|
9
9
|
;/* empty css */
|
|
10
|
-
const notistack = require("notistack");
|
|
11
10
|
const reactRouterDom = require("react-router-dom");
|
|
12
11
|
const text = require("./text-CR4Wz_oR.js");
|
|
13
12
|
const reactHookForm = require("react-hook-form");
|
|
14
|
-
const api
|
|
15
|
-
const api = require("./api-EomXz8pk.js");
|
|
13
|
+
const api = require("./api-D3c7E20L.js");
|
|
16
14
|
const Yup = require("yup");
|
|
17
15
|
const yup = require("@hookform/resolvers/yup");
|
|
18
16
|
function _interopNamespaceDefault(e) {
|
|
@@ -55,7 +53,6 @@ const TemplateNameModal = ({
|
|
|
55
53
|
}) => {
|
|
56
54
|
const { handleSubmit, control, setValue } = reactHookForm.useForm({ mode: "all", resolver: generateValidationSchema() });
|
|
57
55
|
const navigate = reactRouterDom.useNavigate();
|
|
58
|
-
const { enqueueSnackbar } = notistack.useSnackbar();
|
|
59
56
|
const [isSubmitting, setIsSubmitting] = React.useState(false);
|
|
60
57
|
const handleModalClose = () => {
|
|
61
58
|
if (!isSubmitting && !parentIsSaving) {
|
|
@@ -67,19 +64,15 @@ const TemplateNameModal = ({
|
|
|
67
64
|
try {
|
|
68
65
|
const { name = "" } = (values == null ? void 0 : values.template_name) || {};
|
|
69
66
|
payload.name = name;
|
|
70
|
-
const
|
|
71
|
-
|
|
72
|
-
const res = await (mode === "edit" ? api$1.patchV1TemplatesId(finalPayload) : api$1.postV1Templates(finalPayload));
|
|
73
|
-
if ((res == null ? void 0 : res.status_code) === 200 || (res == null ? void 0 : res.status_code) === 201 || (res == null ? void 0 : res.success)) {
|
|
74
|
-
enqueueSnackbar("Template saved successfully", { variant: "success" });
|
|
67
|
+
const res = await (mode === "edit" ? api.patchV1TemplatesId(payload) : api.postV1Templates(payload));
|
|
68
|
+
if (res.status_code === 200) {
|
|
75
69
|
onSaveSuccess == null ? void 0 : onSaveSuccess();
|
|
76
70
|
navigate(templateRoutes.LIST);
|
|
77
71
|
}
|
|
78
72
|
setIsSubmitting(false);
|
|
79
73
|
} catch (error) {
|
|
80
|
-
|
|
74
|
+
(error == null ? void 0 : error.message) || "Something went wrong";
|
|
81
75
|
setIsSubmitting(false);
|
|
82
|
-
enqueueSnackbar(m, { variant: "error" });
|
|
83
76
|
onSaveError == null ? void 0 : onSaveError();
|
|
84
77
|
}
|
|
85
78
|
};
|
|
@@ -121,4 +114,4 @@ const TemplateNameModal = ({
|
|
|
121
114
|
);
|
|
122
115
|
};
|
|
123
116
|
exports.TemplateNameModal = TemplateNameModal;
|
|
124
|
-
//# sourceMappingURL=template-name-modal-
|
|
117
|
+
//# sourceMappingURL=template-name-modal-CeqxIE2r.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-name-modal-CeqxIE2r.js","sources":["../../src/views/template-editor/template-name-modal/template-name-modal.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable unused-imports/no-unused-vars */\nimport React, { useEffect, useState } from 'react';\n\nimport Modal from '../../../components/modal/modal';\nimport Typography from '../../../components/typography/typography';\nimport Button from '../../../components/button/button';\n\nimport {\n\tBox,\n\tCircularProgress,\n\tDialogActions,\n\tDialogContent,\n\tDialogProps,\n\tDialogTitle,\n\tIconButton,\n} from '@mui/material';\nimport Close from '@mui/icons-material/Close';\n\nimport './template-name-modal.scss';\nimport { IEmail } from '../utils/types';\nimport { enqueueSnackbar } from 'notistack';\nimport { useNavigate } from 'react-router-dom';\nimport DynamicInput from '../../../components/form-control/form-builder/form-builder-element/text';\nimport { useForm } from 'react-hook-form';\nimport { patchV1TemplatesId, postV1Templates } from '../../../api-client/api.system-feature/api';\nimport * as Yup from 'yup';\nimport { yupResolver } from '@hookform/resolvers/yup';\n\ninterface TemplateNameModalProps {\n\tisOpen: boolean;\n\tsetIsOpen: (value: IEmail | null) => void;\n\tmodalProps?: DialogProps;\n\ttemplateRoutes: Record<string, any>;\n\tpayload: Record<string, any>;\n\tmode: 'add' | 'edit';\n\ttemplateData: Record<string, any> | null;\n\tonSaveSuccess?: () => void;\n\tonSaveError?: () => void;\n\tisSaving?: boolean;\n}\n\nconst generateValidationSchema = () => {\n\treturn yupResolver(\n\t\tYup.object().shape({\n\t\t\ttemplate_name: Yup.object().shape({\n\t\t\t\tname: Yup.string().trim().required('Template name is required'),\n\t\t\t})\n\t\t})\n\t)\n}\n\nconst TemplateNameModal: React.FC<TemplateNameModalProps> = ({\n\tisOpen,\n\tsetIsOpen,\n\tmodalProps,\n\ttemplateRoutes,\n\tpayload,\n\tmode = 'add',\n\ttemplateData,\n\tonSaveSuccess,\n\tonSaveError,\n\tisSaving: parentIsSaving = false,\n}) => {\n\tconst { handleSubmit, control, setValue } = useForm({ mode: 'all', resolver: generateValidationSchema() });\n\tconst navigate = useNavigate();\n\tconst [isSubmitting, setIsSubmitting] = useState<boolean>(false);\n\n\tconst handleModalClose = () => {\n\t\tif (!isSubmitting && !parentIsSaving) {\n\t\t\tsetIsOpen(null);\n\t\t}\n\t};\n\n\tconst onSubmit = async (values: any) => {\n\t\tsetIsSubmitting(true);\n\t\ttry {\n\t\t\tconst { name = ''} = values?.template_name || {}\n\t\t\tpayload.name = name\n\t\t\tconst res = await (mode === 'edit' ? patchV1TemplatesId(payload) : postV1Templates(payload));\n\t\t\tif(res.status_code === 200) {\n\t\t\t\t// enqueueSnackbar('Template saved successfully', { variant: 'success' });\n\t\t\t\tonSaveSuccess?.();\n\t\t\t\tnavigate(templateRoutes.LIST);\n\t\t\t}\n\t\t\tsetIsSubmitting(false);\n\t\t} catch (error) {\n\t\t\tconst m = error?.message || 'Something went wrong'\n\t\t\tsetIsSubmitting(false);\n\t\t\t// enqueueSnackbar(m, { variant: 'error' });\n\t\t\tonSaveError?.();\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tif(templateData && templateData?.name) {\n\t\t\tsetValue('template_name.name', templateData?.name)\n\t\t}\n\t}, [setValue, templateData])\n\n\treturn (\n\t\t<Modal\n\t\t\topen={isOpen}\n\t\t\tonClose={handleModalClose}\n\t\t\tmaxWidth='xs'\n\t\t\tfullWidth\n\t\t\t{...modalProps}>\n\t\t\t<DialogTitle className='companySelectionModal--DialogTitle'>\n\t\t\t\t<Typography type='s3' color='inherit' weight='medium'>\n\t\t\t\t\t{parentIsSaving ? 'Saving Template...' : 'Template Name'}\n\t\t\t\t</Typography>\n\t\t\t\t<IconButton onClick={handleModalClose} disabled={isSubmitting || parentIsSaving}>\n\t\t\t\t\t<Close fontSize='small' />\n\t\t\t\t</IconButton>\n\t\t\t</DialogTitle>\n\t\t\t<DialogContent className='companySelectionModal--DialogContents'>\n\t\t\t\t<form onSubmit={handleSubmit(onSubmit)} id='template_name'>\n\t\t\t\t\t<DynamicInput \n\t\t\t\t\t\tlabel={'Name'}\n\t\t\t\t\t\tname='name'\n\t\t\t\t\t\tplaceholder={'Enter Name'}\n\t\t\t\t\t\tfieldArrayName='template_name'\n\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t</form>\n\t\t\t</DialogContent>\n\t\t\t<DialogActions className='companySelectionModal--DialogAction'>\n\t\t\t\t<Box display='flex' gap={1.5}>\n\t\t\t\t\t<Button className='companySelectionModal--DialogAction--WhiteBtn' onClick={handleModalClose} disabled={isSubmitting || parentIsSaving}>Cancel</Button>\n\t\t\t\t\t<Button type='submit' form='template_name' disabled={isSubmitting || parentIsSaving} endIcon={(isSubmitting || parentIsSaving) && <CircularProgress size={15}/>}>\n\t\t\t\t\t\t{parentIsSaving ? 'Saving...' : 'Save'}\n\t\t\t\t\t</Button>\n\t\t\t\t</Box>\n\t\t\t</DialogActions>\n\t\t</Modal>\n\t);\n};\n\nexport default TemplateNameModal;\n"],"names":["yupResolver","Yup","useForm","useNavigate","useState","patchV1TemplatesId","postV1Templates","useEffect","jsxs","Modal","DialogTitle","jsx","Typography","IconButton","DialogContent","DynamicInput","DialogActions","Box","Button","CircularProgress"],"mappings":"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"}
|
package/dist/chunks/{template-name-modal-Dwe7U72p.esm.js → template-name-modal-Dctn8t3t.esm.js}
RENAMED
|
@@ -6,12 +6,10 @@ import { B as Button } from "./button-BtdpXmjA.esm.js";
|
|
|
6
6
|
import { DialogTitle, IconButton, DialogContent, DialogActions, Box, CircularProgress } from "@mui/material";
|
|
7
7
|
import Close from "@mui/icons-material/Close";
|
|
8
8
|
/* empty css */
|
|
9
|
-
import { useSnackbar } from "notistack";
|
|
10
9
|
import { useNavigate } from "react-router-dom";
|
|
11
10
|
import { D as DynamicInput } from "./text-BWoRoA4r.esm.js";
|
|
12
11
|
import { useForm } from "react-hook-form";
|
|
13
|
-
import { i as patchV1TemplatesId, j as postV1Templates } from "./api-
|
|
14
|
-
import { ab as getToken } from "./api-8jutPLh0.esm.js";
|
|
12
|
+
import { i as patchV1TemplatesId, j as postV1Templates } from "./api-DBmWILBN.esm.js";
|
|
15
13
|
import * as Yup from "yup";
|
|
16
14
|
import { yupResolver } from "@hookform/resolvers/yup";
|
|
17
15
|
const generateValidationSchema = () => {
|
|
@@ -37,7 +35,6 @@ const TemplateNameModal = ({
|
|
|
37
35
|
}) => {
|
|
38
36
|
const { handleSubmit, control, setValue } = useForm({ mode: "all", resolver: generateValidationSchema() });
|
|
39
37
|
const navigate = useNavigate();
|
|
40
|
-
const { enqueueSnackbar } = useSnackbar();
|
|
41
38
|
const [isSubmitting, setIsSubmitting] = useState(false);
|
|
42
39
|
const handleModalClose = () => {
|
|
43
40
|
if (!isSubmitting && !parentIsSaving) {
|
|
@@ -49,19 +46,15 @@ const TemplateNameModal = ({
|
|
|
49
46
|
try {
|
|
50
47
|
const { name = "" } = (values == null ? void 0 : values.template_name) || {};
|
|
51
48
|
payload.name = name;
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
const res = await (mode === "edit" ? patchV1TemplatesId(finalPayload) : postV1Templates(finalPayload));
|
|
55
|
-
if ((res == null ? void 0 : res.status_code) === 200 || (res == null ? void 0 : res.status_code) === 201 || (res == null ? void 0 : res.success)) {
|
|
56
|
-
enqueueSnackbar("Template saved successfully", { variant: "success" });
|
|
49
|
+
const res = await (mode === "edit" ? patchV1TemplatesId(payload) : postV1Templates(payload));
|
|
50
|
+
if (res.status_code === 200) {
|
|
57
51
|
onSaveSuccess == null ? void 0 : onSaveSuccess();
|
|
58
52
|
navigate(templateRoutes.LIST);
|
|
59
53
|
}
|
|
60
54
|
setIsSubmitting(false);
|
|
61
55
|
} catch (error) {
|
|
62
|
-
|
|
56
|
+
(error == null ? void 0 : error.message) || "Something went wrong";
|
|
63
57
|
setIsSubmitting(false);
|
|
64
|
-
enqueueSnackbar(m, { variant: "error" });
|
|
65
58
|
onSaveError == null ? void 0 : onSaveError();
|
|
66
59
|
}
|
|
67
60
|
};
|
|
@@ -105,4 +98,4 @@ const TemplateNameModal = ({
|
|
|
105
98
|
export {
|
|
106
99
|
TemplateNameModal as T
|
|
107
100
|
};
|
|
108
|
-
//# sourceMappingURL=template-name-modal-
|
|
101
|
+
//# sourceMappingURL=template-name-modal-Dctn8t3t.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-name-modal-Dctn8t3t.esm.js","sources":["../../src/views/template-editor/template-name-modal/template-name-modal.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable unused-imports/no-unused-vars */\nimport React, { useEffect, useState } from 'react';\n\nimport Modal from '../../../components/modal/modal';\nimport Typography from '../../../components/typography/typography';\nimport Button from '../../../components/button/button';\n\nimport {\n\tBox,\n\tCircularProgress,\n\tDialogActions,\n\tDialogContent,\n\tDialogProps,\n\tDialogTitle,\n\tIconButton,\n} from '@mui/material';\nimport Close from '@mui/icons-material/Close';\n\nimport './template-name-modal.scss';\nimport { IEmail } from '../utils/types';\nimport { enqueueSnackbar } from 'notistack';\nimport { useNavigate } from 'react-router-dom';\nimport DynamicInput from '../../../components/form-control/form-builder/form-builder-element/text';\nimport { useForm } from 'react-hook-form';\nimport { patchV1TemplatesId, postV1Templates } from '../../../api-client/api.system-feature/api';\nimport * as Yup from 'yup';\nimport { yupResolver } from '@hookform/resolvers/yup';\n\ninterface TemplateNameModalProps {\n\tisOpen: boolean;\n\tsetIsOpen: (value: IEmail | null) => void;\n\tmodalProps?: DialogProps;\n\ttemplateRoutes: Record<string, any>;\n\tpayload: Record<string, any>;\n\tmode: 'add' | 'edit';\n\ttemplateData: Record<string, any> | null;\n\tonSaveSuccess?: () => void;\n\tonSaveError?: () => void;\n\tisSaving?: boolean;\n}\n\nconst generateValidationSchema = () => {\n\treturn yupResolver(\n\t\tYup.object().shape({\n\t\t\ttemplate_name: Yup.object().shape({\n\t\t\t\tname: Yup.string().trim().required('Template name is required'),\n\t\t\t})\n\t\t})\n\t)\n}\n\nconst TemplateNameModal: React.FC<TemplateNameModalProps> = ({\n\tisOpen,\n\tsetIsOpen,\n\tmodalProps,\n\ttemplateRoutes,\n\tpayload,\n\tmode = 'add',\n\ttemplateData,\n\tonSaveSuccess,\n\tonSaveError,\n\tisSaving: parentIsSaving = false,\n}) => {\n\tconst { handleSubmit, control, setValue } = useForm({ mode: 'all', resolver: generateValidationSchema() });\n\tconst navigate = useNavigate();\n\tconst [isSubmitting, setIsSubmitting] = useState<boolean>(false);\n\n\tconst handleModalClose = () => {\n\t\tif (!isSubmitting && !parentIsSaving) {\n\t\t\tsetIsOpen(null);\n\t\t}\n\t};\n\n\tconst onSubmit = async (values: any) => {\n\t\tsetIsSubmitting(true);\n\t\ttry {\n\t\t\tconst { name = ''} = values?.template_name || {}\n\t\t\tpayload.name = name\n\t\t\tconst res = await (mode === 'edit' ? patchV1TemplatesId(payload) : postV1Templates(payload));\n\t\t\tif(res.status_code === 200) {\n\t\t\t\t// enqueueSnackbar('Template saved successfully', { variant: 'success' });\n\t\t\t\tonSaveSuccess?.();\n\t\t\t\tnavigate(templateRoutes.LIST);\n\t\t\t}\n\t\t\tsetIsSubmitting(false);\n\t\t} catch (error) {\n\t\t\tconst m = error?.message || 'Something went wrong'\n\t\t\tsetIsSubmitting(false);\n\t\t\t// enqueueSnackbar(m, { variant: 'error' });\n\t\t\tonSaveError?.();\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tif(templateData && templateData?.name) {\n\t\t\tsetValue('template_name.name', templateData?.name)\n\t\t}\n\t}, [setValue, templateData])\n\n\treturn (\n\t\t<Modal\n\t\t\topen={isOpen}\n\t\t\tonClose={handleModalClose}\n\t\t\tmaxWidth='xs'\n\t\t\tfullWidth\n\t\t\t{...modalProps}>\n\t\t\t<DialogTitle className='companySelectionModal--DialogTitle'>\n\t\t\t\t<Typography type='s3' color='inherit' weight='medium'>\n\t\t\t\t\t{parentIsSaving ? 'Saving Template...' : 'Template Name'}\n\t\t\t\t</Typography>\n\t\t\t\t<IconButton onClick={handleModalClose} disabled={isSubmitting || parentIsSaving}>\n\t\t\t\t\t<Close fontSize='small' />\n\t\t\t\t</IconButton>\n\t\t\t</DialogTitle>\n\t\t\t<DialogContent className='companySelectionModal--DialogContents'>\n\t\t\t\t<form onSubmit={handleSubmit(onSubmit)} id='template_name'>\n\t\t\t\t\t<DynamicInput \n\t\t\t\t\t\tlabel={'Name'}\n\t\t\t\t\t\tname='name'\n\t\t\t\t\t\tplaceholder={'Enter Name'}\n\t\t\t\t\t\tfieldArrayName='template_name'\n\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t</form>\n\t\t\t</DialogContent>\n\t\t\t<DialogActions className='companySelectionModal--DialogAction'>\n\t\t\t\t<Box display='flex' gap={1.5}>\n\t\t\t\t\t<Button className='companySelectionModal--DialogAction--WhiteBtn' onClick={handleModalClose} disabled={isSubmitting || parentIsSaving}>Cancel</Button>\n\t\t\t\t\t<Button type='submit' form='template_name' disabled={isSubmitting || parentIsSaving} endIcon={(isSubmitting || parentIsSaving) && <CircularProgress size={15}/>}>\n\t\t\t\t\t\t{parentIsSaving ? 'Saving...' : 'Save'}\n\t\t\t\t\t</Button>\n\t\t\t\t</Box>\n\t\t\t</DialogActions>\n\t\t</Modal>\n\t);\n};\n\nexport default TemplateNameModal;\n"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useState, useCallback, useMemo, useEffect } from "react";
|
|
3
|
-
import { A as ActionBar } from "./action-bar-
|
|
3
|
+
import { A as ActionBar } from "./action-bar-C7Alva4T.esm.js";
|
|
4
4
|
import { v as viewTypes } from "./action-bar-BsXTcYpL.esm.js";
|
|
5
|
-
import { M as MaterialTable } from "./searchable-select-
|
|
5
|
+
import { M as MaterialTable } from "./searchable-select-0F6E4XAr.esm.js";
|
|
6
6
|
import { T as Typography } from "./typography-CG_A0iOJ.esm.js";
|
|
7
7
|
import { F as Fallback } from "./fallback-C1hj1V6l.esm.js";
|
|
8
8
|
import { M as Menu } from "./menu-B2SzzeqF.esm.js";
|
|
9
|
-
import { F as Footer } from "./footer-
|
|
9
|
+
import { F as Footer } from "./footer-m3_dlNl8.esm.js";
|
|
10
10
|
import { u as useDeepMemo } from "./use-deep-memo-BzDUOQl2.esm.js";
|
|
11
11
|
import { usePages, usePermissions } from "@erpsquad/common/runtime";
|
|
12
|
-
import { t as transformTableColumns } from "./common-utility-
|
|
13
|
-
import { c as appendConditionSafely, ab as getToken, m as defaultCurrencySymbol, r as fetchApi } from "./api-
|
|
12
|
+
import { t as transformTableColumns } from "./common-utility-DGpbsf7S.esm.js";
|
|
13
|
+
import { c as appendConditionSafely, ab as getToken, m as defaultCurrencySymbol, r as fetchApi } from "./api-BIVCMSwW.esm.js";
|
|
14
14
|
import images from "../images/index.esm.js";
|
|
15
15
|
import { MenuItem } from "@mui/material";
|
|
16
16
|
import { useTranslation } from "react-i18next";
|
|
17
17
|
import { enqueueSnackbar } from "notistack";
|
|
18
|
-
import { t as templateRoutes } from "./common-
|
|
18
|
+
import { t as templateRoutes } from "./common-CaomnEjX.esm.js";
|
|
19
19
|
import { useNavigate } from "react-router-dom";
|
|
20
|
-
import { h as getV1Subjects } from "./api-
|
|
21
|
-
import { T as TemplateModal } from "./template-modal-
|
|
20
|
+
import { h as getV1Subjects } from "./api-DBmWILBN.esm.js";
|
|
21
|
+
import { T as TemplateModal } from "./template-modal-B2VgotrF.esm.js";
|
|
22
22
|
import { C as CompanySelectionModal } from "./company-selection-modal-Dn2L_skh.esm.js";
|
|
23
23
|
/* empty css */
|
|
24
24
|
const Templates = ({ type, module, modulePath }) => {
|
|
@@ -52,7 +52,14 @@ const Templates = ({ type, module, modulePath }) => {
|
|
|
52
52
|
const skip = limit * (pageNo - 1);
|
|
53
53
|
const permissions = usePermissions();
|
|
54
54
|
const ROUTES = templateRoutes(modulePath, type);
|
|
55
|
-
const
|
|
55
|
+
const formatLabelString = (key) => {
|
|
56
|
+
return typeof key === "string" ? key.split(/[:_-]/).map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join("") : key;
|
|
57
|
+
};
|
|
58
|
+
const capitalizedModule = module ? formatLabelString(module) : "";
|
|
59
|
+
const modulePrefixedSubjectKey = capitalizedModule ? `${capitalizedModule}Subjects` : "Subjects";
|
|
60
|
+
const modulePrefixedTemplatesKey = capitalizedModule ? `${capitalizedModule}Templates` : "Templates";
|
|
61
|
+
const modulePrefixedTemplateEditorKey = capitalizedModule ? `${capitalizedModule}TemplateEditor` : "TemplateEditor";
|
|
62
|
+
const SubjectPermissions = (permissions == null ? void 0 : permissions[modulePrefixedSubjectKey]) || (permissions == null ? void 0 : permissions.Subjects) || (permissions == null ? void 0 : permissions[modulePrefixedTemplatesKey]) || (permissions == null ? void 0 : permissions.Templates) || (permissions == null ? void 0 : permissions[modulePrefixedTemplateEditorKey]) || (permissions == null ? void 0 : permissions.TemplateEditor) || {};
|
|
56
63
|
const ConditionsImport = ((_a = permissions == null ? void 0 : permissions.RentalTerms) == null ? void 0 : _a.ConditionsImport) || {};
|
|
57
64
|
const {
|
|
58
65
|
canAdd = false,
|
|
@@ -269,4 +276,4 @@ const Templates = ({ type, module, modulePath }) => {
|
|
|
269
276
|
export {
|
|
270
277
|
Templates as T
|
|
271
278
|
};
|
|
272
|
-
//# sourceMappingURL=templates-
|
|
279
|
+
//# sourceMappingURL=templates-CCy1eG6A.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templates-CCy1eG6A.esm.js","sources":["../../src/views/template-editor/templates.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable unused-imports/no-unused-vars */\nimport { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport ActionBar from '../../components/action-bar/action-bar';\nimport viewTypes from '../../constants/action-bar';\nimport MaterialTable, { MaterialTableColumnProps } from '../../components/material-table/material-table';\nimport Typography from '../../components/typography/typography';\nimport Fallback from '../../components/fallback/fallback';\nimport Menu from '../../components/menu/menu';\nimport Footer from '../../components/footer/footer';\nimport useDeepMemo from '../../hooks/use-deep-memo';\nimport { PageState } from '@erpsquad/common/runtime';\nimport { usePages } from '@erpsquad/common/runtime';\nimport { transformTableColumns } from '../../utils/common-utility';\nimport { appendConditionSafely, defaultCurrencySymbol, getToken } from '../../utils/common';\nimport logo from '../../assets/images';\nimport { IPaginationModel } from '../../@types/pagination-model';\nimport { fetchApi } from '../../utils/api';\n\nimport { MenuItem } from '@mui/material';\n\n// import GridCard from './grid-view/grid-view';\nimport { useTranslation } from 'react-i18next';\nimport { enqueueSnackbar } from 'notistack';\n\nimport { templateRoutes } from './utils/common';\nimport { IEmail, ITemplateProps, Pagination } from './utils/types';\nimport { useNavigate } from 'react-router-dom';\n\nimport { usePermissions } from '@erpsquad/common/runtime';\nimport { getV1Subjects } from '../../api-client/api.system-feature/api';\nimport TemplateModal from './template-modal/template-modal';\nimport CompanySelectionModal from './company-selection-modal/company-selection-modal';\n\nimport './templates.scss';\n\n\ninterface ActionData {\n\tlabel: string;\n\tposition: number;\n}\n\nconst Templates: React.FC<ITemplateProps> = ({ type, module, modulePath }) => {\n\tconst { t } = useTranslation();\n\tconst {\n\t\tactivePage: aPage,\n\t\tupdatePageInfo,\n\t\tschemaFields,\n\t\tgeneratedColumns,\n\t\tupdateGeneratedColumns,\n\t\t// error: pageError\n\t} = usePages();\n\tconst activePage = useDeepMemo<PageState>(aPage);\n\t/* LOCAL STATES */\n\tconst [actionAnchorEl, setActionAnchorEl] = useState<null | HTMLElement>(null);\n\tconst viewEmails = localStorage.getItem('email-subjects-view');\n\tconst [actionBarData, setActionBarData] = useState<ActionData[]>(viewEmails ? JSON.parse(viewEmails) : [{ label: 'Table', position: 0 }]);\n\n\tconst [actionBarActiveTab, setActionBarActiveTab] = useState<string>(viewTypes.TABLE);\n\tconst [paginationModel, setPaginationModel] = useState<Pagination>({ pageNo: 1, limit: 20, totalCount: 0, skip: 0 });\n\tconst [rows, setRows] = useState<any[]>([]);\n\tconst [isFetching, setIsFetching] = useState<boolean>(false);\n\tconst [selectedRow, setSelectedRow] = useState([]);\n\tconst [showTemplateModal, setShowTemplateModal] = useState<IEmail | null>(null);\n\tconst [templateModalSource, setTemplateModalSource] = useState<'view' | 'add'>('add');\n\tconst [showCompanySelectionModal, setShowCompanySelectionModal] = useState<IEmail | null>(null);\n\tconst [companies, setCompanies] = useState<Record<string, any>[]>([]);\n\t/* VARS */\n\tconst navigate = useNavigate();\n\tconst { pageNo, limit: pLimit, totalCount } = paginationModel;\n\tconst limit = activePage.page_size || pLimit;\n\tconst total = limit ? Math.ceil(totalCount / limit) : 0;\n\tconst skip = limit * (pageNo - 1);\n\tconst permissions = usePermissions();\n\tconst ROUTES = templateRoutes(modulePath, type);\n\n\tconst formatLabelString = (key: string) => {\n\t\treturn typeof key === 'string'\n\t\t\t? key.split(/[:_-]/).map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join('')\n\t\t\t: key;\n\t}\n\tconst capitalizedModule = module ? formatLabelString(module) : '';\n\tconst modulePrefixedSubjectKey = capitalizedModule ? `${capitalizedModule}Subjects` : 'Subjects';\n\tconst modulePrefixedTemplatesKey = capitalizedModule ? `${capitalizedModule}Templates` : 'Templates';\n\tconst modulePrefixedTemplateEditorKey = capitalizedModule ? `${capitalizedModule}TemplateEditor` : 'TemplateEditor';\n\n\tconst SubjectPermissions = permissions?.[modulePrefixedSubjectKey] \n\t\t|| permissions?.Subjects \n\t\t|| permissions?.[modulePrefixedTemplatesKey] \n\t\t|| permissions?.Templates \n\t\t|| permissions?.[modulePrefixedTemplateEditorKey]\n\t\t|| permissions?.TemplateEditor\n\t\t|| {};\n\tconst ConditionsImport = permissions?.RentalTerms?.ConditionsImport || {};\n\n\tconst {\n\t\tcanAdd = false,\n\t\tcanEdit = false,\n\t\tcanDelete = false,\n\t} = SubjectPermissions;\n\n\tconst { canAdd: canImport = false } = ConditionsImport;\n\n\tconst handleNewEmail = (email) => {\n\t\tif (!companies?.length) {\n\t\t\tenqueueSnackbar('Please add a company first', { variant: 'error' })\n\t\t\treturn\n\t\t}\n\n\t\tif (companies?.length > 1) {\n\t\t\tsetShowCompanySelectionModal(email)\n\t\t} else {\n\t\t\tnavigate(ROUTES.ADD_TEMPLATE(email._id), { state: { company_id: companies[0]?.id || companies[0]?.value } })\n\t\t}\n\t};\n\n\tconst rowActionMenu = [\n\t\t{\n\t\t\tlabel: 'New Template',\n\t\t\thandleAction: (email: IEmail) => handleNewEmail(email),\n\t\t\tdisabled: (row: any) => !canEdit\n\t\t},\n\t\t{\n\t\t\tlabel: 'Add From Template',\n\t\t\thandleAction: (email: IEmail) => {\n\t\t\t\tsetTemplateModalSource('add');\n\t\t\t\tsetShowTemplateModal(email);\n\t\t\t},\n\t\t\tdisabled: (row: any) => !canAdd\n\t\t}\n\t];\n\n\t/* LOCAL FUNCTIONS */\n\tconst getEmails = useCallback(\n\t\tasync () => {\n\t\t\tconst { sort, filterQueryString, search } = activePage;\n\t\t\tconst searchFiters = search ? `&subject.like=${search}` : '';\n\t\t\tconst types = [];\n\t\t\ttypes.push(type)\n\t\t\tif (type == \"email\") {\n\t\t\t\ttypes.push(\"approval_email\")\n\t\t\t}\n\t\t\tconst uFilters = appendConditionSafely(filterQueryString, `&type.in=[${types.join(\",\")}]&module.eq=${module}${searchFiters}`);\n\n\t\t\tconst response = await getV1Subjects({\n\t\t\t\t...getToken(),\n\t\t\t\tskip,\n\t\t\t\tlimit,\n\t\t\t\t// search,\n\t\t\t\t...(sort && { order: `${sort.id}:${sort.desc ? -1 : 1}` }),\n\t\t\t\t...(uFilters && uFilters !== '()' && { filters: uFilters })\n\t\t\t});\n\n\t\t\tsetRows(response?.data || []);\n\t\t\tsetPaginationModel({ ...paginationModel, ...(response?.pagination || {}) });\n\t\t},\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[\n\t\t\tlimit,\n\t\t\tskip,\n\t\t\tactivePage?.search,\n\t\t\tactivePage?.filterQueryString,\n\t\t\tactivePage?.sort\n\t\t]\n\t);\n\n\tconst getCopmanies = async () => {\n\t\tconst companiesArr = await fetchApi({ apiKey: 'company', filters: { skip: 0, limit: 100, order: \"id:1\" } });\n\t\tsetCompanies(companiesArr?.data || []);\n\t}\n\n\tconst tableRows = useMemo(() => rows || [], [rows]);\n\n\tconst tableColumns = useMemo(\n\t\t() =>\n\t\t\ttransformTableColumns({\n\t\t\t\tcolumns: generatedColumns.columns,\n\t\t\t\tcurrencySymbol: (row) =>\n\t\t\t\t\trow.original?.currency_data?.symbol || defaultCurrencySymbol(),\n\t\t\t\ttranslationFn: t,\n\t\t\t\tenableFooter: true,\n\t\t\t\t// redirectionLink: ROUTES.VIEW,\n\t\t\t\t// redirectionLinkState: (row) => ({ termsAndCondition: row.original }),\n\t\t\t\trows: tableRows,\n\t\t\t\tstatusClasses: ``,\n\t\t\t}),\n\t\t[tableRows, t, generatedColumns.columns]\n\t);\n\n\tconst handlePaginationModel = (model: IPaginationModel) => {\n\t\tif (activePage.page_size != model?.limit) {\n\t\t\tupdatePageInfo({ page_size: model.limit });\n\t\t}\n\t\tsetPaginationModel(model);\n\t};\n\n\tconst cleanUp = () => {\n\t\tconst pModel = { pageNo: 1, limit: 20, totalCount: 0 };\n\t\tsetPaginationModel(pModel);\n\t};\n\n\t/* USE EFFECTS */\n\tuseEffect(() => {\n\t\tgetEmails();\n\t}, [getEmails]);\n\n\n\tuseEffect(() => {\n\t\tgetCopmanies();\n\t\treturn cleanUp;\n\t}, []);\n\tuseEffect(() => {\n\t\tif (actionBarData?.length) {\n\t\t\tlocalStorage.setItem('email-subjects-view', JSON.stringify(actionBarData));\n\t\t}\n\t}, [actionBarData]);\n\n\t/* JSX STRUCTURE STARTED */\n\treturn (\n\t\t<section className='templates'>\n\t\t\t<ActionBar\n\t\t\t\ttitle={type === 'email' ? 'Emails' : 'PDFs'}\n\t\t\t\tdata={actionBarData}\n\t\t\t\tsetData={setActionBarData}\n\t\t\t\tactive={actionBarActiveTab}\n\t\t\t\tsetActive={setActionBarActiveTab}\n\t\t\t\thandleSearch={(search) => {\n\t\t\t\t\tupdatePageInfo({ search });\n\t\t\t\t\tsetPaginationModel({ ...paginationModel, pageNo: 1 });\n\t\t\t\t}}\n\t\t\t\tdisabledViews={['Kanban', 'Calendar', 'Gantt', viewTypes.GRID]}\n\t\t\t\tfields={schemaFields}\n\t\t\t\tselectedIds={selectedRow}\n\t\t\t\tbutton={false}\n\t\t\t/>\n\t\t\t{actionBarActiveTab === viewTypes.TABLE && (\n\t\t\t\t<MaterialTable\n\t\t\t\t\trows={tableRows || []}\n\t\t\t\t\tcolumns={tableColumns}\n\t\t\t\t\tpaginationModel={paginationModel}\n\t\t\t\t\ttotalPages={total}\n\t\t\t\t\tcolumnOrder={['mrt-row-select', ...generatedColumns.orderKeys]}\n\t\t\t\t\tstates={{ isLoading: isFetching }}\n\t\t\t\t\tonSortingChange={(sort) => updatePageInfo({ sort })}\n\t\t\t\t\tenableColumnDragging={false}\n\t\t\t\t\tenableEditing={false}\n\t\t\t\t\tonSelectRow={(r) =>\n\t\t\t\t\t\tsetSelectedRow(r.map((ele) => ele.original.id))\n\t\t\t\t\t}\n\t\t\t\t\tenableAddCustomField={false}\n\t\t\t\t\trowActionMenu={rowActionMenu}\n\t\t\t\t\tisResetRow={false}\n\t\t\t\t\thandleColumnOrdering={(colOrder) =>\n\t\t\t\t\t\tupdateGeneratedColumns({ orderKeys: colOrder.slice(1) })\n\t\t\t\t\t}\n\t\t\t\t\tonColumnVisibility={(columns: MaterialTableColumnProps[]) =>\n\t\t\t\t\t\tupdateGeneratedColumns({ columns: columns })\n\t\t\t\t\t}\n\t\t\t\t\tshowPreview={true}\n\t\t\t\t\thandlePreview={(item) => {\n\t\t\t\t\t\tsetTemplateModalSource('view');\n\t\t\t\t\t\tsetShowTemplateModal(item);\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{actionBarActiveTab === viewTypes.GRID && (\n\t\t\t\t<GridCard\n\t\t\t\t\tdata={tableRows}\n\t\t\t\t\trowActionMenu={rowActionMenu}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t{!actionBarActiveTab && (\n\t\t\t\t<Fallback\n\t\t\t\t\theading={t('rental.settings.termsAndConditions.title')}\n\t\t\t\t\tsubHeading='No data available'\n\t\t\t\t\ticon={<img src={logo.invoiceFallback} />}>\n\t\t\t\t</Fallback>\n\t\t\t)}\n\n\t\t\t<Footer\n\t\t\t\ttotal={total}\n\t\t\t\tpaginationModel={{\n\t\t\t\t\t...paginationModel,\n\t\t\t\t\tlimit: activePage.page_size\n\t\t\t\t}}\n\t\t\t\thandlePaginationModel={handlePaginationModel}\n\t\t\t\tresource=''\n\t\t\t/>\n\n\t\t\t{/* Action Menu */}\n\t\t\t<Menu\n\t\t\t\tanchorEl={actionAnchorEl}\n\t\t\t\topen={Boolean(actionAnchorEl)}\n\t\t\t\tonClose={() => setActionAnchorEl(null)}>\n\t\t\t\t<MenuItem>\n\t\t\t\t\t<Typography type='s4' color='theme.secondary.1000'>\n\t\t\t\t\t\t{t('common.upload')}\n\t\t\t\t\t</Typography>\n\t\t\t\t</MenuItem>\n\t\t\t\t<MenuItem>\n\t\t\t\t\t<Typography type='s4' color='theme.secondary.1000'>\n\t\t\t\t\t\t{t('common.print')}\n\t\t\t\t\t</Typography>\n\t\t\t\t</MenuItem>\n\t\t\t</Menu>\n\t\t\t{showTemplateModal && (\n\t\t\t\t<TemplateModal\n\t\t\t\t\temail={showTemplateModal}\n\t\t\t\t\tonClose={() => setShowTemplateModal(null)}\n\t\t\t\t\topen={showTemplateModal !== null}\n\t\t\t\t\tcompanies={companies}\n\t\t\t\t\ttemplateRoutes={ROUTES}\n\t\t\t\t\tsource={templateModalSource}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{showCompanySelectionModal && (\n\t\t\t\t<CompanySelectionModal\n\t\t\t\t\tisOpen={showCompanySelectionModal !== null}\n\t\t\t\t\tsetIsOpen={setShowCompanySelectionModal}\n\t\t\t\t\tcompanies={companies}\n\t\t\t\t\temail={showCompanySelectionModal}\n\t\t\t\t\ttemplateRoutes={ROUTES}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</section>\n\t);\n};\n\nexport default Templates;\n"],"names":["_a","logo"],"mappings":"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"}
|