@erpsquad/common 1.11.6 → 1.11.7

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 (615) hide show
  1. package/dist/api-client/index.esm.js +2 -2
  2. package/dist/chunks/{DynamicDependentField-C0XXmMlG.esm.js → DynamicDependentField-DOGY6cA_.esm.js} +2 -2
  3. package/dist/chunks/{DynamicDependentField-C0XXmMlG.esm.js.map → DynamicDependentField-DOGY6cA_.esm.js.map} +1 -1
  4. package/dist/chunks/{DynamicDependentField-CQIfDDqc.js → DynamicDependentField-GTIwrPfP.js} +2 -2
  5. package/dist/chunks/{DynamicDependentField-CQIfDDqc.js.map → DynamicDependentField-GTIwrPfP.js.map} +1 -1
  6. package/dist/chunks/{ERPUIProvider-I4j_X_SD.esm.js → ERPUIProvider-Dz0s77BR.esm.js} +3 -3
  7. package/dist/chunks/{ERPUIProvider-I4j_X_SD.esm.js.map → ERPUIProvider-Dz0s77BR.esm.js.map} +1 -1
  8. package/dist/chunks/EditorSection-BLGcgQFm.esm.js +849 -0
  9. package/dist/chunks/EditorSection-BLGcgQFm.esm.js.map +1 -0
  10. package/dist/chunks/EditorSection-D6yaBfjP.js +848 -0
  11. package/dist/chunks/EditorSection-D6yaBfjP.js.map +1 -0
  12. package/dist/chunks/{FORMS-B40NtUdz.esm.js → FORMS-CR_DlD1m.esm.js} +8 -8
  13. package/dist/chunks/{FORMS-B40NtUdz.esm.js.map → FORMS-CR_DlD1m.esm.js.map} +1 -1
  14. package/dist/chunks/{FORMS-K5QYZYJc.js → FORMS-EouVYay1.js} +5 -5
  15. package/dist/chunks/{FORMS-K5QYZYJc.js.map → FORMS-EouVYay1.js.map} +1 -1
  16. package/dist/chunks/{FlexibleReduxExample-lJRAIjmS.esm.js → FlexibleReduxExample-B2e7Wa_S.esm.js} +4 -4
  17. package/dist/chunks/{FlexibleReduxExample-lJRAIjmS.esm.js.map → FlexibleReduxExample-B2e7Wa_S.esm.js.map} +1 -1
  18. package/dist/chunks/{FlexibleReduxExample-WGpR03V0.js → FlexibleReduxExample-CMUylyy1.js} +3 -3
  19. package/dist/chunks/{FlexibleReduxExample-WGpR03V0.js.map → FlexibleReduxExample-CMUylyy1.js.map} +1 -1
  20. package/dist/chunks/SectionFlowEditor-Dp-mjWT9.esm.js +12543 -0
  21. package/dist/chunks/SectionFlowEditor-Dp-mjWT9.esm.js.map +1 -0
  22. package/dist/chunks/SectionFlowEditor-Dz1SuCm2.js +12542 -0
  23. package/dist/chunks/SectionFlowEditor-Dz1SuCm2.js.map +1 -0
  24. package/dist/chunks/{action-bar-C7Alva4T.esm.js → action-bar-Ci6RlMBM.esm.js} +6 -6
  25. package/dist/chunks/{action-bar-C7Alva4T.esm.js.map → action-bar-Ci6RlMBM.esm.js.map} +1 -1
  26. package/dist/chunks/{action-bar-DdtpxWNk.js → action-bar-jLqQTqU7.js} +3 -3
  27. package/dist/chunks/{action-bar-DdtpxWNk.js.map → action-bar-jLqQTqU7.js.map} +1 -1
  28. package/dist/chunks/{actionCreator-CpePNxQM.esm.js → actionCreator-B6lXR_k1.esm.js} +2 -2
  29. package/dist/chunks/{actionCreator-CpePNxQM.esm.js.map → actionCreator-B6lXR_k1.esm.js.map} +1 -1
  30. package/dist/chunks/{actionCreator-Cl8vPLVO.esm.js → actionCreator-D3uwEAua.esm.js} +3 -3
  31. package/dist/chunks/{actionCreator-Cl8vPLVO.esm.js.map → actionCreator-D3uwEAua.esm.js.map} +1 -1
  32. package/dist/chunks/{actionCreator-CL5ICuqZ.esm.js → actionCreator-DIdMRO9L.esm.js} +2 -2
  33. package/dist/chunks/{actionCreator-CL5ICuqZ.esm.js.map → actionCreator-DIdMRO9L.esm.js.map} +1 -1
  34. package/dist/chunks/{actionCreator-Cb3NxILP.esm.js → actionCreator-DKYufGAZ.esm.js} +2 -2
  35. package/dist/chunks/{actionCreator-Cb3NxILP.esm.js.map → actionCreator-DKYufGAZ.esm.js.map} +1 -1
  36. package/dist/chunks/{actionCreator-Dar9Z8_d.esm.js → actionCreator-DcdyGsIX.esm.js} +3 -3
  37. package/dist/chunks/{actionCreator-Dar9Z8_d.esm.js.map → actionCreator-DcdyGsIX.esm.js.map} +1 -1
  38. package/dist/chunks/add-template-CUPbU0z7.js +10 -0
  39. package/dist/chunks/add-template-CUPbU0z7.js.map +1 -0
  40. package/dist/chunks/add-template-CxvhzFMF.esm.js +11 -0
  41. package/dist/chunks/add-template-CxvhzFMF.esm.js.map +1 -0
  42. package/dist/chunks/{address-modal-CYhiC7ui.js → address-modal-DFd5sQtR.js} +2 -2
  43. package/dist/chunks/{address-modal-CYhiC7ui.js.map → address-modal-DFd5sQtR.js.map} +1 -1
  44. package/dist/chunks/{address-modal-CkDBjnye.esm.js → address-modal-DYGLjrqd.esm.js} +2 -2
  45. package/dist/chunks/{address-modal-CkDBjnye.esm.js.map → address-modal-DYGLjrqd.esm.js.map} +1 -1
  46. package/dist/chunks/{ai-summary-SKK5KN2s.esm.js → ai-summary-x2t8BZCx.esm.js} +2 -2
  47. package/dist/chunks/{ai-summary-SKK5KN2s.esm.js.map → ai-summary-x2t8BZCx.esm.js.map} +1 -1
  48. package/dist/chunks/{api-BIVCMSwW.esm.js → api-8jutPLh0.esm.js} +3 -3
  49. package/dist/chunks/{api-BIVCMSwW.esm.js.map → api-8jutPLh0.esm.js.map} +1 -1
  50. package/dist/chunks/{api-DBmWILBN.esm.js → api-yLpQ3k5s.esm.js} +9 -9
  51. package/dist/chunks/{api-DBmWILBN.esm.js.map → api-yLpQ3k5s.esm.js.map} +1 -1
  52. package/dist/chunks/{app-switcher-D-Bvz9uO.esm.js → app-switcher-B6eapuGG.esm.js} +2 -2
  53. package/dist/chunks/{app-switcher-D-Bvz9uO.esm.js.map → app-switcher-B6eapuGG.esm.js.map} +1 -1
  54. package/dist/chunks/{app-switcher-CyEQmYAN.js → app-switcher-VhH9z0Rd.js} +2 -2
  55. package/dist/chunks/{app-switcher-CyEQmYAN.js.map → app-switcher-VhH9z0Rd.js.map} +1 -1
  56. package/dist/chunks/{appbar-BdTp1k68.esm.js → appbar-B8EgZsrn.esm.js} +2 -2
  57. package/dist/chunks/{appbar-BdTp1k68.esm.js.map → appbar-B8EgZsrn.esm.js.map} +1 -1
  58. package/dist/chunks/{appbar-DyIptRTa.js → appbar-Is_7kfVo.js} +2 -2
  59. package/dist/chunks/{appbar-DyIptRTa.js.map → appbar-Is_7kfVo.js.map} +1 -1
  60. package/dist/chunks/{approval-wrapper-BTtmXMlk.esm.js → approval-wrapper-_kYfACQp.esm.js} +2 -2
  61. package/dist/chunks/{approval-wrapper-BTtmXMlk.esm.js.map → approval-wrapper-_kYfACQp.esm.js.map} +1 -1
  62. package/dist/chunks/{chat-bot-Dz8cR_uw.esm.js → chat-bot-DO3vAGxA.esm.js} +2 -2
  63. package/dist/chunks/{chat-bot-Dz8cR_uw.esm.js.map → chat-bot-DO3vAGxA.esm.js.map} +1 -1
  64. package/dist/chunks/common-BgXEAs_y.esm.js +851 -0
  65. package/dist/chunks/common-BgXEAs_y.esm.js.map +1 -0
  66. package/dist/chunks/{common-yORBIVv-.esm.js → common-Cl5oGXmX.esm.js} +2 -2
  67. package/dist/chunks/{common-yORBIVv-.esm.js.map → common-Cl5oGXmX.esm.js.map} +1 -1
  68. package/dist/chunks/common-D6T6NGWY.js +850 -0
  69. package/dist/chunks/common-D6T6NGWY.js.map +1 -0
  70. package/dist/chunks/{common-CS5L0Ld_.js → common-PH2uWkqL.js} +2 -2
  71. package/dist/chunks/{common-CS5L0Ld_.js.map → common-PH2uWkqL.js.map} +1 -1
  72. package/dist/chunks/common-utility-CA_Upser.js.map +1 -1
  73. package/dist/chunks/{common-utility-DGpbsf7S.esm.js → common-utility-CS_sNoAC.esm.js} +2 -2
  74. package/dist/chunks/common-utility-CS_sNoAC.esm.js.map +1 -0
  75. package/dist/chunks/company-selection-modal-B7jFVWWs.js.map +1 -1
  76. package/dist/chunks/company-selection-modal-Dn2L_skh.esm.js.map +1 -1
  77. package/dist/chunks/{constant-Bwg2s_Sn.esm.js → constant-BXPcBhJN.esm.js} +35 -5
  78. package/dist/chunks/constant-BXPcBhJN.esm.js.map +1 -0
  79. package/dist/chunks/{constant-ZYAN_teD.js → constant-BXeJD4Af.js} +35 -5
  80. package/dist/chunks/constant-BXeJD4Af.js.map +1 -0
  81. package/dist/chunks/{constants-nmkxkzps.esm.js → constants-BrmMAwu2.esm.js} +2 -2
  82. package/dist/chunks/{constants-nmkxkzps.esm.js.map → constants-BrmMAwu2.esm.js.map} +1 -1
  83. package/dist/chunks/{constants-06kIVUBw.js → constants-D_xuLHSu.js} +2 -2
  84. package/dist/chunks/{constants-06kIVUBw.js.map → constants-D_xuLHSu.js.map} +1 -1
  85. package/dist/chunks/{custom-editor-6-xqhKz6.esm.js → custom-editor-C-B5BK-H.esm.js} +3 -3
  86. package/dist/chunks/{custom-editor-6-xqhKz6.esm.js.map → custom-editor-C-B5BK-H.esm.js.map} +1 -1
  87. package/dist/chunks/{custom-form-DD7YOHMF.esm.js → custom-form-DNUpk0nq.esm.js} +7 -7
  88. package/dist/chunks/{custom-form-DD7YOHMF.esm.js.map → custom-form-DNUpk0nq.esm.js.map} +1 -1
  89. package/dist/chunks/{custom-form-CFU7NEVb.js → custom-form-T4yc_sE_.js} +4 -4
  90. package/dist/chunks/{custom-form-CFU7NEVb.js.map → custom-form-T4yc_sE_.js.map} +1 -1
  91. package/dist/chunks/{dashboard-B5qcT2Dt.esm.js → dashboard-B4xzJ1Xc.esm.js} +4 -4
  92. package/dist/chunks/{dashboard-B5qcT2Dt.esm.js.map → dashboard-B4xzJ1Xc.esm.js.map} +1 -1
  93. package/dist/chunks/{dashboard-Dzts5-X6.js → dashboard-eMHQayU_.js} +3 -3
  94. package/dist/chunks/{dashboard-Dzts5-X6.js.map → dashboard-eMHQayU_.js.map} +1 -1
  95. package/dist/chunks/default-data-6IxhqPTP.esm.js.map +1 -1
  96. package/dist/chunks/default-data-yreKVx_z.js.map +1 -1
  97. package/dist/chunks/{dynamic-report-tKn-KqAd.esm.js → dynamic-report-CMguvXj2.esm.js} +4 -4
  98. package/dist/chunks/{dynamic-report-tKn-KqAd.esm.js.map → dynamic-report-CMguvXj2.esm.js.map} +1 -1
  99. package/dist/chunks/{dynamic-rows-CTGETfcP.esm.js → dynamic-rows-CmAE9nbA.esm.js} +2 -2
  100. package/dist/chunks/{dynamic-rows-CTGETfcP.esm.js.map → dynamic-rows-CmAE9nbA.esm.js.map} +1 -1
  101. package/dist/chunks/{dynamic-text-editor-CPvlGcLK.esm.js → dynamic-text-editor-CSWdR1lK.esm.js} +2 -2
  102. package/dist/chunks/{dynamic-text-editor-CPvlGcLK.esm.js.map → dynamic-text-editor-CSWdR1lK.esm.js.map} +1 -1
  103. package/dist/chunks/edit-section-modal-Br2ITvLk.js.map +1 -1
  104. package/dist/chunks/{edit-section-modal-BW-aZmUv.esm.js → edit-section-modal-HihKbN6K.esm.js} +2 -2
  105. package/dist/chunks/edit-section-modal-HihKbN6K.esm.js.map +1 -0
  106. package/dist/chunks/{filter-COXKBEER.esm.js → filter-D9BHP_qc.esm.js} +5 -5
  107. package/dist/chunks/{filter-COXKBEER.esm.js.map → filter-D9BHP_qc.esm.js.map} +1 -1
  108. package/dist/chunks/{filter-Cr_OSIpb.js → filter-DtCrOG6W.js} +3 -3
  109. package/dist/chunks/{filter-Cr_OSIpb.js.map → filter-DtCrOG6W.js.map} +1 -1
  110. package/dist/chunks/{footer-m3_dlNl8.esm.js → footer-Bv5NOAf9.esm.js} +2 -2
  111. package/dist/chunks/{footer-m3_dlNl8.esm.js.map → footer-Bv5NOAf9.esm.js.map} +1 -1
  112. package/dist/chunks/{footer-CD3kMRdS.js → footer-DioOh69g.js} +2 -2
  113. package/dist/chunks/{footer-CD3kMRdS.js.map → footer-DioOh69g.js.map} +1 -1
  114. package/dist/chunks/{form-fields-yE9kwjvb.js → form-fields-BYDhbAgB.js} +2 -2
  115. package/dist/chunks/{form-fields-yE9kwjvb.js.map → form-fields-BYDhbAgB.js.map} +1 -1
  116. package/dist/chunks/{form-fields-hMMnB_wE.esm.js → form-fields-Di-p9XKG.esm.js} +2 -2
  117. package/dist/chunks/{form-fields-hMMnB_wE.esm.js.map → form-fields-Di-p9XKG.esm.js.map} +1 -1
  118. package/dist/chunks/{form-parser-m4fnw38a.js → form-parser-BnMdMDSb.js} +2 -2
  119. package/dist/chunks/{form-parser-m4fnw38a.js.map → form-parser-BnMdMDSb.js.map} +1 -1
  120. package/dist/chunks/{form-parser-DbnSn5eY.esm.js → form-parser-ZQpEVrzG.esm.js} +2 -2
  121. package/dist/chunks/{form-parser-DbnSn5eY.esm.js.map → form-parser-ZQpEVrzG.esm.js.map} +1 -1
  122. package/dist/chunks/{form-section-TMjdOVeW.esm.js → form-section-BJ7Iqb9R.esm.js} +5 -5
  123. package/dist/chunks/{form-section-TMjdOVeW.esm.js.map → form-section-BJ7Iqb9R.esm.js.map} +1 -1
  124. package/dist/chunks/{form-section-CPIyMdk2.js → form-section-CFeWD-tF.js} +5 -5
  125. package/dist/chunks/{form-section-CPIyMdk2.js.map → form-section-CFeWD-tF.js.map} +1 -1
  126. package/dist/chunks/{fullScreen-D-isf0wv.esm.js → fullScreen-Cz3FIdU4.esm.js} +3 -3
  127. package/dist/chunks/{fullScreen-D-isf0wv.esm.js.map → fullScreen-Cz3FIdU4.esm.js.map} +1 -1
  128. package/dist/chunks/{fullScreen-B5iqC1y0.js → fullScreen-h0JqBN4O.js} +2 -2
  129. package/dist/chunks/{fullScreen-B5iqC1y0.js.map → fullScreen-h0JqBN4O.js.map} +1 -1
  130. package/dist/chunks/{global-search-BjKPmzsQ.js → global-search-BTV5iL6-.js} +2 -2
  131. package/dist/chunks/{global-search-BjKPmzsQ.js.map → global-search-BTV5iL6-.js.map} +1 -1
  132. package/dist/chunks/{global-search-BOkxXiZ0.esm.js → global-search-CGmupYFQ.esm.js} +3 -3
  133. package/dist/chunks/{global-search-BOkxXiZ0.esm.js.map → global-search-CGmupYFQ.esm.js.map} +1 -1
  134. package/dist/chunks/{grid-view-Bo86x7YL.esm.js → grid-view-BMfleQMC.esm.js} +2 -2
  135. package/dist/chunks/{grid-view-Bo86x7YL.esm.js.map → grid-view-BMfleQMC.esm.js.map} +1 -1
  136. package/dist/chunks/{header-D_pPOjdz.esm.js → header-BnVzqpGs.esm.js} +6 -6
  137. package/dist/chunks/{header-D_pPOjdz.esm.js.map → header-BnVzqpGs.esm.js.map} +1 -1
  138. package/dist/chunks/{header-enhanced-OiKzLG4i.esm.js → header-enhanced-CkROCaOF.esm.js} +3 -3
  139. package/dist/chunks/{header-enhanced-OiKzLG4i.esm.js.map → header-enhanced-CkROCaOF.esm.js.map} +1 -1
  140. package/dist/chunks/{header-enhanced-DCDMljaN.js → header-enhanced-Dxdetx0I.js} +3 -3
  141. package/dist/chunks/{header-enhanced-DCDMljaN.js.map → header-enhanced-Dxdetx0I.js.map} +1 -1
  142. package/dist/chunks/{header-DQ_e75rt.js → header-jWPMgcy6.js} +6 -6
  143. package/dist/chunks/{header-DQ_e75rt.js.map → header-jWPMgcy6.js.map} +1 -1
  144. package/dist/chunks/{index-ALqg8b5U.esm.js → index-BCmGHdos.esm.js} +2 -2
  145. package/dist/chunks/{index-ALqg8b5U.esm.js.map → index-BCmGHdos.esm.js.map} +1 -1
  146. package/dist/chunks/{inline-edit-fields-atDP84QL.js → inline-edit-fields-Cd_qUOjU.js} +2 -2
  147. package/dist/chunks/{inline-edit-fields-atDP84QL.js.map → inline-edit-fields-Cd_qUOjU.js.map} +1 -1
  148. package/dist/chunks/{inline-edit-fields-BYhRpPcH.esm.js → inline-edit-fields-VOIx3qmC.esm.js} +2 -2
  149. package/dist/chunks/{inline-edit-fields-BYhRpPcH.esm.js.map → inline-edit-fields-VOIx3qmC.esm.js.map} +1 -1
  150. package/dist/chunks/{inventory-reports-title-bar-Bog2i0dr.js → inventory-reports-title-bar-BfUMM54c.js} +2 -2
  151. package/dist/chunks/{inventory-reports-title-bar-Bog2i0dr.js.map → inventory-reports-title-bar-BfUMM54c.js.map} +1 -1
  152. package/dist/chunks/{inventory-reports-title-bar-CP8FzW6A.esm.js → inventory-reports-title-bar-CZZFFqDc.esm.js} +3 -3
  153. package/dist/chunks/{inventory-reports-title-bar-CP8FzW6A.esm.js.map → inventory-reports-title-bar-CZZFFqDc.esm.js.map} +1 -1
  154. package/dist/chunks/{item-response-details-SHSD-nBh.esm.js → item-response-details-BTHf6ZvN.esm.js} +4 -4
  155. package/dist/chunks/{item-response-details-SHSD-nBh.esm.js.map → item-response-details-BTHf6ZvN.esm.js.map} +1 -1
  156. package/dist/chunks/{item-response-details-DsGQ7Dlc.js → item-response-details-BheThTTK.js} +2 -2
  157. package/dist/chunks/{item-response-details-DsGQ7Dlc.js.map → item-response-details-BheThTTK.js.map} +1 -1
  158. package/dist/chunks/{listing-DIuzQrzb.js → listing-Dr_1DDBr.js} +4 -4
  159. package/dist/chunks/{listing-DIuzQrzb.js.map → listing-Dr_1DDBr.js.map} +1 -1
  160. package/dist/chunks/{listing-C0Yb6MVq.esm.js → listing-ELQeM6S3.esm.js} +4 -4
  161. package/dist/chunks/{listing-C0Yb6MVq.esm.js.map → listing-ELQeM6S3.esm.js.map} +1 -1
  162. package/dist/chunks/{location-select-g5uczAUF.js → location-select-CLyRUilk.js} +2 -2
  163. package/dist/chunks/{location-select-g5uczAUF.js.map → location-select-CLyRUilk.js.map} +1 -1
  164. package/dist/chunks/{location-select-CFa00fy4.esm.js → location-select-z1C88kCy.esm.js} +2 -2
  165. package/dist/chunks/{location-select-CFa00fy4.esm.js.map → location-select-z1C88kCy.esm.js.map} +1 -1
  166. package/dist/chunks/{material-editable-table-BGLjrTzT.js → material-editable-table-DFGB0q-s.js} +3 -3
  167. package/dist/chunks/{material-editable-table-BGLjrTzT.js.map → material-editable-table-DFGB0q-s.js.map} +1 -1
  168. package/dist/chunks/{material-editable-table-pAyK7KYf.esm.js → material-editable-table-DyGdqNkX.esm.js} +4 -4
  169. package/dist/chunks/{material-editable-table-pAyK7KYf.esm.js.map → material-editable-table-DyGdqNkX.esm.js.map} +1 -1
  170. package/dist/chunks/{module-reducer-DMxxForv.esm.js → module-reducer-CEv3LZCX.esm.js} +2 -2
  171. package/dist/chunks/{module-reducer-DMxxForv.esm.js.map → module-reducer-CEv3LZCX.esm.js.map} +1 -1
  172. package/dist/chunks/{modules-BZNWOWrz.js → modules-DTRr7zwt.js} +2 -2
  173. package/dist/chunks/{modules-BZNWOWrz.js.map → modules-DTRr7zwt.js.map} +1 -1
  174. package/dist/chunks/{modules-CWV4WSHs.esm.js → modules-enwLrpfQ.esm.js} +2 -2
  175. package/dist/chunks/{modules-CWV4WSHs.esm.js.map → modules-enwLrpfQ.esm.js.map} +1 -1
  176. package/dist/chunks/{notification-menu-D7ASm-K1.js → notification-menu-B00hDUbn.js} +2 -2
  177. package/dist/chunks/{notification-menu-D7ASm-K1.js.map → notification-menu-B00hDUbn.js.map} +1 -1
  178. package/dist/chunks/{notification-menu-XAadkn-e.esm.js → notification-menu-CehCt5fA.esm.js} +4 -4
  179. package/dist/chunks/{notification-menu-XAadkn-e.esm.js.map → notification-menu-CehCt5fA.esm.js.map} +1 -1
  180. package/dist/chunks/{page-action-C07iGjvN.esm.js → page-action-RqVevciV.esm.js} +4 -4
  181. package/dist/chunks/{page-action-C07iGjvN.esm.js.map → page-action-RqVevciV.esm.js.map} +1 -1
  182. package/dist/chunks/{page-action-BPzaL2KJ.js → page-action-TMFOytDw.js} +2 -2
  183. package/dist/chunks/{page-action-BPzaL2KJ.js.map → page-action-TMFOytDw.js.map} +1 -1
  184. package/dist/chunks/{page-navigator-8gZpp9_P.esm.js → page-navigator-CuIJ0KGf.esm.js} +2 -2
  185. package/dist/chunks/{page-navigator-8gZpp9_P.esm.js.map → page-navigator-CuIJ0KGf.esm.js.map} +1 -1
  186. package/dist/chunks/{page-navigator-Cgbh3tTG.js → page-navigator-DdRsmtLy.js} +2 -2
  187. package/dist/chunks/{page-navigator-Cgbh3tTG.js.map → page-navigator-DdRsmtLy.js.map} +1 -1
  188. package/dist/chunks/{page-view-DJ6HS_dV.js → page-view-CvfqzV03.js} +3 -3
  189. package/dist/chunks/{page-view-DJ6HS_dV.js.map → page-view-CvfqzV03.js.map} +1 -1
  190. package/dist/chunks/{page-view-CokUNMBn.esm.js → page-view-Daz-OKd_.esm.js} +3 -3
  191. package/dist/chunks/{page-view-CokUNMBn.esm.js.map → page-view-Daz-OKd_.esm.js.map} +1 -1
  192. package/dist/chunks/{pathname.rental-qsAe3XFd.esm.js → pathname.rental-CqHO_l_D.esm.js} +76 -81
  193. package/dist/chunks/{pathname.rental-qsAe3XFd.esm.js.map → pathname.rental-CqHO_l_D.esm.js.map} +1 -1
  194. package/dist/chunks/{pathname.rental-DgH4LoG7.js → pathname.rental-CwK6JuID.js} +2 -7
  195. package/dist/chunks/{pathname.rental-DgH4LoG7.js.map → pathname.rental-CwK6JuID.js.map} +1 -1
  196. package/dist/chunks/{quick-approval-modal-CPWs8htH.esm.js → quick-approval-modal-B-jvkgue.esm.js} +2 -2
  197. package/dist/chunks/{quick-approval-modal-CPWs8htH.esm.js.map → quick-approval-modal-B-jvkgue.esm.js.map} +1 -1
  198. package/dist/chunks/{reducer-CdJ6znKF.esm.js → reducer-BMkh_0Py.esm.js} +3 -3
  199. package/dist/chunks/{reducer-CdJ6znKF.esm.js.map → reducer-BMkh_0Py.esm.js.map} +1 -1
  200. package/dist/chunks/{reducer-3tSO6RW6.esm.js → reducer-BOwyP0QZ.esm.js} +3 -3
  201. package/dist/chunks/{reducer-3tSO6RW6.esm.js.map → reducer-BOwyP0QZ.esm.js.map} +1 -1
  202. package/dist/chunks/{reducer-IsgN83rP.esm.js → reducer-BTfG9J4W.esm.js} +2 -2
  203. package/dist/chunks/{reducer-IsgN83rP.esm.js.map → reducer-BTfG9J4W.esm.js.map} +1 -1
  204. package/dist/chunks/{reducer-yyZtsg1A.esm.js → reducer-BWiX5vxL.esm.js} +2 -2
  205. package/dist/chunks/{reducer-yyZtsg1A.esm.js.map → reducer-BWiX5vxL.esm.js.map} +1 -1
  206. package/dist/chunks/{reducer-sgaK2vfW.esm.js → reducer-CD1VDqeT.esm.js} +2 -2
  207. package/dist/chunks/{reducer-sgaK2vfW.esm.js.map → reducer-CD1VDqeT.esm.js.map} +1 -1
  208. package/dist/chunks/{reports-title-bar-Kz6JjqsY.js → reports-title-bar-B1_IweEc.js} +2 -2
  209. package/dist/chunks/{reports-title-bar-Kz6JjqsY.js.map → reports-title-bar-B1_IweEc.js.map} +1 -1
  210. package/dist/chunks/{reports-title-bar-Cay4E8SQ.esm.js → reports-title-bar-Kl8XQe-K.esm.js} +4 -4
  211. package/dist/chunks/{reports-title-bar-Cay4E8SQ.esm.js.map → reports-title-bar-Kl8XQe-K.esm.js.map} +1 -1
  212. package/dist/chunks/{route-page-map-Dn-SAbdf.js → route-page-map-CzFUh-SC.js} +3 -60
  213. package/dist/chunks/{route-page-map-Dn-SAbdf.js.map → route-page-map-CzFUh-SC.js.map} +1 -1
  214. package/dist/chunks/{route-page-map-DkWoisiB.esm.js → route-page-map-D6-7jBQT.esm.js} +76 -133
  215. package/dist/chunks/{route-page-map-DkWoisiB.esm.js.map → route-page-map-D6-7jBQT.esm.js.map} +1 -1
  216. package/dist/chunks/{routes-Be8qxaVS.esm.js → routes-D9y_XQRu.esm.js} +4 -4
  217. package/dist/chunks/{routes-Be8qxaVS.esm.js.map → routes-D9y_XQRu.esm.js.map} +1 -1
  218. package/dist/chunks/{routes-Bi8lChPT.js → routes-Dsumzjw0.js} +4 -4
  219. package/dist/chunks/{routes-Bi8lChPT.js.map → routes-Dsumzjw0.js.map} +1 -1
  220. package/dist/chunks/{schedule-report-B4ZfEuiU.js → schedule-report-BwmZ5jea.js} +4 -4
  221. package/dist/chunks/{schedule-report-B4ZfEuiU.js.map → schedule-report-BwmZ5jea.js.map} +1 -1
  222. package/dist/chunks/{schedule-report-CLXjjfjc.esm.js → schedule-report-CJXHVZ68.esm.js} +6 -6
  223. package/dist/chunks/{schedule-report-CLXjjfjc.esm.js.map → schedule-report-CJXHVZ68.esm.js.map} +1 -1
  224. package/dist/chunks/{schedule-report-modal-CB3G9H7x.esm.js → schedule-report-modal-D8Y-TZ4u.esm.js} +3 -3
  225. package/dist/chunks/{schedule-report-modal-CB3G9H7x.esm.js.map → schedule-report-modal-D8Y-TZ4u.esm.js.map} +1 -1
  226. package/dist/chunks/{schedule-report-modal-iwoDI-sg.js → schedule-report-modal-iNnWP9s4.js} +2 -2
  227. package/dist/chunks/{schedule-report-modal-iwoDI-sg.js.map → schedule-report-modal-iNnWP9s4.js.map} +1 -1
  228. package/dist/chunks/{searchable-select-0F6E4XAr.esm.js → searchable-select-BQtcqBKV.esm.js} +6 -6
  229. package/dist/chunks/{searchable-select-0F6E4XAr.esm.js.map → searchable-select-BQtcqBKV.esm.js.map} +1 -1
  230. package/dist/chunks/{searchable-select-_DCkITfk.js → searchable-select-DVUCWWti.js} +2 -2
  231. package/dist/chunks/{searchable-select-_DCkITfk.js.map → searchable-select-DVUCWWti.js.map} +1 -1
  232. package/dist/chunks/{share-modal-BaEyZs2h.esm.js → share-modal-BOyLBawK.esm.js} +3 -3
  233. package/dist/chunks/{share-modal-BaEyZs2h.esm.js.map → share-modal-BOyLBawK.esm.js.map} +1 -1
  234. package/dist/chunks/{share-modal-DrXvh-fV.js → share-modal-CobK7BN7.js} +2 -2
  235. package/dist/chunks/{share-modal-DrXvh-fV.js.map → share-modal-CobK7BN7.js.map} +1 -1
  236. package/dist/chunks/{share-modal-enhanced-DnEdDBmu.esm.js → share-modal-enhanced-CTp-tQw8.esm.js} +2 -2
  237. package/dist/chunks/{share-modal-enhanced-DnEdDBmu.esm.js.map → share-modal-enhanced-CTp-tQw8.esm.js.map} +1 -1
  238. package/dist/chunks/{share-modal-enhanced-BTr0zRhF.js → share-modal-enhanced-DVarD-jt.js} +2 -2
  239. package/dist/chunks/{share-modal-enhanced-BTr0zRhF.js.map → share-modal-enhanced-DVarD-jt.js.map} +1 -1
  240. package/dist/chunks/{sidebarScreen-3iZYCAMn.js → sidebarScreen-K-dlM6NA.js} +2 -2
  241. package/dist/chunks/{sidebarScreen-3iZYCAMn.js.map → sidebarScreen-K-dlM6NA.js.map} +1 -1
  242. package/dist/chunks/{sidebarScreen-CYUn8OsB.esm.js → sidebarScreen-lR6rw8bW.esm.js} +4 -4
  243. package/dist/chunks/{sidebarScreen-CYUn8OsB.esm.js.map → sidebarScreen-lR6rw8bW.esm.js.map} +1 -1
  244. package/dist/chunks/{store-BL5VFPie.esm.js → store-DJh8C3Vv.esm.js} +6 -6
  245. package/dist/chunks/{store-BL5VFPie.esm.js.map → store-DJh8C3Vv.esm.js.map} +1 -1
  246. package/dist/chunks/{table-DWx7x8zw.js → table-Bpt6ggr3.js} +2 -2
  247. package/dist/chunks/{table-DWx7x8zw.js.map → table-Bpt6ggr3.js.map} +1 -1
  248. package/dist/chunks/{table-gxAlAeTq.esm.js → table-DI3MyTNm.esm.js} +3 -3
  249. package/dist/chunks/{table-gxAlAeTq.esm.js.map → table-DI3MyTNm.esm.js.map} +1 -1
  250. package/dist/chunks/{table-form-DsTwCUcs.esm.js → table-form-8_f3FwhX.esm.js} +2 -2
  251. package/dist/chunks/{table-form-DsTwCUcs.esm.js.map → table-form-8_f3FwhX.esm.js.map} +1 -1
  252. package/dist/chunks/{template-editor-router-BRxF8Dj_.js → template-editor-router-DugWbCh0.js} +2 -2
  253. package/dist/chunks/{template-editor-router-BRxF8Dj_.js.map → template-editor-router-DugWbCh0.js.map} +1 -1
  254. package/dist/chunks/{template-editor-router-BV5FrwJm.esm.js → template-editor-router-uzghBOap.esm.js} +2 -2
  255. package/dist/chunks/{template-editor-router-BV5FrwJm.esm.js.map → template-editor-router-uzghBOap.esm.js.map} +1 -1
  256. package/dist/chunks/{template-modal-B2VgotrF.esm.js → template-modal-D7aLacan.esm.js} +7 -6
  257. package/dist/chunks/template-modal-D7aLacan.esm.js.map +1 -0
  258. package/dist/chunks/{template-modal-X-iSmlki.js → template-modal-Df7gF4QI.js} +5 -4
  259. package/dist/chunks/template-modal-Df7gF4QI.js.map +1 -0
  260. package/dist/chunks/{template-name-modal-CeqxIE2r.js → template-name-modal-ClreVUaz.js} +12 -5
  261. package/dist/chunks/template-name-modal-ClreVUaz.js.map +1 -0
  262. package/dist/chunks/{template-name-modal-Dctn8t3t.esm.js → template-name-modal-Dwe7U72p.esm.js} +12 -5
  263. package/dist/chunks/template-name-modal-Dwe7U72p.esm.js.map +1 -0
  264. package/dist/chunks/{templates-DxvU4PQY.esm.js → templates-9ZMHwRR6.esm.js} +9 -9
  265. package/dist/chunks/templates-9ZMHwRR6.esm.js.map +1 -0
  266. package/dist/chunks/{templates-BY9HF32G.js → templates-DCXbeOtH.js} +6 -6
  267. package/dist/chunks/templates-DCXbeOtH.js.map +1 -0
  268. package/dist/chunks/{text-measurement-BCjauPbB.esm.js → text-measurement-DMVkqP6b.esm.js} +2 -2
  269. package/dist/chunks/{text-measurement-BCjauPbB.esm.js.map → text-measurement-DMVkqP6b.esm.js.map} +1 -1
  270. package/dist/chunks/{translations-BrwQcVN3.esm.js → translations-JcE6qyDJ.esm.js} +3 -3
  271. package/dist/chunks/{translations-BrwQcVN3.esm.js.map → translations-JcE6qyDJ.esm.js.map} +1 -1
  272. package/dist/chunks/{uom-field-wrapper-DXZgzOYB.js → uom-field-wrapper-CSqeiVPY.js} +2 -2
  273. package/dist/chunks/{uom-field-wrapper-DXZgzOYB.js.map → uom-field-wrapper-CSqeiVPY.js.map} +1 -1
  274. package/dist/chunks/{uom-field-wrapper-CTbEc-MB.esm.js → uom-field-wrapper-CWTsSsSi.esm.js} +2 -2
  275. package/dist/chunks/{uom-field-wrapper-CTbEc-MB.esm.js.map → uom-field-wrapper-CWTsSsSi.esm.js.map} +1 -1
  276. package/dist/chunks/{upload-excel-BZPP13tP.esm.js → upload-excel-CkEQqZW2.esm.js} +2 -2
  277. package/dist/chunks/{upload-excel-BZPP13tP.esm.js.map → upload-excel-CkEQqZW2.esm.js.map} +1 -1
  278. package/dist/chunks/{use-translations-BzykVZOP.esm.js → use-translations-BqBPN1DM.esm.js} +3 -3
  279. package/dist/chunks/{use-translations-BzykVZOP.esm.js.map → use-translations-BqBPN1DM.esm.js.map} +1 -1
  280. package/dist/chunks/{use-translations-CNI_xsIo.js → use-translations-Cn3b4Kqh.js} +2 -2
  281. package/dist/chunks/{use-translations-CNI_xsIo.js.map → use-translations-Cn3b4Kqh.js.map} +1 -1
  282. package/dist/chunks/{useAccountSetting-vAqgEiJB.esm.js → useAccountSetting-DsU5zsjb.esm.js} +2 -2
  283. package/dist/chunks/{useAccountSetting-vAqgEiJB.esm.js.map → useAccountSetting-DsU5zsjb.esm.js.map} +1 -1
  284. package/dist/chunks/{useCheckSkuAndName-Dl24wQO-.esm.js → useCheckSkuAndName-5ua30aZf.esm.js} +2 -2
  285. package/dist/chunks/{useCheckSkuAndName-Dl24wQO-.esm.js.map → useCheckSkuAndName-5ua30aZf.esm.js.map} +1 -1
  286. package/dist/chunks/{useReduxIntegration-DZBfKF7d.esm.js → useReduxIntegration-BlLpfwk6.esm.js} +2 -2
  287. package/dist/chunks/{useReduxIntegration-DZBfKF7d.esm.js.map → useReduxIntegration-BlLpfwk6.esm.js.map} +1 -1
  288. package/dist/chunks/{useUniquenessCheck-bYjnp_0P.esm.js → useUniquenessCheck-CiR2q5bM.esm.js} +2 -2
  289. package/dist/chunks/{useUniquenessCheck-bYjnp_0P.esm.js.map → useUniquenessCheck-CiR2q5bM.esm.js.map} +1 -1
  290. package/dist/chunks/{useVendorAICompare-DZRFDk4i.esm.js → useVendorAICompare-DMJvJJ3Y.esm.js} +2 -2
  291. package/dist/chunks/{useVendorAICompare-DZRFDk4i.esm.js.map → useVendorAICompare-DMJvJJ3Y.esm.js.map} +1 -1
  292. package/dist/chunks/{value-editor-BSS9Ns2T.js → value-editor-Br7X_wEB.js} +2 -2
  293. package/dist/chunks/{value-editor-BSS9Ns2T.js.map → value-editor-Br7X_wEB.js.map} +1 -1
  294. package/dist/chunks/{value-editor-DQ1qgZ2u.esm.js → value-editor-BxFdnUyM.esm.js} +4 -4
  295. package/dist/chunks/{value-editor-DQ1qgZ2u.esm.js.map → value-editor-BxFdnUyM.esm.js.map} +1 -1
  296. package/dist/chunks/{vendor-ai-summary-BA6m2dH9.esm.js → vendor-ai-summary-Cpx90QOx.esm.js} +2 -2
  297. package/dist/chunks/{vendor-ai-summary-BA6m2dH9.esm.js.map → vendor-ai-summary-Cpx90QOx.esm.js.map} +1 -1
  298. package/dist/chunks/{vendor-ai-summary-DWmAaQ_N.js → vendor-ai-summary-zranZkfk.js} +2 -2
  299. package/dist/chunks/{vendor-ai-summary-DWmAaQ_N.js.map → vendor-ai-summary-zranZkfk.js.map} +1 -1
  300. package/dist/components/action-bar/action-bar/index.esm.js +1 -1
  301. package/dist/components/action-bar/action-bar/index.js +1 -1
  302. package/dist/components/action-bar/index.esm.js +1 -1
  303. package/dist/components/action-bar/index.js +1 -1
  304. package/dist/components/address-modal/index.esm.js +1 -1
  305. package/dist/components/address-modal/index.js +1 -1
  306. package/dist/components/ai-summary/ai-summary/index.esm.js +1 -1
  307. package/dist/components/ai-summary/index.esm.js +1 -1
  308. package/dist/components/appbar/appbar/index.esm.js +1 -1
  309. package/dist/components/appbar/appbar/index.js +1 -1
  310. package/dist/components/appbar/index.esm.js +1 -1
  311. package/dist/components/appbar/index.js +1 -1
  312. package/dist/components/approval-wrapper/approval-wrapper/index.esm.js +1 -1
  313. package/dist/components/approval-wrapper/index.esm.js +1 -1
  314. package/dist/components/chat-bot/index.esm.js +1 -1
  315. package/dist/components/custom-forms/FORMS/index.esm.js +1 -1
  316. package/dist/components/custom-forms/FORMS/index.js +1 -1
  317. package/dist/components/custom-forms/grid-view/grid-view/index.esm.js +1 -1
  318. package/dist/components/custom-forms/grid-view/index.esm.js +1 -1
  319. package/dist/components/custom-forms/index.esm.js +2 -2
  320. package/dist/components/custom-forms/index.js +1 -1
  321. package/dist/components/department-add-modal/index.esm.js +1 -1
  322. package/dist/components/department-add-modal/index.js +1 -1
  323. package/dist/components/designation-add-modal/index.esm.js +1 -1
  324. package/dist/components/designation-add-modal/index.js +1 -1
  325. package/dist/components/editor/custom-editor/index.esm.js +1 -1
  326. package/dist/components/editor/index.esm.js +1 -1
  327. package/dist/components/examples/FlexibleReduxExample/index.esm.js +1 -1
  328. package/dist/components/examples/FlexibleReduxExample/index.js +1 -1
  329. package/dist/components/examples/index.esm.js +1 -1
  330. package/dist/components/examples/index.js +1 -1
  331. package/dist/components/filter/components/index.esm.js +1 -1
  332. package/dist/components/filter/components/index.js +1 -1
  333. package/dist/components/filter/components/value-editor/index.esm.js +1 -1
  334. package/dist/components/filter/components/value-editor/index.js +1 -1
  335. package/dist/components/filter/filter/index.esm.js +1 -1
  336. package/dist/components/filter/filter/index.js +1 -1
  337. package/dist/components/filter/index.esm.js +2 -2
  338. package/dist/components/filter/index.js +2 -2
  339. package/dist/components/footer/footer/index.esm.js +1 -1
  340. package/dist/components/footer/footer/index.js +1 -1
  341. package/dist/components/footer/index.esm.js +1 -1
  342. package/dist/components/footer/index.js +1 -1
  343. package/dist/components/form-control/form-builder/form-builder-element/dynamic-dependent-field/index.esm.js +1 -1
  344. package/dist/components/form-control/form-builder/form-builder-element/dynamic-dependent-field/index.js +1 -1
  345. package/dist/components/form-control/form-builder/form-builder-element/dynamic-select/index.esm.js +1 -1
  346. package/dist/components/form-control/form-builder/form-builder-element/dynamic-select/index.js +1 -1
  347. package/dist/components/form-control/form-builder/form-builder-element/dynamic-text-editor/index.esm.js +1 -1
  348. package/dist/components/form-control/form-builder/form-builder-element/fixed-asset-item-add-modal/index.esm.js +1 -1
  349. package/dist/components/form-control/form-builder/form-builder-element/fixed-asset-item-add-modal/index.js +1 -1
  350. package/dist/components/form-control/form-builder/form-builder-element/index.esm.js +4 -4
  351. package/dist/components/form-control/form-builder/form-builder-element/index.js +3 -3
  352. package/dist/components/form-control/form-builder/form-builder-element/location-add-modal/index.esm.js +1 -1
  353. package/dist/components/form-control/form-builder/form-builder-element/location-add-modal/index.js +1 -1
  354. package/dist/components/form-control/form-builder/form-builder-element/select-configuration/index.esm.js +1 -1
  355. package/dist/components/form-control/form-builder/form-builder-element/select-configuration/index.js +1 -1
  356. package/dist/components/form-control/form-builder/form-builder-element/table/index.esm.js +1 -1
  357. package/dist/components/form-control/form-builder/form-builder-element/table/index.js +1 -1
  358. package/dist/components/form-control/form-builder/index.esm.js +4 -4
  359. package/dist/components/form-control/form-builder/index.js +3 -3
  360. package/dist/components/form-control/form-parser/form-parser/index.esm.js +1 -1
  361. package/dist/components/form-control/form-parser/form-parser/index.js +1 -1
  362. package/dist/components/form-control/form-parser/form-section/index.esm.js +1 -1
  363. package/dist/components/form-control/form-parser/form-section/index.js +1 -1
  364. package/dist/components/form-control/form-parser/index.esm.js +2 -2
  365. package/dist/components/form-control/form-parser/index.js +2 -2
  366. package/dist/components/form-control/index.esm.js +6 -6
  367. package/dist/components/form-control/index.js +5 -5
  368. package/dist/components/header/components/app-switcher/index.esm.js +1 -1
  369. package/dist/components/header/components/app-switcher/index.js +1 -1
  370. package/dist/components/header/components/global-search/index.esm.js +1 -1
  371. package/dist/components/header/components/global-search/index.js +1 -1
  372. package/dist/components/header/components/index.esm.js +1 -1
  373. package/dist/components/header/components/index.js +1 -1
  374. package/dist/components/header/components/notification-menu/index.esm.js +1 -1
  375. package/dist/components/header/components/notification-menu/index.js +1 -1
  376. package/dist/components/header/components/notification-menu/notification-menu/index.esm.js +1 -1
  377. package/dist/components/header/components/notification-menu/notification-menu/index.js +1 -1
  378. package/dist/components/header/header/index.esm.js +1 -1
  379. package/dist/components/header/header/index.js +1 -1
  380. package/dist/components/header/header-enhanced/index.esm.js +1 -1
  381. package/dist/components/header/header-enhanced/index.js +1 -1
  382. package/dist/components/header/index.esm.js +5 -5
  383. package/dist/components/header/index.js +3 -3
  384. package/dist/components/header/redux/actionCreator/index.esm.js +1 -1
  385. package/dist/components/header/redux/index.esm.js +2 -2
  386. package/dist/components/header/redux/reducer/index.esm.js +1 -1
  387. package/dist/components/index.esm.js +36 -36
  388. package/dist/components/index.js +26 -26
  389. package/dist/components/inventory-reports-title-bar/index.esm.js +3 -3
  390. package/dist/components/inventory-reports-title-bar/index.js +1 -1
  391. package/dist/components/inventory-reports-title-bar/inventory-reports-title-bar/index.esm.js +1 -1
  392. package/dist/components/inventory-reports-title-bar/inventory-reports-title-bar/index.js +1 -1
  393. package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.esm.js +1 -1
  394. package/dist/components/inventory-reports-title-bar/redux/index.esm.js +2 -2
  395. package/dist/components/inventory-reports-title-bar/redux/reducer/index.esm.js +1 -1
  396. package/dist/components/listing/index.esm.js +1 -1
  397. package/dist/components/listing/index.js +1 -1
  398. package/dist/components/listing/listing/index.esm.js +1 -1
  399. package/dist/components/listing/listing/index.js +1 -1
  400. package/dist/components/location-select/index.esm.js +1 -1
  401. package/dist/components/location-select/index.js +1 -1
  402. package/dist/components/material-editable-table/components/index.esm.js +1 -1
  403. package/dist/components/material-editable-table/components/index.js +1 -1
  404. package/dist/components/material-editable-table/components/inline-edit-fields/index.esm.js +1 -1
  405. package/dist/components/material-editable-table/components/inline-edit-fields/index.js +1 -1
  406. package/dist/components/material-editable-table/index.esm.js +2 -2
  407. package/dist/components/material-editable-table/index.js +2 -2
  408. package/dist/components/material-editable-table/material-editable-table/index.esm.js +1 -1
  409. package/dist/components/material-editable-table/material-editable-table/index.js +1 -1
  410. package/dist/components/material-table/components/index.esm.js +1 -1
  411. package/dist/components/material-table/components/index.js +1 -1
  412. package/dist/components/material-table/components/inline-edit-fields/index.esm.js +1 -1
  413. package/dist/components/material-table/components/inline-edit-fields/index.js +1 -1
  414. package/dist/components/material-table/index.esm.js +1 -1
  415. package/dist/components/material-table/index.js +1 -1
  416. package/dist/components/material-table/material-table/index.esm.js +1 -1
  417. package/dist/components/material-table/material-table/index.js +1 -1
  418. package/dist/components/page-navigator/components/index.esm.js +1 -1
  419. package/dist/components/page-navigator/components/index.js +1 -1
  420. package/dist/components/page-navigator/components/page-action/index.esm.js +1 -1
  421. package/dist/components/page-navigator/components/page-action/index.js +1 -1
  422. package/dist/components/page-navigator/index.esm.js +2 -2
  423. package/dist/components/page-navigator/index.js +2 -2
  424. package/dist/components/page-navigator/page-navigator/index.esm.js +1 -1
  425. package/dist/components/page-navigator/page-navigator/index.js +1 -1
  426. package/dist/components/parties-modal/index.esm.js +1 -1
  427. package/dist/components/parties-modal/index.js +1 -1
  428. package/dist/components/parties-modal/parties-modal/index.esm.js +1 -1
  429. package/dist/components/parties-modal/parties-modal/index.js +1 -1
  430. package/dist/components/providers/ERPUIProvider/index.esm.js +1 -1
  431. package/dist/components/providers/index.esm.js +1 -1
  432. package/dist/components/quick-approval-modal/index.esm.js +1 -1
  433. package/dist/components/quick-approval-modal/quick-approval-modal/index.esm.js +1 -1
  434. package/dist/components/reports/dynamic-report/dynamic-report/index.esm.js +1 -1
  435. package/dist/components/reports/dynamic-report/dynamic-rows/index.esm.js +1 -1
  436. package/dist/components/reports/dynamic-report/index.esm.js +2 -2
  437. package/dist/components/reports/index.esm.js +2 -2
  438. package/dist/components/reports-title-bar/index.esm.js +3 -3
  439. package/dist/components/reports-title-bar/index.js +1 -1
  440. package/dist/components/reports-title-bar/redux/actionCreator/index.esm.js +1 -1
  441. package/dist/components/reports-title-bar/redux/index.esm.js +2 -2
  442. package/dist/components/reports-title-bar/redux/reducer/index.esm.js +1 -1
  443. package/dist/components/reports-title-bar/reports-title-bar/index.esm.js +1 -1
  444. package/dist/components/reports-title-bar/reports-title-bar/index.js +1 -1
  445. package/dist/components/rfq-response/index.esm.js +1 -1
  446. package/dist/components/rfq-response/index.js +1 -1
  447. package/dist/components/rfq-response/item-response-details/index.esm.js +1 -1
  448. package/dist/components/rfq-response/item-response-details/index.js +1 -1
  449. package/dist/components/schedule-report/index.esm.js +2 -2
  450. package/dist/components/schedule-report/index.js +2 -2
  451. package/dist/components/schedule-report/schedule-report/index.esm.js +1 -1
  452. package/dist/components/schedule-report/schedule-report/index.js +1 -1
  453. package/dist/components/schedule-report/schedule-report-modal/index.esm.js +1 -1
  454. package/dist/components/schedule-report/schedule-report-modal/index.js +1 -1
  455. package/dist/components/schedule-report/utils/common/index.esm.js +1 -1
  456. package/dist/components/searchable-select/index.esm.js +1 -1
  457. package/dist/components/searchable-select/index.js +1 -1
  458. package/dist/components/share-modal/index.esm.js +4 -4
  459. package/dist/components/share-modal/index.js +2 -2
  460. package/dist/components/share-modal/redux/actionCreator/index.esm.js +1 -1
  461. package/dist/components/share-modal/redux/index.esm.js +2 -2
  462. package/dist/components/share-modal/redux/reducer/index.esm.js +1 -1
  463. package/dist/components/share-modal/share-modal/index.esm.js +1 -1
  464. package/dist/components/share-modal/share-modal/index.js +1 -1
  465. package/dist/components/share-modal/share-modal-enhanced/index.esm.js +1 -1
  466. package/dist/components/share-modal/share-modal-enhanced/index.js +1 -1
  467. package/dist/components/team-add-modal/index.esm.js +1 -1
  468. package/dist/components/team-add-modal/index.js +1 -1
  469. package/dist/components/uom-field-wrapper/index.esm.js +1 -1
  470. package/dist/components/uom-field-wrapper/index.js +1 -1
  471. package/dist/components/uom-field-wrapper/uom-field-wrapper/index.esm.js +1 -1
  472. package/dist/components/uom-field-wrapper/uom-field-wrapper/index.js +1 -1
  473. package/dist/components/upload-excel/index.esm.js +1 -1
  474. package/dist/components/upload-excel/upload-excel/index.esm.js +1 -1
  475. package/dist/components/vendor-ai-summary/index.esm.js +1 -1
  476. package/dist/components/vendor-ai-summary/index.js +1 -1
  477. package/dist/constants/index.esm.js +143 -145
  478. package/dist/constants/index.js +3 -5
  479. package/dist/constants/index.js.map +1 -1
  480. package/dist/hooks/index.esm.js +6 -6
  481. package/dist/hooks/index.js +1 -1
  482. package/dist/hooks/use-translations/index.esm.js +1 -1
  483. package/dist/hooks/use-translations/index.js +1 -1
  484. package/dist/hooks/useAccountSetting/index.esm.js +1 -1
  485. package/dist/hooks/useCheckSkuAndName/index.esm.js +1 -1
  486. package/dist/hooks/useReduxIntegration/index.esm.js +1 -1
  487. package/dist/hooks/useUniquenessCheck/index.esm.js +1 -1
  488. package/dist/index.esm.js +235 -232
  489. package/dist/index.esm.js.map +1 -1
  490. package/dist/index.js +66 -63
  491. package/dist/index.js.map +1 -1
  492. package/dist/layout/fullScreen/index.esm.js +1 -1
  493. package/dist/layout/fullScreen/index.js +1 -1
  494. package/dist/layout/index.esm.js +2 -2
  495. package/dist/layout/index.js +2 -2
  496. package/dist/layout/sidebarScreen/index.esm.js +1 -1
  497. package/dist/layout/sidebarScreen/index.js +1 -1
  498. package/dist/redux/index.esm.js +3 -3
  499. package/dist/runtime/index.esm.js +4 -4
  500. package/dist/runtime/index.js +2 -2
  501. package/dist/src/constants/defaultColumns.d.ts +0 -1
  502. package/dist/src/constants/pathnames/pathname.procurement.d.ts +0 -4
  503. package/dist/src/views/template-editor/components/EditorCanvas/FreeCanvas.d.ts +34 -0
  504. package/dist/src/views/template-editor/components/EditorCanvas/FreeElement.d.ts +30 -0
  505. package/dist/src/views/template-editor/components/EditorCanvas.d.ts +30 -12
  506. package/dist/src/views/template-editor/components/EditorHeader.d.ts +6 -0
  507. package/dist/src/views/template-editor/components/EditorSection.d.ts +1 -0
  508. package/dist/src/views/template-editor/components/SectionFlowEditor.d.ts +2 -3
  509. package/dist/src/views/template-editor/components/SectionFormatPanel.d.ts +2 -1
  510. package/dist/src/views/template-editor/components/controllers/TableControls.d.ts +23 -0
  511. package/dist/src/views/template-editor/components/controllers/TextControls.d.ts +3 -0
  512. package/dist/src/views/template-editor/components/stationery/StationeryPreview.d.ts +24 -0
  513. package/dist/src/views/template-editor/components/stationery/StationerySidebar.d.ts +9 -0
  514. package/dist/src/views/template-editor/engine/ai.d.ts +12 -0
  515. package/dist/src/views/template-editor/engine/app.d.ts +1 -0
  516. package/dist/src/views/template-editor/engine/controls.d.ts +4 -0
  517. package/dist/src/views/template-editor/engine/design-canvas.d.ts +24 -0
  518. package/dist/src/views/template-editor/engine/editor.d.ts +17 -0
  519. package/dist/src/views/template-editor/engine/engine.d.ts +18 -0
  520. package/dist/src/views/template-editor/engine/icons.d.ts +91 -0
  521. package/dist/src/views/template-editor/engine/letterpads.d.ts +1 -0
  522. package/dist/src/views/template-editor/engine/model.d.ts +20 -0
  523. package/dist/src/views/template-editor/engine/paginator.d.ts +30 -0
  524. package/dist/src/views/template-editor/engine/picker.d.ts +20 -0
  525. package/dist/src/views/template-editor/engine/schema.d.ts +647 -0
  526. package/dist/src/views/template-editor/engine/stationery-app.d.ts +10 -0
  527. package/dist/src/views/template-editor/engine/stationery-doc.d.ts +62 -0
  528. package/dist/src/views/template-editor/engine/stationery-free-element.d.ts +22 -0
  529. package/dist/src/views/template-editor/engine/stationery-store.d.ts +154 -0
  530. package/dist/src/views/template-editor/engine/templatebuilder.d.ts +51 -0
  531. package/dist/src/views/template-editor/engine/templates.d.ts +11 -0
  532. package/dist/src/views/template-editor/icons/custom-styled-icon.d.ts +7 -0
  533. package/dist/src/views/template-editor/icons/edit.d.ts +4 -0
  534. package/dist/src/views/template-editor/icons/trash.d.ts +4 -0
  535. package/dist/src/views/template-editor/types/editor.d.ts +20 -108
  536. package/dist/src/views/template-editor/types/stationery.d.ts +66 -0
  537. package/dist/src/views/template-editor/utils/common.d.ts +10 -1
  538. package/dist/src/views/template-editor/utils/compiler.d.ts +12 -0
  539. package/dist/src/views/template-editor/utils/constant.d.ts +4 -1
  540. package/dist/style.css +4619 -33
  541. package/dist/utils/api/index.esm.js +1 -1
  542. package/dist/utils/common/index.esm.js +1 -1
  543. package/dist/utils/common-utility/index.esm.js +1 -1
  544. package/dist/utils/export-filters/index.esm.js +0 -1
  545. package/dist/utils/export-filters/index.esm.js.map +1 -1
  546. package/dist/utils/export-filters/index.js +0 -1
  547. package/dist/utils/export-filters/index.js.map +1 -1
  548. package/dist/utils/index.esm.js +8 -8
  549. package/dist/utils/server/index.esm.js +2 -2
  550. package/dist/utils/text-measurement/index.esm.js +1 -1
  551. package/dist/views/afterAuth/dashboard/index.esm.js +1 -1
  552. package/dist/views/afterAuth/dashboard/index.js +1 -1
  553. package/dist/views/afterAuth/index.esm.js +2 -2
  554. package/dist/views/afterAuth/index.js +2 -2
  555. package/dist/views/afterAuth/page-view/index.esm.js +1 -1
  556. package/dist/views/afterAuth/page-view/index.js +1 -1
  557. package/dist/views/form-builder/custom-form/index.esm.js +1 -1
  558. package/dist/views/form-builder/custom-form/index.js +1 -1
  559. package/dist/views/form-builder/element-edit-forms/index.esm.js +1 -1
  560. package/dist/views/form-builder/form-fields/index.esm.js +1 -1
  561. package/dist/views/form-builder/form-fields/index.js +1 -1
  562. package/dist/views/form-builder/index.esm.js +5 -5
  563. package/dist/views/form-builder/index.js +3 -3
  564. package/dist/views/form-builder/redux/index.esm.js +1 -1
  565. package/dist/views/form-builder/utils/index.esm.js +1 -1
  566. package/dist/views/form-builder/utils/index.js +1 -1
  567. package/dist/views/index.esm.js +39 -34
  568. package/dist/views/index.esm.js.map +1 -1
  569. package/dist/views/index.js +36 -31
  570. package/dist/views/index.js.map +1 -1
  571. package/dist/views/template-editor/add-template/index.esm.js +1 -1
  572. package/dist/views/template-editor/add-template/index.js +1 -1
  573. package/dist/views/template-editor/components/index.esm.js +7 -6
  574. package/dist/views/template-editor/components/index.esm.js.map +1 -1
  575. package/dist/views/template-editor/components/index.js +4 -3
  576. package/dist/views/template-editor/components/index.js.map +1 -1
  577. package/dist/views/template-editor/edit-section-modal/index.esm.js +1 -1
  578. package/dist/views/template-editor/index.esm.js +25 -20
  579. package/dist/views/template-editor/index.esm.js.map +1 -1
  580. package/dist/views/template-editor/index.js +16 -11
  581. package/dist/views/template-editor/index.js.map +1 -1
  582. package/dist/views/template-editor/routes/index.esm.js +1 -1
  583. package/dist/views/template-editor/routes/index.js +1 -1
  584. package/dist/views/template-editor/template-modal/index.esm.js +1 -1
  585. package/dist/views/template-editor/template-modal/index.js +1 -1
  586. package/dist/views/template-editor/template-name-modal/index.esm.js +1 -1
  587. package/dist/views/template-editor/template-name-modal/index.js +1 -1
  588. package/dist/views/template-editor/templates/index.esm.js +1 -1
  589. package/dist/views/template-editor/templates/index.js +1 -1
  590. package/dist/views/template-editor/utils/index.esm.js +10 -6
  591. package/dist/views/template-editor/utils/index.js +6 -2
  592. package/dist/views/template-editor/utils/index.js.map +1 -1
  593. package/package.json +1 -1
  594. package/dist/chunks/SectionFlowEditor-CFfJBYKx.esm.js +0 -5479
  595. package/dist/chunks/SectionFlowEditor-CFfJBYKx.esm.js.map +0 -1
  596. package/dist/chunks/SectionFlowEditor-sKsZ3oQo.js +0 -5478
  597. package/dist/chunks/SectionFlowEditor-sKsZ3oQo.js.map +0 -1
  598. package/dist/chunks/add-template-DVvbD9a4.esm.js +0 -11
  599. package/dist/chunks/add-template-DVvbD9a4.esm.js.map +0 -1
  600. package/dist/chunks/add-template-Dohg2bHJ.js +0 -10
  601. package/dist/chunks/add-template-Dohg2bHJ.js.map +0 -1
  602. package/dist/chunks/common-C5AokA7z.js +0 -368
  603. package/dist/chunks/common-C5AokA7z.js.map +0 -1
  604. package/dist/chunks/common-CaomnEjX.esm.js +0 -369
  605. package/dist/chunks/common-CaomnEjX.esm.js.map +0 -1
  606. package/dist/chunks/common-utility-DGpbsf7S.esm.js.map +0 -1
  607. package/dist/chunks/constant-Bwg2s_Sn.esm.js.map +0 -1
  608. package/dist/chunks/constant-ZYAN_teD.js.map +0 -1
  609. package/dist/chunks/edit-section-modal-BW-aZmUv.esm.js.map +0 -1
  610. package/dist/chunks/template-modal-B2VgotrF.esm.js.map +0 -1
  611. package/dist/chunks/template-modal-X-iSmlki.js.map +0 -1
  612. package/dist/chunks/template-name-modal-CeqxIE2r.js.map +0 -1
  613. package/dist/chunks/template-name-modal-Dctn8t3t.esm.js.map +0 -1
  614. package/dist/chunks/templates-BY9HF32G.js.map +0 -1
  615. package/dist/chunks/templates-DxvU4PQY.esm.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common-D6T6NGWY.js","sources":["../../src/views/template-editor/utils/common.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable unused-imports/no-unused-vars */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ElementType, EnhancedSectionData } from '../types/editor';\nimport { initialStyles, TEMPLATE_EDITOR_PATHS } from './constant';\nimport { cssScopingService } from '../services/CSSScopingService';\n\nconst editableTypes = new Set(['text', 'text-block', 'heading', 'heading-2', 'heading-3', 'heading-4']);\n\nexport const generateSectionsHTML = (sections: any[], yOffset: number = 0, isCompiler: boolean = false): string => {\n const visibleSections = sections.filter(s => !s.hidden);\n\n // Free-positioning: render in a position:relative wrapper using absolute coords\n const hasPositionData = visibleSections.some(s => s.x !== undefined && s.y !== undefined);\n\n if (hasPositionData) {\n // Determine bounding box to size the wrapper correctly\n // Tables auto-grow beyond their stored height, so use min-height to avoid clipping\n const maxBottom = Math.max(...visibleSections.map(s => (s.y ?? 0) + (s.height ?? 60)));\n const wrapperHeight = Math.max(maxBottom + 20, 100);\n\n let html = `<div style=\"position:relative;width:100%;min-height:${wrapperHeight}px;height:auto;\">`;\n for (const section of visibleSections) {\n // Add the global yOffset to compensate for PDF engine margins (e.g. wkhtmltopdf/puppeteer forced margins)\n const x = section.x ?? 0;\n const y = (section.y ?? 0) + yOffset;\n const w = section.width ?? 200;\n const h = section.height ?? 60;\n const rot = section.rotation ?? 0;\n const z = section.zIndex ?? 1;\n const rotStyle = rot !== 0 ? `transform:rotate(${rot}deg);transform-origin:center center;` : '';\n\n const isTextType = editableTypes.has(section.type) || (!section.type && !['image', 'table', 'buttons', 'divider', 'signature', 'qr-code', 'bar-code'].includes(section.type));\n const isTableType = section.type === 'table';\n const isButtonOrSig = section.type === 'buttons' || section.type === 'signature';\n\n let cleanContent = (section.content || '').replace(/<span class=\"cx-ph-tag\">([\\s\\S]*?)<\\/span>/g, '$1');\n if (isTableType && !cleanContent && section.attributes) {\n cleanContent = generateContentHTML('table', '', section.attributes, [], isCompiler);\n }\n\n const overflowStyle = (isButtonOrSig || isTableType || isTextType) ? 'visible' : 'hidden';\n const hasExplicitLineBreak = cleanContent.includes('<br') || cleanContent.includes('\\n') || (cleanContent.match(/<\\/p>/gi) || []).length > 1;\n const isMultiLineParagraph = !hasExplicitLineBreak && h > 45 && cleanContent.length > 80;\n const whiteSpaceStyle = isTableType ? 'normal' : (hasExplicitLineBreak || isMultiLineParagraph ? 'pre-wrap' : 'nowrap');\n const widthStyle = (isTextType && !hasExplicitLineBreak && !isMultiLineParagraph)\n ? `width:max-content;min-width:${w}px;max-width:${Math.max(w, 1200 - x - 10)}px;`\n : `width:${w}px;`;\n const wordBreakStyle = (isTextType && !hasExplicitLineBreak && !isMultiLineParagraph) ? 'word-break:normal;' : 'word-break:break-word;';\n\n let innerDisplayStyles = '';\n if (isTextType) {\n innerDisplayStyles = 'display:block;';\n } else if (isTableType) {\n // Use display:block to match FreeElement's block container in the editor.\n // display:flex here causes subtle flex layout differences that make the table\n // compute a slightly different width vs edit mode (columns become narrower/misaligned).\n innerDisplayStyles = 'display:block;';\n } else {\n innerDisplayStyles = 'display:flex;flex-direction:column;justify-content:center;align-items:center;';\n }\n\n // For tables, use height:auto so the wrapper grows with table content in preview.\n // Using a fixed height causes the table to appear clipped/shrunk vs edit mode.\n const wrapperHeightStyle = isTableType\n ? `height:auto;min-height:${h}px;`\n : `height:${h}px;`;\n html += `<div style=\"position:absolute;left:${x}px;top:${y}px;${widthStyle}${wrapperHeightStyle}${rotStyle}z-index:${z};overflow:${overflowStyle};${innerDisplayStyles}${wordBreakStyle}white-space:${whiteSpaceStyle};box-sizing:border-box;\">${cleanContent}</div>`;\n }\n html += '</div>';\n return html;\n }\n\n // Legacy flow-based fallback (for old templates without position data)\n let html = '';\n const groups: any[][] = [];\n const visited = new Set<string>();\n for (const section of visibleSections) {\n if (visited.has(section.id)) continue;\n visited.add(section.id);\n groups.push([section]);\n }\n for (const group of groups) {\n const cleanContent = (group[0].content || '').replace(/<span class=\"cx-ph-tag\">([\\s\\S]*?)<\\/span>/g, '$1');\n html += `<div style=\"padding: 10px;\">${cleanContent}</div>`;\n }\n return html;\n};\n\n\n\nexport const templateRoutes = (modulePath: string, type: string) => {\n const list = `${modulePath}${TEMPLATE_EDITOR_PATHS.TEMPLATES_LIST(type)}`\n const add = `${modulePath}${TEMPLATE_EDITOR_PATHS.TEMPLATES_ADD(type)}`\n const edit = `${modulePath}${TEMPLATE_EDITOR_PATHS.TEMPLATES_EDIT(type)}`\n return {\n LIST: list,\n ADD_TEMPLATE: (id: string) => add.replace(':id', id),\n EDIT_TEMPLATE: (id: string, templateId: string) => edit.replace(':id', id).replace(':template_id', templateId),\n }\n};\n\n\nexport const generateEmailPreview = (\n sections: EnhancedSectionData[],\n headerSections: EnhancedSectionData[] = [],\n footerSections: EnhancedSectionData[] = [],\n isSaving = false,\n scopeId?: string,\n stationeryHeaderHtml = '',\n stationeryFooterHtml = '',\n paper = 'A4',\n orient = 'portrait',\n watermark?: { show: boolean; opacity: number; size: number; rotation: number; image?: string }\n) => {\n // Compute dimensions from paper + orient\n let pW = paper === 'Letter' ? 816 : 794;\n let pH = paper === 'Letter' ? 1056 : 1123;\n if (orient === 'landscape') { const t = pW; pW = pH; pH = t; }\n const headerHtml = (headerSections && headerSections?.length) ? generateHeaderFooterPreview(headerSections, 'header') : '';\n const footerHtml = (footerSections && footerSections?.length) ? generateHeaderFooterPreview(footerSections, 'footer') : '';\n\n // Generate or use provided scope ID\n const templateScopeId = scopeId || cssScopingService.generateScopeId();\n\n const watermarkHtml = (watermark?.show && watermark?.image) ? `\n <div class=\"st-wm\" style=\"position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; z-index: 0; pointer-events: none;\">\n <img src=\"${watermark.image}\" alt=\"Watermark\" style=\"opacity: ${(watermark.opacity ?? 15) / 100}; width: ${watermark.size ?? 50}%; transform: rotate(${watermark.rotation ?? 0}deg); object-fit: contain; pointer-events: none; user-select: none;\" />\n </div>\n ` : '';\n\n const styleBlock = `\n <style>\n .email-container {\n margin: 0 auto;\n margin-bottom: 20px;\n background-color: #fff;\n border-radius: 8px;\n width: ${isSaving ? '65%' : `${pW}px`};\n max-width: ${isSaving ? '65%' : `${pW}px`};\n display: flex;\n flex-direction: column;\n height: ${pH}px;\n min-height: ${pH}px;\n }\n .email-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n padding: 0;\n }\n a {\n color: #007bff;\n text-decoration: none;\n }\n a:hover {\n text-decoration: underline;\n }\n * {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n }\n\n body {\n font-family: \"Inter\", sans-serif !important;\n font-size: 16px;\n font-weight: 400;\n color: #00011c;\n font-style: normal;\n }\n\n img {\n display: block;\n height: auto;\n }\n\n /* Minimal reset — border-collapse is scoped to specific table classes */\n\n a {\n text-decoration: none;\n }\n\n table.our-details,\n .our-details td,\n .our-details th {\n border: 1px solid #d3d3d4;\n }\n\n table.amount-word-table,\n table.amount-word-table td,\n table.amount-word-table th {\n border: 1px solid #d6d6d6;\n }\n\n .amount-word-table thead th {\n background-color: #f5f6f5;\n }\n\n .amount-word-table thead td {\n background-color: #f5f6f5;\n }\n\n .amount-word-table tbody tr:nth-child(even) {\n background-color: #f5f6f5;\n }\n\n .amount-word-table tbody tr td {\n border-top: 0;\n border-bottom: 0;\n }\n\n .deliver-table thead th {\n background-color: transparent;\n }\n\n .email-container table {\n background-color: transparent !important;\n border-collapse: collapse !important;\n }\n .email-content p,\n .email-content h1,\n .email-content h2,\n .email-content h3,\n .email-content h4,\n .email-content h5,\n .email-content h6 {\n margin: 0 !important;\n padding: 0 !important;\n width: 100% !important;\n box-sizing: border-box !important;\n }\n .email-content hr {\n width: 100% !important;\n margin: 0 !important;\n }\n .email-content a {\n width: 100% !important;\n height: 100% !important;\n box-sizing: border-box !important;\n }\n .email-content img {\n max-width: 100% !important;\n max-height: 100% !important;\n box-sizing: border-box !important;\n }\n /* Table rules to exactly match FreeElement's sx */\n .email-content table {\n width: 100% !important;\n min-width: 0 !important; /* Override doc.css min-width: max-content */\n height: auto !important;\n border-collapse: collapse !important;\n white-space: normal !important;\n table-layout: fixed !important;\n margin: 0 !important;\n background-color: transparent !important;\n }\n .email-content table tr {\n box-sizing: border-box !important;\n }\n .email-content table td {\n box-sizing: border-box !important;\n overflow: hidden !important;\n text-overflow: ellipsis !important;\n vertical-align: middle !important;\n }\n .email-content table th {\n box-sizing: border-box !important;\n overflow: hidden !important;\n text-overflow: ellipsis !important;\n vertical-align: middle !important;\n }\n .email-content div {\n box-sizing: border-box !important;\n }\n </style>\n `;\n\n let html = isSaving ? `<html><head>${styleBlock}</head><body>` : `<div>${styleBlock}`;\n\n html += `\n <div class=\"email-container st pbd-page pb-tpl-view ${templateScopeId}\" style=\"position: relative; width: ${isSaving ? '65%' : `${pW}px`} !important; min-width: ${isSaving ? '65%' : `${pW}px`} !important; max-width: ${isSaving ? '65%' : `${pW}px`} !important; height: ${pH}px !important; min-height: ${pH}px !important; overflow: hidden;\">\n ${watermarkHtml}\n <div style=\"width: 100%; z-index: 0; flex-shrink: 0; pointer-events: none;\">\n ${stationeryHeaderHtml}\n ${headerHtml}\n ${headerHtml ? '<hr/>' : ''}\n </div>\n <div class=\"email-content pbd-page-inner\" style=\"position: relative; z-index: 1; padding: 0 !important;\">\n `;\n\n html += generateSectionsHTML(sections);\n html += `\n </div>\n <div style=\"width: 100%; z-index: 0; flex-shrink: 0; margin-top: auto; pointer-events: none;\">\n ${footerHtml ? '<hr/>' : ''}\n ${footerHtml}\n ${stationeryFooterHtml}\n </div>\n </div>\n `;\n\n html += isSaving ? `</body></html>` : `</div>`;\n\n return html;\n}\nexport const generateHeaderFooterPreview = (sections: EnhancedSectionData[], type = 'header', scopeId?: string) => {\n const scopeClass = scopeId ? ` ${scopeId}` : '';\n let html = `<${type} class=\"${type}${scopeClass}\">`;\n\n html += generateSectionsHTML(sections);\n html += `</${type}>`;\n\n return html;\n}\n\nexport const extractStyles = (html: string, sectionType: string) => {\n // Create a temporary div to parse the HTML\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = html;\n\n // Get the first element (our styled element)\n const element = tempDiv.firstChild as HTMLElement;\n\n if (!element) return {};\n\n if (element?.getAttribute instanceof Function === false) {\n return {};\n }\n\n // Get the inline styles\n const styleAttr = element?.getAttribute('style');\n\n const allAttributes = element?.attributes || [];\n\n // const attrObj: Record<string, any> = {};\n const attrObj = Array.from(allAttributes).reduce((obj, attr) => {\n obj[attr.name] = attr.value;\n return obj;\n }, {});\n\n if (!styleAttr) return {};\n\n // Parse the style attribute into an object\n const styleObj: Record<string, any> = {};\n const stylePairs = styleAttr.split(';').filter(pair => pair.trim() !== '');\n\n stylePairs.forEach(pair => {\n const [prop, value] = pair.split(':').map(part => part.trim());\n if (prop && value) {\n // Convert CSS property names to camelCase for React\n const propName = prop.replace(/-([a-z])/g, (g) => g[1].toUpperCase());\n\n // Ignore forced 100% !important dimensions injected by generateContentHTML\n if ((propName === 'width' || propName === 'height' || propName === 'maxWidth' || propName === 'maxHeight') && value === '100% !important') {\n return;\n }\n\n styleObj[propName] = value;\n }\n });\n attrObj.styles = styleObj\n return attrObj\n}\n\ntype StyleValue = string | number | boolean | null | undefined | StyleObject;\ninterface StyleObject {\n [key: string]: StyleValue;\n}\n\nconst EMAIL_SAFE_PROPERTIES = new Set([\n 'background', 'background-color',\n 'border', 'border-style', 'border-collapse', 'border-top', 'border-right', 'border-bottom', 'border-left', 'border-color', 'border-radius',\n 'color', 'display', 'font', 'font-family', 'font-size', 'font-style', 'font-weight',\n 'height', 'line-height',\n 'margin', 'margin-top', 'margin-right', 'margin-bottom', 'margin-left',\n 'padding', 'padding-top', 'padding-right', 'padding-bottom', 'padding-left',\n 'text-align', 'text-decoration',\n 'vertical-align', 'width',\n 'max-width', 'min-width', 'max-height', 'min-height', 'object-fit', 'opacity'\n]);\n\nexport const applyOpacityToColor = (color: string | undefined, opacity: number): string => {\n if (!color || color === 'transparent') return 'transparent';\n if (typeof opacity !== 'number' || opacity >= 1) return color;\n if (opacity <= 0) return 'transparent';\n\n const trimmed = color.trim();\n\n // Hex color: #RGB, #RGBA, #RRGGBB, #RRGGBBAA\n if (trimmed.startsWith('#')) {\n const hex = trimmed.slice(1);\n let r = 0, g = 0, b = 0, a = 1;\n if (hex.length === 3) {\n r = parseInt(hex[0] + hex[0], 16);\n g = parseInt(hex[1] + hex[1], 16);\n b = parseInt(hex[2] + hex[2], 16);\n } else if (hex.length === 4) {\n r = parseInt(hex[0] + hex[0], 16);\n g = parseInt(hex[1] + hex[1], 16);\n b = parseInt(hex[2] + hex[2], 16);\n a = parseInt(hex[3] + hex[3], 16) / 255;\n } else if (hex.length === 6) {\n r = parseInt(hex.slice(0, 2), 16);\n g = parseInt(hex.slice(2, 4), 16);\n b = parseInt(hex.slice(4, 6), 16);\n } else if (hex.length === 8) {\n r = parseInt(hex.slice(0, 2), 16);\n g = parseInt(hex.slice(2, 4), 16);\n b = parseInt(hex.slice(4, 6), 16);\n a = parseInt(hex.slice(6, 8), 16) / 255;\n } else {\n return color;\n }\n const finalAlpha = Math.max(0, Math.min(1, Math.round(a * opacity * 1000) / 1000));\n return `rgba(${r}, ${g}, ${b}, ${finalAlpha})`;\n }\n\n // rgba(r, g, b, a)\n const rgbaMatch = trimmed.match(/^rgba\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*([\\d.]+)\\s*\\)$/i);\n if (rgbaMatch) {\n const r = parseInt(rgbaMatch[1], 10);\n const g = parseInt(rgbaMatch[2], 10);\n const b = parseInt(rgbaMatch[3], 10);\n const existingA = parseFloat(rgbaMatch[4]);\n const finalAlpha = Math.max(0, Math.min(1, Math.round(existingA * opacity * 1000) / 1000));\n return `rgba(${r}, ${g}, ${b}, ${finalAlpha})`;\n }\n\n // rgb(r, g, b)\n const rgbMatch = trimmed.match(/^rgb\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*\\)$/i);\n if (rgbMatch) {\n const r = parseInt(rgbMatch[1], 10);\n const g = parseInt(rgbMatch[2], 10);\n const b = parseInt(rgbMatch[3], 10);\n const finalAlpha = Math.max(0, Math.min(1, Math.round(opacity * 1000) / 1000));\n return `rgba(${r}, ${g}, ${b}, ${finalAlpha})`;\n }\n\n // Common named colors fallback\n const namedColors: Record<string, [number, number, number]> = {\n white: [255, 255, 255],\n black: [0, 0, 0],\n red: [255, 0, 0],\n green: [0, 128, 0],\n blue: [0, 0, 255],\n gray: [128, 128, 128],\n grey: [128, 128, 128],\n lightgray: [211, 211, 211],\n lightgrey: [211, 211, 211],\n };\n const lower = trimmed.toLowerCase();\n if (namedColors[lower]) {\n const [r, g, b] = namedColors[lower];\n const finalAlpha = Math.max(0, Math.min(1, Math.round(opacity * 1000) / 1000));\n return `rgba(${r}, ${g}, ${b}, ${finalAlpha})`;\n }\n\n return color;\n};\n\nexport const generateInlineStyles = (\n styles: StyleObject,\n parentKey = ''\n): string => {\n if (!styles || typeof styles !== 'object') return '';\n\n const styleEntries = Object.entries(styles).reduce<string[]>((acc, [key, value]) => {\n if (value === undefined || value === null) return acc;\n\n const fullKey = parentKey ? `${parentKey}-${key}` : key;\n\n // Recursively flatten nested objects\n if (typeof value === 'object' && !Array.isArray(value)) {\n acc.push(generateInlineStyles(value as StyleObject, fullKey));\n return acc;\n }\n\n // Convert camelCase to kebab-case\n const cssKey = fullKey.replace(/([A-Z])/g, '-$1').toLowerCase();\n\n // Skip non-email-safe properties\n if (!EMAIL_SAFE_PROPERTIES.has(cssKey) && key !== 'fullWidth' && key !== 'alignment') {\n return acc;\n }\n\n // Special case: fullWidth\n if (key === 'fullWidth' && value === true) {\n acc.push('width: 100%');\n return acc;\n }\n\n // Special case: alignment (converted to text-align)\n if (key === 'alignment' && typeof value === 'string') {\n acc.push(`text-align: ${value}`);\n return acc;\n }\n\n // Ignore other boolean values\n if (typeof value === 'boolean') return acc;\n\n const cssValue =\n typeof value === 'number' && !['z-index', 'opacity', 'line-height', 'font-weight'].includes(cssKey)\n ? `${value}px`\n : value;\n\n acc.push(`${cssKey}: ${cssValue}`);\n return acc;\n }, []);\n\n return styleEntries.filter(Boolean).join('; ');\n};\n\nexport const getInitialSectionData = (type: ElementType, attrs: Record<string, any> = {}): EnhancedSectionData => {\n let content = '';\n const styles = initialStyles[type] || {};\n const inlineStyles: string = generateInlineStyles(styles);\n\n switch (type) {\n case 'heading':\n content = `<h1 style=\"${inlineStyles}\">Heading 1</h1>`;\n break;\n case 'heading-2':\n content = `<h2 style=\"${inlineStyles}\">Heading 2</h2>`;\n break;\n case 'heading-3':\n content = `<h3 style=\"${inlineStyles}\">Heading 3</h3>`;\n break;\n case 'heading-4':\n content = `<h4 style=\"${inlineStyles}\">Heading 4</h4>`;\n break;\n case 'text':\n content = `<p style=\"${inlineStyles}\">Hello, enter your text here...</p>`;\n break;\n case 'image':\n content = `<img src=\"${attrs?.src || ''}\" alt=\"${attrs?.alt || 'Image'}\" style=\"${inlineStyles};\" />`;\n break;\n case 'buttons':\n attrs.text = attrs?.text || 'Button text';\n content = `<a href=\"${attrs?.href || '#'}\" target=\"_blank\" style=\"${inlineStyles}; display: flex !important; text-decoration: none !important; box-sizing: border-box !important; justify-content: center !important; align-items: center !important; width: 100% !important; height: 100% !important; text-align: center !important; word-break: break-word !important; white-space: normal !important;\">${attrs.text}</a>`;\n break;\n case 'divider':\n content = `<hr style=\"border: none !important; border-top: ${styles?.borderWidth || 1}px ${styles?.borderStyle || 'solid'} ${styles?.borderColor || '#000000'} !important; width: 100% !important; margin: 0 !important; height: 0 !important;\" />`;\n break;\n case 'table': {\n const { border, borderStyle, borderColor, borderRadius, height, opacity, ...rest } = styles;\n const tableOpacity = typeof opacity === 'number' ? opacity : 1;\n const useWrapperTrick = borderRadius && styles.borderCollapse !== 'separate' && styles.is_bordered;\n const tInlineStyles = generateInlineStyles({\n ...rest,\n ...(useWrapperTrick ? { borderStyle: 'hidden' } : (styles.is_bordered ? { border, borderStyle, borderColor } : {})),\n ...(useWrapperTrick ? {} : { borderRadius })\n });\n const wrapperStyles = useWrapperTrick ? `border: ${border || 1}px ${borderStyle || 'solid'} ${borderColor || '#000000'}; border-radius: ${borderRadius}px; overflow: hidden; box-sizing: border-box; width: 100%;` : '';\n const tHeadRowHeight = Number(styles.tHead?.rowHeight) || 38;\n const tBodyRowHeight = Number(styles.tBody?.rowHeight) || 38;\n\n const rawHeadBg = styles.tHead?.backgroundColor || 'rgba(245, 245, 245, 0.75)';\n const headBgColor = applyOpacityToColor(rawHeadBg, tableOpacity);\n const rawBodyBg = styles.tBody?.backgroundColor || 'rgba(255, 255, 255, 0.75)';\n const bodyBgColor = applyOpacityToColor(rawBodyBg, tableOpacity);\n\n const thUserFontSize = Number(styles.tHead?.fontSize) || 14;\n const thBasePadding = typeof styles.thCells?.padding === 'number' ? styles.thCells.padding : 8;\n const thAvailH = Math.max(4, tHeadRowHeight - 1);\n const effectiveThFontSize = Math.min(thUserFontSize, Math.max(8, thAvailH - 2));\n const thRemainingV = Math.max(0, thAvailH - effectiveThFontSize);\n const thVPadding = Math.max(0, Math.min(thBasePadding, Math.floor(thRemainingV / 2)));\n const thHPadding = thBasePadding;\n const thWhiteSpace = tHeadRowHeight < 36 ? 'nowrap' : 'normal';\n\n const tbUserFontSize = Number(styles.tBody?.fontSize) || 14;\n const tbBasePadding = typeof styles.tbCells?.padding === 'number' ? styles.tbCells.padding : 8;\n const tbAvailH = Math.max(4, tBodyRowHeight - 1);\n const effectiveTbFontSize = Math.min(tbUserFontSize, Math.max(8, tbAvailH - 2));\n const tbRemainingV = Math.max(0, tbAvailH - effectiveTbFontSize);\n const tbVPadding = Math.max(0, Math.min(tbBasePadding, Math.floor(tbRemainingV / 2)));\n const tbHPadding = tbBasePadding;\n const tbWhiteSpace = tBodyRowHeight < 36 ? 'nowrap' : 'normal';\n\n const { padding: _thPad, ...thCellsRest } = styles.thCells || {};\n const { padding: _tbPad, ...tbCellsRest } = styles.tbCells || {};\n\n const { rowHeight: _thRH, backgroundColor: _thBg, ...tHeadRest } = styles.tHead || {};\n const { rowHeight: _tbRH, backgroundColor: _tbBg, ...tBodyRest } = styles.tBody || {};\n\n const tHeadInlineStyles: string = generateInlineStyles(tHeadRest);\n const tBodyInlineStyles: string = generateInlineStyles(tBodyRest);\n const thCellInlineStyles: string = generateInlineStyles({ ...tHeadRest, ...thCellsRest, border, borderStyle, borderColor });\n const tbCellInlineStyles: string = generateInlineStyles({ ...tBodyRest, ...tbCellsRest, border, borderStyle, borderColor });\n content = `${useWrapperTrick ? `<div style=\"${wrapperStyles}\">` : ''}<table style=\"${tInlineStyles}; width: 100%; border-collapse: collapse; height: auto !important; table-layout: fixed; margin: 0 !important;\"><thead style=\"${tHeadInlineStyles}\"><tr style=\"background-color: ${headBgColor} !important; height: ${tHeadRowHeight}px; max-height: ${tHeadRowHeight}px; line-height: 1;\"><th style=\"${thCellInlineStyles}; vertical-align: middle; height: ${tHeadRowHeight}px; max-height: ${tHeadRowHeight}px; box-sizing: border-box; padding: ${thVPadding}px ${thHPadding}px !important; font-size: ${effectiveThFontSize}px !important; line-height: 1 !important; overflow: hidden; text-overflow: ellipsis; white-space: ${thWhiteSpace}; background-color: ${headBgColor} !important;\">Column 1</th><th style=\"${thCellInlineStyles}; vertical-align: middle; height: ${tHeadRowHeight}px; max-height: ${tHeadRowHeight}px; box-sizing: border-box; padding: ${thVPadding}px ${thHPadding}px !important; font-size: ${effectiveThFontSize}px !important; line-height: 1 !important; overflow: hidden; text-overflow: ellipsis; white-space: ${thWhiteSpace}; background-color: ${headBgColor} !important;\">Column 2</th><th style=\"${thCellInlineStyles}; vertical-align: middle; height: ${tHeadRowHeight}px; max-height: ${tHeadRowHeight}px; box-sizing: border-box; padding: ${thVPadding}px ${thHPadding}px !important; font-size: ${effectiveThFontSize}px !important; line-height: 1 !important; overflow: hidden; text-overflow: ellipsis; white-space: ${thWhiteSpace}; background-color: ${headBgColor} !important;\">Column 3</th></tr></thead><tbody style=\"${tBodyInlineStyles}\"><tr style=\"height: ${tBodyRowHeight}px; max-height: ${tBodyRowHeight}px; line-height: 1;\"><td style=\"${tbCellInlineStyles}; vertical-align: middle; height: ${tBodyRowHeight}px; max-height: ${tBodyRowHeight}px; box-sizing: border-box; padding: ${tbVPadding}px ${tbHPadding}px !important; font-size: ${effectiveTbFontSize}px !important; line-height: 1 !important; overflow: hidden; text-overflow: ellipsis; white-space: ${tbWhiteSpace}; background-color: ${bodyBgColor} !important;\"></td><td style=\"${tbCellInlineStyles}; vertical-align: middle; height: ${tBodyRowHeight}px; max-height: ${tBodyRowHeight}px; box-sizing: border-box; padding: ${tbVPadding}px ${tbHPadding}px !important; font-size: ${effectiveTbFontSize}px !important; line-height: 1 !important; overflow: hidden; text-overflow: ellipsis; white-space: ${tbWhiteSpace}; background-color: ${bodyBgColor} !important;\"></td><td style=\"${tbCellInlineStyles}; vertical-align: middle; height: ${tBodyRowHeight}px; max-height: ${tBodyRowHeight}px; box-sizing: border-box; padding: ${tbVPadding}px ${tbHPadding}px !important; font-size: ${effectiveTbFontSize}px !important; line-height: 1 !important; overflow: hidden; text-overflow: ellipsis; white-space: ${tbWhiteSpace}; background-color: ${bodyBgColor} !important;\"></td></tr></tbody></table>${useWrapperTrick ? `</div>` : ''}`.trim();\n break;\n }\n case 'signature': {\n const signatureText = attrs?.signatureText || 'Signature';\n content = `<svg viewBox=\"0 0 300 80\" width=\"100%\" height=\"100%\" preserveAspectRatio=\"xMidYMid meet\" xmlns=\"http://www.w3.org/2000/svg\"><text x=\"50%\" y=\"55%\" dominant-baseline=\"middle\" text-anchor=\"middle\" fill=\"${attrs?.styles?.color || '#333333'}\" style=\"${inlineStyles}\">${signatureText}</text></svg>`;\n break;\n }\n case 'qr-code':\n attrs.placeholder = attrs?.placeholder || '{{qr_data}}';\n content = `<div style=\"background-color: #f5f5f5; padding: 16px; text-align: center; color: #666666;\">${attrs.placeholder}</div>`;\n break;\n case 'bar-code':\n attrs.placeholder = attrs?.placeholder || '{{barcode_data}}';\n content = `<div style=\"background-color: #f5f5f5; padding: 16px; text-align: center; color: #666666;\">${attrs.placeholder}</div>`;\n break;\n default:\n content = '<p style=\"font-size: 16px; color: #333333; line-height: 1.5;\">New section</p>';\n }\n\n let attributes: Record<string, any> = {};\n attributes = extractStyles(content, type);\n\n const baseAttrs = { ...(attrs || {}), styles };\n\n if (type === 'table' && !baseAttrs.tableData) {\n baseAttrs.tableData = {\n name: '',\n columns: [\n { id: 'col1', header: 'Column 1', align: 'l' },\n { id: 'col2', header: 'Column 2', align: 'l' },\n { id: 'col3', header: 'Column 3', align: 'l' }\n ],\n rows: [\n { col1: '', col2: '', col3: '' }\n ],\n border: true,\n mergedCells: []\n };\n\n // Regenerate content with actual column headers instead of empty strings\n content = generateContentHTML(type, content, baseAttrs, []);\n }\n\n return {\n content,\n type,\n attributes: baseAttrs,\n // Default free-positioning fields (caller overrides x/y with drop position)\n x: 52,\n y: 52,\n width: 300,\n height: 78,\n rotation: 0,\n zIndex: 1,\n };\n};\n\nexport const generateContentHTML = (sectionType: ElementType, content: string, attrs: any, placeholders: any[] = [], isCompiler: boolean = false): string => {\n const { src, alt, styles: eStyles, text, placeholder, tableData } = attrs || {};\n const styles = {\n ...initialStyles[sectionType],\n ...eStyles\n };\n\n const inlineStyles = generateInlineStyles(styles);\n\n if (sectionType === 'buttons') {\n return `<a href=\"${attrs?.href || '#'}\" target=\"_blank\" style=\"${inlineStyles}; display: flex !important; text-decoration: none !important; box-sizing: border-box !important; justify-content: center !important; align-items: center !important; width: 100% !important; height: 100% !important; text-align: center !important; word-break: break-word !important; white-space: normal !important;\">${text || 'Button Text'}</a>`;\n } else if (sectionType === 'image') {\n let imgInlineStyles: string = inlineStyles;\n if (styles?.is_bordered) {\n styles.padding = '10px';\n imgInlineStyles = generateInlineStyles(styles);\n } else {\n styles.padding = '0';\n imgInlineStyles = generateInlineStyles(styles);\n }\n const objectFit = styles?.objectFit || 'contain';\n let objectPosition = 'center';\n if (styles?.alignment === 'left') objectPosition = 'left';\n if (styles?.alignment === 'right') objectPosition = 'right';\n return `<img src=\"${src || ''}\" alt=\"${alt || 'Image'}\" style=\"${imgInlineStyles}; box-sizing: border-box !important; object-fit: ${objectFit} !important; object-position: ${objectPosition} !important; width: 100% !important; height: 100% !important; max-width: 100% !important; max-height: 100% !important;\" />`;\n } else if (sectionType === 'divider') {\n return `<hr style=\"border: none !important; border-top: ${styles?.borderWidth || 1}px ${styles?.borderStyle || 'solid'} ${styles?.borderColor || '#000000'} !important; width: 100% !important; margin: 0 !important; height: 0 !important;\" />`;\n } else if (sectionType === 'table') {\n const { border, borderStyle, borderColor, borderRadius, height, opacity, ...rest } = styles;\n const tableOpacity = typeof opacity === 'number' ? opacity : 1;\n const useWrapperTrick = borderRadius && styles.borderCollapse !== 'separate' && styles.is_bordered;\n const tInlineStyles = generateInlineStyles({\n ...rest,\n ...(useWrapperTrick ? { borderStyle: 'hidden' } : (styles.is_bordered ? { border, borderStyle, borderColor } : {})),\n ...(useWrapperTrick ? {} : { borderRadius })\n });\n const wrapperStyles = useWrapperTrick ? `border: ${border || 1}px ${borderStyle || 'solid'} ${borderColor || '#000000'}; border-radius: ${borderRadius}px; overflow: hidden; box-sizing: border-box; width: 100%;` : '';\n const tHeadRowHeight = Number(styles.tHead?.rowHeight) || 38;\n const tBodyRowHeight = Number(styles.tBody?.rowHeight) || 38;\n\n const rawHeadBg = styles.tHead?.backgroundColor || 'rgba(245, 245, 245, 0.75)';\n const headBgColor = applyOpacityToColor(rawHeadBg, tableOpacity);\n\n const hasZebra = !!styles.tBody?.zebraStriping;\n const rawAltColor = styles.tBody?.alternateRowColor || '#f9f9f9';\n const altColor = applyOpacityToColor(rawAltColor, tableOpacity);\n\n const rawMainBg = styles.tBody?.backgroundColor || '#ffffff';\n const mainBgColor = applyOpacityToColor(rawMainBg, tableOpacity);\n\n const thUserFontSize = Number(styles.tHead?.fontSize) || 14;\n const thBasePadding = typeof styles.thCells?.padding === 'number' ? styles.thCells.padding : 8;\n const thAvailH = Math.max(4, tHeadRowHeight - 1);\n const effectiveThFontSize = Math.min(thUserFontSize, Math.max(8, thAvailH - 2));\n const thRemainingV = Math.max(0, thAvailH - effectiveThFontSize);\n const thVPadding = Math.max(0, Math.min(thBasePadding, Math.floor(thRemainingV / 2)));\n const thHPadding = thBasePadding;\n const thWhiteSpace = tHeadRowHeight < 36 ? 'nowrap' : 'normal';\n\n const tbUserFontSize = Number(styles.tBody?.fontSize) || 14;\n const tbBasePadding = typeof styles.tbCells?.padding === 'number' ? styles.tbCells.padding : 8;\n const tbAvailH = Math.max(4, tBodyRowHeight - 1);\n const effectiveTbFontSize = Math.min(tbUserFontSize, Math.max(8, tbAvailH - 2));\n const tbRemainingV = Math.max(0, tbAvailH - effectiveTbFontSize);\n const tbVPadding = Math.max(0, Math.min(tbBasePadding, Math.floor(tbRemainingV / 2)));\n const tbHPadding = tbBasePadding;\n const tbWhiteSpace = tBodyRowHeight < 36 ? 'nowrap' : 'normal';\n\n const { padding: _thPad, ...thCellsRest } = styles.thCells || {};\n const { padding: _tbPad, ...tbCellsRest } = styles.tbCells || {};\n\n const { rowHeight: _thRH, backgroundColor: _thBg, ...tHeadRest } = styles.tHead || {};\n const { rowHeight: _tbRH, backgroundColor: _tbBg, ...tBodyRest } = styles.tBody || {};\n\n const tHeadInlineStyles: string = generateInlineStyles(tHeadRest);\n const tBodyInlineStyles: string = generateInlineStyles(tBodyRest);\n const thCellInlineStyles: string = generateInlineStyles({\n ...tHeadRest,\n ...thCellsRest,\n ...(styles.is_bordered ? { border, borderStyle, borderColor } : {})\n });\n const { backgroundColor: _tbBg2, ...tBodyRestNoBg } = tBodyRest;\n const tbCellInlineStyles: string = generateInlineStyles({\n ...tBodyRestNoBg,\n ...tbCellsRest,\n ...(styles.is_bordered ? { border, borderStyle, borderColor } : {})\n });\n\n const getCellMergeInfo = (section: 'thead' | 'tbody', rowIndex: number, colIndex: number) => {\n return tableData?.mergedCells?.find((m: any) =>\n m.section === section &&\n rowIndex >= m.rowStart && rowIndex <= m.rowEnd &&\n colIndex >= m.colStart && colIndex <= m.colEnd\n );\n };\n\n const getPlaceholderValue = (placeholderKey: string): string => {\n const placeholder = placeholders.find((p: any) => p.value === placeholderKey || p.id === placeholderKey || p.field === placeholderKey);\n if (!placeholder) return '';\n if (typeof placeholder.actualValue !== 'undefined') return String(placeholder.actualValue);\n switch (placeholder.type) {\n case 'date': return new Date().toLocaleDateString();\n case 'datetime': return new Date().toLocaleString();\n case 'number': return '123';\n case 'currency': return '$1,234.56';\n case 'email': return 'example@domain.com';\n case 'phone': return '+1 (555) 123-4567';\n case 'url': return 'https://example.com';\n default: return placeholder.label || placeholder.value || placeholderKey;\n }\n };\n\n let theadRowsHTML = '';\n if (tableData?.headerRows && tableData.headerRows.length > 0) {\n theadRowsHTML = tableData.headerRows.map((hRow: any, rowIndex: number) => {\n const rowCellsHTML = hRow.cells.map((hCell: any, colIndex: number) => {\n const mergeInfo = getCellMergeInfo('thead', rowIndex, colIndex);\n if (mergeInfo && (rowIndex !== mergeInfo.rowStart || colIndex !== mergeInfo.colStart)) return '';\n\n const mergeAttributes = mergeInfo ? ` rowspan=\"${mergeInfo.rowEnd - mergeInfo.rowStart + 1}\" colspan=\"${mergeInfo.colEnd - mergeInfo.colStart + 1}\"` : '';\n const cellValue = mergeInfo ? mergeInfo.value : hCell.value;\n\n const cellStyleObj = tableData.cellStyles?.thead?.[rowIndex]?.[colIndex] || {};\n const customCellStyles = Object.keys(cellStyleObj).map(k => `${k.replace(/([A-Z])/g, '-$1').toLowerCase()}: ${cellStyleObj[k]} !important;`).join(' ');\n\n return `<th style=\"${thCellInlineStyles}; vertical-align: middle; min-height: ${tHeadRowHeight}px; box-sizing: border-box; padding: ${thVPadding}px ${thHPadding}px !important; font-size: ${effectiveThFontSize}px !important; line-height: 1 !important; overflow: visible; word-break: break-word; white-space: ${thWhiteSpace === 'nowrap' ? 'normal' : thWhiteSpace}; background-color: ${headBgColor} !important; ${customCellStyles}\"${mergeAttributes}>${cellValue}</th>`;\n }).filter((cell: string) => cell !== '').join('');\n return `<tr style=\"${tHeadInlineStyles}; background-color: ${headBgColor} !important; min-height: ${tHeadRowHeight}px; line-height: 1;\">${rowCellsHTML}</tr>`;\n }).join('');\n } else {\n const headerCellsHTML = (tableData?.columns || []).map((column: any, colIndex: number) => {\n const mergeInfo = getCellMergeInfo('thead', 0, colIndex);\n if (mergeInfo && (colIndex !== mergeInfo.colStart)) return '';\n const mergeAttributes = mergeInfo ? ` rowspan=\"${mergeInfo.rowEnd - mergeInfo.rowStart + 1}\" colspan=\"${mergeInfo.colEnd - mergeInfo.colStart + 1}\"` : '';\n const cellValue = mergeInfo ? mergeInfo.value : column.header;\n const alignStyle = column.align === 'r' ? 'text-align: right;' : column.align === 'l' ? 'text-align: left;' : '';\n\n const cellStyleObj = tableData?.cellStyles?.thead?.[0]?.[colIndex] || {};\n const customCellStyles = Object.keys(cellStyleObj).map(k => `${k.replace(/([A-Z])/g, '-$1').toLowerCase()}: ${cellStyleObj[k]} !important;`).join(' ');\n\n return `<th style=\"${alignStyle}${alignStyle && !alignStyle.endsWith(';') ? ';' : ''}${thCellInlineStyles}; vertical-align: middle; min-height: ${tHeadRowHeight}px; box-sizing: border-box; padding: ${thVPadding}px ${thHPadding}px !important; font-size: ${effectiveThFontSize}px !important; line-height: 1 !important; overflow: visible; word-break: break-word; white-space: ${thWhiteSpace === 'nowrap' ? 'normal' : thWhiteSpace}; background-color: ${headBgColor} !important; ${customCellStyles}\"${mergeAttributes}>${cellValue}</th>`;\n }).filter((cell: string) => cell !== '').join('');\n theadRowsHTML = `<tr style=\"${tHeadInlineStyles}; background-color: ${headBgColor} !important; min-height: ${tHeadRowHeight}px; line-height: 1;\">${headerCellsHTML}</tr>`;\n }\n\n let tableRowsHTML = '';\n const tPlaceholders = attrs?.placeholders;\n\n // Render table rows cleanly without raw handlebars text ejection in tbody\n const rowsToRender = (tableData?.rows && tableData.rows.length > 0) ? tableData.rows : [{}];\n const staticRowsHTML = rowsToRender.map((row: any, rowIndex: number) => {\n const rowBgColor = hasZebra && rowIndex % 2 === 1 ? altColor : mainBgColor;\n const rowStyleAddition = `; background-color: ${rowBgColor} !important;`;\n const cellsHTML = (tableData?.columns || []).map((column: any, colIndex: number) => {\n const mergeInfo = getCellMergeInfo('tbody', rowIndex, colIndex);\n if (mergeInfo && (rowIndex !== mergeInfo.rowStart || colIndex !== mergeInfo.colStart)) return '';\n let cellValue = row[column.id] || '';\n const keys = Object.keys(row || {});\n if (keys.includes(`${column.id}_static`)) {\n cellValue = row[`${column.id}_static`] || '';\n }\n if (!cellValue && tPlaceholders?.[column.id]) {\n cellValue = getPlaceholderValue(tPlaceholders[column.id]);\n }\n const mergeAttributes = mergeInfo ? ` rowspan=\"${mergeInfo.rowEnd - mergeInfo.rowStart + 1}\" colspan=\"${mergeInfo.colEnd - mergeInfo.colStart + 1}\"` : '';\n const finalCellValue = mergeInfo ? mergeInfo.value : cellValue;\n const alignStyle = column.align === 'r' ? 'text-align: right;' : column.align === 'l' ? 'text-align: left;' : '';\n const cellStyleObj = tableData?.cellStyles?.tbody?.[rowIndex]?.[column.id] || {};\n const customCellStyles = Object.keys(cellStyleObj).map(k => `${k.replace(/([A-Z])/g, '-$1').toLowerCase()}: ${cellStyleObj[k]} !important;`).join(' ');\n return `<td style=\"${alignStyle}${alignStyle && !alignStyle.endsWith(';') ? ';' : ''}${tbCellInlineStyles}; vertical-align: middle; min-height: ${tBodyRowHeight}px; box-sizing: border-box; padding: ${tbVPadding}px ${tbHPadding}px !important; font-size: ${effectiveTbFontSize}px !important; line-height: 1 !important; overflow: visible; word-break: break-word; white-space: ${tbWhiteSpace === 'nowrap' ? 'normal' : tbWhiteSpace}; background-color: ${rowBgColor} !important;${rowStyleAddition} ${customCellStyles}\"${mergeAttributes}>${finalCellValue}</td>`;\n }).filter((cell: string) => cell !== '').join('');\n return `<tr style=\"${tBodyInlineStyles}; min-height: ${tBodyRowHeight}px; line-height: 1;${rowStyleAddition}\">${cellsHTML}</tr>`;\n }).join('');\n\n const hasDynamicHandlebars = rowsToRender.some((r: any) =>\n Object.values(r).some((v: any) => typeof v === 'string' && v.includes('{{'))\n ) || (tableData?.columns || []).some((c: any) => tPlaceholders?.[c.id]);\n\n if (isCompiler && hasDynamicHandlebars) {\n const cellsForLoopHTML = (tableData?.columns || []).map((column: any) => {\n const alignStyle = column.align === 'r' ? 'text-align: right;' : column.align === 'l' ? 'text-align: left;' : '';\n let cellValue = rowsToRender[0]?.[column.id] || '';\n const keys = Object.keys(rowsToRender[0] || {});\n if (keys.includes(`${column.id}_static`)) {\n cellValue = rowsToRender[0][`${column.id}_static`] || '';\n }\n if (!cellValue && tPlaceholders?.[column.id]) {\n cellValue = `{{${tPlaceholders[column.id]}}}`;\n }\n\n // Smart fallback resolution for common line item fields inside the loop\n if (cellValue.includes('{{items}}') || cellValue.includes('{{item}}')) {\n cellValue = `{{#if items}}{{items}}{{else if item_data.name}}{{item_data.name}}{{else if item}}{{item}}{{else if description}}{{description}}{{else}}{{items}}{{/if}}`;\n } else if (cellValue.includes('{{quantity}}') || cellValue.includes('{{qty}}')) {\n cellValue = `{{#if quantity}}{{quantity}}{{else if qty}}{{qty}}{{else}}0{{/if}}`;\n } else if (cellValue.includes('{{rate}}') || cellValue.includes('{{price}}')) {\n cellValue = `{{#if rate}}{{rate}}{{else if price}}{{price}}{{else if unit_price}}{{unit_price}}{{else}}0{{/if}}`;\n } else if (cellValue.includes('{{discount_rate}}')) {\n cellValue = `{{#if discount_rate}}{{discount_rate}}{{else}}0{{/if}}`;\n } else if (cellValue.includes('{{discount_amount}}')) {\n cellValue = `{{#if discount_amount}}{{discount_amount}}{{else}}0{{/if}}`;\n }\n\n const cellStyleObj = tableData?.cellStyles?.tbody?.[0]?.[column.id] || {};\n const customCellStyles = Object.keys(cellStyleObj).map(k => `${k.replace(/([A-Z])/g, '-$1').toLowerCase()}: ${cellStyleObj[k]} !important;`).join(' ');\n\n return `<td style=\"${alignStyle}${alignStyle && !alignStyle.endsWith(';') ? ';' : ''}${tbCellInlineStyles}; vertical-align: middle; min-height: ${tBodyRowHeight}px; box-sizing: border-box; padding: ${tbVPadding}px ${tbHPadding}px !important; font-size: ${effectiveTbFontSize}px !important; line-height: 1 !important; overflow: visible; word-break: break-word; white-space: ${tbWhiteSpace === 'nowrap' ? 'normal' : tbWhiteSpace}; background-color: ${mainBgColor} !important; ${customCellStyles}\">${cellValue}</td>`;\n }).join('');\n\n tableRowsHTML = `{{#if sales_item_entries}}\n{{#each sales_item_entries}}\n<tr style=\"${tBodyInlineStyles}; min-height: ${tBodyRowHeight}px; line-height: 1;\">${cellsForLoopHTML}</tr>\n{{/each}}\n{{else if item_entries}}\n{{#each item_entries}}\n<tr style=\"${tBodyInlineStyles}; min-height: ${tBodyRowHeight}px; line-height: 1;\">${cellsForLoopHTML}</tr>\n{{/each}}\n{{else if items}}\n{{#each items}}\n<tr style=\"${tBodyInlineStyles}; min-height: ${tBodyRowHeight}px; line-height: 1;\">${cellsForLoopHTML}</tr>\n{{/each}}\n{{else}}\n${staticRowsHTML}\n{{/if}}`;\n } else {\n tableRowsHTML = staticRowsHTML;\n }\n\n const zebraClass = hasZebra ? 'pbd-table-zebra' : '';\n const zebraStyleTag = hasZebra ? `<style>\n .pbd-table-zebra tbody tr:nth-child(even) { background-color: ${altColor} !important; }\n .pbd-table-zebra tbody tr:nth-child(even) td { background-color: ${altColor} !important; }\n .pbd-table-zebra tbody tr:nth-child(odd) { background-color: ${mainBgColor} !important; }\n .pbd-table-zebra tbody tr:nth-child(odd) td { background-color: ${mainBgColor} !important; }\n </style>` : '';\n\n // Colgroup: use explicit width if stored, otherwise 'auto'.\n // With table-layout:fixed the browser shares width equally across auto columns,\n // matching exactly how the editor renders the table.\n const colgroupHTML = tableData?.columns?.length > 0\n ? `<colgroup>${tableData.columns.map((col: any, colIndex: number) => `<col style=\"width: ${tableData?.cellStyles?.thead?.[0]?.[colIndex]?.width || 'auto'};\">`) .join('')}</colgroup>`\n : '';\n\n\n return `${zebraStyleTag}${useWrapperTrick ? `<div style=\"${wrapperStyles}\">` : ''}<table class=\"${zebraClass}\" style=\"${tInlineStyles}; width: 100%; border-collapse: collapse; height: auto !important; table-layout: fixed; margin: 0 !important; background-color: transparent !important;\">${colgroupHTML}<thead>${theadRowsHTML}</thead><tbody>${tableRowsHTML}</tbody></table>${useWrapperTrick ? `</div>` : ''}`.trim();\n } else if (sectionType === 'qr-code' || sectionType === 'bar-code') {\n return `<div style=\"${inlineStyles}\">${placeholder || '{{data}}'}</div>`;\n } else if (sectionType === 'signature') {\n const signatureText = attrs?.signatureText || 'Signature';\n return `<svg viewBox=\"0 0 300 80\" width=\"100%\" height=\"100%\" preserveAspectRatio=\"xMidYMid meet\" xmlns=\"http://www.w3.org/2000/svg\"><text x=\"50%\" y=\"55%\" dominant-baseline=\"middle\" text-anchor=\"middle\" fill=\"${attrs?.styles?.color || '#333333'}\" style=\"${inlineStyles}\">${signatureText}</text></svg>`;\n }\n\n const hasHtmlTags = /<\\/?[a-z][\\s\\S]*>/i.test(content);\n\n if (!hasHtmlTags) {\n switch (sectionType) {\n case 'text':\n case 'text-block': return `<p style=\"${inlineStyles}\">${content}</p>`;\n case 'heading': return `<h1 style=\"${inlineStyles}\">${content}</h1>`;\n case 'heading-2': return `<h2 style=\"${inlineStyles}\">${content}</h2>`;\n case 'heading-3': return `<h3 style=\"${inlineStyles}\">${content}</h3>`;\n case 'heading-4': return `<h4 style=\"${inlineStyles}\">${content}</h4>`;\n default: return `<p style=\"${inlineStyles}\">${content}</p>`;\n }\n } else {\n try {\n const parser = new DOMParser();\n const doc = parser.parseFromString(`<div>${content}</div>`, 'text/html');\n const container = doc.body.firstChild as Element;\n\n if (container && container.nodeType === Node.ELEMENT_NODE) {\n const elements = container.querySelectorAll('*');\n elements.forEach(element => {\n if (element.tagName === 'SCRIPT' || element.tagName === 'STYLE') return;\n\n const existingStyle = element.getAttribute('style') || '';\n const existingProps: any = {};\n existingStyle.split(';').forEach(prop => {\n const [key, value] = prop.split(':').map(item => item.trim());\n if (key && value) existingProps[key] = value;\n });\n\n const newStyleProps: any = {};\n inlineStyles.split(';').forEach(prop => {\n const [key, value] = prop.split(':').map(item => item.trim());\n if (key && value) newStyleProps[key] = value;\n });\n\n if (element.tagName === 'P' || element.tagName === 'DIV') {\n if (!newStyleProps['line-height'] && !existingProps['line-height']) newStyleProps['line-height'] = '1.5';\n } else if (['H1', 'H2', 'H3', 'H4', 'H5', 'H6'].includes(element.tagName)) {\n if (!newStyleProps['line-height'] && !existingProps['line-height']) newStyleProps['line-height'] = '1.2';\n if (!newStyleProps['margin'] && !existingProps['margin']) newStyleProps['margin'] = '0.5em 0';\n }\n\n const mergedProps = { ...existingProps, ...newStyleProps };\n const mergedStyle = Object.entries(mergedProps)\n .filter(([key, value]) => key && value)\n .map(([key, value]) => `${key}: ${value}`)\n .join('; ');\n\n element.setAttribute('style', mergedStyle);\n });\n let wrapperTag = 'div';\n if (sectionType === 'heading') wrapperTag = 'h1';\n else if (sectionType === 'heading-2') wrapperTag = 'h2';\n else if (sectionType === 'heading-3') wrapperTag = 'h3';\n else if (sectionType === 'heading-4') wrapperTag = 'h4';\n\n return `<${wrapperTag} style=\"${inlineStyles}\">${container.innerHTML}</${wrapperTag}>`;\n }\n } catch (e) {\n // ignore parsing error and return raw content\n }\n return content;\n }\n};\n\n"],"names":["html","TEMPLATE_EDITOR_PATHS","cssScopingService","initialStyles","_a","placeholder","_c","_b","_d"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  const React = require("react");
3
3
  const utils_formBuilderDeconversion = require("../utils/form-builder-deconversion/index.js");
4
- const pathname_rental = require("./pathname.rental-DgH4LoG7.js");
4
+ const pathname_rental = require("./pathname.rental-CwK6JuID.js");
5
5
  const pathname_hrms = require("./pathname.hrms-CbKA0UGK.js");
6
6
  const MODULE_PATHS = {
7
7
  accounting: pathname_rental.PathnameAccounting.FORMS,
@@ -286,4 +286,4 @@ exports.processMembers = processMembers;
286
286
  exports.processTableColumns = processTableColumns;
287
287
  exports.useFormDataEffect = useFormDataEffect;
288
288
  exports.useFormDataProcessor = useFormDataProcessor;
289
- //# sourceMappingURL=common-CS5L0Ld_.js.map
289
+ //# sourceMappingURL=common-PH2uWkqL.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"common-CS5L0Ld_.js","sources":["../../src/views/form-builder/utils/common.ts"],"sourcesContent":["// React imports\nimport { useEffect, useMemo } from \"react\";\n\n// ERP Common imports\nimport formBuilderDeConversion from \"@/utils/form-builder-deconversion\";\n\n// Module pathname imports\nimport { PathnameAccounting } from \"../../../constants/pathnames/pathname.accounting\";\nimport { PathnameCrm } from \"../../../constants/pathnames/pathname.crm\";\nimport { PathnameInventory } from \"../../../constants/pathnames/pathname.inventory\";\nimport { PathnameManufacturing } from \"../../../constants/pathnames/pathname.manufacturing\";\nimport { PathnamePurchase } from \"../../../constants/pathnames/pathname.procurement\";\nimport { PathnameRental } from \"../../../constants/pathnames/pathname.rental\";\nimport { PathnameUsers } from \"../../../constants/pathnames/pathname.user\";\nimport { PathnameHrms } from \"../../../constants/pathnames/pathname.hrms\";\n\n// Types for better type safety\nexport interface TableColumn {\n header: string;\n accessorKey: string;\n visible: boolean;\n}\n\nexport interface FormMember {\n field_type: string;\n table?: string;\n table_columns?: TableColumn[];\n [key: string]: any;\n}\n\nexport interface FormSection {\n field_type: string;\n label: string;\n is_accordion: boolean;\n id: string;\n remove_section: boolean;\n form_switcher_label?: string;\n form_switcher_name?: string;\n is_section_field?: boolean;\n section_type?: string;\n switcher_forms?: any;\n members: FormMember[];\n}\n\nexport interface TabData {\n tab_order: number;\n data: FormSection[];\n}\n\nexport interface ProcessedData {\n tab?: TabData[];\n section?: FormSection[];\n tabsData?: TabData[];\n}\n\n// Constants for module paths\nconst MODULE_PATHS = {\n accounting: PathnameAccounting.FORMS,\n inventory: PathnameInventory.FORMS,\n manufacturing: PathnameManufacturing.FORMS,\n procurement: PathnamePurchase.FORMS,\n crm: PathnameCrm.FORMS,\n rental: PathnameRental.FORMS,\n user: PathnameUsers.FORMS,\n hrms: PathnameHrms.FORMS,\n} as const;\n\nexport type ModuleType = keyof typeof MODULE_PATHS;\n\n// Helper function to format text (converts snake_case to Title Case)\nexport const formatText = (text: string): string => {\n return text ? text\n .split('_')\n .map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())\n .join(' ') : '';\n};\n\n// Helper function to get redirection path\nconst getRedirectionPath = (currentModule: string): string => {\n if (!isValidModule(currentModule)) {\n throw new Error(`Invalid module: ${currentModule}`);\n }\n return MODULE_PATHS[currentModule as ModuleType];\n};\n\n// Type guard for module validation\nconst isValidModule = (module: string): module is ModuleType => {\n return module in MODULE_PATHS;\n};\n\n// Helper function to create default table columns\nexport const createDefaultTableColumns = (): TableColumn[] => [\n { header: \"Column 1\", accessorKey: \"column_1\", visible: true },\n { header: \"Column 2\", accessorKey: \"column_2\", visible: true },\n];\n\n// Helper function to process table columns\nexport const processTableColumns = (\n member: FormMember,\n formBuilder: any\n): TableColumn[] => {\n // Return existing columns if they exist\n if (member.table_columns?.length) {\n return member.table_columns;\n }\n\n // Check if table exists and has fields\n if (!member.table || !formBuilder.fields?.[member.table]) {\n return createDefaultTableColumns();\n }\n\n const fields = formBuilder.fields[member.table];\n if (!Array.isArray(fields) || fields.length === 0) {\n return createDefaultTableColumns();\n }\n\n return fields.map((field: any, index: number) => ({\n header: formatText(field.field),\n accessorKey: field.field,\n visible: index <= 3, // Show first 4 columns by default\n }));\n};\n\n// Helper function to process members\nexport const processMembers = (\n sections: FormSection[],\n formBuilder: any\n): FormMember[] => {\n return sections.flatMap((section) =>\n section.members.map((member) => {\n if (member.field_type === \"table\") {\n return {\n ...member,\n table_columns: processTableColumns(member, formBuilder),\n };\n }\n return { ...member };\n })\n );\n};\n\n// Helper function to extract sections data\nexport const extractSections = (sections: FormSection[]): Omit<FormSection, 'members'>[] => {\n return sections.map(({\n field_type,\n label,\n is_accordion,\n id,\n remove_section,\n form_switcher_label,\n form_switcher_name,\n is_section_field,\n section_type,\n switcher_forms,\n }) => ({\n field_type,\n label,\n is_accordion,\n id,\n remove_section,\n form_switcher_label,\n form_switcher_name,\n is_section_field,\n section_type,\n switcher_forms,\n }));\n};\n\n// Main processing function\nconst processData = (\n data: ProcessedData,\n activeTabId: number = 0,\n formBuilder: any,\n tabsData: TabData[] | null,\n // Callback functions\n callbacks: {\n removeSection: () => void;\n remove: () => void;\n setTabsData: (data: TabData[]) => void;\n append: (members: FormMember[]) => void;\n appendSection: (sections: Omit<FormSection, 'members'>[]) => void;\n }\n): void => {\n const { removeSection, remove, setTabsData, append, appendSection } = callbacks;\n\n try {\n // Clear existing data\n removeSection();\n remove();\n\n if (data.tab) {\n processTabData(data.tab, activeTabId, formBuilder, callbacks);\n } else if (data.section) {\n processSectionData(data.section, formBuilder, callbacks);\n } else if (data.tabsData && tabsData) {\n processExistingTabsData(tabsData, activeTabId, callbacks);\n } else {\n throw new Error(\"Invalid data format: Missing required properties (tab, section, or tabsData)\");\n }\n } catch (error) {\n console.error(\"Error processing data:\", error);\n // You might want to show a user-friendly error message instead of alert\n alert(error instanceof Error ? error.message : \"An error occurred while processing data\");\n }\n};\n\n// Process tab data\nconst processTabData = (\n tabs: TabData[],\n activeTabId: number,\n formBuilder: any,\n callbacks: {\n setTabsData: (data: TabData[]) => void;\n append: (members: FormMember[]) => void;\n appendSection: (sections: Omit<FormSection, 'members'>[]) => void;\n }\n): void => {\n const { setTabsData, append, appendSection } = callbacks;\n\n setTabsData(tabs);\n\n const activeTab = tabs.find(tab => tab.tab_order === activeTabId + 1);\n if (!activeTab?.data) {\n console.warn(`No active tab found for tab order: ${activeTabId + 1}`);\n return;\n }\n\n const sections = extractSections(activeTab.data);\n const members = processMembers(activeTab.data, formBuilder);\n\n append(members);\n appendSection(sections);\n};\n\n// Process section data\nconst processSectionData = (\n sections: FormSection[],\n formBuilder: any,\n callbacks: {\n append: (members: FormMember[]) => void;\n appendSection: (sections: Omit<FormSection, 'members'>[]) => void;\n }\n): void => {\n const { append, appendSection } = callbacks;\n\n const extractedSections = extractSections(sections);\n const members = processMembers(sections, formBuilder);\n\n append(members);\n appendSection(extractedSections);\n};\n\n// Process existing tabs data\nconst processExistingTabsData = (\n tabsData: TabData[],\n activeTabId: number,\n callbacks: {\n append: (members: FormMember[]) => void;\n appendSection: (sections: Omit<FormSection, 'members'>[]) => void;\n }\n): void => {\n const { append, appendSection } = callbacks;\n\n const activeTab = tabsData.find(tab => tab.tab_order === activeTabId + 1);\n if (!activeTab?.data) {\n console.warn(`No active tab found for tab order: ${activeTabId + 1}`);\n return;\n }\n\n const sections = extractSections(activeTab.data);\n const members = activeTab.data.flatMap(section =>\n section.members.map(member => ({ ...member }))\n );\n\n if (members.length > 0) append(members);\n if (sections.length > 0) appendSection(sections);\n};\n\n// Custom hook for form data processing\nexport const useFormDataProcessor = (\n formBuilder: any,\n tabsData: TabData[],\n activeTabValue: number,\n callbacks: {\n removeSection: () => void;\n remove: () => void;\n setTabsData: (data: TabData[]) => void;\n append: (members: FormMember[]) => void;\n appendSection: (sections: Omit<FormSection, 'members'>[]) => void;\n }\n) => {\n const { removeSection, remove, append } = callbacks;\n\n // Memoize the serialized form data to avoid unnecessary re-renders\n const serializedFormData = useMemo(() =>\n JSON.stringify(formBuilder?.formData),\n [formBuilder?.formData]\n );\n\n // Memoize the initial data processing\n const initialData = useMemo(() => {\n if (!formBuilder?.formData?.length) return null;\n\n try {\n return formBuilderDeConversion(formBuilder.formData);\n } catch (error) {\n console.error('Error processing form data:', error);\n return null;\n }\n }, [serializedFormData]);\n\n useEffect(() => {\n // Handle case when there's no initial data\n if (!initialData) {\n removeSection();\n remove();\n append([]);\n return;\n }\n\n // Determine processing strategy based on available data\n try {\n if (tabsData.length > 0) {\n // Process existing tabs data\n processData(\n { tabsData: tabsData },\n activeTabValue,\n formBuilder,\n tabsData,\n callbacks\n );\n } else if (initialData.tab) {\n // Process new tab data\n processData(\n initialData,\n activeTabValue,\n formBuilder,\n tabsData,\n callbacks\n );\n } else if (initialData.section) {\n // Process section data\n processData(\n initialData,\n 0, // No active tab for section-only data\n formBuilder,\n tabsData,\n callbacks\n );\n } else {\n console.warn('No valid data structure found in initialData');\n removeSection();\n remove();\n append([]);\n }\n } catch (error) {\n console.error('Error in form data processing:', error);\n // Reset to clean state on error\n removeSection();\n remove();\n append([]);\n }\n }, [activeTabValue, serializedFormData, tabsData.length, initialData, callbacks, formBuilder]);\n\n return { initialData };\n};\n\n// Alternative: Direct useEffect implementation (if you prefer not to use custom hook)\nexport const useFormDataEffect = (\n formBuilder: any,\n tabsData: TabData[],\n activeTabValue: number = 0,\n callbacks: {\n removeSection: () => void;\n remove: () => void;\n setTabsData: (data: TabData[]) => void;\n append: (members: FormMember[]) => void;\n appendSection: (sections: Omit<FormSection, 'members'>[]) => void;\n }\n) => {\n const { removeSection, remove, append } = callbacks;\n\n useEffect(() => {\n let initialData: ProcessedData | null = null;\n\n // Process initial data\n if (formBuilder?.formData?.length) {\n try {\n initialData = formBuilderDeConversion(formBuilder.formData);\n } catch (error) {\n console.error('Error converting form data:', error);\n }\n }\n\n // Handle empty initial data\n if (!initialData) {\n removeSection();\n remove();\n append([]);\n return;\n }\n\n // Process data based on available structure\n try {\n if (tabsData.length > 0) {\n processData(\n { tabsData: tabsData },\n activeTabValue,\n formBuilder,\n tabsData,\n callbacks\n );\n } else if (initialData.tab) {\n processData(\n initialData,\n activeTabValue,\n formBuilder,\n tabsData,\n callbacks\n );\n } else if (initialData.section) {\n processData(\n initialData,\n 0,\n formBuilder,\n tabsData,\n callbacks\n );\n } else {\n console.warn('Invalid data structure in initialData');\n removeSection();\n remove();\n append([]);\n }\n } catch (error) {\n console.error('Error processing form data:', error);\n // Reset to clean state on error\n removeSection();\n remove();\n append([]);\n }\n }, [activeTabValue, JSON.stringify(formBuilder?.formData), tabsData.length]);\n};\n\n// Usage example:\n/*\n// Option 1: Using custom hook\nconst { initialData } = useFormDataProcessor(\n formBuilder,\n tabsData,\n activeTabValue,\n {\n removeSection,\n remove,\n setTabsData,\n append,\n appendSection\n }\n);\n\n// Option 2: Using direct useEffect\nuseFormDataEffect(\n formBuilder,\n tabsData,\n activeTabValue,\n {\n removeSection,\n remove,\n setTabsData,\n append,\n appendSection\n }\n);\n*/\n\n// Path generation utility (separate from the effect)\nexport const generateModulePath = (currentModule: string): string => {\n try {\n const redirectionPath = getRedirectionPath(currentModule);\n return `/dashboard/${currentModule}${redirectionPath}`;\n } catch (error) {\n console.error('Error generating module path:', error);\n throw error;\n }\n};\n\nexport const generateCustomFormPath = (currentModule,redirectionPath): any => {\n try {\n return `/dashboard/${currentModule}${redirectionPath}`;\n } catch (error) {\n console.error('Error generating module path:', error);\n throw error;\n }\n};"],"names":["PathnameAccounting","PathnameInventory","PathnameManufacturing","PathnamePurchase","PathnameCrm","PathnameRental","PathnameUsers","PathnameHrms","module","useMemo","formBuilderDeConversion","useEffect"],"mappings":"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"}
1
+ {"version":3,"file":"common-PH2uWkqL.js","sources":["../../src/views/form-builder/utils/common.ts"],"sourcesContent":["// React imports\nimport { useEffect, useMemo } from \"react\";\n\n// ERP Common imports\nimport formBuilderDeConversion from \"@/utils/form-builder-deconversion\";\n\n// Module pathname imports\nimport { PathnameAccounting } from \"../../../constants/pathnames/pathname.accounting\";\nimport { PathnameCrm } from \"../../../constants/pathnames/pathname.crm\";\nimport { PathnameInventory } from \"../../../constants/pathnames/pathname.inventory\";\nimport { PathnameManufacturing } from \"../../../constants/pathnames/pathname.manufacturing\";\nimport { PathnamePurchase } from \"../../../constants/pathnames/pathname.procurement\";\nimport { PathnameRental } from \"../../../constants/pathnames/pathname.rental\";\nimport { PathnameUsers } from \"../../../constants/pathnames/pathname.user\";\nimport { PathnameHrms } from \"../../../constants/pathnames/pathname.hrms\";\n\n// Types for better type safety\nexport interface TableColumn {\n header: string;\n accessorKey: string;\n visible: boolean;\n}\n\nexport interface FormMember {\n field_type: string;\n table?: string;\n table_columns?: TableColumn[];\n [key: string]: any;\n}\n\nexport interface FormSection {\n field_type: string;\n label: string;\n is_accordion: boolean;\n id: string;\n remove_section: boolean;\n form_switcher_label?: string;\n form_switcher_name?: string;\n is_section_field?: boolean;\n section_type?: string;\n switcher_forms?: any;\n members: FormMember[];\n}\n\nexport interface TabData {\n tab_order: number;\n data: FormSection[];\n}\n\nexport interface ProcessedData {\n tab?: TabData[];\n section?: FormSection[];\n tabsData?: TabData[];\n}\n\n// Constants for module paths\nconst MODULE_PATHS = {\n accounting: PathnameAccounting.FORMS,\n inventory: PathnameInventory.FORMS,\n manufacturing: PathnameManufacturing.FORMS,\n procurement: PathnamePurchase.FORMS,\n crm: PathnameCrm.FORMS,\n rental: PathnameRental.FORMS,\n user: PathnameUsers.FORMS,\n hrms: PathnameHrms.FORMS,\n} as const;\n\nexport type ModuleType = keyof typeof MODULE_PATHS;\n\n// Helper function to format text (converts snake_case to Title Case)\nexport const formatText = (text: string): string => {\n return text ? text\n .split('_')\n .map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())\n .join(' ') : '';\n};\n\n// Helper function to get redirection path\nconst getRedirectionPath = (currentModule: string): string => {\n if (!isValidModule(currentModule)) {\n throw new Error(`Invalid module: ${currentModule}`);\n }\n return MODULE_PATHS[currentModule as ModuleType];\n};\n\n// Type guard for module validation\nconst isValidModule = (module: string): module is ModuleType => {\n return module in MODULE_PATHS;\n};\n\n// Helper function to create default table columns\nexport const createDefaultTableColumns = (): TableColumn[] => [\n { header: \"Column 1\", accessorKey: \"column_1\", visible: true },\n { header: \"Column 2\", accessorKey: \"column_2\", visible: true },\n];\n\n// Helper function to process table columns\nexport const processTableColumns = (\n member: FormMember,\n formBuilder: any\n): TableColumn[] => {\n // Return existing columns if they exist\n if (member.table_columns?.length) {\n return member.table_columns;\n }\n\n // Check if table exists and has fields\n if (!member.table || !formBuilder.fields?.[member.table]) {\n return createDefaultTableColumns();\n }\n\n const fields = formBuilder.fields[member.table];\n if (!Array.isArray(fields) || fields.length === 0) {\n return createDefaultTableColumns();\n }\n\n return fields.map((field: any, index: number) => ({\n header: formatText(field.field),\n accessorKey: field.field,\n visible: index <= 3, // Show first 4 columns by default\n }));\n};\n\n// Helper function to process members\nexport const processMembers = (\n sections: FormSection[],\n formBuilder: any\n): FormMember[] => {\n return sections.flatMap((section) =>\n section.members.map((member) => {\n if (member.field_type === \"table\") {\n return {\n ...member,\n table_columns: processTableColumns(member, formBuilder),\n };\n }\n return { ...member };\n })\n );\n};\n\n// Helper function to extract sections data\nexport const extractSections = (sections: FormSection[]): Omit<FormSection, 'members'>[] => {\n return sections.map(({\n field_type,\n label,\n is_accordion,\n id,\n remove_section,\n form_switcher_label,\n form_switcher_name,\n is_section_field,\n section_type,\n switcher_forms,\n }) => ({\n field_type,\n label,\n is_accordion,\n id,\n remove_section,\n form_switcher_label,\n form_switcher_name,\n is_section_field,\n section_type,\n switcher_forms,\n }));\n};\n\n// Main processing function\nconst processData = (\n data: ProcessedData,\n activeTabId: number = 0,\n formBuilder: any,\n tabsData: TabData[] | null,\n // Callback functions\n callbacks: {\n removeSection: () => void;\n remove: () => void;\n setTabsData: (data: TabData[]) => void;\n append: (members: FormMember[]) => void;\n appendSection: (sections: Omit<FormSection, 'members'>[]) => void;\n }\n): void => {\n const { removeSection, remove, setTabsData, append, appendSection } = callbacks;\n\n try {\n // Clear existing data\n removeSection();\n remove();\n\n if (data.tab) {\n processTabData(data.tab, activeTabId, formBuilder, callbacks);\n } else if (data.section) {\n processSectionData(data.section, formBuilder, callbacks);\n } else if (data.tabsData && tabsData) {\n processExistingTabsData(tabsData, activeTabId, callbacks);\n } else {\n throw new Error(\"Invalid data format: Missing required properties (tab, section, or tabsData)\");\n }\n } catch (error) {\n console.error(\"Error processing data:\", error);\n // You might want to show a user-friendly error message instead of alert\n alert(error instanceof Error ? error.message : \"An error occurred while processing data\");\n }\n};\n\n// Process tab data\nconst processTabData = (\n tabs: TabData[],\n activeTabId: number,\n formBuilder: any,\n callbacks: {\n setTabsData: (data: TabData[]) => void;\n append: (members: FormMember[]) => void;\n appendSection: (sections: Omit<FormSection, 'members'>[]) => void;\n }\n): void => {\n const { setTabsData, append, appendSection } = callbacks;\n\n setTabsData(tabs);\n\n const activeTab = tabs.find(tab => tab.tab_order === activeTabId + 1);\n if (!activeTab?.data) {\n console.warn(`No active tab found for tab order: ${activeTabId + 1}`);\n return;\n }\n\n const sections = extractSections(activeTab.data);\n const members = processMembers(activeTab.data, formBuilder);\n\n append(members);\n appendSection(sections);\n};\n\n// Process section data\nconst processSectionData = (\n sections: FormSection[],\n formBuilder: any,\n callbacks: {\n append: (members: FormMember[]) => void;\n appendSection: (sections: Omit<FormSection, 'members'>[]) => void;\n }\n): void => {\n const { append, appendSection } = callbacks;\n\n const extractedSections = extractSections(sections);\n const members = processMembers(sections, formBuilder);\n\n append(members);\n appendSection(extractedSections);\n};\n\n// Process existing tabs data\nconst processExistingTabsData = (\n tabsData: TabData[],\n activeTabId: number,\n callbacks: {\n append: (members: FormMember[]) => void;\n appendSection: (sections: Omit<FormSection, 'members'>[]) => void;\n }\n): void => {\n const { append, appendSection } = callbacks;\n\n const activeTab = tabsData.find(tab => tab.tab_order === activeTabId + 1);\n if (!activeTab?.data) {\n console.warn(`No active tab found for tab order: ${activeTabId + 1}`);\n return;\n }\n\n const sections = extractSections(activeTab.data);\n const members = activeTab.data.flatMap(section =>\n section.members.map(member => ({ ...member }))\n );\n\n if (members.length > 0) append(members);\n if (sections.length > 0) appendSection(sections);\n};\n\n// Custom hook for form data processing\nexport const useFormDataProcessor = (\n formBuilder: any,\n tabsData: TabData[],\n activeTabValue: number,\n callbacks: {\n removeSection: () => void;\n remove: () => void;\n setTabsData: (data: TabData[]) => void;\n append: (members: FormMember[]) => void;\n appendSection: (sections: Omit<FormSection, 'members'>[]) => void;\n }\n) => {\n const { removeSection, remove, append } = callbacks;\n\n // Memoize the serialized form data to avoid unnecessary re-renders\n const serializedFormData = useMemo(() =>\n JSON.stringify(formBuilder?.formData),\n [formBuilder?.formData]\n );\n\n // Memoize the initial data processing\n const initialData = useMemo(() => {\n if (!formBuilder?.formData?.length) return null;\n\n try {\n return formBuilderDeConversion(formBuilder.formData);\n } catch (error) {\n console.error('Error processing form data:', error);\n return null;\n }\n }, [serializedFormData]);\n\n useEffect(() => {\n // Handle case when there's no initial data\n if (!initialData) {\n removeSection();\n remove();\n append([]);\n return;\n }\n\n // Determine processing strategy based on available data\n try {\n if (tabsData.length > 0) {\n // Process existing tabs data\n processData(\n { tabsData: tabsData },\n activeTabValue,\n formBuilder,\n tabsData,\n callbacks\n );\n } else if (initialData.tab) {\n // Process new tab data\n processData(\n initialData,\n activeTabValue,\n formBuilder,\n tabsData,\n callbacks\n );\n } else if (initialData.section) {\n // Process section data\n processData(\n initialData,\n 0, // No active tab for section-only data\n formBuilder,\n tabsData,\n callbacks\n );\n } else {\n console.warn('No valid data structure found in initialData');\n removeSection();\n remove();\n append([]);\n }\n } catch (error) {\n console.error('Error in form data processing:', error);\n // Reset to clean state on error\n removeSection();\n remove();\n append([]);\n }\n }, [activeTabValue, serializedFormData, tabsData.length, initialData, callbacks, formBuilder]);\n\n return { initialData };\n};\n\n// Alternative: Direct useEffect implementation (if you prefer not to use custom hook)\nexport const useFormDataEffect = (\n formBuilder: any,\n tabsData: TabData[],\n activeTabValue: number = 0,\n callbacks: {\n removeSection: () => void;\n remove: () => void;\n setTabsData: (data: TabData[]) => void;\n append: (members: FormMember[]) => void;\n appendSection: (sections: Omit<FormSection, 'members'>[]) => void;\n }\n) => {\n const { removeSection, remove, append } = callbacks;\n\n useEffect(() => {\n let initialData: ProcessedData | null = null;\n\n // Process initial data\n if (formBuilder?.formData?.length) {\n try {\n initialData = formBuilderDeConversion(formBuilder.formData);\n } catch (error) {\n console.error('Error converting form data:', error);\n }\n }\n\n // Handle empty initial data\n if (!initialData) {\n removeSection();\n remove();\n append([]);\n return;\n }\n\n // Process data based on available structure\n try {\n if (tabsData.length > 0) {\n processData(\n { tabsData: tabsData },\n activeTabValue,\n formBuilder,\n tabsData,\n callbacks\n );\n } else if (initialData.tab) {\n processData(\n initialData,\n activeTabValue,\n formBuilder,\n tabsData,\n callbacks\n );\n } else if (initialData.section) {\n processData(\n initialData,\n 0,\n formBuilder,\n tabsData,\n callbacks\n );\n } else {\n console.warn('Invalid data structure in initialData');\n removeSection();\n remove();\n append([]);\n }\n } catch (error) {\n console.error('Error processing form data:', error);\n // Reset to clean state on error\n removeSection();\n remove();\n append([]);\n }\n }, [activeTabValue, JSON.stringify(formBuilder?.formData), tabsData.length]);\n};\n\n// Usage example:\n/*\n// Option 1: Using custom hook\nconst { initialData } = useFormDataProcessor(\n formBuilder,\n tabsData,\n activeTabValue,\n {\n removeSection,\n remove,\n setTabsData,\n append,\n appendSection\n }\n);\n\n// Option 2: Using direct useEffect\nuseFormDataEffect(\n formBuilder,\n tabsData,\n activeTabValue,\n {\n removeSection,\n remove,\n setTabsData,\n append,\n appendSection\n }\n);\n*/\n\n// Path generation utility (separate from the effect)\nexport const generateModulePath = (currentModule: string): string => {\n try {\n const redirectionPath = getRedirectionPath(currentModule);\n return `/dashboard/${currentModule}${redirectionPath}`;\n } catch (error) {\n console.error('Error generating module path:', error);\n throw error;\n }\n};\n\nexport const generateCustomFormPath = (currentModule,redirectionPath): any => {\n try {\n return `/dashboard/${currentModule}${redirectionPath}`;\n } catch (error) {\n console.error('Error generating module path:', error);\n throw error;\n }\n};"],"names":["PathnameAccounting","PathnameInventory","PathnameManufacturing","PathnamePurchase","PathnameCrm","PathnameRental","PathnameUsers","PathnameHrms","module","useMemo","formBuilderDeConversion","useEffect"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"common-utility-CA_Upser.js","sources":["../../src/utils/common-utility.tsx"],"sourcesContent":["\nimport React from 'react';\n\nimport { Box } from '@mui/material';\n/* eslint-disable no-mixed-spaces-and-tabs */\nimport Typography from '../components/typography/typography';\nimport { Document } from '../components/icons';\nimport DocumentPreview from '../components/document-preview/document-preview';\nimport { MaterialTableColumnProps, TypeBooleanLabels } from '../components/material-table/material-table';\nimport { TFunction } from 'i18next';\nimport { formatDate, formatUtcDate } from './dateFormat';\nimport { MRT_Row, MRT_RowData } from 'material-react-table';\nimport { Link } from 'react-router-dom';\nimport DefaultAggregation from '../components/material-table/components/default-aggregation';\nimport Chip from '../components/chip/chip';\nimport _ from 'lodash';\nimport images from '../assets/images';\nimport { defaultCurrencySymbol, formatAmount, formatAmountWithCurrency, toFixedWithNumbers, defaultCurrencyFormat } from \"./common\";\n\nimport ValueField from '../components/value-field/value-field';\nimport { formatLabel } from './format-text';\nimport { generateRouteWithId } from './route-utils';\nimport dayjs from 'dayjs';\nimport { useAuth } from '@/contexts';\nimport { getApiConfigSafe } from './api-config';\nconst downloadFile = async (urlString, fileName) => {\n\ttry {\n\t\t// Fetch the file from the provided URL\n\t\tconst apiConfig = getApiConfigSafe();\n\t\tconst s3BucketUrl = apiConfig?.s3BucketUrl || import.meta.env.VITE_S3_BUCKET_URL || '';\n\t\tconst url = urlString.includes(\"http\") ? urlString : s3BucketUrl + urlString;\n\t\tconst response = await fetch(url);\n\t\tif (!response.ok) {\n\t\t\tthrow new Error(`Failed to fetch file: ${response.statusText}`);\n\t\t}\n\n\t\t// Convert the response to a blob\n\t\tconst blob = await response.blob();\n\n\t\t// Create a temporary URL for the blob\n\t\tconst blobUrl = window.URL.createObjectURL(blob);\n\n\t\t// Create a link element\n\t\tconst link = document.createElement('a');\n\t\tlink.href = blobUrl;\n\t\tlink.download = fileName || 'downloaded-file'; // Fallback filename if none provided\n\n\t\t// Append link to the body, trigger click, and remove it\n\t\tdocument.body.appendChild(link);\n\t\tlink.click();\n\t\tdocument.body.removeChild(link);\n\n\t\t// Revoke the blob URL to free up memory\n\t\twindow.URL.revokeObjectURL(blobUrl);\n\t} catch (error) {\n\t\tconsole.error('Error downloading file:', error);\n\t\tthrow error; // Re-throw to allow caller to handle the error\n\t}\n};\n\nexport const getFileNamesFromUrlsAsLink = (fileUrls: string | string[], mode?: string) => {\n\tconst fUrls = fileUrls\n\t\t? Array.isArray(fileUrls)\n\t\t\t? fileUrls\n\t\t\t: [fileUrls]\n\t\t: [];\n\n\tif (fUrls && fUrls.length) {\n\t\treturn (\n\t\t\t<Box\n\t\t\t\tdisplay='flex'\n\t\t\t\tgap={1}\n\t\t\t\tmb={1}\n\t\t\t\talignItems='center'\n\t\t\t\tflexDirection='column'>\n\t\t\t\t{fUrls.map((url) => {\n\t\t\t\t\tconst fileName = url.substring(url.lastIndexOf('/') + 1);\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Typography\n\t\t\t\t\t\t\ttype='s3'\n\t\t\t\t\t\t\tweight='medium'\n\t\t\t\t\t\t\tcolor='#246DFF'\n\t\t\t\t\t\t\tsx={{ textDecoration: 'underline', textUnderlineOffset: '3px', cursor: 'pointer' }}\n\t\t\t\t\t\t\tnoWrap\n\t\t\t\t\t\t\tonClick={() => mode === 'add' ? undefined : downloadFile(url, fileName)}>\n\t\t\t\t\t\t\t{fileName}\n\t\t\t\t\t\t</Typography>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</Box>\n\t\t);\n\t}\n\n\treturn null;\n};\n\nexport const getFileNamesFromUrls = (fileUrls: string[]) => {\n\tif (!fileUrls) return null;\n\n\tif (!fileUrls?.filter(Boolean)?.length) return null;\n\n\treturn fileUrls?.filter(Boolean)?.map((url) => {\n\t\tconst fileName = url?.substring(url?.lastIndexOf('/') + 1) || '';\n\t\treturn (\n\t\t\t<Box display='flex' gap={1} mb={1} alignItems='center'>\n\t\t\t\t<Document fontSize='small' />\n\t\t\t\t<Typography\n\t\t\t\t\ttype='s3'\n\t\t\t\t\tweight='medium'\n\t\t\t\t\tcolor={'theme.secondary.1000'}\n\t\t\t\t\tsx={{ cursor: 'pointer' }}\n\t\t\t\t\tnoWrap onClick={() => downloadFile(url, fileName)}>\n\t\t\t\t\t{fileName}\n\t\t\t\t</Typography>\n\t\t\t\t<DocumentPreview fileUrl={url} />\n\t\t\t</Box>\n\t\t);\n\t});\n};\n\nexport type CurrencySymbolFn = (row: MRT_Row<MRT_RowData>) => string;\nexport type StatusClassesFn = (row: MRT_Row<MRT_RowData>) => string;\nexport type RedirectionLinkFn = (row: MRT_Row<MRT_RowData>) => string;\n\nexport interface ITransformTableColumns {\n\tcolumns: MaterialTableColumnProps[];\n\tcurrencySymbol?: string | CurrencySymbolFn;\n\ttranslationFn?: TFunction<'translation', undefined>;\n\tenableFooter?: boolean;\n\tredirectionLink?: string | RedirectionLinkFn;\n\tredirectionLinkState?: (row: MRT_Row<MRT_RowData>) => void;\n\tredirectionPathWithId?: string;\n\tidField?: string;\n\tcustomizeValue?: (row: MRT_Row<MRT_RowData>, columnAccessorKey?: string, value?: any) => any;\n\tstatusClasses?: string | StatusClassesFn;\n\trows: any[];\n\tcurrencyFormat?: boolean;\n\tfraction?: number;\n}\n\nconst jsonArrayToString = (json: any) => {\n\tif (!json) return '';\n\n\ttry {\n\t\treturn JSON.parse(json)?.join(', ');\n\t} catch (error) {\n\t\treturn '';\n\t}\n};\nconst getStatusClass = (status: any) => {\n\tif (typeof status === 'string') {\n\t\tconst s = status?.toLowerCase()?.replaceAll(' ', '');\n\t\treturn s\n\t} else if (typeof status === 'number') {\n\t\treturn status ? 'enabled' : 'disabled';\n\t}\n};\n\nexport const transformTableColumns = ({\n\tcolumns = [],\n\tcurrencySymbol,\n\ttranslationFn = undefined,\n\tenableFooter = false,\n\tredirectionLink = '',\n\tredirectionLinkState = undefined,\n\tredirectionPathWithId = '',\n\tidField = 'id',\n\tstatusClasses = '',\n\trows = [],\n\tcustomizeValue = undefined,\n\tcurrencyFormat,\n\tfraction\n}: ITransformTableColumns) => {\n\tconst currencyFormatData = currencyFormat ? currencyFormat : defaultCurrencyFormat()\n\n\treturn columns.map((column) => ({\n\t\t...column,\n\t\theader: translationFn ? translationFn(column.header) : column.header,\n\t\tCell: column.Cell ? column.Cell : ({ renderedCellValue, row }: any) => {\n\t\t\tlet v = renderedCellValue;\n\t\t\tconst columnType = column.type || (column.header === \"Amount\" || column.header === \"Rate\" ? \"currency\" : undefined);\n\t\t\tconst isAmount = ['currency', 'amount'].includes(columnType);\n\t\t\tif (typeof v === 'number' && v && String(v)?.includes('.')) {\n\t\t\t\treturn v = isAmount ? formatAmount(v, currencyFormatData, 'before', currencySymbol instanceof Function ? currencySymbol(row) : currencySymbol, fraction) : toFixedWithNumbers(v, fraction);\n\t\t\t}\n\t\t\tswitch (columnType) {\n\t\t\t\tcase 'formattedString':\n\t\t\t\t\tv = formatLabel(renderedCellValue) || '-';\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'date':{\n\t\t\t\t\tconsole.log(\"renderedCellValue d.....\", renderedCellValue)\n\t\t\t\t\tv = formatUtcDate(\n\t\t\t\t\t\trenderedCellValue,\n\t\t\t\t\t\tcolumn.editProperties?.dateFormat || 'DD-MM-YYYY'\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase 'datetime':\n\t\t\t\t\t{\n\t\t\t\t\t\tconsole.log(\"renderedCellValue dt.....\", renderedCellValue)\n\t\t\t\t\t\tv = formatUtcDate(\n\t\t\t\t\t\trenderedCellValue,\n\t\t\t\t\t\tcolumn.editProperties?.dateFormat || 'DD-MM-YYYY hh:mm A'\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase 'currency':\n\t\t\t\tcase 'amount': {\n\t\t\t\t\tconst cs = column?.showDefaultCurrency ? defaultCurrencySymbol() : currencySymbol instanceof Function ? currencySymbol(row) : (currencySymbol || defaultCurrencySymbol());\n\t\t\t\t\tv = renderedCellValue || renderedCellValue == 0\n\t\t\t\t\t\t? `${formatAmount(renderedCellValue, currencyFormatData, 'before', cs, fraction) || '-'}`\n\t\t\t\t\t\t: null;\n\n\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'status':\n\t\t\t\tcase 'enum':\n\t\t\t\tcase 'array':\n\t\t\t\t\t{\n\t\t\t\t\t\tv = renderedCellValue || renderedCellValue === 0 ? (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{Array.isArray(renderedCellValue) ? (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t{renderedCellValue?.length ? <Box sx={{ display: 'flex', alignItems: 'center', gap: 1, flexWrap: 'wrap' }}>\n\t\t\t\t\t\t\t\t\t\t\t{renderedCellValue.map((rcv) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<Chip\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype='normal'\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={column.custom_class ? column?.custom_class : (typeof rcv === 'string' ? rcv : '')}\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Typography type='s4' weight='medium' color={'inherit'}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{typeof rcv === 'object' ? _.get(rcv, column?.typeArrayAccessorKey || '', '') : rcv}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t</Box> : '-'}\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<Chip\n\t\t\t\t\t\t\t\t\t\ttype='normal'\n\t\t\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\t\t\tcolumn.custom_class ? column?.custom_class :\n\t\t\t\t\t\t\t\t\t\t\t\t(statusClasses instanceof Function\n\t\t\t\t\t\t\t\t\t\t\t\t\t? statusClasses(row)\n\t\t\t\t\t\t\t\t\t\t\t\t\t: `${statusClasses}${getStatusClass(renderedCellValue)}`)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tlabel={\n\n\t\t\t\t\t\t\t\t\t\t\t<Typography type='s4' weight='medium' color={'inherit'}>\n\t\t\t\t\t\t\t\t\t\t\t\t{renderedCellValue}\n\t\t\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t'-'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'boolean':\n\t\t\t\t\tv = (\n\t\t\t\t\t\t<Chip\n\t\t\t\t\t\t\ttype='normal'\n\t\t\t\t\t\t\t// active={Boolean(renderedCellValue)}\n\t\t\t\t\t\t\t// inActive={Boolean(!renderedCellValue)}\n\t\t\t\t\t\t\tsx={(theme) => ({\n\t\t\t\t\t\t\t\t...(renderedCellValue ?\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: theme.palette?.theme.tertiary4[200],\n\t\t\t\t\t\t\t\t\t\tcolor: theme.palette?.theme.tertiary4[900]\n\t\t\t\t\t\t\t\t\t} :\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: theme.palette?.theme.tertiary6[200],\n\t\t\t\t\t\t\t\t\t\tcolor: theme.palette?.theme.tertiary6[900]\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t<Typography type='s4' weight='medium' color={'inherit'}>\n\t\t\t\t\t\t\t\t\t{column?.typeBooleanLabels?.[renderedCellValue as keyof TypeBooleanLabels] || '-'}\n\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'jsonArray':\n\t\t\t\t\tv = jsonArrayToString(renderedCellValue);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'custom':\n\t\t\t\tcase 'custom_link':\n\t\t\t\t\tv = customizeValue?.(row, column.accessorKey, renderedCellValue);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'toFixed':\n\t\t\t\t\tv = toFixedWithNumbers(renderedCellValue)\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// Allow customizeValue to override any type's default rendering\n\t\t\t// if (customizeValue) {\n\t\t\t// \tconst customResult = customizeValue(row, column.accessorKey, renderedCellValue);\n\t\t\t// \tif (customResult !== undefined) {\n\t\t\t// \t\tv = customResult;\n\t\t\t// \t}\n\t\t\t// }\n\n\t\t\t// If redirectionPathWithId is provided, use it for URL parameter-based navigation\n\t\t\tif (redirectionPathWithId && column.type != 'custom_link') {\n\t\t\t\tconst id = row.original[idField || 'id'];\n\t\t\t\tif (id) {\n\t\t\t\t\tconst path = redirectionPathWithId instanceof Function ? generateRouteWithId(redirectionPathWithId(row), id?.toString()) : generateRouteWithId(redirectionPathWithId, id?.toString());\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Link to={path}>\n\t\t\t\t\t\t\t{v}\n\t\t\t\t\t\t</Link>\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Fall back to the existing redirection logic\n\t\t\telse if (redirectionLink && column.type != 'custom_link') {\n\t\t\t\tconst id = row.original[idField || 'id'];\n\t\t\t\tconst path = redirectionLink instanceof Function ? generateRouteWithId(redirectionLink(row), id?.toString()) : generateRouteWithId(redirectionLink, id?.toString());\n\t\t\t\treturn (\n\t\t\t\t\t<Link to={path}\n\t\t\t\t\t\tstate={redirectionLinkState?.(row)}>\n\t\t\t\t\t\t{v}\n\t\t\t\t\t</Link>\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn v;\n\t\t},\n\t\t...(Boolean(enableFooter) && {\n\t\t\tFooter: ({ column }) => (\n\t\t\t\t<DefaultAggregation data={rows} column={String(column.id)} />\n\t\t\t)\n\t\t})\n\t}));\n};\n\nexport const renderEmptyRowsFallback = (text: string) => (\n\t<Box className='no-data'>\n\t\t<img src={images.common.tableNoData} />\n\t\t<Typography type='s3' weight='medium' color='theme.secondary.1000'>\n\t\t\t{text}\n\t\t</Typography>\n\t</Box>\n)\n\n/* eslint-disable no-mixed-spaces-and-tabs */\nexport const renderValueField = (label: string, value: any, t: any, formatFn?: (val: any) => string) => {\n\treturn (\n\t\t<ValueField key={label} label={t?.(label)}>\n\t\t\t{formatFn ? formatFn(value) : value ?? '-'}\n\t\t</ValueField>\n\t);\n};\n\nexport const formateValueByType = ({\n\tvalue,\n\ttype,\n\tformat,\n\tweight\n}: {\n\tvalue: any;\n\ttype: string;\n\tformat?: string;\n\tweight?: \"normal\" | \"medium\" | \"bold\";\n}) => {\n\tconst numberTypes = ['number', 'amount', 'toFixed'];\n\tconst valueCheck = [null, undefined, '0'];\n\tif (valueCheck.includes(value)) return <Typography type='s4' weight={weight} color='theme.neutral.1000'>{numberTypes?.includes(type) ? value : (value || '-')}</Typography>;\n\n\tswitch (type) {\n\t\tcase 'date':\n\t\t\treturn dayjs(value).isValid() ? formatDate(value, format) : value;\n\t\tcase 'toFixed':\n\t\t\treturn <Typography type='s4' weight={weight} color='theme.neutral.1000'>{value ? toFixedWithNumbers(Number(value)) : '-'}</Typography>;\n\t\tcase 'amount':\n\t\t\treturn <Typography type='s4' weight={weight} color='theme.neutral.1000'>{value ? formatAmountWithCurrency(Number(value)) : '-'}</Typography>;\n\t\tdefault:\n\t\t\treturn weight ? <Typography type='s4' weight={weight} color='theme.neutral.1000'>{value || '-'}</Typography> : value || '-';\n\t}\n};\n\n\nconst setCompany = (value: any) => {\n\tconst { user } = useAuth();\n\treturn {\n\t\tvalue: user?.company_id,\n\t\toptions: [{\n\t\t\tlabel: user?.company_data?.name,\n\t\t\tvalue: user?.company_id\n\t\t}]\n\t}\n}\nexport const configMapper = {\n\t'company': {\n\t\tcallBack: setCompany,\n\n\t}\n}\n"],"names":["getApiConfigSafe","jsx","Box","Typography","jsxs","Document","DocumentPreview","defaultCurrencyFormat","formatAmount","toFixedWithNumbers","formatLabel","formatUtcDate","defaultCurrencySymbol","Fragment","Chip","_a","_b","_c","_d","generateRouteWithId","Link","column","DefaultAggregation","images","ValueField","formatDate","formatAmountWithCurrency","useAuth"],"mappings":"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"}
1
+ {"version":3,"file":"common-utility-CA_Upser.js","sources":["../../src/utils/common-utility.tsx"],"sourcesContent":["\nimport React from 'react';\n\nimport { Box } from '@mui/material';\n/* eslint-disable no-mixed-spaces-and-tabs */\nimport Typography from '../components/typography/typography';\nimport { Document } from '../components/icons';\nimport DocumentPreview from '../components/document-preview/document-preview';\nimport { MaterialTableColumnProps, TypeBooleanLabels } from '../components/material-table/material-table';\nimport { TFunction } from 'i18next';\nimport { formatDate, formatUtcDate } from './dateFormat';\nimport { MRT_Row, MRT_RowData } from 'material-react-table';\nimport { Link } from 'react-router-dom';\nimport DefaultAggregation from '../components/material-table/components/default-aggregation';\nimport Chip from '../components/chip/chip';\nimport _ from 'lodash';\nimport images from '../assets/images';\nimport { defaultCurrencySymbol, formatAmount, formatAmountWithCurrency, toFixedWithNumbers, defaultCurrencyFormat } from \"./common\";\n\nimport ValueField from '../components/value-field/value-field';\nimport { formatLabel } from './format-text';\nimport { generateRouteWithId } from './route-utils';\nimport dayjs from 'dayjs';\nimport { useAuth } from '../contexts';\nimport { getApiConfigSafe } from './api-config';\nconst downloadFile = async (urlString, fileName) => {\n\ttry {\n\t\t// Fetch the file from the provided URL\n\t\tconst apiConfig = getApiConfigSafe();\n\t\tconst s3BucketUrl = apiConfig?.s3BucketUrl || import.meta.env.VITE_S3_BUCKET_URL || '';\n\t\tconst url = urlString.includes(\"http\") ? urlString : s3BucketUrl + urlString;\n\t\tconst response = await fetch(url);\n\t\tif (!response.ok) {\n\t\t\tthrow new Error(`Failed to fetch file: ${response.statusText}`);\n\t\t}\n\n\t\t// Convert the response to a blob\n\t\tconst blob = await response.blob();\n\n\t\t// Create a temporary URL for the blob\n\t\tconst blobUrl = window.URL.createObjectURL(blob);\n\n\t\t// Create a link element\n\t\tconst link = document.createElement('a');\n\t\tlink.href = blobUrl;\n\t\tlink.download = fileName || 'downloaded-file'; // Fallback filename if none provided\n\n\t\t// Append link to the body, trigger click, and remove it\n\t\tdocument.body.appendChild(link);\n\t\tlink.click();\n\t\tdocument.body.removeChild(link);\n\n\t\t// Revoke the blob URL to free up memory\n\t\twindow.URL.revokeObjectURL(blobUrl);\n\t} catch (error) {\n\t\tconsole.error('Error downloading file:', error);\n\t\tthrow error; // Re-throw to allow caller to handle the error\n\t}\n};\n\nexport const getFileNamesFromUrlsAsLink = (fileUrls: string | string[], mode?: string) => {\n\tconst fUrls = fileUrls\n\t\t? Array.isArray(fileUrls)\n\t\t\t? fileUrls\n\t\t\t: [fileUrls]\n\t\t: [];\n\n\tif (fUrls && fUrls.length) {\n\t\treturn (\n\t\t\t<Box\n\t\t\t\tdisplay='flex'\n\t\t\t\tgap={1}\n\t\t\t\tmb={1}\n\t\t\t\talignItems='center'\n\t\t\t\tflexDirection='column'>\n\t\t\t\t{fUrls.map((url) => {\n\t\t\t\t\tconst fileName = url.substring(url.lastIndexOf('/') + 1);\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Typography\n\t\t\t\t\t\t\ttype='s3'\n\t\t\t\t\t\t\tweight='medium'\n\t\t\t\t\t\t\tcolor='#246DFF'\n\t\t\t\t\t\t\tsx={{ textDecoration: 'underline', textUnderlineOffset: '3px', cursor: 'pointer' }}\n\t\t\t\t\t\t\tnoWrap\n\t\t\t\t\t\t\tonClick={() => mode === 'add' ? undefined : downloadFile(url, fileName)}>\n\t\t\t\t\t\t\t{fileName}\n\t\t\t\t\t\t</Typography>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</Box>\n\t\t);\n\t}\n\n\treturn null;\n};\n\nexport const getFileNamesFromUrls = (fileUrls: string[]) => {\n\tif (!fileUrls) return null;\n\n\tif (!fileUrls?.filter(Boolean)?.length) return null;\n\n\treturn fileUrls?.filter(Boolean)?.map((url) => {\n\t\tconst fileName = url?.substring(url?.lastIndexOf('/') + 1) || '';\n\t\treturn (\n\t\t\t<Box display='flex' gap={1} mb={1} alignItems='center'>\n\t\t\t\t<Document fontSize='small' />\n\t\t\t\t<Typography\n\t\t\t\t\ttype='s3'\n\t\t\t\t\tweight='medium'\n\t\t\t\t\tcolor={'theme.secondary.1000'}\n\t\t\t\t\tsx={{ cursor: 'pointer' }}\n\t\t\t\t\tnoWrap onClick={() => downloadFile(url, fileName)}>\n\t\t\t\t\t{fileName}\n\t\t\t\t</Typography>\n\t\t\t\t<DocumentPreview fileUrl={url} />\n\t\t\t</Box>\n\t\t);\n\t});\n};\n\nexport type CurrencySymbolFn = (row: MRT_Row<MRT_RowData>) => string;\nexport type StatusClassesFn = (row: MRT_Row<MRT_RowData>) => string;\nexport type RedirectionLinkFn = (row: MRT_Row<MRT_RowData>) => string;\n\nexport interface ITransformTableColumns {\n\tcolumns: MaterialTableColumnProps[];\n\tcurrencySymbol?: string | CurrencySymbolFn;\n\ttranslationFn?: TFunction<'translation', undefined>;\n\tenableFooter?: boolean;\n\tredirectionLink?: string | RedirectionLinkFn;\n\tredirectionLinkState?: (row: MRT_Row<MRT_RowData>) => void;\n\tredirectionPathWithId?: string;\n\tidField?: string;\n\tcustomizeValue?: (row: MRT_Row<MRT_RowData>, columnAccessorKey?: string, value?: any) => any;\n\tstatusClasses?: string | StatusClassesFn;\n\trows: any[];\n\tcurrencyFormat?: boolean;\n\tfraction?: number;\n}\n\nconst jsonArrayToString = (json: any) => {\n\tif (!json) return '';\n\n\ttry {\n\t\treturn JSON.parse(json)?.join(', ');\n\t} catch (error) {\n\t\treturn '';\n\t}\n};\nconst getStatusClass = (status: any) => {\n\tif (typeof status === 'string') {\n\t\tconst s = status?.toLowerCase()?.replaceAll(' ', '');\n\t\treturn s\n\t} else if (typeof status === 'number') {\n\t\treturn status ? 'enabled' : 'disabled';\n\t}\n};\n\nexport const transformTableColumns = ({\n\tcolumns = [],\n\tcurrencySymbol,\n\ttranslationFn = undefined,\n\tenableFooter = false,\n\tredirectionLink = '',\n\tredirectionLinkState = undefined,\n\tredirectionPathWithId = '',\n\tidField = 'id',\n\tstatusClasses = '',\n\trows = [],\n\tcustomizeValue = undefined,\n\tcurrencyFormat,\n\tfraction\n}: ITransformTableColumns) => {\n\tconst currencyFormatData = currencyFormat ? currencyFormat : defaultCurrencyFormat()\n\n\treturn columns.map((column) => ({\n\t\t...column,\n\t\theader: translationFn ? translationFn(column.header) : column.header,\n\t\tCell: column.Cell ? column.Cell : ({ renderedCellValue, row }: any) => {\n\t\t\tlet v = renderedCellValue;\n\t\t\tconst columnType = column.type || (column.header === \"Amount\" || column.header === \"Rate\" ? \"currency\" : undefined);\n\t\t\tconst isAmount = ['currency', 'amount'].includes(columnType);\n\t\t\tif (typeof v === 'number' && v && String(v)?.includes('.')) {\n\t\t\t\treturn v = isAmount ? formatAmount(v, currencyFormatData, 'before', currencySymbol instanceof Function ? currencySymbol(row) : currencySymbol, fraction) : toFixedWithNumbers(v, fraction);\n\t\t\t}\n\t\t\tswitch (columnType) {\n\t\t\t\tcase 'formattedString':\n\t\t\t\t\tv = formatLabel(renderedCellValue) || '-';\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'date':{\n\t\t\t\t\tconsole.log(\"renderedCellValue d.....\", renderedCellValue)\n\t\t\t\t\tv = formatUtcDate(\n\t\t\t\t\t\trenderedCellValue,\n\t\t\t\t\t\tcolumn.editProperties?.dateFormat || 'DD-MM-YYYY'\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase 'datetime':\n\t\t\t\t\t{\n\t\t\t\t\t\tconsole.log(\"renderedCellValue dt.....\", renderedCellValue)\n\t\t\t\t\t\tv = formatUtcDate(\n\t\t\t\t\t\trenderedCellValue,\n\t\t\t\t\t\tcolumn.editProperties?.dateFormat || 'DD-MM-YYYY hh:mm A'\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase 'currency':\n\t\t\t\tcase 'amount': {\n\t\t\t\t\tconst cs = column?.showDefaultCurrency ? defaultCurrencySymbol() : currencySymbol instanceof Function ? currencySymbol(row) : (currencySymbol || defaultCurrencySymbol());\n\t\t\t\t\tv = renderedCellValue || renderedCellValue == 0\n\t\t\t\t\t\t? `${formatAmount(renderedCellValue, currencyFormatData, 'before', cs, fraction) || '-'}`\n\t\t\t\t\t\t: null;\n\n\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'status':\n\t\t\t\tcase 'enum':\n\t\t\t\tcase 'array':\n\t\t\t\t\t{\n\t\t\t\t\t\tv = renderedCellValue || renderedCellValue === 0 ? (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{Array.isArray(renderedCellValue) ? (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t{renderedCellValue?.length ? <Box sx={{ display: 'flex', alignItems: 'center', gap: 1, flexWrap: 'wrap' }}>\n\t\t\t\t\t\t\t\t\t\t\t{renderedCellValue.map((rcv) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<Chip\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype='normal'\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={column.custom_class ? column?.custom_class : (typeof rcv === 'string' ? rcv : '')}\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Typography type='s4' weight='medium' color={'inherit'}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{typeof rcv === 'object' ? _.get(rcv, column?.typeArrayAccessorKey || '', '') : rcv}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t</Box> : '-'}\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<Chip\n\t\t\t\t\t\t\t\t\t\ttype='normal'\n\t\t\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\t\t\tcolumn.custom_class ? column?.custom_class :\n\t\t\t\t\t\t\t\t\t\t\t\t(statusClasses instanceof Function\n\t\t\t\t\t\t\t\t\t\t\t\t\t? statusClasses(row)\n\t\t\t\t\t\t\t\t\t\t\t\t\t: `${statusClasses}${getStatusClass(renderedCellValue)}`)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tlabel={\n\n\t\t\t\t\t\t\t\t\t\t\t<Typography type='s4' weight='medium' color={'inherit'}>\n\t\t\t\t\t\t\t\t\t\t\t\t{renderedCellValue}\n\t\t\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t'-'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'boolean':\n\t\t\t\t\tv = (\n\t\t\t\t\t\t<Chip\n\t\t\t\t\t\t\ttype='normal'\n\t\t\t\t\t\t\t// active={Boolean(renderedCellValue)}\n\t\t\t\t\t\t\t// inActive={Boolean(!renderedCellValue)}\n\t\t\t\t\t\t\tsx={(theme) => ({\n\t\t\t\t\t\t\t\t...(renderedCellValue ?\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: theme.palette?.theme.tertiary4[200],\n\t\t\t\t\t\t\t\t\t\tcolor: theme.palette?.theme.tertiary4[900]\n\t\t\t\t\t\t\t\t\t} :\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: theme.palette?.theme.tertiary6[200],\n\t\t\t\t\t\t\t\t\t\tcolor: theme.palette?.theme.tertiary6[900]\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t<Typography type='s4' weight='medium' color={'inherit'}>\n\t\t\t\t\t\t\t\t\t{column?.typeBooleanLabels?.[renderedCellValue as keyof TypeBooleanLabels] || '-'}\n\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'jsonArray':\n\t\t\t\t\tv = jsonArrayToString(renderedCellValue);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'custom':\n\t\t\t\tcase 'custom_link':\n\t\t\t\t\tv = customizeValue?.(row, column.accessorKey, renderedCellValue);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'toFixed':\n\t\t\t\t\tv = toFixedWithNumbers(renderedCellValue)\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// Allow customizeValue to override any type's default rendering\n\t\t\t// if (customizeValue) {\n\t\t\t// \tconst customResult = customizeValue(row, column.accessorKey, renderedCellValue);\n\t\t\t// \tif (customResult !== undefined) {\n\t\t\t// \t\tv = customResult;\n\t\t\t// \t}\n\t\t\t// }\n\n\t\t\t// If redirectionPathWithId is provided, use it for URL parameter-based navigation\n\t\t\tif (redirectionPathWithId && column.type != 'custom_link') {\n\t\t\t\tconst id = row.original[idField || 'id'];\n\t\t\t\tif (id) {\n\t\t\t\t\tconst path = redirectionPathWithId instanceof Function ? generateRouteWithId(redirectionPathWithId(row), id?.toString()) : generateRouteWithId(redirectionPathWithId, id?.toString());\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Link to={path}>\n\t\t\t\t\t\t\t{v}\n\t\t\t\t\t\t</Link>\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Fall back to the existing redirection logic\n\t\t\telse if (redirectionLink && column.type != 'custom_link') {\n\t\t\t\tconst id = row.original[idField || 'id'];\n\t\t\t\tconst path = redirectionLink instanceof Function ? generateRouteWithId(redirectionLink(row), id?.toString()) : generateRouteWithId(redirectionLink, id?.toString());\n\t\t\t\treturn (\n\t\t\t\t\t<Link to={path}\n\t\t\t\t\t\tstate={redirectionLinkState?.(row)}>\n\t\t\t\t\t\t{v}\n\t\t\t\t\t</Link>\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn v;\n\t\t},\n\t\t...(Boolean(enableFooter) && {\n\t\t\tFooter: ({ column }) => (\n\t\t\t\t<DefaultAggregation data={rows} column={String(column.id)} />\n\t\t\t)\n\t\t})\n\t}));\n};\n\nexport const renderEmptyRowsFallback = (text: string) => (\n\t<Box className='no-data'>\n\t\t<img src={images.common.tableNoData} />\n\t\t<Typography type='s3' weight='medium' color='theme.secondary.1000'>\n\t\t\t{text}\n\t\t</Typography>\n\t</Box>\n)\n\n/* eslint-disable no-mixed-spaces-and-tabs */\nexport const renderValueField = (label: string, value: any, t: any, formatFn?: (val: any) => string) => {\n\treturn (\n\t\t<ValueField key={label} label={t?.(label)}>\n\t\t\t{formatFn ? formatFn(value) : value ?? '-'}\n\t\t</ValueField>\n\t);\n};\n\nexport const formateValueByType = ({\n\tvalue,\n\ttype,\n\tformat,\n\tweight\n}: {\n\tvalue: any;\n\ttype: string;\n\tformat?: string;\n\tweight?: \"normal\" | \"medium\" | \"bold\";\n}) => {\n\tconst numberTypes = ['number', 'amount', 'toFixed'];\n\tconst valueCheck = [null, undefined, '0'];\n\tif (valueCheck.includes(value)) return <Typography type='s4' weight={weight} color='theme.neutral.1000'>{numberTypes?.includes(type) ? value : (value || '-')}</Typography>;\n\n\tswitch (type) {\n\t\tcase 'date':\n\t\t\treturn dayjs(value).isValid() ? formatDate(value, format) : value;\n\t\tcase 'toFixed':\n\t\t\treturn <Typography type='s4' weight={weight} color='theme.neutral.1000'>{value ? toFixedWithNumbers(Number(value)) : '-'}</Typography>;\n\t\tcase 'amount':\n\t\t\treturn <Typography type='s4' weight={weight} color='theme.neutral.1000'>{value ? formatAmountWithCurrency(Number(value)) : '-'}</Typography>;\n\t\tdefault:\n\t\t\treturn weight ? <Typography type='s4' weight={weight} color='theme.neutral.1000'>{value || '-'}</Typography> : value || '-';\n\t}\n};\n\n\nconst setCompany = (value: any) => {\n\tconst { user } = useAuth();\n\treturn {\n\t\tvalue: user?.company_id,\n\t\toptions: [{\n\t\t\tlabel: user?.company_data?.name,\n\t\t\tvalue: user?.company_id\n\t\t}]\n\t}\n}\nexport const configMapper = {\n\t'company': {\n\t\tcallBack: setCompany,\n\n\t}\n}\n"],"names":["getApiConfigSafe","jsx","Box","Typography","jsxs","Document","DocumentPreview","defaultCurrencyFormat","formatAmount","toFixedWithNumbers","formatLabel","formatUtcDate","defaultCurrencySymbol","Fragment","Chip","_a","_b","_c","_d","generateRouteWithId","Link","column","DefaultAggregation","images","ValueField","formatDate","formatAmountWithCurrency","useAuth"],"mappings":"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"}
@@ -9,7 +9,7 @@ import { D as DefaultAggregation } from "./default-aggregation-pD4t4gdz.esm.js";
9
9
  import { C as Chip } from "./chip-CrHuY2_O.esm.js";
10
10
  import _ from "lodash";
11
11
  import images from "../images/index.esm.js";
12
- import { l as defaultCurrencyFormat, C as formatAmount, av as toFixedWithNumbers, m as defaultCurrencySymbol, D as formatAmountWithCurrency } from "./api-BIVCMSwW.esm.js";
12
+ import { l as defaultCurrencyFormat, C as formatAmount, av as toFixedWithNumbers, m as defaultCurrencySymbol, D as formatAmountWithCurrency } from "./api-8jutPLh0.esm.js";
13
13
  import { V as ValueField } from "./value-field-DvBGJk5B.esm.js";
14
14
  import { formatLabel } from "../utils/format-text/index.esm.js";
15
15
  import { generateRouteWithId } from "../utils/route-utils/index.esm.js";
@@ -296,4 +296,4 @@ export {
296
296
  renderEmptyRowsFallback as r,
297
297
  transformTableColumns as t
298
298
  };
299
- //# sourceMappingURL=common-utility-DGpbsf7S.esm.js.map
299
+ //# sourceMappingURL=common-utility-CS_sNoAC.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common-utility-CS_sNoAC.esm.js","sources":["../../src/utils/common-utility.tsx"],"sourcesContent":["\nimport React from 'react';\n\nimport { Box } from '@mui/material';\n/* eslint-disable no-mixed-spaces-and-tabs */\nimport Typography from '../components/typography/typography';\nimport { Document } from '../components/icons';\nimport DocumentPreview from '../components/document-preview/document-preview';\nimport { MaterialTableColumnProps, TypeBooleanLabels } from '../components/material-table/material-table';\nimport { TFunction } from 'i18next';\nimport { formatDate, formatUtcDate } from './dateFormat';\nimport { MRT_Row, MRT_RowData } from 'material-react-table';\nimport { Link } from 'react-router-dom';\nimport DefaultAggregation from '../components/material-table/components/default-aggregation';\nimport Chip from '../components/chip/chip';\nimport _ from 'lodash';\nimport images from '../assets/images';\nimport { defaultCurrencySymbol, formatAmount, formatAmountWithCurrency, toFixedWithNumbers, defaultCurrencyFormat } from \"./common\";\n\nimport ValueField from '../components/value-field/value-field';\nimport { formatLabel } from './format-text';\nimport { generateRouteWithId } from './route-utils';\nimport dayjs from 'dayjs';\nimport { useAuth } from '../contexts';\nimport { getApiConfigSafe } from './api-config';\nconst downloadFile = async (urlString, fileName) => {\n\ttry {\n\t\t// Fetch the file from the provided URL\n\t\tconst apiConfig = getApiConfigSafe();\n\t\tconst s3BucketUrl = apiConfig?.s3BucketUrl || import.meta.env.VITE_S3_BUCKET_URL || '';\n\t\tconst url = urlString.includes(\"http\") ? urlString : s3BucketUrl + urlString;\n\t\tconst response = await fetch(url);\n\t\tif (!response.ok) {\n\t\t\tthrow new Error(`Failed to fetch file: ${response.statusText}`);\n\t\t}\n\n\t\t// Convert the response to a blob\n\t\tconst blob = await response.blob();\n\n\t\t// Create a temporary URL for the blob\n\t\tconst blobUrl = window.URL.createObjectURL(blob);\n\n\t\t// Create a link element\n\t\tconst link = document.createElement('a');\n\t\tlink.href = blobUrl;\n\t\tlink.download = fileName || 'downloaded-file'; // Fallback filename if none provided\n\n\t\t// Append link to the body, trigger click, and remove it\n\t\tdocument.body.appendChild(link);\n\t\tlink.click();\n\t\tdocument.body.removeChild(link);\n\n\t\t// Revoke the blob URL to free up memory\n\t\twindow.URL.revokeObjectURL(blobUrl);\n\t} catch (error) {\n\t\tconsole.error('Error downloading file:', error);\n\t\tthrow error; // Re-throw to allow caller to handle the error\n\t}\n};\n\nexport const getFileNamesFromUrlsAsLink = (fileUrls: string | string[], mode?: string) => {\n\tconst fUrls = fileUrls\n\t\t? Array.isArray(fileUrls)\n\t\t\t? fileUrls\n\t\t\t: [fileUrls]\n\t\t: [];\n\n\tif (fUrls && fUrls.length) {\n\t\treturn (\n\t\t\t<Box\n\t\t\t\tdisplay='flex'\n\t\t\t\tgap={1}\n\t\t\t\tmb={1}\n\t\t\t\talignItems='center'\n\t\t\t\tflexDirection='column'>\n\t\t\t\t{fUrls.map((url) => {\n\t\t\t\t\tconst fileName = url.substring(url.lastIndexOf('/') + 1);\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Typography\n\t\t\t\t\t\t\ttype='s3'\n\t\t\t\t\t\t\tweight='medium'\n\t\t\t\t\t\t\tcolor='#246DFF'\n\t\t\t\t\t\t\tsx={{ textDecoration: 'underline', textUnderlineOffset: '3px', cursor: 'pointer' }}\n\t\t\t\t\t\t\tnoWrap\n\t\t\t\t\t\t\tonClick={() => mode === 'add' ? undefined : downloadFile(url, fileName)}>\n\t\t\t\t\t\t\t{fileName}\n\t\t\t\t\t\t</Typography>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</Box>\n\t\t);\n\t}\n\n\treturn null;\n};\n\nexport const getFileNamesFromUrls = (fileUrls: string[]) => {\n\tif (!fileUrls) return null;\n\n\tif (!fileUrls?.filter(Boolean)?.length) return null;\n\n\treturn fileUrls?.filter(Boolean)?.map((url) => {\n\t\tconst fileName = url?.substring(url?.lastIndexOf('/') + 1) || '';\n\t\treturn (\n\t\t\t<Box display='flex' gap={1} mb={1} alignItems='center'>\n\t\t\t\t<Document fontSize='small' />\n\t\t\t\t<Typography\n\t\t\t\t\ttype='s3'\n\t\t\t\t\tweight='medium'\n\t\t\t\t\tcolor={'theme.secondary.1000'}\n\t\t\t\t\tsx={{ cursor: 'pointer' }}\n\t\t\t\t\tnoWrap onClick={() => downloadFile(url, fileName)}>\n\t\t\t\t\t{fileName}\n\t\t\t\t</Typography>\n\t\t\t\t<DocumentPreview fileUrl={url} />\n\t\t\t</Box>\n\t\t);\n\t});\n};\n\nexport type CurrencySymbolFn = (row: MRT_Row<MRT_RowData>) => string;\nexport type StatusClassesFn = (row: MRT_Row<MRT_RowData>) => string;\nexport type RedirectionLinkFn = (row: MRT_Row<MRT_RowData>) => string;\n\nexport interface ITransformTableColumns {\n\tcolumns: MaterialTableColumnProps[];\n\tcurrencySymbol?: string | CurrencySymbolFn;\n\ttranslationFn?: TFunction<'translation', undefined>;\n\tenableFooter?: boolean;\n\tredirectionLink?: string | RedirectionLinkFn;\n\tredirectionLinkState?: (row: MRT_Row<MRT_RowData>) => void;\n\tredirectionPathWithId?: string;\n\tidField?: string;\n\tcustomizeValue?: (row: MRT_Row<MRT_RowData>, columnAccessorKey?: string, value?: any) => any;\n\tstatusClasses?: string | StatusClassesFn;\n\trows: any[];\n\tcurrencyFormat?: boolean;\n\tfraction?: number;\n}\n\nconst jsonArrayToString = (json: any) => {\n\tif (!json) return '';\n\n\ttry {\n\t\treturn JSON.parse(json)?.join(', ');\n\t} catch (error) {\n\t\treturn '';\n\t}\n};\nconst getStatusClass = (status: any) => {\n\tif (typeof status === 'string') {\n\t\tconst s = status?.toLowerCase()?.replaceAll(' ', '');\n\t\treturn s\n\t} else if (typeof status === 'number') {\n\t\treturn status ? 'enabled' : 'disabled';\n\t}\n};\n\nexport const transformTableColumns = ({\n\tcolumns = [],\n\tcurrencySymbol,\n\ttranslationFn = undefined,\n\tenableFooter = false,\n\tredirectionLink = '',\n\tredirectionLinkState = undefined,\n\tredirectionPathWithId = '',\n\tidField = 'id',\n\tstatusClasses = '',\n\trows = [],\n\tcustomizeValue = undefined,\n\tcurrencyFormat,\n\tfraction\n}: ITransformTableColumns) => {\n\tconst currencyFormatData = currencyFormat ? currencyFormat : defaultCurrencyFormat()\n\n\treturn columns.map((column) => ({\n\t\t...column,\n\t\theader: translationFn ? translationFn(column.header) : column.header,\n\t\tCell: column.Cell ? column.Cell : ({ renderedCellValue, row }: any) => {\n\t\t\tlet v = renderedCellValue;\n\t\t\tconst columnType = column.type || (column.header === \"Amount\" || column.header === \"Rate\" ? \"currency\" : undefined);\n\t\t\tconst isAmount = ['currency', 'amount'].includes(columnType);\n\t\t\tif (typeof v === 'number' && v && String(v)?.includes('.')) {\n\t\t\t\treturn v = isAmount ? formatAmount(v, currencyFormatData, 'before', currencySymbol instanceof Function ? currencySymbol(row) : currencySymbol, fraction) : toFixedWithNumbers(v, fraction);\n\t\t\t}\n\t\t\tswitch (columnType) {\n\t\t\t\tcase 'formattedString':\n\t\t\t\t\tv = formatLabel(renderedCellValue) || '-';\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'date':{\n\t\t\t\t\tconsole.log(\"renderedCellValue d.....\", renderedCellValue)\n\t\t\t\t\tv = formatUtcDate(\n\t\t\t\t\t\trenderedCellValue,\n\t\t\t\t\t\tcolumn.editProperties?.dateFormat || 'DD-MM-YYYY'\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase 'datetime':\n\t\t\t\t\t{\n\t\t\t\t\t\tconsole.log(\"renderedCellValue dt.....\", renderedCellValue)\n\t\t\t\t\t\tv = formatUtcDate(\n\t\t\t\t\t\trenderedCellValue,\n\t\t\t\t\t\tcolumn.editProperties?.dateFormat || 'DD-MM-YYYY hh:mm A'\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase 'currency':\n\t\t\t\tcase 'amount': {\n\t\t\t\t\tconst cs = column?.showDefaultCurrency ? defaultCurrencySymbol() : currencySymbol instanceof Function ? currencySymbol(row) : (currencySymbol || defaultCurrencySymbol());\n\t\t\t\t\tv = renderedCellValue || renderedCellValue == 0\n\t\t\t\t\t\t? `${formatAmount(renderedCellValue, currencyFormatData, 'before', cs, fraction) || '-'}`\n\t\t\t\t\t\t: null;\n\n\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'status':\n\t\t\t\tcase 'enum':\n\t\t\t\tcase 'array':\n\t\t\t\t\t{\n\t\t\t\t\t\tv = renderedCellValue || renderedCellValue === 0 ? (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{Array.isArray(renderedCellValue) ? (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t{renderedCellValue?.length ? <Box sx={{ display: 'flex', alignItems: 'center', gap: 1, flexWrap: 'wrap' }}>\n\t\t\t\t\t\t\t\t\t\t\t{renderedCellValue.map((rcv) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<Chip\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype='normal'\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={column.custom_class ? column?.custom_class : (typeof rcv === 'string' ? rcv : '')}\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Typography type='s4' weight='medium' color={'inherit'}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{typeof rcv === 'object' ? _.get(rcv, column?.typeArrayAccessorKey || '', '') : rcv}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t</Box> : '-'}\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<Chip\n\t\t\t\t\t\t\t\t\t\ttype='normal'\n\t\t\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\t\t\tcolumn.custom_class ? column?.custom_class :\n\t\t\t\t\t\t\t\t\t\t\t\t(statusClasses instanceof Function\n\t\t\t\t\t\t\t\t\t\t\t\t\t? statusClasses(row)\n\t\t\t\t\t\t\t\t\t\t\t\t\t: `${statusClasses}${getStatusClass(renderedCellValue)}`)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tlabel={\n\n\t\t\t\t\t\t\t\t\t\t\t<Typography type='s4' weight='medium' color={'inherit'}>\n\t\t\t\t\t\t\t\t\t\t\t\t{renderedCellValue}\n\t\t\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t'-'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'boolean':\n\t\t\t\t\tv = (\n\t\t\t\t\t\t<Chip\n\t\t\t\t\t\t\ttype='normal'\n\t\t\t\t\t\t\t// active={Boolean(renderedCellValue)}\n\t\t\t\t\t\t\t// inActive={Boolean(!renderedCellValue)}\n\t\t\t\t\t\t\tsx={(theme) => ({\n\t\t\t\t\t\t\t\t...(renderedCellValue ?\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: theme.palette?.theme.tertiary4[200],\n\t\t\t\t\t\t\t\t\t\tcolor: theme.palette?.theme.tertiary4[900]\n\t\t\t\t\t\t\t\t\t} :\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: theme.palette?.theme.tertiary6[200],\n\t\t\t\t\t\t\t\t\t\tcolor: theme.palette?.theme.tertiary6[900]\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t<Typography type='s4' weight='medium' color={'inherit'}>\n\t\t\t\t\t\t\t\t\t{column?.typeBooleanLabels?.[renderedCellValue as keyof TypeBooleanLabels] || '-'}\n\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'jsonArray':\n\t\t\t\t\tv = jsonArrayToString(renderedCellValue);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'custom':\n\t\t\t\tcase 'custom_link':\n\t\t\t\t\tv = customizeValue?.(row, column.accessorKey, renderedCellValue);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'toFixed':\n\t\t\t\t\tv = toFixedWithNumbers(renderedCellValue)\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// Allow customizeValue to override any type's default rendering\n\t\t\t// if (customizeValue) {\n\t\t\t// \tconst customResult = customizeValue(row, column.accessorKey, renderedCellValue);\n\t\t\t// \tif (customResult !== undefined) {\n\t\t\t// \t\tv = customResult;\n\t\t\t// \t}\n\t\t\t// }\n\n\t\t\t// If redirectionPathWithId is provided, use it for URL parameter-based navigation\n\t\t\tif (redirectionPathWithId && column.type != 'custom_link') {\n\t\t\t\tconst id = row.original[idField || 'id'];\n\t\t\t\tif (id) {\n\t\t\t\t\tconst path = redirectionPathWithId instanceof Function ? generateRouteWithId(redirectionPathWithId(row), id?.toString()) : generateRouteWithId(redirectionPathWithId, id?.toString());\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Link to={path}>\n\t\t\t\t\t\t\t{v}\n\t\t\t\t\t\t</Link>\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Fall back to the existing redirection logic\n\t\t\telse if (redirectionLink && column.type != 'custom_link') {\n\t\t\t\tconst id = row.original[idField || 'id'];\n\t\t\t\tconst path = redirectionLink instanceof Function ? generateRouteWithId(redirectionLink(row), id?.toString()) : generateRouteWithId(redirectionLink, id?.toString());\n\t\t\t\treturn (\n\t\t\t\t\t<Link to={path}\n\t\t\t\t\t\tstate={redirectionLinkState?.(row)}>\n\t\t\t\t\t\t{v}\n\t\t\t\t\t</Link>\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn v;\n\t\t},\n\t\t...(Boolean(enableFooter) && {\n\t\t\tFooter: ({ column }) => (\n\t\t\t\t<DefaultAggregation data={rows} column={String(column.id)} />\n\t\t\t)\n\t\t})\n\t}));\n};\n\nexport const renderEmptyRowsFallback = (text: string) => (\n\t<Box className='no-data'>\n\t\t<img src={images.common.tableNoData} />\n\t\t<Typography type='s3' weight='medium' color='theme.secondary.1000'>\n\t\t\t{text}\n\t\t</Typography>\n\t</Box>\n)\n\n/* eslint-disable no-mixed-spaces-and-tabs */\nexport const renderValueField = (label: string, value: any, t: any, formatFn?: (val: any) => string) => {\n\treturn (\n\t\t<ValueField key={label} label={t?.(label)}>\n\t\t\t{formatFn ? formatFn(value) : value ?? '-'}\n\t\t</ValueField>\n\t);\n};\n\nexport const formateValueByType = ({\n\tvalue,\n\ttype,\n\tformat,\n\tweight\n}: {\n\tvalue: any;\n\ttype: string;\n\tformat?: string;\n\tweight?: \"normal\" | \"medium\" | \"bold\";\n}) => {\n\tconst numberTypes = ['number', 'amount', 'toFixed'];\n\tconst valueCheck = [null, undefined, '0'];\n\tif (valueCheck.includes(value)) return <Typography type='s4' weight={weight} color='theme.neutral.1000'>{numberTypes?.includes(type) ? value : (value || '-')}</Typography>;\n\n\tswitch (type) {\n\t\tcase 'date':\n\t\t\treturn dayjs(value).isValid() ? formatDate(value, format) : value;\n\t\tcase 'toFixed':\n\t\t\treturn <Typography type='s4' weight={weight} color='theme.neutral.1000'>{value ? toFixedWithNumbers(Number(value)) : '-'}</Typography>;\n\t\tcase 'amount':\n\t\t\treturn <Typography type='s4' weight={weight} color='theme.neutral.1000'>{value ? formatAmountWithCurrency(Number(value)) : '-'}</Typography>;\n\t\tdefault:\n\t\t\treturn weight ? <Typography type='s4' weight={weight} color='theme.neutral.1000'>{value || '-'}</Typography> : value || '-';\n\t}\n};\n\n\nconst setCompany = (value: any) => {\n\tconst { user } = useAuth();\n\treturn {\n\t\tvalue: user?.company_id,\n\t\toptions: [{\n\t\t\tlabel: user?.company_data?.name,\n\t\t\tvalue: user?.company_id\n\t\t}]\n\t}\n}\nexport const configMapper = {\n\t'company': {\n\t\tcallBack: setCompany,\n\n\t}\n}\n"],"names":["_a","_b","_c","_d","column"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"company-selection-modal-B7jFVWWs.js","sources":["../../src/views/template-editor/company-selection-modal/company-selection-modal.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable unused-imports/no-unused-vars */\nimport React from 'react';\n\nimport Modal from '../../../components/modal/modal';\nimport Typography from '../../../components/typography/typography';\nimport Button from '../../../components/button/button';\nimport Select from '../../../components/select/select';\n\nimport {\n\tBox,\n\tDialogActions,\n\tDialogContent,\n\tDialogProps,\n\tDialogTitle,\n\tIconButton,\n\tMenuItem\n} from '@mui/material';\nimport Close from '@mui/icons-material/Close';\n\nimport './company-selection-modal.scss';\nimport { IEmail } from '../utils/types';\nimport { enqueueSnackbar } from 'notistack';\nimport { useNavigate } from 'react-router-dom';\n\ninterface CompanySelectionModalProps {\n\tisOpen: boolean;\n\tsetIsOpen: (value: IEmail | null) => void;\n\tmodalProps?: DialogProps;\n\temail: IEmail;\n\tcompanies: Record<string, any>[];\n\ttemplateRoutes: Record<string, any>\n}\n\nconst CompanySelectionModal: React.FC<CompanySelectionModalProps> = ({\n\tisOpen,\n\tsetIsOpen,\n\tmodalProps,\n\tcompanies,\n\temail,\n\ttemplateRoutes\n}) => {\n\n\tconst navigate = useNavigate();\n\tconst [selectedCompany, setSelectedCompany] = React.useState<number>(0);\n\n\tconst handleModalClose = () => {\n\t\tsetIsOpen(null);\n\t};\n\n\tconst handleContinue = () => {\n\t\tif(!selectedCompany) {\n\t\t\tenqueueSnackbar('Please select a company', { variant: 'error' });\n\t\t\treturn;\n\t\t} else if(!email) {\n\t\t\tenqueueSnackbar('Something went wrong for a subject', { variant: 'error' });\n\t\t\treturn;\n\t\t}\n\n\t\tnavigate(templateRoutes.ADD_TEMPLATE(email._id), { state: { company_id: selectedCompany }})\n\t}\n\n\treturn (\n\t\t<Modal\n\t\t\topen={isOpen}\n\t\t\tonClose={handleModalClose}\n\t\t\tmaxWidth='xs'\n\t\t\tfullWidth\n\t\t\t{...modalProps}>\n\t\t\t<DialogTitle className='companySelectionModal--DialogTitle'>\n\t\t\t\t<Typography type='s3' color='inherit' weight='medium'>\n\t\t\t\t\tSelect Company\n\t\t\t\t</Typography>\n\t\t\t\t<IconButton onClick={handleModalClose}>\n\t\t\t\t\t<Close fontSize='small' />\n\t\t\t\t</IconButton>\n\t\t\t</DialogTitle>\n\t\t\t<DialogContent className='companySelectionModal--DialogContents'>\n\t\t\t\t<Select\n\t\t\t\t\tdisplayEmpty\n\t\t\t\t\tvalue={selectedCompany}\n\t\t\t\t\tsize='small'\n\t\t\t\t\trenderValue={(value) => value ? companies.find((option) => option.value === value)?.label : 'Select Company'}\n\t\t\t\t\tfullWidth\n\t\t\t\t\tsx={{\n\t\t\t\t\t\tbgcolor: 'white',\n\t\t\t\t\t\tborderRadius: 1,\n\t\t\t\t\t\t'& .MuiSelect-select': { py: 0.75 }\n\t\t\t\t\t}}\n\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\tif (e.target.value) {\n\t\t\t\t\t\t\tsetSelectedCompany(e.target.value as number);\n\t\t\t\t\t\t}\n\t\t\t\t\t}}>\n\t\t\t\t\t{companies.map((option) => (\n\t\t\t\t\t\t<MenuItem key={option.value} value={option.value}>\n\t\t\t\t\t\t\t<Typography type='s4' color='theme.secondary.1000'>{option.label}</Typography>\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t))}\n\t\t\t\t</Select>\n\t\t\t</DialogContent>\n\t\t\t<DialogActions className='companySelectionModal--DialogAction'>\n\t\t\t\t<Box display='flex' gap={1.5}>\n\t\t\t\t\t<Button className='companySelectionModal--DialogAction--WhiteBtn' onClick={handleModalClose}>Cancel</Button>\n\t\t\t\t\t<Button onClick={() => handleContinue()} disabled={!selectedCompany}>Continue</Button>\n\t\t\t\t</Box>\n\t\t\t</DialogActions>\n\t\t</Modal>\n\t);\n};\n\nexport default CompanySelectionModal;\n"],"names":["useNavigate","enqueueSnackbar","jsxs","Modal","DialogTitle","jsx","Typography","IconButton","DialogContent","Select","MenuItem","DialogActions","Box","Button"],"mappings":";;;;;;;;;;;;AAkCA,MAAM,wBAA8D,CAAC;AAAA,EACpE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,MAAM;AAEL,QAAM,WAAWA,eAAAA,YAAA;AACjB,QAAM,CAAC,iBAAiB,kBAAkB,IAAI,MAAM,SAAiB,CAAC;AAEtE,QAAM,mBAAmB,MAAM;AAC9B,cAAU,IAAI;AAAA,EACf;AAEA,QAAM,iBAAiB,MAAM;AAC5B,QAAG,CAAC,iBAAiB;AACpBC,gBAAAA,gBAAgB,2BAA2B,EAAE,SAAS,QAAA,CAAS;AAC/D;AAAA,IACD,WAAU,CAAC,OAAO;AACjBA,gBAAAA,gBAAgB,sCAAsC,EAAE,SAAS,QAAA,CAAS;AAC1E;AAAA,IACD;AAEA,aAAS,eAAe,aAAa,MAAM,GAAG,GAAG,EAAE,OAAO,EAAE,YAAY,gBAAA,GAAkB;AAAA,EAC3F;AAEA,SACCC,2BAAAA;AAAAA,IAACC,MAAAA;AAAAA,IAAA;AAAA,MACA,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAS;AAAA,MACT,WAAS;AAAA,MACR,GAAG;AAAA,MACJ,UAAA;AAAA,QAAAD,2BAAAA,KAACE,SAAAA,aAAA,EAAY,WAAU,sCACtB,UAAA;AAAA,UAAAC,2BAAAA,IAACC,WAAAA,cAAW,MAAK,MAAK,OAAM,WAAU,QAAO,UAAS,UAAA,iBAAA,CAEtD;AAAA,UACAD,2BAAAA,IAACE,SAAAA,cAAW,SAAS,kBACpB,yCAAC,OAAA,EAAM,UAAS,SAAQ,EAAA,CACzB;AAAA,QAAA,GACD;AAAA,QACAF,2BAAAA,IAACG,SAAAA,eAAA,EAAc,WAAU,yCACxB,UAAAH,2BAAAA;AAAAA,UAACI,OAAAA;AAAAA,UAAA;AAAA,YACA,cAAY;AAAA,YACZ,OAAO;AAAA,YACP,MAAK;AAAA,YACL,aAAa,CAAC;;AAAU,8BAAQ,eAAU,KAAK,CAAC,WAAW,OAAO,UAAU,KAAK,MAAjD,mBAAoD,QAAQ;AAAA;AAAA,YAC5F,WAAS;AAAA,YACT,IAAI;AAAA,cACH,SAAS;AAAA,cACT,cAAc;AAAA,cACd,uBAAuB,EAAE,IAAI,KAAA;AAAA,YAAK;AAAA,YAEnC,UAAU,CAAC,MAAM;AAChB,kBAAI,EAAE,OAAO,OAAO;AACnB,mCAAmB,EAAE,OAAO,KAAe;AAAA,cAC5C;AAAA,YACD;AAAA,YACC,UAAA,UAAU,IAAI,CAAC,0CACdC,SAAAA,UAAA,EAA4B,OAAO,OAAO,OAC1C,UAAAL,2BAAAA,IAACC,WAAAA,cAAW,MAAK,MAAK,OAAM,wBAAwB,UAAA,OAAO,OAAM,KADnD,OAAO,KAEtB,CACA;AAAA,UAAA;AAAA,QAAA,GAEH;AAAA,QACAD,2BAAAA,IAACM,SAAAA,iBAAc,WAAU,uCACxB,0CAACC,SAAAA,KAAA,EAAI,SAAQ,QAAO,KAAK,KACxB,UAAA;AAAA,UAAAP,+BAACQ,OAAAA,QAAA,EAAO,WAAU,iDAAgD,SAAS,kBAAkB,UAAA,UAAM;AAAA,UACnGR,+BAACQ,OAAAA,UAAO,SAAS,MAAM,kBAAkB,UAAU,CAAC,iBAAiB,UAAA,WAAA,CAAQ;AAAA,QAAA,EAAA,CAC9E,EAAA,CACD;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGH;;"}
1
+ {"version":3,"file":"company-selection-modal-B7jFVWWs.js","sources":["../../src/views/template-editor/company-selection-modal/company-selection-modal.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable unused-imports/no-unused-vars */\nimport React from 'react';\n\nimport Modal from '@/components/modal/modal';\nimport Typography from '@/components/typography/typography';\nimport Button from '@/components/button/button';\nimport Select from '@/components/select/select';\n\nimport {\n\tBox,\n\tDialogActions,\n\tDialogContent,\n\tDialogProps,\n\tDialogTitle,\n\tIconButton,\n\tMenuItem\n} from '@mui/material';\nimport Close from '@mui/icons-material/Close';\n\nimport './company-selection-modal.scss';\nimport { IEmail } from '../utils/types';\nimport { enqueueSnackbar } from 'notistack';\nimport { useNavigate } from 'react-router-dom';\n\ninterface CompanySelectionModalProps {\n\tisOpen: boolean;\n\tsetIsOpen: (value: IEmail | null) => void;\n\tmodalProps?: DialogProps;\n\temail: IEmail;\n\tcompanies: Record<string, any>[];\n\ttemplateRoutes: Record<string, any>\n}\n\nconst CompanySelectionModal: React.FC<CompanySelectionModalProps> = ({\n\tisOpen,\n\tsetIsOpen,\n\tmodalProps,\n\tcompanies,\n\temail,\n\ttemplateRoutes\n}) => {\n\n\tconst navigate = useNavigate();\n\tconst [selectedCompany, setSelectedCompany] = React.useState<number>(0);\n\n\tconst handleModalClose = () => {\n\t\tsetIsOpen(null);\n\t};\n\n\tconst handleContinue = () => {\n\t\tif(!selectedCompany) {\n\t\t\tenqueueSnackbar('Please select a company', { variant: 'error' });\n\t\t\treturn;\n\t\t} else if(!email) {\n\t\t\tenqueueSnackbar('Something went wrong for a subject', { variant: 'error' });\n\t\t\treturn;\n\t\t}\n\n\t\tnavigate(templateRoutes.ADD_TEMPLATE(email._id), { state: { company_id: selectedCompany }})\n\t}\n\n\treturn (\n\t\t<Modal\n\t\t\topen={isOpen}\n\t\t\tonClose={handleModalClose}\n\t\t\tmaxWidth='xs'\n\t\t\tfullWidth\n\t\t\t{...modalProps}>\n\t\t\t<DialogTitle className='companySelectionModal--DialogTitle'>\n\t\t\t\t<Typography type='s3' color='inherit' weight='medium'>\n\t\t\t\t\tSelect Company\n\t\t\t\t</Typography>\n\t\t\t\t<IconButton onClick={handleModalClose}>\n\t\t\t\t\t<Close fontSize='small' />\n\t\t\t\t</IconButton>\n\t\t\t</DialogTitle>\n\t\t\t<DialogContent className='companySelectionModal--DialogContents'>\n\t\t\t\t<Select\n\t\t\t\t\tdisplayEmpty\n\t\t\t\t\tvalue={selectedCompany}\n\t\t\t\t\tsize='small'\n\t\t\t\t\trenderValue={(value) => value ? companies.find((option) => option.value === value)?.label : 'Select Company'}\n\t\t\t\t\tfullWidth\n\t\t\t\t\tsx={{\n\t\t\t\t\t\tbgcolor: 'white',\n\t\t\t\t\t\tborderRadius: 1,\n\t\t\t\t\t\t'& .MuiSelect-select': { py: 0.75 }\n\t\t\t\t\t}}\n\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\tif (e.target.value) {\n\t\t\t\t\t\t\tsetSelectedCompany(e.target.value as number);\n\t\t\t\t\t\t}\n\t\t\t\t\t}}>\n\t\t\t\t\t{companies.map((option) => (\n\t\t\t\t\t\t<MenuItem key={option.value} value={option.value}>\n\t\t\t\t\t\t\t<Typography type='s4' color='theme.secondary.1000'>{option.label}</Typography>\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t))}\n\t\t\t\t</Select>\n\t\t\t</DialogContent>\n\t\t\t<DialogActions className='companySelectionModal--DialogAction'>\n\t\t\t\t<Box display='flex' gap={1.5}>\n\t\t\t\t\t<Button className='companySelectionModal--DialogAction--WhiteBtn' onClick={handleModalClose}>Cancel</Button>\n\t\t\t\t\t<Button onClick={() => handleContinue()} disabled={!selectedCompany}>Continue</Button>\n\t\t\t\t</Box>\n\t\t\t</DialogActions>\n\t\t</Modal>\n\t);\n};\n\nexport default CompanySelectionModal;\n"],"names":["useNavigate","enqueueSnackbar","jsxs","Modal","DialogTitle","jsx","Typography","IconButton","DialogContent","Select","MenuItem","DialogActions","Box","Button"],"mappings":";;;;;;;;;;;;AAkCA,MAAM,wBAA8D,CAAC;AAAA,EACpE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,MAAM;AAEL,QAAM,WAAWA,eAAAA,YAAA;AACjB,QAAM,CAAC,iBAAiB,kBAAkB,IAAI,MAAM,SAAiB,CAAC;AAEtE,QAAM,mBAAmB,MAAM;AAC9B,cAAU,IAAI;AAAA,EACf;AAEA,QAAM,iBAAiB,MAAM;AAC5B,QAAG,CAAC,iBAAiB;AACpBC,gBAAAA,gBAAgB,2BAA2B,EAAE,SAAS,QAAA,CAAS;AAC/D;AAAA,IACD,WAAU,CAAC,OAAO;AACjBA,gBAAAA,gBAAgB,sCAAsC,EAAE,SAAS,QAAA,CAAS;AAC1E;AAAA,IACD;AAEA,aAAS,eAAe,aAAa,MAAM,GAAG,GAAG,EAAE,OAAO,EAAE,YAAY,gBAAA,GAAkB;AAAA,EAC3F;AAEA,SACCC,2BAAAA;AAAAA,IAACC,MAAAA;AAAAA,IAAA;AAAA,MACA,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAS;AAAA,MACT,WAAS;AAAA,MACR,GAAG;AAAA,MACJ,UAAA;AAAA,QAAAD,2BAAAA,KAACE,SAAAA,aAAA,EAAY,WAAU,sCACtB,UAAA;AAAA,UAAAC,2BAAAA,IAACC,WAAAA,cAAW,MAAK,MAAK,OAAM,WAAU,QAAO,UAAS,UAAA,iBAAA,CAEtD;AAAA,UACAD,2BAAAA,IAACE,SAAAA,cAAW,SAAS,kBACpB,yCAAC,OAAA,EAAM,UAAS,SAAQ,EAAA,CACzB;AAAA,QAAA,GACD;AAAA,QACAF,2BAAAA,IAACG,SAAAA,eAAA,EAAc,WAAU,yCACxB,UAAAH,2BAAAA;AAAAA,UAACI,OAAAA;AAAAA,UAAA;AAAA,YACA,cAAY;AAAA,YACZ,OAAO;AAAA,YACP,MAAK;AAAA,YACL,aAAa,CAAC;;AAAU,8BAAQ,eAAU,KAAK,CAAC,WAAW,OAAO,UAAU,KAAK,MAAjD,mBAAoD,QAAQ;AAAA;AAAA,YAC5F,WAAS;AAAA,YACT,IAAI;AAAA,cACH,SAAS;AAAA,cACT,cAAc;AAAA,cACd,uBAAuB,EAAE,IAAI,KAAA;AAAA,YAAK;AAAA,YAEnC,UAAU,CAAC,MAAM;AAChB,kBAAI,EAAE,OAAO,OAAO;AACnB,mCAAmB,EAAE,OAAO,KAAe;AAAA,cAC5C;AAAA,YACD;AAAA,YACC,UAAA,UAAU,IAAI,CAAC,0CACdC,SAAAA,UAAA,EAA4B,OAAO,OAAO,OAC1C,UAAAL,2BAAAA,IAACC,WAAAA,cAAW,MAAK,MAAK,OAAM,wBAAwB,UAAA,OAAO,OAAM,KADnD,OAAO,KAEtB,CACA;AAAA,UAAA;AAAA,QAAA,GAEH;AAAA,QACAD,2BAAAA,IAACM,SAAAA,iBAAc,WAAU,uCACxB,0CAACC,SAAAA,KAAA,EAAI,SAAQ,QAAO,KAAK,KACxB,UAAA;AAAA,UAAAP,+BAACQ,OAAAA,QAAA,EAAO,WAAU,iDAAgD,SAAS,kBAAkB,UAAA,UAAM;AAAA,UACnGR,+BAACQ,OAAAA,UAAO,SAAS,MAAM,kBAAkB,UAAU,CAAC,iBAAiB,UAAA,WAAA,CAAQ;AAAA,QAAA,EAAA,CAC9E,EAAA,CACD;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGH;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"company-selection-modal-Dn2L_skh.esm.js","sources":["../../src/views/template-editor/company-selection-modal/company-selection-modal.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable unused-imports/no-unused-vars */\nimport React from 'react';\n\nimport Modal from '../../../components/modal/modal';\nimport Typography from '../../../components/typography/typography';\nimport Button from '../../../components/button/button';\nimport Select from '../../../components/select/select';\n\nimport {\n\tBox,\n\tDialogActions,\n\tDialogContent,\n\tDialogProps,\n\tDialogTitle,\n\tIconButton,\n\tMenuItem\n} from '@mui/material';\nimport Close from '@mui/icons-material/Close';\n\nimport './company-selection-modal.scss';\nimport { IEmail } from '../utils/types';\nimport { enqueueSnackbar } from 'notistack';\nimport { useNavigate } from 'react-router-dom';\n\ninterface CompanySelectionModalProps {\n\tisOpen: boolean;\n\tsetIsOpen: (value: IEmail | null) => void;\n\tmodalProps?: DialogProps;\n\temail: IEmail;\n\tcompanies: Record<string, any>[];\n\ttemplateRoutes: Record<string, any>\n}\n\nconst CompanySelectionModal: React.FC<CompanySelectionModalProps> = ({\n\tisOpen,\n\tsetIsOpen,\n\tmodalProps,\n\tcompanies,\n\temail,\n\ttemplateRoutes\n}) => {\n\n\tconst navigate = useNavigate();\n\tconst [selectedCompany, setSelectedCompany] = React.useState<number>(0);\n\n\tconst handleModalClose = () => {\n\t\tsetIsOpen(null);\n\t};\n\n\tconst handleContinue = () => {\n\t\tif(!selectedCompany) {\n\t\t\tenqueueSnackbar('Please select a company', { variant: 'error' });\n\t\t\treturn;\n\t\t} else if(!email) {\n\t\t\tenqueueSnackbar('Something went wrong for a subject', { variant: 'error' });\n\t\t\treturn;\n\t\t}\n\n\t\tnavigate(templateRoutes.ADD_TEMPLATE(email._id), { state: { company_id: selectedCompany }})\n\t}\n\n\treturn (\n\t\t<Modal\n\t\t\topen={isOpen}\n\t\t\tonClose={handleModalClose}\n\t\t\tmaxWidth='xs'\n\t\t\tfullWidth\n\t\t\t{...modalProps}>\n\t\t\t<DialogTitle className='companySelectionModal--DialogTitle'>\n\t\t\t\t<Typography type='s3' color='inherit' weight='medium'>\n\t\t\t\t\tSelect Company\n\t\t\t\t</Typography>\n\t\t\t\t<IconButton onClick={handleModalClose}>\n\t\t\t\t\t<Close fontSize='small' />\n\t\t\t\t</IconButton>\n\t\t\t</DialogTitle>\n\t\t\t<DialogContent className='companySelectionModal--DialogContents'>\n\t\t\t\t<Select\n\t\t\t\t\tdisplayEmpty\n\t\t\t\t\tvalue={selectedCompany}\n\t\t\t\t\tsize='small'\n\t\t\t\t\trenderValue={(value) => value ? companies.find((option) => option.value === value)?.label : 'Select Company'}\n\t\t\t\t\tfullWidth\n\t\t\t\t\tsx={{\n\t\t\t\t\t\tbgcolor: 'white',\n\t\t\t\t\t\tborderRadius: 1,\n\t\t\t\t\t\t'& .MuiSelect-select': { py: 0.75 }\n\t\t\t\t\t}}\n\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\tif (e.target.value) {\n\t\t\t\t\t\t\tsetSelectedCompany(e.target.value as number);\n\t\t\t\t\t\t}\n\t\t\t\t\t}}>\n\t\t\t\t\t{companies.map((option) => (\n\t\t\t\t\t\t<MenuItem key={option.value} value={option.value}>\n\t\t\t\t\t\t\t<Typography type='s4' color='theme.secondary.1000'>{option.label}</Typography>\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t))}\n\t\t\t\t</Select>\n\t\t\t</DialogContent>\n\t\t\t<DialogActions className='companySelectionModal--DialogAction'>\n\t\t\t\t<Box display='flex' gap={1.5}>\n\t\t\t\t\t<Button className='companySelectionModal--DialogAction--WhiteBtn' onClick={handleModalClose}>Cancel</Button>\n\t\t\t\t\t<Button onClick={() => handleContinue()} disabled={!selectedCompany}>Continue</Button>\n\t\t\t\t</Box>\n\t\t\t</DialogActions>\n\t\t</Modal>\n\t);\n};\n\nexport default CompanySelectionModal;\n"],"names":["React"],"mappings":";;;;;;;;;;;AAkCA,MAAM,wBAA8D,CAAC;AAAA,EACpE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,MAAM;AAEL,QAAM,WAAW,YAAA;AACjB,QAAM,CAAC,iBAAiB,kBAAkB,IAAIA,eAAM,SAAiB,CAAC;AAEtE,QAAM,mBAAmB,MAAM;AAC9B,cAAU,IAAI;AAAA,EACf;AAEA,QAAM,iBAAiB,MAAM;AAC5B,QAAG,CAAC,iBAAiB;AACpB,sBAAgB,2BAA2B,EAAE,SAAS,QAAA,CAAS;AAC/D;AAAA,IACD,WAAU,CAAC,OAAO;AACjB,sBAAgB,sCAAsC,EAAE,SAAS,QAAA,CAAS;AAC1E;AAAA,IACD;AAEA,aAAS,eAAe,aAAa,MAAM,GAAG,GAAG,EAAE,OAAO,EAAE,YAAY,gBAAA,GAAkB;AAAA,EAC3F;AAEA,SACC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAS;AAAA,MACT,WAAS;AAAA,MACR,GAAG;AAAA,MACJ,UAAA;AAAA,QAAA,qBAAC,aAAA,EAAY,WAAU,sCACtB,UAAA;AAAA,UAAA,oBAAC,cAAW,MAAK,MAAK,OAAM,WAAU,QAAO,UAAS,UAAA,iBAAA,CAEtD;AAAA,UACA,oBAAC,cAAW,SAAS,kBACpB,8BAAC,OAAA,EAAM,UAAS,SAAQ,EAAA,CACzB;AAAA,QAAA,GACD;AAAA,QACA,oBAAC,eAAA,EAAc,WAAU,yCACxB,UAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACA,cAAY;AAAA,YACZ,OAAO;AAAA,YACP,MAAK;AAAA,YACL,aAAa,CAAC;;AAAU,8BAAQ,eAAU,KAAK,CAAC,WAAW,OAAO,UAAU,KAAK,MAAjD,mBAAoD,QAAQ;AAAA;AAAA,YAC5F,WAAS;AAAA,YACT,IAAI;AAAA,cACH,SAAS;AAAA,cACT,cAAc;AAAA,cACd,uBAAuB,EAAE,IAAI,KAAA;AAAA,YAAK;AAAA,YAEnC,UAAU,CAAC,MAAM;AAChB,kBAAI,EAAE,OAAO,OAAO;AACnB,mCAAmB,EAAE,OAAO,KAAe;AAAA,cAC5C;AAAA,YACD;AAAA,YACC,UAAA,UAAU,IAAI,CAAC,+BACd,UAAA,EAA4B,OAAO,OAAO,OAC1C,UAAA,oBAAC,cAAW,MAAK,MAAK,OAAM,wBAAwB,UAAA,OAAO,OAAM,KADnD,OAAO,KAEtB,CACA;AAAA,UAAA;AAAA,QAAA,GAEH;AAAA,QACA,oBAAC,iBAAc,WAAU,uCACxB,+BAAC,KAAA,EAAI,SAAQ,QAAO,KAAK,KACxB,UAAA;AAAA,UAAA,oBAAC,QAAA,EAAO,WAAU,iDAAgD,SAAS,kBAAkB,UAAA,UAAM;AAAA,UACnG,oBAAC,UAAO,SAAS,MAAM,kBAAkB,UAAU,CAAC,iBAAiB,UAAA,WAAA,CAAQ;AAAA,QAAA,EAAA,CAC9E,EAAA,CACD;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGH;"}
1
+ {"version":3,"file":"company-selection-modal-Dn2L_skh.esm.js","sources":["../../src/views/template-editor/company-selection-modal/company-selection-modal.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable unused-imports/no-unused-vars */\nimport React from 'react';\n\nimport Modal from '@/components/modal/modal';\nimport Typography from '@/components/typography/typography';\nimport Button from '@/components/button/button';\nimport Select from '@/components/select/select';\n\nimport {\n\tBox,\n\tDialogActions,\n\tDialogContent,\n\tDialogProps,\n\tDialogTitle,\n\tIconButton,\n\tMenuItem\n} from '@mui/material';\nimport Close from '@mui/icons-material/Close';\n\nimport './company-selection-modal.scss';\nimport { IEmail } from '../utils/types';\nimport { enqueueSnackbar } from 'notistack';\nimport { useNavigate } from 'react-router-dom';\n\ninterface CompanySelectionModalProps {\n\tisOpen: boolean;\n\tsetIsOpen: (value: IEmail | null) => void;\n\tmodalProps?: DialogProps;\n\temail: IEmail;\n\tcompanies: Record<string, any>[];\n\ttemplateRoutes: Record<string, any>\n}\n\nconst CompanySelectionModal: React.FC<CompanySelectionModalProps> = ({\n\tisOpen,\n\tsetIsOpen,\n\tmodalProps,\n\tcompanies,\n\temail,\n\ttemplateRoutes\n}) => {\n\n\tconst navigate = useNavigate();\n\tconst [selectedCompany, setSelectedCompany] = React.useState<number>(0);\n\n\tconst handleModalClose = () => {\n\t\tsetIsOpen(null);\n\t};\n\n\tconst handleContinue = () => {\n\t\tif(!selectedCompany) {\n\t\t\tenqueueSnackbar('Please select a company', { variant: 'error' });\n\t\t\treturn;\n\t\t} else if(!email) {\n\t\t\tenqueueSnackbar('Something went wrong for a subject', { variant: 'error' });\n\t\t\treturn;\n\t\t}\n\n\t\tnavigate(templateRoutes.ADD_TEMPLATE(email._id), { state: { company_id: selectedCompany }})\n\t}\n\n\treturn (\n\t\t<Modal\n\t\t\topen={isOpen}\n\t\t\tonClose={handleModalClose}\n\t\t\tmaxWidth='xs'\n\t\t\tfullWidth\n\t\t\t{...modalProps}>\n\t\t\t<DialogTitle className='companySelectionModal--DialogTitle'>\n\t\t\t\t<Typography type='s3' color='inherit' weight='medium'>\n\t\t\t\t\tSelect Company\n\t\t\t\t</Typography>\n\t\t\t\t<IconButton onClick={handleModalClose}>\n\t\t\t\t\t<Close fontSize='small' />\n\t\t\t\t</IconButton>\n\t\t\t</DialogTitle>\n\t\t\t<DialogContent className='companySelectionModal--DialogContents'>\n\t\t\t\t<Select\n\t\t\t\t\tdisplayEmpty\n\t\t\t\t\tvalue={selectedCompany}\n\t\t\t\t\tsize='small'\n\t\t\t\t\trenderValue={(value) => value ? companies.find((option) => option.value === value)?.label : 'Select Company'}\n\t\t\t\t\tfullWidth\n\t\t\t\t\tsx={{\n\t\t\t\t\t\tbgcolor: 'white',\n\t\t\t\t\t\tborderRadius: 1,\n\t\t\t\t\t\t'& .MuiSelect-select': { py: 0.75 }\n\t\t\t\t\t}}\n\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\tif (e.target.value) {\n\t\t\t\t\t\t\tsetSelectedCompany(e.target.value as number);\n\t\t\t\t\t\t}\n\t\t\t\t\t}}>\n\t\t\t\t\t{companies.map((option) => (\n\t\t\t\t\t\t<MenuItem key={option.value} value={option.value}>\n\t\t\t\t\t\t\t<Typography type='s4' color='theme.secondary.1000'>{option.label}</Typography>\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t))}\n\t\t\t\t</Select>\n\t\t\t</DialogContent>\n\t\t\t<DialogActions className='companySelectionModal--DialogAction'>\n\t\t\t\t<Box display='flex' gap={1.5}>\n\t\t\t\t\t<Button className='companySelectionModal--DialogAction--WhiteBtn' onClick={handleModalClose}>Cancel</Button>\n\t\t\t\t\t<Button onClick={() => handleContinue()} disabled={!selectedCompany}>Continue</Button>\n\t\t\t\t</Box>\n\t\t\t</DialogActions>\n\t\t</Modal>\n\t);\n};\n\nexport default CompanySelectionModal;\n"],"names":["React"],"mappings":";;;;;;;;;;;AAkCA,MAAM,wBAA8D,CAAC;AAAA,EACpE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,MAAM;AAEL,QAAM,WAAW,YAAA;AACjB,QAAM,CAAC,iBAAiB,kBAAkB,IAAIA,eAAM,SAAiB,CAAC;AAEtE,QAAM,mBAAmB,MAAM;AAC9B,cAAU,IAAI;AAAA,EACf;AAEA,QAAM,iBAAiB,MAAM;AAC5B,QAAG,CAAC,iBAAiB;AACpB,sBAAgB,2BAA2B,EAAE,SAAS,QAAA,CAAS;AAC/D;AAAA,IACD,WAAU,CAAC,OAAO;AACjB,sBAAgB,sCAAsC,EAAE,SAAS,QAAA,CAAS;AAC1E;AAAA,IACD;AAEA,aAAS,eAAe,aAAa,MAAM,GAAG,GAAG,EAAE,OAAO,EAAE,YAAY,gBAAA,GAAkB;AAAA,EAC3F;AAEA,SACC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAS;AAAA,MACT,WAAS;AAAA,MACR,GAAG;AAAA,MACJ,UAAA;AAAA,QAAA,qBAAC,aAAA,EAAY,WAAU,sCACtB,UAAA;AAAA,UAAA,oBAAC,cAAW,MAAK,MAAK,OAAM,WAAU,QAAO,UAAS,UAAA,iBAAA,CAEtD;AAAA,UACA,oBAAC,cAAW,SAAS,kBACpB,8BAAC,OAAA,EAAM,UAAS,SAAQ,EAAA,CACzB;AAAA,QAAA,GACD;AAAA,QACA,oBAAC,eAAA,EAAc,WAAU,yCACxB,UAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACA,cAAY;AAAA,YACZ,OAAO;AAAA,YACP,MAAK;AAAA,YACL,aAAa,CAAC;;AAAU,8BAAQ,eAAU,KAAK,CAAC,WAAW,OAAO,UAAU,KAAK,MAAjD,mBAAoD,QAAQ;AAAA;AAAA,YAC5F,WAAS;AAAA,YACT,IAAI;AAAA,cACH,SAAS;AAAA,cACT,cAAc;AAAA,cACd,uBAAuB,EAAE,IAAI,KAAA;AAAA,YAAK;AAAA,YAEnC,UAAU,CAAC,MAAM;AAChB,kBAAI,EAAE,OAAO,OAAO;AACnB,mCAAmB,EAAE,OAAO,KAAe;AAAA,cAC5C;AAAA,YACD;AAAA,YACC,UAAA,UAAU,IAAI,CAAC,+BACd,UAAA,EAA4B,OAAO,OAAO,OAC1C,UAAA,oBAAC,cAAW,MAAK,MAAK,OAAM,wBAAwB,UAAA,OAAO,OAAM,KADnD,OAAO,KAEtB,CACA;AAAA,UAAA;AAAA,QAAA,GAEH;AAAA,QACA,oBAAC,iBAAc,WAAU,uCACxB,+BAAC,KAAA,EAAI,SAAQ,QAAO,KAAK,KACxB,UAAA;AAAA,UAAA,oBAAC,QAAA,EAAO,WAAU,iDAAgD,SAAS,kBAAkB,UAAA,UAAM;AAAA,UACnG,oBAAC,UAAO,SAAS,MAAM,kBAAkB,UAAU,CAAC,iBAAiB,UAAA,WAAA,CAAQ;AAAA,QAAA,EAAA,CAC9E,EAAA,CACD;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGH;"}