@erpsquad/common 1.11.8 → 1.11.9

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.
Files changed (599) hide show
  1. package/dist/api-client/index.esm.js +1 -1
  2. package/dist/api-client/index.js +1 -1
  3. package/dist/chunks/{DynamicDependentField-C0XXmMlG.esm.js → DynamicDependentField-CzEJwzIq.esm.js} +2 -2
  4. package/dist/chunks/{DynamicDependentField-C0XXmMlG.esm.js.map → DynamicDependentField-CzEJwzIq.esm.js.map} +1 -1
  5. package/dist/chunks/{DynamicDependentField-CQIfDDqc.js → DynamicDependentField-D8K1QyqC.js} +2 -2
  6. package/dist/chunks/{DynamicDependentField-CQIfDDqc.js.map → DynamicDependentField-D8K1QyqC.js.map} +1 -1
  7. package/dist/chunks/{ERPUIProvider-I4j_X_SD.esm.js → ERPUIProvider-CqbIIC8j.esm.js} +3 -3
  8. package/dist/chunks/{ERPUIProvider-I4j_X_SD.esm.js.map → ERPUIProvider-CqbIIC8j.esm.js.map} +1 -1
  9. package/dist/chunks/{ERPUIProvider-CcSTcdEo.js → ERPUIProvider-TOq-GnAq.js} +3 -3
  10. package/dist/chunks/{ERPUIProvider-CcSTcdEo.js.map → ERPUIProvider-TOq-GnAq.js.map} +1 -1
  11. package/dist/chunks/{FORMS-pxf6g6xE.esm.js → FORMS-C1qQnoDd.esm.js} +7 -7
  12. package/dist/chunks/{FORMS-pxf6g6xE.esm.js.map → FORMS-C1qQnoDd.esm.js.map} +1 -1
  13. package/dist/chunks/{FORMS-CUx32b_4.js → FORMS-qlTftaaD.js} +7 -7
  14. package/dist/chunks/{FORMS-CUx32b_4.js.map → FORMS-qlTftaaD.js.map} +1 -1
  15. package/dist/chunks/{FlexibleReduxExample--GtoEJhc.js → FlexibleReduxExample-BEK1732S.js} +4 -4
  16. package/dist/chunks/{FlexibleReduxExample--GtoEJhc.js.map → FlexibleReduxExample-BEK1732S.js.map} +1 -1
  17. package/dist/chunks/{FlexibleReduxExample-C-2qOGIw.esm.js → FlexibleReduxExample-CfMjfKUf.esm.js} +4 -4
  18. package/dist/chunks/{FlexibleReduxExample-C-2qOGIw.esm.js.map → FlexibleReduxExample-CfMjfKUf.esm.js.map} +1 -1
  19. package/dist/chunks/{SectionFlowEditor-sKsZ3oQo.js → SectionFlowEditor-Bo7czbNc.js} +5 -5
  20. package/dist/chunks/{SectionFlowEditor-sKsZ3oQo.js.map → SectionFlowEditor-Bo7czbNc.js.map} +1 -1
  21. package/dist/chunks/{SectionFlowEditor-CFfJBYKx.esm.js → SectionFlowEditor-Ch24-oHf.esm.js} +5 -5
  22. package/dist/chunks/{SectionFlowEditor-CFfJBYKx.esm.js.map → SectionFlowEditor-Ch24-oHf.esm.js.map} +1 -1
  23. package/dist/chunks/{action-bar-C7Alva4T.esm.js → action-bar-BQ3DcZpw.esm.js} +4 -4
  24. package/dist/chunks/{action-bar-C7Alva4T.esm.js.map → action-bar-BQ3DcZpw.esm.js.map} +1 -1
  25. package/dist/chunks/{action-bar-DdtpxWNk.js → action-bar-CiYO9X02.js} +4 -4
  26. package/dist/chunks/{action-bar-DdtpxWNk.js.map → action-bar-CiYO9X02.js.map} +1 -1
  27. package/dist/chunks/{actionCreator-o4ecxFME.js → actionCreator-BdAKTPvT.js} +3 -3
  28. package/dist/chunks/{actionCreator-o4ecxFME.js.map → actionCreator-BdAKTPvT.js.map} +1 -1
  29. package/dist/chunks/{actionCreator-Cl8vPLVO.esm.js → actionCreator-C5C0Rg3P.esm.js} +2 -2
  30. package/dist/chunks/{actionCreator-Cl8vPLVO.esm.js.map → actionCreator-C5C0Rg3P.esm.js.map} +1 -1
  31. package/dist/chunks/{actionCreator-Cb3NxILP.esm.js → actionCreator-C6VISpYt.esm.js} +3 -3
  32. package/dist/chunks/{actionCreator-Cb3NxILP.esm.js.map → actionCreator-C6VISpYt.esm.js.map} +1 -1
  33. package/dist/chunks/{actionCreator-Dar9Z8_d.esm.js → actionCreator-C7fR-FtF.esm.js} +2 -2
  34. package/dist/chunks/{actionCreator-Dar9Z8_d.esm.js.map → actionCreator-C7fR-FtF.esm.js.map} +1 -1
  35. package/dist/chunks/{actionCreator-CMigYdax.js → actionCreator-CPRDrGDt.js} +3 -3
  36. package/dist/chunks/{actionCreator-CMigYdax.js.map → actionCreator-CPRDrGDt.js.map} +1 -1
  37. package/dist/chunks/{actionCreator-CXmvL3vl.js → actionCreator-D1M0-Fq1.js} +2 -2
  38. package/dist/chunks/{actionCreator-CXmvL3vl.js.map → actionCreator-D1M0-Fq1.js.map} +1 -1
  39. package/dist/chunks/{actionCreator-Bas2FW_X.js → actionCreator-Dds_g-Bu.js} +2 -2
  40. package/dist/chunks/{actionCreator-Bas2FW_X.js.map → actionCreator-Dds_g-Bu.js.map} +1 -1
  41. package/dist/chunks/{actionCreator-CpePNxQM.esm.js → actionCreator-EaDmUCRb.esm.js} +2 -2
  42. package/dist/chunks/{actionCreator-CpePNxQM.esm.js.map → actionCreator-EaDmUCRb.esm.js.map} +1 -1
  43. package/dist/chunks/{actionCreator-CL5ICuqZ.esm.js → actionCreator-Jk4efZIf.esm.js} +3 -3
  44. package/dist/chunks/{actionCreator-CL5ICuqZ.esm.js.map → actionCreator-Jk4efZIf.esm.js.map} +1 -1
  45. package/dist/chunks/{actionCreator-Dl5gTT9c.js → actionCreator-cbPvURIw.js} +2 -2
  46. package/dist/chunks/{actionCreator-Dl5gTT9c.js.map → actionCreator-cbPvURIw.js.map} +1 -1
  47. package/dist/chunks/{add-template-DVvbD9a4.esm.js → add-template-CMJffU6X.esm.js} +2 -2
  48. package/dist/chunks/{add-template-DVvbD9a4.esm.js.map → add-template-CMJffU6X.esm.js.map} +1 -1
  49. package/dist/chunks/{add-template-Dohg2bHJ.js → add-template-xJNMepo_.js} +2 -2
  50. package/dist/chunks/{add-template-Dohg2bHJ.js.map → add-template-xJNMepo_.js.map} +1 -1
  51. package/dist/chunks/{address-modal-CYhiC7ui.js → address-modal-D-FwM2i_.js} +2 -2
  52. package/dist/chunks/{address-modal-CYhiC7ui.js.map → address-modal-D-FwM2i_.js.map} +1 -1
  53. package/dist/chunks/{address-modal-CkDBjnye.esm.js → address-modal-DuLY8PAg.esm.js} +2 -2
  54. package/dist/chunks/{address-modal-CkDBjnye.esm.js.map → address-modal-DuLY8PAg.esm.js.map} +1 -1
  55. package/dist/chunks/{ai-summary-BxcrnNNM.js → ai-summary-CzLIVEbV.js} +3 -3
  56. package/dist/chunks/{ai-summary-BxcrnNNM.js.map → ai-summary-CzLIVEbV.js.map} +1 -1
  57. package/dist/chunks/{ai-summary-SKK5KN2s.esm.js → ai-summary-DGQyEhsD.esm.js} +3 -3
  58. package/dist/chunks/{ai-summary-SKK5KN2s.esm.js.map → ai-summary-DGQyEhsD.esm.js.map} +1 -1
  59. package/dist/chunks/{api-DBhNDBh9.js → api-CMF1LApB.js} +57 -1
  60. package/dist/chunks/{api-DBhNDBh9.js.map → api-CMF1LApB.js.map} +1 -1
  61. package/dist/chunks/{api-BIVCMSwW.esm.js → api-COFUx2RW.esm.js} +2 -2
  62. package/dist/chunks/{api-BIVCMSwW.esm.js.map → api-COFUx2RW.esm.js.map} +1 -1
  63. package/dist/chunks/{api-Bl6wVi9D.esm.js → api-D4FV2rsK.esm.js} +69 -13
  64. package/dist/chunks/{api-Bl6wVi9D.esm.js.map → api-D4FV2rsK.esm.js.map} +1 -1
  65. package/dist/chunks/{api-EomXz8pk.js → api-DuBJvpDR.js} +2 -2
  66. package/dist/chunks/{api-EomXz8pk.js.map → api-DuBJvpDR.js.map} +1 -1
  67. package/dist/chunks/{appbar-rqqjZ99v.js → appbar-DzkTUvFH.js} +2 -2
  68. package/dist/chunks/{appbar-rqqjZ99v.js.map → appbar-DzkTUvFH.js.map} +1 -1
  69. package/dist/chunks/{appbar-BRbO--as.esm.js → appbar-NK7cEVYo.esm.js} +2 -2
  70. package/dist/chunks/{appbar-BRbO--as.esm.js.map → appbar-NK7cEVYo.esm.js.map} +1 -1
  71. package/dist/chunks/{approval-wrapper-BTtmXMlk.esm.js → approval-wrapper-Dkc8WEg5.esm.js} +2 -2
  72. package/dist/chunks/{approval-wrapper-BTtmXMlk.esm.js.map → approval-wrapper-Dkc8WEg5.esm.js.map} +1 -1
  73. package/dist/chunks/{approval-wrapper-BM5NxbtT.js → approval-wrapper-Nh3CVait.js} +2 -2
  74. package/dist/chunks/{approval-wrapper-BM5NxbtT.js.map → approval-wrapper-Nh3CVait.js.map} +1 -1
  75. package/dist/chunks/{chat-bot-BpNtrZEL.esm.js → chat-bot-3MwduUlf.esm.js} +245 -68
  76. package/dist/chunks/chat-bot-3MwduUlf.esm.js.map +1 -0
  77. package/dist/chunks/{chat-bot-osiGMG3g.js → chat-bot-sjkDRlr3.js} +244 -67
  78. package/dist/chunks/chat-bot-sjkDRlr3.js.map +1 -0
  79. package/dist/chunks/{common-utility-DGpbsf7S.esm.js → common-utility-GjUrjpEf.esm.js} +2 -2
  80. package/dist/chunks/{common-utility-DGpbsf7S.esm.js.map → common-utility-GjUrjpEf.esm.js.map} +1 -1
  81. package/dist/chunks/{common-utility-CA_Upser.js → common-utility-TLpddkaa.js} +2 -2
  82. package/dist/chunks/{common-utility-CA_Upser.js.map → common-utility-TLpddkaa.js.map} +1 -1
  83. package/dist/chunks/{custom-editor-6-xqhKz6.esm.js → custom-editor-BjUUIs4F.esm.js} +2 -2
  84. package/dist/chunks/{custom-editor-6-xqhKz6.esm.js.map → custom-editor-BjUUIs4F.esm.js.map} +1 -1
  85. package/dist/chunks/{custom-editor-BeLYFfpv.js → custom-editor-ByC55Z4G.js} +2 -2
  86. package/dist/chunks/{custom-editor-BeLYFfpv.js.map → custom-editor-ByC55Z4G.js.map} +1 -1
  87. package/dist/chunks/{custom-form-CFU7NEVb.js → custom-form-DEzUMeYP.js} +6 -6
  88. package/dist/chunks/{custom-form-CFU7NEVb.js.map → custom-form-DEzUMeYP.js.map} +1 -1
  89. package/dist/chunks/{custom-form-DD7YOHMF.esm.js → custom-form-RvoE2OQr.esm.js} +6 -6
  90. package/dist/chunks/{custom-form-DD7YOHMF.esm.js.map → custom-form-RvoE2OQr.esm.js.map} +1 -1
  91. package/dist/chunks/{dashboard-DL83yYRR.esm.js → dashboard-C-HlBEpm.esm.js} +3 -3
  92. package/dist/chunks/{dashboard-DL83yYRR.esm.js.map → dashboard-C-HlBEpm.esm.js.map} +1 -1
  93. package/dist/chunks/{dashboard-BcWVkWZt.js → dashboard-CSms9RGu.js} +3 -3
  94. package/dist/chunks/{dashboard-BcWVkWZt.js.map → dashboard-CSms9RGu.js.map} +1 -1
  95. package/dist/chunks/{dynamic-report-Z7TQNhUq.js → dynamic-report-2BfQqTlE.js} +4 -4
  96. package/dist/chunks/{dynamic-report-Z7TQNhUq.js.map → dynamic-report-2BfQqTlE.js.map} +1 -1
  97. package/dist/chunks/{dynamic-report-tKn-KqAd.esm.js → dynamic-report-6NS0z5pW.esm.js} +4 -4
  98. package/dist/chunks/{dynamic-report-tKn-KqAd.esm.js.map → dynamic-report-6NS0z5pW.esm.js.map} +1 -1
  99. package/dist/chunks/{dynamic-rows-CTGETfcP.esm.js → dynamic-rows-CZ1dmLX-.esm.js} +2 -2
  100. package/dist/chunks/{dynamic-rows-CTGETfcP.esm.js.map → dynamic-rows-CZ1dmLX-.esm.js.map} +1 -1
  101. package/dist/chunks/{dynamic-rows-CNd_zBwf.js → dynamic-rows-DXy4dtIP.js} +2 -2
  102. package/dist/chunks/{dynamic-rows-CNd_zBwf.js.map → dynamic-rows-DXy4dtIP.js.map} +1 -1
  103. package/dist/chunks/{dynamic-text-editor-BBIYTdKZ.js → dynamic-text-editor-BsS7d6iX.js} +2 -2
  104. package/dist/chunks/{dynamic-text-editor-BBIYTdKZ.js.map → dynamic-text-editor-BsS7d6iX.js.map} +1 -1
  105. package/dist/chunks/{dynamic-text-editor-CPvlGcLK.esm.js → dynamic-text-editor-CLrhRiKM.esm.js} +2 -2
  106. package/dist/chunks/{dynamic-text-editor-CPvlGcLK.esm.js.map → dynamic-text-editor-CLrhRiKM.esm.js.map} +1 -1
  107. package/dist/chunks/{edit-section-modal-BW-aZmUv.esm.js → edit-section-modal-BVH6gzyy.esm.js} +2 -2
  108. package/dist/chunks/{edit-section-modal-BW-aZmUv.esm.js.map → edit-section-modal-BVH6gzyy.esm.js.map} +1 -1
  109. package/dist/chunks/{edit-section-modal-Br2ITvLk.js → edit-section-modal-CB6-TNxs.js} +2 -2
  110. package/dist/chunks/{edit-section-modal-Br2ITvLk.js.map → edit-section-modal-CB6-TNxs.js.map} +1 -1
  111. package/dist/chunks/{filter-Cr_OSIpb.js → filter-Chgp8Ga-.js} +3 -3
  112. package/dist/chunks/{filter-Cr_OSIpb.js.map → filter-Chgp8Ga-.js.map} +1 -1
  113. package/dist/chunks/{filter-COXKBEER.esm.js → filter-DgzeYnXU.esm.js} +3 -3
  114. package/dist/chunks/{filter-COXKBEER.esm.js.map → filter-DgzeYnXU.esm.js.map} +1 -1
  115. package/dist/chunks/{footer-CD3kMRdS.js → footer-CTDZ2Qkg.js} +2 -2
  116. package/dist/chunks/{footer-CD3kMRdS.js.map → footer-CTDZ2Qkg.js.map} +1 -1
  117. package/dist/chunks/{footer-m3_dlNl8.esm.js → footer-Db5CEUun.esm.js} +2 -2
  118. package/dist/chunks/{footer-m3_dlNl8.esm.js.map → footer-Db5CEUun.esm.js.map} +1 -1
  119. package/dist/chunks/{form-fields-yE9kwjvb.js → form-fields-BrEECDh1.js} +2 -2
  120. package/dist/chunks/{form-fields-yE9kwjvb.js.map → form-fields-BrEECDh1.js.map} +1 -1
  121. package/dist/chunks/{form-fields-hMMnB_wE.esm.js → form-fields-CpOWIV5e.esm.js} +2 -2
  122. package/dist/chunks/{form-fields-hMMnB_wE.esm.js.map → form-fields-CpOWIV5e.esm.js.map} +1 -1
  123. package/dist/chunks/{form-parser-DbnSn5eY.esm.js → form-parser-BOBQohRY.esm.js} +2 -2
  124. package/dist/chunks/{form-parser-DbnSn5eY.esm.js.map → form-parser-BOBQohRY.esm.js.map} +1 -1
  125. package/dist/chunks/{form-parser-m4fnw38a.js → form-parser-Bo_xCoz5.js} +2 -2
  126. package/dist/chunks/{form-parser-m4fnw38a.js.map → form-parser-Bo_xCoz5.js.map} +1 -1
  127. package/dist/chunks/{form-section-CPIyMdk2.js → form-section-CQkrOcT4.js} +5 -5
  128. package/dist/chunks/{form-section-CPIyMdk2.js.map → form-section-CQkrOcT4.js.map} +1 -1
  129. package/dist/chunks/{form-section-TMjdOVeW.esm.js → form-section-CuA5Rmec.esm.js} +5 -5
  130. package/dist/chunks/{form-section-TMjdOVeW.esm.js.map → form-section-CuA5Rmec.esm.js.map} +1 -1
  131. package/dist/chunks/{fullScreen-BLLa9ogA.js → fullScreen-CKsAPzW8.js} +3 -3
  132. package/dist/chunks/{fullScreen-BLLa9ogA.js.map → fullScreen-CKsAPzW8.js.map} +1 -1
  133. package/dist/chunks/{fullScreen-DFgzE41_.esm.js → fullScreen-Dq0rkDY2.esm.js} +3 -3
  134. package/dist/chunks/{fullScreen-DFgzE41_.esm.js.map → fullScreen-Dq0rkDY2.esm.js.map} +1 -1
  135. package/dist/chunks/{global-search-BOkxXiZ0.esm.js → global-search-CzTd58hv.esm.js} +3 -3
  136. package/dist/chunks/{global-search-BOkxXiZ0.esm.js.map → global-search-CzTd58hv.esm.js.map} +1 -1
  137. package/dist/chunks/{global-search-BjKPmzsQ.js → global-search-mE46QvyY.js} +3 -3
  138. package/dist/chunks/{global-search-BjKPmzsQ.js.map → global-search-mE46QvyY.js.map} +1 -1
  139. package/dist/chunks/{grid-view-Bo86x7YL.esm.js → grid-view-Ccl3P7WG.esm.js} +2 -2
  140. package/dist/chunks/{grid-view-Bo86x7YL.esm.js.map → grid-view-Ccl3P7WG.esm.js.map} +1 -1
  141. package/dist/chunks/{grid-view-B1u_x5yr.js → grid-view-CcmdZI39.js} +2 -2
  142. package/dist/chunks/{grid-view-B1u_x5yr.js.map → grid-view-CcmdZI39.js.map} +1 -1
  143. package/dist/chunks/{header-BHsex2As.js → header-BLQberkS.js} +3 -3
  144. package/dist/chunks/{header-BHsex2As.js.map → header-BLQberkS.js.map} +1 -1
  145. package/dist/chunks/{header-B-HaoeK7.esm.js → header-DJXi29Ed.esm.js} +3 -3
  146. package/dist/chunks/{header-B-HaoeK7.esm.js.map → header-DJXi29Ed.esm.js.map} +1 -1
  147. package/dist/chunks/{header-enhanced-BjfqyQ1a.esm.js → header-enhanced-BXn_RBUl.esm.js} +2 -2
  148. package/dist/chunks/{header-enhanced-BjfqyQ1a.esm.js.map → header-enhanced-BXn_RBUl.esm.js.map} +1 -1
  149. package/dist/chunks/{header-enhanced-gJl4iC4m.js → header-enhanced-GQeFu_BL.js} +2 -2
  150. package/dist/chunks/{header-enhanced-gJl4iC4m.js.map → header-enhanced-GQeFu_BL.js.map} +1 -1
  151. package/dist/chunks/{inline-edit-fields-BYhRpPcH.esm.js → inline-edit-fields-D68s-Ll-.esm.js} +2 -2
  152. package/dist/chunks/{inline-edit-fields-BYhRpPcH.esm.js.map → inline-edit-fields-D68s-Ll-.esm.js.map} +1 -1
  153. package/dist/chunks/{inline-edit-fields-atDP84QL.js → inline-edit-fields-vGyiNTyf.js} +2 -2
  154. package/dist/chunks/{inline-edit-fields-atDP84QL.js.map → inline-edit-fields-vGyiNTyf.js.map} +1 -1
  155. package/dist/chunks/{inventory-reports-title-bar-Bog2i0dr.js → inventory-reports-title-bar-CT7SIGlT.js} +3 -3
  156. package/dist/chunks/{inventory-reports-title-bar-Bog2i0dr.js.map → inventory-reports-title-bar-CT7SIGlT.js.map} +1 -1
  157. package/dist/chunks/{inventory-reports-title-bar-CP8FzW6A.esm.js → inventory-reports-title-bar-Ddh26t2X.esm.js} +3 -3
  158. package/dist/chunks/{inventory-reports-title-bar-CP8FzW6A.esm.js.map → inventory-reports-title-bar-Ddh26t2X.esm.js.map} +1 -1
  159. package/dist/chunks/{item-response-details-DsGQ7Dlc.js → item-response-details-BGtHtJ76.js} +4 -4
  160. package/dist/chunks/{item-response-details-DsGQ7Dlc.js.map → item-response-details-BGtHtJ76.js.map} +1 -1
  161. package/dist/chunks/{item-response-details-SHSD-nBh.esm.js → item-response-details-DSCdVRmu.esm.js} +4 -4
  162. package/dist/chunks/{item-response-details-SHSD-nBh.esm.js.map → item-response-details-DSCdVRmu.esm.js.map} +1 -1
  163. package/dist/chunks/{listing-DIuzQrzb.js → listing-CTIuYwFQ.js} +4 -4
  164. package/dist/chunks/{listing-DIuzQrzb.js.map → listing-CTIuYwFQ.js.map} +1 -1
  165. package/dist/chunks/{listing-C0Yb6MVq.esm.js → listing-Dy2Rksst.esm.js} +4 -4
  166. package/dist/chunks/{listing-C0Yb6MVq.esm.js.map → listing-Dy2Rksst.esm.js.map} +1 -1
  167. package/dist/chunks/{location-select-g5uczAUF.js → location-select-Dij5uwHV.js} +2 -2
  168. package/dist/chunks/{location-select-g5uczAUF.js.map → location-select-Dij5uwHV.js.map} +1 -1
  169. package/dist/chunks/{location-select-CFa00fy4.esm.js → location-select-N7YryMzR.esm.js} +2 -2
  170. package/dist/chunks/{location-select-CFa00fy4.esm.js.map → location-select-N7YryMzR.esm.js.map} +1 -1
  171. package/dist/chunks/{material-editable-table-pAyK7KYf.esm.js → material-editable-table-DH-mHUyW.esm.js} +3 -3
  172. package/dist/chunks/{material-editable-table-pAyK7KYf.esm.js.map → material-editable-table-DH-mHUyW.esm.js.map} +1 -1
  173. package/dist/chunks/{material-editable-table-BGLjrTzT.js → material-editable-table-flZ7dwOO.js} +3 -3
  174. package/dist/chunks/{material-editable-table-BGLjrTzT.js.map → material-editable-table-flZ7dwOO.js.map} +1 -1
  175. package/dist/chunks/{module-reducer-DMxxForv.esm.js → module-reducer-BOqAXAJs.esm.js} +2 -2
  176. package/dist/chunks/{module-reducer-DMxxForv.esm.js.map → module-reducer-BOqAXAJs.esm.js.map} +1 -1
  177. package/dist/chunks/{module-reducer-Ck36ZEmZ.js → module-reducer-khxO3m2l.js} +2 -2
  178. package/dist/chunks/{module-reducer-Ck36ZEmZ.js.map → module-reducer-khxO3m2l.js.map} +1 -1
  179. package/dist/chunks/{notification-menu-D7ASm-K1.js → notification-menu-DhXt9aJ6.js} +2 -2
  180. package/dist/chunks/{notification-menu-D7ASm-K1.js.map → notification-menu-DhXt9aJ6.js.map} +1 -1
  181. package/dist/chunks/{notification-menu-XAadkn-e.esm.js → notification-menu-INKsWdja.esm.js} +2 -2
  182. package/dist/chunks/{notification-menu-XAadkn-e.esm.js.map → notification-menu-INKsWdja.esm.js.map} +1 -1
  183. package/dist/chunks/{page-action-BPzaL2KJ.js → page-action-8XNeWxvS.js} +4 -4
  184. package/dist/chunks/{page-action-BPzaL2KJ.js.map → page-action-8XNeWxvS.js.map} +1 -1
  185. package/dist/chunks/{page-action-C07iGjvN.esm.js → page-action-BhSpPGBy.esm.js} +4 -4
  186. package/dist/chunks/{page-action-C07iGjvN.esm.js.map → page-action-BhSpPGBy.esm.js.map} +1 -1
  187. package/dist/chunks/{page-navigator-Cgbh3tTG.js → page-navigator-DSmNN1Eb.js} +2 -2
  188. package/dist/chunks/{page-navigator-Cgbh3tTG.js.map → page-navigator-DSmNN1Eb.js.map} +1 -1
  189. package/dist/chunks/{page-navigator-8gZpp9_P.esm.js → page-navigator-DjG5btI1.esm.js} +2 -2
  190. package/dist/chunks/{page-navigator-8gZpp9_P.esm.js.map → page-navigator-DjG5btI1.esm.js.map} +1 -1
  191. package/dist/chunks/{page-view-DJ6HS_dV.js → page-view-Dbf_t78X.js} +3 -3
  192. package/dist/chunks/{page-view-DJ6HS_dV.js.map → page-view-Dbf_t78X.js.map} +1 -1
  193. package/dist/chunks/{page-view-CokUNMBn.esm.js → page-view-DknSUnFR.esm.js} +3 -3
  194. package/dist/chunks/{page-view-CokUNMBn.esm.js.map → page-view-DknSUnFR.esm.js.map} +1 -1
  195. package/dist/chunks/{quick-approval-modal-BwYjIbO5.js → quick-approval-modal-BQcjEC5r.js} +2 -2
  196. package/dist/chunks/{quick-approval-modal-BwYjIbO5.js.map → quick-approval-modal-BQcjEC5r.js.map} +1 -1
  197. package/dist/chunks/{quick-approval-modal-CPWs8htH.esm.js → quick-approval-modal-DcZGFHAN.esm.js} +2 -2
  198. package/dist/chunks/{quick-approval-modal-CPWs8htH.esm.js.map → quick-approval-modal-DcZGFHAN.esm.js.map} +1 -1
  199. package/dist/chunks/{reducer-IsgN83rP.esm.js → reducer-C3tNAbZa.esm.js} +2 -2
  200. package/dist/chunks/{reducer-IsgN83rP.esm.js.map → reducer-C3tNAbZa.esm.js.map} +1 -1
  201. package/dist/chunks/{reducer-CdJ6znKF.esm.js → reducer-CACnVYCu.esm.js} +2 -2
  202. package/dist/chunks/{reducer-CdJ6znKF.esm.js.map → reducer-CACnVYCu.esm.js.map} +1 -1
  203. package/dist/chunks/{reducer-Qab0amzE.js → reducer-Ca4A9Z08.js} +3 -3
  204. package/dist/chunks/{reducer-Qab0amzE.js.map → reducer-Ca4A9Z08.js.map} +1 -1
  205. package/dist/chunks/{reducer-BRD8W9sK.js → reducer-CqXx-nCW.js} +2 -2
  206. package/dist/chunks/{reducer-BRD8W9sK.js.map → reducer-CqXx-nCW.js.map} +1 -1
  207. package/dist/chunks/{reducer-3tSO6RW6.esm.js → reducer-D5uYbcnW.esm.js} +3 -3
  208. package/dist/chunks/{reducer-3tSO6RW6.esm.js.map → reducer-D5uYbcnW.esm.js.map} +1 -1
  209. package/dist/chunks/{reducer-CpOEECi1.js → reducer-D9YsCrPV.js} +2 -2
  210. package/dist/chunks/{reducer-CpOEECi1.js.map → reducer-D9YsCrPV.js.map} +1 -1
  211. package/dist/chunks/{reducer-sgaK2vfW.esm.js → reducer-DgqigQMj.esm.js} +2 -2
  212. package/dist/chunks/{reducer-sgaK2vfW.esm.js.map → reducer-DgqigQMj.esm.js.map} +1 -1
  213. package/dist/chunks/{reducer-CPisqqqN.js → reducer-LZj3gYJv.js} +2 -2
  214. package/dist/chunks/{reducer-CPisqqqN.js.map → reducer-LZj3gYJv.js.map} +1 -1
  215. package/dist/chunks/{reducer-yyZtsg1A.esm.js → reducer-TleDUmAC.esm.js} +2 -2
  216. package/dist/chunks/{reducer-yyZtsg1A.esm.js.map → reducer-TleDUmAC.esm.js.map} +1 -1
  217. package/dist/chunks/{reducer-Bmr6fvcs.js → reducer-zvGfUKoI.js} +2 -2
  218. package/dist/chunks/{reducer-Bmr6fvcs.js.map → reducer-zvGfUKoI.js.map} +1 -1
  219. package/dist/chunks/{reports-title-bar-Kz6JjqsY.js → reports-title-bar-D-1LT4fp.js} +4 -4
  220. package/dist/chunks/{reports-title-bar-Kz6JjqsY.js.map → reports-title-bar-D-1LT4fp.js.map} +1 -1
  221. package/dist/chunks/{reports-title-bar-Cay4E8SQ.esm.js → reports-title-bar-QUF0UaA5.esm.js} +4 -4
  222. package/dist/chunks/{reports-title-bar-Cay4E8SQ.esm.js.map → reports-title-bar-QUF0UaA5.esm.js.map} +1 -1
  223. package/dist/chunks/{routes-CfqLAYgR.js → routes--Iz18uA1.js} +3 -3
  224. package/dist/chunks/{routes-CfqLAYgR.js.map → routes--Iz18uA1.js.map} +1 -1
  225. package/dist/chunks/{routes-CAc76Zan.esm.js → routes-JUv69qeO.esm.js} +3 -3
  226. package/dist/chunks/{routes-CAc76Zan.esm.js.map → routes-JUv69qeO.esm.js.map} +1 -1
  227. package/dist/chunks/{schedule-report-B4ZfEuiU.js → schedule-report-Br9G5M-o.js} +6 -6
  228. package/dist/chunks/{schedule-report-B4ZfEuiU.js.map → schedule-report-Br9G5M-o.js.map} +1 -1
  229. package/dist/chunks/{schedule-report-CLXjjfjc.esm.js → schedule-report-Ce2EEmZX.esm.js} +6 -6
  230. package/dist/chunks/{schedule-report-CLXjjfjc.esm.js.map → schedule-report-Ce2EEmZX.esm.js.map} +1 -1
  231. package/dist/chunks/{schedule-report-modal-CB3G9H7x.esm.js → schedule-report-modal-C5CAD-AQ.esm.js} +3 -3
  232. package/dist/chunks/{schedule-report-modal-CB3G9H7x.esm.js.map → schedule-report-modal-C5CAD-AQ.esm.js.map} +1 -1
  233. package/dist/chunks/{schedule-report-modal-iwoDI-sg.js → schedule-report-modal-CraO2R9I.js} +3 -3
  234. package/dist/chunks/{schedule-report-modal-iwoDI-sg.js.map → schedule-report-modal-CraO2R9I.js.map} +1 -1
  235. package/dist/chunks/{searchable-select-_DCkITfk.js → searchable-select-BdR8A-uG.js} +6 -6
  236. package/dist/chunks/{searchable-select-_DCkITfk.js.map → searchable-select-BdR8A-uG.js.map} +1 -1
  237. package/dist/chunks/{searchable-select-0F6E4XAr.esm.js → searchable-select-DSxOplyJ.esm.js} +6 -6
  238. package/dist/chunks/{searchable-select-0F6E4XAr.esm.js.map → searchable-select-DSxOplyJ.esm.js.map} +1 -1
  239. package/dist/chunks/{share-modal-BaEyZs2h.esm.js → share-modal-0Xrxwpxh.esm.js} +3 -3
  240. package/dist/chunks/{share-modal-BaEyZs2h.esm.js.map → share-modal-0Xrxwpxh.esm.js.map} +1 -1
  241. package/dist/chunks/{share-modal-DrXvh-fV.js → share-modal-CP_CC8wR.js} +3 -3
  242. package/dist/chunks/{share-modal-DrXvh-fV.js.map → share-modal-CP_CC8wR.js.map} +1 -1
  243. package/dist/chunks/{share-modal-enhanced-DnEdDBmu.esm.js → share-modal-enhanced-BFmwba0h.esm.js} +2 -2
  244. package/dist/chunks/{share-modal-enhanced-DnEdDBmu.esm.js.map → share-modal-enhanced-BFmwba0h.esm.js.map} +1 -1
  245. package/dist/chunks/{share-modal-enhanced-BTr0zRhF.js → share-modal-enhanced-BajRayrK.js} +2 -2
  246. package/dist/chunks/{share-modal-enhanced-BTr0zRhF.js.map → share-modal-enhanced-BajRayrK.js.map} +1 -1
  247. package/dist/chunks/{sidebarScreen-DpYj_wlK.js → sidebarScreen-CaNfS0JJ.js} +5 -5
  248. package/dist/chunks/{sidebarScreen-DpYj_wlK.js.map → sidebarScreen-CaNfS0JJ.js.map} +1 -1
  249. package/dist/chunks/{sidebarScreen-DiOAiXeU.esm.js → sidebarScreen-CmnTAXY7.esm.js} +5 -5
  250. package/dist/chunks/{sidebarScreen-DiOAiXeU.esm.js.map → sidebarScreen-CmnTAXY7.esm.js.map} +1 -1
  251. package/dist/chunks/{store-BSJc1kCM.js → store-CqIuLzOS.js} +6 -6
  252. package/dist/chunks/{store-BSJc1kCM.js.map → store-CqIuLzOS.js.map} +1 -1
  253. package/dist/chunks/{store-BL5VFPie.esm.js → store-DH8pCqim.esm.js} +6 -6
  254. package/dist/chunks/{store-BL5VFPie.esm.js.map → store-DH8pCqim.esm.js.map} +1 -1
  255. package/dist/chunks/{table-gxAlAeTq.esm.js → table-ClKu8f94.esm.js} +3 -3
  256. package/dist/chunks/{table-gxAlAeTq.esm.js.map → table-ClKu8f94.esm.js.map} +1 -1
  257. package/dist/chunks/{table-DWx7x8zw.js → table-DgWNw_5R.js} +3 -3
  258. package/dist/chunks/{table-DWx7x8zw.js.map → table-DgWNw_5R.js.map} +1 -1
  259. package/dist/chunks/{table-form-DsTwCUcs.esm.js → table-form-BonoJoe4.esm.js} +2 -2
  260. package/dist/chunks/{table-form-DsTwCUcs.esm.js.map → table-form-BonoJoe4.esm.js.map} +1 -1
  261. package/dist/chunks/{table-form-DQ-pp0A_.js → table-form-DlMHRtLK.js} +2 -2
  262. package/dist/chunks/{table-form-DQ-pp0A_.js.map → table-form-DlMHRtLK.js.map} +1 -1
  263. package/dist/chunks/{template-editor-router-D4NIwVws.js → template-editor-router-BsD0ydNM.js} +2 -2
  264. package/dist/chunks/{template-editor-router-D4NIwVws.js.map → template-editor-router-BsD0ydNM.js.map} +1 -1
  265. package/dist/chunks/{template-editor-router-BXLUTvsk.esm.js → template-editor-router-DoOt_Usq.esm.js} +2 -2
  266. package/dist/chunks/{template-editor-router-BXLUTvsk.esm.js.map → template-editor-router-DoOt_Usq.esm.js.map} +1 -1
  267. package/dist/chunks/{template-modal-X-iSmlki.js → template-modal-BXZblB-i.js} +2 -2
  268. package/dist/chunks/{template-modal-X-iSmlki.js.map → template-modal-BXZblB-i.js.map} +1 -1
  269. package/dist/chunks/{template-modal-B2VgotrF.esm.js → template-modal-Cyj0AUks.esm.js} +2 -2
  270. package/dist/chunks/{template-modal-B2VgotrF.esm.js.map → template-modal-Cyj0AUks.esm.js.map} +1 -1
  271. package/dist/chunks/{templates-CCy1eG6A.esm.js → templates-BK_pcPtR.esm.js} +7 -7
  272. package/dist/chunks/{templates-CCy1eG6A.esm.js.map → templates-BK_pcPtR.esm.js.map} +1 -1
  273. package/dist/chunks/{templates-CUREMwYo.js → templates-C5whh_WJ.js} +7 -7
  274. package/dist/chunks/{templates-CUREMwYo.js.map → templates-C5whh_WJ.js.map} +1 -1
  275. package/dist/chunks/{text-measurement-BRaY2UMX.js → text-measurement-C5RUDcy3.js} +2 -2
  276. package/dist/chunks/{text-measurement-BRaY2UMX.js.map → text-measurement-C5RUDcy3.js.map} +1 -1
  277. package/dist/chunks/{text-measurement-BCjauPbB.esm.js → text-measurement-DvKHzZhR.esm.js} +2 -2
  278. package/dist/chunks/{text-measurement-BCjauPbB.esm.js.map → text-measurement-DvKHzZhR.esm.js.map} +1 -1
  279. package/dist/chunks/{translations-BrwQcVN3.esm.js → translations-BLrQX9my.esm.js} +2 -2
  280. package/dist/chunks/{translations-BrwQcVN3.esm.js.map → translations-BLrQX9my.esm.js.map} +1 -1
  281. package/dist/chunks/{translations-DoVrWLog.js → translations-CaEkNqOX.js} +2 -2
  282. package/dist/chunks/{translations-DoVrWLog.js.map → translations-CaEkNqOX.js.map} +1 -1
  283. package/dist/chunks/{uom-field-wrapper-CTbEc-MB.esm.js → uom-field-wrapper-By-UFGEf.esm.js} +2 -2
  284. package/dist/chunks/{uom-field-wrapper-CTbEc-MB.esm.js.map → uom-field-wrapper-By-UFGEf.esm.js.map} +1 -1
  285. package/dist/chunks/{uom-field-wrapper-DXZgzOYB.js → uom-field-wrapper-CPbf2ESo.js} +2 -2
  286. package/dist/chunks/{uom-field-wrapper-DXZgzOYB.js.map → uom-field-wrapper-CPbf2ESo.js.map} +1 -1
  287. package/dist/chunks/{upload-excel-BZPP13tP.esm.js → upload-excel-Bv2QulNF.esm.js} +2 -2
  288. package/dist/chunks/{upload-excel-BZPP13tP.esm.js.map → upload-excel-Bv2QulNF.esm.js.map} +1 -1
  289. package/dist/chunks/{upload-excel-rzyINtLp.js → upload-excel-Dki_3fi7.js} +2 -2
  290. package/dist/chunks/{upload-excel-rzyINtLp.js.map → upload-excel-Dki_3fi7.js.map} +1 -1
  291. package/dist/chunks/{use-translations-5wUQBxMm.js → use-translations-CiaeAhQ7.js} +2 -2
  292. package/dist/chunks/{use-translations-5wUQBxMm.js.map → use-translations-CiaeAhQ7.js.map} +1 -1
  293. package/dist/chunks/{use-translations-CcjSFA3F.esm.js → use-translations-Cplg_xvQ.esm.js} +2 -2
  294. package/dist/chunks/{use-translations-CcjSFA3F.esm.js.map → use-translations-Cplg_xvQ.esm.js.map} +1 -1
  295. package/dist/chunks/{useAccountSetting-vAqgEiJB.esm.js → useAccountSetting-D2zH-h5F.esm.js} +3 -3
  296. package/dist/chunks/{useAccountSetting-vAqgEiJB.esm.js.map → useAccountSetting-D2zH-h5F.esm.js.map} +1 -1
  297. package/dist/chunks/{useAccountSetting-9XBALMnW.js → useAccountSetting-Dvyv7WUv.js} +3 -3
  298. package/dist/chunks/{useAccountSetting-9XBALMnW.js.map → useAccountSetting-Dvyv7WUv.js.map} +1 -1
  299. package/dist/chunks/{useCheckSkuAndName-CqSLFlhD.js → useCheckSkuAndName-3SCc5HGN.js} +2 -2
  300. package/dist/chunks/{useCheckSkuAndName-CqSLFlhD.js.map → useCheckSkuAndName-3SCc5HGN.js.map} +1 -1
  301. package/dist/chunks/{useCheckSkuAndName-Dl24wQO-.esm.js → useCheckSkuAndName-BuHzZ_fJ.esm.js} +2 -2
  302. package/dist/chunks/{useCheckSkuAndName-Dl24wQO-.esm.js.map → useCheckSkuAndName-BuHzZ_fJ.esm.js.map} +1 -1
  303. package/dist/chunks/{useReduxIntegration-DZBfKF7d.esm.js → useReduxIntegration-B0bZ0VOc.esm.js} +2 -2
  304. package/dist/chunks/{useReduxIntegration-DZBfKF7d.esm.js.map → useReduxIntegration-B0bZ0VOc.esm.js.map} +1 -1
  305. package/dist/chunks/{useReduxIntegration-Ct1UN9fB.js → useReduxIntegration-GG8n-C3E.js} +2 -2
  306. package/dist/chunks/{useReduxIntegration-Ct1UN9fB.js.map → useReduxIntegration-GG8n-C3E.js.map} +1 -1
  307. package/dist/chunks/{useUniquenessCheck-bYjnp_0P.esm.js → useUniquenessCheck-B_KNcS14.esm.js} +2 -2
  308. package/dist/chunks/{useUniquenessCheck-bYjnp_0P.esm.js.map → useUniquenessCheck-B_KNcS14.esm.js.map} +1 -1
  309. package/dist/chunks/{useUniquenessCheck-By5zlovX.js → useUniquenessCheck-SyibUppM.js} +2 -2
  310. package/dist/chunks/{useUniquenessCheck-By5zlovX.js.map → useUniquenessCheck-SyibUppM.js.map} +1 -1
  311. package/dist/chunks/{useVendorAICompare-BAkWpJbe.js → useVendorAICompare-Br8Zaj9n.js} +3 -3
  312. package/dist/chunks/{useVendorAICompare-BAkWpJbe.js.map → useVendorAICompare-Br8Zaj9n.js.map} +1 -1
  313. package/dist/chunks/{useVendorAICompare-DZRFDk4i.esm.js → useVendorAICompare-MAhIaPcK.esm.js} +3 -3
  314. package/dist/chunks/{useVendorAICompare-DZRFDk4i.esm.js.map → useVendorAICompare-MAhIaPcK.esm.js.map} +1 -1
  315. package/dist/chunks/{value-editor-BSS9Ns2T.js → value-editor-CjBbeBcy.js} +3 -3
  316. package/dist/chunks/{value-editor-BSS9Ns2T.js.map → value-editor-CjBbeBcy.js.map} +1 -1
  317. package/dist/chunks/{value-editor-DQ1qgZ2u.esm.js → value-editor-Du1_lUxK.esm.js} +3 -3
  318. package/dist/chunks/{value-editor-DQ1qgZ2u.esm.js.map → value-editor-Du1_lUxK.esm.js.map} +1 -1
  319. package/dist/chunks/{vendor-ai-summary-DWmAaQ_N.js → vendor-ai-summary-ChCg_E_J.js} +2 -2
  320. package/dist/chunks/{vendor-ai-summary-DWmAaQ_N.js.map → vendor-ai-summary-ChCg_E_J.js.map} +1 -1
  321. package/dist/chunks/{vendor-ai-summary-BA6m2dH9.esm.js → vendor-ai-summary-DICDiSMd.esm.js} +2 -2
  322. package/dist/chunks/{vendor-ai-summary-BA6m2dH9.esm.js.map → vendor-ai-summary-DICDiSMd.esm.js.map} +1 -1
  323. package/dist/components/action-bar/action-bar/index.esm.js +1 -1
  324. package/dist/components/action-bar/action-bar/index.js +1 -1
  325. package/dist/components/action-bar/index.esm.js +1 -1
  326. package/dist/components/action-bar/index.js +1 -1
  327. package/dist/components/address-modal/index.esm.js +1 -1
  328. package/dist/components/address-modal/index.js +1 -1
  329. package/dist/components/ai-summary/ai-summary/index.esm.js +1 -1
  330. package/dist/components/ai-summary/ai-summary/index.js +1 -1
  331. package/dist/components/ai-summary/index.esm.js +1 -1
  332. package/dist/components/ai-summary/index.js +1 -1
  333. package/dist/components/appbar/appbar/index.esm.js +1 -1
  334. package/dist/components/appbar/appbar/index.js +1 -1
  335. package/dist/components/appbar/index.esm.js +1 -1
  336. package/dist/components/appbar/index.js +1 -1
  337. package/dist/components/approval-wrapper/approval-wrapper/index.esm.js +1 -1
  338. package/dist/components/approval-wrapper/approval-wrapper/index.js +1 -1
  339. package/dist/components/approval-wrapper/index.esm.js +1 -1
  340. package/dist/components/approval-wrapper/index.js +1 -1
  341. package/dist/components/chat-bot/index.esm.js +1 -1
  342. package/dist/components/chat-bot/index.js +1 -1
  343. package/dist/components/custom-forms/FORMS/index.esm.js +1 -1
  344. package/dist/components/custom-forms/FORMS/index.js +1 -1
  345. package/dist/components/custom-forms/grid-view/grid-view/index.esm.js +1 -1
  346. package/dist/components/custom-forms/grid-view/grid-view/index.js +1 -1
  347. package/dist/components/custom-forms/grid-view/index.esm.js +1 -1
  348. package/dist/components/custom-forms/grid-view/index.js +1 -1
  349. package/dist/components/custom-forms/index.esm.js +2 -2
  350. package/dist/components/custom-forms/index.js +2 -2
  351. package/dist/components/department-add-modal/index.esm.js +1 -1
  352. package/dist/components/department-add-modal/index.js +1 -1
  353. package/dist/components/designation-add-modal/index.esm.js +1 -1
  354. package/dist/components/designation-add-modal/index.js +1 -1
  355. package/dist/components/editor/custom-editor/index.esm.js +1 -1
  356. package/dist/components/editor/custom-editor/index.js +1 -1
  357. package/dist/components/editor/index.esm.js +1 -1
  358. package/dist/components/editor/index.js +1 -1
  359. package/dist/components/examples/FlexibleReduxExample/index.esm.js +1 -1
  360. package/dist/components/examples/FlexibleReduxExample/index.js +1 -1
  361. package/dist/components/examples/index.esm.js +1 -1
  362. package/dist/components/examples/index.js +1 -1
  363. package/dist/components/filter/components/index.esm.js +1 -1
  364. package/dist/components/filter/components/index.js +1 -1
  365. package/dist/components/filter/components/value-editor/index.esm.js +1 -1
  366. package/dist/components/filter/components/value-editor/index.js +1 -1
  367. package/dist/components/filter/filter/index.esm.js +1 -1
  368. package/dist/components/filter/filter/index.js +1 -1
  369. package/dist/components/filter/index.esm.js +2 -2
  370. package/dist/components/filter/index.js +2 -2
  371. package/dist/components/footer/footer/index.esm.js +1 -1
  372. package/dist/components/footer/footer/index.js +1 -1
  373. package/dist/components/footer/index.esm.js +1 -1
  374. package/dist/components/footer/index.js +1 -1
  375. package/dist/components/form-control/form-builder/form-builder-element/dynamic-dependent-field/index.esm.js +1 -1
  376. package/dist/components/form-control/form-builder/form-builder-element/dynamic-dependent-field/index.js +1 -1
  377. package/dist/components/form-control/form-builder/form-builder-element/dynamic-select/index.esm.js +1 -1
  378. package/dist/components/form-control/form-builder/form-builder-element/dynamic-select/index.js +1 -1
  379. package/dist/components/form-control/form-builder/form-builder-element/dynamic-text-editor/index.esm.js +1 -1
  380. package/dist/components/form-control/form-builder/form-builder-element/dynamic-text-editor/index.js +1 -1
  381. package/dist/components/form-control/form-builder/form-builder-element/fixed-asset-item-add-modal/index.esm.js +1 -1
  382. package/dist/components/form-control/form-builder/form-builder-element/fixed-asset-item-add-modal/index.js +1 -1
  383. package/dist/components/form-control/form-builder/form-builder-element/index.esm.js +4 -4
  384. package/dist/components/form-control/form-builder/form-builder-element/index.js +4 -4
  385. package/dist/components/form-control/form-builder/form-builder-element/location-add-modal/index.esm.js +1 -1
  386. package/dist/components/form-control/form-builder/form-builder-element/location-add-modal/index.js +1 -1
  387. package/dist/components/form-control/form-builder/form-builder-element/select-configuration/index.esm.js +1 -1
  388. package/dist/components/form-control/form-builder/form-builder-element/select-configuration/index.js +1 -1
  389. package/dist/components/form-control/form-builder/form-builder-element/table/index.esm.js +1 -1
  390. package/dist/components/form-control/form-builder/form-builder-element/table/index.js +1 -1
  391. package/dist/components/form-control/form-builder/index.esm.js +4 -4
  392. package/dist/components/form-control/form-builder/index.js +4 -4
  393. package/dist/components/form-control/form-parser/form-parser/index.esm.js +1 -1
  394. package/dist/components/form-control/form-parser/form-parser/index.js +1 -1
  395. package/dist/components/form-control/form-parser/form-section/index.esm.js +1 -1
  396. package/dist/components/form-control/form-parser/form-section/index.js +1 -1
  397. package/dist/components/form-control/form-parser/index.esm.js +2 -2
  398. package/dist/components/form-control/form-parser/index.js +2 -2
  399. package/dist/components/form-control/index.esm.js +6 -6
  400. package/dist/components/form-control/index.js +6 -6
  401. package/dist/components/header/components/global-search/index.esm.js +1 -1
  402. package/dist/components/header/components/global-search/index.js +1 -1
  403. package/dist/components/header/components/index.esm.js +1 -1
  404. package/dist/components/header/components/index.js +1 -1
  405. package/dist/components/header/components/notification-menu/index.esm.js +1 -1
  406. package/dist/components/header/components/notification-menu/index.js +1 -1
  407. package/dist/components/header/components/notification-menu/notification-menu/index.esm.js +1 -1
  408. package/dist/components/header/components/notification-menu/notification-menu/index.js +1 -1
  409. package/dist/components/header/header/index.esm.js +1 -1
  410. package/dist/components/header/header/index.js +1 -1
  411. package/dist/components/header/header-enhanced/index.esm.js +1 -1
  412. package/dist/components/header/header-enhanced/index.js +1 -1
  413. package/dist/components/header/index.esm.js +5 -5
  414. package/dist/components/header/index.js +5 -5
  415. package/dist/components/header/redux/actionCreator/index.esm.js +1 -1
  416. package/dist/components/header/redux/actionCreator/index.js +1 -1
  417. package/dist/components/header/redux/index.esm.js +2 -2
  418. package/dist/components/header/redux/index.js +2 -2
  419. package/dist/components/header/redux/reducer/index.esm.js +1 -1
  420. package/dist/components/header/redux/reducer/index.js +1 -1
  421. package/dist/components/index.esm.js +36 -36
  422. package/dist/components/index.js +36 -36
  423. package/dist/components/inventory-reports-title-bar/index.esm.js +3 -3
  424. package/dist/components/inventory-reports-title-bar/index.js +3 -3
  425. package/dist/components/inventory-reports-title-bar/inventory-reports-title-bar/index.esm.js +1 -1
  426. package/dist/components/inventory-reports-title-bar/inventory-reports-title-bar/index.js +1 -1
  427. package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.esm.js +1 -1
  428. package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.js +1 -1
  429. package/dist/components/inventory-reports-title-bar/redux/index.esm.js +2 -2
  430. package/dist/components/inventory-reports-title-bar/redux/index.js +2 -2
  431. package/dist/components/inventory-reports-title-bar/redux/reducer/index.esm.js +1 -1
  432. package/dist/components/inventory-reports-title-bar/redux/reducer/index.js +1 -1
  433. package/dist/components/listing/index.esm.js +1 -1
  434. package/dist/components/listing/index.js +1 -1
  435. package/dist/components/listing/listing/index.esm.js +1 -1
  436. package/dist/components/listing/listing/index.js +1 -1
  437. package/dist/components/location-select/index.esm.js +1 -1
  438. package/dist/components/location-select/index.js +1 -1
  439. package/dist/components/material-editable-table/components/index.esm.js +1 -1
  440. package/dist/components/material-editable-table/components/index.js +1 -1
  441. package/dist/components/material-editable-table/components/inline-edit-fields/index.esm.js +1 -1
  442. package/dist/components/material-editable-table/components/inline-edit-fields/index.js +1 -1
  443. package/dist/components/material-editable-table/index.esm.js +2 -2
  444. package/dist/components/material-editable-table/index.js +2 -2
  445. package/dist/components/material-editable-table/material-editable-table/index.esm.js +1 -1
  446. package/dist/components/material-editable-table/material-editable-table/index.js +1 -1
  447. package/dist/components/material-table/components/index.esm.js +1 -1
  448. package/dist/components/material-table/components/index.js +1 -1
  449. package/dist/components/material-table/components/inline-edit-fields/index.esm.js +1 -1
  450. package/dist/components/material-table/components/inline-edit-fields/index.js +1 -1
  451. package/dist/components/material-table/index.esm.js +1 -1
  452. package/dist/components/material-table/index.js +1 -1
  453. package/dist/components/material-table/material-table/index.esm.js +1 -1
  454. package/dist/components/material-table/material-table/index.js +1 -1
  455. package/dist/components/page-navigator/components/index.esm.js +1 -1
  456. package/dist/components/page-navigator/components/index.js +1 -1
  457. package/dist/components/page-navigator/components/page-action/index.esm.js +1 -1
  458. package/dist/components/page-navigator/components/page-action/index.js +1 -1
  459. package/dist/components/page-navigator/index.esm.js +2 -2
  460. package/dist/components/page-navigator/index.js +2 -2
  461. package/dist/components/page-navigator/page-navigator/index.esm.js +1 -1
  462. package/dist/components/page-navigator/page-navigator/index.js +1 -1
  463. package/dist/components/parties-modal/index.esm.js +1 -1
  464. package/dist/components/parties-modal/index.js +1 -1
  465. package/dist/components/parties-modal/parties-modal/index.esm.js +1 -1
  466. package/dist/components/parties-modal/parties-modal/index.js +1 -1
  467. package/dist/components/providers/ERPUIProvider/index.esm.js +1 -1
  468. package/dist/components/providers/ERPUIProvider/index.js +1 -1
  469. package/dist/components/providers/index.esm.js +1 -1
  470. package/dist/components/providers/index.js +1 -1
  471. package/dist/components/quick-approval-modal/index.esm.js +1 -1
  472. package/dist/components/quick-approval-modal/index.js +1 -1
  473. package/dist/components/quick-approval-modal/quick-approval-modal/index.esm.js +1 -1
  474. package/dist/components/quick-approval-modal/quick-approval-modal/index.js +1 -1
  475. package/dist/components/reports/dynamic-report/dynamic-report/index.esm.js +1 -1
  476. package/dist/components/reports/dynamic-report/dynamic-report/index.js +1 -1
  477. package/dist/components/reports/dynamic-report/dynamic-rows/index.esm.js +1 -1
  478. package/dist/components/reports/dynamic-report/dynamic-rows/index.js +1 -1
  479. package/dist/components/reports/dynamic-report/index.esm.js +2 -2
  480. package/dist/components/reports/dynamic-report/index.js +2 -2
  481. package/dist/components/reports/index.esm.js +2 -2
  482. package/dist/components/reports/index.js +2 -2
  483. package/dist/components/reports-title-bar/index.esm.js +3 -3
  484. package/dist/components/reports-title-bar/index.js +3 -3
  485. package/dist/components/reports-title-bar/redux/actionCreator/index.esm.js +1 -1
  486. package/dist/components/reports-title-bar/redux/actionCreator/index.js +1 -1
  487. package/dist/components/reports-title-bar/redux/index.esm.js +2 -2
  488. package/dist/components/reports-title-bar/redux/index.js +2 -2
  489. package/dist/components/reports-title-bar/redux/reducer/index.esm.js +1 -1
  490. package/dist/components/reports-title-bar/redux/reducer/index.js +1 -1
  491. package/dist/components/reports-title-bar/reports-title-bar/index.esm.js +1 -1
  492. package/dist/components/reports-title-bar/reports-title-bar/index.js +1 -1
  493. package/dist/components/rfq-response/index.esm.js +1 -1
  494. package/dist/components/rfq-response/index.js +1 -1
  495. package/dist/components/rfq-response/item-response-details/index.esm.js +1 -1
  496. package/dist/components/rfq-response/item-response-details/index.js +1 -1
  497. package/dist/components/schedule-report/index.esm.js +2 -2
  498. package/dist/components/schedule-report/index.js +2 -2
  499. package/dist/components/schedule-report/schedule-report/index.esm.js +1 -1
  500. package/dist/components/schedule-report/schedule-report/index.js +1 -1
  501. package/dist/components/schedule-report/schedule-report-modal/index.esm.js +1 -1
  502. package/dist/components/schedule-report/schedule-report-modal/index.js +1 -1
  503. package/dist/components/searchable-select/index.esm.js +1 -1
  504. package/dist/components/searchable-select/index.js +1 -1
  505. package/dist/components/share-modal/index.esm.js +4 -4
  506. package/dist/components/share-modal/index.js +4 -4
  507. package/dist/components/share-modal/redux/actionCreator/index.esm.js +1 -1
  508. package/dist/components/share-modal/redux/actionCreator/index.js +1 -1
  509. package/dist/components/share-modal/redux/index.esm.js +2 -2
  510. package/dist/components/share-modal/redux/index.js +2 -2
  511. package/dist/components/share-modal/redux/reducer/index.esm.js +1 -1
  512. package/dist/components/share-modal/redux/reducer/index.js +1 -1
  513. package/dist/components/share-modal/share-modal/index.esm.js +1 -1
  514. package/dist/components/share-modal/share-modal/index.js +1 -1
  515. package/dist/components/share-modal/share-modal-enhanced/index.esm.js +1 -1
  516. package/dist/components/share-modal/share-modal-enhanced/index.js +1 -1
  517. package/dist/components/team-add-modal/index.esm.js +1 -1
  518. package/dist/components/team-add-modal/index.js +1 -1
  519. package/dist/components/uom-field-wrapper/index.esm.js +1 -1
  520. package/dist/components/uom-field-wrapper/index.js +1 -1
  521. package/dist/components/uom-field-wrapper/uom-field-wrapper/index.esm.js +1 -1
  522. package/dist/components/uom-field-wrapper/uom-field-wrapper/index.js +1 -1
  523. package/dist/components/upload-excel/index.esm.js +1 -1
  524. package/dist/components/upload-excel/index.js +1 -1
  525. package/dist/components/upload-excel/upload-excel/index.esm.js +1 -1
  526. package/dist/components/upload-excel/upload-excel/index.js +1 -1
  527. package/dist/components/vendor-ai-summary/index.esm.js +1 -1
  528. package/dist/components/vendor-ai-summary/index.js +1 -1
  529. package/dist/hooks/index.esm.js +6 -6
  530. package/dist/hooks/index.js +6 -6
  531. package/dist/hooks/use-translations/index.esm.js +1 -1
  532. package/dist/hooks/use-translations/index.js +1 -1
  533. package/dist/hooks/useAccountSetting/index.esm.js +1 -1
  534. package/dist/hooks/useAccountSetting/index.js +1 -1
  535. package/dist/hooks/useCheckSkuAndName/index.esm.js +1 -1
  536. package/dist/hooks/useCheckSkuAndName/index.js +1 -1
  537. package/dist/hooks/useReduxIntegration/index.esm.js +1 -1
  538. package/dist/hooks/useReduxIntegration/index.js +1 -1
  539. package/dist/hooks/useUniquenessCheck/index.esm.js +1 -1
  540. package/dist/hooks/useUniquenessCheck/index.js +1 -1
  541. package/dist/index.esm.js +64 -64
  542. package/dist/index.js +64 -64
  543. package/dist/layout/fullScreen/index.esm.js +1 -1
  544. package/dist/layout/fullScreen/index.js +1 -1
  545. package/dist/layout/index.esm.js +2 -2
  546. package/dist/layout/index.js +2 -2
  547. package/dist/layout/sidebarScreen/index.esm.js +1 -1
  548. package/dist/layout/sidebarScreen/index.js +1 -1
  549. package/dist/redux/index.esm.js +3 -3
  550. package/dist/redux/index.js +3 -3
  551. package/dist/runtime/index.esm.js +1 -1
  552. package/dist/runtime/index.js +1 -1
  553. package/dist/src/api-client/api.ai-feature/api.d.ts +15 -0
  554. package/dist/src/components/chat-bot/types.d.ts +1 -1
  555. package/dist/utils/api/index.esm.js +1 -1
  556. package/dist/utils/api/index.js +1 -1
  557. package/dist/utils/common/index.esm.js +1 -1
  558. package/dist/utils/common/index.js +1 -1
  559. package/dist/utils/common-utility/index.esm.js +1 -1
  560. package/dist/utils/common-utility/index.js +1 -1
  561. package/dist/utils/index.esm.js +5 -5
  562. package/dist/utils/index.js +4 -4
  563. package/dist/utils/text-measurement/index.esm.js +1 -1
  564. package/dist/utils/text-measurement/index.js +1 -1
  565. package/dist/views/afterAuth/dashboard/index.esm.js +1 -1
  566. package/dist/views/afterAuth/dashboard/index.js +1 -1
  567. package/dist/views/afterAuth/index.esm.js +2 -2
  568. package/dist/views/afterAuth/index.js +2 -2
  569. package/dist/views/afterAuth/page-view/index.esm.js +1 -1
  570. package/dist/views/afterAuth/page-view/index.js +1 -1
  571. package/dist/views/form-builder/custom-form/index.esm.js +1 -1
  572. package/dist/views/form-builder/custom-form/index.js +1 -1
  573. package/dist/views/form-builder/element-edit-forms/index.esm.js +1 -1
  574. package/dist/views/form-builder/element-edit-forms/index.js +1 -1
  575. package/dist/views/form-builder/form-fields/index.esm.js +1 -1
  576. package/dist/views/form-builder/form-fields/index.js +1 -1
  577. package/dist/views/form-builder/index.esm.js +4 -4
  578. package/dist/views/form-builder/index.js +4 -4
  579. package/dist/views/form-builder/redux/index.esm.js +1 -1
  580. package/dist/views/form-builder/redux/index.js +1 -1
  581. package/dist/views/index.esm.js +13 -13
  582. package/dist/views/index.js +13 -13
  583. package/dist/views/template-editor/add-template/index.esm.js +1 -1
  584. package/dist/views/template-editor/add-template/index.js +1 -1
  585. package/dist/views/template-editor/components/index.esm.js +1 -1
  586. package/dist/views/template-editor/components/index.js +1 -1
  587. package/dist/views/template-editor/edit-section-modal/index.esm.js +1 -1
  588. package/dist/views/template-editor/edit-section-modal/index.js +1 -1
  589. package/dist/views/template-editor/index.esm.js +7 -7
  590. package/dist/views/template-editor/index.js +7 -7
  591. package/dist/views/template-editor/routes/index.esm.js +1 -1
  592. package/dist/views/template-editor/routes/index.js +1 -1
  593. package/dist/views/template-editor/template-modal/index.esm.js +1 -1
  594. package/dist/views/template-editor/template-modal/index.js +1 -1
  595. package/dist/views/template-editor/templates/index.esm.js +1 -1
  596. package/dist/views/template-editor/templates/index.js +1 -1
  597. package/package.json +1 -1
  598. package/dist/chunks/chat-bot-BpNtrZEL.esm.js.map +0 -1
  599. package/dist/chunks/chat-bot-osiGMG3g.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"template-modal-X-iSmlki.js","sources":["../../src/views/template-editor/template-modal/html-thumbnail-preview.tsx","../../src/views/template-editor/template-modal/html-thumbnail-preview-full.tsx","../../src/views/template-editor/template-modal/template-modal.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable unused-imports/no-unused-vars */\nimport React, { useState, useRef, useEffect, useCallback } from 'react';\nimport { Box, Skeleton, IconButton, Tooltip, Divider, Fade } from '@mui/material';\nimport { ZoomIn, ZoomOut, Refresh } from '@mui/icons-material';\nimport { Trash } from '../../../components/icons';\nimport Typography from '../../../components/typography/typography';\n\nconst HtmlThumbnailPreview = ({ \n template, \n width = 300, \n height = 200, \n scale = 0.25,\n showControls = false,\n onClick = null,\n selectedTemplateId = '',\n isFetching = false,\n onDelete,\n minScale = 0.1,\n maxScale = 1,\n scaleStep = 1.2,\n loadingDelay = 500,\n refreshDelay = 300,\n normalView = false,\n}) => {\n const [isLoading, setIsLoading] = useState(isFetching || true);\n const [currentScale, setCurrentScale] = useState(scale);\n const [error, setError] = useState(null);\n const [isHovered, setIsHovered] = useState(false);\n const containerRef = useRef(null);\n const contentRef = useRef(null);\n const loadingTimeoutRef = useRef(null);\n const refreshTimeoutRef = useRef(null);\n\n // Calculate dimensions based on scale\n const scaledWidth = width / currentScale;\n const scaledHeight = height / currentScale;\n\n // Cleanup timeouts on unmount\n useEffect(() => {\n return () => {\n if (loadingTimeoutRef.current) {\n clearTimeout(loadingTimeoutRef.current);\n }\n if (refreshTimeoutRef.current) {\n clearTimeout(refreshTimeoutRef.current);\n }\n };\n }, []);\n\n // Handle initial loading\n useEffect(() => {\n if (loadingTimeoutRef.current) {\n clearTimeout(loadingTimeoutRef.current);\n }\n \n loadingTimeoutRef.current = setTimeout(() => {\n setIsLoading(false);\n }, loadingDelay);\n\n return () => {\n if (loadingTimeoutRef.current) {\n clearTimeout(loadingTimeoutRef.current);\n }\n };\n }, [template.contents, loadingDelay]);\n\n // Handle external loading state\n useEffect(() => {\n setIsLoading(isFetching);\n }, [isFetching]);\n\n // Memoized event handlers\n const handleZoomIn = useCallback(() => {\n setCurrentScale(prev => Math.min(prev * scaleStep, maxScale));\n }, [scaleStep, maxScale]);\n\n const handleZoomOut = useCallback(() => {\n setCurrentScale(prev => Math.max(prev / scaleStep, minScale));\n }, [scaleStep, minScale]);\n\n const handleRefresh = useCallback(() => {\n setIsLoading(true);\n setError(null);\n \n if (refreshTimeoutRef.current) {\n clearTimeout(refreshTimeoutRef.current);\n }\n \n refreshTimeoutRef.current = setTimeout(() => {\n setIsLoading(false);\n }, refreshDelay);\n }, [refreshDelay]);\n\n const handleClick = useCallback(() => {\n if (onClick && !isLoading) {\n onClick(template);\n }\n }, [onClick, template, isLoading]);\n\n const handleDelete = useCallback((e) => {\n e.stopPropagation(); // Prevent triggering onClick\n if (onDelete && !template?.is_default) {\n onDelete(template);\n }\n }, [onDelete, template]);\n\n const handleMouseEnter = useCallback(() => {\n setIsHovered(true);\n }, []);\n\n const handleMouseLeave = useCallback(() => {\n setIsHovered(false);\n }, []);\n\n // Loading state\n if (isLoading) {\n return (\n <Box \n sx={{ \n width, \n height,\n borderRadius: 1,\n overflow: 'hidden',\n border: '1px solid',\n borderColor: 'divider'\n }}\n >\n <Skeleton \n variant=\"rectangular\" \n width=\"100%\" \n height=\"100%\" \n animation=\"wave\"\n />\n </Box>\n );\n }\n\n // Error state\n if (error) {\n return (\n <Box \n sx={{ \n width, \n height,\n borderRadius: 1,\n overflow: 'hidden',\n border: '1px solid',\n borderColor: 'error.main',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: 'error.light',\n color: 'error.contrastText'\n }}\n >\n Failed to load template\n </Box>\n );\n }\n\n const isSelected = selectedTemplateId === template._id;\n const canZoomIn = currentScale < maxScale;\n const canZoomOut = currentScale > minScale;\n const canDelete = !template?.is_default;\n\n return (\n <Box \n sx={{ position: 'relative', display: 'inline-block' }}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n {/* Main Container */}\n <Box\n ref={containerRef}\n onClick={handleClick}\n sx={(theme) => ({\n width,\n height,\n border: '1px solid',\n borderRadius: 1,\n overflow: 'hidden',\n position: 'relative',\n cursor: onClick ? 'pointer' : 'default',\n backgroundColor: '#fff',\n // boxShadow: '0 2px 8px rgba(0,0,0,0.1)',\n transition: 'all 0.2s ease-in-out',\n '&:hover': onClick ? {\n boxShadow: '0 4px 16px rgba(0,0,0,0.15)',\n transform: 'translateY(-1px)',\n } : {},\n borderColor: normalView && isSelected ? theme.palette.theme.primary[800] : 'grey.300',\n borderWidth: isSelected ? 2 : 1,\n })}\n >\n {/* Scaled Content Wrapper */}\n <Box\n sx={{\n width: scaledWidth,\n height: scaledHeight,\n transform: `scale(${currentScale})`,\n transformOrigin: 'top left',\n position: 'absolute',\n top: 0,\n left: 0,\n overflow: 'hidden',\n }}\n >\n {/* HTML Content */}\n <Box\n ref={contentRef}\n sx={{\n width: '100%',\n height: '100%',\n userSelect: 'none',\n pointerEvents: 'none',\n pt: 2,\n '& *': {\n maxWidth: '100% !important',\n boxSizing: 'border-box !important',\n },\n // Reset common problematic styles\n '& body': {\n margin: '0 !important',\n padding: '0 !important',\n overflow: 'hidden !important',\n },\n // Handle images\n '& img': {\n maxWidth: '100% !important',\n height: 'auto !important',\n },\n // Handle tables\n '& table': {\n width: '100% !important',\n tableLayout: 'fixed !important',\n },\n // Prevent absolute positioning issues\n '& *[style*=\"position: absolute\"]': {\n position: 'relative !important',\n },\n '& .email-container': {\n width: '85% !important',\n }\n }}\n dangerouslySetInnerHTML={{ __html: template.contents }}\n />\n </Box>\n\n {/* Loading Overlay */}\n {isLoading && (\n <Box\n sx={{\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'rgba(255,255,255,0.8)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n zIndex: 2,\n }}\n >\n <Skeleton variant=\"rectangular\" width=\"90%\" height=\"90%\" />\n </Box>\n )}\n\n {/* Selection Indicator */}\n {template?.is_default && (\n <Box\n sx={(theme) => ({\n position: 'absolute',\n top: 8,\n left: 8,\n width: 12,\n height: 12,\n borderRadius: '50%',\n backgroundColor: theme.palette.theme?.primary[800],\n zIndex: 3,\n })}\n />\n )}\n </Box>\n {template?.name && <Typography type='s3' weight='medium' color='theme.secondary.1000' align='center' sx={{width, mt:0.5}}>{template?.name}</Typography>}\n\n {/* Hover Controls */}\n {showControls && (\n <Fade in={isHovered} timeout={200}>\n <Box\n sx={{\n position: 'absolute',\n top: -8,\n right: -8,\n display: 'flex',\n gap: 0.5,\n zIndex: 4,\n backgroundColor: 'rgba(255,255,255,0.95)',\n border: '1px solid',\n borderColor: 'grey.300',\n borderRadius: 2,\n padding: 0.5,\n boxShadow: '0 4px 12px rgba(0,0,0,0.15)',\n backdropFilter: 'blur(4px)',\n }}\n >\n <Tooltip title={`Zoom In (${Math.round(currentScale * 100)}%)`} arrow>\n <span>\n <IconButton\n size=\"small\"\n onClick={handleZoomIn}\n disabled={!canZoomIn}\n sx={{\n backgroundColor: 'transparent',\n '&:hover': { \n backgroundColor: 'primary.light',\n color: 'primary.contrastText' \n },\n '&:disabled': {\n opacity: 0.5\n }\n }}\n >\n <ZoomIn fontSize=\"small\" />\n </IconButton>\n </span>\n </Tooltip>\n\n <Divider orientation=\"vertical\" variant=\"middle\" flexItem />\n\n <Tooltip title={`Zoom Out (${Math.round(currentScale * 100)}%)`} arrow>\n <span>\n <IconButton\n size=\"small\"\n onClick={handleZoomOut}\n disabled={!canZoomOut}\n sx={{\n backgroundColor: 'transparent',\n '&:hover': { \n backgroundColor: 'primary.light',\n color: 'primary.contrastText' \n },\n '&:disabled': {\n opacity: 0.5\n }\n }}\n >\n <ZoomOut fontSize=\"small\" />\n </IconButton>\n </span>\n </Tooltip>\n\n <Divider orientation=\"vertical\" variant=\"middle\" flexItem />\n\n <Tooltip title=\"Refresh Preview\" arrow>\n <IconButton\n size=\"small\"\n onClick={handleRefresh}\n sx={{\n backgroundColor: 'transparent',\n '&:hover': { \n backgroundColor: 'primary.light',\n color: 'primary.contrastText' \n },\n }}\n >\n <Refresh fontSize=\"small\" />\n </IconButton>\n </Tooltip>\n\n {onDelete && (\n <>\n <Divider orientation=\"vertical\" variant=\"middle\" flexItem />\n <Tooltip \n title={canDelete ? \"Delete Template\" : \"Cannot delete default template\"} \n arrow\n >\n <span>\n <IconButton\n size=\"small\"\n onClick={handleDelete}\n disabled={!canDelete}\n sx={{\n backgroundColor: 'transparent',\n '&:hover': !canDelete ? {} : { \n backgroundColor: 'error.light',\n color: 'error.contrastText' \n },\n '&:disabled': {\n opacity: 0.5\n }\n }}\n >\n <Trash fontSize=\"small\" />\n </IconButton>\n </span>\n </Tooltip>\n </>\n )}\n </Box>\n </Fade>\n )}\n </Box>\n );\n};\n\nexport { HtmlThumbnailPreview };\nexport default HtmlThumbnailPreview;","/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable unused-imports/no-unused-vars */\nimport React, { useState, useRef, useEffect, useCallback } from 'react';\nimport { Box, Skeleton, IconButton, Tooltip, Divider, Fade } from '@mui/material';\nimport { ZoomIn, ZoomOut, Refresh } from '@mui/icons-material';\nimport { Trash } from '../../../components/icons';\nimport Typography from '../../../components/typography/typography';\n\ninterface HtmlThumbnailPreviewProps {\n template: any;\n width?: number | string; \n height?: number;\n scale?: number;\n showControls?: boolean;\n onClick?: (template: any) => void;\n selectedTemplateId?: string;\n isFetching?: boolean;\n onDelete?: (template: any) => void;\n normalView?: boolean;\n minScale?: number;\n maxScale?: number;\n scaleStep?: number;\n loadingDelay?: number;\n refreshDelay?: number;\n}\n\nconst HtmlThumbnailPreviewFull: React.FC<HtmlThumbnailPreviewProps> = ({\n template,\n width = '100%',\n height = 800,\n scale = 0.25,\n showControls = false,\n onClick = null,\n selectedTemplateId = '',\n isFetching = false,\n onDelete,\n normalView = false,\n minScale = 0.1,\n maxScale = 1,\n scaleStep = 1.2,\n loadingDelay = 500,\n refreshDelay = 300,\n}) => {\n const [isLoading, setIsLoading] = useState(isFetching || true);\n const [currentScale, setCurrentScale] = useState(scale);\n const [error, setError] = useState<null | string>(null);\n const [isHovered, setIsHovered] = useState(false);\n const containerRef = useRef<HTMLDivElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n const loadingTimeoutRef = useRef<any>(null);\n const refreshTimeoutRef = useRef<any>(null);\n\n const [containerPixelWidth, setContainerPixelWidth] = useState<number>(typeof width === 'number' ? width : 800);\n\n // Measure container width for responsive scaling\n useEffect(() => {\n const updateWidth = () => {\n if (containerRef.current) {\n const newWidth = containerRef.current.offsetWidth;\n setContainerPixelWidth(newWidth);\n }\n };\n updateWidth();\n window.addEventListener('resize', updateWidth);\n return () => window.removeEventListener('resize', updateWidth);\n }, []);\n\n const scaledWidth = containerPixelWidth / currentScale;\n const scaledHeight = height / currentScale;\n\n useEffect(() => {\n return () => {\n clearTimeout(loadingTimeoutRef.current);\n clearTimeout(refreshTimeoutRef.current);\n };\n }, []);\n\n useEffect(() => {\n clearTimeout(loadingTimeoutRef.current);\n loadingTimeoutRef.current = setTimeout(() => setIsLoading(false), loadingDelay);\n return () => clearTimeout(loadingTimeoutRef.current);\n }, [template.contents, loadingDelay]);\n\n useEffect(() => setIsLoading(isFetching), [isFetching]);\n\n const handleZoomIn = useCallback(() => setCurrentScale(prev => Math.min(prev * scaleStep, maxScale)), [scaleStep, maxScale]);\n const handleZoomOut = useCallback(() => setCurrentScale(prev => Math.max(prev / scaleStep, minScale)), [scaleStep, minScale]);\n const handleRefresh = useCallback(() => {\n setIsLoading(true);\n setError(null);\n clearTimeout(refreshTimeoutRef.current);\n refreshTimeoutRef.current = setTimeout(() => setIsLoading(false), refreshDelay);\n }, [refreshDelay]);\n\n const handleClick = useCallback(() => {\n if (onClick && !isLoading) onClick(template);\n }, [onClick, template, isLoading]);\n\n const handleDelete = useCallback((e: React.MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n if (onDelete && !template?.is_default) onDelete(template);\n }, [onDelete, template]);\n\n const handleMouseEnter = useCallback(() => setIsHovered(true), []);\n const handleMouseLeave = useCallback(() => setIsHovered(false), []);\n\n if (isLoading) return (\n <Box sx={{ width, height, borderRadius: 1, overflow: 'hidden', border: '1px solid', borderColor: 'divider' }}>\n <Skeleton variant=\"rectangular\" width=\"100%\" height=\"100%\" animation=\"wave\" />\n </Box>\n );\n\n if (error) return (\n <Box sx={{\n width, height, borderRadius: 1, overflow: 'hidden', border: '1px solid',\n borderColor: 'error.main', display: 'flex', alignItems: 'center', justifyContent: 'center',\n backgroundColor: 'error.light', color: 'error.contrastText'\n }}>\n Failed to load template\n </Box>\n );\n\n const isSelected = selectedTemplateId === template._id;\n const canZoomIn = currentScale < maxScale;\n const canZoomOut = currentScale > minScale;\n const canDelete = !template?.is_default;\n\n return (\n <Box\n ref={containerRef}\n sx={{ position: 'relative', width, marginInline: 'auto', display: 'inline-block' }}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n <Box\n onClick={handleClick}\n sx={(theme) => ({\n width: '100%',\n height,\n marginBlock: 0,\n overflow: 'hidden',\n position: 'relative',\n backgroundColor: '#fff',\n transition: 'all 0.2s ease-in-out',\n '&:hover': onClick ? { boxShadow: '0 4px 16px rgba(0,0,0,0.15)', transform: 'translateY(-1px)' } : {},\n })}\n >\n <Box\n sx={{\n width: '100%',\n height: '100%',\n display: 'flex',\n justifyContent: 'center', \n alignItems: 'center', \n overflow: 'auto',\n backgroundColor: '#fff',\n }}\n >\n <Box\n sx={{\n transform: `scale(${currentScale})`,\n transformOrigin: 'top left',\n pointerEvents: 'none',\n userSelect: 'none',\n width: containerPixelWidth,\n height: height,\n }}\n >\n <Box\n ref={contentRef}\n sx={{\n width: '100%',\n height: '100%',\n '& *': { maxWidth: '100% !important', boxSizing: 'border-box !important' },\n '& body': { margin: 0, padding: 0, overflow: 'hidden' },\n '& img': { maxWidth: '100% !important', height: 'auto !important' },\n '& table': { width: '100% !important', tableLayout: 'fixed !important' },\n '& *[style*=\"position: absolute\"]': { position: 'relative !important' },\n '& .email-container': { width: '85% !important' },\n }}\n dangerouslySetInnerHTML={{ __html: template.contents }}\n />\n </Box>\n </Box>\n\n {template?.is_default && (\n <Box sx={(theme) => ({ position: 'absolute', top: 8, left: 8, width: 12, height: 12, borderRadius: '50%', backgroundColor: theme.palette.theme.primary[800], zIndex: 3 })} />\n )}\n </Box>\n\n {template?.name && <Typography type='s3' weight='medium' color='theme.secondary.1000' align='center' sx={{ width, mt: 0.5 }}>{template?.name}</Typography>}\n\n {showControls && (\n <Fade in={isHovered} timeout={200}>\n <Box sx={{ position: 'absolute', top: -8, right: -8, display: 'flex', gap: 0.5, zIndex: 4, backgroundColor: 'rgba(255,255,255,0.95)', border: '1px solid', borderColor: 'grey.300', borderRadius: 2, padding: 0.5, boxShadow: '0 4px 12px rgba(0,0,0,0.15)', backdropFilter: 'blur(4px)' }}>\n <Tooltip title={`Zoom In (${Math.round(currentScale * 100)}%)`} arrow>\n <span><IconButton size=\"small\" onClick={handleZoomIn} disabled={!canZoomIn}><ZoomIn fontSize=\"small\" /></IconButton></span>\n </Tooltip>\n <Divider orientation=\"vertical\" flexItem />\n <Tooltip title={`Zoom Out (${Math.round(currentScale * 100)}%)`} arrow>\n <span><IconButton size=\"small\" onClick={handleZoomOut} disabled={!canZoomOut}><ZoomOut fontSize=\"small\" /></IconButton></span>\n </Tooltip>\n <Divider orientation=\"vertical\" flexItem />\n <Tooltip title=\"Refresh Preview\" arrow>\n <IconButton size=\"small\" onClick={handleRefresh}><Refresh fontSize=\"small\" /></IconButton>\n </Tooltip>\n {onDelete && <>\n <Divider orientation=\"vertical\" flexItem />\n <Tooltip title={canDelete ? \"Delete Template\" : \"Cannot delete default template\"} arrow>\n <span><IconButton size=\"small\" onClick={handleDelete} disabled={!canDelete}><Trash fontSize=\"small\" /></IconButton></span>\n </Tooltip>\n </>}\n </Box>\n </Fade>\n )}\n </Box>\n );\n};\n\nexport default HtmlThumbnailPreviewFull;","/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable unused-imports/no-unused-vars */\nimport React, { useEffect, useState } from 'react';\nimport { \n DialogTitle, \n DialogContent, \n DialogActions,\n IconButton,\n Box,\n MenuItem\n} from '@mui/material';\nimport CloseIcon from '@mui/icons-material/Close';\nimport Typography from '../../../components/typography/typography';\nimport Modal from '../../../components/modal/modal';\nimport { deleteV1TemplatesId, getV1Templates, patchV1TemplatesIdSetDefault } from '../../../api-client/api.system-feature/api';\nimport { getErrorMessage, getToken } from '../../../utils/common';\nimport Button from '../../../components/button/button';\n// import ModalLoader from '../../../components/loader/modal-loader';\nimport { useNavigate } from 'react-router-dom';\nimport { enqueueSnackbar } from 'notistack';\nimport Select from '../../../components/select/select';\nimport HtmlThumbnailPreview from './html-thumbnail-preview';\nimport HtmlThumbnailPreviewFull from './html-thumbnail-preview-full';\nimport ConfirmPopUp from '../../../components/confirm-modal/confirm-modal';\n\nconst TemplateModal = ({ email, onClose, open, companies = [], templateRoutes, source = 'add' }) => {\n const [templates, setTemplates] = useState([]);\n const [selectedTemplate, setSelectedTemplate] = useState('');\n const [defaultTemplate, setDefaultTemplate] = useState('');\n const [loading, setLoding] = useState(true);\n const [selectedCompany, setSelectedCompany] = React.useState<number>(companies?.[0]?.id || 0);\n const [templateToDelete, setTemplateToDelete] = React.useState<Record<string, any> | null>(null);\n const [selectedTemplateForPreview, setSelectedTemplateForPreview] = useState(null);\n\n const navigate = useNavigate();\n\n const handleClose = () => {\n onClose();\n };\n\n const handleViewTemplate = () => {\n navigate(templateRoutes.EDIT_TEMPLATE(email._id, selectedTemplate), { \n state: { company_id: selectedCompany, isViewOnly: true, fromPreview: true }\n });\n };\n\n const handleTemplateSelect = (id: any) => {\n if (source === 'view') {\n const template = templates.find((t: any) => t?._id === id);\n setSelectedTemplateForPreview(template);\n setSelectedTemplate(id);\n handleViewTemplate();\n } else {\n setSelectedTemplate(id);\n }\n }\n\n const getTemplatesViaSubject = async () => {\n setLoding(true)\n const res = await getV1Templates({ ...getToken(), filters: `(company_id.eq=${selectedCompany}&subject_id.eq=${email._id})` })\n if(res?.data) {\n const dTemplate = res?.data?.find(t => t.is_default === true)\n setDefaultTemplate(dTemplate)\n setSelectedTemplate(dTemplate?._id)\n setTemplates(res?.data)\n }\n\n setLoding(false)\n }\n\n const handleDefaultTemplate = async () => {\n try {\n await patchV1TemplatesIdSetDefault({ ...getToken(), id: selectedTemplate })\n enqueueSnackbar('Template has been set as default');\n } catch (error) {\n const m = getErrorMessage(error?.message);\n enqueueSnackbar(m, { variant: 'error' });\n }\n }\n\n const handleDeleteTemplate = async () => {\n try {\n if(templateToDelete) {\n await deleteV1TemplatesId({ ...getToken(), id: templateToDelete?._id })\n enqueueSnackbar('Template has been deleted');\n setTemplateToDelete(null)\n await getTemplatesViaSubject()\n }\n } catch (error) {\n const m = getErrorMessage(error?.message);\n enqueueSnackbar(m, { variant: 'error' });\n }\n }\n\n useEffect(() => {\n getTemplatesViaSubject()\n return () => { setLoding(true) }\n }, [selectedCompany])\n\n return (\n <div>\n <Modal \n open={open} \n onClose={handleClose} \n maxWidth=\"lg\" \n fullWidth\n aria-labelledby=\"email-template-selection\"\n sx={{\n '& .MuiDialog-paper': {\n height: '85vh',\n display: 'flex',\n flexDirection: 'column'\n }\n }}\n >\n\n {console.log(source, \"soure in modal +++++++++++++++++++++++debug\")}\n {/* {loading && <ModalLoader/>} */}\n <DialogTitle sx={{ marginBottom: '1rem', padding: '0.75rem 1rem 0.75rem 1.5rem', borderBottom: '1px solid #D3D3D4'}}>\n <Box display='flex' alignItems='center' gap={2}>\n {selectedTemplateForPreview && (\n <IconButton\n onClick={() => setSelectedTemplateForPreview(null)}\n size='small'\n sx={{ color: (theme) => theme.palette.grey[700] }}\n >\n <Typography>← Back</Typography>\n </IconButton>\n )}\n <Typography type='s1' weight='medium' color='theme.secondary.1000' sx={{ flex: 1, textAlign: 'center' }}> \n {selectedTemplateForPreview ? 'Template Preview' : (source === 'view' ? 'Template Preview' : 'Select Template')}\n </Typography>\n </Box>\n <Box display='flex' alignItems={'center'} gap={1} position='absolute' right='1%' top='4px'>\n <Typography type='s3' weight='medium' color='theme.secondary.800'> Company</Typography>\n <Select\n displayEmpty\n value={selectedCompany}\n size='small'\n renderValue={(value) => value ? companies.find((option) => option.value === value)?.label : 'Select Company'}\n // fullWidth\n // sx={{\n // bgcolor: 'white',\n // borderRadius: 1,\n // '& .MuiSelect-select': { py: 0.75 }\n // }}\n onChange={(e) => {\n if (e.target.value) {\n setSelectedCompany(e.target.value as number);\n }\n }}>\n {companies.map((option) => (\n <MenuItem key={option.value} value={option.value}>\n <Typography type='s3' color='theme.secondary.1000'>{option.label}</Typography>\n </MenuItem>\n ))}\n </Select>\n <IconButton\n aria-label=\"close\"\n onClick={handleClose}\n size='small'\n sx={{\n color: (theme) => theme.palette.grey[500],\n }}\n >\n <CloseIcon fontSize='small'/>\n </IconButton>\n </Box>\n </DialogTitle>\n \n {\n selectedTemplateForPreview ? (\n <DialogContent sx={{ display: 'flex', flexDirection: 'column', gap: 3, width: '100%', p: 3, flex: 1, overflow: 'auto', scrollbarWidth: 'none', msOverflowStyle: 'none', '&::-webkit-scrollbar': { display: 'none' } }}>\n {/* Main Preview */}\n <Box sx={{ width: '100%', display: 'flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', flexShrink: 0 }}>\n <HtmlThumbnailPreviewFull\n template={selectedTemplateForPreview}\n width={'100%'}\n height={600}\n scale={1}\n showControls={true}\n isFetching={loading}\n normalView={true}\n />\n </Box>\n </DialogContent>\n ) : (\n <DialogContent sx={{ flex: 1, overflow: 'auto', display: 'flex', flexDirection: 'column', scrollbarWidth: 'none', msOverflowStyle: 'none', '&::-webkit-scrollbar': { display: 'none' } }}>\n {/* <Grid container spacing={6}> */}\n {!templates.length && (\n // <Grid item xs={12} sx={{ minHeight: 350}}>\n <Box display='flex' alignItems='center' width='100%' height='100%' justifyContent='center'>\n {!loading && <Typography type='s1' weight='medium' color='theme.secondary.1000' sx={{ textAlign: 'center' }}>No templates found</Typography>}\n </Box>\n // </Grid>\n )}\n <Box sx={{ \n display: 'grid', \n gridTemplateColumns: 'repeat(auto-fill, minmax(300px, 1fr))', \n gap: 2, \n p: 2,\n justifyItems: 'center',\n alignItems: 'center'\n }}>\n {templates.map((template, index) => (\n <HtmlThumbnailPreview\n key={template._id || index}\n template={template}\n width={300}\n height={200}\n showControls={source === 'add'}\n selectedTemplateId={selectedTemplate}\n onClick={(template: any) => {\n handleTemplateSelect(template._id)\n }}\n normalView={source === 'add'}\n isFetching={loading}\n onDelete={(template: any) => setTemplateToDelete(template)}\n />\n ))}\n </Box>\n </DialogContent>\n )}\n {source === 'add' && (\n <DialogActions sx={{ p: 2, justifyContent: 'center', borderTop: '1px solid #D3D3D4' }}>\n <Button\n onClick={() => navigate(templateRoutes.EDIT_TEMPLATE(email._id, selectedTemplate), { state: { company_id: selectedCompany } })}\n disabled={!selectedTemplate}\n >\n Continue\n </Button>\n <Button\n onClick={() => handleDefaultTemplate()}\n disabled={!selectedTemplate || defaultTemplate?._id === selectedTemplate}\n >\n Set to Default\n </Button>\n </DialogActions>\n )}\n </Modal>\n <ConfirmPopUp\n open={templateToDelete !== null}\n onClose={() => setTemplateToDelete(null)}\n title='Remove Template'\n description='Are you sure you want to delete ?'\n onConfirm={() => handleDeleteTemplate()}\n loading={loading}\n />\n </div>\n );\n};\n\nexport { TemplateModal };\nexport default TemplateModal;"],"names":["useState","useRef","useEffect","useCallback","jsx","Box","Skeleton","jsxs","Typography","Fade","Tooltip","IconButton","ZoomIn","Divider","ZoomOut","Refresh","Fragment","Trash","useNavigate","getV1Templates","getToken","_a","patchV1TemplatesIdSetDefault","enqueueSnackbar","getErrorMessage","deleteV1TemplatesId","Modal","DialogTitle","Select","MenuItem","CloseIcon","DialogContent","template","DialogActions","Button","ConfirmPopUp"],"mappings":"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"}
