@erpsquad/common 1.11.8 → 1.11.10
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-C0XXmMlG.esm.js → DynamicDependentField-DOGY6cA_.esm.js} +2 -2
- package/dist/chunks/{DynamicDependentField-C0XXmMlG.esm.js.map → DynamicDependentField-DOGY6cA_.esm.js.map} +1 -1
- package/dist/chunks/{DynamicDependentField-CQIfDDqc.js → DynamicDependentField-GTIwrPfP.js} +2 -2
- package/dist/chunks/{DynamicDependentField-CQIfDDqc.js.map → DynamicDependentField-GTIwrPfP.js.map} +1 -1
- package/dist/chunks/{ERPUIProvider-I4j_X_SD.esm.js → ERPUIProvider-Dz0s77BR.esm.js} +3 -3
- package/dist/chunks/{ERPUIProvider-I4j_X_SD.esm.js.map → ERPUIProvider-Dz0s77BR.esm.js.map} +1 -1
- package/dist/chunks/EditorSection-BLGcgQFm.esm.js +849 -0
- package/dist/chunks/EditorSection-BLGcgQFm.esm.js.map +1 -0
- package/dist/chunks/EditorSection-D6yaBfjP.js +848 -0
- package/dist/chunks/EditorSection-D6yaBfjP.js.map +1 -0
- package/dist/chunks/{FORMS-pxf6g6xE.esm.js → FORMS-CR_DlD1m.esm.js} +8 -8
- package/dist/chunks/{FORMS-pxf6g6xE.esm.js.map → FORMS-CR_DlD1m.esm.js.map} +1 -1
- package/dist/chunks/{FORMS-CUx32b_4.js → FORMS-EouVYay1.js} +5 -5
- package/dist/chunks/{FORMS-CUx32b_4.js.map → FORMS-EouVYay1.js.map} +1 -1
- package/dist/chunks/{FlexibleReduxExample-C-2qOGIw.esm.js → FlexibleReduxExample-B2e7Wa_S.esm.js} +4 -4
- package/dist/chunks/{FlexibleReduxExample-C-2qOGIw.esm.js.map → FlexibleReduxExample-B2e7Wa_S.esm.js.map} +1 -1
- package/dist/chunks/{FlexibleReduxExample--GtoEJhc.js → FlexibleReduxExample-CMUylyy1.js} +3 -3
- package/dist/chunks/{FlexibleReduxExample--GtoEJhc.js.map → FlexibleReduxExample-CMUylyy1.js.map} +1 -1
- package/dist/chunks/SectionFlowEditor-Dp-mjWT9.esm.js +12543 -0
- package/dist/chunks/SectionFlowEditor-Dp-mjWT9.esm.js.map +1 -0
- package/dist/chunks/SectionFlowEditor-Dz1SuCm2.js +12542 -0
- package/dist/chunks/SectionFlowEditor-Dz1SuCm2.js.map +1 -0
- package/dist/chunks/{action-bar-C7Alva4T.esm.js → action-bar-Ci6RlMBM.esm.js} +6 -6
- package/dist/chunks/{action-bar-C7Alva4T.esm.js.map → action-bar-Ci6RlMBM.esm.js.map} +1 -1
- package/dist/chunks/{action-bar-DdtpxWNk.js → action-bar-jLqQTqU7.js} +3 -3
- package/dist/chunks/{action-bar-DdtpxWNk.js.map → action-bar-jLqQTqU7.js.map} +1 -1
- package/dist/chunks/{actionCreator-CpePNxQM.esm.js → actionCreator-B6lXR_k1.esm.js} +2 -2
- package/dist/chunks/{actionCreator-CpePNxQM.esm.js.map → actionCreator-B6lXR_k1.esm.js.map} +1 -1
- package/dist/chunks/{actionCreator-Cl8vPLVO.esm.js → actionCreator-D3uwEAua.esm.js} +3 -3
- package/dist/chunks/{actionCreator-Cl8vPLVO.esm.js.map → actionCreator-D3uwEAua.esm.js.map} +1 -1
- package/dist/chunks/{actionCreator-CL5ICuqZ.esm.js → actionCreator-DIdMRO9L.esm.js} +2 -2
- package/dist/chunks/{actionCreator-CL5ICuqZ.esm.js.map → actionCreator-DIdMRO9L.esm.js.map} +1 -1
- package/dist/chunks/{actionCreator-Cb3NxILP.esm.js → actionCreator-DKYufGAZ.esm.js} +2 -2
- package/dist/chunks/{actionCreator-Cb3NxILP.esm.js.map → actionCreator-DKYufGAZ.esm.js.map} +1 -1
- package/dist/chunks/{actionCreator-Dar9Z8_d.esm.js → actionCreator-DcdyGsIX.esm.js} +3 -3
- package/dist/chunks/{actionCreator-Dar9Z8_d.esm.js.map → actionCreator-DcdyGsIX.esm.js.map} +1 -1
- package/dist/chunks/add-template-CUPbU0z7.js +10 -0
- package/dist/chunks/add-template-CUPbU0z7.js.map +1 -0
- package/dist/chunks/add-template-CxvhzFMF.esm.js +11 -0
- package/dist/chunks/add-template-CxvhzFMF.esm.js.map +1 -0
- package/dist/chunks/{address-modal-CYhiC7ui.js → address-modal-DFd5sQtR.js} +2 -2
- package/dist/chunks/{address-modal-CYhiC7ui.js.map → address-modal-DFd5sQtR.js.map} +1 -1
- package/dist/chunks/{address-modal-CkDBjnye.esm.js → address-modal-DYGLjrqd.esm.js} +2 -2
- package/dist/chunks/{address-modal-CkDBjnye.esm.js.map → address-modal-DYGLjrqd.esm.js.map} +1 -1
- package/dist/chunks/{ai-summary-SKK5KN2s.esm.js → ai-summary-x2t8BZCx.esm.js} +2 -2
- package/dist/chunks/{ai-summary-SKK5KN2s.esm.js.map → ai-summary-x2t8BZCx.esm.js.map} +1 -1
- package/dist/chunks/{api-BIVCMSwW.esm.js → api-8jutPLh0.esm.js} +3 -3
- package/dist/chunks/{api-BIVCMSwW.esm.js.map → api-8jutPLh0.esm.js.map} +1 -1
- package/dist/chunks/{api-DBmWILBN.esm.js → api-yLpQ3k5s.esm.js} +9 -9
- package/dist/chunks/{api-DBmWILBN.esm.js.map → api-yLpQ3k5s.esm.js.map} +1 -1
- package/dist/chunks/{app-switcher-D-Bvz9uO.esm.js → app-switcher-B6eapuGG.esm.js} +2 -2
- package/dist/chunks/{app-switcher-D-Bvz9uO.esm.js.map → app-switcher-B6eapuGG.esm.js.map} +1 -1
- package/dist/chunks/{app-switcher-CyEQmYAN.js → app-switcher-VhH9z0Rd.js} +2 -2
- package/dist/chunks/{app-switcher-CyEQmYAN.js.map → app-switcher-VhH9z0Rd.js.map} +1 -1
- package/dist/chunks/{appbar-BRbO--as.esm.js → appbar-B8EgZsrn.esm.js} +2 -2
- package/dist/chunks/{appbar-BRbO--as.esm.js.map → appbar-B8EgZsrn.esm.js.map} +1 -1
- package/dist/chunks/{appbar-rqqjZ99v.js → appbar-Is_7kfVo.js} +2 -2
- package/dist/chunks/{appbar-rqqjZ99v.js.map → appbar-Is_7kfVo.js.map} +1 -1
- package/dist/chunks/{approval-wrapper-BTtmXMlk.esm.js → approval-wrapper-_kYfACQp.esm.js} +2 -2
- package/dist/chunks/{approval-wrapper-BTtmXMlk.esm.js.map → approval-wrapper-_kYfACQp.esm.js.map} +1 -1
- package/dist/chunks/{chat-bot-osiGMG3g.js → chat-bot-2Ga_xA_K.js} +32 -38
- package/dist/chunks/chat-bot-2Ga_xA_K.js.map +1 -0
- package/dist/chunks/{chat-bot-BpNtrZEL.esm.js → chat-bot-DO3vAGxA.esm.js} +33 -39
- package/dist/chunks/chat-bot-DO3vAGxA.esm.js.map +1 -0
- package/dist/chunks/common-BgXEAs_y.esm.js +851 -0
- package/dist/chunks/common-BgXEAs_y.esm.js.map +1 -0
- package/dist/chunks/{common-yORBIVv-.esm.js → common-Cl5oGXmX.esm.js} +2 -2
- package/dist/chunks/{common-yORBIVv-.esm.js.map → common-Cl5oGXmX.esm.js.map} +1 -1
- package/dist/chunks/common-D6T6NGWY.js +850 -0
- package/dist/chunks/common-D6T6NGWY.js.map +1 -0
- package/dist/chunks/{common-CS5L0Ld_.js → common-PH2uWkqL.js} +2 -2
- package/dist/chunks/{common-CS5L0Ld_.js.map → common-PH2uWkqL.js.map} +1 -1
- package/dist/chunks/common-utility-CA_Upser.js.map +1 -1
- package/dist/chunks/{common-utility-DGpbsf7S.esm.js → common-utility-CS_sNoAC.esm.js} +2 -2
- package/dist/chunks/common-utility-CS_sNoAC.esm.js.map +1 -0
- 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-Bwg2s_Sn.esm.js → constant-BXPcBhJN.esm.js} +35 -5
- package/dist/chunks/constant-BXPcBhJN.esm.js.map +1 -0
- package/dist/chunks/{constant-ZYAN_teD.js → constant-BXeJD4Af.js} +35 -5
- package/dist/chunks/constant-BXeJD4Af.js.map +1 -0
- package/dist/chunks/{constants-nmkxkzps.esm.js → constants-BrmMAwu2.esm.js} +2 -2
- package/dist/chunks/{constants-nmkxkzps.esm.js.map → constants-BrmMAwu2.esm.js.map} +1 -1
- package/dist/chunks/{constants-06kIVUBw.js → constants-D_xuLHSu.js} +2 -2
- package/dist/chunks/{constants-06kIVUBw.js.map → constants-D_xuLHSu.js.map} +1 -1
- package/dist/chunks/{custom-editor-6-xqhKz6.esm.js → custom-editor-C-B5BK-H.esm.js} +3 -3
- package/dist/chunks/{custom-editor-6-xqhKz6.esm.js.map → custom-editor-C-B5BK-H.esm.js.map} +1 -1
- package/dist/chunks/{custom-form-DD7YOHMF.esm.js → custom-form-DNUpk0nq.esm.js} +7 -7
- package/dist/chunks/{custom-form-DD7YOHMF.esm.js.map → custom-form-DNUpk0nq.esm.js.map} +1 -1
- package/dist/chunks/{custom-form-CFU7NEVb.js → custom-form-T4yc_sE_.js} +4 -4
- package/dist/chunks/{custom-form-CFU7NEVb.js.map → custom-form-T4yc_sE_.js.map} +1 -1
- package/dist/chunks/{dashboard-DL83yYRR.esm.js → dashboard-B4xzJ1Xc.esm.js} +4 -4
- package/dist/chunks/{dashboard-DL83yYRR.esm.js.map → dashboard-B4xzJ1Xc.esm.js.map} +1 -1
- package/dist/chunks/{dashboard-BcWVkWZt.js → dashboard-eMHQayU_.js} +3 -3
- package/dist/chunks/{dashboard-BcWVkWZt.js.map → dashboard-eMHQayU_.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-tKn-KqAd.esm.js → dynamic-report-CMguvXj2.esm.js} +4 -4
- package/dist/chunks/{dynamic-report-tKn-KqAd.esm.js.map → dynamic-report-CMguvXj2.esm.js.map} +1 -1
- package/dist/chunks/{dynamic-rows-CTGETfcP.esm.js → dynamic-rows-CmAE9nbA.esm.js} +2 -2
- package/dist/chunks/{dynamic-rows-CTGETfcP.esm.js.map → dynamic-rows-CmAE9nbA.esm.js.map} +1 -1
- package/dist/chunks/{dynamic-text-editor-CPvlGcLK.esm.js → dynamic-text-editor-CSWdR1lK.esm.js} +2 -2
- package/dist/chunks/{dynamic-text-editor-CPvlGcLK.esm.js.map → dynamic-text-editor-CSWdR1lK.esm.js.map} +1 -1
- package/dist/chunks/edit-section-modal-Br2ITvLk.js.map +1 -1
- package/dist/chunks/{edit-section-modal-BW-aZmUv.esm.js → edit-section-modal-HihKbN6K.esm.js} +2 -2
- package/dist/chunks/edit-section-modal-HihKbN6K.esm.js.map +1 -0
- package/dist/chunks/{filter-COXKBEER.esm.js → filter-D9BHP_qc.esm.js} +5 -5
- package/dist/chunks/{filter-COXKBEER.esm.js.map → filter-D9BHP_qc.esm.js.map} +1 -1
- package/dist/chunks/{filter-Cr_OSIpb.js → filter-DtCrOG6W.js} +3 -3
- package/dist/chunks/{filter-Cr_OSIpb.js.map → filter-DtCrOG6W.js.map} +1 -1
- package/dist/chunks/{footer-m3_dlNl8.esm.js → footer-Bv5NOAf9.esm.js} +2 -2
- package/dist/chunks/{footer-m3_dlNl8.esm.js.map → footer-Bv5NOAf9.esm.js.map} +1 -1
- package/dist/chunks/{footer-CD3kMRdS.js → footer-DioOh69g.js} +2 -2
- package/dist/chunks/{footer-CD3kMRdS.js.map → footer-DioOh69g.js.map} +1 -1
- package/dist/chunks/{form-fields-yE9kwjvb.js → form-fields-BYDhbAgB.js} +2 -2
- package/dist/chunks/{form-fields-yE9kwjvb.js.map → form-fields-BYDhbAgB.js.map} +1 -1
- package/dist/chunks/{form-fields-hMMnB_wE.esm.js → form-fields-Di-p9XKG.esm.js} +2 -2
- package/dist/chunks/{form-fields-hMMnB_wE.esm.js.map → form-fields-Di-p9XKG.esm.js.map} +1 -1
- package/dist/chunks/{form-parser-m4fnw38a.js → form-parser-BnMdMDSb.js} +2 -2
- package/dist/chunks/{form-parser-m4fnw38a.js.map → form-parser-BnMdMDSb.js.map} +1 -1
- package/dist/chunks/{form-parser-DbnSn5eY.esm.js → form-parser-ZQpEVrzG.esm.js} +2 -2
- package/dist/chunks/{form-parser-DbnSn5eY.esm.js.map → form-parser-ZQpEVrzG.esm.js.map} +1 -1
- package/dist/chunks/{form-section-TMjdOVeW.esm.js → form-section-BJ7Iqb9R.esm.js} +5 -5
- package/dist/chunks/{form-section-TMjdOVeW.esm.js.map → form-section-BJ7Iqb9R.esm.js.map} +1 -1
- package/dist/chunks/{form-section-CPIyMdk2.js → form-section-CFeWD-tF.js} +5 -5
- package/dist/chunks/{form-section-CPIyMdk2.js.map → form-section-CFeWD-tF.js.map} +1 -1
- package/dist/chunks/{fullScreen-DFgzE41_.esm.js → fullScreen-Cz3FIdU4.esm.js} +5 -5
- package/dist/chunks/fullScreen-Cz3FIdU4.esm.js.map +1 -0
- package/dist/chunks/{fullScreen-BLLa9ogA.js → fullScreen-h0JqBN4O.js} +5 -5
- package/dist/chunks/fullScreen-h0JqBN4O.js.map +1 -0
- package/dist/chunks/{global-search-BjKPmzsQ.js → global-search-BTV5iL6-.js} +2 -2
- package/dist/chunks/{global-search-BjKPmzsQ.js.map → global-search-BTV5iL6-.js.map} +1 -1
- package/dist/chunks/{global-search-BOkxXiZ0.esm.js → global-search-CGmupYFQ.esm.js} +3 -3
- package/dist/chunks/{global-search-BOkxXiZ0.esm.js.map → global-search-CGmupYFQ.esm.js.map} +1 -1
- package/dist/chunks/{grid-view-Bo86x7YL.esm.js → grid-view-BMfleQMC.esm.js} +2 -2
- package/dist/chunks/{grid-view-Bo86x7YL.esm.js.map → grid-view-BMfleQMC.esm.js.map} +1 -1
- package/dist/chunks/{header-B-HaoeK7.esm.js → header-BnVzqpGs.esm.js} +12 -10
- package/dist/chunks/{header-B-HaoeK7.esm.js.map → header-BnVzqpGs.esm.js.map} +1 -1
- package/dist/chunks/{header-enhanced-BjfqyQ1a.esm.js → header-enhanced-CkROCaOF.esm.js} +3 -3
- package/dist/chunks/{header-enhanced-BjfqyQ1a.esm.js.map → header-enhanced-CkROCaOF.esm.js.map} +1 -1
- package/dist/chunks/{header-enhanced-gJl4iC4m.js → header-enhanced-Dxdetx0I.js} +3 -3
- package/dist/chunks/{header-enhanced-gJl4iC4m.js.map → header-enhanced-Dxdetx0I.js.map} +1 -1
- package/dist/chunks/{header-BHsex2As.js → header-jWPMgcy6.js} +11 -9
- package/dist/chunks/{header-BHsex2As.js.map → header-jWPMgcy6.js.map} +1 -1
- package/dist/chunks/{index-ALqg8b5U.esm.js → index-BCmGHdos.esm.js} +2 -2
- package/dist/chunks/{index-ALqg8b5U.esm.js.map → index-BCmGHdos.esm.js.map} +1 -1
- package/dist/chunks/{index-BBWIBqaP.js → index-DBvje0t5.js} +73 -66
- package/dist/chunks/{index-BBWIBqaP.js.map → index-DBvje0t5.js.map} +1 -1
- package/dist/chunks/{index-BuPgYdiN.esm.js → index-DqwpZRkl.esm.js} +73 -66
- package/dist/chunks/{index-BuPgYdiN.esm.js.map → index-DqwpZRkl.esm.js.map} +1 -1
- package/dist/chunks/{inline-edit-fields-atDP84QL.js → inline-edit-fields-Cd_qUOjU.js} +2 -2
- package/dist/chunks/{inline-edit-fields-atDP84QL.js.map → inline-edit-fields-Cd_qUOjU.js.map} +1 -1
- package/dist/chunks/{inline-edit-fields-BYhRpPcH.esm.js → inline-edit-fields-VOIx3qmC.esm.js} +2 -2
- package/dist/chunks/{inline-edit-fields-BYhRpPcH.esm.js.map → inline-edit-fields-VOIx3qmC.esm.js.map} +1 -1
- package/dist/chunks/{inventory-reports-title-bar-Bog2i0dr.js → inventory-reports-title-bar-BfUMM54c.js} +2 -2
- package/dist/chunks/{inventory-reports-title-bar-Bog2i0dr.js.map → inventory-reports-title-bar-BfUMM54c.js.map} +1 -1
- package/dist/chunks/{inventory-reports-title-bar-CP8FzW6A.esm.js → inventory-reports-title-bar-CZZFFqDc.esm.js} +3 -3
- package/dist/chunks/{inventory-reports-title-bar-CP8FzW6A.esm.js.map → inventory-reports-title-bar-CZZFFqDc.esm.js.map} +1 -1
- package/dist/chunks/{item-response-details-SHSD-nBh.esm.js → item-response-details-BTHf6ZvN.esm.js} +4 -4
- package/dist/chunks/{item-response-details-SHSD-nBh.esm.js.map → item-response-details-BTHf6ZvN.esm.js.map} +1 -1
- package/dist/chunks/{item-response-details-DsGQ7Dlc.js → item-response-details-BheThTTK.js} +2 -2
- package/dist/chunks/{item-response-details-DsGQ7Dlc.js.map → item-response-details-BheThTTK.js.map} +1 -1
- package/dist/chunks/{listing-DIuzQrzb.js → listing-Dr_1DDBr.js} +4 -4
- package/dist/chunks/{listing-DIuzQrzb.js.map → listing-Dr_1DDBr.js.map} +1 -1
- package/dist/chunks/{listing-C0Yb6MVq.esm.js → listing-ELQeM6S3.esm.js} +4 -4
- package/dist/chunks/{listing-C0Yb6MVq.esm.js.map → listing-ELQeM6S3.esm.js.map} +1 -1
- package/dist/chunks/{location-select-g5uczAUF.js → location-select-CLyRUilk.js} +2 -2
- package/dist/chunks/{location-select-g5uczAUF.js.map → location-select-CLyRUilk.js.map} +1 -1
- package/dist/chunks/{location-select-CFa00fy4.esm.js → location-select-z1C88kCy.esm.js} +2 -2
- package/dist/chunks/{location-select-CFa00fy4.esm.js.map → location-select-z1C88kCy.esm.js.map} +1 -1
- package/dist/chunks/{material-editable-table-BGLjrTzT.js → material-editable-table-DFGB0q-s.js} +3 -3
- package/dist/chunks/{material-editable-table-BGLjrTzT.js.map → material-editable-table-DFGB0q-s.js.map} +1 -1
- package/dist/chunks/{material-editable-table-pAyK7KYf.esm.js → material-editable-table-DyGdqNkX.esm.js} +4 -4
- package/dist/chunks/{material-editable-table-pAyK7KYf.esm.js.map → material-editable-table-DyGdqNkX.esm.js.map} +1 -1
- package/dist/chunks/{metaComponent-B6kkj54U.esm.js → metaComponent-BqgfR7kW.esm.js} +2 -2
- package/dist/chunks/{metaComponent-B6kkj54U.esm.js.map → metaComponent-BqgfR7kW.esm.js.map} +1 -1
- package/dist/chunks/{metaComponent-D9sAbeXz.js → metaComponent-GukpY87Z.js} +2 -2
- package/dist/chunks/{metaComponent-D9sAbeXz.js.map → metaComponent-GukpY87Z.js.map} +1 -1
- package/dist/chunks/{module-reducer-DMxxForv.esm.js → module-reducer-CEv3LZCX.esm.js} +2 -2
- package/dist/chunks/{module-reducer-DMxxForv.esm.js.map → module-reducer-CEv3LZCX.esm.js.map} +1 -1
- package/dist/chunks/{modules-maXT99-4.js → modules-DTRr7zwt.js} +5 -5
- package/dist/chunks/{modules-maXT99-4.js.map → modules-DTRr7zwt.js.map} +1 -1
- package/dist/chunks/{modules-BBu2Y-K9.esm.js → modules-enwLrpfQ.esm.js} +5 -5
- package/dist/chunks/{modules-BBu2Y-K9.esm.js.map → modules-enwLrpfQ.esm.js.map} +1 -1
- package/dist/chunks/{notification-menu-D7ASm-K1.js → notification-menu-B00hDUbn.js} +2 -2
- package/dist/chunks/{notification-menu-D7ASm-K1.js.map → notification-menu-B00hDUbn.js.map} +1 -1
- package/dist/chunks/{notification-menu-XAadkn-e.esm.js → notification-menu-CehCt5fA.esm.js} +4 -4
- package/dist/chunks/{notification-menu-XAadkn-e.esm.js.map → notification-menu-CehCt5fA.esm.js.map} +1 -1
- package/dist/chunks/{page-action-C07iGjvN.esm.js → page-action-RqVevciV.esm.js} +4 -4
- package/dist/chunks/{page-action-C07iGjvN.esm.js.map → page-action-RqVevciV.esm.js.map} +1 -1
- package/dist/chunks/{page-action-BPzaL2KJ.js → page-action-TMFOytDw.js} +2 -2
- package/dist/chunks/{page-action-BPzaL2KJ.js.map → page-action-TMFOytDw.js.map} +1 -1
- package/dist/chunks/{page-navigator-8gZpp9_P.esm.js → page-navigator-CuIJ0KGf.esm.js} +2 -2
- package/dist/chunks/{page-navigator-8gZpp9_P.esm.js.map → page-navigator-CuIJ0KGf.esm.js.map} +1 -1
- package/dist/chunks/{page-navigator-Cgbh3tTG.js → page-navigator-DdRsmtLy.js} +2 -2
- package/dist/chunks/{page-navigator-Cgbh3tTG.js.map → page-navigator-DdRsmtLy.js.map} +1 -1
- package/dist/chunks/{page-view-DJ6HS_dV.js → page-view-CvfqzV03.js} +3 -3
- package/dist/chunks/{page-view-DJ6HS_dV.js.map → page-view-CvfqzV03.js.map} +1 -1
- package/dist/chunks/{page-view-CokUNMBn.esm.js → page-view-Daz-OKd_.esm.js} +3 -3
- package/dist/chunks/{page-view-CokUNMBn.esm.js.map → page-view-Daz-OKd_.esm.js.map} +1 -1
- package/dist/chunks/{pathname.rental-qsAe3XFd.esm.js → pathname.rental-CqHO_l_D.esm.js} +76 -81
- package/dist/chunks/{pathname.rental-qsAe3XFd.esm.js.map → pathname.rental-CqHO_l_D.esm.js.map} +1 -1
- package/dist/chunks/{pathname.rental-DgH4LoG7.js → pathname.rental-CwK6JuID.js} +2 -7
- package/dist/chunks/{pathname.rental-DgH4LoG7.js.map → pathname.rental-CwK6JuID.js.map} +1 -1
- package/dist/chunks/{quick-approval-modal-CPWs8htH.esm.js → quick-approval-modal-B-jvkgue.esm.js} +2 -2
- package/dist/chunks/{quick-approval-modal-CPWs8htH.esm.js.map → quick-approval-modal-B-jvkgue.esm.js.map} +1 -1
- package/dist/chunks/{reducer-CdJ6znKF.esm.js → reducer-BMkh_0Py.esm.js} +3 -3
- package/dist/chunks/{reducer-CdJ6znKF.esm.js.map → reducer-BMkh_0Py.esm.js.map} +1 -1
- package/dist/chunks/{reducer-3tSO6RW6.esm.js → reducer-BOwyP0QZ.esm.js} +3 -3
- package/dist/chunks/{reducer-3tSO6RW6.esm.js.map → reducer-BOwyP0QZ.esm.js.map} +1 -1
- package/dist/chunks/{reducer-IsgN83rP.esm.js → reducer-BTfG9J4W.esm.js} +2 -2
- package/dist/chunks/{reducer-IsgN83rP.esm.js.map → reducer-BTfG9J4W.esm.js.map} +1 -1
- package/dist/chunks/{reducer-yyZtsg1A.esm.js → reducer-BWiX5vxL.esm.js} +2 -2
- package/dist/chunks/{reducer-yyZtsg1A.esm.js.map → reducer-BWiX5vxL.esm.js.map} +1 -1
- package/dist/chunks/{reducer-sgaK2vfW.esm.js → reducer-CD1VDqeT.esm.js} +2 -2
- package/dist/chunks/{reducer-sgaK2vfW.esm.js.map → reducer-CD1VDqeT.esm.js.map} +1 -1
- package/dist/chunks/{reports-title-bar-Kz6JjqsY.js → reports-title-bar-B1_IweEc.js} +2 -2
- package/dist/chunks/{reports-title-bar-Kz6JjqsY.js.map → reports-title-bar-B1_IweEc.js.map} +1 -1
- package/dist/chunks/{reports-title-bar-Cay4E8SQ.esm.js → reports-title-bar-Kl8XQe-K.esm.js} +4 -4
- package/dist/chunks/{reports-title-bar-Cay4E8SQ.esm.js.map → reports-title-bar-Kl8XQe-K.esm.js.map} +1 -1
- package/dist/chunks/{route-page-map-Dn-SAbdf.js → route-page-map-CzFUh-SC.js} +3 -60
- package/dist/chunks/{route-page-map-Dn-SAbdf.js.map → route-page-map-CzFUh-SC.js.map} +1 -1
- package/dist/chunks/{route-page-map-DkWoisiB.esm.js → route-page-map-D6-7jBQT.esm.js} +76 -133
- package/dist/chunks/{route-page-map-DkWoisiB.esm.js.map → route-page-map-D6-7jBQT.esm.js.map} +1 -1
- package/dist/chunks/{routes-CAc76Zan.esm.js → routes-D9y_XQRu.esm.js} +4 -4
- package/dist/chunks/{routes-CAc76Zan.esm.js.map → routes-D9y_XQRu.esm.js.map} +1 -1
- package/dist/chunks/{routes-CfqLAYgR.js → routes-Dsumzjw0.js} +4 -4
- package/dist/chunks/{routes-CfqLAYgR.js.map → routes-Dsumzjw0.js.map} +1 -1
- package/dist/chunks/{schedule-report-B4ZfEuiU.js → schedule-report-BwmZ5jea.js} +4 -4
- package/dist/chunks/{schedule-report-B4ZfEuiU.js.map → schedule-report-BwmZ5jea.js.map} +1 -1
- package/dist/chunks/{schedule-report-CLXjjfjc.esm.js → schedule-report-CJXHVZ68.esm.js} +6 -6
- package/dist/chunks/{schedule-report-CLXjjfjc.esm.js.map → schedule-report-CJXHVZ68.esm.js.map} +1 -1
- package/dist/chunks/{schedule-report-modal-CB3G9H7x.esm.js → schedule-report-modal-D8Y-TZ4u.esm.js} +3 -3
- package/dist/chunks/{schedule-report-modal-CB3G9H7x.esm.js.map → schedule-report-modal-D8Y-TZ4u.esm.js.map} +1 -1
- package/dist/chunks/{schedule-report-modal-iwoDI-sg.js → schedule-report-modal-iNnWP9s4.js} +2 -2
- package/dist/chunks/{schedule-report-modal-iwoDI-sg.js.map → schedule-report-modal-iNnWP9s4.js.map} +1 -1
- package/dist/chunks/{searchable-select-0F6E4XAr.esm.js → searchable-select-BQtcqBKV.esm.js} +6 -6
- package/dist/chunks/{searchable-select-0F6E4XAr.esm.js.map → searchable-select-BQtcqBKV.esm.js.map} +1 -1
- package/dist/chunks/{searchable-select-_DCkITfk.js → searchable-select-DVUCWWti.js} +2 -2
- package/dist/chunks/{searchable-select-_DCkITfk.js.map → searchable-select-DVUCWWti.js.map} +1 -1
- package/dist/chunks/{share-modal-BaEyZs2h.esm.js → share-modal-BOyLBawK.esm.js} +3 -3
- package/dist/chunks/{share-modal-BaEyZs2h.esm.js.map → share-modal-BOyLBawK.esm.js.map} +1 -1
- package/dist/chunks/{share-modal-DrXvh-fV.js → share-modal-CobK7BN7.js} +2 -2
- package/dist/chunks/{share-modal-DrXvh-fV.js.map → share-modal-CobK7BN7.js.map} +1 -1
- package/dist/chunks/{share-modal-enhanced-DnEdDBmu.esm.js → share-modal-enhanced-CTp-tQw8.esm.js} +2 -2
- package/dist/chunks/{share-modal-enhanced-DnEdDBmu.esm.js.map → share-modal-enhanced-CTp-tQw8.esm.js.map} +1 -1
- package/dist/chunks/{share-modal-enhanced-BTr0zRhF.js → share-modal-enhanced-DVarD-jt.js} +2 -2
- package/dist/chunks/{share-modal-enhanced-BTr0zRhF.js.map → share-modal-enhanced-DVarD-jt.js.map} +1 -1
- package/dist/chunks/{sidebarScreen-DpYj_wlK.js → sidebarScreen-K-dlM6NA.js} +3 -3
- package/dist/chunks/{sidebarScreen-DpYj_wlK.js.map → sidebarScreen-K-dlM6NA.js.map} +1 -1
- package/dist/chunks/{sidebarScreen-DiOAiXeU.esm.js → sidebarScreen-lR6rw8bW.esm.js} +4 -4
- package/dist/chunks/{sidebarScreen-DiOAiXeU.esm.js.map → sidebarScreen-lR6rw8bW.esm.js.map} +1 -1
- package/dist/chunks/{store-BL5VFPie.esm.js → store-DJh8C3Vv.esm.js} +6 -6
- package/dist/chunks/{store-BL5VFPie.esm.js.map → store-DJh8C3Vv.esm.js.map} +1 -1
- package/dist/chunks/{table-DWx7x8zw.js → table-Bpt6ggr3.js} +2 -2
- package/dist/chunks/{table-DWx7x8zw.js.map → table-Bpt6ggr3.js.map} +1 -1
- package/dist/chunks/{table-gxAlAeTq.esm.js → table-DI3MyTNm.esm.js} +3 -3
- package/dist/chunks/{table-gxAlAeTq.esm.js.map → table-DI3MyTNm.esm.js.map} +1 -1
- package/dist/chunks/{table-form-DsTwCUcs.esm.js → table-form-8_f3FwhX.esm.js} +2 -2
- package/dist/chunks/{table-form-DsTwCUcs.esm.js.map → table-form-8_f3FwhX.esm.js.map} +1 -1
- package/dist/chunks/{template-editor-router-D4NIwVws.js → template-editor-router-DugWbCh0.js} +2 -2
- package/dist/chunks/{template-editor-router-D4NIwVws.js.map → template-editor-router-DugWbCh0.js.map} +1 -1
- package/dist/chunks/{template-editor-router-BXLUTvsk.esm.js → template-editor-router-uzghBOap.esm.js} +2 -2
- package/dist/chunks/{template-editor-router-BXLUTvsk.esm.js.map → template-editor-router-uzghBOap.esm.js.map} +1 -1
- package/dist/chunks/{template-modal-B2VgotrF.esm.js → template-modal-D7aLacan.esm.js} +7 -6
- package/dist/chunks/template-modal-D7aLacan.esm.js.map +1 -0
- package/dist/chunks/{template-modal-X-iSmlki.js → template-modal-Df7gF4QI.js} +5 -4
- package/dist/chunks/template-modal-Df7gF4QI.js.map +1 -0
- package/dist/chunks/{template-name-modal-CeqxIE2r.js → template-name-modal-ClreVUaz.js} +12 -5
- package/dist/chunks/template-name-modal-ClreVUaz.js.map +1 -0
- package/dist/chunks/{template-name-modal-Dctn8t3t.esm.js → template-name-modal-Dwe7U72p.esm.js} +12 -5
- package/dist/chunks/template-name-modal-Dwe7U72p.esm.js.map +1 -0
- package/dist/chunks/{templates-CCy1eG6A.esm.js → templates-9ZMHwRR6.esm.js} +10 -17
- package/dist/chunks/templates-9ZMHwRR6.esm.js.map +1 -0
- package/dist/chunks/{templates-CUREMwYo.js → templates-DCXbeOtH.js} +7 -14
- package/dist/chunks/templates-DCXbeOtH.js.map +1 -0
- package/dist/chunks/{text-area-B3nAZgFI.js → text-area-DxJs3eyE.js} +2 -2
- package/dist/chunks/{text-area-B3nAZgFI.js.map → text-area-DxJs3eyE.js.map} +1 -1
- package/dist/chunks/{text-area-xMWbJY0H.esm.js → text-area-zcBhicgg.esm.js} +2 -2
- package/dist/chunks/{text-area-xMWbJY0H.esm.js.map → text-area-zcBhicgg.esm.js.map} +1 -1
- package/dist/chunks/{text-measurement-BCjauPbB.esm.js → text-measurement-DMVkqP6b.esm.js} +2 -2
- package/dist/chunks/{text-measurement-BCjauPbB.esm.js.map → text-measurement-DMVkqP6b.esm.js.map} +1 -1
- package/dist/chunks/{translations-BrwQcVN3.esm.js → translations-JcE6qyDJ.esm.js} +3 -3
- package/dist/chunks/{translations-BrwQcVN3.esm.js.map → translations-JcE6qyDJ.esm.js.map} +1 -1
- package/dist/chunks/{uom-field-wrapper-DXZgzOYB.js → uom-field-wrapper-CSqeiVPY.js} +2 -2
- package/dist/chunks/{uom-field-wrapper-DXZgzOYB.js.map → uom-field-wrapper-CSqeiVPY.js.map} +1 -1
- package/dist/chunks/{uom-field-wrapper-CTbEc-MB.esm.js → uom-field-wrapper-CWTsSsSi.esm.js} +2 -2
- package/dist/chunks/{uom-field-wrapper-CTbEc-MB.esm.js.map → uom-field-wrapper-CWTsSsSi.esm.js.map} +1 -1
- package/dist/chunks/{upload-excel-BZPP13tP.esm.js → upload-excel-CkEQqZW2.esm.js} +2 -2
- package/dist/chunks/{upload-excel-BZPP13tP.esm.js.map → upload-excel-CkEQqZW2.esm.js.map} +1 -1
- package/dist/chunks/{use-translations-CcjSFA3F.esm.js → use-translations-BqBPN1DM.esm.js} +3 -3
- package/dist/chunks/{use-translations-CcjSFA3F.esm.js.map → use-translations-BqBPN1DM.esm.js.map} +1 -1
- package/dist/chunks/{use-translations-5wUQBxMm.js → use-translations-Cn3b4Kqh.js} +2 -2
- package/dist/chunks/{use-translations-5wUQBxMm.js.map → use-translations-Cn3b4Kqh.js.map} +1 -1
- package/dist/chunks/{useAccountSetting-vAqgEiJB.esm.js → useAccountSetting-DsU5zsjb.esm.js} +2 -2
- package/dist/chunks/{useAccountSetting-vAqgEiJB.esm.js.map → useAccountSetting-DsU5zsjb.esm.js.map} +1 -1
- package/dist/chunks/{useCheckSkuAndName-Dl24wQO-.esm.js → useCheckSkuAndName-5ua30aZf.esm.js} +2 -2
- package/dist/chunks/{useCheckSkuAndName-Dl24wQO-.esm.js.map → useCheckSkuAndName-5ua30aZf.esm.js.map} +1 -1
- package/dist/chunks/{useReduxIntegration-DZBfKF7d.esm.js → useReduxIntegration-BlLpfwk6.esm.js} +2 -2
- package/dist/chunks/{useReduxIntegration-DZBfKF7d.esm.js.map → useReduxIntegration-BlLpfwk6.esm.js.map} +1 -1
- package/dist/chunks/{useUniquenessCheck-bYjnp_0P.esm.js → useUniquenessCheck-CiR2q5bM.esm.js} +2 -2
- package/dist/chunks/{useUniquenessCheck-bYjnp_0P.esm.js.map → useUniquenessCheck-CiR2q5bM.esm.js.map} +1 -1
- package/dist/chunks/{useVendorAICompare-DZRFDk4i.esm.js → useVendorAICompare-DMJvJJ3Y.esm.js} +2 -2
- package/dist/chunks/{useVendorAICompare-DZRFDk4i.esm.js.map → useVendorAICompare-DMJvJJ3Y.esm.js.map} +1 -1
- package/dist/chunks/{value-editor-BSS9Ns2T.js → value-editor-Br7X_wEB.js} +2 -2
- package/dist/chunks/{value-editor-BSS9Ns2T.js.map → value-editor-Br7X_wEB.js.map} +1 -1
- package/dist/chunks/{value-editor-DQ1qgZ2u.esm.js → value-editor-BxFdnUyM.esm.js} +4 -4
- package/dist/chunks/{value-editor-DQ1qgZ2u.esm.js.map → value-editor-BxFdnUyM.esm.js.map} +1 -1
- package/dist/chunks/{vendor-ai-summary-BA6m2dH9.esm.js → vendor-ai-summary-Cpx90QOx.esm.js} +2 -2
- package/dist/chunks/{vendor-ai-summary-BA6m2dH9.esm.js.map → vendor-ai-summary-Cpx90QOx.esm.js.map} +1 -1
- package/dist/chunks/{vendor-ai-summary-DWmAaQ_N.js → vendor-ai-summary-zranZkfk.js} +2 -2
- package/dist/chunks/{vendor-ai-summary-DWmAaQ_N.js.map → vendor-ai-summary-zranZkfk.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 +37 -37
- package/dist/components/index.js +28 -28
- 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/text-area/index.esm.js +1 -1
- package/dist/components/text-area/index.js +1 -1
- package/dist/components/text-area/text-area/index.esm.js +1 -1
- package/dist/components/text-area/text-area/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 +143 -145
- package/dist/constants/index.js +3 -5
- 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 +237 -234
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +69 -66
- 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 +1 -2
- package/dist/src/components/chat-bot/chat-bot.d.ts +1 -5
- package/dist/src/constants/defaultColumns.d.ts +0 -1
- package/dist/src/constants/pathnames/pathname.procurement.d.ts +0 -4
- package/dist/src/layout/fullScreen/fullScreen.d.ts +0 -1
- package/dist/src/views/template-editor/components/EditorCanvas/FreeCanvas.d.ts +34 -0
- package/dist/src/views/template-editor/components/EditorCanvas/FreeElement.d.ts +30 -0
- package/dist/src/views/template-editor/components/EditorCanvas.d.ts +30 -12
- package/dist/src/views/template-editor/components/EditorHeader.d.ts +6 -0
- package/dist/src/views/template-editor/components/EditorSection.d.ts +1 -0
- package/dist/src/views/template-editor/components/SectionFlowEditor.d.ts +2 -3
- package/dist/src/views/template-editor/components/SectionFormatPanel.d.ts +2 -1
- package/dist/src/views/template-editor/components/controllers/TableControls.d.ts +23 -0
- package/dist/src/views/template-editor/components/controllers/TextControls.d.ts +3 -0
- package/dist/src/views/template-editor/components/stationery/StationeryPreview.d.ts +24 -0
- package/dist/src/views/template-editor/components/stationery/StationerySidebar.d.ts +9 -0
- package/dist/src/views/template-editor/engine/ai.d.ts +12 -0
- package/dist/src/views/template-editor/engine/app.d.ts +1 -0
- package/dist/src/views/template-editor/engine/controls.d.ts +4 -0
- package/dist/src/views/template-editor/engine/design-canvas.d.ts +24 -0
- package/dist/src/views/template-editor/engine/editor.d.ts +17 -0
- package/dist/src/views/template-editor/engine/engine.d.ts +18 -0
- package/dist/src/views/template-editor/engine/icons.d.ts +91 -0
- package/dist/src/views/template-editor/engine/letterpads.d.ts +1 -0
- package/dist/src/views/template-editor/engine/model.d.ts +20 -0
- package/dist/src/views/template-editor/engine/paginator.d.ts +30 -0
- package/dist/src/views/template-editor/engine/picker.d.ts +20 -0
- package/dist/src/views/template-editor/engine/schema.d.ts +647 -0
- package/dist/src/views/template-editor/engine/stationery-app.d.ts +10 -0
- package/dist/src/views/template-editor/engine/stationery-doc.d.ts +62 -0
- package/dist/src/views/template-editor/engine/stationery-free-element.d.ts +22 -0
- package/dist/src/views/template-editor/engine/stationery-store.d.ts +154 -0
- package/dist/src/views/template-editor/engine/templatebuilder.d.ts +51 -0
- package/dist/src/views/template-editor/engine/templates.d.ts +11 -0
- package/dist/src/views/template-editor/icons/custom-styled-icon.d.ts +7 -0
- package/dist/src/views/template-editor/icons/edit.d.ts +4 -0
- package/dist/src/views/template-editor/icons/trash.d.ts +4 -0
- package/dist/src/views/template-editor/types/editor.d.ts +20 -108
- package/dist/src/views/template-editor/types/stationery.d.ts +66 -0
- package/dist/src/views/template-editor/utils/common.d.ts +10 -1
- package/dist/src/views/template-editor/utils/compiler.d.ts +12 -0
- package/dist/src/views/template-editor/utils/constant.d.ts +4 -1
- package/dist/style.css +4629 -100
- 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 +0 -1
- package/dist/utils/export-filters/index.esm.js.map +1 -1
- package/dist/utils/export-filters/index.js +0 -1
- package/dist/utils/export-filters/index.js.map +1 -1
- package/dist/utils/index.esm.js +9 -9
- package/dist/utils/index.js +1 -1
- package/dist/utils/metaComponent/index.esm.js +1 -1
- package/dist/utils/metaComponent/index.js +1 -1
- 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 +39 -34
- package/dist/views/index.esm.js.map +1 -1
- package/dist/views/index.js +36 -31
- 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 +7 -6
- package/dist/views/template-editor/components/index.esm.js.map +1 -1
- package/dist/views/template-editor/components/index.js +4 -3
- 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 +25 -20
- package/dist/views/template-editor/index.esm.js.map +1 -1
- package/dist/views/template-editor/index.js +16 -11
- 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 +10 -6
- package/dist/views/template-editor/utils/index.js +6 -2
- package/dist/views/template-editor/utils/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunks/SectionFlowEditor-CFfJBYKx.esm.js +0 -5479
- package/dist/chunks/SectionFlowEditor-CFfJBYKx.esm.js.map +0 -1
- package/dist/chunks/SectionFlowEditor-sKsZ3oQo.js +0 -5478
- package/dist/chunks/SectionFlowEditor-sKsZ3oQo.js.map +0 -1
- package/dist/chunks/add-template-DVvbD9a4.esm.js +0 -11
- package/dist/chunks/add-template-DVvbD9a4.esm.js.map +0 -1
- package/dist/chunks/add-template-Dohg2bHJ.js +0 -10
- package/dist/chunks/add-template-Dohg2bHJ.js.map +0 -1
- package/dist/chunks/chat-bot-BpNtrZEL.esm.js.map +0 -1
- package/dist/chunks/chat-bot-osiGMG3g.js.map +0 -1
- package/dist/chunks/common-C5AokA7z.js +0 -368
- package/dist/chunks/common-C5AokA7z.js.map +0 -1
- package/dist/chunks/common-CaomnEjX.esm.js +0 -369
- package/dist/chunks/common-CaomnEjX.esm.js.map +0 -1
- package/dist/chunks/common-utility-DGpbsf7S.esm.js.map +0 -1
- package/dist/chunks/constant-Bwg2s_Sn.esm.js.map +0 -1
- package/dist/chunks/constant-ZYAN_teD.js.map +0 -1
- package/dist/chunks/edit-section-modal-BW-aZmUv.esm.js.map +0 -1
- package/dist/chunks/fullScreen-BLLa9ogA.js.map +0 -1
- package/dist/chunks/fullScreen-DFgzE41_.esm.js.map +0 -1
- package/dist/chunks/template-modal-B2VgotrF.esm.js.map +0 -1
- package/dist/chunks/template-modal-X-iSmlki.js.map +0 -1
- package/dist/chunks/template-name-modal-CeqxIE2r.js.map +0 -1
- package/dist/chunks/template-name-modal-Dctn8t3t.esm.js.map +0 -1
- package/dist/chunks/templates-CCy1eG6A.esm.js.map +0 -1
- package/dist/chunks/templates-CUREMwYo.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EditorSection-D6yaBfjP.js","sources":["../../src/views/template-editor/components/EditorHeader.tsx","../../src/views/template-editor/components/EditorSection.tsx"],"sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable unused-imports/no-unused-vars */\nimport React from 'react';\nimport {\n AppBar,\n Toolbar,\n Box,\n Link,\n Stack,\n IconButton,\n Divider,\n} from '@mui/material';\nimport { ZoomIn, ZoomOut, ZoomOutMap } from '@mui/icons-material';\nimport { Button } from '@/components/button';\nimport Typography from '@/components/typography/typography';\nimport { Edit, Eye, EyeOff } from '@/components/icons';\nimport CodeOutlinedIcon from '@mui/icons-material/CodeOutlined';\nimport DescriptionOutlinedIcon from '@mui/icons-material/DescriptionOutlined';\nimport ReceiptOutlinedIcon from '@mui/icons-material/ReceiptOutlined';\nimport LocalShippingOutlinedIcon from '@mui/icons-material/LocalShippingOutlined';\nimport FileCopyOutlinedIcon from '@mui/icons-material/FileCopyOutlined';\nimport { Link as RouterLink } from 'react-router-dom';\nimport { templateRoutes } from '../utils/common';\nimport { EnhancedSectionData } from '../types/editor';\nimport './EditorHeader.scss';\n\n\ninterface EditorHeaderProps {\n onSave: () => void;\n onPreview: () => void;\n preview: boolean;\n editHtml: boolean;\n onEditHtml: () => void;\n onEditModeChange?: () => void;\n sections: EnhancedSectionData[];\n isEditingHeaderFooter: boolean;\n setIsEditingHeaderFooter: (value: boolean) => void;\n onSaveHeaderFooter: (value: boolean) => void;\n showSample?: boolean;\n setShowSample?: (value: boolean | ((prev: boolean) => boolean)) => void;\n sampleType?: 'quotation' | 'invoice' | 'delivery';\n setSampleType?: (value: 'quotation' | 'invoice' | 'delivery') => void;\n samplePages?: number;\n setSamplePages?: (value: number | ((prev: number) => number)) => void;\n modulePath: string;\n type: string;\n mode: 'add' | 'edit';\n templateData: Record<string, any> | null;\n isSaving?: boolean;\n editMode: boolean;\n fromPreview?: boolean;\n zoom: number;\n onZoomIn: () => void;\n onZoomOut: () => void;\n onResetZoom: () => void;\n}\n\nconst EditorHeader: React.FC<EditorHeaderProps> = ({\n onSave,\n onPreview,\n preview,\n editHtml,\n onEditHtml,\n sections,\n isEditingHeaderFooter,\n onEditModeChange,\n setIsEditingHeaderFooter,\n onSaveHeaderFooter,\n showSample,\n setShowSample,\n sampleType,\n setSampleType,\n samplePages,\n setSamplePages,\n modulePath,\n type,\n mode = 'add',\n templateData,\n isSaving = false,\n editMode,\n fromPreview = false,\n zoom,\n onZoomIn,\n onZoomOut,\n onResetZoom,\n}) => {\n const ROUTES = templateRoutes(modulePath, type);\n return (\n <AppBar\n position=\"static\"\n color=\"default\"\n elevation={0}\n sx={{\n borderColor: 'divider',\n bgcolor: 'background.paper'\n }}\n >\n <Toolbar variant=\"dense\" sx={{ justifyContent: 'space-between', p: 3 }}>\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>\n <Link\n component={RouterLink}\n to={ROUTES.LIST}\n underline=\"hover\"\n color=\"text.secondary\"\n sx={{ fontSize: '0.875rem' }}\n >\n <Typography type=\"s5\" color='theme.secondary.800'>{type === 'email' ? 'Emails' : 'PDF'}</Typography>\n </Link>\n <Typography type=\"s5\" weight='medium' color='theme.secondary.1000'>/</Typography>\n <Typography type=\"s5\" weight='medium' color='theme.secondary.1000'>\n {mode === 'add' ? 'Add New' : editMode ? 'Edit' : 'Preview'} Template\n </Typography>\n {templateData && templateData?.name &&\n <>\n <Typography type=\"s5\" weight='medium' color='theme.secondary.1000'>/</Typography>\n <Typography type=\"s5\" weight='medium' color='theme.secondary.1000'>\n {templateData?.name}\n </Typography>\n </>\n }\n </Box>\n\n <Stack direction=\"row\" spacing={1} alignItems=\"center\" className=\"editorHeader--Buttons\">\n {/* Zoom Controls - Only show in preview mode */}\n {preview && (\n <>\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n gap: 1,\n borderRadius: 1,\n bgcolor: 'rgba(74, 192, 140, 0.08)',\n border: '1px solid rgba(74, 192, 140, 0.2)',\n }}\n >\n <IconButton\n size=\"small\"\n onClick={onZoomOut}\n disabled={zoom <= 50}\n color='#4AC08C'\n sx={{\n color: '#4AC08C',\n '&:hover': {\n bgcolor: 'rgba(74, 192, 140, 0.15)',\n },\n '&.Mui-disabled': {\n opacity: 0.3,\n color: '#4AC08C'\n }\n }}\n >\n <ZoomOut fontSize=\"small\" />\n </IconButton>\n\n <Typography\n type=\"s5\"\n weight='medium'\n sx={{\n minWidth: '50px',\n textAlign: 'center',\n color: '#4AC08C'\n }}\n >\n {zoom}%\n </Typography>\n\n <IconButton\n size=\"small\"\n onClick={onZoomIn}\n disabled={zoom >= 150}\n sx={{\n color: '#4AC08C',\n '&:hover': {\n bgcolor: 'rgba(74, 192, 140, 0.15)',\n },\n '&.Mui-disabled': {\n opacity: 0.3,\n color: '#4AC08C'\n }\n }}\n >\n <ZoomIn fontSize=\"small\" />\n </IconButton>\n\n <Divider\n orientation=\"vertical\"\n flexItem\n sx={{\n mx: 0.5,\n bgcolor: 'rgba(74, 192, 140, 0.3)'\n }}\n />\n\n <IconButton\n size=\"small\"\n onClick={onResetZoom}\n disabled={zoom === 100}\n title=\"Reset Zoom\"\n sx={{\n color: '#4AC08C',\n '&:hover': {\n bgcolor: 'rgba(74, 192, 140, 0.15)',\n },\n '&.Mui-disabled': {\n opacity: 0.3,\n color: '#4AC08C'\n }\n }}\n >\n <ZoomOutMap fontSize=\"small\" />\n </IconButton>\n </Box>\n\n <Divider orientation=\"vertical\" flexItem sx={{ mx: 1 }} />\n </>\n )}\n\n {!fromPreview ? (\n <>\n <button\n onClick={() => setIsEditingHeaderFooter(true)}\n className=\"pbtn\"\n disabled={preview}\n >\n <Edit fontSize='small' />\n Edit Header/Footer\n </button>\n \n <div className=\"pb-lens\">\n <button \n className={!preview ? 'is-active' : ''} \n onClick={() => preview && onPreview()}\n disabled={!sections?.length}\n >\n <Edit fontSize=\"small\" /> Edit\n </button>\n <button \n className={preview ? 'is-active' : ''} \n onClick={() => !preview && onPreview()}\n disabled={!sections?.length}\n >\n <Eye fontSize=\"small\" /> Preview\n </button>\n </div>\n <button\n onClick={onEditHtml}\n className={`pbtn ${editHtml ? 'pbtn--primary' : ''}`}\n disabled={!sections?.length || preview}\n >\n <CodeOutlinedIcon fontSize='small' />\n {editHtml ? 'Exit HTML Edit' : 'Edit HTML'}\n </button>\n \n {!isSaving && (\n <span className=\"pb-bar-stat is-dirty\">\n <span className=\"pb-bar-dirty\">\n <svg viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"6\" fill=\"currentColor\"/></svg>\n </span>\n Unsaved\n </span>\n )}\n <button\n onClick={onSave}\n className=\"pbtn pbtn--primary\"\n disabled={!sections?.length || isSaving}\n >\n {isSaving ? 'Saving...' : 'Save'}\n </button>\n </>\n ) : (\n editMode ? (\n <>\n {isEditingHeaderFooter ? (\n <>\n {setShowSample && (\n <>\n <button \n className=\"st-sample-tg\" \n onClick={() => setShowSample(v => !v)}\n title=\"Preview the master wrapped around a real document\"\n >\n <span className={`cx-switch ${showSample ? 'is-on' : ''}`} aria-hidden>\n <span className=\"cx-switch-dot\" />\n </span>\n Sample content\n </button>\n {showSample && (\n <div className=\"st-docchips\">\n {(['quotation', 'invoice', 'delivery'] as const).map(d => (\n <button key={d} className={`st-docchip ${sampleType === d ? 'is-active' : ''}`} onClick={() => setSampleType && setSampleType(d)}>\n <span className=\"st-docchip-dot\" style={{ background: d === 'quotation' ? '#1A8A56' : d === 'invoice' ? '#1B2C6E' : '#8a540b' }} />\n {d === 'quotation' && <DescriptionOutlinedIcon sx={{ width: 12, height: 12 }} />}\n {d === 'invoice' && <ReceiptOutlinedIcon sx={{ width: 12, height: 12 }} />}\n {d === 'delivery' && <LocalShippingOutlinedIcon sx={{ width: 12, height: 12 }} />}\n {d === 'quotation' ? 'Quotation' : d === 'invoice' ? 'Tax Invoice' : 'Delivery Note'}\n </button>\n ))}\n <button className={`st-docchip ${samplePages === 2 ? 'is-active' : ''}`} onClick={() => setSamplePages && setSamplePages(samplePages === 1 ? 2 : 1)} title=\"Add a continuation page to test header/footer repeat\">\n <FileCopyOutlinedIcon sx={{ width: 12, height: 12 }} />\n {samplePages === 2 ? '2 pages' : '1 page'}\n </button>\n </div>\n )}\n <Divider orientation=\"vertical\" flexItem sx={{ mx: 1 }} />\n </>\n )}\n <button\n onClick={() => setIsEditingHeaderFooter(false)}\n className=\"pbtn pbtn--ghost\"\n >\n Cancel Editing\n </button>\n <button\n onClick={() => onSaveHeaderFooter(true)}\n className=\"pbtn pbtn--primary\"\n >\n Save Changes\n </button>\n </>\n ) : (\n <>\n <button\n onClick={() => setIsEditingHeaderFooter(true)}\n className=\"pbtn\"\n disabled={preview}\n >\n <Edit fontSize='small' />\n Edit Header/Footer\n </button>\n \n <div className=\"pb-lens\">\n <button \n className={!preview ? 'is-active' : ''} \n onClick={() => preview && onPreview()}\n disabled={!sections?.length}\n >\n <Edit fontSize=\"small\" /> Edit\n </button>\n <button \n className={preview ? 'is-active' : ''} \n onClick={() => !preview && onPreview()}\n disabled={!sections?.length}\n >\n <Eye fontSize=\"small\" /> Preview\n </button>\n </div>\n\n {!isSaving && (\n <span className=\"pb-bar-stat is-dirty\">\n <span className=\"pb-bar-dirty\">\n <svg viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"6\" fill=\"currentColor\"/></svg>\n </span>\n Unsaved\n </span>\n )}\n <button\n onClick={onSave}\n className=\"pbtn pbtn--primary\"\n disabled={!sections?.length}\n >\n Save\n </button>\n <button\n onClick={() => onEditModeChange && onEditModeChange()}\n className=\"pbtn pbtn--ghost\"\n >\n Cancel\n </button>\n </>\n )}\n </>\n ) : (\n <button\n onClick={() => onEditModeChange && onEditModeChange()}\n className=\"pbtn pbtn--primary\"\n disabled={!sections?.length}\n >\n <Edit fontSize='small' />\n Edit\n </button>\n )\n )}\n </Stack>\n </Toolbar>\n </AppBar>\n );\n};\n\nexport default EditorHeader;","/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable unused-imports/no-unused-vars */\nimport React, { useRef, useState, lazy, Suspense, useCallback, useMemo } from 'react';\nimport { useDraggable, useDroppable } from '@dnd-kit/core';\nimport {\n\tBox,\n\tPaper,\n\tMenuItem,\n\tFormControl,\n\tIconButton,\n\tFade,\n\tFormControlLabel,\n\tSkeleton\n} from '@mui/material';\nimport DragIndicatorIcon from '@mui/icons-material/DragIndicator';\nimport SplitIcon from '@mui/icons-material/CallSplit';\nimport { SectionData } from '../types/editor';\nimport { Edit, Save, Trash } from '@/components/icons';\nimport Select from '@/components/select/select';\nimport Typography from '@/components/typography/typography';\nimport EditSectionModal from '../edit-section-modal/edit-section-modal';\nimport Checkbox from '@/components/checkbox/checkbox';\nimport Chip from '@/components/chip/chip';\nimport Close from '@mui/icons-material/Close';\nimport { useCKEditorStyleExtractor } from '../utils/style-extractor';\nimport { useDebouncedUpdate } from '../hooks/useDebouncedUpdate';\n\nconst CustomEditor = lazy(() => import('@/components/editor/custom-editor'));\n\ninterface EditorSectionProps {\n\tsection: SectionData;\n\tisSelected: boolean;\n\tisDragging: boolean;\n\tisOver: boolean;\n\tonSelect: () => void;\n\tonUpdate: (content: string, options?: any) => void;\n\tonSplit: (content1: string, content2: string) => void;\n\tonDelete: () => void;\n\tplaceholders: Array<{ value: string; label: string }>;\n\tsetIsSectionEditing: (value: boolean) => void;\n\tisPreview?: boolean;\n}\n\nconst editableSections = ['text', 'text-block', 'heading', 'heading-1', 'heading-2', 'heading-3', 'heading-4'];\n\nconst EditorSection: React.FC<EditorSectionProps> = ({\n\tsection,\n\tisSelected,\n\tisDragging,\n\tisOver,\n\tonSelect,\n\tonUpdate,\n\tonSplit,\n\tonDelete,\n\tplaceholders,\n\tsetIsSectionEditing,\n\tisPreview = false\n}) => {\n\tconst { extractStyles, getSingleStyles } = useCKEditorStyleExtractor();\n\n\tconst {\n\t\tattributes,\n\t\tlisteners,\n\t\tsetNodeRef: setDraggableRef,\n\t\ttransform\n\t} = useDraggable({ id: section.id });\n\n\tconst { setNodeRef: setDroppableRef } = useDroppable({ id: section.id });\n\tconst [isEditing, setIsEditing] = useState(false);\n\tconst [isHovered, setIsHovered] = useState(false);\n\tconst [isOpenEditSectionModal, setIsOpenEditSectionModal] = useState(false);\n\tconst [isEditedFromSource, setIsEditedFromSource] = useState(Boolean(section?.is_edited_from_source));\n\tconst [localContent, setLocalContent] = useState(section.content);\n\tconst [hasUserEdited, setHasUserEdited] = useState(false); // Track if user actually made changes\n\tconst editorRef = useRef<any>(null);\n\tconst mouseHoverTimeoutRef = useRef<number | null>(null);\n\tconst cursorPositionRef = useRef<{ from: number; to: number } | null>(null);\n\tconst isRestoringCursorRef = useRef(false);\n\n\t// Ref-based content tracking for contentEditable optimization\n\t// This ref tracks content changes without triggering re-renders during editing,\n\t// improving performance and preventing cursor position loss\n\tconst contentRef = useRef<string>(section.content);\n\tconst originalContentRef = useRef<string>(section.content); // Store original content\n\n\t// Create debounced version of onUpdate with 300ms delay\n\tconst debouncedUpdate = useDebouncedUpdate(onUpdate, 300);\n\n\t// Memoize style calculation\n\tconst style = useMemo(() => {\n\t\treturn transform\n\t\t\t? {\n\t\t\t\ttransform: `translate3d(${transform.x}px, ${transform.y}px, 0)`,\n\t\t\t\ttransition: 'none'\n\t\t\t}\n\t\t\t: { transition: 'all 0.2s ease' };\n\t}, [transform]);\n\n\t// Memoize sx prop for Paper to prevent re-creation\n\tconst paperSx = useMemo(() => ({\n\t\tposition: 'relative',\n\t\theight: '100%',\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'column',\n\t\toverflowX: 'auto',\n\t\tborder: isPreview ? 'none' : '1px dashed',\n\t\tborderColor: isPreview ? 'transparent' : (isSelected ? 'primary.main' : isOver ? 'primary.main' : 'grey.400'),\n\t\tborderRadius: 1,\n\t\tbgcolor: 'white',\n\t\topacity: isDragging ? 0.7 : 1,\n\t\tboxShadow: 'none',\n\t\ttransition: 'all 0.2s ease',\n\t\t'&:hover': {\n\t\t\tboxShadow: 'none'\n\t\t},\n\t\t'& table:not(.pbd-items)': {\n\t\t\tminWidth: 'max-content'\n\t\t},\n\t\t...(!isPreview && isOver && { borderColor: 'primary.main', boxShadow: 'none' })\n\t}), [isSelected, isOver, isDragging, isPreview]);\n\n\t// Memoize merged ref to prevent re-creation\n\tconst mergedRef = useCallback((node: HTMLElement | null) => {\n\t\tsetDraggableRef(node);\n\t\tsetDroppableRef(node);\n\t}, [setDraggableRef, setDroppableRef]);\n\n\t// Memoize event handlers\n\tconst handleDblClick = useCallback(() => {\n\t\tif (editableSections.includes(section.type)) {\n\t\t\thandleEditing();\n\t\t}\n\t}, [section.type]);\n\n\tconst handleEditing = useCallback(() => {\n\t\t// Store original content when entering edit mode\n\t\toriginalContentRef.current = section.content;\n\t\tsetHasUserEdited(false);\n\n\t\tif (section?.isSplitPair) {\n\t\t\tsetIsOpenEditSectionModal(true);\n\t\t} else {\n\t\t\tsetIsEditing(true);\n\t\t\tsetIsSectionEditing(true);\n\t\t}\n\t}, [section?.isSplitPair, section.content, setIsSectionEditing]);\n\n\tconst handleEditorReady = useCallback((editor: any) => {\n\t\teditorRef.current = editor;\n\n\t\t// Track cursor position changes in the editor\n\t\tif (editor?._tiptap) {\n\t\t\teditor._tiptap.on('selectionUpdate', () => {\n\t\t\t\tif (!isRestoringCursorRef.current && editor._tiptap) {\n\t\t\t\t\tconst { from, to } = editor._tiptap.state.selection;\n\t\t\t\t\tcursorPositionRef.current = { from, to };\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Track when user actually makes changes\n\t\t\teditor._tiptap.on('update', ({ transaction }) => {\n\t\t\t\t// Only mark as edited if the transaction actually changed the document\n\t\t\t\tif (transaction.docChanged) {\n\t\t\t\t\tsetHasUserEdited(true);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}, []);\n\n\tconst handleSave = useCallback((e: React.MouseEvent) => {\n\t\te.stopPropagation();\n\t\tif (editorRef.current) {\n\t\t\t// Save cursor position before getting content\n\t\t\tif (editorRef.current._tiptap) {\n\t\t\t\tconst { from, to } = editorRef.current._tiptap.state.selection;\n\t\t\t\tcursorPositionRef.current = { from, to };\n\t\t\t}\n\n\t\t\t// Get content from editor\n\t\t\t// Use getData() which returns sourceCodeRef.current from CustomEditor\n\t\t\t// This preserves the HTML structure better than getHTML()\n\t\t\tconst content = editorRef.current.getData();\n\n\t\t\t// Update ref immediately for instant tracking\n\t\t\tcontentRef.current = content;\n\n\t\t\t// Update local state for UI feedback\n\t\t\tsetLocalContent(content);\n\n\t\t\tconst styles = extractStyles(section.content, {\n\t\t\t\tincludeTagStyles: true,\n\t\t\t\tincludeInlineStyles: true,\n\t\t\t\tmergeNestedStyles: true,\n\t\t\t\tfilterEmptyStyles: true\n\t\t\t});\n\t\t\tconst single = getSingleStyles(styles);\n\t\t\t// Merge styles safely\n\t\t\tconst mergedStyles = {\n\t\t\t\t...(section.attributes?.styles || {}),\n\t\t\t\t...single\n\t\t\t};\n\n\t\t\t// Merge attributes, giving priority to new props\n\t\t\tconst mergedAttributes = {\n\t\t\t\t...(section.attributes || {}),\n\t\t\t\tstyles: mergedStyles,\n\t\t\t};\n\n\t\t\t// Use debounced update to prevent excessive re-renders and API calls\n\t\t\tdebouncedUpdate(content, { is_edited_from_source: isEditedFromSource, attributes: mergedAttributes });\n\t\t}\n\t\tsetIsEditing(false);\n\t\tsetIsSectionEditing(false)\n\t\tsetIsOpenEditSectionModal(false);\n\t\tsetHasUserEdited(false); // Reset edit flag\n\t}, [debouncedUpdate, isEditedFromSource, extractStyles, getSingleStyles, section.content, section.attributes, setIsSectionEditing, hasUserEdited]);\n\n\tconst handleSplit = useCallback(() => {\n\t\tconst content = section.content || '';\n\t\tconst firstHalf = content;\n\t\tconst secondHalf = '';\n\t\tonSplit(firstHalf, secondHalf);\n\t}, [section.content, onSplit]);\n\n\tconst handleAddPlaceholder = useCallback((placeholder: string) => {\n\t\tif (editorRef.current) {\n\t\t\tconst viewFragment = editorRef.current.data.processor.toView(\n\t\t\t\t`{{${placeholder}}}`\n\t\t\t);\n\t\t\tconst modelFragment = editorRef.current.data.toModel(viewFragment);\n\t\t\teditorRef.current.model.insertContent(modelFragment);\n\t\t}\n\t}, []);\n\n\tconst handleMouseEnter = useCallback(() => {\n\t\tif (mouseHoverTimeoutRef.current !== null) {\n\t\t\twindow.clearTimeout(mouseHoverTimeoutRef.current);\n\t\t}\n\t\tmouseHoverTimeoutRef.current = window.setTimeout(() => {\n\t\t\tsetIsHovered(true);\n\t\t}, 50);\n\t}, []);\n\n\tconst handleMouseLeave = useCallback(() => {\n\t\tif (mouseHoverTimeoutRef.current !== null) {\n\t\t\twindow.clearTimeout(mouseHoverTimeoutRef.current);\n\t\t}\n\t\tmouseHoverTimeoutRef.current = window.setTimeout(() => {\n\t\t\tsetIsHovered(false);\n\t\t}, 50);\n\t}, []);\n\n\tconst handleClick = useCallback((e: React.MouseEvent) => {\n\t\te.stopPropagation();\n\t\tonSelect();\n\t}, [onSelect]);\n\n\tconst handleDeleteClick = useCallback((e: React.MouseEvent) => {\n\t\te.stopPropagation();\n\t\tonDelete();\n\t}, [onDelete]);\n\n\tconst handleCancelEdit = useCallback(() => {\n\t\tsetIsEditing(false);\n\t\tsetIsSectionEditing(false)\n\t}, [setIsSectionEditing]);\n\n\tconst handleCheckboxChange = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\n\t\tsetIsEditedFromSource(e.target.checked);\n\t}, []);\n\n\tconst handleSelectChange = useCallback((e: any) => {\n\t\tif (e.target.value) {\n\t\t\thandleAddPlaceholder(e.target.value as string);\n\t\t\te.target.value = '';\n\t\t}\n\t}, [handleAddPlaceholder]);\n\n\t// Cleanup function for hover timeout\n\tReact.useEffect(() => {\n\t\treturn () => {\n\t\t\tif (mouseHoverTimeoutRef.current !== null) {\n\t\t\t\twindow.clearTimeout(mouseHoverTimeoutRef.current);\n\t\t\t}\n\t\t};\n\t}, []);\n\n\t// Sync local content with section content when it changes externally\n\t// and restore cursor position if editor is focused\n\tReact.useEffect(() => {\n\t\t// Only update if content actually changed from external source\n\t\t// Skip if we're currently editing (content changes come from user input)\n\t\tif (contentRef.current === section.content) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Update both ref and state for consistency\n\t\tcontentRef.current = section.content;\n\t\tsetLocalContent(section.content);\n\n\t\t// Only restore cursor position if:\n\t\t// 1. Editor is active (isEditing)\n\t\t// 2. Content change came from external source (not from user typing)\n\t\t// 3. We're not currently in the middle of restoring cursor\n\t\tif (isEditing && editorRef.current?._tiptap && cursorPositionRef.current && !isRestoringCursorRef.current) {\n\t\t\tconst editor = editorRef.current._tiptap;\n\t\t\tconst { from, to } = cursorPositionRef.current;\n\n\t\t\t// Use requestAnimationFrame to ensure DOM has updated\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\ttry {\n\t\t\t\t\tisRestoringCursorRef.current = true;\n\n\t\t\t\t\t// Validate that the cursor position is still valid after content update\n\t\t\t\t\tconst docSize = editor.state.doc.content.size;\n\t\t\t\t\tconst validFrom = Math.min(from, docSize);\n\t\t\t\t\tconst validTo = Math.min(to, docSize);\n\n\t\t\t\t\t// Restore selection\n\t\t\t\t\teditor.commands.setTextSelection({ from: validFrom, to: validTo });\n\n\t\t\t\t\t// Ensure editor maintains focus\n\t\t\t\t\tif (!editor.isFocused) {\n\t\t\t\t\t\teditor.commands.focus();\n\t\t\t\t\t}\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsole.warn('Failed to restore cursor position:', error);\n\t\t\t\t} finally {\n\t\t\t\t\tisRestoringCursorRef.current = false;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}, [section.content, isEditing]);\n\n\t// Memoize content rendering to prevent unnecessary re-renders\n\t// Only re-render when isEditing state changes or when not editing and localContent changes\n\tconst contentRenderer = useMemo(() => {\n\t\tif (isEditing) {\n\t\t\treturn (\n\t\t\t\t<Suspense fallback={<Skeleton />}>\n\t\t\t\t\t<CustomEditor\n\t\t\t\t\t\tkey={`editor-${section.id}`}\n\t\t\t\t\t\teditorRef={editorRef}\n\t\t\t\t\t\thandleEditorReady={handleEditorReady}\n\t\t\t\t\t\tdata={localContent}\n\t\t\t\t\t\tonError={(error: Error) => console.error('Editor error:', error)}\n\t\t\t\t\t/>\n\t\t\t\t</Suspense>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<Box\n\t\t\t\tdangerouslySetInnerHTML={{ __html: localContent }}\n\t\t\t\tsx={{\n\t\t\t\t\tposition: 'relative',\n\t\t\t\t\tpy: section.type === 'divider' ? 1 : 0,\n\t\t\t\t\tlineHeight: 1.6,\n\t\t\t\t\tflex: 1,\n\t\t\t\t\tminHeight: !localContent || localContent === '<p style=\"font-size: 16px; color: #333333; line-height: 1.5;\">New section</p>' ? '60px' : 'auto',\n\t\t\t\t\t'& p': { margin: 0 }\n\t\t\t\t}}\n\t\t\t/>\n\t\t);\n\t}, [isEditing, localContent, section.type, section.id]);\n\n\t// Memoize placeholder options\n\tconst placeholderOptions = useMemo(() =>\n\t\tplaceholders.map((option) => (\n\t\t\t<MenuItem key={option.value} value={option.value}>\n\t\t\t\t<Typography type='s4' color='theme.secondary.1000'>{option.label}</Typography>\n\t\t\t</MenuItem>\n\t\t))\n\t\t, [placeholders]);\n\n\treturn (\n\t\t<Paper\n\t\t\tref={mergedRef}\n\t\t\tstyle={style}\n\t\t\televation={isHovered || isSelected ? 3 : 1}\n\t\t\tsx={paperSx}\n\t\t\tonClick={handleClick}\n\t\t\tonDoubleClick={handleDblClick}\n\t\t\tonMouseEnter={handleMouseEnter}\n\t\t\tonMouseLeave={handleMouseLeave}>\n\t\t\t{!isPreview && isOver && !isDragging && (\n\t\t\t\t<Box\n\t\t\t\t\tsx={{\n\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\tright: 0,\n\t\t\t\t\t\tbottom: 0,\n\t\t\t\t\t\tborder: '2px dashed',\n\t\t\t\t\t\tborderColor: 'primary.main',\n\t\t\t\t\t\tborderRadius: 1,\n\t\t\t\t\t\tbgcolor: 'rgba(25, 118, 210, 0.04)',\n\t\t\t\t\t\tzIndex: 10,\n\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\tjustifyContent: 'center',\n\t\t\t\t\t\tpointerEvents: 'none'\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<Typography type='s2' color='primary' weight='medium'>Drop here</Typography>\n\t\t\t\t</Box>\n\t\t\t)}\n\t\t\t{!isPreview && (\n\t\t\t\t<Box\n\t\t\t\t\tsx={{\n\t\t\t\t\t\tbgcolor: 'grey.50',\n\t\t\t\t\t\tp: 1,\n\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\tjustifyContent: 'space-between',\n\t\t\t\t\t\tborderBottom: '1px solid',\n\t\t\t\t\t\tborderColor: 'grey.200'\n\t\t\t\t\t}}>\n\t\t\t\t\t<Box\n\t\t\t\t\t\t{...listeners}\n\t\t\t\t\t\t{...attributes}\n\t\t\t\t\t\tsx={{\n\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\t\tcursor: 'grab',\n\t\t\t\t\t\t\tpx: 1,\n\t\t\t\t\t\t\tpy: 0.5,\n\t\t\t\t\t\t\tborderRadius: 1,\n\t\t\t\t\t\t\ttransition: 'background-color 0.2s ease',\n\t\t\t\t\t\t\t'&:hover': { bgcolor: 'grey.100' },\n\t\t\t\t\t\t\t'&:active': { cursor: 'grabbing' }\n\t\t\t\t\t\t}}>\n\t\t\t\t\t\t<DragIndicatorIcon\n\t\t\t\t\t\t\tsx={{ color: 'grey.600', fontSize: '1.2rem', mr: 0.5 }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Typography type='s3' color='theme.secondary.600' weight='medium'>Move</Typography>\n\t\t\t\t\t</Box>\n\t\t\t\t\t<Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>\n\t\t\t\t\t\t{isEditing ? (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<FormControlLabel control={\n\t\t\t\t\t\t\t\t\t<Checkbox\n\t\t\t\t\t\t\t\t\t\tonChange={handleCheckboxChange}\n\t\t\t\t\t\t\t\t\t\tdefaultChecked={isEditedFromSource} />}\n\t\t\t\t\t\t\t\t\tlabel={<Typography type='s2' color='theme.secondary.1000'>Edited from source</Typography>} />\n\t\t\t\t\t\t\t\t<FormControl size='small' sx={{ minWidth: 160 }}>\n\t\t\t\t\t\t\t\t\t<Select\n\t\t\t\t\t\t\t\t\t\tdisplayEmpty\n\t\t\t\t\t\t\t\t\t\tvalue=''\n\t\t\t\t\t\t\t\t\t\tsize='small'\n\t\t\t\t\t\t\t\t\t\trenderValue={() => 'Add placeholder...'}\n\t\t\t\t\t\t\t\t\t\tsx={{\n\t\t\t\t\t\t\t\t\t\t\tbgcolor: 'white',\n\t\t\t\t\t\t\t\t\t\t\tborderRadius: 1,\n\t\t\t\t\t\t\t\t\t\t\t'& .MuiSelect-select': { py: 0.75 }\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tonChange={handleSelectChange}>\n\t\t\t\t\t\t\t\t\t\t{placeholderOptions}\n\t\t\t\t\t\t\t\t\t</Select>\n\t\t\t\t\t\t\t\t</FormControl>\n\t\t\t\t\t\t\t\t<Box>\n\t\t\t\t\t\t\t\t\t<IconButton size='small' onClick={handleSave}>\n\t\t\t\t\t\t\t\t\t\t<Save fontSize='small' color='inherit' />\n\t\t\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t\t\t\t<IconButton size='small' onClick={handleCancelEdit} color='error'>\n\t\t\t\t\t\t\t\t\t\t<Close fontSize='small' color='inherit' />\n\t\t\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Fade in={isHovered || isSelected} timeout={200}>\n\t\t\t\t\t\t\t\t<Box sx={{ display: 'flex', gap: 0.5 }}>\n\t\t\t\t\t\t\t\t\t{section?.is_edited_from_source && (\n\t\t\t\t\t\t\t\t\t\t<Chip\n\t\t\t\t\t\t\t\t\t\t\tlabel=\"Edited From Source\"\n\t\t\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\t\t\tsx={(theme) => ({\n\t\t\t\t\t\t\t\t\t\t\t\ttextTransform: 'capitalize',\n\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: theme.palette.theme?.tertiary1?.[200],\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: theme.palette.theme?.tertiary1?.[900]\n\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t{editableSections.includes(section.type) &&\n\t\t\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\t\t\tsize='small'\n\t\t\t\t\t\t\t\t\t\t\tonClick={handleEditing}\n\t\t\t\t\t\t\t\t\t\t\tsx={{\n\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: 'grey.100',\n\t\t\t\t\t\t\t\t\t\t\t\t'&:hover': { bgcolor: 'grey.200' }\n\t\t\t\t\t\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t\t\t\t\t<Edit fontSize='small' sx={{ color: 'theme.secondary.1000' }} />\n\t\t\t\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\t\tsize='small'\n\t\t\t\t\t\t\t\t\t\tonClick={handleSplit}\n\t\t\t\t\t\t\t\t\t\tsx={{\n\t\t\t\t\t\t\t\t\t\t\tbgcolor: 'grey.100',\n\t\t\t\t\t\t\t\t\t\t\t'&:hover': { bgcolor: 'grey.200' },\n\t\t\t\t\t\t\t\t\t\t\topacity: section?.splitWidth === 25 ? 0.5 : 1\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tdisabled={section?.splitWidth === 25}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<SplitIcon fontSize='small' color='primary' />\n\t\t\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\t\tsize='small'\n\t\t\t\t\t\t\t\t\t\tonClick={handleDeleteClick}\n\t\t\t\t\t\t\t\t\t\tsx={{\n\t\t\t\t\t\t\t\t\t\t\tbgcolor: 'grey.100',\n\t\t\t\t\t\t\t\t\t\t\t'&:hover': { bgcolor: 'grey.200' }\n\t\t\t\t\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t\t\t\t<Trash fontSize='small' sx={{ color: 'theme.error.500' }} />\n\t\t\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t\t</Fade>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Box>\n\t\t\t\t</Box>\n\t\t\t)}\n\t\t\t<Box sx={{ p: 3, bgcolor: 'white' }}>\n\t\t\t\t<style>\n\t\t\t\t\t{`\n\t\t\t\t\t\ta {\n\t\t\t\t\t\t\tcolor: #007bff !important;\n\t\t\t\t\t\t\ttext-decoration: none !important;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ta:hover {\n\t\t\t\t\t\t\ttext-decoration: underline;\n\t\t\t\t\t\t}\n `}\n\t\t\t\t</style>\n\t\t\t\t{contentRenderer}\n\t\t\t</Box>\n\t\t\t{isOpenEditSectionModal && <EditSectionModal\n\t\t\t\tisOpen={isOpenEditSectionModal}\n\t\t\t\tsetIsOpen={setIsOpenEditSectionModal}\n\t\t\t\tmodalProps={{ open: isOpenEditSectionModal }}\n\t\t\t\tplaceholders={placeholders}\n\t\t\t\thandleSave={handleSave}\n\t\t\t\thandleAddPlaceholder={handleAddPlaceholder}\n\t\t\t\thandleEditorReady={handleEditorReady}\n\t\t\t\tsection={section}\n\t\t\t/>}\n\t\t</Paper>\n\t);\n};\n\n// Custom comparison function to prevent unnecessary re-renders\n// Return true if props are equal (skip re-render), false if different (re-render)\nconst arePropsEqual = (prevProps: EditorSectionProps, nextProps: EditorSectionProps): boolean => {\n\t// Check if section data has changed\n\tif (prevProps.section.id !== nextProps.section.id) return false;\n\tif (prevProps.section.content !== nextProps.section.content) return false;\n\tif (prevProps.section.type !== nextProps.section.type) return false;\n\tif (prevProps.section.is_edited_from_source !== nextProps.section.is_edited_from_source) return false;\n\tif (prevProps.section.isSplitPair !== nextProps.section.isSplitPair) return false;\n\tif (prevProps.section.splitWidth !== nextProps.section.splitWidth) return false;\n\n\t// Check if interaction states have changed\n\tif (prevProps.isSelected !== nextProps.isSelected) return false;\n\tif (prevProps.isDragging !== nextProps.isDragging) return false;\n\tif (prevProps.isOver !== nextProps.isOver) return false;\n\tif (prevProps.isPreview !== nextProps.isPreview) return false;\n\n\t// Check if placeholders array reference has changed\n\tif (prevProps.placeholders !== nextProps.placeholders) return false;\n\n\t// Deep comparison for section attributes (styles, etc.)\n\tconst prevAttrs = JSON.stringify(prevProps.section.attributes);\n\tconst nextAttrs = JSON.stringify(nextProps.section.attributes);\n\tif (prevAttrs !== nextAttrs) return false;\n\n\t// All props are equal, skip re-render\n\treturn true;\n};\n\n// Wrap component with React.memo and custom comparison function\nconst MemoizedEditorSection = React.memo(EditorSection, arePropsEqual);\nMemoizedEditorSection.displayName = 'EditorSection';\n\nexport default MemoizedEditorSection;"],"names":["templateRoutes","jsx","AppBar","jsxs","Toolbar","Box","Link","RouterLink","Typography","Fragment","Stack","IconButton","ZoomOut","ZoomIn","Divider","ZoomOutMap","Edit","Eye","lazy","useCKEditorStyleExtractor","useDraggable","useDroppable","useState","useRef","useDebouncedUpdate","useMemo","useCallback","Suspense","Skeleton","MenuItem","Paper","FormControlLabel","Checkbox","FormControl","Select","Save","Fade","Chip","Trash","EditSectionModal"],"mappings":"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"}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { A as ActionBar } from "./action-bar-
|
|
3
|
-
import { M as MaterialTable } from "./searchable-select-
|
|
2
|
+
import { A as ActionBar } from "./action-bar-Ci6RlMBM.esm.js";
|
|
3
|
+
import { M as MaterialTable } from "./searchable-select-BQtcqBKV.esm.js";
|
|
4
4
|
import "lodash";
|
|
5
5
|
import { T as Typography } from "./typography-CG_A0iOJ.esm.js";
|
|
6
6
|
import { v as viewTypes } from "./action-bar-BsXTcYpL.esm.js";
|
|
7
7
|
import { useState, useMemo, useCallback, useEffect } from "react";
|
|
8
8
|
import { useNavigate, useLocation } from "react-router-dom";
|
|
9
9
|
import { useAuth } from "@erpsquad/common/runtime";
|
|
10
|
-
import { F as Footer } from "./footer-
|
|
10
|
+
import { F as Footer } from "./footer-Bv5NOAf9.esm.js";
|
|
11
11
|
import { Box } from "@mui/material";
|
|
12
|
-
import { G as GridCard } from "./grid-view-
|
|
13
|
-
import { u as useAppTranslations } from "./use-translations-
|
|
12
|
+
import { G as GridCard } from "./grid-view-BMfleQMC.esm.js";
|
|
13
|
+
import { u as useAppTranslations } from "./use-translations-BqBPN1DM.esm.js";
|
|
14
14
|
import { useTranslation } from "react-i18next";
|
|
15
15
|
import { u as useApi } from "./useApi-DgCJzWyy.esm.js";
|
|
16
|
-
import { q as getV1FormBuilder } from "./api-
|
|
17
|
-
import { ab as getToken } from "./api-
|
|
16
|
+
import { q as getV1FormBuilder } from "./api-yLpQ3k5s.esm.js";
|
|
17
|
+
import { ab as getToken } from "./api-8jutPLh0.esm.js";
|
|
18
18
|
const INITIAL_ORDER = ["name", "fields", "noOfCustomFields", "customFields"];
|
|
19
19
|
const DEFAULT_ACTION_BAR_DATA = [{ label: "Table", position: 0 }];
|
|
20
20
|
const CUSTOM_FIELD_DISPLAY_LIMIT = 5;
|
|
@@ -293,4 +293,4 @@ const Forms = ({ config }) => {
|
|
|
293
293
|
export {
|
|
294
294
|
Forms as F
|
|
295
295
|
};
|
|
296
|
-
//# sourceMappingURL=FORMS-
|
|
296
|
+
//# sourceMappingURL=FORMS-CR_DlD1m.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FORMS-pxf6g6xE.esm.js","sources":["../../src/components/custom-forms/FORMS.tsx"],"sourcesContent":["import { ActionBar } from '../action-bar';\nimport { MaterialTable } from '../material-table';\nimport { Typography } from '../typography';\nimport { viewTypes } from '../../constants';\nimport { MRT_ColumnOrderState, MRT_SortingState } from \"material-react-table\";\nimport { useState, useEffect, useMemo, useCallback } from \"react\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\nimport \"./custom-forms.scss\";\nimport { useAuth } from '@erpsquad/common/runtime';\nimport { Footer } from '../footer/footer';\nimport { IPaginationModel } from '../../types';\nimport { Box } from \"@mui/material\";\nimport GridCard from \"./grid-view/grid-view.js\";\nimport { useAppTranslations } from \"../../hooks/use-translations\";\nimport { useTranslation } from 'react-i18next';\nimport useApi from '../../hooks/useApi';\nimport { getV1FormBuilder, setBaseUrl as setSystemBaseUrl } from '../../api-client/api.system-feature/api';\nimport { getToken } from '../../utils/common';\n\ninterface ActionData {\n label: string;\n position: number;\n}\n\ninterface ModuleConfig {\n filterName: string;\n redirectionPath: string;\n}\n\n\n\nconst INITIAL_ORDER = [\"name\", \"fields\", \"noOfCustomFields\", \"customFields\"];\nconst DEFAULT_ACTION_BAR_DATA = [{ label: 'Table', position: 0 }];\nconst CUSTOM_FIELD_DISPLAY_LIMIT = 5;\n\ninterface FormBuilderState {\n rows: any[];\n isLoading: boolean;\n paginationModel: {\n pageNo: number;\n limit: number;\n totalCount: number;\n };\n}\n\nconst Forms = ({ config }: { config?: any }) => {\n const { t } = useTranslation();\n useAppTranslations(); // Load translations for current module\n const navigate = useNavigate();\n const location = useLocation();\n const { user } = useAuth();\n const { callApi } = useApi();\n\n const [formBuilder, setFormBuilder] = useState<FormBuilderState>({\n rows: [],\n isLoading: false,\n paginationModel: {\n pageNo: 1,\n limit: 20,\n totalCount: 0\n }\n });\n\n // Initialize state with proper defaults and memoization\n const [actionBarData, setActionBarData] = useState<ActionData[]>(() => {\n const formView = localStorage.getItem(\"form-view\");\n return formView ? JSON.parse(formView) : DEFAULT_ACTION_BAR_DATA;\n });\n\n const [search, setSearch] = useState<string>(\"\");\n const [actionBarActiveTab, setActionBarActiveTab] = useState<string>(() =>\n actionBarData?.[0]?.label || viewTypes.TABLE\n );\n const [columnOrder, setColumnOrder] = useState(INITIAL_ORDER);\n const [sorting, setSorting] = useState<MRT_SortingState>([]);\n\n // Memoized computed values to prevent unnecessary recalculations\n const currentModule = useMemo(() => location.pathname.split('/')[2], [location.pathname]);\n\n const modulesConfig = useMemo(() => ({\n ...config\n }), [config]);\n\n const moduleConfig = useMemo(() =>\n modulesConfig[currentModule] || { filterName: '', redirectionPath: '' },\n [currentModule, modulesConfig]\n );\n\n const navigationPath = useMemo(() =>\n `/dashboard/${currentModule}${moduleConfig.redirectionPath}`,\n [currentModule, moduleConfig.redirectionPath]\n );\n\n const filters = useMemo(() =>\n `(company_id.eq=${user?.company_id}&module.eq=${moduleConfig.filterName})`,\n [user?.company_id, moduleConfig.filterName]\n );\n\n const paginationData = useMemo(() => {\n const { pageNo, limit, totalCount } = formBuilder.paginationModel;\n const total = limit ? Math.ceil(totalCount / limit) : 0;\n const skip = limit * (pageNo - 1);\n return { total, skip, pageNo, limit };\n }, [formBuilder.paginationModel]);\n\n // Utility function moved outside render to prevent recreation\n const formatText = useCallback((key: string): string => {\n return key\n ? key\n .split(/[:_-]/)\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' ')\n : key;\n }, []);\n\n // Memoized event handlers to prevent child re-renders\n const handleColumnOrdering = useCallback((colOrder: MRT_ColumnOrderState) => {\n setColumnOrder(colOrder.slice(1));\n }, []);\n\n const handlePaginationModel = useCallback((model: IPaginationModel) => {\n setFormBuilder(prev => ({\n ...prev,\n paginationModel: {\n ...model,\n totalCount: prev.paginationModel.totalCount\n }\n }));\n }, []);\n\n const handleSearch = useCallback((searchValue: string) => {\n setSearch(searchValue);\n }, []);\n\n const handleRowClick = useCallback((rowData: any) => {\n navigate(navigationPath, {\n state: rowData,\n });\n }, [navigate, navigationPath]);\n\n // Memoized columns definition to prevent recreation on each render\n const columns = useMemo(() => [\n {\n accessorKey: \"name\",\n header: \"Form Name\",\n visible: true,\n Cell: ({ row }: any) =>\n row?.original?.name ? (\n <div\n onClick={() => handleRowClick(row.original)}\n style={{ cursor: 'pointer' }}\n >\n {formatText(row.original.name)}\n </div>\n ) : (\n \"-\"\n ),\n },\n {\n accessorKey: \"fields.length\",\n header: \"No. of Fields\",\n visible: true,\n size: 150\n },\n {\n accessorKey: \"fields\",\n header: \"No. of custom fields\",\n visible: true,\n size: 80,\n Cell: ({ row }: any) =>\n row?.original?.fields ? (\n <div>\n {\n row.original.fields.filter(\n (field: { is_system_field: boolean }) => !field.is_system_field,\n ).length\n }\n </div>\n ) : (\n \"-\"\n ),\n },\n {\n accessorKey: \"fields\",\n header: \"Custom Fields\",\n visible: true,\n Cell: ({ row }: any) => {\n const fields = row?.original?.fields?.filter(\n (field: { is_system_field: boolean; label: string }) =>\n !field?.is_system_field && field?.label,\n ) || [];\n\n if (!fields.length) return '-';\n\n return (\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 0.5, flexWrap: 'wrap', p: 0.5 }}>\n {fields.slice(0, CUSTOM_FIELD_DISPLAY_LIMIT).map((item: any, index: number) => (\n <Typography\n key={`${item.label}-${index}`}\n type=\"s5\"\n weight=\"medium\"\n className=\"forms--CustomField\"\n >\n {item?.label?.includes(\".\") ? t(item.label) : item.label}\n </Typography>\n ))}\n {fields.length > CUSTOM_FIELD_DISPLAY_LIMIT && (\n <Typography\n type=\"s5\"\n weight=\"medium\"\n className=\"forms--CustomField\"\n >\n +{fields.length - CUSTOM_FIELD_DISPLAY_LIMIT} more\n </Typography>\n )}\n </Box>\n );\n }\n },\n ], [formatText, handleRowClick, t]);\n\n // Memoized footer pages to prevent recreation\n const footerPages = useMemo(() => [\n {\n name: 'Default',\n _id: 1,\n data: []\n }\n ], []);\n\n\n const fetchForms = useCallback(async () => {\n if (!moduleConfig.filterName || !user?.company_id) return;\n\n const sort = sorting?.[0];\n const params = {\n skip: paginationData.skip,\n limit: paginationData.limit,\n search,\n filters,\n ...(sort && { order: `${sort.id}:${sort.desc ? -1 : 1}` }),\n ...getToken(),\n 'x-timezone': getToken()['x-timezone']?.toString() || ''\n };\n\n setFormBuilder(prev => ({ ...prev, isLoading: true }));\n const response = await getV1FormBuilder({\n ...params,\n ...getToken\n })\n setFormBuilder({\n rows: response?.data?.form,\n isLoading: false,\n paginationModel: {\n ...formBuilder.paginationModel,\n ...response?.data?.pagination\n }\n });\n\n\n }, [filters,\n paginationData.skip,\n paginationData.limit,\n sorting,\n search,\n moduleConfig.filterName,\n user?.company_id,\n ])\n // Effect for fetching data - optimized with proper dependencies\n useEffect(() => {\n fetchForms()\n }, [\n fetchForms\n ]);\n\n // Effect for setting active tab - only run when actionBarData changes\n useEffect(() => {\n if (actionBarData?.length && actionBarData[0].label !== actionBarActiveTab) {\n setActionBarActiveTab(actionBarData[0].label);\n }\n }, [actionBarData]);\n\n // Effect for localStorage - debounced to prevent excessive writes\n useEffect(() => {\n if (actionBarData?.length) {\n const timeoutId = setTimeout(() => {\n localStorage.setItem(\"form-view\", JSON.stringify(actionBarData));\n }, 300);\n\n return () => clearTimeout(timeoutId);\n }\n }, [actionBarData]);\n\n return (\n <section className=\"forms\">\n <ActionBar\n title=\"Form\"\n button={false}\n data={actionBarData}\n setData={setActionBarData}\n active={actionBarActiveTab}\n setActive={(tab) => {\n setActionBarActiveTab(tab);\n }}\n handleSearch={handleSearch}\n showFilter={false}\n />\n\n {actionBarActiveTab === viewTypes.TABLE && (\n <MaterialTable\n enablePagination={false}\n columnOrder={[\"mrt-row-select\", ...columnOrder]}\n handleColumnOrdering={handleColumnOrdering}\n rows={formBuilder.rows}\n columns={columns}\n totalPages={1}\n paginationModel={{ pageNo: 1, limit: 20 }}\n enableEditing={false}\n states={{ sorting: sorting || [] }}\n onSortingChange={setSorting}\n disableDefaultActionColumn\n getSelectedData={() => { }}\n />\n )}\n\n {actionBarActiveTab === viewTypes.GRID && (\n <GridCard data={formBuilder.rows} config={config} />\n )}\n\n <Footer\n pages={footerPages}\n setPages={() => { }}\n currentPage={1}\n setCurrentPage={() => { }}\n total={paginationData.total}\n paginationModel={{\n pageNo: formBuilder.paginationModel.pageNo,\n limit: formBuilder.paginationModel.limit\n }}\n handlePaginationModel={handlePaginationModel}\n sharedPages={[]}\n resource=\"\"\n savePageConfiguration={() => { }}\n handlePageDelete={() => { }}\n enablePages={false}\n isPaginationDisplayed={true}\n />\n </section>\n );\n};\n\nexport default Forms;"],"names":["_a"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FORMS-CR_DlD1m.esm.js","sources":["../../src/components/custom-forms/FORMS.tsx"],"sourcesContent":["import { ActionBar } from '../action-bar';\nimport { MaterialTable } from '../material-table';\nimport { Typography } from '../typography';\nimport { viewTypes } from '../../constants';\nimport { MRT_ColumnOrderState, MRT_SortingState } from \"material-react-table\";\nimport { useState, useEffect, useMemo, useCallback } from \"react\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\nimport \"./custom-forms.scss\";\nimport { useAuth } from '@erpsquad/common/runtime';\nimport { Footer } from '../footer/footer';\nimport { IPaginationModel } from '../../types';\nimport { Box } from \"@mui/material\";\nimport GridCard from \"./grid-view/grid-view.js\";\nimport { useAppTranslations } from \"../../hooks/use-translations\";\nimport { useTranslation } from 'react-i18next';\nimport useApi from '../../hooks/useApi';\nimport { getV1FormBuilder, setBaseUrl as setSystemBaseUrl } from '../../api-client/api.system-feature/api';\nimport { getToken } from '../../utils/common';\n\ninterface ActionData {\n label: string;\n position: number;\n}\n\ninterface ModuleConfig {\n filterName: string;\n redirectionPath: string;\n}\n\n\n\nconst INITIAL_ORDER = [\"name\", \"fields\", \"noOfCustomFields\", \"customFields\"];\nconst DEFAULT_ACTION_BAR_DATA = [{ label: 'Table', position: 0 }];\nconst CUSTOM_FIELD_DISPLAY_LIMIT = 5;\n\ninterface FormBuilderState {\n rows: any[];\n isLoading: boolean;\n paginationModel: {\n pageNo: number;\n limit: number;\n totalCount: number;\n };\n}\n\nconst Forms = ({ config }: { config?: any }) => {\n const { t } = useTranslation();\n useAppTranslations(); // Load translations for current module\n const navigate = useNavigate();\n const location = useLocation();\n const { user } = useAuth();\n const { callApi } = useApi();\n\n const [formBuilder, setFormBuilder] = useState<FormBuilderState>({\n rows: [],\n isLoading: false,\n paginationModel: {\n pageNo: 1,\n limit: 20,\n totalCount: 0\n }\n });\n\n // Initialize state with proper defaults and memoization\n const [actionBarData, setActionBarData] = useState<ActionData[]>(() => {\n const formView = localStorage.getItem(\"form-view\");\n return formView ? JSON.parse(formView) : DEFAULT_ACTION_BAR_DATA;\n });\n\n const [search, setSearch] = useState<string>(\"\");\n const [actionBarActiveTab, setActionBarActiveTab] = useState<string>(() =>\n actionBarData?.[0]?.label || viewTypes.TABLE\n );\n const [columnOrder, setColumnOrder] = useState(INITIAL_ORDER);\n const [sorting, setSorting] = useState<MRT_SortingState>([]);\n\n // Memoized computed values to prevent unnecessary recalculations\n const currentModule = useMemo(() => location.pathname.split('/')[2], [location.pathname]);\n\n const modulesConfig = useMemo(() => ({\n ...config\n }), [config]);\n\n const moduleConfig = useMemo(() =>\n modulesConfig[currentModule] || { filterName: '', redirectionPath: '' },\n [currentModule, modulesConfig]\n );\n\n const navigationPath = useMemo(() =>\n `/dashboard/${currentModule}${moduleConfig.redirectionPath}`,\n [currentModule, moduleConfig.redirectionPath]\n );\n\n const filters = useMemo(() =>\n `(company_id.eq=${user?.company_id}&module.eq=${moduleConfig.filterName})`,\n [user?.company_id, moduleConfig.filterName]\n );\n\n const paginationData = useMemo(() => {\n const { pageNo, limit, totalCount } = formBuilder.paginationModel;\n const total = limit ? Math.ceil(totalCount / limit) : 0;\n const skip = limit * (pageNo - 1);\n return { total, skip, pageNo, limit };\n }, [formBuilder.paginationModel]);\n\n // Utility function moved outside render to prevent recreation\n const formatText = useCallback((key: string): string => {\n return key\n ? key\n .split(/[:_-]/)\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' ')\n : key;\n }, []);\n\n // Memoized event handlers to prevent child re-renders\n const handleColumnOrdering = useCallback((colOrder: MRT_ColumnOrderState) => {\n setColumnOrder(colOrder.slice(1));\n }, []);\n\n const handlePaginationModel = useCallback((model: IPaginationModel) => {\n setFormBuilder(prev => ({\n ...prev,\n paginationModel: {\n ...model,\n totalCount: prev.paginationModel.totalCount\n }\n }));\n }, []);\n\n const handleSearch = useCallback((searchValue: string) => {\n setSearch(searchValue);\n }, []);\n\n const handleRowClick = useCallback((rowData: any) => {\n navigate(navigationPath, {\n state: rowData,\n });\n }, [navigate, navigationPath]);\n\n // Memoized columns definition to prevent recreation on each render\n const columns = useMemo(() => [\n {\n accessorKey: \"name\",\n header: \"Form Name\",\n visible: true,\n Cell: ({ row }: any) =>\n row?.original?.name ? (\n <div\n onClick={() => handleRowClick(row.original)}\n style={{ cursor: 'pointer' }}\n >\n {formatText(row.original.name)}\n </div>\n ) : (\n \"-\"\n ),\n },\n {\n accessorKey: \"fields.length\",\n header: \"No. of Fields\",\n visible: true,\n size: 150\n },\n {\n accessorKey: \"fields\",\n header: \"No. of custom fields\",\n visible: true,\n size: 80,\n Cell: ({ row }: any) =>\n row?.original?.fields ? (\n <div>\n {\n row.original.fields.filter(\n (field: { is_system_field: boolean }) => !field.is_system_field,\n ).length\n }\n </div>\n ) : (\n \"-\"\n ),\n },\n {\n accessorKey: \"fields\",\n header: \"Custom Fields\",\n visible: true,\n Cell: ({ row }: any) => {\n const fields = row?.original?.fields?.filter(\n (field: { is_system_field: boolean; label: string }) =>\n !field?.is_system_field && field?.label,\n ) || [];\n\n if (!fields.length) return '-';\n\n return (\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 0.5, flexWrap: 'wrap', p: 0.5 }}>\n {fields.slice(0, CUSTOM_FIELD_DISPLAY_LIMIT).map((item: any, index: number) => (\n <Typography\n key={`${item.label}-${index}`}\n type=\"s5\"\n weight=\"medium\"\n className=\"forms--CustomField\"\n >\n {item?.label?.includes(\".\") ? t(item.label) : item.label}\n </Typography>\n ))}\n {fields.length > CUSTOM_FIELD_DISPLAY_LIMIT && (\n <Typography\n type=\"s5\"\n weight=\"medium\"\n className=\"forms--CustomField\"\n >\n +{fields.length - CUSTOM_FIELD_DISPLAY_LIMIT} more\n </Typography>\n )}\n </Box>\n );\n }\n },\n ], [formatText, handleRowClick, t]);\n\n // Memoized footer pages to prevent recreation\n const footerPages = useMemo(() => [\n {\n name: 'Default',\n _id: 1,\n data: []\n }\n ], []);\n\n\n const fetchForms = useCallback(async () => {\n if (!moduleConfig.filterName || !user?.company_id) return;\n\n const sort = sorting?.[0];\n const params = {\n skip: paginationData.skip,\n limit: paginationData.limit,\n search,\n filters,\n ...(sort && { order: `${sort.id}:${sort.desc ? -1 : 1}` }),\n ...getToken(),\n 'x-timezone': getToken()['x-timezone']?.toString() || ''\n };\n\n setFormBuilder(prev => ({ ...prev, isLoading: true }));\n const response = await getV1FormBuilder({\n ...params,\n ...getToken\n })\n setFormBuilder({\n rows: response?.data?.form,\n isLoading: false,\n paginationModel: {\n ...formBuilder.paginationModel,\n ...response?.data?.pagination\n }\n });\n\n\n }, [filters,\n paginationData.skip,\n paginationData.limit,\n sorting,\n search,\n moduleConfig.filterName,\n user?.company_id,\n ])\n // Effect for fetching data - optimized with proper dependencies\n useEffect(() => {\n fetchForms()\n }, [\n fetchForms\n ]);\n\n // Effect for setting active tab - only run when actionBarData changes\n useEffect(() => {\n if (actionBarData?.length && actionBarData[0].label !== actionBarActiveTab) {\n setActionBarActiveTab(actionBarData[0].label);\n }\n }, [actionBarData]);\n\n // Effect for localStorage - debounced to prevent excessive writes\n useEffect(() => {\n if (actionBarData?.length) {\n const timeoutId = setTimeout(() => {\n localStorage.setItem(\"form-view\", JSON.stringify(actionBarData));\n }, 300);\n\n return () => clearTimeout(timeoutId);\n }\n }, [actionBarData]);\n\n return (\n <section className=\"forms\">\n <ActionBar\n title=\"Form\"\n button={false}\n data={actionBarData}\n setData={setActionBarData}\n active={actionBarActiveTab}\n setActive={(tab) => {\n setActionBarActiveTab(tab);\n }}\n handleSearch={handleSearch}\n showFilter={false}\n />\n\n {actionBarActiveTab === viewTypes.TABLE && (\n <MaterialTable\n enablePagination={false}\n columnOrder={[\"mrt-row-select\", ...columnOrder]}\n handleColumnOrdering={handleColumnOrdering}\n rows={formBuilder.rows}\n columns={columns}\n totalPages={1}\n paginationModel={{ pageNo: 1, limit: 20 }}\n enableEditing={false}\n states={{ sorting: sorting || [] }}\n onSortingChange={setSorting}\n disableDefaultActionColumn\n getSelectedData={() => { }}\n />\n )}\n\n {actionBarActiveTab === viewTypes.GRID && (\n <GridCard data={formBuilder.rows} config={config} />\n )}\n\n <Footer\n pages={footerPages}\n setPages={() => { }}\n currentPage={1}\n setCurrentPage={() => { }}\n total={paginationData.total}\n paginationModel={{\n pageNo: formBuilder.paginationModel.pageNo,\n limit: formBuilder.paginationModel.limit\n }}\n handlePaginationModel={handlePaginationModel}\n sharedPages={[]}\n resource=\"\"\n savePageConfiguration={() => { }}\n handlePageDelete={() => { }}\n enablePages={false}\n isPaginationDisplayed={true}\n />\n </section>\n );\n};\n\nexport default Forms;"],"names":["_a"],"mappings":"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"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const jsxRuntime = require("react/jsx-runtime");
|
|
3
|
-
const actionBar$1 = require("./action-bar-
|
|
4
|
-
const searchableSelect = require("./searchable-select-
|
|
3
|
+
const actionBar$1 = require("./action-bar-jLqQTqU7.js");
|
|
4
|
+
const searchableSelect = require("./searchable-select-DVUCWWti.js");
|
|
5
5
|
require("lodash");
|
|
6
6
|
const typography = require("./typography-Bqfr1Ksf.js");
|
|
7
7
|
const actionBar = require("./action-bar-DMv6sqDP.js");
|
|
8
8
|
const React = require("react");
|
|
9
9
|
const reactRouterDom = require("react-router-dom");
|
|
10
10
|
const runtime = require("@erpsquad/common/runtime");
|
|
11
|
-
const footer = require("./footer-
|
|
11
|
+
const footer = require("./footer-DioOh69g.js");
|
|
12
12
|
const material = require("@mui/material");
|
|
13
13
|
const gridView = require("./grid-view-B1u_x5yr.js");
|
|
14
|
-
const useTranslations = require("./use-translations-
|
|
14
|
+
const useTranslations = require("./use-translations-Cn3b4Kqh.js");
|
|
15
15
|
const reactI18next = require("react-i18next");
|
|
16
16
|
const useApi = require("./useApi-DRf6TvNl.js");
|
|
17
17
|
const api$1 = require("./api-D3c7E20L.js");
|
|
@@ -292,4 +292,4 @@ const Forms = ({ config }) => {
|
|
|
292
292
|
] });
|
|
293
293
|
};
|
|
294
294
|
exports.Forms = Forms;
|
|
295
|
-
//# sourceMappingURL=FORMS-
|
|
295
|
+
//# sourceMappingURL=FORMS-EouVYay1.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FORMS-CUx32b_4.js","sources":["../../src/components/custom-forms/FORMS.tsx"],"sourcesContent":["import { ActionBar } from '../action-bar';\nimport { MaterialTable } from '../material-table';\nimport { Typography } from '../typography';\nimport { viewTypes } from '../../constants';\nimport { MRT_ColumnOrderState, MRT_SortingState } from \"material-react-table\";\nimport { useState, useEffect, useMemo, useCallback } from \"react\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\nimport \"./custom-forms.scss\";\nimport { useAuth } from '@erpsquad/common/runtime';\nimport { Footer } from '../footer/footer';\nimport { IPaginationModel } from '../../types';\nimport { Box } from \"@mui/material\";\nimport GridCard from \"./grid-view/grid-view.js\";\nimport { useAppTranslations } from \"../../hooks/use-translations\";\nimport { useTranslation } from 'react-i18next';\nimport useApi from '../../hooks/useApi';\nimport { getV1FormBuilder, setBaseUrl as setSystemBaseUrl } from '../../api-client/api.system-feature/api';\nimport { getToken } from '../../utils/common';\n\ninterface ActionData {\n label: string;\n position: number;\n}\n\ninterface ModuleConfig {\n filterName: string;\n redirectionPath: string;\n}\n\n\n\nconst INITIAL_ORDER = [\"name\", \"fields\", \"noOfCustomFields\", \"customFields\"];\nconst DEFAULT_ACTION_BAR_DATA = [{ label: 'Table', position: 0 }];\nconst CUSTOM_FIELD_DISPLAY_LIMIT = 5;\n\ninterface FormBuilderState {\n rows: any[];\n isLoading: boolean;\n paginationModel: {\n pageNo: number;\n limit: number;\n totalCount: number;\n };\n}\n\nconst Forms = ({ config }: { config?: any }) => {\n const { t } = useTranslation();\n useAppTranslations(); // Load translations for current module\n const navigate = useNavigate();\n const location = useLocation();\n const { user } = useAuth();\n const { callApi } = useApi();\n\n const [formBuilder, setFormBuilder] = useState<FormBuilderState>({\n rows: [],\n isLoading: false,\n paginationModel: {\n pageNo: 1,\n limit: 20,\n totalCount: 0\n }\n });\n\n // Initialize state with proper defaults and memoization\n const [actionBarData, setActionBarData] = useState<ActionData[]>(() => {\n const formView = localStorage.getItem(\"form-view\");\n return formView ? JSON.parse(formView) : DEFAULT_ACTION_BAR_DATA;\n });\n\n const [search, setSearch] = useState<string>(\"\");\n const [actionBarActiveTab, setActionBarActiveTab] = useState<string>(() =>\n actionBarData?.[0]?.label || viewTypes.TABLE\n );\n const [columnOrder, setColumnOrder] = useState(INITIAL_ORDER);\n const [sorting, setSorting] = useState<MRT_SortingState>([]);\n\n // Memoized computed values to prevent unnecessary recalculations\n const currentModule = useMemo(() => location.pathname.split('/')[2], [location.pathname]);\n\n const modulesConfig = useMemo(() => ({\n ...config\n }), [config]);\n\n const moduleConfig = useMemo(() =>\n modulesConfig[currentModule] || { filterName: '', redirectionPath: '' },\n [currentModule, modulesConfig]\n );\n\n const navigationPath = useMemo(() =>\n `/dashboard/${currentModule}${moduleConfig.redirectionPath}`,\n [currentModule, moduleConfig.redirectionPath]\n );\n\n const filters = useMemo(() =>\n `(company_id.eq=${user?.company_id}&module.eq=${moduleConfig.filterName})`,\n [user?.company_id, moduleConfig.filterName]\n );\n\n const paginationData = useMemo(() => {\n const { pageNo, limit, totalCount } = formBuilder.paginationModel;\n const total = limit ? Math.ceil(totalCount / limit) : 0;\n const skip = limit * (pageNo - 1);\n return { total, skip, pageNo, limit };\n }, [formBuilder.paginationModel]);\n\n // Utility function moved outside render to prevent recreation\n const formatText = useCallback((key: string): string => {\n return key\n ? key\n .split(/[:_-]/)\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' ')\n : key;\n }, []);\n\n // Memoized event handlers to prevent child re-renders\n const handleColumnOrdering = useCallback((colOrder: MRT_ColumnOrderState) => {\n setColumnOrder(colOrder.slice(1));\n }, []);\n\n const handlePaginationModel = useCallback((model: IPaginationModel) => {\n setFormBuilder(prev => ({\n ...prev,\n paginationModel: {\n ...model,\n totalCount: prev.paginationModel.totalCount\n }\n }));\n }, []);\n\n const handleSearch = useCallback((searchValue: string) => {\n setSearch(searchValue);\n }, []);\n\n const handleRowClick = useCallback((rowData: any) => {\n navigate(navigationPath, {\n state: rowData,\n });\n }, [navigate, navigationPath]);\n\n // Memoized columns definition to prevent recreation on each render\n const columns = useMemo(() => [\n {\n accessorKey: \"name\",\n header: \"Form Name\",\n visible: true,\n Cell: ({ row }: any) =>\n row?.original?.name ? (\n <div\n onClick={() => handleRowClick(row.original)}\n style={{ cursor: 'pointer' }}\n >\n {formatText(row.original.name)}\n </div>\n ) : (\n \"-\"\n ),\n },\n {\n accessorKey: \"fields.length\",\n header: \"No. of Fields\",\n visible: true,\n size: 150\n },\n {\n accessorKey: \"fields\",\n header: \"No. of custom fields\",\n visible: true,\n size: 80,\n Cell: ({ row }: any) =>\n row?.original?.fields ? (\n <div>\n {\n row.original.fields.filter(\n (field: { is_system_field: boolean }) => !field.is_system_field,\n ).length\n }\n </div>\n ) : (\n \"-\"\n ),\n },\n {\n accessorKey: \"fields\",\n header: \"Custom Fields\",\n visible: true,\n Cell: ({ row }: any) => {\n const fields = row?.original?.fields?.filter(\n (field: { is_system_field: boolean; label: string }) =>\n !field?.is_system_field && field?.label,\n ) || [];\n\n if (!fields.length) return '-';\n\n return (\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 0.5, flexWrap: 'wrap', p: 0.5 }}>\n {fields.slice(0, CUSTOM_FIELD_DISPLAY_LIMIT).map((item: any, index: number) => (\n <Typography\n key={`${item.label}-${index}`}\n type=\"s5\"\n weight=\"medium\"\n className=\"forms--CustomField\"\n >\n {item?.label?.includes(\".\") ? t(item.label) : item.label}\n </Typography>\n ))}\n {fields.length > CUSTOM_FIELD_DISPLAY_LIMIT && (\n <Typography\n type=\"s5\"\n weight=\"medium\"\n className=\"forms--CustomField\"\n >\n +{fields.length - CUSTOM_FIELD_DISPLAY_LIMIT} more\n </Typography>\n )}\n </Box>\n );\n }\n },\n ], [formatText, handleRowClick, t]);\n\n // Memoized footer pages to prevent recreation\n const footerPages = useMemo(() => [\n {\n name: 'Default',\n _id: 1,\n data: []\n }\n ], []);\n\n\n const fetchForms = useCallback(async () => {\n if (!moduleConfig.filterName || !user?.company_id) return;\n\n const sort = sorting?.[0];\n const params = {\n skip: paginationData.skip,\n limit: paginationData.limit,\n search,\n filters,\n ...(sort && { order: `${sort.id}:${sort.desc ? -1 : 1}` }),\n ...getToken(),\n 'x-timezone': getToken()['x-timezone']?.toString() || ''\n };\n\n setFormBuilder(prev => ({ ...prev, isLoading: true }));\n const response = await getV1FormBuilder({\n ...params,\n ...getToken\n })\n setFormBuilder({\n rows: response?.data?.form,\n isLoading: false,\n paginationModel: {\n ...formBuilder.paginationModel,\n ...response?.data?.pagination\n }\n });\n\n\n }, [filters,\n paginationData.skip,\n paginationData.limit,\n sorting,\n search,\n moduleConfig.filterName,\n user?.company_id,\n ])\n // Effect for fetching data - optimized with proper dependencies\n useEffect(() => {\n fetchForms()\n }, [\n fetchForms\n ]);\n\n // Effect for setting active tab - only run when actionBarData changes\n useEffect(() => {\n if (actionBarData?.length && actionBarData[0].label !== actionBarActiveTab) {\n setActionBarActiveTab(actionBarData[0].label);\n }\n }, [actionBarData]);\n\n // Effect for localStorage - debounced to prevent excessive writes\n useEffect(() => {\n if (actionBarData?.length) {\n const timeoutId = setTimeout(() => {\n localStorage.setItem(\"form-view\", JSON.stringify(actionBarData));\n }, 300);\n\n return () => clearTimeout(timeoutId);\n }\n }, [actionBarData]);\n\n return (\n <section className=\"forms\">\n <ActionBar\n title=\"Form\"\n button={false}\n data={actionBarData}\n setData={setActionBarData}\n active={actionBarActiveTab}\n setActive={(tab) => {\n setActionBarActiveTab(tab);\n }}\n handleSearch={handleSearch}\n showFilter={false}\n />\n\n {actionBarActiveTab === viewTypes.TABLE && (\n <MaterialTable\n enablePagination={false}\n columnOrder={[\"mrt-row-select\", ...columnOrder]}\n handleColumnOrdering={handleColumnOrdering}\n rows={formBuilder.rows}\n columns={columns}\n totalPages={1}\n paginationModel={{ pageNo: 1, limit: 20 }}\n enableEditing={false}\n states={{ sorting: sorting || [] }}\n onSortingChange={setSorting}\n disableDefaultActionColumn\n getSelectedData={() => { }}\n />\n )}\n\n {actionBarActiveTab === viewTypes.GRID && (\n <GridCard data={formBuilder.rows} config={config} />\n )}\n\n <Footer\n pages={footerPages}\n setPages={() => { }}\n currentPage={1}\n setCurrentPage={() => { }}\n total={paginationData.total}\n paginationModel={{\n pageNo: formBuilder.paginationModel.pageNo,\n limit: formBuilder.paginationModel.limit\n }}\n handlePaginationModel={handlePaginationModel}\n sharedPages={[]}\n resource=\"\"\n savePageConfiguration={() => { }}\n handlePageDelete={() => { }}\n enablePages={false}\n isPaginationDisplayed={true}\n />\n </section>\n );\n};\n\nexport default Forms;"],"names":["useTranslation","useAppTranslations","useNavigate","useLocation","useAuth","useApi","useState","viewTypes","useMemo","useCallback","jsx","jsxs","Box","Typography","_a","getToken","getV1FormBuilder","useEffect","ActionBar","MaterialTable","GridCard","Footer"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FORMS-EouVYay1.js","sources":["../../src/components/custom-forms/FORMS.tsx"],"sourcesContent":["import { ActionBar } from '../action-bar';\nimport { MaterialTable } from '../material-table';\nimport { Typography } from '../typography';\nimport { viewTypes } from '../../constants';\nimport { MRT_ColumnOrderState, MRT_SortingState } from \"material-react-table\";\nimport { useState, useEffect, useMemo, useCallback } from \"react\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\nimport \"./custom-forms.scss\";\nimport { useAuth } from '@erpsquad/common/runtime';\nimport { Footer } from '../footer/footer';\nimport { IPaginationModel } from '../../types';\nimport { Box } from \"@mui/material\";\nimport GridCard from \"./grid-view/grid-view.js\";\nimport { useAppTranslations } from \"../../hooks/use-translations\";\nimport { useTranslation } from 'react-i18next';\nimport useApi from '../../hooks/useApi';\nimport { getV1FormBuilder, setBaseUrl as setSystemBaseUrl } from '../../api-client/api.system-feature/api';\nimport { getToken } from '../../utils/common';\n\ninterface ActionData {\n label: string;\n position: number;\n}\n\ninterface ModuleConfig {\n filterName: string;\n redirectionPath: string;\n}\n\n\n\nconst INITIAL_ORDER = [\"name\", \"fields\", \"noOfCustomFields\", \"customFields\"];\nconst DEFAULT_ACTION_BAR_DATA = [{ label: 'Table', position: 0 }];\nconst CUSTOM_FIELD_DISPLAY_LIMIT = 5;\n\ninterface FormBuilderState {\n rows: any[];\n isLoading: boolean;\n paginationModel: {\n pageNo: number;\n limit: number;\n totalCount: number;\n };\n}\n\nconst Forms = ({ config }: { config?: any }) => {\n const { t } = useTranslation();\n useAppTranslations(); // Load translations for current module\n const navigate = useNavigate();\n const location = useLocation();\n const { user } = useAuth();\n const { callApi } = useApi();\n\n const [formBuilder, setFormBuilder] = useState<FormBuilderState>({\n rows: [],\n isLoading: false,\n paginationModel: {\n pageNo: 1,\n limit: 20,\n totalCount: 0\n }\n });\n\n // Initialize state with proper defaults and memoization\n const [actionBarData, setActionBarData] = useState<ActionData[]>(() => {\n const formView = localStorage.getItem(\"form-view\");\n return formView ? JSON.parse(formView) : DEFAULT_ACTION_BAR_DATA;\n });\n\n const [search, setSearch] = useState<string>(\"\");\n const [actionBarActiveTab, setActionBarActiveTab] = useState<string>(() =>\n actionBarData?.[0]?.label || viewTypes.TABLE\n );\n const [columnOrder, setColumnOrder] = useState(INITIAL_ORDER);\n const [sorting, setSorting] = useState<MRT_SortingState>([]);\n\n // Memoized computed values to prevent unnecessary recalculations\n const currentModule = useMemo(() => location.pathname.split('/')[2], [location.pathname]);\n\n const modulesConfig = useMemo(() => ({\n ...config\n }), [config]);\n\n const moduleConfig = useMemo(() =>\n modulesConfig[currentModule] || { filterName: '', redirectionPath: '' },\n [currentModule, modulesConfig]\n );\n\n const navigationPath = useMemo(() =>\n `/dashboard/${currentModule}${moduleConfig.redirectionPath}`,\n [currentModule, moduleConfig.redirectionPath]\n );\n\n const filters = useMemo(() =>\n `(company_id.eq=${user?.company_id}&module.eq=${moduleConfig.filterName})`,\n [user?.company_id, moduleConfig.filterName]\n );\n\n const paginationData = useMemo(() => {\n const { pageNo, limit, totalCount } = formBuilder.paginationModel;\n const total = limit ? Math.ceil(totalCount / limit) : 0;\n const skip = limit * (pageNo - 1);\n return { total, skip, pageNo, limit };\n }, [formBuilder.paginationModel]);\n\n // Utility function moved outside render to prevent recreation\n const formatText = useCallback((key: string): string => {\n return key\n ? key\n .split(/[:_-]/)\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' ')\n : key;\n }, []);\n\n // Memoized event handlers to prevent child re-renders\n const handleColumnOrdering = useCallback((colOrder: MRT_ColumnOrderState) => {\n setColumnOrder(colOrder.slice(1));\n }, []);\n\n const handlePaginationModel = useCallback((model: IPaginationModel) => {\n setFormBuilder(prev => ({\n ...prev,\n paginationModel: {\n ...model,\n totalCount: prev.paginationModel.totalCount\n }\n }));\n }, []);\n\n const handleSearch = useCallback((searchValue: string) => {\n setSearch(searchValue);\n }, []);\n\n const handleRowClick = useCallback((rowData: any) => {\n navigate(navigationPath, {\n state: rowData,\n });\n }, [navigate, navigationPath]);\n\n // Memoized columns definition to prevent recreation on each render\n const columns = useMemo(() => [\n {\n accessorKey: \"name\",\n header: \"Form Name\",\n visible: true,\n Cell: ({ row }: any) =>\n row?.original?.name ? (\n <div\n onClick={() => handleRowClick(row.original)}\n style={{ cursor: 'pointer' }}\n >\n {formatText(row.original.name)}\n </div>\n ) : (\n \"-\"\n ),\n },\n {\n accessorKey: \"fields.length\",\n header: \"No. of Fields\",\n visible: true,\n size: 150\n },\n {\n accessorKey: \"fields\",\n header: \"No. of custom fields\",\n visible: true,\n size: 80,\n Cell: ({ row }: any) =>\n row?.original?.fields ? (\n <div>\n {\n row.original.fields.filter(\n (field: { is_system_field: boolean }) => !field.is_system_field,\n ).length\n }\n </div>\n ) : (\n \"-\"\n ),\n },\n {\n accessorKey: \"fields\",\n header: \"Custom Fields\",\n visible: true,\n Cell: ({ row }: any) => {\n const fields = row?.original?.fields?.filter(\n (field: { is_system_field: boolean; label: string }) =>\n !field?.is_system_field && field?.label,\n ) || [];\n\n if (!fields.length) return '-';\n\n return (\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 0.5, flexWrap: 'wrap', p: 0.5 }}>\n {fields.slice(0, CUSTOM_FIELD_DISPLAY_LIMIT).map((item: any, index: number) => (\n <Typography\n key={`${item.label}-${index}`}\n type=\"s5\"\n weight=\"medium\"\n className=\"forms--CustomField\"\n >\n {item?.label?.includes(\".\") ? t(item.label) : item.label}\n </Typography>\n ))}\n {fields.length > CUSTOM_FIELD_DISPLAY_LIMIT && (\n <Typography\n type=\"s5\"\n weight=\"medium\"\n className=\"forms--CustomField\"\n >\n +{fields.length - CUSTOM_FIELD_DISPLAY_LIMIT} more\n </Typography>\n )}\n </Box>\n );\n }\n },\n ], [formatText, handleRowClick, t]);\n\n // Memoized footer pages to prevent recreation\n const footerPages = useMemo(() => [\n {\n name: 'Default',\n _id: 1,\n data: []\n }\n ], []);\n\n\n const fetchForms = useCallback(async () => {\n if (!moduleConfig.filterName || !user?.company_id) return;\n\n const sort = sorting?.[0];\n const params = {\n skip: paginationData.skip,\n limit: paginationData.limit,\n search,\n filters,\n ...(sort && { order: `${sort.id}:${sort.desc ? -1 : 1}` }),\n ...getToken(),\n 'x-timezone': getToken()['x-timezone']?.toString() || ''\n };\n\n setFormBuilder(prev => ({ ...prev, isLoading: true }));\n const response = await getV1FormBuilder({\n ...params,\n ...getToken\n })\n setFormBuilder({\n rows: response?.data?.form,\n isLoading: false,\n paginationModel: {\n ...formBuilder.paginationModel,\n ...response?.data?.pagination\n }\n });\n\n\n }, [filters,\n paginationData.skip,\n paginationData.limit,\n sorting,\n search,\n moduleConfig.filterName,\n user?.company_id,\n ])\n // Effect for fetching data - optimized with proper dependencies\n useEffect(() => {\n fetchForms()\n }, [\n fetchForms\n ]);\n\n // Effect for setting active tab - only run when actionBarData changes\n useEffect(() => {\n if (actionBarData?.length && actionBarData[0].label !== actionBarActiveTab) {\n setActionBarActiveTab(actionBarData[0].label);\n }\n }, [actionBarData]);\n\n // Effect for localStorage - debounced to prevent excessive writes\n useEffect(() => {\n if (actionBarData?.length) {\n const timeoutId = setTimeout(() => {\n localStorage.setItem(\"form-view\", JSON.stringify(actionBarData));\n }, 300);\n\n return () => clearTimeout(timeoutId);\n }\n }, [actionBarData]);\n\n return (\n <section className=\"forms\">\n <ActionBar\n title=\"Form\"\n button={false}\n data={actionBarData}\n setData={setActionBarData}\n active={actionBarActiveTab}\n setActive={(tab) => {\n setActionBarActiveTab(tab);\n }}\n handleSearch={handleSearch}\n showFilter={false}\n />\n\n {actionBarActiveTab === viewTypes.TABLE && (\n <MaterialTable\n enablePagination={false}\n columnOrder={[\"mrt-row-select\", ...columnOrder]}\n handleColumnOrdering={handleColumnOrdering}\n rows={formBuilder.rows}\n columns={columns}\n totalPages={1}\n paginationModel={{ pageNo: 1, limit: 20 }}\n enableEditing={false}\n states={{ sorting: sorting || [] }}\n onSortingChange={setSorting}\n disableDefaultActionColumn\n getSelectedData={() => { }}\n />\n )}\n\n {actionBarActiveTab === viewTypes.GRID && (\n <GridCard data={formBuilder.rows} config={config} />\n )}\n\n <Footer\n pages={footerPages}\n setPages={() => { }}\n currentPage={1}\n setCurrentPage={() => { }}\n total={paginationData.total}\n paginationModel={{\n pageNo: formBuilder.paginationModel.pageNo,\n limit: formBuilder.paginationModel.limit\n }}\n handlePaginationModel={handlePaginationModel}\n sharedPages={[]}\n resource=\"\"\n savePageConfiguration={() => { }}\n handlePageDelete={() => { }}\n enablePages={false}\n isPaginationDisplayed={true}\n />\n </section>\n );\n};\n\nexport default Forms;"],"names":["useTranslation","useAppTranslations","useNavigate","useLocation","useAuth","useApi","useState","viewTypes","useMemo","useCallback","jsx","jsxs","Box","Typography","_a","getToken","getV1FormBuilder","useEffect","ActionBar","MaterialTable","GridCard","Footer"],"mappings":"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"}
|
package/dist/chunks/{FlexibleReduxExample-C-2qOGIw.esm.js → FlexibleReduxExample-B2e7Wa_S.esm.js}
RENAMED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useState } from "react";
|
|
3
3
|
import { Box, Typography, FormControlLabel, Switch, Button } from "@mui/material";
|
|
4
|
-
import { E as ERPUIProvider } from "./ERPUIProvider-
|
|
5
|
-
import { S as SharePopUpEnhanced } from "./share-modal-enhanced-
|
|
6
|
-
import { H as HeaderEnhanced } from "./header-enhanced-
|
|
4
|
+
import { E as ERPUIProvider } from "./ERPUIProvider-Dz0s77BR.esm.js";
|
|
5
|
+
import { S as SharePopUpEnhanced } from "./share-modal-enhanced-CTp-tQw8.esm.js";
|
|
6
|
+
import { H as HeaderEnhanced } from "./header-enhanced-CkROCaOF.esm.js";
|
|
7
7
|
const FlexibleReduxExample = () => {
|
|
8
8
|
const [useRedux, setUseRedux] = useState(false);
|
|
9
9
|
const [showShareModal, setShowShareModal] = useState(false);
|
|
@@ -146,4 +146,4 @@ const FlexibleReduxExample = () => {
|
|
|
146
146
|
export {
|
|
147
147
|
FlexibleReduxExample as F
|
|
148
148
|
};
|
|
149
|
-
//# sourceMappingURL=FlexibleReduxExample-
|
|
149
|
+
//# sourceMappingURL=FlexibleReduxExample-B2e7Wa_S.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlexibleReduxExample-
|
|
1
|
+
{"version":3,"file":"FlexibleReduxExample-B2e7Wa_S.esm.js","sources":["../../src/components/examples/FlexibleReduxExample.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { Box, Button, Typography, Switch, FormControlLabel } from '@mui/material';\nimport { ERPUIProvider } from '../providers/ERPUIProvider';\nimport ShareModalEnhanced from '../share-modal/share-modal-enhanced';\nimport HeaderEnhanced from '../header/header-enhanced';\n\n/**\n * Example component demonstrating flexible Redux usage\n * This shows how components can work with or without Redux\n */\nconst FlexibleReduxExample: React.FC = () => {\n const [useRedux, setUseRedux] = useState(false);\n const [showShareModal, setShowShareModal] = useState(false);\n \n // Mock data for non-Redux usage\n const [users] = useState([\n { id: 1, first_name: 'John', last_name: 'Doe', label: 'John Doe', value: 1 },\n { id: 2, first_name: 'Jane', last_name: 'Smith', label: 'Jane Smith', value: 2 },\n ]);\n \n const [departments] = useState([\n { id: 1, name: 'Engineering', label: 'Engineering', value: 1 },\n { id: 2, name: 'Marketing', label: 'Marketing', value: 2 },\n ]);\n \n const [languages] = useState([\n { code: 'en', label: 'English', direction: 'ltr' },\n { code: 'es', label: 'Spanish', direction: 'ltr' },\n { code: 'ar', label: 'Arabic', direction: 'rtl' },\n ]);\n \n const [currentLanguage, setCurrentLanguage] = useState(languages[0]);\n const [loading, setLoading] = useState(false);\n\n // Mock API functions\n const fetchUsersAndDepartments = async () => {\n setLoading(true);\n // Simulate API call\n await new Promise(resolve => setTimeout(resolve, 1000));\n setLoading(false);\n };\n\n const handleLanguageChange = (languageCode: string) => {\n const language = languages.find(lang => lang.code === languageCode);\n if (language) {\n setCurrentLanguage(language);\n }\n };\n\n const handleShareSubmit = (data: any) => {\n setShowShareModal(false);\n };\n\n return (\n <ERPUIProvider useRedux={useRedux}>\n <Box sx={{ p: 3 }}>\n <Typography variant=\"h4\" gutterBottom>\n Flexible Redux Integration Example\n </Typography>\n \n <Typography variant=\"body1\" sx={{ mb: 2 }}>\n This example demonstrates how ERP UI Library components can work with or without Redux.\n Toggle the switch below to see the difference.\n </Typography>\n\n <FormControlLabel\n control={\n <Switch\n checked={useRedux}\n onChange={(e) => setUseRedux(e.target.checked)}\n />\n }\n label={`Use Redux: ${useRedux ? 'Enabled' : 'Disabled'}`}\n sx={{ mb: 3 }}\n />\n\n <Box sx={{ mb: 3 }}>\n <Typography variant=\"h6\" gutterBottom>\n Current Mode: {useRedux ? 'Redux-based' : 'Prop-based'}\n </Typography>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {useRedux \n ? 'Components are using Redux for state management'\n : 'Components are using props and local state for data'\n }\n </Typography>\n </Box>\n\n {/* Header Example */}\n <Box sx={{ border: 1, borderColor: 'grey.300', borderRadius: 1, p: 2, mb: 3 }}>\n <Typography variant=\"h6\" gutterBottom>\n Header Component\n </Typography>\n <HeaderEnhanced\n useRedux={useRedux}\n languages={useRedux ? undefined : languages}\n currentLanguage={useRedux ? undefined : currentLanguage}\n languagesLoading={useRedux ? undefined : loading}\n onLanguageChange={useRedux ? undefined : handleLanguageChange}\n onFetchLanguages={useRedux ? undefined : fetchUsersAndDepartments}\n />\n </Box>\n\n {/* Share Modal Example */}\n <Box sx={{ border: 1, borderColor: 'grey.300', borderRadius: 1, p: 2, mb: 3 }}>\n <Typography variant=\"h6\" gutterBottom>\n Share Modal Component\n </Typography>\n <Button\n variant=\"contained\"\n onClick={() => setShowShareModal(true)}\n sx={{ mb: 2 }}\n >\n Open Share Modal\n </Button>\n \n <ShareModalEnhanced\n open={showShareModal}\n onClose={() => setShowShareModal(false)}\n title=\"Share Document\"\n toggleSwitch={true}\n onSubmit={handleShareSubmit}\n useRedux={useRedux}\n users={useRedux ? undefined : users}\n departments={useRedux ? undefined : departments}\n loading={useRedux ? undefined : loading}\n onFetchUsersAndDepartments={useRedux ? undefined : fetchUsersAndDepartments}\n />\n </Box>\n\n {/* Code Example */}\n <Box sx={{ border: 1, borderColor: 'grey.300', borderRadius: 1, p: 2 }}>\n <Typography variant=\"h6\" gutterBottom>\n Code Example\n </Typography>\n <Box\n component=\"pre\"\n sx={{\n backgroundColor: 'grey.100',\n p: 2,\n borderRadius: 1,\n overflow: 'auto',\n fontSize: '0.875rem',\n }}\n >\n {useRedux ? `\n// Redux-based usage\n<ERPUIProvider useRedux={true} reduxStore={store} apiClient={apiClient}>\n <HeaderEnhanced useRedux={true} />\n <ShareModalEnhanced useRedux={true} />\n</ERPUIProvider>\n ` : `\n// Prop-based usage\n<ERPUIProvider useRedux={false}>\n <HeaderEnhanced\n useRedux={false}\n languages={languages}\n currentLanguage={currentLanguage}\n onLanguageChange={handleLanguageChange}\n />\n <ShareModalEnhanced\n useRedux={false}\n users={users}\n departments={departments}\n loading={loading}\n onFetchUsersAndDepartments={fetchUsersAndDepartments}\n />\n</ERPUIProvider>\n `}\n </Box>\n </Box>\n </Box>\n </ERPUIProvider>\n );\n};\n\nexport default FlexibleReduxExample;"],"names":["ShareModalEnhanced"],"mappings":"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"}
|
|
@@ -3,8 +3,8 @@ const jsxRuntime = require("react/jsx-runtime");
|
|
|
3
3
|
const React = require("react");
|
|
4
4
|
const material = require("@mui/material");
|
|
5
5
|
const ERPUIProvider = require("./ERPUIProvider-CcSTcdEo.js");
|
|
6
|
-
const shareModalEnhanced = require("./share-modal-enhanced-
|
|
7
|
-
const headerEnhanced = require("./header-enhanced-
|
|
6
|
+
const shareModalEnhanced = require("./share-modal-enhanced-DVarD-jt.js");
|
|
7
|
+
const headerEnhanced = require("./header-enhanced-Dxdetx0I.js");
|
|
8
8
|
const FlexibleReduxExample = () => {
|
|
9
9
|
const [useRedux, setUseRedux] = React.useState(false);
|
|
10
10
|
const [showShareModal, setShowShareModal] = React.useState(false);
|
|
@@ -145,4 +145,4 @@ const FlexibleReduxExample = () => {
|
|
|
145
145
|
] }) });
|
|
146
146
|
};
|
|
147
147
|
exports.FlexibleReduxExample = FlexibleReduxExample;
|
|
148
|
-
//# sourceMappingURL=FlexibleReduxExample
|
|
148
|
+
//# sourceMappingURL=FlexibleReduxExample-CMUylyy1.js.map
|
package/dist/chunks/{FlexibleReduxExample--GtoEJhc.js.map → FlexibleReduxExample-CMUylyy1.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlexibleReduxExample
|
|
1
|
+
{"version":3,"file":"FlexibleReduxExample-CMUylyy1.js","sources":["../../src/components/examples/FlexibleReduxExample.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { Box, Button, Typography, Switch, FormControlLabel } from '@mui/material';\nimport { ERPUIProvider } from '../providers/ERPUIProvider';\nimport ShareModalEnhanced from '../share-modal/share-modal-enhanced';\nimport HeaderEnhanced from '../header/header-enhanced';\n\n/**\n * Example component demonstrating flexible Redux usage\n * This shows how components can work with or without Redux\n */\nconst FlexibleReduxExample: React.FC = () => {\n const [useRedux, setUseRedux] = useState(false);\n const [showShareModal, setShowShareModal] = useState(false);\n \n // Mock data for non-Redux usage\n const [users] = useState([\n { id: 1, first_name: 'John', last_name: 'Doe', label: 'John Doe', value: 1 },\n { id: 2, first_name: 'Jane', last_name: 'Smith', label: 'Jane Smith', value: 2 },\n ]);\n \n const [departments] = useState([\n { id: 1, name: 'Engineering', label: 'Engineering', value: 1 },\n { id: 2, name: 'Marketing', label: 'Marketing', value: 2 },\n ]);\n \n const [languages] = useState([\n { code: 'en', label: 'English', direction: 'ltr' },\n { code: 'es', label: 'Spanish', direction: 'ltr' },\n { code: 'ar', label: 'Arabic', direction: 'rtl' },\n ]);\n \n const [currentLanguage, setCurrentLanguage] = useState(languages[0]);\n const [loading, setLoading] = useState(false);\n\n // Mock API functions\n const fetchUsersAndDepartments = async () => {\n setLoading(true);\n // Simulate API call\n await new Promise(resolve => setTimeout(resolve, 1000));\n setLoading(false);\n };\n\n const handleLanguageChange = (languageCode: string) => {\n const language = languages.find(lang => lang.code === languageCode);\n if (language) {\n setCurrentLanguage(language);\n }\n };\n\n const handleShareSubmit = (data: any) => {\n setShowShareModal(false);\n };\n\n return (\n <ERPUIProvider useRedux={useRedux}>\n <Box sx={{ p: 3 }}>\n <Typography variant=\"h4\" gutterBottom>\n Flexible Redux Integration Example\n </Typography>\n \n <Typography variant=\"body1\" sx={{ mb: 2 }}>\n This example demonstrates how ERP UI Library components can work with or without Redux.\n Toggle the switch below to see the difference.\n </Typography>\n\n <FormControlLabel\n control={\n <Switch\n checked={useRedux}\n onChange={(e) => setUseRedux(e.target.checked)}\n />\n }\n label={`Use Redux: ${useRedux ? 'Enabled' : 'Disabled'}`}\n sx={{ mb: 3 }}\n />\n\n <Box sx={{ mb: 3 }}>\n <Typography variant=\"h6\" gutterBottom>\n Current Mode: {useRedux ? 'Redux-based' : 'Prop-based'}\n </Typography>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {useRedux \n ? 'Components are using Redux for state management'\n : 'Components are using props and local state for data'\n }\n </Typography>\n </Box>\n\n {/* Header Example */}\n <Box sx={{ border: 1, borderColor: 'grey.300', borderRadius: 1, p: 2, mb: 3 }}>\n <Typography variant=\"h6\" gutterBottom>\n Header Component\n </Typography>\n <HeaderEnhanced\n useRedux={useRedux}\n languages={useRedux ? undefined : languages}\n currentLanguage={useRedux ? undefined : currentLanguage}\n languagesLoading={useRedux ? undefined : loading}\n onLanguageChange={useRedux ? undefined : handleLanguageChange}\n onFetchLanguages={useRedux ? undefined : fetchUsersAndDepartments}\n />\n </Box>\n\n {/* Share Modal Example */}\n <Box sx={{ border: 1, borderColor: 'grey.300', borderRadius: 1, p: 2, mb: 3 }}>\n <Typography variant=\"h6\" gutterBottom>\n Share Modal Component\n </Typography>\n <Button\n variant=\"contained\"\n onClick={() => setShowShareModal(true)}\n sx={{ mb: 2 }}\n >\n Open Share Modal\n </Button>\n \n <ShareModalEnhanced\n open={showShareModal}\n onClose={() => setShowShareModal(false)}\n title=\"Share Document\"\n toggleSwitch={true}\n onSubmit={handleShareSubmit}\n useRedux={useRedux}\n users={useRedux ? undefined : users}\n departments={useRedux ? undefined : departments}\n loading={useRedux ? undefined : loading}\n onFetchUsersAndDepartments={useRedux ? undefined : fetchUsersAndDepartments}\n />\n </Box>\n\n {/* Code Example */}\n <Box sx={{ border: 1, borderColor: 'grey.300', borderRadius: 1, p: 2 }}>\n <Typography variant=\"h6\" gutterBottom>\n Code Example\n </Typography>\n <Box\n component=\"pre\"\n sx={{\n backgroundColor: 'grey.100',\n p: 2,\n borderRadius: 1,\n overflow: 'auto',\n fontSize: '0.875rem',\n }}\n >\n {useRedux ? `\n// Redux-based usage\n<ERPUIProvider useRedux={true} reduxStore={store} apiClient={apiClient}>\n <HeaderEnhanced useRedux={true} />\n <ShareModalEnhanced useRedux={true} />\n</ERPUIProvider>\n ` : `\n// Prop-based usage\n<ERPUIProvider useRedux={false}>\n <HeaderEnhanced\n useRedux={false}\n languages={languages}\n currentLanguage={currentLanguage}\n onLanguageChange={handleLanguageChange}\n />\n <ShareModalEnhanced\n useRedux={false}\n users={users}\n departments={departments}\n loading={loading}\n onFetchUsersAndDepartments={fetchUsersAndDepartments}\n />\n</ERPUIProvider>\n `}\n </Box>\n </Box>\n </Box>\n </ERPUIProvider>\n );\n};\n\nexport default FlexibleReduxExample;"],"names":["useState","jsx","ERPUIProvider","jsxs","Box","Typography","FormControlLabel","Switch","HeaderEnhanced","Button","ShareModalEnhanced"],"mappings":"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"}
|