1
+ {"version":3,"file":"template-modal-BXZblB-i.js","sources":["../../src/views/template-editor/template-modal/html-thumbnail-preview.tsx","../../src/views/template-editor/template-modal/html-thumbnail-preview-full.tsx","../../src/views/template-editor/template-modal/template-modal.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable unused-imports/no-unused-vars */\nimport React, { useState, useRef, useEffect, useCallback } from 'react';\nimport { Box, Skeleton, IconButton, Tooltip, Divider, Fade } from '@mui/material';\nimport { ZoomIn, ZoomOut, Refresh } from '@mui/icons-material';\nimport { Trash } from '../../../components/icons';\nimport Typography from '../../../components/typography/typography';\n\nconst HtmlThumbnailPreview = ({ \n template, \n width = 300, \n height = 200, \n scale = 0.25,\n showControls = false,\n onClick = null,\n selectedTemplateId = '',\n isFetching = false,\n onDelete,\n minScale = 0.1,\n maxScale = 1,\n scaleStep = 1.2,\n loadingDelay = 500,\n refreshDelay = 300,\n normalView = false,\n}) => {\n const [isLoading, setIsLoading] = useState(isFetching || true);\n const [currentScale, setCurrentScale] = useState(scale);\n const [error, setError] = useState(null);\n const [isHovered, setIsHovered] = useState(false);\n const containerRef = useRef(null);\n const contentRef = useRef(null);\n const loadingTimeoutRef = useRef(null);\n const refreshTimeoutRef = useRef(null);\n\n // Calculate dimensions based on scale\n const scaledWidth = width / currentScale;\n const scaledHeight = height / currentScale;\n\n // Cleanup timeouts on unmount\n useEffect(() => {\n return () => {\n if (loadingTimeoutRef.current) {\n clearTimeout(loadingTimeoutRef.current);\n }\n if (refreshTimeoutRef.current) {\n clearTimeout(refreshTimeoutRef.current);\n }\n };\n }, []);\n\n // Handle initial loading\n useEffect(() => {\n if (loadingTimeoutRef.current) {\n clearTimeout(loadingTimeoutRef.current);\n }\n \n loadingTimeoutRef.current = setTimeout(() => {\n setIsLoading(false);\n }, loadingDelay);\n\n return () => {\n if (loadingTimeoutRef.current) {\n clearTimeout(loadingTimeoutRef.current);\n }\n };\n }, [template.contents, loadingDelay]);\n\n // Handle external loading state\n useEffect(() => {\n setIsLoading(isFetching);\n }, [isFetching]);\n\n // Memoized event handlers\n const handleZoomIn = useCallback(() => {\n setCurrentScale(prev => Math.min(prev * scaleStep, maxScale));\n }, [scaleStep, maxScale]);\n\n const handleZoomOut = useCallback(() => {\n setCurrentScale(prev => Math.max(prev / scaleStep, minScale));\n }, [scaleStep, minScale]);\n\n const handleRefresh = useCallback(() => {\n setIsLoading(true);\n setError(null);\n \n if (refreshTimeoutRef.current) {\n clearTimeout(refreshTimeoutRef.current);\n }\n \n refreshTimeoutRef.current = setTimeout(() => {\n setIsLoading(false);\n }, refreshDelay);\n }, [refreshDelay]);\n\n const handleClick = useCallback(() => {\n if (onClick && !isLoading) {\n onClick(template);\n }\n }, [onClick, template, isLoading]);\n\n const handleDelete = useCallback((e) => {\n e.stopPropagation(); // Prevent triggering onClick\n if (onDelete && !template?.is_default) {\n onDelete(template);\n }\n }, [onDelete, template]);\n\n const handleMouseEnter = useCallback(() => {\n setIsHovered(true);\n }, []);\n\n const handleMouseLeave = useCallback(() => {\n setIsHovered(false);\n }, []);\n\n // Loading state\n if (isLoading) {\n return (\n <Box \n sx={{ \n width, \n height,\n borderRadius: 1,\n overflow: 'hidden',\n border: '1px solid',\n borderColor: 'divider'\n }}\n >\n <Skeleton \n variant=\"rectangular\" \n width=\"100%\" \n height=\"100%\" \n animation=\"wave\"\n />\n </Box>\n );\n }\n\n // Error state\n if (error) {\n return (\n <Box \n sx={{ \n width, \n height,\n borderRadius: 1,\n overflow: 'hidden',\n border: '1px solid',\n borderColor: 'error.main',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: 'error.light',\n color: 'error.contrastText'\n }}\n >\n Failed to load template\n </Box>\n );\n }\n\n const isSelected = selectedTemplateId === template._id;\n const canZoomIn = currentScale < maxScale;\n const canZoomOut = currentScale > minScale;\n const canDelete = !template?.is_default;\n\n return (\n <Box \n sx={{ position: 'relative', display: 'inline-block' }}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n {/* Main Container */}\n <Box\n ref={containerRef}\n onClick={handleClick}\n sx={(theme) => ({\n width,\n height,\n border: '1px solid',\n borderRadius: 1,\n overflow: 'hidden',\n position: 'relative',\n cursor: onClick ? 'pointer' : 'default',\n backgroundColor: '#fff',\n // boxShadow: '0 2px 8px rgba(0,0,0,0.1)',\n transition: 'all 0.2s ease-in-out',\n '&:hover': onClick ? {\n boxShadow: '0 4px 16px rgba(0,0,0,0.15)',\n transform: 'translateY(-1px)',\n } : {},\n borderColor: normalView && isSelected ? theme.palette.theme.primary[800] : 'grey.300',\n borderWidth: isSelected ? 2 : 1,\n })}\n >\n {/* Scaled Content Wrapper */}\n <Box\n sx={{\n width: scaledWidth,\n height: scaledHeight,\n transform: `scale(${currentScale})`,\n transformOrigin: 'top left',\n position: 'absolute',\n top: 0,\n left: 0,\n overflow: 'hidden',\n }}\n >\n {/* HTML Content */}\n <Box\n ref={contentRef}\n sx={{\n width: '100%',\n height: '100%',\n userSelect: 'none',\n pointerEvents: 'none',\n pt: 2,\n '& *': {\n maxWidth: '100% !important',\n boxSizing: 'border-box !important',\n },\n // Reset common problematic styles\n '& body': {\n margin: '0 !important',\n padding: '0 !important',\n overflow: 'hidden !important',\n },\n // Handle images\n '& img': {\n maxWidth: '100% !important',\n height: 'auto !important',\n },\n // Handle tables\n '& table': {\n width: '100% !important',\n tableLayout: 'fixed !important',\n },\n // Prevent absolute positioning issues\n '& *[style*=\"position: absolute\"]': {\n position: 'relative !important',\n },\n '& .email-container': {\n width: '85% !important',\n }\n }}\n dangerouslySetInnerHTML={{ __html: template.contents }}\n />\n </Box>\n\n {/* Loading Overlay */}\n {isLoading && (\n <Box\n sx={{\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'rgba(255,255,255,0.8)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n zIndex: 2,\n }}\n >\n <Skeleton variant=\"rectangular\" width=\"90%\" height=\"90%\" />\n </Box>\n )}\n\n {/* Selection Indicator */}\n {template?.is_default && (\n <Box\n sx={(theme) => ({\n position: 'absolute',\n top: 8,\n left: 8,\n width: 12,\n height: 12,\n borderRadius: '50%',\n backgroundColor: theme.palette.theme?.primary[800],\n zIndex: 3,\n })}\n />\n )}\n </Box>\n {template?.name && <Typography type='s3' weight='medium' color='theme.secondary.1000' align='center' sx={{width, mt:0.5}}>{template?.name}</Typography>}\n\n {/* Hover Controls */}\n {showControls && (\n <Fade in={isHovered} timeout={200}>\n <Box\n sx={{\n position: 'absolute',\n top: -8,\n right: -8,\n display: 'flex',\n gap: 0.5,\n zIndex: 4,\n backgroundColor: 'rgba(255,255,255,0.95)',\n border: '1px solid',\n borderColor: 'grey.300',\n borderRadius: 2,\n padding: 0.5,\n boxShadow: '0 4px 12px rgba(0,0,0,0.15)',\n backdropFilter: 'blur(4px)',\n }}\n >\n <Tooltip title={`Zoom In (${Math.round(currentScale * 100)}%)`} arrow>\n <span>\n <IconButton\n size=\"small\"\n onClick={handleZoomIn}\n disabled={!canZoomIn}\n sx={{\n backgroundColor: 'transparent',\n '&:hover': { \n backgroundColor: 'primary.light',\n color: 'primary.contrastText' \n },\n '&:disabled': {\n opacity: 0.5\n }\n }}\n >\n <ZoomIn fontSize=\"small\" />\n </IconButton>\n </span>\n </Tooltip>\n\n <Divider orientation=\"vertical\" variant=\"middle\" flexItem />\n\n <Tooltip title={`Zoom Out (${Math.round(currentScale * 100)}%)`} arrow>\n <span>\n <IconButton\n size=\"small\"\n onClick={handleZoomOut}\n disabled={!canZoomOut}\n sx={{\n backgroundColor: 'transparent',\n '&:hover': { \n backgroundColor: 'primary.light',\n color: 'primary.contrastText' \n },\n '&:disabled': {\n opacity: 0.5\n }\n }}\n >\n <ZoomOut fontSize=\"small\" />\n </IconButton>\n </span>\n </Tooltip>\n\n <Divider orientation=\"vertical\" variant=\"middle\" flexItem />\n\n <Tooltip title=\"Refresh Preview\" arrow>\n <IconButton\n size=\"small\"\n onClick={handleRefresh}\n sx={{\n backgroundColor: 'transparent',\n '&:hover': { \n backgroundColor: 'primary.light',\n color: 'primary.contrastText' \n },\n }}\n >\n <Refresh fontSize=\"small\" />\n </IconButton>\n </Tooltip>\n\n {onDelete && (\n <>\n <Divider orientation=\"vertical\" variant=\"middle\" flexItem />\n <Tooltip \n title={canDelete ? \"Delete Template\" : \"Cannot delete default template\"} \n arrow\n >\n <span>\n <IconButton\n size=\"small\"\n onClick={handleDelete}\n disabled={!canDelete}\n sx={{\n backgroundColor: 'transparent',\n '&:hover': !canDelete ? {} : { \n backgroundColor: 'error.light',\n color: 'error.contrastText' \n },\n '&:disabled': {\n opacity: 0.5\n }\n }}\n >\n <Trash fontSize=\"small\" />\n </IconButton>\n </span>\n </Tooltip>\n </>\n )}\n </Box>\n </Fade>\n )}\n </Box>\n );\n};\n\nexport { HtmlThumbnailPreview };\nexport default HtmlThumbnailPreview;","/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable unused-imports/no-unused-vars */\nimport React, { useState, useRef, useEffect, useCallback } from 'react';\nimport { Box, Skeleton, IconButton, Tooltip, Divider, Fade } from '@mui/material';\nimport { ZoomIn, ZoomOut, Refresh } from '@mui/icons-material';\nimport { Trash } from '../../../components/icons';\nimport Typography from '../../../components/typography/typography';\n\ninterface HtmlThumbnailPreviewProps {\n template: any;\n width?: number | string; \n height?: number;\n scale?: number;\n showControls?: boolean;\n onClick?: (template: any) => void;\n selectedTemplateId?: string;\n isFetching?: boolean;\n onDelete?: (template: any) => void;\n normalView?: boolean;\n minScale?: number;\n maxScale?: number;\n scaleStep?: number;\n loadingDelay?: number;\n refreshDelay?: number;\n}\n\nconst HtmlThumbnailPreviewFull: React.FC<HtmlThumbnailPreviewProps> = ({\n template,\n width = '100%',\n height = 800,\n scale = 0.25,\n showControls = false,\n onClick = null,\n selectedTemplateId = '',\n isFetching = false,\n onDelete,\n normalView = false,\n minScale = 0.1,\n maxScale = 1,\n scaleStep = 1.2,\n loadingDelay = 500,\n refreshDelay = 300,\n}) => {\n const [isLoading, setIsLoading] = useState(isFetching || true);\n const [currentScale, setCurrentScale] = useState(scale);\n const [error, setError] = useState<null | string>(null);\n const [isHovered, setIsHovered] = useState(false);\n const containerRef = useRef<HTMLDivElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n const loadingTimeoutRef = useRef<any>(null);\n const refreshTimeoutRef = useRef<any>(null);\n\n const [containerPixelWidth, setContainerPixelWidth] = useState<number>(typeof width === 'number' ? width : 800);\n\n // Measure container width for responsive scaling\n useEffect(() => {\n const updateWidth = () => {\n if (containerRef.current) {\n const newWidth = containerRef.current.offsetWidth;\n setContainerPixelWidth(newWidth);\n }\n };\n updateWidth();\n window.addEventListener('resize', updateWidth);\n return () => window.removeEventListener('resize', updateWidth);\n }, []);\n\n const scaledWidth = containerPixelWidth / currentScale;\n const scaledHeight = height / currentScale;\n\n useEffect(() => {\n return () => {\n clearTimeout(loadingTimeoutRef.current);\n clearTimeout(refreshTimeoutRef.current);\n };\n }, []);\n\n useEffect(() => {\n clearTimeout(loadingTimeoutRef.current);\n loadingTimeoutRef.current = setTimeout(() => setIsLoading(false), loadingDelay);\n return () => clearTimeout(loadingTimeoutRef.current);\n }, [template.contents, loadingDelay]);\n\n useEffect(() => setIsLoading(isFetching), [isFetching]);\n\n const handleZoomIn = useCallback(() => setCurrentScale(prev => Math.min(prev * scaleStep, maxScale)), [scaleStep, maxScale]);\n const handleZoomOut = useCallback(() => setCurrentScale(prev => Math.max(prev / scaleStep, minScale)), [scaleStep, minScale]);\n const handleRefresh = useCallback(() => {\n setIsLoading(true);\n setError(null);\n clearTimeout(refreshTimeoutRef.current);\n refreshTimeoutRef.current = setTimeout(() => setIsLoading(false), refreshDelay);\n }, [refreshDelay]);\n\n const handleClick = useCallback(() => {\n if (onClick && !isLoading) onClick(template);\n }, [onClick, template, isLoading]);\n\n const handleDelete = useCallback((e: React.MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n if (onDelete && !template?.is_default) onDelete(template);\n }, [onDelete, template]);\n\n const handleMouseEnter = useCallback(() => setIsHovered(true), []);\n const handleMouseLeave = useCallback(() => setIsHovered(false), []);\n\n if (isLoading) return (\n <Box sx={{ width, height, borderRadius: 1, overflow: 'hidden', border: '1px solid', borderColor: 'divider' }}>\n <Skeleton variant=\"rectangular\" width=\"100%\" height=\"100%\" animation=\"wave\" />\n </Box>\n );\n\n if (error) return (\n <Box sx={{\n width, height, borderRadius: 1, overflow: 'hidden', border: '1px solid',\n borderColor: 'error.main', display: 'flex', alignItems: 'center', justifyContent: 'center',\n backgroundColor: 'error.light', color: 'error.contrastText'\n }}>\n Failed to load template\n </Box>\n );\n\n const isSelected = selectedTemplateId === template._id;\n const canZoomIn = currentScale < maxScale;\n const canZoomOut = currentScale > minScale;\n const canDelete = !template?.is_default;\n\n return (\n <Box\n ref={containerRef}\n sx={{ position: 'relative', width, marginInline: 'auto', display: 'inline-block' }}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n <Box\n onClick={handleClick}\n sx={(theme) => ({\n width: '100%',\n height,\n marginBlock: 0,\n overflow: 'hidden',\n position: 'relative',\n backgroundColor: '#fff',\n transition: 'all 0.2s ease-in-out',\n '&:hover': onClick ? { boxShadow: '0 4px 16px rgba(0,0,0,0.15)', transform: 'translateY(-1px)' } : {},\n })}\n >\n <Box\n sx={{\n width: '100%',\n height: '100%',\n display: 'flex',\n justifyContent: 'center', \n alignItems: 'center', \n overflow: 'auto',\n backgroundColor: '#fff',\n }}\n >\n <Box\n sx={{\n transform: `scale(${currentScale})`,\n transformOrigin: 'top left',\n pointerEvents: 'none',\n userSelect: 'none',\n width: containerPixelWidth,\n height: height,\n }}\n >\n <Box\n ref={contentRef}\n sx={{\n width: '100%',\n height: '100%',\n '& *': { maxWidth: '100% !important', boxSizing: 'border-box !important' },\n '& body': { margin: 0, padding: 0, overflow: 'hidden' },\n '& img': { maxWidth: '100% !important', height: 'auto !important' },\n '& table': { width: '100% !important', tableLayout: 'fixed !important' },\n '& *[style*=\"position: absolute\"]': { position: 'relative !important' },\n '& .email-container': { width: '85% !important' },\n }}\n dangerouslySetInnerHTML={{ __html: template.contents }}\n />\n </Box>\n </Box>\n\n {template?.is_default && (\n <Box sx={(theme) => ({ position: 'absolute', top: 8, left: 8, width: 12, height: 12, borderRadius: '50%', backgroundColor: theme.palette.theme.primary[800], zIndex: 3 })} />\n )}\n </Box>\n\n {template?.name && <Typography type='s3' weight='medium' color='theme.secondary.1000' align='center' sx={{ width, mt: 0.5 }}>{template?.name}</Typography>}\n\n {showControls && (\n <Fade in={isHovered} timeout={200}>\n <Box sx={{ position: 'absolute', top: -8, right: -8, display: 'flex', gap: 0.5, zIndex: 4, backgroundColor: 'rgba(255,255,255,0.95)', border: '1px solid', borderColor: 'grey.300', borderRadius: 2, padding: 0.5, boxShadow: '0 4px 12px rgba(0,0,0,0.15)', backdropFilter: 'blur(4px)' }}>\n <Tooltip title={`Zoom In (${Math.round(currentScale * 100)}%)`} arrow>\n <span><IconButton size=\"small\" onClick={handleZoomIn} disabled={!canZoomIn}><ZoomIn fontSize=\"small\" /></IconButton></span>\n </Tooltip>\n <Divider orientation=\"vertical\" flexItem />\n <Tooltip title={`Zoom Out (${Math.round(currentScale * 100)}%)`} arrow>\n <span><IconButton size=\"small\" onClick={handleZoomOut} disabled={!canZoomOut}><ZoomOut fontSize=\"small\" /></IconButton></span>\n </Tooltip>\n <Divider orientation=\"vertical\" flexItem />\n <Tooltip title=\"Refresh Preview\" arrow>\n <IconButton size=\"small\" onClick={handleRefresh}><Refresh fontSize=\"small\" /></IconButton>\n </Tooltip>\n {onDelete && <>\n <Divider orientation=\"vertical\" flexItem />\n <Tooltip title={canDelete ? \"Delete Template\" : \"Cannot delete default template\"} arrow>\n <span><IconButton size=\"small\" onClick={handleDelete} disabled={!canDelete}><Trash fontSize=\"small\" /></IconButton></span>\n </Tooltip>\n </>}\n </Box>\n </Fade>\n )}\n </Box>\n );\n};\n\nexport default HtmlThumbnailPreviewFull;","/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable unused-imports/no-unused-vars */\nimport React, { useEffect, useState } from 'react';\nimport { \n DialogTitle, \n DialogContent, \n DialogActions,\n IconButton,\n Box,\n MenuItem\n} from '@mui/material';\nimport CloseIcon from '@mui/icons-material/Close';\nimport Typography from '../../../components/typography/typography';\nimport Modal from '../../../components/modal/modal';\nimport { deleteV1TemplatesId, getV1Templates, patchV1TemplatesIdSetDefault } from '../../../api-client/api.system-feature/api';\nimport { getErrorMessage, getToken } from '../../../utils/common';\nimport Button from '../../../components/button/button';\n// import ModalLoader from '../../../components/loader/modal-loader';\nimport { useNavigate } from 'react-router-dom';\nimport { enqueueSnackbar } from 'notistack';\nimport Select from '../../../components/select/select';\nimport HtmlThumbnailPreview from './html-thumbnail-preview';\nimport HtmlThumbnailPreviewFull from './html-thumbnail-preview-full';\nimport ConfirmPopUp from '../../../components/confirm-modal/confirm-modal';\n\nconst TemplateModal = ({ email, onClose, open, companies = [], templateRoutes, source = 'add' }) => {\n const [templates, setTemplates] = useState([]);\n const [selectedTemplate, setSelectedTemplate] = useState('');\n const [defaultTemplate, setDefaultTemplate] = useState('');\n const [loading, setLoding] = useState(true);\n const [selectedCompany, setSelectedCompany] = React.useState<number>(companies?.[0]?.id || 0);\n const [templateToDelete, setTemplateToDelete] = React.useState<Record<string, any> | null>(null);\n const [selectedTemplateForPreview, setSelectedTemplateForPreview] = useState(null);\n\n const navigate = useNavigate();\n\n const handleClose = () => {\n onClose();\n };\n\n const handleViewTemplate = () => {\n navigate(templateRoutes.EDIT_TEMPLATE(email._id, selectedTemplate), { \n state: { company_id: selectedCompany, isViewOnly: true, fromPreview: true }\n });\n };\n\n const handleTemplateSelect = (id: any) => {\n if (source === 'view') {\n const template = templates.find((t: any) => t?._id === id);\n setSelectedTemplateForPreview(template);\n setSelectedTemplate(id);\n handleViewTemplate();\n } else {\n setSelectedTemplate(id);\n }\n }\n\n const getTemplatesViaSubject = async () => {\n setLoding(true)\n const res = await getV1Templates({ ...getToken(), filters: `(company_id.eq=${selectedCompany}&subject_id.eq=${email._id})` })\n if(res?.data) {\n const dTemplate = res?.data?.find(t => t.is_default === true)\n setDefaultTemplate(dTemplate)\n setSelectedTemplate(dTemplate?._id)\n setTemplates(res?.data)\n }\n\n setLoding(false)\n }\n\n const handleDefaultTemplate = async () => {\n try {\n await patchV1TemplatesIdSetDefault({ ...getToken(), id: selectedTemplate })\n enqueueSnackbar('Template has been set as default');\n } catch (error) {\n const m = getErrorMessage(error?.message);\n enqueueSnackbar(m, { variant: 'error' });\n }\n }\n\n const handleDeleteTemplate = async () => {\n try {\n if(templateToDelete) {\n await deleteV1TemplatesId({ ...getToken(), id: templateToDelete?._id })\n enqueueSnackbar('Template has been deleted');\n setTemplateToDelete(null)\n await getTemplatesViaSubject()\n }\n } catch (error) {\n const m = getErrorMessage(error?.message);\n enqueueSnackbar(m, { variant: 'error' });\n }\n }\n\n useEffect(() => {\n getTemplatesViaSubject()\n return () => { setLoding(true) }\n }, [selectedCompany])\n\n return (\n <div>\n <Modal \n open={open} \n onClose={handleClose} \n maxWidth=\"lg\" \n fullWidth\n aria-labelledby=\"email-template-selection\"\n sx={{\n '& .MuiDialog-paper': {\n height: '85vh',\n display: 'flex',\n flexDirection: 'column'\n }\n }}\n >\n\n {console.log(source, \"soure in modal +++++++++++++++++++++++debug\")}\n {/* {loading && <ModalLoader/>} */}\n <DialogTitle sx={{ marginBottom: '1rem', padding: '0.75rem 1rem 0.75rem 1.5rem', borderBottom: '1px solid #D3D3D4'}}>\n <Box display='flex' alignItems='center' gap={2}>\n {selectedTemplateForPreview && (\n <IconButton\n onClick={() => setSelectedTemplateForPreview(null)}\n size='small'\n sx={{ color: (theme) => theme.palette.grey[700] }}\n >\n <Typography>← Back</Typography>\n </IconButton>\n )}\n <Typography type='s1' weight='medium' color='theme.secondary.1000' sx={{ flex: 1, textAlign: 'center' }}> \n {selectedTemplateForPreview ? 'Template Preview' : (source === 'view' ? 'Template Preview' : 'Select Template')}\n </Typography>\n </Box>\n <Box display='flex' alignItems={'center'} gap={1} position='absolute' right='1%' top='4px'>\n <Typography type='s3' weight='medium' color='theme.secondary.800'> Company</Typography>\n <Select\n displayEmpty\n value={selectedCompany}\n size='small'\n renderValue={(value) => value ? companies.find((option) => option.value === value)?.label : 'Select Company'}\n // fullWidth\n // sx={{\n // bgcolor: 'white',\n // borderRadius: 1,\n // '& .MuiSelect-select': { py: 0.75 }\n // }}\n onChange={(e) => {\n if (e.target.value) {\n setSelectedCompany(e.target.value as number);\n }\n }}>\n {companies.map((option) => (\n <MenuItem key={option.value} value={option.value}>\n <Typography type='s3' color='theme.secondary.1000'>{option.label}</Typography>\n </MenuItem>\n ))}\n </Select>\n <IconButton\n aria-label=\"close\"\n onClick={handleClose}\n size='small'\n sx={{\n color: (theme) => theme.palette.grey[500],\n }}\n >\n <CloseIcon fontSize='small'/>\n </IconButton>\n </Box>\n </DialogTitle>\n \n {\n selectedTemplateForPreview ? (\n <DialogContent sx={{ display: 'flex', flexDirection: 'column', gap: 3, width: '100%', p: 3, flex: 1, overflow: 'auto', scrollbarWidth: 'none', msOverflowStyle: 'none', '&::-webkit-scrollbar': { display: 'none' } }}>\n {/* Main Preview */}\n <Box sx={{ width: '100%', display: 'flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', flexShrink: 0 }}>\n <HtmlThumbnailPreviewFull\n template={selectedTemplateForPreview}\n width={'100%'}\n height={600}\n scale={1}\n showControls={true}\n isFetching={loading}\n normalView={true}\n />\n </Box>\n </DialogContent>\n ) : (\n <DialogContent sx={{ flex: 1, overflow: 'auto', display: 'flex', flexDirection: 'column', scrollbarWidth: 'none', msOverflowStyle: 'none', '&::-webkit-scrollbar': { display: 'none' } }}>\n {/* <Grid container spacing={6}> */}\n {!templates.length && (\n // <Grid item xs={12} sx={{ minHeight: 350}}>\n <Box display='flex' alignItems='center' width='100%' height='100%' justifyContent='center'>\n {!loading && <Typography type='s1' weight='medium' color='theme.secondary.1000' sx={{ textAlign: 'center' }}>No templates found</Typography>}\n </Box>\n // </Grid>\n )}\n <Box sx={{ \n display: 'grid', \n gridTemplateColumns: 'repeat(auto-fill, minmax(300px, 1fr))', \n gap: 2, \n p: 2,\n justifyItems: 'center',\n alignItems: 'center'\n }}>\n {templates.map((template, index) => (\n <HtmlThumbnailPreview\n key={template._id || index}\n template={template}\n width={300}\n height={200}\n showControls={source === 'add'}\n selectedTemplateId={selectedTemplate}\n onClick={(template: any) => {\n handleTemplateSelect(template._id)\n }}\n normalView={source === 'add'}\n isFetching={loading}\n onDelete={(template: any) => setTemplateToDelete(template)}\n />\n ))}\n </Box>\n </DialogContent>\n )}\n {source === 'add' && (\n <DialogActions sx={{ p: 2, justifyContent: 'center', borderTop: '1px solid #D3D3D4' }}>\n <Button\n onClick={() => navigate(templateRoutes.EDIT_TEMPLATE(email._id, selectedTemplate), { state: { company_id: selectedCompany } })}\n disabled={!selectedTemplate}\n >\n Continue\n </Button>\n <Button\n onClick={() => handleDefaultTemplate()}\n disabled={!selectedTemplate || defaultTemplate?._id === selectedTemplate}\n >\n Set to Default\n </Button>\n </DialogActions>\n )}\n </Modal>\n <ConfirmPopUp\n open={templateToDelete !== null}\n onClose={() => setTemplateToDelete(null)}\n title='Remove Template'\n description='Are you sure you want to delete ?'\n onConfirm={() => handleDeleteTemplate()}\n loading={loading}\n />\n </div>\n );\n};\n\nexport { TemplateModal };\nexport default TemplateModal;"],"names":["useState","useRef","useEffect","useCallback","jsx","Box","Skeleton","jsxs","Typography","Fade","Tooltip","IconButton","ZoomIn","Divider","ZoomOut","Refresh","Fragment","Trash","useNavigate","getV1Templates","getToken","_a","patchV1TemplatesIdSetDefault","enqueueSnackbar","getErrorMessage","deleteV1TemplatesId","Modal","DialogTitle","Select","MenuItem","CloseIcon","DialogContent","template","DialogActions","Button","ConfirmPopUp"],"mappings":"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"}
@@ -5,7 +5,7 @@ import Close from "@mui/icons-material/Close";
5
5
  import { T as Typography } from "./typography-CG_A0iOJ.esm.js";
6
6
  import { M as Modal } from "./modal-DCla9U60.esm.js";
7
7
  import { v as getV1Templates, w as patchV1TemplatesIdSetDefault, x as deleteV1TemplatesId } from "./api-DBmWILBN.esm.js";
8
- import { ab as getToken, W as getErrorMessage } from "./api-BIVCMSwW.esm.js";
8
+ import { ab as getToken, W as getErrorMessage } from "./api-COFUx2RW.esm.js";
9
9
  import { B as Button } from "./button-BtdpXmjA.esm.js";
10
10
  import { useNavigate } from "react-router-dom";
11
11
  import { enqueueSnackbar } from "notistack";
@@ -766,4 +766,4 @@ export {
766
766
  HtmlThumbnailPreview as H,
767
767
  TemplateModal as T
768
768
  };
769
- //# sourceMappingURL=template-modal-B2VgotrF.esm.js.map
769
+ //# sourceMappingURL=template-modal-Cyj0AUks.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"template-modal-B2VgotrF.esm.js","sources":["../../src/views/template-editor/template-modal/html-thumbnail-preview.tsx","../../src/views/template-editor/template-modal/html-thumbnail-preview-full.tsx","../../src/views/template-editor/template-modal/template-modal.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable unused-imports/no-unused-vars */\nimport React, { useState, useRef, useEffect, useCallback } from 'react';\nimport { Box, Skeleton, IconButton, Tooltip, Divider, Fade } from '@mui/material';\nimport { ZoomIn, ZoomOut, Refresh } from '@mui/icons-material';\nimport { Trash } from '../../../components/icons';\nimport Typography from '../../../components/typography/typography';\n\nconst HtmlThumbnailPreview = ({ \n template, \n width = 300, \n height = 200, \n scale = 0.25,\n showControls = false,\n onClick = null,\n selectedTemplateId = '',\n isFetching = false,\n onDelete,\n minScale = 0.1,\n maxScale = 1,\n scaleStep = 1.2,\n loadingDelay = 500,\n refreshDelay = 300,\n normalView = false,\n}) => {\n const [isLoading, setIsLoading] = useState(isFetching || true);\n const [currentScale, setCurrentScale] = useState(scale);\n const [error, setError] = useState(null);\n const [isHovered, setIsHovered] = useState(false);\n const containerRef = useRef(null);\n const contentRef = useRef(null);\n const loadingTimeoutRef = useRef(null);\n const refreshTimeoutRef = useRef(null);\n\n // Calculate dimensions based on scale\n const scaledWidth = width / currentScale;\n const scaledHeight = height / currentScale;\n\n // Cleanup timeouts on unmount\n useEffect(() => {\n return () => {\n if (loadingTimeoutRef.current) {\n clearTimeout(loadingTimeoutRef.current);\n }\n if (refreshTimeoutRef.current) {\n clearTimeout(refreshTimeoutRef.current);\n }\n };\n }, []);\n\n // Handle initial loading\n useEffect(() => {\n if (loadingTimeoutRef.current) {\n clearTimeout(loadingTimeoutRef.current);\n }\n \n loadingTimeoutRef.current = setTimeout(() => {\n setIsLoading(false);\n }, loadingDelay);\n\n return () => {\n if (loadingTimeoutRef.current) {\n clearTimeout(loadingTimeoutRef.current);\n }\n };\n }, [template.contents, loadingDelay]);\n\n // Handle external loading state\n useEffect(() => {\n setIsLoading(isFetching);\n }, [isFetching]);\n\n // Memoized event handlers\n const handleZoomIn = useCallback(() => {\n setCurrentScale(prev => Math.min(prev * scaleStep, maxScale));\n }, [scaleStep, maxScale]);\n\n const handleZoomOut = useCallback(() => {\n setCurrentScale(prev => Math.max(prev / scaleStep, minScale));\n }, [scaleStep, minScale]);\n\n const handleRefresh = useCallback(() => {\n setIsLoading(true);\n setError(null);\n \n if (refreshTimeoutRef.current) {\n clearTimeout(refreshTimeoutRef.current);\n }\n \n refreshTimeoutRef.current = setTimeout(() => {\n setIsLoading(false);\n }, refreshDelay);\n }, [refreshDelay]);\n\n const handleClick = useCallback(() => {\n if (onClick && !isLoading) {\n onClick(template);\n }\n }, [onClick, template, isLoading]);\n\n const handleDelete = useCallback((e) => {\n e.stopPropagation(); // Prevent triggering onClick\n if (onDelete && !template?.is_default) {\n onDelete(template);\n }\n }, [onDelete, template]);\n\n const handleMouseEnter = useCallback(() => {\n setIsHovered(true);\n }, []);\n\n const handleMouseLeave = useCallback(() => {\n setIsHovered(false);\n }, []);\n\n // Loading state\n if (isLoading) {\n return (\n <Box \n sx={{ \n width, \n height,\n borderRadius: 1,\n overflow: 'hidden',\n border: '1px solid',\n borderColor: 'divider'\n }}\n >\n <Skeleton \n variant=\"rectangular\" \n width=\"100%\" \n height=\"100%\" \n animation=\"wave\"\n />\n </Box>\n );\n }\n\n // Error state\n if (error) {\n return (\n <Box \n sx={{ \n width, \n height,\n borderRadius: 1,\n overflow: 'hidden',\n border: '1px solid',\n borderColor: 'error.main',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: 'error.light',\n color: 'error.contrastText'\n }}\n >\n Failed to load template\n </Box>\n );\n }\n\n const isSelected = selectedTemplateId === template._id;\n const canZoomIn = currentScale < maxScale;\n const canZoomOut = currentScale > minScale;\n const canDelete = !template?.is_default;\n\n return (\n <Box \n sx={{ position: 'relative', display: 'inline-block' }}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n {/* Main Container */}\n <Box\n ref={containerRef}\n onClick={handleClick}\n sx={(theme) => ({\n width,\n height,\n border: '1px solid',\n borderRadius: 1,\n overflow: 'hidden',\n position: 'relative',\n cursor: onClick ? 'pointer' : 'default',\n backgroundColor: '#fff',\n // boxShadow: '0 2px 8px rgba(0,0,0,0.1)',\n transition: 'all 0.2s ease-in-out',\n '&:hover': onClick ? {\n boxShadow: '0 4px 16px rgba(0,0,0,0.15)',\n transform: 'translateY(-1px)',\n } : {},\n borderColor: normalView && isSelected ? theme.palette.theme.primary[800] : 'grey.300',\n borderWidth: isSelected ? 2 : 1,\n })}\n >\n {/* Scaled Content Wrapper */}\n <Box\n sx={{\n width: scaledWidth,\n height: scaledHeight,\n transform: `scale(${currentScale})`,\n transformOrigin: 'top left',\n position: 'absolute',\n top: 0,\n left: 0,\n overflow: 'hidden',\n }}\n >\n {/* HTML Content */}\n <Box\n ref={contentRef}\n sx={{\n width: '100%',\n height: '100%',\n userSelect: 'none',\n pointerEvents: 'none',\n pt: 2,\n '& *': {\n maxWidth: '100% !important',\n boxSizing: 'border-box !important',\n },\n // Reset common problematic styles\n '& body': {\n margin: '0 !important',\n padding: '0 !important',\n overflow: 'hidden !important',\n },\n // Handle images\n '& img': {\n maxWidth: '100% !important',\n height: 'auto !important',\n },\n // Handle tables\n '& table': {\n width: '100% !important',\n tableLayout: 'fixed !important',\n },\n // Prevent absolute positioning issues\n '& *[style*=\"position: absolute\"]': {\n position: 'relative !important',\n },\n '& .email-container': {\n width: '85% !important',\n }\n }}\n dangerouslySetInnerHTML={{ __html: template.contents }}\n />\n </Box>\n\n {/* Loading Overlay */}\n {isLoading && (\n <Box\n sx={{\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'rgba(255,255,255,0.8)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n zIndex: 2,\n }}\n >\n <Skeleton variant=\"rectangular\" width=\"90%\" height=\"90%\" />\n </Box>\n )}\n\n {/* Selection Indicator */}\n {template?.is_default && (\n <Box\n sx={(theme) => ({\n position: 'absolute',\n top: 8,\n left: 8,\n width: 12,\n height: 12,\n borderRadius: '50%',\n backgroundColor: theme.palette.theme?.primary[800],\n zIndex: 3,\n })}\n />\n )}\n </Box>\n {template?.name && <Typography type='s3' weight='medium' color='theme.secondary.1000' align='center' sx={{width, mt:0.5}}>{template?.name}</Typography>}\n\n {/* Hover Controls */}\n {showControls && (\n <Fade in={isHovered} timeout={200}>\n <Box\n sx={{\n position: 'absolute',\n top: -8,\n right: -8,\n display: 'flex',\n gap: 0.5,\n zIndex: 4,\n backgroundColor: 'rgba(255,255,255,0.95)',\n border: '1px solid',\n borderColor: 'grey.300',\n borderRadius: 2,\n padding: 0.5,\n boxShadow: '0 4px 12px rgba(0,0,0,0.15)',\n backdropFilter: 'blur(4px)',\n }}\n >\n <Tooltip title={`Zoom In (${Math.round(currentScale * 100)}%)`} arrow>\n <span>\n <IconButton\n size=\"small\"\n onClick={handleZoomIn}\n disabled={!canZoomIn}\n sx={{\n backgroundColor: 'transparent',\n '&:hover': { \n backgroundColor: 'primary.light',\n color: 'primary.contrastText' \n },\n '&:disabled': {\n opacity: 0.5\n }\n }}\n >\n <ZoomIn fontSize=\"small\" />\n </IconButton>\n </span>\n </Tooltip>\n\n <Divider orientation=\"vertical\" variant=\"middle\" flexItem />\n\n <Tooltip title={`Zoom Out (${Math.round(currentScale * 100)}%)`} arrow>\n <span>\n <IconButton\n size=\"small\"\n onClick={handleZoomOut}\n disabled={!canZoomOut}\n sx={{\n backgroundColor: 'transparent',\n '&:hover': { \n backgroundColor: 'primary.light',\n color: 'primary.contrastText' \n },\n '&:disabled': {\n opacity: 0.5\n }\n }}\n >\n <ZoomOut fontSize=\"small\" />\n </IconButton>\n </span>\n </Tooltip>\n\n <Divider orientation=\"vertical\" variant=\"middle\" flexItem />\n\n <Tooltip title=\"Refresh Preview\" arrow>\n <IconButton\n size=\"small\"\n onClick={handleRefresh}\n sx={{\n backgroundColor: 'transparent',\n '&:hover': { \n backgroundColor: 'primary.light',\n color: 'primary.contrastText' \n },\n }}\n >\n <Refresh fontSize=\"small\" />\n </IconButton>\n </Tooltip>\n\n {onDelete && (\n <>\n <Divider orientation=\"vertical\" variant=\"middle\" flexItem />\n <Tooltip \n title={canDelete ? \"Delete Template\" : \"Cannot delete default template\"} \n arrow\n >\n <span>\n <IconButton\n size=\"small\"\n onClick={handleDelete}\n disabled={!canDelete}\n sx={{\n backgroundColor: 'transparent',\n '&:hover': !canDelete ? {} : { \n backgroundColor: 'error.light',\n color: 'error.contrastText' \n },\n '&:disabled': {\n opacity: 0.5\n }\n }}\n >\n <Trash fontSize=\"small\" />\n </IconButton>\n </span>\n </Tooltip>\n </>\n )}\n </Box>\n </Fade>\n )}\n </Box>\n );\n};\n\nexport { HtmlThumbnailPreview };\nexport default HtmlThumbnailPreview;","/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable unused-imports/no-unused-vars */\nimport React, { useState, useRef, useEffect, useCallback } from 'react';\nimport { Box, Skeleton, IconButton, Tooltip, Divider, Fade } from '@mui/material';\nimport { ZoomIn, ZoomOut, Refresh } from '@mui/icons-material';\nimport { Trash } from '../../../components/icons';\nimport Typography from '../../../components/typography/typography';\n\ninterface HtmlThumbnailPreviewProps {\n template: any;\n width?: number | string; \n height?: number;\n scale?: number;\n showControls?: boolean;\n onClick?: (template: any) => void;\n selectedTemplateId?: string;\n isFetching?: boolean;\n onDelete?: (template: any) => void;\n normalView?: boolean;\n minScale?: number;\n maxScale?: number;\n scaleStep?: number;\n loadingDelay?: number;\n refreshDelay?: number;\n}\n\nconst HtmlThumbnailPreviewFull: React.FC<HtmlThumbnailPreviewProps> = ({\n template,\n width = '100%',\n height = 800,\n scale = 0.25,\n showControls = false,\n onClick = null,\n selectedTemplateId = '',\n isFetching = false,\n onDelete,\n normalView = false,\n minScale = 0.1,\n maxScale = 1,\n scaleStep = 1.2,\n loadingDelay = 500,\n refreshDelay = 300,\n}) => {\n const [isLoading, setIsLoading] = useState(isFetching || true);\n const [currentScale, setCurrentScale] = useState(scale);\n const [error, setError] = useState<null | string>(null);\n const [isHovered, setIsHovered] = useState(false);\n const containerRef = useRef<HTMLDivElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n const loadingTimeoutRef = useRef<any>(null);\n const refreshTimeoutRef = useRef<any>(null);\n\n const [containerPixelWidth, setContainerPixelWidth] = useState<number>(typeof width === 'number' ? width : 800);\n\n // Measure container width for responsive scaling\n useEffect(() => {\n const updateWidth = () => {\n if (containerRef.current) {\n const newWidth = containerRef.current.offsetWidth;\n setContainerPixelWidth(newWidth);\n }\n };\n updateWidth();\n window.addEventListener('resize', updateWidth);\n return () => window.removeEventListener('resize', updateWidth);\n }, []);\n\n const scaledWidth = containerPixelWidth / currentScale;\n const scaledHeight = height / currentScale;\n\n useEffect(() => {\n return () => {\n clearTimeout(loadingTimeoutRef.current);\n clearTimeout(refreshTimeoutRef.current);\n };\n }, []);\n\n useEffect(() => {\n clearTimeout(loadingTimeoutRef.current);\n loadingTimeoutRef.current = setTimeout(() => setIsLoading(false), loadingDelay);\n return () => clearTimeout(loadingTimeoutRef.current);\n }, [template.contents, loadingDelay]);\n\n useEffect(() => setIsLoading(isFetching), [isFetching]);\n\n const handleZoomIn = useCallback(() => setCurrentScale(prev => Math.min(prev * scaleStep, maxScale)), [scaleStep, maxScale]);\n const handleZoomOut = useCallback(() => setCurrentScale(prev => Math.max(prev / scaleStep, minScale)), [scaleStep, minScale]);\n const handleRefresh = useCallback(() => {\n setIsLoading(true);\n setError(null);\n clearTimeout(refreshTimeoutRef.current);\n refreshTimeoutRef.current = setTimeout(() => setIsLoading(false), refreshDelay);\n }, [refreshDelay]);\n\n const handleClick = useCallback(() => {\n if (onClick && !isLoading) onClick(template);\n }, [onClick, template, isLoading]);\n\n const handleDelete = useCallback((e: React.MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n if (onDelete && !template?.is_default) onDelete(template);\n }, [onDelete, template]);\n\n const handleMouseEnter = useCallback(() => setIsHovered(true), []);\n const handleMouseLeave = useCallback(() => setIsHovered(false), []);\n\n if (isLoading) return (\n <Box sx={{ width, height, borderRadius: 1, overflow: 'hidden', border: '1px solid', borderColor: 'divider' }}>\n <Skeleton variant=\"rectangular\" width=\"100%\" height=\"100%\" animation=\"wave\" />\n </Box>\n );\n\n if (error) return (\n <Box sx={{\n width, height, borderRadius: 1, overflow: 'hidden', border: '1px solid',\n borderColor: 'error.main', display: 'flex', alignItems: 'center', justifyContent: 'center',\n backgroundColor: 'error.light', color: 'error.contrastText'\n }}>\n Failed to load template\n </Box>\n );\n\n const isSelected = selectedTemplateId === template._id;\n const canZoomIn = currentScale < maxScale;\n const canZoomOut = currentScale > minScale;\n const canDelete = !template?.is_default;\n\n return (\n <Box\n ref={containerRef}\n sx={{ position: 'relative', width, marginInline: 'auto', display: 'inline-block' }}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n <Box\n onClick={handleClick}\n sx={(theme) => ({\n width: '100%',\n height,\n marginBlock: 0,\n overflow: 'hidden',\n position: 'relative',\n backgroundColor: '#fff',\n transition: 'all 0.2s ease-in-out',\n '&:hover': onClick ? { boxShadow: '0 4px 16px rgba(0,0,0,0.15)', transform: 'translateY(-1px)' } : {},\n })}\n >\n <Box\n sx={{\n width: '100%',\n height: '100%',\n display: 'flex',\n justifyContent: 'center', \n alignItems: 'center', \n overflow: 'auto',\n backgroundColor: '#fff',\n }}\n >\n <Box\n sx={{\n transform: `scale(${currentScale})`,\n transformOrigin: 'top left',\n pointerEvents: 'none',\n userSelect: 'none',\n width: containerPixelWidth,\n height: height,\n }}\n >\n <Box\n ref={contentRef}\n sx={{\n width: '100%',\n height: '100%',\n '& *': { maxWidth: '100% !important', boxSizing: 'border-box !important' },\n '& body': { margin: 0, padding: 0, overflow: 'hidden' },\n '& img': { maxWidth: '100% !important', height: 'auto !important' },\n '& table': { width: '100% !important', tableLayout: 'fixed !important' },\n '& *[style*=\"position: absolute\"]': { position: 'relative !important' },\n '& .email-container': { width: '85% !important' },\n }}\n dangerouslySetInnerHTML={{ __html: template.contents }}\n />\n </Box>\n </Box>\n\n {template?.is_default && (\n <Box sx={(theme) => ({ position: 'absolute', top: 8, left: 8, width: 12, height: 12, borderRadius: '50%', backgroundColor: theme.palette.theme.primary[800], zIndex: 3 })} />\n )}\n </Box>\n\n {template?.name && <Typography type='s3' weight='medium' color='theme.secondary.1000' align='center' sx={{ width, mt: 0.5 }}>{template?.name}</Typography>}\n\n {showControls && (\n <Fade in={isHovered} timeout={200}>\n <Box sx={{ position: 'absolute', top: -8, right: -8, display: 'flex', gap: 0.5, zIndex: 4, backgroundColor: 'rgba(255,255,255,0.95)', border: '1px solid', borderColor: 'grey.300', borderRadius: 2, padding: 0.5, boxShadow: '0 4px 12px rgba(0,0,0,0.15)', backdropFilter: 'blur(4px)' }}>\n <Tooltip title={`Zoom In (${Math.round(currentScale * 100)}%)`} arrow>\n <span><IconButton size=\"small\" onClick={handleZoomIn} disabled={!canZoomIn}><ZoomIn fontSize=\"small\" /></IconButton></span>\n </Tooltip>\n <Divider orientation=\"vertical\" flexItem />\n <Tooltip title={`Zoom Out (${Math.round(currentScale * 100)}%)`} arrow>\n <span><IconButton size=\"small\" onClick={handleZoomOut} disabled={!canZoomOut}><ZoomOut fontSize=\"small\" /></IconButton></span>\n </Tooltip>\n <Divider orientation=\"vertical\" flexItem />\n <Tooltip title=\"Refresh Preview\" arrow>\n <IconButton size=\"small\" onClick={handleRefresh}><Refresh fontSize=\"small\" /></IconButton>\n </Tooltip>\n {onDelete && <>\n <Divider orientation=\"vertical\" flexItem />\n <Tooltip title={canDelete ? \"Delete Template\" : \"Cannot delete default template\"} arrow>\n <span><IconButton size=\"small\" onClick={handleDelete} disabled={!canDelete}><Trash fontSize=\"small\" /></IconButton></span>\n </Tooltip>\n </>}\n </Box>\n </Fade>\n )}\n </Box>\n );\n};\n\nexport default HtmlThumbnailPreviewFull;","/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable unused-imports/no-unused-vars */\nimport React, { useEffect, useState } from 'react';\nimport { \n DialogTitle, \n DialogContent, \n DialogActions,\n IconButton,\n Box,\n MenuItem\n} from '@mui/material';\nimport CloseIcon from '@mui/icons-material/Close';\nimport Typography from '../../../components/typography/typography';\nimport Modal from '../../../components/modal/modal';\nimport { deleteV1TemplatesId, getV1Templates, patchV1TemplatesIdSetDefault } from '../../../api-client/api.system-feature/api';\nimport { getErrorMessage, getToken } from '../../../utils/common';\nimport Button from '../../../components/button/button';\n// import ModalLoader from '../../../components/loader/modal-loader';\nimport { useNavigate } from 'react-router-dom';\nimport { enqueueSnackbar } from 'notistack';\nimport Select from '../../../components/select/select';\nimport HtmlThumbnailPreview from './html-thumbnail-preview';\nimport HtmlThumbnailPreviewFull from './html-thumbnail-preview-full';\nimport ConfirmPopUp from '../../../components/confirm-modal/confirm-modal';\n\nconst TemplateModal = ({ email, onClose, open, companies = [], templateRoutes, source = 'add' }) => {\n const [templates, setTemplates] = useState([]);\n const [selectedTemplate, setSelectedTemplate] = useState('');\n const [defaultTemplate, setDefaultTemplate] = useState('');\n const [loading, setLoding] = useState(true);\n const [selectedCompany, setSelectedCompany] = React.useState<number>(companies?.[0]?.id || 0);\n const [templateToDelete, setTemplateToDelete] = React.useState<Record<string, any> | null>(null);\n const [selectedTemplateForPreview, setSelectedTemplateForPreview] = useState(null);\n\n const navigate = useNavigate();\n\n const handleClose = () => {\n onClose();\n };\n\n const handleViewTemplate = () => {\n navigate(templateRoutes.EDIT_TEMPLATE(email._id, selectedTemplate), { \n state: { company_id: selectedCompany, isViewOnly: true, fromPreview: true }\n });\n };\n\n const handleTemplateSelect = (id: any) => {\n if (source === 'view') {\n const template = templates.find((t: any) => t?._id === id);\n setSelectedTemplateForPreview(template);\n setSelectedTemplate(id);\n handleViewTemplate();\n } else {\n setSelectedTemplate(id);\n }\n }\n\n const getTemplatesViaSubject = async () => {\n setLoding(true)\n const res = await getV1Templates({ ...getToken(), filters: `(company_id.eq=${selectedCompany}&subject_id.eq=${email._id})` })\n if(res?.data) {\n const dTemplate = res?.data?.find(t => t.is_default === true)\n setDefaultTemplate(dTemplate)\n setSelectedTemplate(dTemplate?._id)\n setTemplates(res?.data)\n }\n\n setLoding(false)\n }\n\n const handleDefaultTemplate = async () => {\n try {\n await patchV1TemplatesIdSetDefault({ ...getToken(), id: selectedTemplate })\n enqueueSnackbar('Template has been set as default');\n } catch (error) {\n const m = getErrorMessage(error?.message);\n enqueueSnackbar(m, { variant: 'error' });\n }\n }\n\n const handleDeleteTemplate = async () => {\n try {\n if(templateToDelete) {\n await deleteV1TemplatesId({ ...getToken(), id: templateToDelete?._id })\n enqueueSnackbar('Template has been deleted');\n setTemplateToDelete(null)\n await getTemplatesViaSubject()\n }\n } catch (error) {\n const m = getErrorMessage(error?.message);\n enqueueSnackbar(m, { variant: 'error' });\n }\n }\n\n useEffect(() => {\n getTemplatesViaSubject()\n return () => { setLoding(true) }\n }, [selectedCompany])\n\n return (\n <div>\n <Modal \n open={open} \n onClose={handleClose} \n maxWidth=\"lg\" \n fullWidth\n aria-labelledby=\"email-template-selection\"\n sx={{\n '& .MuiDialog-paper': {\n height: '85vh',\n display: 'flex',\n flexDirection: 'column'\n }\n }}\n >\n\n {console.log(source, \"soure in modal +++++++++++++++++++++++debug\")}\n {/* {loading && <ModalLoader/>} */}\n <DialogTitle sx={{ marginBottom: '1rem', padding: '0.75rem 1rem 0.75rem 1.5rem', borderBottom: '1px solid #D3D3D4'}}>\n <Box display='flex' alignItems='center' gap={2}>\n {selectedTemplateForPreview && (\n <IconButton\n onClick={() => setSelectedTemplateForPreview(null)}\n size='small'\n sx={{ color: (theme) => theme.palette.grey[700] }}\n >\n <Typography>← Back</Typography>\n </IconButton>\n )}\n <Typography type='s1' weight='medium' color='theme.secondary.1000' sx={{ flex: 1, textAlign: 'center' }}> \n {selectedTemplateForPreview ? 'Template Preview' : (source === 'view' ? 'Template Preview' : 'Select Template')}\n </Typography>\n </Box>\n <Box display='flex' alignItems={'center'} gap={1} position='absolute' right='1%' top='4px'>\n <Typography type='s3' weight='medium' color='theme.secondary.800'> Company</Typography>\n <Select\n displayEmpty\n value={selectedCompany}\n size='small'\n renderValue={(value) => value ? companies.find((option) => option.value === value)?.label : 'Select Company'}\n // fullWidth\n // sx={{\n // bgcolor: 'white',\n // borderRadius: 1,\n // '& .MuiSelect-select': { py: 0.75 }\n // }}\n onChange={(e) => {\n if (e.target.value) {\n setSelectedCompany(e.target.value as number);\n }\n }}>\n {companies.map((option) => (\n <MenuItem key={option.value} value={option.value}>\n <Typography type='s3' color='theme.secondary.1000'>{option.label}</Typography>\n </MenuItem>\n ))}\n </Select>\n <IconButton\n aria-label=\"close\"\n onClick={handleClose}\n size='small'\n sx={{\n color: (theme) => theme.palette.grey[500],\n }}\n >\n <CloseIcon fontSize='small'/>\n </IconButton>\n </Box>\n </DialogTitle>\n \n {\n selectedTemplateForPreview ? (\n <DialogContent sx={{ display: 'flex', flexDirection: 'column', gap: 3, width: '100%', p: 3, flex: 1, overflow: 'auto', scrollbarWidth: 'none', msOverflowStyle: 'none', '&::-webkit-scrollbar': { display: 'none' } }}>\n {/* Main Preview */}\n <Box sx={{ width: '100%', display: 'flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', flexShrink: 0 }}>\n <HtmlThumbnailPreviewFull\n template={selectedTemplateForPreview}\n width={'100%'}\n height={600}\n scale={1}\n showControls={true}\n isFetching={loading}\n normalView={true}\n />\n </Box>\n </DialogContent>\n ) : (\n <DialogContent sx={{ flex: 1, overflow: 'auto', display: 'flex', flexDirection: 'column', scrollbarWidth: 'none', msOverflowStyle: 'none', '&::-webkit-scrollbar': { display: 'none' } }}>\n {/* <Grid container spacing={6}> */}\n {!templates.length && (\n // <Grid item xs={12} sx={{ minHeight: 350}}>\n <Box display='flex' alignItems='center' width='100%' height='100%' justifyContent='center'>\n {!loading && <Typography type='s1' weight='medium' color='theme.secondary.1000' sx={{ textAlign: 'center' }}>No templates found</Typography>}\n </Box>\n // </Grid>\n )}\n <Box sx={{ \n display: 'grid', \n gridTemplateColumns: 'repeat(auto-fill, minmax(300px, 1fr))', \n gap: 2, \n p: 2,\n justifyItems: 'center',\n alignItems: 'center'\n }}>\n {templates.map((template, index) => (\n <HtmlThumbnailPreview\n key={template._id || index}\n template={template}\n width={300}\n height={200}\n showControls={source === 'add'}\n selectedTemplateId={selectedTemplate}\n onClick={(template: any) => {\n handleTemplateSelect(template._id)\n }}\n normalView={source === 'add'}\n isFetching={loading}\n onDelete={(template: any) => setTemplateToDelete(template)}\n />\n ))}\n </Box>\n </DialogContent>\n )}\n {source === 'add' && (\n <DialogActions sx={{ p: 2, justifyContent: 'center', borderTop: '1px solid #D3D3D4' }}>\n <Button\n onClick={() => navigate(templateRoutes.EDIT_TEMPLATE(email._id, selectedTemplate), { state: { company_id: selectedCompany } })}\n disabled={!selectedTemplate}\n >\n Continue\n </Button>\n <Button\n onClick={() => handleDefaultTemplate()}\n disabled={!selectedTemplate || defaultTemplate?._id === selectedTemplate}\n >\n Set to Default\n </Button>\n </DialogActions>\n )}\n </Modal>\n <ConfirmPopUp\n open={templateToDelete !== null}\n onClose={() => setTemplateToDelete(null)}\n title='Remove Template'\n description='Are you sure you want to delete ?'\n onConfirm={() => handleDeleteTemplate()}\n loading={loading}\n />\n </div>\n );\n};\n\nexport { TemplateModal };\nexport default TemplateModal;"],"names":["React","_a","CloseIcon","template"],"mappings":";;;;;;;;;;;;;;;AAQA,MAAM,uBAAuB,CAAC;AAAA,EAC5B;AAAA,EACA,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,eAAe;AAAA,EACf,UAAU;AAAA,EACV,qBAAqB;AAAA,EACrB,aAAa;AAAA,EACb;AAAA,EACA,WAAW;AAAA,EACX,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,eAAe;AAAA,EACf,aAAa;AACf,MAAM;AACJ,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,cAAc,IAAI;AAC7D,QAAM,CAAC,cAAc,eAAe,IAAI,SAAS,KAAK;AACtD,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS,IAAI;AACvC,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,KAAK;AAChD,QAAM,eAAe,OAAO,IAAI;AAChC,QAAM,aAAa,OAAO,IAAI;AAC9B,QAAM,oBAAoB,OAAO,IAAI;AACrC,QAAM,oBAAoB,OAAO,IAAI;AAGrC,QAAM,cAAc,QAAQ;AAC5B,QAAM,eAAe,SAAS;AAG9B,YAAU,MAAM;AACd,WAAO,MAAM;AACX,UAAI,kBAAkB,SAAS;AAC7B,qBAAa,kBAAkB,OAAO;AAAA,MACxC;AACA,UAAI,kBAAkB,SAAS;AAC7B,qBAAa,kBAAkB,OAAO;AAAA,MACxC;AAAA,IACF;AAAA,EACF,GAAG,CAAA,CAAE;AAGL,YAAU,MAAM;AACd,QAAI,kBAAkB,SAAS;AAC7B,mBAAa,kBAAkB,OAAO;AAAA,IACxC;AAEA,sBAAkB,UAAU,WAAW,MAAM;AAC3C,mBAAa,KAAK;AAAA,IACpB,GAAG,YAAY;AAEf,WAAO,MAAM;AACX,UAAI,kBAAkB,SAAS;AAC7B,qBAAa,kBAAkB,OAAO;AAAA,MACxC;AAAA,IACF;AAAA,EACF,GAAG,CAAC,SAAS,UAAU,YAAY,CAAC;AAGpC,YAAU,MAAM;AACd,iBAAa,UAAU;AAAA,EACzB,GAAG,CAAC,UAAU,CAAC;AAGf,QAAM,eAAe,YAAY,MAAM;AACrC,oBAAgB,UAAQ,KAAK,IAAI,OAAO,WAAW,QAAQ,CAAC;AAAA,EAC9D,GAAG,CAAC,WAAW,QAAQ,CAAC;AAExB,QAAM,gBAAgB,YAAY,MAAM;AACtC,oBAAgB,UAAQ,KAAK,IAAI,OAAO,WAAW,QAAQ,CAAC;AAAA,EAC9D,GAAG,CAAC,WAAW,QAAQ,CAAC;AAExB,QAAM,gBAAgB,YAAY,MAAM;AACtC,iBAAa,IAAI;AACjB,aAAS,IAAI;AAEb,QAAI,kBAAkB,SAAS;AAC7B,mBAAa,kBAAkB,OAAO;AAAA,IACxC;AAEA,sBAAkB,UAAU,WAAW,MAAM;AAC3C,mBAAa,KAAK;AAAA,IACpB,GAAG,YAAY;AAAA,EACjB,GAAG,CAAC,YAAY,CAAC;AAEjB,QAAM,cAAc,YAAY,MAAM;AACpC,QAAI,WAAW,CAAC,WAAW;AACzB,cAAQ,QAAQ;AAAA,IAClB;AAAA,EACF,GAAG,CAAC,SAAS,UAAU,SAAS,CAAC;AAEjC,QAAM,eAAe,YAAY,CAAC,MAAM;AACtC,MAAE,gBAAA;AACF,QAAI,YAAY,EAAC,qCAAU,aAAY;AACrC,eAAS,QAAQ;AAAA,IACnB;AAAA,EACF,GAAG,CAAC,UAAU,QAAQ,CAAC;AAEvB,QAAM,mBAAmB,YAAY,MAAM;AACzC,iBAAa,IAAI;AAAA,EACnB,GAAG,CAAA,CAAE;AAEL,QAAM,mBAAmB,YAAY,MAAM;AACzC,iBAAa,KAAK;AAAA,EACpB,GAAG,CAAA,CAAE;AAGL,MAAI,WAAW;AACb,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,IAAI;AAAA,UACF;AAAA,UACA;AAAA,UACA,cAAc;AAAA,UACd,UAAU;AAAA,UACV,QAAQ;AAAA,UACR,aAAa;AAAA,QAAA;AAAA,QAGf,UAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,SAAQ;AAAA,YACR,OAAM;AAAA,YACN,QAAO;AAAA,YACP,WAAU;AAAA,UAAA;AAAA,QAAA;AAAA,MACZ;AAAA,IAAA;AAAA,EAGN;AAGA,MAAI,OAAO;AACT,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,IAAI;AAAA,UACF;AAAA,UACA;AAAA,UACA,cAAc;AAAA,UACd,UAAU;AAAA,UACV,QAAQ;AAAA,UACR,aAAa;AAAA,UACb,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,gBAAgB;AAAA,UAChB,iBAAiB;AAAA,UACjB,OAAO;AAAA,QAAA;AAAA,QAEV,UAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAIL;AAEA,QAAM,aAAa,uBAAuB,SAAS;AACnD,QAAM,YAAY,eAAe;AACjC,QAAM,aAAa,eAAe;AAClC,QAAM,YAAY,EAAC,qCAAU;AAE7B,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,IAAI,EAAE,UAAU,YAAY,SAAS,eAAA;AAAA,MACrC,cAAc;AAAA,MACd,cAAc;AAAA,MAGd,UAAA;AAAA,QAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,KAAK;AAAA,YACL,SAAS;AAAA,YACT,IAAI,CAAC,WAAW;AAAA,cACd;AAAA,cACA;AAAA,cACA,QAAQ;AAAA,cACR,cAAc;AAAA,cACd,UAAU;AAAA,cACV,UAAU;AAAA,cACV,QAAQ,UAAU,YAAY;AAAA,cAC9B,iBAAiB;AAAA;AAAA,cAEjB,YAAY;AAAA,cACZ,WAAW,UAAU;AAAA,gBACnB,WAAW;AAAA,gBACX,WAAW;AAAA,cAAA,IACT,CAAA;AAAA,cACJ,aAAa,cAAc,aAAa,MAAM,QAAQ,MAAM,QAAQ,GAAG,IAAI;AAAA,cAC3E,aAAa,aAAa,IAAI;AAAA,YAAA;AAAA,YAIhC,UAAA;AAAA,cAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,IAAI;AAAA,oBACF,OAAO;AAAA,oBACP,QAAQ;AAAA,oBACR,WAAW,SAAS,YAAY;AAAA,oBAChC,iBAAiB;AAAA,oBACjB,UAAU;AAAA,oBACV,KAAK;AAAA,oBACL,MAAM;AAAA,oBACN,UAAU;AAAA,kBAAA;AAAA,kBAIZ,UAAA;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,KAAK;AAAA,sBACL,IAAI;AAAA,wBACF,OAAO;AAAA,wBACP,QAAQ;AAAA,wBACR,YAAY;AAAA,wBACZ,eAAe;AAAA,wBACf,IAAI;AAAA,wBACJ,OAAO;AAAA,0BACL,UAAU;AAAA,0BACV,WAAW;AAAA,wBAAA;AAAA;AAAA,wBAGb,UAAU;AAAA,0BACR,QAAQ;AAAA,0BACR,SAAS;AAAA,0BACT,UAAU;AAAA,wBAAA;AAAA;AAAA,wBAGZ,SAAS;AAAA,0BACP,UAAU;AAAA,0BACV,QAAQ;AAAA,wBAAA;AAAA;AAAA,wBAGV,WAAW;AAAA,0BACT,OAAO;AAAA,0BACP,aAAa;AAAA,wBAAA;AAAA;AAAA,wBAGf,oCAAoC;AAAA,0BAClC,UAAU;AAAA,wBAAA;AAAA,wBAEZ,sBAAsB;AAAA,0BACpB,OAAO;AAAA,wBAAA;AAAA,sBACT;AAAA,sBAEF,yBAAyB,EAAE,QAAQ,SAAS,SAAA;AAAA,oBAAS;AAAA,kBAAA;AAAA,gBACvD;AAAA,cAAA;AAAA,cAID,aACC;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,IAAI;AAAA,oBACF,UAAU;AAAA,oBACV,KAAK;AAAA,oBACL,MAAM;AAAA,oBACN,OAAO;AAAA,oBACP,QAAQ;AAAA,oBACR,iBAAiB;AAAA,oBACjB,SAAS;AAAA,oBACT,YAAY;AAAA,oBACZ,gBAAgB;AAAA,oBAChB,QAAQ;AAAA,kBAAA;AAAA,kBAGV,8BAAC,UAAA,EAAS,SAAQ,eAAc,OAAM,OAAM,QAAO,MAAA,CAAM;AAAA,gBAAA;AAAA,cAAA;AAAA,eAK5D,qCAAU,eACT;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,IAAI,CAAC,UAAA;;AAAW;AAAA,sBACd,UAAU;AAAA,sBACV,KAAK;AAAA,sBACL,MAAM;AAAA,sBACN,OAAO;AAAA,sBACP,QAAQ;AAAA,sBACR,cAAc;AAAA,sBACd,kBAAiB,WAAM,QAAQ,UAAd,mBAAqB,QAAQ;AAAA,sBAC9C,QAAQ;AAAA,oBAAA;AAAA;AAAA,gBACV;AAAA,cAAA;AAAA,YACF;AAAA,UAAA;AAAA,QAAA;AAAA,SAGH,qCAAU,SAAQ,oBAAC,cAAW,MAAK,MAAK,QAAO,UAAS,OAAM,wBAAuB,OAAM,UAAS,IAAI,EAAC,OAAO,IAAG,IAAA,GAAO,+CAAU,MAAK;AAAA,QAGzI,gBACC,oBAAC,MAAA,EAAK,IAAI,WAAW,SAAS,KAC5B,UAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,IAAI;AAAA,cACF,UAAU;AAAA,cACV,KAAK;AAAA,cACL,OAAO;AAAA,cACP,SAAS;AAAA,cACT,KAAK;AAAA,cACL,QAAQ;AAAA,cACR,iBAAiB;AAAA,cACjB,QAAQ;AAAA,cACR,aAAa;AAAA,cACb,cAAc;AAAA,cACd,SAAS;AAAA,cACT,WAAW;AAAA,cACX,gBAAgB;AAAA,YAAA;AAAA,YAGlB,UAAA;AAAA,cAAA,oBAAC,SAAA,EAAQ,OAAO,YAAY,KAAK,MAAM,eAAe,GAAG,CAAC,MAAM,OAAK,MACnE,UAAA,oBAAC,QAAA,EACC,UAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,MAAK;AAAA,kBACL,SAAS;AAAA,kBACT,UAAU,CAAC;AAAA,kBACX,IAAI;AAAA,oBACF,iBAAiB;AAAA,oBACjB,WAAW;AAAA,sBACT,iBAAiB;AAAA,sBACjB,OAAO;AAAA,oBAAA;AAAA,oBAET,cAAc;AAAA,sBACZ,SAAS;AAAA,oBAAA;AAAA,kBACX;AAAA,kBAGF,UAAA,oBAAC,QAAA,EAAO,UAAS,QAAA,CAAQ;AAAA,gBAAA;AAAA,cAAA,GAE7B,EAAA,CACF;AAAA,kCAEC,SAAA,EAAQ,aAAY,YAAW,SAAQ,UAAS,UAAQ,MAAC;AAAA,cAE1D,oBAAC,SAAA,EAAQ,OAAO,aAAa,KAAK,MAAM,eAAe,GAAG,CAAC,MAAM,OAAK,MACpE,8BAAC,QAAA,EACC,UAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,MAAK;AAAA,kBACL,SAAS;AAAA,kBACT,UAAU,CAAC;AAAA,kBACX,IAAI;AAAA,oBACF,iBAAiB;AAAA,oBACjB,WAAW;AAAA,sBACT,iBAAiB;AAAA,sBACjB,OAAO;AAAA,oBAAA;AAAA,oBAET,cAAc;AAAA,sBACZ,SAAS;AAAA,oBAAA;AAAA,kBACX;AAAA,kBAGF,UAAA,oBAAC,SAAA,EAAQ,UAAS,QAAA,CAAQ;AAAA,gBAAA;AAAA,cAAA,GAE9B,EAAA,CACF;AAAA,kCAEC,SAAA,EAAQ,aAAY,YAAW,SAAQ,UAAS,UAAQ,MAAC;AAAA,cAE1D,oBAAC,SAAA,EAAQ,OAAM,mBAAkB,OAAK,MACpC,UAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,MAAK;AAAA,kBACL,SAAS;AAAA,kBACT,IAAI;AAAA,oBACF,iBAAiB;AAAA,oBACjB,WAAW;AAAA,sBACT,iBAAiB;AAAA,sBACjB,OAAO;AAAA,oBAAA;AAAA,kBACT;AAAA,kBAGF,UAAA,oBAAC,SAAA,EAAQ,UAAS,QAAA,CAAQ;AAAA,gBAAA;AAAA,cAAA,GAE9B;AAAA,cAEC,YACC,qBAAA,UAAA,EACE,UAAA;AAAA,gBAAA,oBAAC,WAAQ,aAAY,YAAW,SAAQ,UAAS,UAAQ,MAAC;AAAA,gBAC1D;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,OAAO,YAAY,oBAAoB;AAAA,oBACvC,OAAK;AAAA,oBAEL,8BAAC,QAAA,EACC,UAAA;AAAA,sBAAC;AAAA,sBAAA;AAAA,wBACC,MAAK;AAAA,wBACL,SAAS;AAAA,wBACT,UAAU,CAAC;AAAA,wBACX,IAAI;AAAA,0BACF,iBAAiB;AAAA,0BACjB,WAAW,CAAC,YAAY,KAAK;AAAA,4BAC3B,iBAAiB;AAAA,4BACjB,OAAO;AAAA,0BAAA;AAAA,0BAET,cAAc;AAAA,4BACZ,SAAS;AAAA,0BAAA;AAAA,wBACX;AAAA,wBAGF,UAAA,oBAAC,OAAA,EAAM,UAAS,QAAA,CAAQ;AAAA,sBAAA;AAAA,oBAAA,EAC1B,CACF;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACF,EAAA,CACF;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA,EAEJ,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;AC3XA,MAAM,2BAAgE,CAAC;AAAA,EACrE;AAAA,EACA,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,eAAe;AAAA,EACf,UAAU;AAAA,EACV,qBAAqB;AAAA,EACrB,aAAa;AAAA,EACb;AAAA,EACA,aAAa;AAAA,EACb,WAAW;AAAA,EACX,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,eAAe;AACjB,MAAM;AACJ,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,cAAc,IAAI;AAC7D,QAAM,CAAC,cAAc,eAAe,IAAI,SAAS,KAAK;AACtD,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAwB,IAAI;AACtD,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,KAAK;AAChD,QAAM,eAAe,OAAuB,IAAI;AAChD,QAAM,aAAa,OAAuB,IAAI;AAC9C,QAAM,oBAAoB,OAAY,IAAI;AAC1C,QAAM,oBAAoB,OAAY,IAAI;AAE1C,QAAM,CAAC,qBAAqB,sBAAsB,IAAI,SAAiB,OAAO,UAAU,WAAW,QAAQ,GAAG;AAG9G,YAAU,MAAM;AACd,UAAM,cAAc,MAAM;AACxB,UAAI,aAAa,SAAS;AACxB,cAAM,WAAW,aAAa,QAAQ;AACtC,+BAAuB,QAAQ;AAAA,MACjC;AAAA,IACF;AACA,gBAAA;AACA,WAAO,iBAAiB,UAAU,WAAW;AAC7C,WAAO,MAAM,OAAO,oBAAoB,UAAU,WAAW;AAAA,EAC/D,GAAG,CAAA,CAAE;AAKL,YAAU,MAAM;AACd,WAAO,MAAM;AACX,mBAAa,kBAAkB,OAAO;AACtC,mBAAa,kBAAkB,OAAO;AAAA,IACxC;AAAA,EACF,GAAG,CAAA,CAAE;AAEL,YAAU,MAAM;AACd,iBAAa,kBAAkB,OAAO;AACtC,sBAAkB,UAAU,WAAW,MAAM,aAAa,KAAK,GAAG,YAAY;AAC9E,WAAO,MAAM,aAAa,kBAAkB,OAAO;AAAA,EACrD,GAAG,CAAC,SAAS,UAAU,YAAY,CAAC;AAEpC,YAAU,MAAM,aAAa,UAAU,GAAG,CAAC,UAAU,CAAC;AAEtD,QAAM,eAAe,YAAY,MAAM,gBAAgB,UAAQ,KAAK,IAAI,OAAO,WAAW,QAAQ,CAAC,GAAG,CAAC,WAAW,QAAQ,CAAC;AAC3H,QAAM,gBAAgB,YAAY,MAAM,gBAAgB,UAAQ,KAAK,IAAI,OAAO,WAAW,QAAQ,CAAC,GAAG,CAAC,WAAW,QAAQ,CAAC;AAC5H,QAAM,gBAAgB,YAAY,MAAM;AACtC,iBAAa,IAAI;AACjB,aAAS,IAAI;AACb,iBAAa,kBAAkB,OAAO;AACtC,sBAAkB,UAAU,WAAW,MAAM,aAAa,KAAK,GAAG,YAAY;AAAA,EAChF,GAAG,CAAC,YAAY,CAAC;AAEjB,QAAM,cAAc,YAAY,MAAM;AACpC,QAAI,WAAW,CAAC,UAAW,SAAQ,QAAQ;AAAA,EAC7C,GAAG,CAAC,SAAS,UAAU,SAAS,CAAC;AAEjC,QAAM,eAAe,YAAY,CAAC,MAA2C;AAC3E,MAAE,gBAAA;AACF,QAAI,YAAY,EAAC,qCAAU,sBAAqB,QAAQ;AAAA,EAC1D,GAAG,CAAC,UAAU,QAAQ,CAAC;AAEvB,QAAM,mBAAmB,YAAY,MAAM,aAAa,IAAI,GAAG,CAAA,CAAE;AACjE,QAAM,mBAAmB,YAAY,MAAM,aAAa,KAAK,GAAG,CAAA,CAAE;AAElE,MAAI,UAAW,QACb,oBAAC,KAAA,EAAI,IAAI,EAAE,OAAO,QAAQ,cAAc,GAAG,UAAU,UAAU,QAAQ,aAAa,aAAa,UAAA,GAC/F,UAAA,oBAAC,UAAA,EAAS,SAAQ,eAAc,OAAM,QAAO,QAAO,QAAO,WAAU,OAAA,CAAO,EAAA,CAC9E;AAGF,MAAI,MAAO,QACT,oBAAC,KAAA,EAAI,IAAI;AAAA,IACP;AAAA,IAAO;AAAA,IAAQ,cAAc;AAAA,IAAG,UAAU;AAAA,IAAU,QAAQ;AAAA,IAC5D,aAAa;AAAA,IAAc,SAAS;AAAA,IAAQ,YAAY;AAAA,IAAU,gBAAgB;AAAA,IAClF,iBAAiB;AAAA,IAAe,OAAO;AAAA,EAAA,GACtC,UAAA,2BAEH;AAGiB,yBAAuB,SAAS;AACnD,QAAM,YAAY,eAAe;AACjC,QAAM,aAAa,eAAe;AAClC,QAAM,YAAY,EAAC,qCAAU;AAE7B,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAK;AAAA,MACL,IAAI,EAAE,UAAU,YAAY,OAAO,cAAc,QAAQ,SAAS,eAAA;AAAA,MAClE,cAAc;AAAA,MACd,cAAc;AAAA,MAEd,UAAA;AAAA,QAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,SAAS;AAAA,YACT,IAAI,CAAC,WAAW;AAAA,cACd,OAAO;AAAA,cACP;AAAA,cACA,aAAa;AAAA,cACb,UAAU;AAAA,cACV,UAAU;AAAA,cACV,iBAAiB;AAAA,cACjB,YAAY;AAAA,cACZ,WAAW,UAAU,EAAE,WAAW,+BAA+B,WAAW,uBAAuB,CAAA;AAAA,YAAC;AAAA,YAGtG,UAAA;AAAA,cAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,IAAI;AAAA,oBACF,OAAO;AAAA,oBACP,QAAQ;AAAA,oBACR,SAAS;AAAA,oBACT,gBAAgB;AAAA,oBAChB,YAAY;AAAA,oBACZ,UAAU;AAAA,oBACV,iBAAiB;AAAA,kBAAA;AAAA,kBAGnB,UAAA;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,IAAI;AAAA,wBACF,WAAW,SAAS,YAAY;AAAA,wBAChC,iBAAiB;AAAA,wBACjB,eAAe;AAAA,wBACf,YAAY;AAAA,wBACZ,OAAO;AAAA,wBACP;AAAA,sBAAA;AAAA,sBAGF,UAAA;AAAA,wBAAC;AAAA,wBAAA;AAAA,0BACC,KAAK;AAAA,0BACL,IAAI;AAAA,4BACF,OAAO;AAAA,4BACP,QAAQ;AAAA,4BACR,OAAO,EAAE,UAAU,mBAAmB,WAAW,wBAAA;AAAA,4BACjD,UAAU,EAAE,QAAQ,GAAG,SAAS,GAAG,UAAU,SAAA;AAAA,4BAC7C,SAAS,EAAE,UAAU,mBAAmB,QAAQ,kBAAA;AAAA,4BAChD,WAAW,EAAE,OAAO,mBAAmB,aAAa,mBAAA;AAAA,4BACpD,oCAAoC,EAAE,UAAU,sBAAA;AAAA,4BAChD,sBAAsB,EAAE,OAAO,iBAAA;AAAA,0BAAiB;AAAA,0BAElD,yBAAyB,EAAE,QAAQ,SAAS,SAAA;AAAA,wBAAS;AAAA,sBAAA;AAAA,oBACvD;AAAA,kBAAA;AAAA,gBACF;AAAA,cAAA;AAAA,eAGD,qCAAU,eACT,oBAAC,KAAA,EAAI,IAAI,CAAC,WAAW,EAAE,UAAU,YAAY,KAAK,GAAG,MAAM,GAAG,OAAO,IAAI,QAAQ,IAAI,cAAc,OAAO,iBAAiB,MAAM,QAAQ,MAAM,QAAQ,GAAG,GAAG,QAAQ,KAAE,CAAI;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,SAI9K,qCAAU,SAAQ,oBAAC,cAAW,MAAK,MAAK,QAAO,UAAS,OAAM,wBAAuB,OAAM,UAAS,IAAI,EAAE,OAAO,IAAI,IAAA,GAAQ,+CAAU,MAAK;AAAA,QAE5I,gBACC,oBAAC,MAAA,EAAK,IAAI,WAAW,SAAS,KAC5B,UAAA,qBAAC,KAAA,EAAI,IAAI,EAAE,UAAU,YAAY,KAAK,IAAI,OAAO,IAAI,SAAS,QAAQ,KAAK,KAAK,QAAQ,GAAG,iBAAiB,0BAA0B,QAAQ,aAAa,aAAa,YAAY,cAAc,GAAG,SAAS,KAAK,WAAW,+BAA+B,gBAAgB,eAC3Q,UAAA;AAAA,UAAA,oBAAC,SAAA,EAAQ,OAAO,YAAY,KAAK,MAAM,eAAe,GAAG,CAAC,MAAM,OAAK,MACnE,UAAA,oBAAC,QAAA,EAAK,UAAA,oBAAC,YAAA,EAAW,MAAK,SAAQ,SAAS,cAAc,UAAU,CAAC,WAAW,UAAA,oBAAC,QAAA,EAAO,UAAS,QAAA,CAAQ,EAAA,CAAE,EAAA,CAAa,GACtH;AAAA,UACA,oBAAC,SAAA,EAAQ,aAAY,YAAW,UAAQ,MAAC;AAAA,UACzC,oBAAC,SAAA,EAAQ,OAAO,aAAa,KAAK,MAAM,eAAe,GAAG,CAAC,MAAM,OAAK,MACpE,UAAA,oBAAC,QAAA,EAAK,UAAA,oBAAC,YAAA,EAAW,MAAK,SAAQ,SAAS,eAAe,UAAU,CAAC,YAAY,UAAA,oBAAC,SAAA,EAAQ,UAAS,QAAA,CAAQ,EAAA,CAAE,GAAa,GACzH;AAAA,UACA,oBAAC,SAAA,EAAQ,aAAY,YAAW,UAAQ,MAAC;AAAA,8BACxC,SAAA,EAAQ,OAAM,mBAAkB,OAAK,MACpC,UAAA,oBAAC,YAAA,EAAW,MAAK,SAAQ,SAAS,eAAe,UAAA,oBAAC,WAAQ,UAAS,QAAA,CAAQ,GAAE,GAC/E;AAAA,UACC,YAAY,qBAAA,UAAA,EACX,UAAA;AAAA,YAAA,oBAAC,SAAA,EAAQ,aAAY,YAAW,UAAQ,MAAC;AAAA,YACzC,oBAAC,SAAA,EAAQ,OAAO,YAAY,oBAAoB,kCAAkC,OAAK,MACrF,UAAA,oBAAC,QAAA,EAAK,UAAA,oBAAC,YAAA,EAAW,MAAK,SAAQ,SAAS,cAAc,UAAU,CAAC,WAAW,UAAA,oBAAC,OAAA,EAAM,UAAS,QAAA,CAAQ,EAAA,CAAE,EAAA,CAAa,EAAA,CACrH;AAAA,UAAA,EAAA,CACF;AAAA,QAAA,EAAA,CACF,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;AC/LA,MAAM,gBAAgB,CAAC,EAAE,OAAO,SAAS,MAAM,YAAY,CAAA,GAAI,gBAAgB,SAAS,YAAY;;AAClG,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,CAAA,CAAE;AAC7C,QAAM,CAAC,kBAAkB,mBAAmB,IAAI,SAAS,EAAE;AAC3D,QAAM,CAAC,iBAAiB,kBAAkB,IAAI,SAAS,EAAE;AACzD,QAAM,CAAC,SAAS,SAAS,IAAI,SAAS,IAAI;AAC1C,QAAM,CAAC,iBAAiB,kBAAkB,IAAIA,eAAM,WAAiB,4CAAY,OAAZ,mBAAgB,OAAM,CAAC;AAC5F,QAAM,CAAC,kBAAkB,mBAAmB,IAAIA,eAAM,SAAqC,IAAI;AAC/F,QAAM,CAAC,4BAA4B,6BAA6B,IAAI,SAAS,IAAI;AAEjF,QAAM,WAAW,YAAA;AAEjB,QAAM,cAAc,MAAM;AACxB,YAAA;AAAA,EACF;AAEA,QAAM,qBAAqB,MAAM;AAC3B,aAAS,eAAe,cAAc,MAAM,KAAK,gBAAgB,GAAG;AAAA,MAChE,OAAO,EAAE,YAAY,iBAAiB,YAAY,MAAM,aAAa,KAAA;AAAA,IAAK,CAC7E;AAAA,EACL;AAEF,QAAM,uBAAuB,CAAC,OAAY;AACxC,QAAI,WAAW,QAAQ;AACrB,YAAM,WAAW,UAAU,KAAK,CAAC,OAAW,uBAAG,SAAQ,EAAE;AACzD,oCAA8B,QAAQ;AACtC,0BAAoB,EAAE;AACtB,yBAAA;AAAA,IACF,OAAO;AACL,0BAAoB,EAAE;AAAA,IACxB;AAAA,EACF;AAEA,QAAM,yBAAyB,YAAY;;AACzC,cAAU,IAAI;AACd,UAAM,MAAM,MAAM,eAAe,EAAE,GAAG,SAAA,GAAa,SAAS,kBAAkB,eAAe,kBAAkB,MAAM,GAAG,KAAK;AAC7H,QAAG,2BAAK,MAAM;AACZ,YAAM,aAAYC,MAAA,2BAAK,SAAL,gBAAAA,IAAW,KAAK,CAAA,MAAK,EAAE,eAAe;AACxD,yBAAmB,SAAS;AAC5B,0BAAoB,uCAAW,GAAG;AAClC,mBAAa,2BAAK,IAAI;AAAA,IACxB;AAEA,cAAU,KAAK;AAAA,EACjB;AAEA,QAAM,wBAAwB,YAAY;AACxC,QAAI;AACF,YAAM,6BAA6B,EAAE,GAAG,YAAY,IAAI,kBAAkB;AAC1E,sBAAgB,kCAAkC;AAAA,IACpD,SAAS,OAAO;AACd,YAAM,IAAI,gBAAgB,+BAAO,OAAO;AACxC,sBAAgB,GAAG,EAAE,SAAS,QAAA,CAAS;AAAA,IACzC;AAAA,EACF;AAEA,QAAM,uBAAuB,YAAY;AACvC,QAAI;AACF,UAAG,kBAAkB;AACnB,cAAM,oBAAoB,EAAE,GAAG,SAAA,GAAY,IAAI,qDAAkB,KAAK;AACtE,wBAAgB,2BAA2B;AAC3C,4BAAoB,IAAI;AACxB,cAAM,uBAAA;AAAA,MACR;AAAA,IACF,SAAS,OAAO;AACd,YAAM,IAAI,gBAAgB,+BAAO,OAAO;AACxC,sBAAgB,GAAG,EAAE,SAAS,QAAA,CAAS;AAAA,IACzC;AAAA,EACF;AAEA,YAAU,MAAM;AACd,2BAAA;AACA,WAAO,MAAM;AAAE,gBAAU,IAAI;AAAA,IAAE;AAAA,EACjC,GAAG,CAAC,eAAe,CAAC;AAEpB,8BACG,OAAA,EACC,UAAA;AAAA,IAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,SAAS;AAAA,QACT,UAAS;AAAA,QACT,WAAS;AAAA,QACT,mBAAgB;AAAA,QAChB,IAAI;AAAA,UACF,sBAAsB;AAAA,YACpB,QAAQ;AAAA,YACR,SAAS;AAAA,YACT,eAAe;AAAA,UAAA;AAAA,QACjB;AAAA,QAID,UAAA;AAAA,UAAA,QAAQ,IAAI,QAAQ,6CAA6C;AAAA,UAElE,qBAAC,aAAA,EAAY,IAAI,EAAE,cAAc,QAAQ,SAAS,+BAA+B,cAAc,oBAAA,GAC7F,UAAA;AAAA,YAAA,qBAAC,OAAI,SAAQ,QAAO,YAAW,UAAS,KAAK,GAC1C,UAAA;AAAA,cAAA,8BACC;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,SAAS,MAAM,8BAA8B,IAAI;AAAA,kBACjD,MAAK;AAAA,kBACL,IAAI,EAAE,OAAO,CAAC,UAAU,MAAM,QAAQ,KAAK,GAAG,EAAA;AAAA,kBAE9C,UAAA,oBAAC,cAAW,UAAA,SAAA,CAAM;AAAA,gBAAA;AAAA,cAAA;AAAA,cAGtB,oBAAC,cAAW,MAAK,MAAK,QAAO,UAAS,OAAM,wBAAuB,IAAI,EAAE,MAAM,GAAG,WAAW,YAC1F,UAAA,6BAA6B,qBAAsB,WAAW,SAAS,qBAAqB,kBAAA,CAC/F;AAAA,YAAA,GACF;AAAA,YACA,qBAAC,KAAA,EAAI,SAAQ,QAAO,YAAY,UAAU,KAAK,GAAG,UAAS,YAAW,OAAM,MAAK,KAAI,OACnF,UAAA;AAAA,cAAA,oBAAC,cAAW,MAAK,MAAK,QAAO,UAAS,OAAM,uBAAsB,UAAA,WAAA,CAAQ;AAAA,cAC1E;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,cAAY;AAAA,kBACZ,OAAO;AAAA,kBACP,MAAK;AAAA,kBACL,aAAa,CAAC;;AAAU,oCAAQA,MAAA,UAAU,KAAK,CAAC,WAAW,OAAO,UAAU,KAAK,MAAjD,gBAAAA,IAAoD,QAAQ;AAAA;AAAA,kBAO5F,UAAU,CAAC,MAAM;AACf,wBAAI,EAAE,OAAO,OAAO;AAClB,yCAAmB,EAAE,OAAO,KAAe;AAAA,oBAC7C;AAAA,kBACF;AAAA,kBACC,UAAA,UAAU,IAAI,CAAC,+BACb,UAAA,EAA4B,OAAO,OAAO,OACzC,UAAA,oBAAC,cAAW,MAAK,MAAK,OAAM,wBAAwB,UAAA,OAAO,OAAM,KADpD,OAAO,KAEtB,CACD;AAAA,gBAAA;AAAA,cAAA;AAAA,cAEH;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,cAAW;AAAA,kBACX,SAAS;AAAA,kBACT,MAAK;AAAA,kBACL,IAAI;AAAA,oBACF,OAAO,CAAC,UAAU,MAAM,QAAQ,KAAK,GAAG;AAAA,kBAAA;AAAA,kBAG1C,UAAA,oBAACC,OAAA,EAAU,UAAS,QAAA,CAAO;AAAA,gBAAA;AAAA,cAAA;AAAA,YAC7B,EAAA,CACF;AAAA,UAAA,GACF;AAAA,UAGE,iDACG,eAAA,EAAc,IAAI,EAAE,SAAS,QAAQ,eAAe,UAAU,KAAK,GAAG,OAAO,QAAQ,GAAG,GAAG,MAAM,GAAG,UAAU,QAAQ,gBAAgB,QAAQ,iBAAiB,QAAQ,wBAAwB,EAAE,SAAS,SAAO,GAEhN,UAAA,oBAAC,KAAA,EAAI,IAAI,EAAE,OAAO,QAAQ,SAAS,QAAQ,eAAe,UAAU,YAAY,UAAU,gBAAgB,UAAU,YAAY,KAC9H,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,UAAU;AAAA,cACV,OAAO;AAAA,cACP,QAAQ;AAAA,cACR,OAAO;AAAA,cACP,cAAc;AAAA,cACd,YAAY;AAAA,cACZ,YAAY;AAAA,YAAA;AAAA,UAAA,EACd,CACF,EAAA,CACF,IAEF,qBAAC,eAAA,EAAc,IAAI,EAAE,MAAM,GAAG,UAAU,QAAQ,SAAS,QAAQ,eAAe,UAAU,gBAAgB,QAAQ,iBAAiB,QAAQ,wBAAwB,EAAE,SAAS,OAAA,EAAO,GAElL,UAAA;AAAA,YAAA,CAAC,UAAU;AAAA,YAER,oBAAC,KAAA,EAAI,SAAQ,QAAO,YAAW,UAAS,OAAM,QAAO,QAAO,QAAO,gBAAe,UAC/E,UAAA,CAAC,WAAW,oBAAC,YAAA,EAAW,MAAK,MAAK,QAAO,UAAS,OAAM,wBAAuB,IAAI,EAAE,WAAW,SAAA,GAAY,UAAA,qBAAA,CAAkB,GACjI;AAAA,YAGF,oBAAC,OAAI,IAAI;AAAA,cACP,SAAS;AAAA,cACT,qBAAqB;AAAA,cACrB,KAAK;AAAA,cACL,GAAG;AAAA,cACH,cAAc;AAAA,cACd,YAAY;AAAA,YAAA,GAEX,UAAA,UAAU,IAAI,CAAC,UAAU,UACxB;AAAA,cAAC;AAAA,cAAA;AAAA,gBAEC;AAAA,gBACA,OAAO;AAAA,gBACP,QAAQ;AAAA,gBACR,cAAc,WAAW;AAAA,gBACzB,oBAAoB;AAAA,gBACpB,SAAS,CAACC,cAAkB;AAC1B,uCAAqBA,UAAS,GAAG;AAAA,gBACnC;AAAA,gBACA,YAAY,WAAW;AAAA,gBACvB,YAAY;AAAA,gBACZ,UAAU,CAACA,cAAkB,oBAAoBA,SAAQ;AAAA,cAAA;AAAA,cAXpD,SAAS,OAAO;AAAA,YAAA,CAaxB,EAAA,CACH;AAAA,UAAA,GACJ;AAAA,UAED,WAAW,SACV,qBAAC,eAAA,EAAc,IAAI,EAAE,GAAG,GAAG,gBAAgB,UAAU,WAAW,oBAAA,GAC9D,UAAA;AAAA,YAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,SAAS,MAAM,SAAS,eAAe,cAAc,MAAM,KAAK,gBAAgB,GAAG,EAAE,OAAO,EAAE,YAAY,gBAAA,GAAmB;AAAA,gBAC7H,UAAU,CAAC;AAAA,gBACZ,UAAA;AAAA,cAAA;AAAA,YAAA;AAAA,YAGD;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,SAAS,MAAM,sBAAA;AAAA,gBACf,UAAU,CAAC,qBAAoB,mDAAiB,SAAQ;AAAA,gBACzD,UAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UAED,EAAA,CACF;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IAGJ;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAM,qBAAqB;AAAA,QAC3B,SAAS,MAAM,oBAAoB,IAAI;AAAA,QACvC,OAAM;AAAA,QACN,aAAY;AAAA,QACZ,WAAW,MAAM,qBAAA;AAAA,QACjB;AAAA,MAAA;AAAA,IAAA;AAAA,EACF,GACF;AAEJ;"}
1
+ {"version":3,"file":"template-modal-Cyj0AUks.esm.js","sources":["../../src/views/template-editor/template-modal/html-thumbnail-preview.tsx","../../src/views/template-editor/template-modal/html-thumbnail-preview-full.tsx","../../src/views/template-editor/template-modal/template-modal.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable unused-imports/no-unused-vars */\nimport React, { useState, useRef, useEffect, useCallback } from 'react';\nimport { Box, Skeleton, IconButton, Tooltip, Divider, Fade } from '@mui/material';\nimport { ZoomIn, ZoomOut, Refresh } from '@mui/icons-material';\nimport { Trash } from '../../../components/icons';\nimport Typography from '../../../components/typography/typography';\n\nconst HtmlThumbnailPreview = ({ \n template, \n width = 300, \n height = 200, \n scale = 0.25,\n showControls = false,\n onClick = null,\n selectedTemplateId = '',\n isFetching = false,\n onDelete,\n minScale = 0.1,\n maxScale = 1,\n scaleStep = 1.2,\n loadingDelay = 500,\n refreshDelay = 300,\n normalView = false,\n}) => {\n const [isLoading, setIsLoading] = useState(isFetching || true);\n const [currentScale, setCurrentScale] = useState(scale);\n const [error, setError] = useState(null);\n const [isHovered, setIsHovered] = useState(false);\n const containerRef = useRef(null);\n const contentRef = useRef(null);\n const loadingTimeoutRef = useRef(null);\n const refreshTimeoutRef = useRef(null);\n\n // Calculate dimensions based on scale\n const scaledWidth = width / currentScale;\n const scaledHeight = height / currentScale;\n\n // Cleanup timeouts on unmount\n useEffect(() => {\n return () => {\n if (loadingTimeoutRef.current) {\n clearTimeout(loadingTimeoutRef.current);\n }\n if (refreshTimeoutRef.current) {\n clearTimeout(refreshTimeoutRef.current);\n }\n };\n }, []);\n\n // Handle initial loading\n useEffect(() => {\n if (loadingTimeoutRef.current) {\n clearTimeout(loadingTimeoutRef.current);\n }\n \n loadingTimeoutRef.current = setTimeout(() => {\n setIsLoading(false);\n }, loadingDelay);\n\n return () => {\n if (loadingTimeoutRef.current) {\n clearTimeout(loadingTimeoutRef.current);\n }\n };\n }, [template.contents, loadingDelay]);\n\n // Handle external loading state\n useEffect(() => {\n setIsLoading(isFetching);\n }, [isFetching]);\n\n // Memoized event handlers\n const handleZoomIn = useCallback(() => {\n setCurrentScale(prev => Math.min(prev * scaleStep, maxScale));\n }, [scaleStep, maxScale]);\n\n const handleZoomOut = useCallback(() => {\n setCurrentScale(prev => Math.max(prev / scaleStep, minScale));\n }, [scaleStep, minScale]);\n\n const handleRefresh = useCallback(() => {\n setIsLoading(true);\n setError(null);\n \n if (refreshTimeoutRef.current) {\n clearTimeout(refreshTimeoutRef.current);\n }\n \n refreshTimeoutRef.current = setTimeout(() => {\n setIsLoading(false);\n }, refreshDelay);\n }, [refreshDelay]);\n\n const handleClick = useCallback(() => {\n if (onClick && !isLoading) {\n onClick(template);\n }\n }, [onClick, template, isLoading]);\n\n const handleDelete = useCallback((e) => {\n e.stopPropagation(); // Prevent triggering onClick\n if (onDelete && !template?.is_default) {\n onDelete(template);\n }\n }, [onDelete, template]);\n\n const handleMouseEnter = useCallback(() => {\n setIsHovered(true);\n }, []);\n\n const handleMouseLeave = useCallback(() => {\n setIsHovered(false);\n }, []);\n\n // Loading state\n if (isLoading) {\n return (\n <Box \n sx={{ \n width, \n height,\n borderRadius: 1,\n overflow: 'hidden',\n border: '1px solid',\n borderColor: 'divider'\n }}\n >\n <Skeleton \n variant=\"rectangular\" \n width=\"100%\" \n height=\"100%\" \n animation=\"wave\"\n />\n </Box>\n );\n }\n\n // Error state\n if (error) {\n return (\n <Box \n sx={{ \n width, \n height,\n borderRadius: 1,\n overflow: 'hidden',\n border: '1px solid',\n borderColor: 'error.main',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: 'error.light',\n color: 'error.contrastText'\n }}\n >\n Failed to load template\n </Box>\n );\n }\n\n const isSelected = selectedTemplateId === template._id;\n const canZoomIn = currentScale < maxScale;\n const canZoomOut = currentScale > minScale;\n const canDelete = !template?.is_default;\n\n return (\n <Box \n sx={{ position: 'relative', display: 'inline-block' }}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n {/* Main Container */}\n <Box\n ref={containerRef}\n onClick={handleClick}\n sx={(theme) => ({\n width,\n height,\n border: '1px solid',\n borderRadius: 1,\n overflow: 'hidden',\n position: 'relative',\n cursor: onClick ? 'pointer' : 'default',\n backgroundColor: '#fff',\n // boxShadow: '0 2px 8px rgba(0,0,0,0.1)',\n transition: 'all 0.2s ease-in-out',\n '&:hover': onClick ? {\n boxShadow: '0 4px 16px rgba(0,0,0,0.15)',\n transform: 'translateY(-1px)',\n } : {},\n borderColor: normalView && isSelected ? theme.palette.theme.primary[800] : 'grey.300',\n borderWidth: isSelected ? 2 : 1,\n })}\n >\n {/* Scaled Content Wrapper */}\n <Box\n sx={{\n width: scaledWidth,\n height: scaledHeight,\n transform: `scale(${currentScale})`,\n transformOrigin: 'top left',\n position: 'absolute',\n top: 0,\n left: 0,\n overflow: 'hidden',\n }}\n >\n {/* HTML Content */}\n <Box\n ref={contentRef}\n sx={{\n width: '100%',\n height: '100%',\n userSelect: 'none',\n pointerEvents: 'none',\n pt: 2,\n '& *': {\n maxWidth: '100% !important',\n boxSizing: 'border-box !important',\n },\n // Reset common problematic styles\n '& body': {\n margin: '0 !important',\n padding: '0 !important',\n overflow: 'hidden !important',\n },\n // Handle images\n '& img': {\n maxWidth: '100% !important',\n height: 'auto !important',\n },\n // Handle tables\n '& table': {\n width: '100% !important',\n tableLayout: 'fixed !important',\n },\n // Prevent absolute positioning issues\n '& *[style*=\"position: absolute\"]': {\n position: 'relative !important',\n },\n '& .email-container': {\n width: '85% !important',\n }\n }}\n dangerouslySetInnerHTML={{ __html: template.contents }}\n />\n </Box>\n\n {/* Loading Overlay */}\n {isLoading && (\n <Box\n sx={{\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'rgba(255,255,255,0.8)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n zIndex: 2,\n }}\n >\n <Skeleton variant=\"rectangular\" width=\"90%\" height=\"90%\" />\n </Box>\n )}\n\n {/* Selection Indicator */}\n {template?.is_default && (\n <Box\n sx={(theme) => ({\n position: 'absolute',\n top: 8,\n left: 8,\n width: 12,\n height: 12,\n borderRadius: '50%',\n backgroundColor: theme.palette.theme?.primary[800],\n zIndex: 3,\n })}\n />\n )}\n </Box>\n {template?.name && <Typography type='s3' weight='medium' color='theme.secondary.1000' align='center' sx={{width, mt:0.5}}>{template?.name}</Typography>}\n\n {/* Hover Controls */}\n {showControls && (\n <Fade in={isHovered} timeout={200}>\n <Box\n sx={{\n position: 'absolute',\n top: -8,\n right: -8,\n display: 'flex',\n gap: 0.5,\n zIndex: 4,\n backgroundColor: 'rgba(255,255,255,0.95)',\n border: '1px solid',\n borderColor: 'grey.300',\n borderRadius: 2,\n padding: 0.5,\n boxShadow: '0 4px 12px rgba(0,0,0,0.15)',\n backdropFilter: 'blur(4px)',\n }}\n >\n <Tooltip title={`Zoom In (${Math.round(currentScale * 100)}%)`} arrow>\n <span>\n <IconButton\n size=\"small\"\n onClick={handleZoomIn}\n disabled={!canZoomIn}\n sx={{\n backgroundColor: 'transparent',\n '&:hover': { \n backgroundColor: 'primary.light',\n color: 'primary.contrastText' \n },\n '&:disabled': {\n opacity: 0.5\n }\n }}\n >\n <ZoomIn fontSize=\"small\" />\n </IconButton>\n </span>\n </Tooltip>\n\n <Divider orientation=\"vertical\" variant=\"middle\" flexItem />\n\n <Tooltip title={`Zoom Out (${Math.round(currentScale * 100)}%)`} arrow>\n <span>\n <IconButton\n size=\"small\"\n onClick={handleZoomOut}\n disabled={!canZoomOut}\n sx={{\n backgroundColor: 'transparent',\n '&:hover': { \n backgroundColor: 'primary.light',\n color: 'primary.contrastText' \n },\n '&:disabled': {\n opacity: 0.5\n }\n }}\n >\n <ZoomOut fontSize=\"small\" />\n </IconButton>\n </span>\n </Tooltip>\n\n <Divider orientation=\"vertical\" variant=\"middle\" flexItem />\n\n <Tooltip title=\"Refresh Preview\" arrow>\n <IconButton\n size=\"small\"\n onClick={handleRefresh}\n sx={{\n backgroundColor: 'transparent',\n '&:hover': { \n backgroundColor: 'primary.light',\n color: 'primary.contrastText' \n },\n }}\n >\n <Refresh fontSize=\"small\" />\n </IconButton>\n </Tooltip>\n\n {onDelete && (\n <>\n <Divider orientation=\"vertical\" variant=\"middle\" flexItem />\n <Tooltip \n title={canDelete ? \"Delete Template\" : \"Cannot delete default template\"} \n arrow\n >\n <span>\n <IconButton\n size=\"small\"\n onClick={handleDelete}\n disabled={!canDelete}\n sx={{\n backgroundColor: 'transparent',\n '&:hover': !canDelete ? {} : { \n backgroundColor: 'error.light',\n color: 'error.contrastText' \n },\n '&:disabled': {\n opacity: 0.5\n }\n }}\n >\n <Trash fontSize=\"small\" />\n </IconButton>\n </span>\n </Tooltip>\n </>\n )}\n </Box>\n </Fade>\n )}\n </Box>\n );\n};\n\nexport { HtmlThumbnailPreview };\nexport default HtmlThumbnailPreview;","/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable unused-imports/no-unused-vars */\nimport React, { useState, useRef, useEffect, useCallback } from 'react';\nimport { Box, Skeleton, IconButton, Tooltip, Divider, Fade } from '@mui/material';\nimport { ZoomIn, ZoomOut, Refresh } from '@mui/icons-material';\nimport { Trash } from '../../../components/icons';\nimport Typography from '../../../components/typography/typography';\n\ninterface HtmlThumbnailPreviewProps {\n template: any;\n width?: number | string; \n height?: number;\n scale?: number;\n showControls?: boolean;\n onClick?: (template: any) => void;\n selectedTemplateId?: string;\n isFetching?: boolean;\n onDelete?: (template: any) => void;\n normalView?: boolean;\n minScale?: number;\n maxScale?: number;\n scaleStep?: number;\n loadingDelay?: number;\n refreshDelay?: number;\n}\n\nconst HtmlThumbnailPreviewFull: React.FC<HtmlThumbnailPreviewProps> = ({\n template,\n width = '100%',\n height = 800,\n scale = 0.25,\n showControls = false,\n onClick = null,\n selectedTemplateId = '',\n isFetching = false,\n onDelete,\n normalView = false,\n minScale = 0.1,\n maxScale = 1,\n scaleStep = 1.2,\n loadingDelay = 500,\n refreshDelay = 300,\n}) => {\n const [isLoading, setIsLoading] = useState(isFetching || true);\n const [currentScale, setCurrentScale] = useState(scale);\n const [error, setError] = useState<null | string>(null);\n const [isHovered, setIsHovered] = useState(false);\n const containerRef = useRef<HTMLDivElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n const loadingTimeoutRef = useRef<any>(null);\n const refreshTimeoutRef = useRef<any>(null);\n\n const [containerPixelWidth, setContainerPixelWidth] = useState<number>(typeof width === 'number' ? width : 800);\n\n // Measure container width for responsive scaling\n useEffect(() => {\n const updateWidth = () => {\n if (containerRef.current) {\n const newWidth = containerRef.current.offsetWidth;\n setContainerPixelWidth(newWidth);\n }\n };\n updateWidth();\n window.addEventListener('resize', updateWidth);\n return () => window.removeEventListener('resize', updateWidth);\n }, []);\n\n const scaledWidth = containerPixelWidth / currentScale;\n const scaledHeight = height / currentScale;\n\n useEffect(() => {\n return () => {\n clearTimeout(loadingTimeoutRef.current);\n clearTimeout(refreshTimeoutRef.current);\n };\n }, []);\n\n useEffect(() => {\n clearTimeout(loadingTimeoutRef.current);\n loadingTimeoutRef.current = setTimeout(() => setIsLoading(false), loadingDelay);\n return () => clearTimeout(loadingTimeoutRef.current);\n }, [template.contents, loadingDelay]);\n\n useEffect(() => setIsLoading(isFetching), [isFetching]);\n\n const handleZoomIn = useCallback(() => setCurrentScale(prev => Math.min(prev * scaleStep, maxScale)), [scaleStep, maxScale]);\n const handleZoomOut = useCallback(() => setCurrentScale(prev => Math.max(prev / scaleStep, minScale)), [scaleStep, minScale]);\n const handleRefresh = useCallback(() => {\n setIsLoading(true);\n setError(null);\n clearTimeout(refreshTimeoutRef.current);\n refreshTimeoutRef.current = setTimeout(() => setIsLoading(false), refreshDelay);\n }, [refreshDelay]);\n\n const handleClick = useCallback(() => {\n if (onClick && !isLoading) onClick(template);\n }, [onClick, template, isLoading]);\n\n const handleDelete = useCallback((e: React.MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n if (onDelete && !template?.is_default) onDelete(template);\n }, [onDelete, template]);\n\n const handleMouseEnter = useCallback(() => setIsHovered(true), []);\n const handleMouseLeave = useCallback(() => setIsHovered(false), []);\n\n if (isLoading) return (\n <Box sx={{ width, height, borderRadius: 1, overflow: 'hidden', border: '1px solid', borderColor: 'divider' }}>\n <Skeleton variant=\"rectangular\" width=\"100%\" height=\"100%\" animation=\"wave\" />\n </Box>\n );\n\n if (error) return (\n <Box sx={{\n width, height, borderRadius: 1, overflow: 'hidden', border: '1px solid',\n borderColor: 'error.main', display: 'flex', alignItems: 'center', justifyContent: 'center',\n backgroundColor: 'error.light', color: 'error.contrastText'\n }}>\n Failed to load template\n </Box>\n );\n\n const isSelected = selectedTemplateId === template._id;\n const canZoomIn = currentScale < maxScale;\n const canZoomOut = currentScale > minScale;\n const canDelete = !template?.is_default;\n\n return (\n <Box\n ref={containerRef}\n sx={{ position: 'relative', width, marginInline: 'auto', display: 'inline-block' }}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n <Box\n onClick={handleClick}\n sx={(theme) => ({\n width: '100%',\n height,\n marginBlock: 0,\n overflow: 'hidden',\n position: 'relative',\n backgroundColor: '#fff',\n transition: 'all 0.2s ease-in-out',\n '&:hover': onClick ? { boxShadow: '0 4px 16px rgba(0,0,0,0.15)', transform: 'translateY(-1px)' } : {},\n })}\n >\n <Box\n sx={{\n width: '100%',\n height: '100%',\n display: 'flex',\n justifyContent: 'center', \n alignItems: 'center', \n overflow: 'auto',\n backgroundColor: '#fff',\n }}\n >\n <Box\n sx={{\n transform: `scale(${currentScale})`,\n transformOrigin: 'top left',\n pointerEvents: 'none',\n userSelect: 'none',\n width: containerPixelWidth,\n height: height,\n }}\n >\n <Box\n ref={contentRef}\n sx={{\n width: '100%',\n height: '100%',\n '& *': { maxWidth: '100% !important', boxSizing: 'border-box !important' },\n '& body': { margin: 0, padding: 0, overflow: 'hidden' },\n '& img': { maxWidth: '100% !important', height: 'auto !important' },\n '& table': { width: '100% !important', tableLayout: 'fixed !important' },\n '& *[style*=\"position: absolute\"]': { position: 'relative !important' },\n '& .email-container': { width: '85% !important' },\n }}\n dangerouslySetInnerHTML={{ __html: template.contents }}\n />\n </Box>\n </Box>\n\n {template?.is_default && (\n <Box sx={(theme) => ({ position: 'absolute', top: 8, left: 8, width: 12, height: 12, borderRadius: '50%', backgroundColor: theme.palette.theme.primary[800], zIndex: 3 })} />\n )}\n </Box>\n\n {template?.name && <Typography type='s3' weight='medium' color='theme.secondary.1000' align='center' sx={{ width, mt: 0.5 }}>{template?.name}</Typography>}\n\n {showControls && (\n <Fade in={isHovered} timeout={200}>\n <Box sx={{ position: 'absolute', top: -8, right: -8, display: 'flex', gap: 0.5, zIndex: 4, backgroundColor: 'rgba(255,255,255,0.95)', border: '1px solid', borderColor: 'grey.300', borderRadius: 2, padding: 0.5, boxShadow: '0 4px 12px rgba(0,0,0,0.15)', backdropFilter: 'blur(4px)' }}>\n <Tooltip title={`Zoom In (${Math.round(currentScale * 100)}%)`} arrow>\n <span><IconButton size=\"small\" onClick={handleZoomIn} disabled={!canZoomIn}><ZoomIn fontSize=\"small\" /></IconButton></span>\n </Tooltip>\n <Divider orientation=\"vertical\" flexItem />\n <Tooltip title={`Zoom Out (${Math.round(currentScale * 100)}%)`} arrow>\n <span><IconButton size=\"small\" onClick={handleZoomOut} disabled={!canZoomOut}><ZoomOut fontSize=\"small\" /></IconButton></span>\n </Tooltip>\n <Divider orientation=\"vertical\" flexItem />\n <Tooltip title=\"Refresh Preview\" arrow>\n <IconButton size=\"small\" onClick={handleRefresh}><Refresh fontSize=\"small\" /></IconButton>\n </Tooltip>\n {onDelete && <>\n <Divider orientation=\"vertical\" flexItem />\n <Tooltip title={canDelete ? \"Delete Template\" : \"Cannot delete default template\"} arrow>\n <span><IconButton size=\"small\" onClick={handleDelete} disabled={!canDelete}><Trash fontSize=\"small\" /></IconButton></span>\n </Tooltip>\n </>}\n </Box>\n </Fade>\n )}\n </Box>\n );\n};\n\nexport default HtmlThumbnailPreviewFull;","/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable unused-imports/no-unused-vars */\nimport React, { useEffect, useState } from 'react';\nimport { \n DialogTitle, \n DialogContent, \n DialogActions,\n IconButton,\n Box,\n MenuItem\n} from '@mui/material';\nimport CloseIcon from '@mui/icons-material/Close';\nimport Typography from '../../../components/typography/typography';\nimport Modal from '../../../components/modal/modal';\nimport { deleteV1TemplatesId, getV1Templates, patchV1TemplatesIdSetDefault } from '../../../api-client/api.system-feature/api';\nimport { getErrorMessage, getToken } from '../../../utils/common';\nimport Button from '../../../components/button/button';\n// import ModalLoader from '../../../components/loader/modal-loader';\nimport { useNavigate } from 'react-router-dom';\nimport { enqueueSnackbar } from 'notistack';\nimport Select from '../../../components/select/select';\nimport HtmlThumbnailPreview from './html-thumbnail-preview';\nimport HtmlThumbnailPreviewFull from './html-thumbnail-preview-full';\nimport ConfirmPopUp from '../../../components/confirm-modal/confirm-modal';\n\nconst TemplateModal = ({ email, onClose, open, companies = [], templateRoutes, source = 'add' }) => {\n const [templates, setTemplates] = useState([]);\n const [selectedTemplate, setSelectedTemplate] = useState('');\n const [defaultTemplate, setDefaultTemplate] = useState('');\n const [loading, setLoding] = useState(true);\n const [selectedCompany, setSelectedCompany] = React.useState<number>(companies?.[0]?.id || 0);\n const [templateToDelete, setTemplateToDelete] = React.useState<Record<string, any> | null>(null);\n const [selectedTemplateForPreview, setSelectedTemplateForPreview] = useState(null);\n\n const navigate = useNavigate();\n\n const handleClose = () => {\n onClose();\n };\n\n const handleViewTemplate = () => {\n navigate(templateRoutes.EDIT_TEMPLATE(email._id, selectedTemplate), { \n state: { company_id: selectedCompany, isViewOnly: true, fromPreview: true }\n });\n };\n\n const handleTemplateSelect = (id: any) => {\n if (source === 'view') {\n const template = templates.find((t: any) => t?._id === id);\n setSelectedTemplateForPreview(template);\n setSelectedTemplate(id);\n handleViewTemplate();\n } else {\n setSelectedTemplate(id);\n }\n }\n\n const getTemplatesViaSubject = async () => {\n setLoding(true)\n const res = await getV1Templates({ ...getToken(), filters: `(company_id.eq=${selectedCompany}&subject_id.eq=${email._id})` })\n if(res?.data) {\n const dTemplate = res?.data?.find(t => t.is_default === true)\n setDefaultTemplate(dTemplate)\n setSelectedTemplate(dTemplate?._id)\n setTemplates(res?.data)\n }\n\n setLoding(false)\n }\n\n const handleDefaultTemplate = async () => {\n try {\n await patchV1TemplatesIdSetDefault({ ...getToken(), id: selectedTemplate })\n enqueueSnackbar('Template has been set as default');\n } catch (error) {\n const m = getErrorMessage(error?.message);\n enqueueSnackbar(m, { variant: 'error' });\n }\n }\n\n const handleDeleteTemplate = async () => {\n try {\n if(templateToDelete) {\n await deleteV1TemplatesId({ ...getToken(), id: templateToDelete?._id })\n enqueueSnackbar('Template has been deleted');\n setTemplateToDelete(null)\n await getTemplatesViaSubject()\n }\n } catch (error) {\n const m = getErrorMessage(error?.message);\n enqueueSnackbar(m, { variant: 'error' });\n }\n }\n\n useEffect(() => {\n getTemplatesViaSubject()\n return () => { setLoding(true) }\n }, [selectedCompany])\n\n return (\n <div>\n <Modal \n open={open} \n onClose={handleClose} \n maxWidth=\"lg\" \n fullWidth\n aria-labelledby=\"email-template-selection\"\n sx={{\n '& .MuiDialog-paper': {\n height: '85vh',\n display: 'flex',\n flexDirection: 'column'\n }\n }}\n >\n\n {console.log(source, \"soure in modal +++++++++++++++++++++++debug\")}\n {/* {loading && <ModalLoader/>} */}\n <DialogTitle sx={{ marginBottom: '1rem', padding: '0.75rem 1rem 0.75rem 1.5rem', borderBottom: '1px solid #D3D3D4'}}>\n <Box display='flex' alignItems='center' gap={2}>\n {selectedTemplateForPreview && (\n <IconButton\n onClick={() => setSelectedTemplateForPreview(null)}\n size='small'\n sx={{ color: (theme) => theme.palette.grey[700] }}\n >\n <Typography>← Back</Typography>\n </IconButton>\n )}\n <Typography type='s1' weight='medium' color='theme.secondary.1000' sx={{ flex: 1, textAlign: 'center' }}> \n {selectedTemplateForPreview ? 'Template Preview' : (source === 'view' ? 'Template Preview' : 'Select Template')}\n </Typography>\n </Box>\n <Box display='flex' alignItems={'center'} gap={1} position='absolute' right='1%' top='4px'>\n <Typography type='s3' weight='medium' color='theme.secondary.800'> Company</Typography>\n <Select\n displayEmpty\n value={selectedCompany}\n size='small'\n renderValue={(value) => value ? companies.find((option) => option.value === value)?.label : 'Select Company'}\n // fullWidth\n // sx={{\n // bgcolor: 'white',\n // borderRadius: 1,\n // '& .MuiSelect-select': { py: 0.75 }\n // }}\n onChange={(e) => {\n if (e.target.value) {\n setSelectedCompany(e.target.value as number);\n }\n }}>\n {companies.map((option) => (\n <MenuItem key={option.value} value={option.value}>\n <Typography type='s3' color='theme.secondary.1000'>{option.label}</Typography>\n </MenuItem>\n ))}\n </Select>\n <IconButton\n aria-label=\"close\"\n onClick={handleClose}\n size='small'\n sx={{\n color: (theme) => theme.palette.grey[500],\n }}\n >\n <CloseIcon fontSize='small'/>\n </IconButton>\n </Box>\n </DialogTitle>\n \n {\n selectedTemplateForPreview ? (\n <DialogContent sx={{ display: 'flex', flexDirection: 'column', gap: 3, width: '100%', p: 3, flex: 1, overflow: 'auto', scrollbarWidth: 'none', msOverflowStyle: 'none', '&::-webkit-scrollbar': { display: 'none' } }}>\n {/* Main Preview */}\n <Box sx={{ width: '100%', display: 'flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', flexShrink: 0 }}>\n <HtmlThumbnailPreviewFull\n template={selectedTemplateForPreview}\n width={'100%'}\n height={600}\n scale={1}\n showControls={true}\n isFetching={loading}\n normalView={true}\n />\n </Box>\n </DialogContent>\n ) : (\n <DialogContent sx={{ flex: 1, overflow: 'auto', display: 'flex', flexDirection: 'column', scrollbarWidth: 'none', msOverflowStyle: 'none', '&::-webkit-scrollbar': { display: 'none' } }}>\n {/* <Grid container spacing={6}> */}\n {!templates.length && (\n // <Grid item xs={12} sx={{ minHeight: 350}}>\n <Box display='flex' alignItems='center' width='100%' height='100%' justifyContent='center'>\n {!loading && <Typography type='s1' weight='medium' color='theme.secondary.1000' sx={{ textAlign: 'center' }}>No templates found</Typography>}\n </Box>\n // </Grid>\n )}\n <Box sx={{ \n display: 'grid', \n gridTemplateColumns: 'repeat(auto-fill, minmax(300px, 1fr))', \n gap: 2, \n p: 2,\n justifyItems: 'center',\n alignItems: 'center'\n }}>\n {templates.map((template, index) => (\n <HtmlThumbnailPreview\n key={template._id || index}\n template={template}\n width={300}\n height={200}\n showControls={source === 'add'}\n selectedTemplateId={selectedTemplate}\n onClick={(template: any) => {\n handleTemplateSelect(template._id)\n }}\n normalView={source === 'add'}\n isFetching={loading}\n onDelete={(template: any) => setTemplateToDelete(template)}\n />\n ))}\n </Box>\n </DialogContent>\n )}\n {source === 'add' && (\n <DialogActions sx={{ p: 2, justifyContent: 'center', borderTop: '1px solid #D3D3D4' }}>\n <Button\n onClick={() => navigate(templateRoutes.EDIT_TEMPLATE(email._id, selectedTemplate), { state: { company_id: selectedCompany } })}\n disabled={!selectedTemplate}\n >\n Continue\n </Button>\n <Button\n onClick={() => handleDefaultTemplate()}\n disabled={!selectedTemplate || defaultTemplate?._id === selectedTemplate}\n >\n Set to Default\n </Button>\n </DialogActions>\n )}\n </Modal>\n <ConfirmPopUp\n open={templateToDelete !== null}\n onClose={() => setTemplateToDelete(null)}\n title='Remove Template'\n description='Are you sure you want to delete ?'\n onConfirm={() => handleDeleteTemplate()}\n loading={loading}\n />\n </div>\n );\n};\n\nexport { TemplateModal };\nexport default TemplateModal;"],"names":["React","_a","CloseIcon","template"],"mappings":"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"}
@@ -1,16 +1,16 @@
1
1
  import { jsxs, jsx } from "react/jsx-runtime";
2
2
  import { useState, useCallback, useMemo, useEffect } from "react";
3
- import { A as ActionBar } from "./action-bar-C7Alva4T.esm.js";
3
+ import { A as ActionBar } from "./action-bar-BQ3DcZpw.esm.js";
4
4
  import { v as viewTypes } from "./action-bar-BsXTcYpL.esm.js";
5
- import { M as MaterialTable } from "./searchable-select-0F6E4XAr.esm.js";
5
+ import { M as MaterialTable } from "./searchable-select-DSxOplyJ.esm.js";
6
6
  import { T as Typography } from "./typography-CG_A0iOJ.esm.js";
7
7
  import { F as Fallback } from "./fallback-C1hj1V6l.esm.js";
8
8
  import { M as Menu } from "./menu-B2SzzeqF.esm.js";
9
- import { F as Footer } from "./footer-m3_dlNl8.esm.js";
9
+ import { F as Footer } from "./footer-Db5CEUun.esm.js";
10
10
  import { u as useDeepMemo } from "./use-deep-memo-BzDUOQl2.esm.js";
11
11
  import { usePages, usePermissions } from "@erpsquad/common/runtime";
12
- import { t as transformTableColumns } from "./common-utility-DGpbsf7S.esm.js";
13
- import { c as appendConditionSafely, ab as getToken, m as defaultCurrencySymbol, r as fetchApi } from "./api-BIVCMSwW.esm.js";
12
+ import { t as transformTableColumns } from "./common-utility-GjUrjpEf.esm.js";
13
+ import { c as appendConditionSafely, ab as getToken, m as defaultCurrencySymbol, r as fetchApi } from "./api-COFUx2RW.esm.js";
14
14
  import images from "../images/index.esm.js";
15
15
  import { MenuItem } from "@mui/material";
16
16
  import { useTranslation } from "react-i18next";
@@ -18,7 +18,7 @@ import { enqueueSnackbar } from "notistack";
18
18
  import { t as templateRoutes } from "./common-CaomnEjX.esm.js";
19
19
  import { useNavigate } from "react-router-dom";
20
20
  import { h as getV1Subjects } from "./api-DBmWILBN.esm.js";
21
- import { T as TemplateModal } from "./template-modal-B2VgotrF.esm.js";
21
+ import { T as TemplateModal } from "./template-modal-Cyj0AUks.esm.js";
22
22
  import { C as CompanySelectionModal } from "./company-selection-modal-Dn2L_skh.esm.js";
23
23
  /* empty css */
24
24
  const Templates = ({ type, module, modulePath }) => {
@@ -276,4 +276,4 @@ const Templates = ({ type, module, modulePath }) => {
276
276
  export {
277
277
  Templates as T
278
278
  };
279
- //# sourceMappingURL=templates-CCy1eG6A.esm.js.map
279
+ //# sourceMappingURL=templates-BK_pcPtR.esm.js.map