@erpsquad/common 1.11.8 → 1.11.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (599) hide show
  1. package/dist/api-client/index.esm.js +1 -1
  2. package/dist/api-client/index.js +1 -1
  3. package/dist/chunks/{DynamicDependentField-C0XXmMlG.esm.js → DynamicDependentField-CzEJwzIq.esm.js} +2 -2
  4. package/dist/chunks/{DynamicDependentField-C0XXmMlG.esm.js.map → DynamicDependentField-CzEJwzIq.esm.js.map} +1 -1
  5. package/dist/chunks/{DynamicDependentField-CQIfDDqc.js → DynamicDependentField-D8K1QyqC.js} +2 -2
  6. package/dist/chunks/{DynamicDependentField-CQIfDDqc.js.map → DynamicDependentField-D8K1QyqC.js.map} +1 -1
  7. package/dist/chunks/{ERPUIProvider-I4j_X_SD.esm.js → ERPUIProvider-CqbIIC8j.esm.js} +3 -3
  8. package/dist/chunks/{ERPUIProvider-I4j_X_SD.esm.js.map → ERPUIProvider-CqbIIC8j.esm.js.map} +1 -1
  9. package/dist/chunks/{ERPUIProvider-CcSTcdEo.js → ERPUIProvider-TOq-GnAq.js} +3 -3
  10. package/dist/chunks/{ERPUIProvider-CcSTcdEo.js.map → ERPUIProvider-TOq-GnAq.js.map} +1 -1
  11. package/dist/chunks/{FORMS-pxf6g6xE.esm.js → FORMS-C1qQnoDd.esm.js} +7 -7
  12. package/dist/chunks/{FORMS-pxf6g6xE.esm.js.map → FORMS-C1qQnoDd.esm.js.map} +1 -1
  13. package/dist/chunks/{FORMS-CUx32b_4.js → FORMS-qlTftaaD.js} +7 -7
  14. package/dist/chunks/{FORMS-CUx32b_4.js.map → FORMS-qlTftaaD.js.map} +1 -1
  15. package/dist/chunks/{FlexibleReduxExample--GtoEJhc.js → FlexibleReduxExample-BEK1732S.js} +4 -4
  16. package/dist/chunks/{FlexibleReduxExample--GtoEJhc.js.map → FlexibleReduxExample-BEK1732S.js.map} +1 -1
  17. package/dist/chunks/{FlexibleReduxExample-C-2qOGIw.esm.js → FlexibleReduxExample-CfMjfKUf.esm.js} +4 -4
  18. package/dist/chunks/{FlexibleReduxExample-C-2qOGIw.esm.js.map → FlexibleReduxExample-CfMjfKUf.esm.js.map} +1 -1
  19. package/dist/chunks/{SectionFlowEditor-sKsZ3oQo.js → SectionFlowEditor-Bo7czbNc.js} +5 -5
  20. package/dist/chunks/{SectionFlowEditor-sKsZ3oQo.js.map → SectionFlowEditor-Bo7czbNc.js.map} +1 -1
  21. package/dist/chunks/{SectionFlowEditor-CFfJBYKx.esm.js → SectionFlowEditor-Ch24-oHf.esm.js} +5 -5
  22. package/dist/chunks/{SectionFlowEditor-CFfJBYKx.esm.js.map → SectionFlowEditor-Ch24-oHf.esm.js.map} +1 -1
  23. package/dist/chunks/{action-bar-C7Alva4T.esm.js → action-bar-BQ3DcZpw.esm.js} +4 -4
  24. package/dist/chunks/{action-bar-C7Alva4T.esm.js.map → action-bar-BQ3DcZpw.esm.js.map} +1 -1
  25. package/dist/chunks/{action-bar-DdtpxWNk.js → action-bar-CiYO9X02.js} +4 -4
  26. package/dist/chunks/{action-bar-DdtpxWNk.js.map → action-bar-CiYO9X02.js.map} +1 -1
  27. package/dist/chunks/{actionCreator-o4ecxFME.js → actionCreator-BdAKTPvT.js} +3 -3
  28. package/dist/chunks/{actionCreator-o4ecxFME.js.map → actionCreator-BdAKTPvT.js.map} +1 -1
  29. package/dist/chunks/{actionCreator-Cl8vPLVO.esm.js → actionCreator-C5C0Rg3P.esm.js} +2 -2
  30. package/dist/chunks/{actionCreator-Cl8vPLVO.esm.js.map → actionCreator-C5C0Rg3P.esm.js.map} +1 -1
  31. package/dist/chunks/{actionCreator-Cb3NxILP.esm.js → actionCreator-C6VISpYt.esm.js} +3 -3
  32. package/dist/chunks/{actionCreator-Cb3NxILP.esm.js.map → actionCreator-C6VISpYt.esm.js.map} +1 -1
  33. package/dist/chunks/{actionCreator-Dar9Z8_d.esm.js → actionCreator-C7fR-FtF.esm.js} +2 -2
  34. package/dist/chunks/{actionCreator-Dar9Z8_d.esm.js.map → actionCreator-C7fR-FtF.esm.js.map} +1 -1
  35. package/dist/chunks/{actionCreator-CMigYdax.js → actionCreator-CPRDrGDt.js} +3 -3
  36. package/dist/chunks/{actionCreator-CMigYdax.js.map → actionCreator-CPRDrGDt.js.map} +1 -1
  37. package/dist/chunks/{actionCreator-CXmvL3vl.js → actionCreator-D1M0-Fq1.js} +2 -2
  38. package/dist/chunks/{actionCreator-CXmvL3vl.js.map → actionCreator-D1M0-Fq1.js.map} +1 -1
  39. package/dist/chunks/{actionCreator-Bas2FW_X.js → actionCreator-Dds_g-Bu.js} +2 -2
  40. package/dist/chunks/{actionCreator-Bas2FW_X.js.map → actionCreator-Dds_g-Bu.js.map} +1 -1
  41. package/dist/chunks/{actionCreator-CpePNxQM.esm.js → actionCreator-EaDmUCRb.esm.js} +2 -2
  42. package/dist/chunks/{actionCreator-CpePNxQM.esm.js.map → actionCreator-EaDmUCRb.esm.js.map} +1 -1
  43. package/dist/chunks/{actionCreator-CL5ICuqZ.esm.js → actionCreator-Jk4efZIf.esm.js} +3 -3
  44. package/dist/chunks/{actionCreator-CL5ICuqZ.esm.js.map → actionCreator-Jk4efZIf.esm.js.map} +1 -1
  45. package/dist/chunks/{actionCreator-Dl5gTT9c.js → actionCreator-cbPvURIw.js} +2 -2
  46. package/dist/chunks/{actionCreator-Dl5gTT9c.js.map → actionCreator-cbPvURIw.js.map} +1 -1
  47. package/dist/chunks/{add-template-DVvbD9a4.esm.js → add-template-CMJffU6X.esm.js} +2 -2
  48. package/dist/chunks/{add-template-DVvbD9a4.esm.js.map → add-template-CMJffU6X.esm.js.map} +1 -1
  49. package/dist/chunks/{add-template-Dohg2bHJ.js → add-template-xJNMepo_.js} +2 -2
  50. package/dist/chunks/{add-template-Dohg2bHJ.js.map → add-template-xJNMepo_.js.map} +1 -1
  51. package/dist/chunks/{address-modal-CYhiC7ui.js → address-modal-D-FwM2i_.js} +2 -2
  52. package/dist/chunks/{address-modal-CYhiC7ui.js.map → address-modal-D-FwM2i_.js.map} +1 -1
  53. package/dist/chunks/{address-modal-CkDBjnye.esm.js → address-modal-DuLY8PAg.esm.js} +2 -2
  54. package/dist/chunks/{address-modal-CkDBjnye.esm.js.map → address-modal-DuLY8PAg.esm.js.map} +1 -1
  55. package/dist/chunks/{ai-summary-BxcrnNNM.js → ai-summary-CzLIVEbV.js} +3 -3
  56. package/dist/chunks/{ai-summary-BxcrnNNM.js.map → ai-summary-CzLIVEbV.js.map} +1 -1
  57. package/dist/chunks/{ai-summary-SKK5KN2s.esm.js → ai-summary-DGQyEhsD.esm.js} +3 -3
  58. package/dist/chunks/{ai-summary-SKK5KN2s.esm.js.map → ai-summary-DGQyEhsD.esm.js.map} +1 -1
  59. package/dist/chunks/{api-DBhNDBh9.js → api-CMF1LApB.js} +57 -1
  60. package/dist/chunks/{api-DBhNDBh9.js.map → api-CMF1LApB.js.map} +1 -1
  61. package/dist/chunks/{api-BIVCMSwW.esm.js → api-COFUx2RW.esm.js} +2 -2
  62. package/dist/chunks/{api-BIVCMSwW.esm.js.map → api-COFUx2RW.esm.js.map} +1 -1
  63. package/dist/chunks/{api-Bl6wVi9D.esm.js → api-D4FV2rsK.esm.js} +69 -13
  64. package/dist/chunks/{api-Bl6wVi9D.esm.js.map → api-D4FV2rsK.esm.js.map} +1 -1
  65. package/dist/chunks/{api-EomXz8pk.js → api-DuBJvpDR.js} +2 -2
  66. package/dist/chunks/{api-EomXz8pk.js.map → api-DuBJvpDR.js.map} +1 -1
  67. package/dist/chunks/{appbar-rqqjZ99v.js → appbar-DzkTUvFH.js} +2 -2
  68. package/dist/chunks/{appbar-rqqjZ99v.js.map → appbar-DzkTUvFH.js.map} +1 -1
  69. package/dist/chunks/{appbar-BRbO--as.esm.js → appbar-NK7cEVYo.esm.js} +2 -2
  70. package/dist/chunks/{appbar-BRbO--as.esm.js.map → appbar-NK7cEVYo.esm.js.map} +1 -1
  71. package/dist/chunks/{approval-wrapper-BTtmXMlk.esm.js → approval-wrapper-Dkc8WEg5.esm.js} +2 -2
  72. package/dist/chunks/{approval-wrapper-BTtmXMlk.esm.js.map → approval-wrapper-Dkc8WEg5.esm.js.map} +1 -1
  73. package/dist/chunks/{approval-wrapper-BM5NxbtT.js → approval-wrapper-Nh3CVait.js} +2 -2
  74. package/dist/chunks/{approval-wrapper-BM5NxbtT.js.map → approval-wrapper-Nh3CVait.js.map} +1 -1
  75. package/dist/chunks/{chat-bot-BpNtrZEL.esm.js → chat-bot-3MwduUlf.esm.js} +245 -68
  76. package/dist/chunks/chat-bot-3MwduUlf.esm.js.map +1 -0
  77. package/dist/chunks/{chat-bot-osiGMG3g.js → chat-bot-sjkDRlr3.js} +244 -67
  78. package/dist/chunks/chat-bot-sjkDRlr3.js.map +1 -0
  79. package/dist/chunks/{common-utility-DGpbsf7S.esm.js → common-utility-GjUrjpEf.esm.js} +2 -2
  80. package/dist/chunks/{common-utility-DGpbsf7S.esm.js.map → common-utility-GjUrjpEf.esm.js.map} +1 -1
  81. package/dist/chunks/{common-utility-CA_Upser.js → common-utility-TLpddkaa.js} +2 -2
  82. package/dist/chunks/{common-utility-CA_Upser.js.map → common-utility-TLpddkaa.js.map} +1 -1
  83. package/dist/chunks/{custom-editor-6-xqhKz6.esm.js → custom-editor-BjUUIs4F.esm.js} +2 -2
  84. package/dist/chunks/{custom-editor-6-xqhKz6.esm.js.map → custom-editor-BjUUIs4F.esm.js.map} +1 -1
  85. package/dist/chunks/{custom-editor-BeLYFfpv.js → custom-editor-ByC55Z4G.js} +2 -2
  86. package/dist/chunks/{custom-editor-BeLYFfpv.js.map → custom-editor-ByC55Z4G.js.map} +1 -1
  87. package/dist/chunks/{custom-form-CFU7NEVb.js → custom-form-DEzUMeYP.js} +6 -6
  88. package/dist/chunks/{custom-form-CFU7NEVb.js.map → custom-form-DEzUMeYP.js.map} +1 -1
  89. package/dist/chunks/{custom-form-DD7YOHMF.esm.js → custom-form-RvoE2OQr.esm.js} +6 -6
  90. package/dist/chunks/{custom-form-DD7YOHMF.esm.js.map → custom-form-RvoE2OQr.esm.js.map} +1 -1
  91. package/dist/chunks/{dashboard-DL83yYRR.esm.js → dashboard-C-HlBEpm.esm.js} +3 -3
  92. package/dist/chunks/{dashboard-DL83yYRR.esm.js.map → dashboard-C-HlBEpm.esm.js.map} +1 -1
  93. package/dist/chunks/{dashboard-BcWVkWZt.js → dashboard-CSms9RGu.js} +3 -3
  94. package/dist/chunks/{dashboard-BcWVkWZt.js.map → dashboard-CSms9RGu.js.map} +1 -1
  95. package/dist/chunks/{dynamic-report-Z7TQNhUq.js → dynamic-report-2BfQqTlE.js} +4 -4
  96. package/dist/chunks/{dynamic-report-Z7TQNhUq.js.map → dynamic-report-2BfQqTlE.js.map} +1 -1
  97. package/dist/chunks/{dynamic-report-tKn-KqAd.esm.js → dynamic-report-6NS0z5pW.esm.js} +4 -4
  98. package/dist/chunks/{dynamic-report-tKn-KqAd.esm.js.map → dynamic-report-6NS0z5pW.esm.js.map} +1 -1
  99. package/dist/chunks/{dynamic-rows-CTGETfcP.esm.js → dynamic-rows-CZ1dmLX-.esm.js} +2 -2
  100. package/dist/chunks/{dynamic-rows-CTGETfcP.esm.js.map → dynamic-rows-CZ1dmLX-.esm.js.map} +1 -1
  101. package/dist/chunks/{dynamic-rows-CNd_zBwf.js → dynamic-rows-DXy4dtIP.js} +2 -2
  102. package/dist/chunks/{dynamic-rows-CNd_zBwf.js.map → dynamic-rows-DXy4dtIP.js.map} +1 -1
  103. package/dist/chunks/{dynamic-text-editor-BBIYTdKZ.js → dynamic-text-editor-BsS7d6iX.js} +2 -2
  104. package/dist/chunks/{dynamic-text-editor-BBIYTdKZ.js.map → dynamic-text-editor-BsS7d6iX.js.map} +1 -1
  105. package/dist/chunks/{dynamic-text-editor-CPvlGcLK.esm.js → dynamic-text-editor-CLrhRiKM.esm.js} +2 -2
  106. package/dist/chunks/{dynamic-text-editor-CPvlGcLK.esm.js.map → dynamic-text-editor-CLrhRiKM.esm.js.map} +1 -1
  107. package/dist/chunks/{edit-section-modal-BW-aZmUv.esm.js → edit-section-modal-BVH6gzyy.esm.js} +2 -2
  108. package/dist/chunks/{edit-section-modal-BW-aZmUv.esm.js.map → edit-section-modal-BVH6gzyy.esm.js.map} +1 -1
  109. package/dist/chunks/{edit-section-modal-Br2ITvLk.js → edit-section-modal-CB6-TNxs.js} +2 -2
  110. package/dist/chunks/{edit-section-modal-Br2ITvLk.js.map → edit-section-modal-CB6-TNxs.js.map} +1 -1
  111. package/dist/chunks/{filter-Cr_OSIpb.js → filter-Chgp8Ga-.js} +3 -3
  112. package/dist/chunks/{filter-Cr_OSIpb.js.map → filter-Chgp8Ga-.js.map} +1 -1
  113. package/dist/chunks/{filter-COXKBEER.esm.js → filter-DgzeYnXU.esm.js} +3 -3
  114. package/dist/chunks/{filter-COXKBEER.esm.js.map → filter-DgzeYnXU.esm.js.map} +1 -1
  115. package/dist/chunks/{footer-CD3kMRdS.js → footer-CTDZ2Qkg.js} +2 -2
  116. package/dist/chunks/{footer-CD3kMRdS.js.map → footer-CTDZ2Qkg.js.map} +1 -1
  117. package/dist/chunks/{footer-m3_dlNl8.esm.js → footer-Db5CEUun.esm.js} +2 -2
  118. package/dist/chunks/{footer-m3_dlNl8.esm.js.map → footer-Db5CEUun.esm.js.map} +1 -1
  119. package/dist/chunks/{form-fields-yE9kwjvb.js → form-fields-BrEECDh1.js} +2 -2
  120. package/dist/chunks/{form-fields-yE9kwjvb.js.map → form-fields-BrEECDh1.js.map} +1 -1
  121. package/dist/chunks/{form-fields-hMMnB_wE.esm.js → form-fields-CpOWIV5e.esm.js} +2 -2
  122. package/dist/chunks/{form-fields-hMMnB_wE.esm.js.map → form-fields-CpOWIV5e.esm.js.map} +1 -1
  123. package/dist/chunks/{form-parser-DbnSn5eY.esm.js → form-parser-BOBQohRY.esm.js} +2 -2
  124. package/dist/chunks/{form-parser-DbnSn5eY.esm.js.map → form-parser-BOBQohRY.esm.js.map} +1 -1
  125. package/dist/chunks/{form-parser-m4fnw38a.js → form-parser-Bo_xCoz5.js} +2 -2
  126. package/dist/chunks/{form-parser-m4fnw38a.js.map → form-parser-Bo_xCoz5.js.map} +1 -1
  127. package/dist/chunks/{form-section-CPIyMdk2.js → form-section-CQkrOcT4.js} +5 -5
  128. package/dist/chunks/{form-section-CPIyMdk2.js.map → form-section-CQkrOcT4.js.map} +1 -1
  129. package/dist/chunks/{form-section-TMjdOVeW.esm.js → form-section-CuA5Rmec.esm.js} +5 -5
  130. package/dist/chunks/{form-section-TMjdOVeW.esm.js.map → form-section-CuA5Rmec.esm.js.map} +1 -1
  131. package/dist/chunks/{fullScreen-BLLa9ogA.js → fullScreen-CKsAPzW8.js} +3 -3
  132. package/dist/chunks/{fullScreen-BLLa9ogA.js.map → fullScreen-CKsAPzW8.js.map} +1 -1
  133. package/dist/chunks/{fullScreen-DFgzE41_.esm.js → fullScreen-Dq0rkDY2.esm.js} +3 -3
  134. package/dist/chunks/{fullScreen-DFgzE41_.esm.js.map → fullScreen-Dq0rkDY2.esm.js.map} +1 -1
  135. package/dist/chunks/{global-search-BOkxXiZ0.esm.js → global-search-CzTd58hv.esm.js} +3 -3
  136. package/dist/chunks/{global-search-BOkxXiZ0.esm.js.map → global-search-CzTd58hv.esm.js.map} +1 -1
  137. package/dist/chunks/{global-search-BjKPmzsQ.js → global-search-mE46QvyY.js} +3 -3
  138. package/dist/chunks/{global-search-BjKPmzsQ.js.map → global-search-mE46QvyY.js.map} +1 -1
  139. package/dist/chunks/{grid-view-Bo86x7YL.esm.js → grid-view-Ccl3P7WG.esm.js} +2 -2
  140. package/dist/chunks/{grid-view-Bo86x7YL.esm.js.map → grid-view-Ccl3P7WG.esm.js.map} +1 -1
  141. package/dist/chunks/{grid-view-B1u_x5yr.js → grid-view-CcmdZI39.js} +2 -2
  142. package/dist/chunks/{grid-view-B1u_x5yr.js.map → grid-view-CcmdZI39.js.map} +1 -1
  143. package/dist/chunks/{header-BHsex2As.js → header-BLQberkS.js} +3 -3
  144. package/dist/chunks/{header-BHsex2As.js.map → header-BLQberkS.js.map} +1 -1
  145. package/dist/chunks/{header-B-HaoeK7.esm.js → header-DJXi29Ed.esm.js} +3 -3
  146. package/dist/chunks/{header-B-HaoeK7.esm.js.map → header-DJXi29Ed.esm.js.map} +1 -1
  147. package/dist/chunks/{header-enhanced-BjfqyQ1a.esm.js → header-enhanced-BXn_RBUl.esm.js} +2 -2
  148. package/dist/chunks/{header-enhanced-BjfqyQ1a.esm.js.map → header-enhanced-BXn_RBUl.esm.js.map} +1 -1
  149. package/dist/chunks/{header-enhanced-gJl4iC4m.js → header-enhanced-GQeFu_BL.js} +2 -2
  150. package/dist/chunks/{header-enhanced-gJl4iC4m.js.map → header-enhanced-GQeFu_BL.js.map} +1 -1
  151. package/dist/chunks/{inline-edit-fields-BYhRpPcH.esm.js → inline-edit-fields-D68s-Ll-.esm.js} +2 -2
  152. package/dist/chunks/{inline-edit-fields-BYhRpPcH.esm.js.map → inline-edit-fields-D68s-Ll-.esm.js.map} +1 -1
  153. package/dist/chunks/{inline-edit-fields-atDP84QL.js → inline-edit-fields-vGyiNTyf.js} +2 -2
  154. package/dist/chunks/{inline-edit-fields-atDP84QL.js.map → inline-edit-fields-vGyiNTyf.js.map} +1 -1
  155. package/dist/chunks/{inventory-reports-title-bar-Bog2i0dr.js → inventory-reports-title-bar-CT7SIGlT.js} +3 -3
  156. package/dist/chunks/{inventory-reports-title-bar-Bog2i0dr.js.map → inventory-reports-title-bar-CT7SIGlT.js.map} +1 -1
  157. package/dist/chunks/{inventory-reports-title-bar-CP8FzW6A.esm.js → inventory-reports-title-bar-Ddh26t2X.esm.js} +3 -3
  158. package/dist/chunks/{inventory-reports-title-bar-CP8FzW6A.esm.js.map → inventory-reports-title-bar-Ddh26t2X.esm.js.map} +1 -1
  159. package/dist/chunks/{item-response-details-DsGQ7Dlc.js → item-response-details-BGtHtJ76.js} +4 -4
  160. package/dist/chunks/{item-response-details-DsGQ7Dlc.js.map → item-response-details-BGtHtJ76.js.map} +1 -1
  161. package/dist/chunks/{item-response-details-SHSD-nBh.esm.js → item-response-details-DSCdVRmu.esm.js} +4 -4
  162. package/dist/chunks/{item-response-details-SHSD-nBh.esm.js.map → item-response-details-DSCdVRmu.esm.js.map} +1 -1
  163. package/dist/chunks/{listing-DIuzQrzb.js → listing-CTIuYwFQ.js} +4 -4
  164. package/dist/chunks/{listing-DIuzQrzb.js.map → listing-CTIuYwFQ.js.map} +1 -1
  165. package/dist/chunks/{listing-C0Yb6MVq.esm.js → listing-Dy2Rksst.esm.js} +4 -4
  166. package/dist/chunks/{listing-C0Yb6MVq.esm.js.map → listing-Dy2Rksst.esm.js.map} +1 -1
  167. package/dist/chunks/{location-select-g5uczAUF.js → location-select-Dij5uwHV.js} +2 -2
  168. package/dist/chunks/{location-select-g5uczAUF.js.map → location-select-Dij5uwHV.js.map} +1 -1
  169. package/dist/chunks/{location-select-CFa00fy4.esm.js → location-select-N7YryMzR.esm.js} +2 -2
  170. package/dist/chunks/{location-select-CFa00fy4.esm.js.map → location-select-N7YryMzR.esm.js.map} +1 -1
  171. package/dist/chunks/{material-editable-table-pAyK7KYf.esm.js → material-editable-table-DH-mHUyW.esm.js} +3 -3
  172. package/dist/chunks/{material-editable-table-pAyK7KYf.esm.js.map → material-editable-table-DH-mHUyW.esm.js.map} +1 -1
  173. package/dist/chunks/{material-editable-table-BGLjrTzT.js → material-editable-table-flZ7dwOO.js} +3 -3
  174. package/dist/chunks/{material-editable-table-BGLjrTzT.js.map → material-editable-table-flZ7dwOO.js.map} +1 -1
  175. package/dist/chunks/{module-reducer-DMxxForv.esm.js → module-reducer-BOqAXAJs.esm.js} +2 -2
  176. package/dist/chunks/{module-reducer-DMxxForv.esm.js.map → module-reducer-BOqAXAJs.esm.js.map} +1 -1
  177. package/dist/chunks/{module-reducer-Ck36ZEmZ.js → module-reducer-khxO3m2l.js} +2 -2
  178. package/dist/chunks/{module-reducer-Ck36ZEmZ.js.map → module-reducer-khxO3m2l.js.map} +1 -1
  179. package/dist/chunks/{notification-menu-D7ASm-K1.js → notification-menu-DhXt9aJ6.js} +2 -2
  180. package/dist/chunks/{notification-menu-D7ASm-K1.js.map → notification-menu-DhXt9aJ6.js.map} +1 -1
  181. package/dist/chunks/{notification-menu-XAadkn-e.esm.js → notification-menu-INKsWdja.esm.js} +2 -2
  182. package/dist/chunks/{notification-menu-XAadkn-e.esm.js.map → notification-menu-INKsWdja.esm.js.map} +1 -1
  183. package/dist/chunks/{page-action-BPzaL2KJ.js → page-action-8XNeWxvS.js} +4 -4
  184. package/dist/chunks/{page-action-BPzaL2KJ.js.map → page-action-8XNeWxvS.js.map} +1 -1
  185. package/dist/chunks/{page-action-C07iGjvN.esm.js → page-action-BhSpPGBy.esm.js} +4 -4
  186. package/dist/chunks/{page-action-C07iGjvN.esm.js.map → page-action-BhSpPGBy.esm.js.map} +1 -1
  187. package/dist/chunks/{page-navigator-Cgbh3tTG.js → page-navigator-DSmNN1Eb.js} +2 -2
  188. package/dist/chunks/{page-navigator-Cgbh3tTG.js.map → page-navigator-DSmNN1Eb.js.map} +1 -1
  189. package/dist/chunks/{page-navigator-8gZpp9_P.esm.js → page-navigator-DjG5btI1.esm.js} +2 -2
  190. package/dist/chunks/{page-navigator-8gZpp9_P.esm.js.map → page-navigator-DjG5btI1.esm.js.map} +1 -1
  191. package/dist/chunks/{page-view-DJ6HS_dV.js → page-view-Dbf_t78X.js} +3 -3
  192. package/dist/chunks/{page-view-DJ6HS_dV.js.map → page-view-Dbf_t78X.js.map} +1 -1
  193. package/dist/chunks/{page-view-CokUNMBn.esm.js → page-view-DknSUnFR.esm.js} +3 -3
  194. package/dist/chunks/{page-view-CokUNMBn.esm.js.map → page-view-DknSUnFR.esm.js.map} +1 -1
  195. package/dist/chunks/{quick-approval-modal-BwYjIbO5.js → quick-approval-modal-BQcjEC5r.js} +2 -2
  196. package/dist/chunks/{quick-approval-modal-BwYjIbO5.js.map → quick-approval-modal-BQcjEC5r.js.map} +1 -1
  197. package/dist/chunks/{quick-approval-modal-CPWs8htH.esm.js → quick-approval-modal-DcZGFHAN.esm.js} +2 -2
  198. package/dist/chunks/{quick-approval-modal-CPWs8htH.esm.js.map → quick-approval-modal-DcZGFHAN.esm.js.map} +1 -1
  199. package/dist/chunks/{reducer-IsgN83rP.esm.js → reducer-C3tNAbZa.esm.js} +2 -2
  200. package/dist/chunks/{reducer-IsgN83rP.esm.js.map → reducer-C3tNAbZa.esm.js.map} +1 -1
  201. package/dist/chunks/{reducer-CdJ6znKF.esm.js → reducer-CACnVYCu.esm.js} +2 -2
  202. package/dist/chunks/{reducer-CdJ6znKF.esm.js.map → reducer-CACnVYCu.esm.js.map} +1 -1
  203. package/dist/chunks/{reducer-Qab0amzE.js → reducer-Ca4A9Z08.js} +3 -3
  204. package/dist/chunks/{reducer-Qab0amzE.js.map → reducer-Ca4A9Z08.js.map} +1 -1
  205. package/dist/chunks/{reducer-BRD8W9sK.js → reducer-CqXx-nCW.js} +2 -2
  206. package/dist/chunks/{reducer-BRD8W9sK.js.map → reducer-CqXx-nCW.js.map} +1 -1
  207. package/dist/chunks/{reducer-3tSO6RW6.esm.js → reducer-D5uYbcnW.esm.js} +3 -3
  208. package/dist/chunks/{reducer-3tSO6RW6.esm.js.map → reducer-D5uYbcnW.esm.js.map} +1 -1
  209. package/dist/chunks/{reducer-CpOEECi1.js → reducer-D9YsCrPV.js} +2 -2
  210. package/dist/chunks/{reducer-CpOEECi1.js.map → reducer-D9YsCrPV.js.map} +1 -1
  211. package/dist/chunks/{reducer-sgaK2vfW.esm.js → reducer-DgqigQMj.esm.js} +2 -2
  212. package/dist/chunks/{reducer-sgaK2vfW.esm.js.map → reducer-DgqigQMj.esm.js.map} +1 -1
  213. package/dist/chunks/{reducer-CPisqqqN.js → reducer-LZj3gYJv.js} +2 -2
  214. package/dist/chunks/{reducer-CPisqqqN.js.map → reducer-LZj3gYJv.js.map} +1 -1
  215. package/dist/chunks/{reducer-yyZtsg1A.esm.js → reducer-TleDUmAC.esm.js} +2 -2
  216. package/dist/chunks/{reducer-yyZtsg1A.esm.js.map → reducer-TleDUmAC.esm.js.map} +1 -1
  217. package/dist/chunks/{reducer-Bmr6fvcs.js → reducer-zvGfUKoI.js} +2 -2
  218. package/dist/chunks/{reducer-Bmr6fvcs.js.map → reducer-zvGfUKoI.js.map} +1 -1
  219. package/dist/chunks/{reports-title-bar-Kz6JjqsY.js → reports-title-bar-D-1LT4fp.js} +4 -4
  220. package/dist/chunks/{reports-title-bar-Kz6JjqsY.js.map → reports-title-bar-D-1LT4fp.js.map} +1 -1
  221. package/dist/chunks/{reports-title-bar-Cay4E8SQ.esm.js → reports-title-bar-QUF0UaA5.esm.js} +4 -4
  222. package/dist/chunks/{reports-title-bar-Cay4E8SQ.esm.js.map → reports-title-bar-QUF0UaA5.esm.js.map} +1 -1
  223. package/dist/chunks/{routes-CfqLAYgR.js → routes--Iz18uA1.js} +3 -3
  224. package/dist/chunks/{routes-CfqLAYgR.js.map → routes--Iz18uA1.js.map} +1 -1
  225. package/dist/chunks/{routes-CAc76Zan.esm.js → routes-JUv69qeO.esm.js} +3 -3
  226. package/dist/chunks/{routes-CAc76Zan.esm.js.map → routes-JUv69qeO.esm.js.map} +1 -1
  227. package/dist/chunks/{schedule-report-B4ZfEuiU.js → schedule-report-Br9G5M-o.js} +6 -6
  228. package/dist/chunks/{schedule-report-B4ZfEuiU.js.map → schedule-report-Br9G5M-o.js.map} +1 -1
  229. package/dist/chunks/{schedule-report-CLXjjfjc.esm.js → schedule-report-Ce2EEmZX.esm.js} +6 -6
  230. package/dist/chunks/{schedule-report-CLXjjfjc.esm.js.map → schedule-report-Ce2EEmZX.esm.js.map} +1 -1
  231. package/dist/chunks/{schedule-report-modal-CB3G9H7x.esm.js → schedule-report-modal-C5CAD-AQ.esm.js} +3 -3
  232. package/dist/chunks/{schedule-report-modal-CB3G9H7x.esm.js.map → schedule-report-modal-C5CAD-AQ.esm.js.map} +1 -1
  233. package/dist/chunks/{schedule-report-modal-iwoDI-sg.js → schedule-report-modal-CraO2R9I.js} +3 -3
  234. package/dist/chunks/{schedule-report-modal-iwoDI-sg.js.map → schedule-report-modal-CraO2R9I.js.map} +1 -1
  235. package/dist/chunks/{searchable-select-_DCkITfk.js → searchable-select-BdR8A-uG.js} +6 -6
  236. package/dist/chunks/{searchable-select-_DCkITfk.js.map → searchable-select-BdR8A-uG.js.map} +1 -1
  237. package/dist/chunks/{searchable-select-0F6E4XAr.esm.js → searchable-select-DSxOplyJ.esm.js} +6 -6
  238. package/dist/chunks/{searchable-select-0F6E4XAr.esm.js.map → searchable-select-DSxOplyJ.esm.js.map} +1 -1
  239. package/dist/chunks/{share-modal-BaEyZs2h.esm.js → share-modal-0Xrxwpxh.esm.js} +3 -3
  240. package/dist/chunks/{share-modal-BaEyZs2h.esm.js.map → share-modal-0Xrxwpxh.esm.js.map} +1 -1
  241. package/dist/chunks/{share-modal-DrXvh-fV.js → share-modal-CP_CC8wR.js} +3 -3
  242. package/dist/chunks/{share-modal-DrXvh-fV.js.map → share-modal-CP_CC8wR.js.map} +1 -1
  243. package/dist/chunks/{share-modal-enhanced-DnEdDBmu.esm.js → share-modal-enhanced-BFmwba0h.esm.js} +2 -2
  244. package/dist/chunks/{share-modal-enhanced-DnEdDBmu.esm.js.map → share-modal-enhanced-BFmwba0h.esm.js.map} +1 -1
  245. package/dist/chunks/{share-modal-enhanced-BTr0zRhF.js → share-modal-enhanced-BajRayrK.js} +2 -2
  246. package/dist/chunks/{share-modal-enhanced-BTr0zRhF.js.map → share-modal-enhanced-BajRayrK.js.map} +1 -1
  247. package/dist/chunks/{sidebarScreen-DpYj_wlK.js → sidebarScreen-CaNfS0JJ.js} +5 -5
  248. package/dist/chunks/{sidebarScreen-DpYj_wlK.js.map → sidebarScreen-CaNfS0JJ.js.map} +1 -1
  249. package/dist/chunks/{sidebarScreen-DiOAiXeU.esm.js → sidebarScreen-CmnTAXY7.esm.js} +5 -5
  250. package/dist/chunks/{sidebarScreen-DiOAiXeU.esm.js.map → sidebarScreen-CmnTAXY7.esm.js.map} +1 -1
  251. package/dist/chunks/{store-BSJc1kCM.js → store-CqIuLzOS.js} +6 -6
  252. package/dist/chunks/{store-BSJc1kCM.js.map → store-CqIuLzOS.js.map} +1 -1
  253. package/dist/chunks/{store-BL5VFPie.esm.js → store-DH8pCqim.esm.js} +6 -6
  254. package/dist/chunks/{store-BL5VFPie.esm.js.map → store-DH8pCqim.esm.js.map} +1 -1
  255. package/dist/chunks/{table-gxAlAeTq.esm.js → table-ClKu8f94.esm.js} +3 -3
  256. package/dist/chunks/{table-gxAlAeTq.esm.js.map → table-ClKu8f94.esm.js.map} +1 -1
  257. package/dist/chunks/{table-DWx7x8zw.js → table-DgWNw_5R.js} +3 -3
  258. package/dist/chunks/{table-DWx7x8zw.js.map → table-DgWNw_5R.js.map} +1 -1
  259. package/dist/chunks/{table-form-DsTwCUcs.esm.js → table-form-BonoJoe4.esm.js} +2 -2
  260. package/dist/chunks/{table-form-DsTwCUcs.esm.js.map → table-form-BonoJoe4.esm.js.map} +1 -1
  261. package/dist/chunks/{table-form-DQ-pp0A_.js → table-form-DlMHRtLK.js} +2 -2
  262. package/dist/chunks/{table-form-DQ-pp0A_.js.map → table-form-DlMHRtLK.js.map} +1 -1
  263. package/dist/chunks/{template-editor-router-D4NIwVws.js → template-editor-router-BsD0ydNM.js} +2 -2
  264. package/dist/chunks/{template-editor-router-D4NIwVws.js.map → template-editor-router-BsD0ydNM.js.map} +1 -1
  265. package/dist/chunks/{template-editor-router-BXLUTvsk.esm.js → template-editor-router-DoOt_Usq.esm.js} +2 -2
  266. package/dist/chunks/{template-editor-router-BXLUTvsk.esm.js.map → template-editor-router-DoOt_Usq.esm.js.map} +1 -1
  267. package/dist/chunks/{template-modal-X-iSmlki.js → template-modal-BXZblB-i.js} +2 -2
  268. package/dist/chunks/{template-modal-X-iSmlki.js.map → template-modal-BXZblB-i.js.map} +1 -1
  269. package/dist/chunks/{template-modal-B2VgotrF.esm.js → template-modal-Cyj0AUks.esm.js} +2 -2
  270. package/dist/chunks/{template-modal-B2VgotrF.esm.js.map → template-modal-Cyj0AUks.esm.js.map} +1 -1
  271. package/dist/chunks/{templates-CCy1eG6A.esm.js → templates-BK_pcPtR.esm.js} +7 -7
  272. package/dist/chunks/{templates-CCy1eG6A.esm.js.map → templates-BK_pcPtR.esm.js.map} +1 -1
  273. package/dist/chunks/{templates-CUREMwYo.js → templates-C5whh_WJ.js} +7 -7
  274. package/dist/chunks/{templates-CUREMwYo.js.map → templates-C5whh_WJ.js.map} +1 -1
  275. package/dist/chunks/{text-measurement-BRaY2UMX.js → text-measurement-C5RUDcy3.js} +2 -2
  276. package/dist/chunks/{text-measurement-BRaY2UMX.js.map → text-measurement-C5RUDcy3.js.map} +1 -1
  277. package/dist/chunks/{text-measurement-BCjauPbB.esm.js → text-measurement-DvKHzZhR.esm.js} +2 -2
  278. package/dist/chunks/{text-measurement-BCjauPbB.esm.js.map → text-measurement-DvKHzZhR.esm.js.map} +1 -1
  279. package/dist/chunks/{translations-BrwQcVN3.esm.js → translations-BLrQX9my.esm.js} +2 -2
  280. package/dist/chunks/{translations-BrwQcVN3.esm.js.map → translations-BLrQX9my.esm.js.map} +1 -1
  281. package/dist/chunks/{translations-DoVrWLog.js → translations-CaEkNqOX.js} +2 -2
  282. package/dist/chunks/{translations-DoVrWLog.js.map → translations-CaEkNqOX.js.map} +1 -1
  283. package/dist/chunks/{uom-field-wrapper-CTbEc-MB.esm.js → uom-field-wrapper-By-UFGEf.esm.js} +2 -2
  284. package/dist/chunks/{uom-field-wrapper-CTbEc-MB.esm.js.map → uom-field-wrapper-By-UFGEf.esm.js.map} +1 -1
  285. package/dist/chunks/{uom-field-wrapper-DXZgzOYB.js → uom-field-wrapper-CPbf2ESo.js} +2 -2
  286. package/dist/chunks/{uom-field-wrapper-DXZgzOYB.js.map → uom-field-wrapper-CPbf2ESo.js.map} +1 -1
  287. package/dist/chunks/{upload-excel-BZPP13tP.esm.js → upload-excel-Bv2QulNF.esm.js} +2 -2
  288. package/dist/chunks/{upload-excel-BZPP13tP.esm.js.map → upload-excel-Bv2QulNF.esm.js.map} +1 -1
  289. package/dist/chunks/{upload-excel-rzyINtLp.js → upload-excel-Dki_3fi7.js} +2 -2
  290. package/dist/chunks/{upload-excel-rzyINtLp.js.map → upload-excel-Dki_3fi7.js.map} +1 -1
  291. package/dist/chunks/{use-translations-5wUQBxMm.js → use-translations-CiaeAhQ7.js} +2 -2
  292. package/dist/chunks/{use-translations-5wUQBxMm.js.map → use-translations-CiaeAhQ7.js.map} +1 -1
  293. package/dist/chunks/{use-translations-CcjSFA3F.esm.js → use-translations-Cplg_xvQ.esm.js} +2 -2
  294. package/dist/chunks/{use-translations-CcjSFA3F.esm.js.map → use-translations-Cplg_xvQ.esm.js.map} +1 -1
  295. package/dist/chunks/{useAccountSetting-vAqgEiJB.esm.js → useAccountSetting-D2zH-h5F.esm.js} +3 -3
  296. package/dist/chunks/{useAccountSetting-vAqgEiJB.esm.js.map → useAccountSetting-D2zH-h5F.esm.js.map} +1 -1
  297. package/dist/chunks/{useAccountSetting-9XBALMnW.js → useAccountSetting-Dvyv7WUv.js} +3 -3
  298. package/dist/chunks/{useAccountSetting-9XBALMnW.js.map → useAccountSetting-Dvyv7WUv.js.map} +1 -1
  299. package/dist/chunks/{useCheckSkuAndName-CqSLFlhD.js → useCheckSkuAndName-3SCc5HGN.js} +2 -2
  300. package/dist/chunks/{useCheckSkuAndName-CqSLFlhD.js.map → useCheckSkuAndName-3SCc5HGN.js.map} +1 -1
  301. package/dist/chunks/{useCheckSkuAndName-Dl24wQO-.esm.js → useCheckSkuAndName-BuHzZ_fJ.esm.js} +2 -2
  302. package/dist/chunks/{useCheckSkuAndName-Dl24wQO-.esm.js.map → useCheckSkuAndName-BuHzZ_fJ.esm.js.map} +1 -1
  303. package/dist/chunks/{useReduxIntegration-DZBfKF7d.esm.js → useReduxIntegration-B0bZ0VOc.esm.js} +2 -2
  304. package/dist/chunks/{useReduxIntegration-DZBfKF7d.esm.js.map → useReduxIntegration-B0bZ0VOc.esm.js.map} +1 -1
  305. package/dist/chunks/{useReduxIntegration-Ct1UN9fB.js → useReduxIntegration-GG8n-C3E.js} +2 -2
  306. package/dist/chunks/{useReduxIntegration-Ct1UN9fB.js.map → useReduxIntegration-GG8n-C3E.js.map} +1 -1
  307. package/dist/chunks/{useUniquenessCheck-bYjnp_0P.esm.js → useUniquenessCheck-B_KNcS14.esm.js} +2 -2
  308. package/dist/chunks/{useUniquenessCheck-bYjnp_0P.esm.js.map → useUniquenessCheck-B_KNcS14.esm.js.map} +1 -1
  309. package/dist/chunks/{useUniquenessCheck-By5zlovX.js → useUniquenessCheck-SyibUppM.js} +2 -2
  310. package/dist/chunks/{useUniquenessCheck-By5zlovX.js.map → useUniquenessCheck-SyibUppM.js.map} +1 -1
  311. package/dist/chunks/{useVendorAICompare-BAkWpJbe.js → useVendorAICompare-Br8Zaj9n.js} +3 -3
  312. package/dist/chunks/{useVendorAICompare-BAkWpJbe.js.map → useVendorAICompare-Br8Zaj9n.js.map} +1 -1
  313. package/dist/chunks/{useVendorAICompare-DZRFDk4i.esm.js → useVendorAICompare-MAhIaPcK.esm.js} +3 -3
  314. package/dist/chunks/{useVendorAICompare-DZRFDk4i.esm.js.map → useVendorAICompare-MAhIaPcK.esm.js.map} +1 -1
  315. package/dist/chunks/{value-editor-BSS9Ns2T.js → value-editor-CjBbeBcy.js} +3 -3
  316. package/dist/chunks/{value-editor-BSS9Ns2T.js.map → value-editor-CjBbeBcy.js.map} +1 -1
  317. package/dist/chunks/{value-editor-DQ1qgZ2u.esm.js → value-editor-Du1_lUxK.esm.js} +3 -3
  318. package/dist/chunks/{value-editor-DQ1qgZ2u.esm.js.map → value-editor-Du1_lUxK.esm.js.map} +1 -1
  319. package/dist/chunks/{vendor-ai-summary-DWmAaQ_N.js → vendor-ai-summary-ChCg_E_J.js} +2 -2
  320. package/dist/chunks/{vendor-ai-summary-DWmAaQ_N.js.map → vendor-ai-summary-ChCg_E_J.js.map} +1 -1
  321. package/dist/chunks/{vendor-ai-summary-BA6m2dH9.esm.js → vendor-ai-summary-DICDiSMd.esm.js} +2 -2
  322. package/dist/chunks/{vendor-ai-summary-BA6m2dH9.esm.js.map → vendor-ai-summary-DICDiSMd.esm.js.map} +1 -1
  323. package/dist/components/action-bar/action-bar/index.esm.js +1 -1
  324. package/dist/components/action-bar/action-bar/index.js +1 -1
  325. package/dist/components/action-bar/index.esm.js +1 -1
  326. package/dist/components/action-bar/index.js +1 -1
  327. package/dist/components/address-modal/index.esm.js +1 -1
  328. package/dist/components/address-modal/index.js +1 -1
  329. package/dist/components/ai-summary/ai-summary/index.esm.js +1 -1
  330. package/dist/components/ai-summary/ai-summary/index.js +1 -1
  331. package/dist/components/ai-summary/index.esm.js +1 -1
  332. package/dist/components/ai-summary/index.js +1 -1
  333. package/dist/components/appbar/appbar/index.esm.js +1 -1
  334. package/dist/components/appbar/appbar/index.js +1 -1
  335. package/dist/components/appbar/index.esm.js +1 -1
  336. package/dist/components/appbar/index.js +1 -1
  337. package/dist/components/approval-wrapper/approval-wrapper/index.esm.js +1 -1
  338. package/dist/components/approval-wrapper/approval-wrapper/index.js +1 -1
  339. package/dist/components/approval-wrapper/index.esm.js +1 -1
  340. package/dist/components/approval-wrapper/index.js +1 -1
  341. package/dist/components/chat-bot/index.esm.js +1 -1
  342. package/dist/components/chat-bot/index.js +1 -1
  343. package/dist/components/custom-forms/FORMS/index.esm.js +1 -1
  344. package/dist/components/custom-forms/FORMS/index.js +1 -1
  345. package/dist/components/custom-forms/grid-view/grid-view/index.esm.js +1 -1
  346. package/dist/components/custom-forms/grid-view/grid-view/index.js +1 -1
  347. package/dist/components/custom-forms/grid-view/index.esm.js +1 -1
  348. package/dist/components/custom-forms/grid-view/index.js +1 -1
  349. package/dist/components/custom-forms/index.esm.js +2 -2
  350. package/dist/components/custom-forms/index.js +2 -2
  351. package/dist/components/department-add-modal/index.esm.js +1 -1
  352. package/dist/components/department-add-modal/index.js +1 -1
  353. package/dist/components/designation-add-modal/index.esm.js +1 -1
  354. package/dist/components/designation-add-modal/index.js +1 -1
  355. package/dist/components/editor/custom-editor/index.esm.js +1 -1
  356. package/dist/components/editor/custom-editor/index.js +1 -1
  357. package/dist/components/editor/index.esm.js +1 -1
  358. package/dist/components/editor/index.js +1 -1
  359. package/dist/components/examples/FlexibleReduxExample/index.esm.js +1 -1
  360. package/dist/components/examples/FlexibleReduxExample/index.js +1 -1
  361. package/dist/components/examples/index.esm.js +1 -1
  362. package/dist/components/examples/index.js +1 -1
  363. package/dist/components/filter/components/index.esm.js +1 -1
  364. package/dist/components/filter/components/index.js +1 -1
  365. package/dist/components/filter/components/value-editor/index.esm.js +1 -1
  366. package/dist/components/filter/components/value-editor/index.js +1 -1
  367. package/dist/components/filter/filter/index.esm.js +1 -1
  368. package/dist/components/filter/filter/index.js +1 -1
  369. package/dist/components/filter/index.esm.js +2 -2
  370. package/dist/components/filter/index.js +2 -2
  371. package/dist/components/footer/footer/index.esm.js +1 -1
  372. package/dist/components/footer/footer/index.js +1 -1
  373. package/dist/components/footer/index.esm.js +1 -1
  374. package/dist/components/footer/index.js +1 -1
  375. package/dist/components/form-control/form-builder/form-builder-element/dynamic-dependent-field/index.esm.js +1 -1
  376. package/dist/components/form-control/form-builder/form-builder-element/dynamic-dependent-field/index.js +1 -1
  377. package/dist/components/form-control/form-builder/form-builder-element/dynamic-select/index.esm.js +1 -1
  378. package/dist/components/form-control/form-builder/form-builder-element/dynamic-select/index.js +1 -1
  379. package/dist/components/form-control/form-builder/form-builder-element/dynamic-text-editor/index.esm.js +1 -1
  380. package/dist/components/form-control/form-builder/form-builder-element/dynamic-text-editor/index.js +1 -1
  381. package/dist/components/form-control/form-builder/form-builder-element/fixed-asset-item-add-modal/index.esm.js +1 -1
  382. package/dist/components/form-control/form-builder/form-builder-element/fixed-asset-item-add-modal/index.js +1 -1
  383. package/dist/components/form-control/form-builder/form-builder-element/index.esm.js +4 -4
  384. package/dist/components/form-control/form-builder/form-builder-element/index.js +4 -4
  385. package/dist/components/form-control/form-builder/form-builder-element/location-add-modal/index.esm.js +1 -1
  386. package/dist/components/form-control/form-builder/form-builder-element/location-add-modal/index.js +1 -1
  387. package/dist/components/form-control/form-builder/form-builder-element/select-configuration/index.esm.js +1 -1
  388. package/dist/components/form-control/form-builder/form-builder-element/select-configuration/index.js +1 -1
  389. package/dist/components/form-control/form-builder/form-builder-element/table/index.esm.js +1 -1
  390. package/dist/components/form-control/form-builder/form-builder-element/table/index.js +1 -1
  391. package/dist/components/form-control/form-builder/index.esm.js +4 -4
  392. package/dist/components/form-control/form-builder/index.js +4 -4
  393. package/dist/components/form-control/form-parser/form-parser/index.esm.js +1 -1
  394. package/dist/components/form-control/form-parser/form-parser/index.js +1 -1
  395. package/dist/components/form-control/form-parser/form-section/index.esm.js +1 -1
  396. package/dist/components/form-control/form-parser/form-section/index.js +1 -1
  397. package/dist/components/form-control/form-parser/index.esm.js +2 -2
  398. package/dist/components/form-control/form-parser/index.js +2 -2
  399. package/dist/components/form-control/index.esm.js +6 -6
  400. package/dist/components/form-control/index.js +6 -6
  401. package/dist/components/header/components/global-search/index.esm.js +1 -1
  402. package/dist/components/header/components/global-search/index.js +1 -1
  403. package/dist/components/header/components/index.esm.js +1 -1
  404. package/dist/components/header/components/index.js +1 -1
  405. package/dist/components/header/components/notification-menu/index.esm.js +1 -1
  406. package/dist/components/header/components/notification-menu/index.js +1 -1
  407. package/dist/components/header/components/notification-menu/notification-menu/index.esm.js +1 -1
  408. package/dist/components/header/components/notification-menu/notification-menu/index.js +1 -1
  409. package/dist/components/header/header/index.esm.js +1 -1
  410. package/dist/components/header/header/index.js +1 -1
  411. package/dist/components/header/header-enhanced/index.esm.js +1 -1
  412. package/dist/components/header/header-enhanced/index.js +1 -1
  413. package/dist/components/header/index.esm.js +5 -5
  414. package/dist/components/header/index.js +5 -5
  415. package/dist/components/header/redux/actionCreator/index.esm.js +1 -1
  416. package/dist/components/header/redux/actionCreator/index.js +1 -1
  417. package/dist/components/header/redux/index.esm.js +2 -2
  418. package/dist/components/header/redux/index.js +2 -2
  419. package/dist/components/header/redux/reducer/index.esm.js +1 -1
  420. package/dist/components/header/redux/reducer/index.js +1 -1
  421. package/dist/components/index.esm.js +36 -36
  422. package/dist/components/index.js +36 -36
  423. package/dist/components/inventory-reports-title-bar/index.esm.js +3 -3
  424. package/dist/components/inventory-reports-title-bar/index.js +3 -3
  425. package/dist/components/inventory-reports-title-bar/inventory-reports-title-bar/index.esm.js +1 -1
  426. package/dist/components/inventory-reports-title-bar/inventory-reports-title-bar/index.js +1 -1
  427. package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.esm.js +1 -1
  428. package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.js +1 -1
  429. package/dist/components/inventory-reports-title-bar/redux/index.esm.js +2 -2
  430. package/dist/components/inventory-reports-title-bar/redux/index.js +2 -2
  431. package/dist/components/inventory-reports-title-bar/redux/reducer/index.esm.js +1 -1
  432. package/dist/components/inventory-reports-title-bar/redux/reducer/index.js +1 -1
  433. package/dist/components/listing/index.esm.js +1 -1
  434. package/dist/components/listing/index.js +1 -1
  435. package/dist/components/listing/listing/index.esm.js +1 -1
  436. package/dist/components/listing/listing/index.js +1 -1
  437. package/dist/components/location-select/index.esm.js +1 -1
  438. package/dist/components/location-select/index.js +1 -1
  439. package/dist/components/material-editable-table/components/index.esm.js +1 -1
  440. package/dist/components/material-editable-table/components/index.js +1 -1
  441. package/dist/components/material-editable-table/components/inline-edit-fields/index.esm.js +1 -1
  442. package/dist/components/material-editable-table/components/inline-edit-fields/index.js +1 -1
  443. package/dist/components/material-editable-table/index.esm.js +2 -2
  444. package/dist/components/material-editable-table/index.js +2 -2
  445. package/dist/components/material-editable-table/material-editable-table/index.esm.js +1 -1
  446. package/dist/components/material-editable-table/material-editable-table/index.js +1 -1
  447. package/dist/components/material-table/components/index.esm.js +1 -1
  448. package/dist/components/material-table/components/index.js +1 -1
  449. package/dist/components/material-table/components/inline-edit-fields/index.esm.js +1 -1
  450. package/dist/components/material-table/components/inline-edit-fields/index.js +1 -1
  451. package/dist/components/material-table/index.esm.js +1 -1
  452. package/dist/components/material-table/index.js +1 -1
  453. package/dist/components/material-table/material-table/index.esm.js +1 -1
  454. package/dist/components/material-table/material-table/index.js +1 -1
  455. package/dist/components/page-navigator/components/index.esm.js +1 -1
  456. package/dist/components/page-navigator/components/index.js +1 -1
  457. package/dist/components/page-navigator/components/page-action/index.esm.js +1 -1
  458. package/dist/components/page-navigator/components/page-action/index.js +1 -1
  459. package/dist/components/page-navigator/index.esm.js +2 -2
  460. package/dist/components/page-navigator/index.js +2 -2
  461. package/dist/components/page-navigator/page-navigator/index.esm.js +1 -1
  462. package/dist/components/page-navigator/page-navigator/index.js +1 -1
  463. package/dist/components/parties-modal/index.esm.js +1 -1
  464. package/dist/components/parties-modal/index.js +1 -1
  465. package/dist/components/parties-modal/parties-modal/index.esm.js +1 -1
  466. package/dist/components/parties-modal/parties-modal/index.js +1 -1
  467. package/dist/components/providers/ERPUIProvider/index.esm.js +1 -1
  468. package/dist/components/providers/ERPUIProvider/index.js +1 -1
  469. package/dist/components/providers/index.esm.js +1 -1
  470. package/dist/components/providers/index.js +1 -1
  471. package/dist/components/quick-approval-modal/index.esm.js +1 -1
  472. package/dist/components/quick-approval-modal/index.js +1 -1
  473. package/dist/components/quick-approval-modal/quick-approval-modal/index.esm.js +1 -1
  474. package/dist/components/quick-approval-modal/quick-approval-modal/index.js +1 -1
  475. package/dist/components/reports/dynamic-report/dynamic-report/index.esm.js +1 -1
  476. package/dist/components/reports/dynamic-report/dynamic-report/index.js +1 -1
  477. package/dist/components/reports/dynamic-report/dynamic-rows/index.esm.js +1 -1
  478. package/dist/components/reports/dynamic-report/dynamic-rows/index.js +1 -1
  479. package/dist/components/reports/dynamic-report/index.esm.js +2 -2
  480. package/dist/components/reports/dynamic-report/index.js +2 -2
  481. package/dist/components/reports/index.esm.js +2 -2
  482. package/dist/components/reports/index.js +2 -2
  483. package/dist/components/reports-title-bar/index.esm.js +3 -3
  484. package/dist/components/reports-title-bar/index.js +3 -3
  485. package/dist/components/reports-title-bar/redux/actionCreator/index.esm.js +1 -1
  486. package/dist/components/reports-title-bar/redux/actionCreator/index.js +1 -1
  487. package/dist/components/reports-title-bar/redux/index.esm.js +2 -2
  488. package/dist/components/reports-title-bar/redux/index.js +2 -2
  489. package/dist/components/reports-title-bar/redux/reducer/index.esm.js +1 -1
  490. package/dist/components/reports-title-bar/redux/reducer/index.js +1 -1
  491. package/dist/components/reports-title-bar/reports-title-bar/index.esm.js +1 -1
  492. package/dist/components/reports-title-bar/reports-title-bar/index.js +1 -1
  493. package/dist/components/rfq-response/index.esm.js +1 -1
  494. package/dist/components/rfq-response/index.js +1 -1
  495. package/dist/components/rfq-response/item-response-details/index.esm.js +1 -1
  496. package/dist/components/rfq-response/item-response-details/index.js +1 -1
  497. package/dist/components/schedule-report/index.esm.js +2 -2
  498. package/dist/components/schedule-report/index.js +2 -2
  499. package/dist/components/schedule-report/schedule-report/index.esm.js +1 -1
  500. package/dist/components/schedule-report/schedule-report/index.js +1 -1
  501. package/dist/components/schedule-report/schedule-report-modal/index.esm.js +1 -1
  502. package/dist/components/schedule-report/schedule-report-modal/index.js +1 -1
  503. package/dist/components/searchable-select/index.esm.js +1 -1
  504. package/dist/components/searchable-select/index.js +1 -1
  505. package/dist/components/share-modal/index.esm.js +4 -4
  506. package/dist/components/share-modal/index.js +4 -4
  507. package/dist/components/share-modal/redux/actionCreator/index.esm.js +1 -1
  508. package/dist/components/share-modal/redux/actionCreator/index.js +1 -1
  509. package/dist/components/share-modal/redux/index.esm.js +2 -2
  510. package/dist/components/share-modal/redux/index.js +2 -2
  511. package/dist/components/share-modal/redux/reducer/index.esm.js +1 -1
  512. package/dist/components/share-modal/redux/reducer/index.js +1 -1
  513. package/dist/components/share-modal/share-modal/index.esm.js +1 -1
  514. package/dist/components/share-modal/share-modal/index.js +1 -1
  515. package/dist/components/share-modal/share-modal-enhanced/index.esm.js +1 -1
  516. package/dist/components/share-modal/share-modal-enhanced/index.js +1 -1
  517. package/dist/components/team-add-modal/index.esm.js +1 -1
  518. package/dist/components/team-add-modal/index.js +1 -1
  519. package/dist/components/uom-field-wrapper/index.esm.js +1 -1
  520. package/dist/components/uom-field-wrapper/index.js +1 -1
  521. package/dist/components/uom-field-wrapper/uom-field-wrapper/index.esm.js +1 -1
  522. package/dist/components/uom-field-wrapper/uom-field-wrapper/index.js +1 -1
  523. package/dist/components/upload-excel/index.esm.js +1 -1
  524. package/dist/components/upload-excel/index.js +1 -1
  525. package/dist/components/upload-excel/upload-excel/index.esm.js +1 -1
  526. package/dist/components/upload-excel/upload-excel/index.js +1 -1
  527. package/dist/components/vendor-ai-summary/index.esm.js +1 -1
  528. package/dist/components/vendor-ai-summary/index.js +1 -1
  529. package/dist/hooks/index.esm.js +6 -6
  530. package/dist/hooks/index.js +6 -6
  531. package/dist/hooks/use-translations/index.esm.js +1 -1
  532. package/dist/hooks/use-translations/index.js +1 -1
  533. package/dist/hooks/useAccountSetting/index.esm.js +1 -1
  534. package/dist/hooks/useAccountSetting/index.js +1 -1
  535. package/dist/hooks/useCheckSkuAndName/index.esm.js +1 -1
  536. package/dist/hooks/useCheckSkuAndName/index.js +1 -1
  537. package/dist/hooks/useReduxIntegration/index.esm.js +1 -1
  538. package/dist/hooks/useReduxIntegration/index.js +1 -1
  539. package/dist/hooks/useUniquenessCheck/index.esm.js +1 -1
  540. package/dist/hooks/useUniquenessCheck/index.js +1 -1
  541. package/dist/index.esm.js +64 -64
  542. package/dist/index.js +64 -64
  543. package/dist/layout/fullScreen/index.esm.js +1 -1
  544. package/dist/layout/fullScreen/index.js +1 -1
  545. package/dist/layout/index.esm.js +2 -2
  546. package/dist/layout/index.js +2 -2
  547. package/dist/layout/sidebarScreen/index.esm.js +1 -1
  548. package/dist/layout/sidebarScreen/index.js +1 -1
  549. package/dist/redux/index.esm.js +3 -3
  550. package/dist/redux/index.js +3 -3
  551. package/dist/runtime/index.esm.js +1 -1
  552. package/dist/runtime/index.js +1 -1
  553. package/dist/src/api-client/api.ai-feature/api.d.ts +15 -0
  554. package/dist/src/components/chat-bot/types.d.ts +1 -1
  555. package/dist/utils/api/index.esm.js +1 -1
  556. package/dist/utils/api/index.js +1 -1
  557. package/dist/utils/common/index.esm.js +1 -1
  558. package/dist/utils/common/index.js +1 -1
  559. package/dist/utils/common-utility/index.esm.js +1 -1
  560. package/dist/utils/common-utility/index.js +1 -1
  561. package/dist/utils/index.esm.js +5 -5
  562. package/dist/utils/index.js +4 -4
  563. package/dist/utils/text-measurement/index.esm.js +1 -1
  564. package/dist/utils/text-measurement/index.js +1 -1
  565. package/dist/views/afterAuth/dashboard/index.esm.js +1 -1
  566. package/dist/views/afterAuth/dashboard/index.js +1 -1
  567. package/dist/views/afterAuth/index.esm.js +2 -2
  568. package/dist/views/afterAuth/index.js +2 -2
  569. package/dist/views/afterAuth/page-view/index.esm.js +1 -1
  570. package/dist/views/afterAuth/page-view/index.js +1 -1
  571. package/dist/views/form-builder/custom-form/index.esm.js +1 -1
  572. package/dist/views/form-builder/custom-form/index.js +1 -1
  573. package/dist/views/form-builder/element-edit-forms/index.esm.js +1 -1
  574. package/dist/views/form-builder/element-edit-forms/index.js +1 -1
  575. package/dist/views/form-builder/form-fields/index.esm.js +1 -1
  576. package/dist/views/form-builder/form-fields/index.js +1 -1
  577. package/dist/views/form-builder/index.esm.js +4 -4
  578. package/dist/views/form-builder/index.js +4 -4
  579. package/dist/views/form-builder/redux/index.esm.js +1 -1
  580. package/dist/views/form-builder/redux/index.js +1 -1
  581. package/dist/views/index.esm.js +13 -13
  582. package/dist/views/index.js +13 -13
  583. package/dist/views/template-editor/add-template/index.esm.js +1 -1
  584. package/dist/views/template-editor/add-template/index.js +1 -1
  585. package/dist/views/template-editor/components/index.esm.js +1 -1
  586. package/dist/views/template-editor/components/index.js +1 -1
  587. package/dist/views/template-editor/edit-section-modal/index.esm.js +1 -1
  588. package/dist/views/template-editor/edit-section-modal/index.js +1 -1
  589. package/dist/views/template-editor/index.esm.js +7 -7
  590. package/dist/views/template-editor/index.js +7 -7
  591. package/dist/views/template-editor/routes/index.esm.js +1 -1
  592. package/dist/views/template-editor/routes/index.js +1 -1
  593. package/dist/views/template-editor/template-modal/index.esm.js +1 -1
  594. package/dist/views/template-editor/template-modal/index.js +1 -1
  595. package/dist/views/template-editor/templates/index.esm.js +1 -1
  596. package/dist/views/template-editor/templates/index.js +1 -1
  597. package/package.json +1 -1
  598. package/dist/chunks/chat-bot-BpNtrZEL.esm.js.map +0 -1
  599. package/dist/chunks/chat-bot-osiGMG3g.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"address-modal-CkDBjnye.esm.js","sources":["../../src/components/address-modal/address-modal.tsx"],"sourcesContent":["import './address-modal.scss';\n\nimport { Close } from '@mui/icons-material';\nimport {\n\tBox,\n\tCircularProgress,\n\tDialogActions,\n\tDialogContent,\n\tDialogTitle,\n\tDialogProps,\n\tFormControlLabel,\n\tGrid,\n\tIconButton,\n\tRadioGroup\n} from '@mui/material';\nimport Modal from '../modal/modal';\nimport Typography from '../typography/typography';\nimport { useEffect, useMemo, useState } from 'react';\nimport { useForm, useWatch } from 'react-hook-form';\nimport Radio from '../radio/radio';\n\nimport Button from '../button/button';\nimport { Copy } from '../icons';\n\nimport * as Yup from 'yup';\nimport { yupResolver } from '@hookform/resolvers/yup';\nimport { FormLoader } from '../loaders';\nimport DynamicInput from '../form-control/form-builder/form-builder-element/text';\nimport DynamicPhone from '../form-control/form-builder/form-builder-element/phone';\nimport { CountryData } from 'react-phone-input-2';\nimport DynamicCheckBox from '../form-control/form-builder/form-builder-element/checkbox';\nimport { enqueueSnackbar } from 'notistack';\nimport DynamicSearchSelect from '../form-control/form-builder/form-builder-element/dynamic-select';\nimport { useTranslation } from 'react-i18next';\nimport { getApiConfigSafe } from '../../utils/api-config';\n\ninterface IFormInput {\n\taddresses: {\n\t\taddress_type?: string;\n\t\tcontact_name?: string;\n\t\tdefault_shipping_address?: boolean;\n\t\tdefault_billing_address?: boolean;\n\t\tcountry_code?: string;\n\t\tmobile?: string;\n\t\tstreet_1?: string;\n\t\tstreet_2?: string;\n\t\tstreet_3?: string;\n\t\tstreet_name?: string;\n\t\tbuilding_no?: string;\n\t\tadditional_no?: string;\n\t\tnational_address?: string;\n\t\tzip_code?: string;\n\t\tcity?: string;\n\t\tdistrict_name?: string;\n\t\tstate?: number | null;\n\t\tcountry?: number | null;\n\t\tsummary?: string;\n\t};\n}\n\ninterface AddressModalProps {\n\tisOpen: boolean;\n\tsetIsOpen: () => void;\n\tmodalProps?: DialogProps;\n\titemData?: any;\n\titemIndex: number;\n\titems?: any;\n\tprefillData?: {\n\t\tcontact_name?: string;\n\t\tmobile?: string;\n\t};\n\tonSave: (data: any, itemIndex?: number) => void;\n\ttranslationKey: string;\n\toptionalFields?: string[];\n}\n\nconst addressTypeOptions = [\n\t{ label: 'Delivery', value: 'Delivery' },\n\t{ label: 'Shipping', value: 'Shipping' },\n\t{ label: 'Office', value: 'Office' }\n];\n\n// excludeEmptyString matters: without it yup runs the pattern against '' and fails, so clearing an\n// optional field would report a format error instead of simply being empty. Note it only works in\n// the options-object form - passing it as a third argument is ignored.\nconst zipCodeRule = Yup.string()\n\t.matches(/^[0-9\\u0660-\\u0669]+$/, {\n\t\tmessage: 'Zip code must contain only digits without special characters',\n\t\texcludeEmptyString: true\n\t})\n\t.test(\n\t\t'no-dot-plus',\n\t\t'Zip code must not contain \".\" or \"+\"',\n\t\t(value) => !value?.includes('.') && !value?.includes('+')\n\t);\n\nconst cityRule = Yup.string().matches(/^[A-Za-z\\u0600-\\u06FF\\s]+$/, {\n\tmessage: 'City must contain alphabets only',\n\texcludeEmptyString: true\n});\n\n// Fields that mean a pane was actually filled in. summary, country_code and the default flags are\n// derived or auto-populated, so they are not proof that the user entered anything.\nconst ADDRESS_CONTENT_FIELDS = [\n\t'address_type',\n\t'contact_name',\n\t'mobile',\n\t'street_1',\n\t'street_2',\n\t'street_3',\n\t'street_name',\n\t'building_no',\n\t'additional_no',\n\t'national_address',\n\t'zip_code',\n\t'city',\n\t'district_name',\n\t'state',\n\t'country'\n];\n\n// Every field has to be named when resetting a pane. react-hook-form leaves a field untouched if\n// its name is absent from the reset payload, so an address opened for edit would keep showing its\n// values on the other language's pane.\nconst BLANK_ADDRESS = {\n\taddress_type: '',\n\tcontact_name: '',\n\tcountry_code: '',\n\tmobile: '',\n\tstreet_1: '',\n\tstreet_2: '',\n\tstreet_3: '',\n\tstreet_name: '',\n\tbuilding_no: '',\n\tadditional_no: '',\n\tnational_address: '',\n\tzip_code: '',\n\tcity: '',\n\tdistrict_name: '',\n\tstate: null,\n\tcountry: null,\n\tsummary: '',\n\tdefault_shipping_address: false,\n\tdefault_billing_address: false\n};\n\nconst hasValues = (values?: any) =>\n\t!!values &&\n\tADDRESS_CONTENT_FIELDS.some((field) => {\n\t\tconst value = values[field];\n\t\treturn value !== undefined && value !== null && String(value).trim() !== '';\n\t});\n\nconst buildValidationSchema = (isKSA: boolean, optionalFields: string[] = []) => {\n\tconst zipOptional = optionalFields.includes('zip_code');\n\tconst stateOptional = optionalFields.includes('state');\n\n\treturn Yup.object().shape({\n\t\taddresses: Yup.object().shape({\n\t\t\taddress_type: Yup.string().required('Address type is required'),\n\t\t\tcontact_name: Yup.string().required('Contact name is required'),\n\t\t\tstreet_1: Yup.string().required('Address 1 is required'),\n\t\t\tstreet_2: Yup.string().nullable(),\n\t\t\tstreet_3: Yup.string().nullable(),\n\t\t\t...(isKSA ? { building_no: Yup.string().nullable(), additional_no: Yup.string().nullable() } : {}),\n\t\t\tzip_code: zipOptional\n\t\t\t\t? Yup.string()\n\t\t\t\t\t\t.nullable()\n\t\t\t\t\t\t.test(\n\t\t\t\t\t\t\t'optional-digits',\n\t\t\t\t\t\t\t'Zip code must contain only digits without special characters',\n\t\t\t\t\t\t\t(value) =>\n\t\t\t\t\t\t\t\t!value ||\n\t\t\t\t\t\t\t\t(!value.includes('.') &&\n\t\t\t\t\t\t\t\t\t!value.includes('+') &&\n\t\t\t\t\t\t\t\t\t/^[0-9]+$/.test(value))\n\t\t\t\t\t\t)\n\t\t\t\t: Yup.string()\n\t\t\t\t\t\t.required('Zip code is required')\n\t\t\t\t\t\t.matches(/^[0-9]+$/, 'Zip code must contain only digits without special characters')\n\t\t\t\t\t\t.test(\n\t\t\t\t\t\t\t'no-dot-plus',\n\t\t\t\t\t\t\t'Zip code must not contain \".\" or \"+\"',\n\t\t\t\t\t\t\t(value) => !value?.includes('.') && !value?.includes('+')\n\t\t\t\t\t\t),\n\t\t\tcity: Yup.string()\n\t\t\t\t.matches(/^[A-Za-z\\s]+$/, 'City must contain alphabets only'),\n\t\t\tstate: stateOptional\n\t\t\t\t? Yup.number()\n\t\t\t\t\t\t.nullable()\n\t\t\t\t\t\t.typeError('State is not valid')\n\t\t\t\t: Yup.number()\n\t\t\t\t\t\t.typeError('State is required')\n\t\t\t\t\t\t.required('State is required'),\n\t\t\tcountry: Yup.number()\n\t\t\t\t.typeError('Country is required')\n\t\t\t\t.required('Country is required')\n\t\t})\n\t});\n};\n\n// The Arabic pane is a translation of an address that was already filled in English: the dropdowns\n// are hidden and inherited from the English pane, so nothing here is required. Format rules that\n// accept Arabic characters are kept.\nconst arabicValidationSchema = Yup.object().shape({\n\taddresses: Yup.object().shape({\n\t\tzip_code: zipCodeRule,\n\t\tcity: cityRule\n\t})\n});\n\nconst AddressModal: React.FC<AddressModalProps> = ({\n\tisOpen,\n\tsetIsOpen,\n\tmodalProps,\n\titemData,\n\titemIndex,\n\titems,\n\tprefillData,\n\tonSave,\n\ttranslationKey,\n\toptionalFields = [],\n}) => {\n\tconst { t } = useTranslation();\n\tconst isKSA = getApiConfigSafe()?.countryEnv === 'ksa';\n\tconst [submitLoading, setSubmitLoading] = useState<boolean>(false);\n\tconst [language, setLanguage] = useState<'en' | 'ar'>('en');\n\t// Field values of the language that is not on screen, so switching back and forth keeps both.\n\tconst [drafts, setDrafts] = useState<{ en?: any; ar?: any }>({});\n\tconst [entryDetails, setEntryDetails] = useState<Record<string, any>>({\n\t\tcountry_data: null,\n\t\tstate_data: null\n\t});\n\n\tconst validationSchema = useMemo(\n\t\t() => buildValidationSchema(isKSA, optionalFields),\n\t\t[isKSA, optionalFields]\n\t);\n\n\tconst { country_data, state_data } = entryDetails;\n\n\tconst {\n\t\tcontrol,\n\t\thandleSubmit,\n\t\tsetValue,\n\t\treset,\n\t\tgetValues,\n\t\twatch,\n\t\ttrigger,\n\t\tgetFieldState\n\t} = useForm<IFormInput>({\n\t\tresolver: yupResolver(language === 'ar' ? arabicValidationSchema : validationSchema),\n\t\tmode: 'all'\n\t});\n\n\tconst watchedValues = useWatch({\n\t\tcontrol: control,\n\t\tname: [\n\t\t\t'addresses.contact_name',\n\t\t\t'addresses.street_1',\n\t\t\t'addresses.street_2',\n\t\t\t'addresses.street_3',\n\t\t\t'addresses.street_name',\n\t\t\t'addresses.building_no',\n\t\t\t'addresses.additional_no',\n\t\t\t'addresses.national_address',\n\t\t\t'addresses.zip_code',\n\t\t\t'addresses.city',\n\t\t\t'addresses.district_name',\n\t\t\t'addresses.state',\n\t\t\t'addresses.country'\n\t\t]\n\t});\n\n\tconst selectedCountry = watch('addresses.country');\n\tconst isDirtyC = getFieldState('addresses.country')?.isDirty || false;\n\n\tconst onSubmit = (values: any) => {\n\t\tsetSubmitLoading(true);\n\t\thandleValidateSave(values);\n\t\tsetSubmitLoading(false);\n\t};\n\n\t// Arabic is a translation of the English address, so the English pane has to be valid before it\n\t// can be opened. Each pane keeps its own values while the modal stays open.\n\tconst handleLanguageChange = async (next: 'en' | 'ar') => {\n\t\tif (next === language) {\n\t\t\treturn;\n\t\t}\n\n\t\t// The gate only applies to starting the Arabic pane. Once it holds values - a new translation\n\t\t// in progress, or an existing Arabic row being edited - switching back to it is navigation,\n\t\t// not a fresh start, and must never be blocked.\n\t\tif (next === 'ar' && !hasValues(drafts.ar)) {\n\t\t\tconst isEnglishValid = await trigger();\n\t\t\tif (!isEnglishValid) {\n\t\t\t\tenqueueSnackbar(\n\t\t\t\t\tt(`accounting.${translationKey}.msg.fill_english_address_first`, {\n\t\t\t\t\t\tdefaultValue: 'Please fill the English address first'\n\t\t\t\t\t}),\n\t\t\t\t\t{ variant: 'error' }\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tconst current = getValues()?.addresses;\n\t\tsetDrafts((prev) => ({ ...prev, [language]: current }));\n\t\tsetLanguage(next);\n\t\treset({\n\t\t\taddresses: { ...BLANK_ADDRESS, ...(drafts[next] ?? {}) } as IFormInput['addresses']\n\t\t});\n\t};\n\n\tconst handleDuplicate = async () => {\n\t\tconst v = await trigger();\n\t\tif (!v) {\n\t\t\treturn;\n\t\t}\n\t\tlet values = getValues();\n\t\tvalues = {\n\t\t\t...values,\n\t\t\taddresses: {\n\t\t\t\t...values?.addresses,\n\t\t\t\tdefault_shipping_address: false,\n\t\t\t\tdefault_billing_address: false,\n\t\t\t\tcountry: country_data,\n\t\t\t\tstate: state_data,\n\t\t\t\tlanguage\n\t\t\t}\n\t\t};\n\t\tsetSubmitLoading(true);\n\t\tonSave({ ...values });\n\t\thandleModalClose();\n\t\tsetSubmitLoading(false);\n\t};\n\n\tconst handleValidateSave = (values: any) => {\n\t\tconst validateDefaults = (data: any, index: number, type = 'shipping') => {\n\t\t\tconst u_data = [...data];\n\t\t\tif (index != null && index >= 0) {\n\t\t\t\tu_data?.splice(index, 1);\n\t\t\t}\n\n\t\t\tif (type == 'shipping') {\n\t\t\t\tconst hasDFS = u_data.some((d: any) => d?.default_shipping_address);\n\t\t\t\tif (hasDFS) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\tt(`accounting.${translationKey}.msg.default_shipping_address_msg`)\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t} else {\n\t\t\t\tconst hasDFB = u_data.some((d: any) => d?.default_billing_address);\n\t\t\t\tif (hasDFB) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\tt(`accounting.${translationKey}.msg.default_billing_address_msg`)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t};\n\n\t\ttry {\n\t\t\t// The pane on screen holds the live values, the other one its stored draft.\n\t\t\tlet englishValues = language === 'en' ? values?.addresses : drafts.en;\n\t\t\tconst arabicValues = language === 'ar' ? values?.addresses : drafts.ar;\n\n\t\t\t// The default flags only exist on the English pane, so they are checked there whichever\n\t\t\t// pane happens to be open at save time.\n\t\t\tif (englishValues?.default_shipping_address) {\n\t\t\t\tvalidateDefaults(items, itemIndex, 'shipping');\n\t\t\t}\n\n\t\t\tif (englishValues?.default_billing_address) {\n\t\t\t\tvalidateDefaults(items, itemIndex, 'billing');\n\t\t\t}\n\n\t\t\tif (englishValues && items && items?.length === 0) {\n\t\t\t\tenglishValues = {\n\t\t\t\t\t...englishValues,\n\t\t\t\t\tdefault_shipping_address: true,\n\t\t\t\t\tdefault_billing_address: true\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// One address is one row in the list. Its Arabic translation rides along nested under\n\t\t\t// `arabic` so the pair stays together, in the list and in the payload.\n\t\t\tif (!hasValues(englishValues) && !hasValues(arabicValues)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// An address that only ever had Arabic data stays Arabic-only, otherwise it would be\n\t\t\t// rewritten as an empty English row.\n\t\t\tif (!hasValues(englishValues)) {\n\t\t\t\tonSave(\n\t\t\t\t\t{\n\t\t\t\t\t\t...values,\n\t\t\t\t\t\taddresses: {\n\t\t\t\t\t\t\t...arabicValues,\n\t\t\t\t\t\t\taddress_type: arabicValues?.address_type || itemData?.address_type,\n\t\t\t\t\t\t\tcountry: country_data,\n\t\t\t\t\t\t\tstate: state_data,\n\t\t\t\t\t\t\tlanguage: 'ar'\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\titemIndex\n\t\t\t\t);\n\t\t\t\thandleModalClose();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst row: any = {\n\t\t\t\t...englishValues,\n\t\t\t\tcountry: country_data,\n\t\t\t\tstate: state_data,\n\t\t\t\tlanguage: 'en'\n\t\t\t};\n\n\t\t\t// Always set the key, never leave it out: the list merges the saved row over the old one, so\n\t\t\t// an absent `arabic` would silently keep a translation the user just cleared.\n\t\t\t// The dropdowns are hidden on the Arabic pane, so the backend fills those columns from the\n\t\t\t// English row - address_type in particular is NOT NULL on party_address_arabic.\n\t\t\trow.arabic = hasValues(arabicValues)\n\t\t\t\t? { ...arabicValues, id: itemData?.arabic?.id }\n\t\t\t\t: null;\n\n\t\t\tonSave({ ...values, addresses: row }, itemIndex);\n\t\t\thandleModalClose();\n\t\t} catch (error) {\n\t\t\tenqueueSnackbar(error?.message || 'Something went wrong', {\n\t\t\t\tvariant: 'error'\n\t\t\t});\n\t\t}\n\t};\n\n\tconst handleModalClose = () => {\n\t\treset({ addresses: null });\n\t\tsetDrafts({});\n\t\tsetLanguage('en');\n\t\tsetEntryDetails({\n\t\t\tstate_data: null,\n\t\t\tcountry_data: null\n\t\t});\n\t\tsetIsOpen();\n\t};\n\n\tconst handleSetCountryCodeField = (country: CountryData) => {\n\t\tconst values = getValues();\n\t\tconst oldVal = values?.addresses?.country_code;\n\t\tconst newVal = `+${country.dialCode}`;\n\t\tif (oldVal !== newVal) {\n\t\t\tsetValue(`addresses.country_code` as never, newVal as never);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tconst summaryVal = watchedValues.reduce((ele, ele2, index) => {\n\t\t\tif (!ele2) return ele;\n\t\t\tif (!ele) return ele2;\n\n\t\t\tif (index === 11) {\n\t\t\t\tele2 = state_data\n\t\t\t}\n\t\t\tif (index === 12) {\n\t\t\t\tele2 = country_data\n\t\t\t}\n\n\t\t\tele = ele?.name || ele;\n\t\t\tele2 = ele2?.name || ele2;\n\t\t\tif ([2, 3, 4, 5, 6, 7].includes(index)) {\n\t\t\t\treturn ele + ' ' + ele2;\n\t\t\t}\n\t\t\treturn ele + ', \\n' + ele2;\n\t\t}, '');\n\n\t\tsetValue('addresses.summary' as never, summaryVal as never);\n\t}, [setValue, watchedValues, country_data, state_data]);\n\n\tuseEffect(() => {\n\t\tif (itemData) {\n\t\t\t// Keep the row on the language it was saved with, otherwise an existing Arabic address\n\t\t\t// would be re-tagged as English and moved to the English table on save.\n\t\t\tsetLanguage(itemData?.language === 'ar' ? 'ar' : 'en');\n\t\t\t// The saved translation seeds the Arabic pane, so switching to it shows the Arabic data\n\t\t\t// rather than an empty form. It is held as a draft, never merged into the English pane.\n\t\t\tconst { arabic, ...englishData } = itemData;\n\t\t\tsetDrafts(\n\t\t\t\tarabic\n\t\t\t\t\t? {\n\t\t\t\t\t\tar: {\n\t\t\t\t\t\t\t...BLANK_ADDRESS,\n\t\t\t\t\t\t\t...arabic,\n\t\t\t\t\t\t\tcountry: arabic?.country?.id ?? arabic?.country,\n\t\t\t\t\t\t\tstate: arabic?.state?.id ?? arabic?.state\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t: {}\n\t\t\t);\n\t\t\treset({\n\t\t\t\taddresses: {\n\t\t\t\t\t...BLANK_ADDRESS,\n\t\t\t\t\t...englishData,\n\t\t\t\t\tcountry: englishData?.country?.id,\n\t\t\t\t\tstate: englishData?.state?.id\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}, [itemData, reset]);\n\n\tuseEffect(() => {\n\t\tif (isOpen && !itemData) {\n\t\t\tsetLanguage('en');\n\t\t\tsetDrafts({});\n\t\t\treset({\n\t\t\t\taddresses: {\n\t\t\t\t\t...BLANK_ADDRESS,\n\t\t\t\t\taddress_type: 'Office',\n\t\t\t\t\tcontact_name: prefillData?.contact_name || '',\n\t\t\t\t\tmobile: prefillData?.mobile || ''\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}, [isOpen, itemData, prefillData?.contact_name, prefillData?.mobile, reset]);\n\n\tconst setDetailsData = (data: any[], key: string) => {\n\t\tsetEntryDetails((prev) => ({ ...prev, [key]: data }));\n\t};\n\n\tuseEffect(() => {\n\t\tif (isDirtyC) {\n\t\t\tsetValue('addresses.state', null);\n\t\t}\n\t}, [selectedCountry, isDirtyC]);\n\n\tconst stateFilter = useMemo(() => {\n\t\treturn { '&country_id.eq': selectedCountry || 0 }\n\t}, [selectedCountry]);\n\n\treturn (\n\t\t<Modal\n\t\t\topen={isOpen}\n\t\t\tonClose={setIsOpen}\n\t\t\tmaxWidth='md'\n\t\t\tfullWidth\n\t\t\t{...modalProps}>\n\t\t\t<form onSubmit={handleSubmit(onSubmit)}>\n\t\t\t\t{submitLoading && <FormLoader />}\n\t\t\t\t<DialogTitle className='addressModal--Title'>\n\t\t\t\t\t<Typography type='s3' color='inherit' weight='medium'>\n\t\t\t\t\t\t{t(`accounting.${translationKey}.addressModal.title`)}\n\t\t\t\t\t</Typography>\n\t\t\t\t\t<IconButton onClick={handleModalClose}>\n\t\t\t\t\t\t<Close fontSize='small' />\n\t\t\t\t\t</IconButton>\n\t\t\t\t</DialogTitle>\n\t\t\t\t<DialogContent>\n\t\t\t\t\t<RadioGroup\n\t\t\t\t\t\tclassName='addressModal--LanguageSwitch'\n\t\t\t\t\t\trow\n\t\t\t\t\t\tvalue={language}\n\t\t\t\t\t\tonChange={(e) => handleLanguageChange(e.target.value as 'en' | 'ar')}>\n\t\t\t\t\t\t<FormControlLabel value='en' control={<Radio />} label='English' />\n\t\t\t\t\t\t<FormControlLabel value='ar' control={<Radio />} label='Arabic' />\n\t\t\t\t\t</RadioGroup>\n\t\t\t\t\t<Grid container rowGap={1.5} columnSpacing={3} pt={3}>\n\t\t\t\t\t\t{language === 'en' && (\n\t\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t\t<DynamicSearchSelect\n\t\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.address_type_label`)}\n\t\t\t\t\t\t\t\t\toptions={addressTypeOptions}\n\t\t\t\t\t\t\t\t\tname='address_type'\n\t\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.address_type_placeholder`)}\n\t\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.contact_name_label`)}\n\t\t\t\t\t\t\t\tname='contact_name'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.contact_name_placeholder`)}\n\t\t\t\t\t\t\t\trequired={language === 'en'}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicPhone\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.mobile_label`)}\n\t\t\t\t\t\t\t\tname='mobile'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tsetCountryCodeField={(country: CountryData) =>\n\t\t\t\t\t\t\t\t\thandleSetCountryCodeField(country)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.address1_label`)}\n\t\t\t\t\t\t\t\tname='street_1'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.address1_placeholder`)}\n\t\t\t\t\t\t\t\trequired={language === 'en'}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.address2_label`)}\n\t\t\t\t\t\t\t\tname='street_2'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.address2_placeholder`)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.address3_label`)}\n\t\t\t\t\t\t\t\tname='street_3'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.address3_placeholder`)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t{isKSA && <Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.streetName_label`)}\n\t\t\t\t\t\t\t\tname='street_name'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.streetName_placeholder`)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>}\n\t\t\t\t\t\t{isKSA && <>\n\t\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.buildingNo_label`)}\n\t\t\t\t\t\t\t\t\tname='building_no'\n\t\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\t\tplaceholder='Enter Building No.'\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.additionalNo_label`)}\n\t\t\t\t\t\t\t\t\tname='additional_no'\n\t\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\t\tplaceholder='Enter Additional No.'\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t</>}\n\t\t\t\t\t\t{isKSA && <Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.nationalAddress_label`)}\n\t\t\t\t\t\t\t\tname='national_address'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.nationalAddress_placeholder`)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>}\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.zip_code_label`)}\n\t\t\t\t\t\t\t\tname='zip_code'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.zip_code_placeholder`)}\n\t\t\t\t\t\t\t\trequired={!optionalFields.includes('zip_code') && language === 'en'}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t{language === 'en' && (\n\t\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t\t<DynamicSearchSelect\n\t\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.country_label`)}\n\t\t\t\t\t\t\t\t\tname='country'\n\t\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.country_placeholder`)}\n\t\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\t\tapiType='countries'\n\t\t\t\t\t\t\t\t\tgetSelectedData={(row: any[]) =>\n\t\t\t\t\t\t\t\t\t\tsetDetailsData(row, 'country_data')\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{language === 'en' && (\n\t\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t\t<DynamicSearchSelect\n\t\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.state_label`)}\n\t\t\t\t\t\t\t\t\tname='state'\n\t\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.state_placeholder`)}\n\t\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\t\tapiType='states'\n\t\t\t\t\t\t\t\t\tcustomeFilter={stateFilter}\n\t\t\t\t\t\t\t\t\tgetSelectedData={(row: any[]) =>\n\t\t\t\t\t\t\t\t\t\tsetDetailsData(row, 'state_data')\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.city_label`)}\n\t\t\t\t\t\t\t\tname='city'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.city_placeholder`)}\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t{isKSA && <Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.districtName_label`)}\n\t\t\t\t\t\t\t\tname='district_name'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.districtName_placeholder`)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>}\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.summary_label`)}\n\t\t\t\t\t\t\t\tname='summary'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.summary_placeholder`)}\n\t\t\t\t\t\t\t\tis_multiline\n\t\t\t\t\t\t\t\tdisabled\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t{language === 'en' && (\n\t\t\t\t\t\t\t<Grid item sm={12}>\n\t\t\t\t\t\t\t\t<DynamicCheckBox\n\t\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\t\tname='default_shipping_address'\n\t\t\t\t\t\t\t\t\ttitle={t(`accounting.${translationKey}.addressModal.default_shipping_address_label`)}\n\t\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\t\ttitlePosition='end'\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{language === 'en' && (\n\t\t\t\t\t\t\t<Grid item sm={12}>\n\t\t\t\t\t\t\t\t<DynamicCheckBox\n\t\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\t\tname='default_billing_address'\n\t\t\t\t\t\t\t\t\ttitle={t(`accounting.${translationKey}.addressModal.default_billing_address_label`)}\n\t\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\t\ttitlePosition='end'\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Grid>\n\t\t\t\t</DialogContent>\n\t\t\t\t<DialogActions\n\t\t\t\t\tclassName={`addressModal--ActionContainer ${!itemData && 'addressModal--ActionContainer--FlexEnd'}`}>\n\t\t\t\t\t{itemData && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName='addressModal--ActionContainer--WhiteBtn'\n\t\t\t\t\t\t\tstartIcon={<Copy />}\n\t\t\t\t\t\t\tdisabled={submitLoading}\n\t\t\t\t\t\t\tonClick={() => handleDuplicate()}>\n\t\t\t\t\t\t\t{t(\"common.duplicate\")}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)}\n\t\t\t\t\t<Box display='flex' gap={1.5}>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName='addressModal--ActionContainer--WhiteBtn'\n\t\t\t\t\t\t\tonClick={handleModalClose}\n\t\t\t\t\t\t\tdisabled={submitLoading}>\n\t\t\t\t\t\t\t{t(\"common.cancel\")}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ttype='submit'\n\t\t\t\t\t\t\tendIcon={\n\t\t\t\t\t\t\t\tsubmitLoading ? (\n\t\t\t\t\t\t\t\t\t<CircularProgress size={20} color='inherit' />\n\t\t\t\t\t\t\t\t) : undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdisabled={submitLoading}>\n\t\t\t\t\t\t\t{t(\"common.save\")}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</Box>\n\t\t\t\t</DialogActions>\n\t\t\t</form>\n\t\t</Modal>\n\t);\n};\n\nexport default AddressModal;\n"],"names":["_a","_b"],"mappings":"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"}
1
+ {"version":3,"file":"address-modal-DuLY8PAg.esm.js","sources":["../../src/components/address-modal/address-modal.tsx"],"sourcesContent":["import './address-modal.scss';\n\nimport { Close } from '@mui/icons-material';\nimport {\n\tBox,\n\tCircularProgress,\n\tDialogActions,\n\tDialogContent,\n\tDialogTitle,\n\tDialogProps,\n\tFormControlLabel,\n\tGrid,\n\tIconButton,\n\tRadioGroup\n} from '@mui/material';\nimport Modal from '../modal/modal';\nimport Typography from '../typography/typography';\nimport { useEffect, useMemo, useState } from 'react';\nimport { useForm, useWatch } from 'react-hook-form';\nimport Radio from '../radio/radio';\n\nimport Button from '../button/button';\nimport { Copy } from '../icons';\n\nimport * as Yup from 'yup';\nimport { yupResolver } from '@hookform/resolvers/yup';\nimport { FormLoader } from '../loaders';\nimport DynamicInput from '../form-control/form-builder/form-builder-element/text';\nimport DynamicPhone from '../form-control/form-builder/form-builder-element/phone';\nimport { CountryData } from 'react-phone-input-2';\nimport DynamicCheckBox from '../form-control/form-builder/form-builder-element/checkbox';\nimport { enqueueSnackbar } from 'notistack';\nimport DynamicSearchSelect from '../form-control/form-builder/form-builder-element/dynamic-select';\nimport { useTranslation } from 'react-i18next';\nimport { getApiConfigSafe } from '../../utils/api-config';\n\ninterface IFormInput {\n\taddresses: {\n\t\taddress_type?: string;\n\t\tcontact_name?: string;\n\t\tdefault_shipping_address?: boolean;\n\t\tdefault_billing_address?: boolean;\n\t\tcountry_code?: string;\n\t\tmobile?: string;\n\t\tstreet_1?: string;\n\t\tstreet_2?: string;\n\t\tstreet_3?: string;\n\t\tstreet_name?: string;\n\t\tbuilding_no?: string;\n\t\tadditional_no?: string;\n\t\tnational_address?: string;\n\t\tzip_code?: string;\n\t\tcity?: string;\n\t\tdistrict_name?: string;\n\t\tstate?: number | null;\n\t\tcountry?: number | null;\n\t\tsummary?: string;\n\t};\n}\n\ninterface AddressModalProps {\n\tisOpen: boolean;\n\tsetIsOpen: () => void;\n\tmodalProps?: DialogProps;\n\titemData?: any;\n\titemIndex: number;\n\titems?: any;\n\tprefillData?: {\n\t\tcontact_name?: string;\n\t\tmobile?: string;\n\t};\n\tonSave: (data: any, itemIndex?: number) => void;\n\ttranslationKey: string;\n\toptionalFields?: string[];\n}\n\nconst addressTypeOptions = [\n\t{ label: 'Delivery', value: 'Delivery' },\n\t{ label: 'Shipping', value: 'Shipping' },\n\t{ label: 'Office', value: 'Office' }\n];\n\n// excludeEmptyString matters: without it yup runs the pattern against '' and fails, so clearing an\n// optional field would report a format error instead of simply being empty. Note it only works in\n// the options-object form - passing it as a third argument is ignored.\nconst zipCodeRule = Yup.string()\n\t.matches(/^[0-9\\u0660-\\u0669]+$/, {\n\t\tmessage: 'Zip code must contain only digits without special characters',\n\t\texcludeEmptyString: true\n\t})\n\t.test(\n\t\t'no-dot-plus',\n\t\t'Zip code must not contain \".\" or \"+\"',\n\t\t(value) => !value?.includes('.') && !value?.includes('+')\n\t);\n\nconst cityRule = Yup.string().matches(/^[A-Za-z\\u0600-\\u06FF\\s]+$/, {\n\tmessage: 'City must contain alphabets only',\n\texcludeEmptyString: true\n});\n\n// Fields that mean a pane was actually filled in. summary, country_code and the default flags are\n// derived or auto-populated, so they are not proof that the user entered anything.\nconst ADDRESS_CONTENT_FIELDS = [\n\t'address_type',\n\t'contact_name',\n\t'mobile',\n\t'street_1',\n\t'street_2',\n\t'street_3',\n\t'street_name',\n\t'building_no',\n\t'additional_no',\n\t'national_address',\n\t'zip_code',\n\t'city',\n\t'district_name',\n\t'state',\n\t'country'\n];\n\n// Every field has to be named when resetting a pane. react-hook-form leaves a field untouched if\n// its name is absent from the reset payload, so an address opened for edit would keep showing its\n// values on the other language's pane.\nconst BLANK_ADDRESS = {\n\taddress_type: '',\n\tcontact_name: '',\n\tcountry_code: '',\n\tmobile: '',\n\tstreet_1: '',\n\tstreet_2: '',\n\tstreet_3: '',\n\tstreet_name: '',\n\tbuilding_no: '',\n\tadditional_no: '',\n\tnational_address: '',\n\tzip_code: '',\n\tcity: '',\n\tdistrict_name: '',\n\tstate: null,\n\tcountry: null,\n\tsummary: '',\n\tdefault_shipping_address: false,\n\tdefault_billing_address: false\n};\n\nconst hasValues = (values?: any) =>\n\t!!values &&\n\tADDRESS_CONTENT_FIELDS.some((field) => {\n\t\tconst value = values[field];\n\t\treturn value !== undefined && value !== null && String(value).trim() !== '';\n\t});\n\nconst buildValidationSchema = (isKSA: boolean, optionalFields: string[] = []) => {\n\tconst zipOptional = optionalFields.includes('zip_code');\n\tconst stateOptional = optionalFields.includes('state');\n\n\treturn Yup.object().shape({\n\t\taddresses: Yup.object().shape({\n\t\t\taddress_type: Yup.string().required('Address type is required'),\n\t\t\tcontact_name: Yup.string().required('Contact name is required'),\n\t\t\tstreet_1: Yup.string().required('Address 1 is required'),\n\t\t\tstreet_2: Yup.string().nullable(),\n\t\t\tstreet_3: Yup.string().nullable(),\n\t\t\t...(isKSA ? { building_no: Yup.string().nullable(), additional_no: Yup.string().nullable() } : {}),\n\t\t\tzip_code: zipOptional\n\t\t\t\t? Yup.string()\n\t\t\t\t\t\t.nullable()\n\t\t\t\t\t\t.test(\n\t\t\t\t\t\t\t'optional-digits',\n\t\t\t\t\t\t\t'Zip code must contain only digits without special characters',\n\t\t\t\t\t\t\t(value) =>\n\t\t\t\t\t\t\t\t!value ||\n\t\t\t\t\t\t\t\t(!value.includes('.') &&\n\t\t\t\t\t\t\t\t\t!value.includes('+') &&\n\t\t\t\t\t\t\t\t\t/^[0-9]+$/.test(value))\n\t\t\t\t\t\t)\n\t\t\t\t: Yup.string()\n\t\t\t\t\t\t.required('Zip code is required')\n\t\t\t\t\t\t.matches(/^[0-9]+$/, 'Zip code must contain only digits without special characters')\n\t\t\t\t\t\t.test(\n\t\t\t\t\t\t\t'no-dot-plus',\n\t\t\t\t\t\t\t'Zip code must not contain \".\" or \"+\"',\n\t\t\t\t\t\t\t(value) => !value?.includes('.') && !value?.includes('+')\n\t\t\t\t\t\t),\n\t\t\tcity: Yup.string()\n\t\t\t\t.matches(/^[A-Za-z\\s]+$/, 'City must contain alphabets only'),\n\t\t\tstate: stateOptional\n\t\t\t\t? Yup.number()\n\t\t\t\t\t\t.nullable()\n\t\t\t\t\t\t.typeError('State is not valid')\n\t\t\t\t: Yup.number()\n\t\t\t\t\t\t.typeError('State is required')\n\t\t\t\t\t\t.required('State is required'),\n\t\t\tcountry: Yup.number()\n\t\t\t\t.typeError('Country is required')\n\t\t\t\t.required('Country is required')\n\t\t})\n\t});\n};\n\n// The Arabic pane is a translation of an address that was already filled in English: the dropdowns\n// are hidden and inherited from the English pane, so nothing here is required. Format rules that\n// accept Arabic characters are kept.\nconst arabicValidationSchema = Yup.object().shape({\n\taddresses: Yup.object().shape({\n\t\tzip_code: zipCodeRule,\n\t\tcity: cityRule\n\t})\n});\n\nconst AddressModal: React.FC<AddressModalProps> = ({\n\tisOpen,\n\tsetIsOpen,\n\tmodalProps,\n\titemData,\n\titemIndex,\n\titems,\n\tprefillData,\n\tonSave,\n\ttranslationKey,\n\toptionalFields = [],\n}) => {\n\tconst { t } = useTranslation();\n\tconst isKSA = getApiConfigSafe()?.countryEnv === 'ksa';\n\tconst [submitLoading, setSubmitLoading] = useState<boolean>(false);\n\tconst [language, setLanguage] = useState<'en' | 'ar'>('en');\n\t// Field values of the language that is not on screen, so switching back and forth keeps both.\n\tconst [drafts, setDrafts] = useState<{ en?: any; ar?: any }>({});\n\tconst [entryDetails, setEntryDetails] = useState<Record<string, any>>({\n\t\tcountry_data: null,\n\t\tstate_data: null\n\t});\n\n\tconst validationSchema = useMemo(\n\t\t() => buildValidationSchema(isKSA, optionalFields),\n\t\t[isKSA, optionalFields]\n\t);\n\n\tconst { country_data, state_data } = entryDetails;\n\n\tconst {\n\t\tcontrol,\n\t\thandleSubmit,\n\t\tsetValue,\n\t\treset,\n\t\tgetValues,\n\t\twatch,\n\t\ttrigger,\n\t\tgetFieldState\n\t} = useForm<IFormInput>({\n\t\tresolver: yupResolver(language === 'ar' ? arabicValidationSchema : validationSchema),\n\t\tmode: 'all'\n\t});\n\n\tconst watchedValues = useWatch({\n\t\tcontrol: control,\n\t\tname: [\n\t\t\t'addresses.contact_name',\n\t\t\t'addresses.street_1',\n\t\t\t'addresses.street_2',\n\t\t\t'addresses.street_3',\n\t\t\t'addresses.street_name',\n\t\t\t'addresses.building_no',\n\t\t\t'addresses.additional_no',\n\t\t\t'addresses.national_address',\n\t\t\t'addresses.zip_code',\n\t\t\t'addresses.city',\n\t\t\t'addresses.district_name',\n\t\t\t'addresses.state',\n\t\t\t'addresses.country'\n\t\t]\n\t});\n\n\tconst selectedCountry = watch('addresses.country');\n\tconst isDirtyC = getFieldState('addresses.country')?.isDirty || false;\n\n\tconst onSubmit = (values: any) => {\n\t\tsetSubmitLoading(true);\n\t\thandleValidateSave(values);\n\t\tsetSubmitLoading(false);\n\t};\n\n\t// Arabic is a translation of the English address, so the English pane has to be valid before it\n\t// can be opened. Each pane keeps its own values while the modal stays open.\n\tconst handleLanguageChange = async (next: 'en' | 'ar') => {\n\t\tif (next === language) {\n\t\t\treturn;\n\t\t}\n\n\t\t// The gate only applies to starting the Arabic pane. Once it holds values - a new translation\n\t\t// in progress, or an existing Arabic row being edited - switching back to it is navigation,\n\t\t// not a fresh start, and must never be blocked.\n\t\tif (next === 'ar' && !hasValues(drafts.ar)) {\n\t\t\tconst isEnglishValid = await trigger();\n\t\t\tif (!isEnglishValid) {\n\t\t\t\tenqueueSnackbar(\n\t\t\t\t\tt(`accounting.${translationKey}.msg.fill_english_address_first`, {\n\t\t\t\t\t\tdefaultValue: 'Please fill the English address first'\n\t\t\t\t\t}),\n\t\t\t\t\t{ variant: 'error' }\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tconst current = getValues()?.addresses;\n\t\tsetDrafts((prev) => ({ ...prev, [language]: current }));\n\t\tsetLanguage(next);\n\t\treset({\n\t\t\taddresses: { ...BLANK_ADDRESS, ...(drafts[next] ?? {}) } as IFormInput['addresses']\n\t\t});\n\t};\n\n\tconst handleDuplicate = async () => {\n\t\tconst v = await trigger();\n\t\tif (!v) {\n\t\t\treturn;\n\t\t}\n\t\tlet values = getValues();\n\t\tvalues = {\n\t\t\t...values,\n\t\t\taddresses: {\n\t\t\t\t...values?.addresses,\n\t\t\t\tdefault_shipping_address: false,\n\t\t\t\tdefault_billing_address: false,\n\t\t\t\tcountry: country_data,\n\t\t\t\tstate: state_data,\n\t\t\t\tlanguage\n\t\t\t}\n\t\t};\n\t\tsetSubmitLoading(true);\n\t\tonSave({ ...values });\n\t\thandleModalClose();\n\t\tsetSubmitLoading(false);\n\t};\n\n\tconst handleValidateSave = (values: any) => {\n\t\tconst validateDefaults = (data: any, index: number, type = 'shipping') => {\n\t\t\tconst u_data = [...data];\n\t\t\tif (index != null && index >= 0) {\n\t\t\t\tu_data?.splice(index, 1);\n\t\t\t}\n\n\t\t\tif (type == 'shipping') {\n\t\t\t\tconst hasDFS = u_data.some((d: any) => d?.default_shipping_address);\n\t\t\t\tif (hasDFS) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\tt(`accounting.${translationKey}.msg.default_shipping_address_msg`)\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t} else {\n\t\t\t\tconst hasDFB = u_data.some((d: any) => d?.default_billing_address);\n\t\t\t\tif (hasDFB) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\tt(`accounting.${translationKey}.msg.default_billing_address_msg`)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t};\n\n\t\ttry {\n\t\t\t// The pane on screen holds the live values, the other one its stored draft.\n\t\t\tlet englishValues = language === 'en' ? values?.addresses : drafts.en;\n\t\t\tconst arabicValues = language === 'ar' ? values?.addresses : drafts.ar;\n\n\t\t\t// The default flags only exist on the English pane, so they are checked there whichever\n\t\t\t// pane happens to be open at save time.\n\t\t\tif (englishValues?.default_shipping_address) {\n\t\t\t\tvalidateDefaults(items, itemIndex, 'shipping');\n\t\t\t}\n\n\t\t\tif (englishValues?.default_billing_address) {\n\t\t\t\tvalidateDefaults(items, itemIndex, 'billing');\n\t\t\t}\n\n\t\t\tif (englishValues && items && items?.length === 0) {\n\t\t\t\tenglishValues = {\n\t\t\t\t\t...englishValues,\n\t\t\t\t\tdefault_shipping_address: true,\n\t\t\t\t\tdefault_billing_address: true\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// One address is one row in the list. Its Arabic translation rides along nested under\n\t\t\t// `arabic` so the pair stays together, in the list and in the payload.\n\t\t\tif (!hasValues(englishValues) && !hasValues(arabicValues)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// An address that only ever had Arabic data stays Arabic-only, otherwise it would be\n\t\t\t// rewritten as an empty English row.\n\t\t\tif (!hasValues(englishValues)) {\n\t\t\t\tonSave(\n\t\t\t\t\t{\n\t\t\t\t\t\t...values,\n\t\t\t\t\t\taddresses: {\n\t\t\t\t\t\t\t...arabicValues,\n\t\t\t\t\t\t\taddress_type: arabicValues?.address_type || itemData?.address_type,\n\t\t\t\t\t\t\tcountry: country_data,\n\t\t\t\t\t\t\tstate: state_data,\n\t\t\t\t\t\t\tlanguage: 'ar'\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\titemIndex\n\t\t\t\t);\n\t\t\t\thandleModalClose();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst row: any = {\n\t\t\t\t...englishValues,\n\t\t\t\tcountry: country_data,\n\t\t\t\tstate: state_data,\n\t\t\t\tlanguage: 'en'\n\t\t\t};\n\n\t\t\t// Always set the key, never leave it out: the list merges the saved row over the old one, so\n\t\t\t// an absent `arabic` would silently keep a translation the user just cleared.\n\t\t\t// The dropdowns are hidden on the Arabic pane, so the backend fills those columns from the\n\t\t\t// English row - address_type in particular is NOT NULL on party_address_arabic.\n\t\t\trow.arabic = hasValues(arabicValues)\n\t\t\t\t? { ...arabicValues, id: itemData?.arabic?.id }\n\t\t\t\t: null;\n\n\t\t\tonSave({ ...values, addresses: row }, itemIndex);\n\t\t\thandleModalClose();\n\t\t} catch (error) {\n\t\t\tenqueueSnackbar(error?.message || 'Something went wrong', {\n\t\t\t\tvariant: 'error'\n\t\t\t});\n\t\t}\n\t};\n\n\tconst handleModalClose = () => {\n\t\treset({ addresses: null });\n\t\tsetDrafts({});\n\t\tsetLanguage('en');\n\t\tsetEntryDetails({\n\t\t\tstate_data: null,\n\t\t\tcountry_data: null\n\t\t});\n\t\tsetIsOpen();\n\t};\n\n\tconst handleSetCountryCodeField = (country: CountryData) => {\n\t\tconst values = getValues();\n\t\tconst oldVal = values?.addresses?.country_code;\n\t\tconst newVal = `+${country.dialCode}`;\n\t\tif (oldVal !== newVal) {\n\t\t\tsetValue(`addresses.country_code` as never, newVal as never);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tconst summaryVal = watchedValues.reduce((ele, ele2, index) => {\n\t\t\tif (!ele2) return ele;\n\t\t\tif (!ele) return ele2;\n\n\t\t\tif (index === 11) {\n\t\t\t\tele2 = state_data\n\t\t\t}\n\t\t\tif (index === 12) {\n\t\t\t\tele2 = country_data\n\t\t\t}\n\n\t\t\tele = ele?.name || ele;\n\t\t\tele2 = ele2?.name || ele2;\n\t\t\tif ([2, 3, 4, 5, 6, 7].includes(index)) {\n\t\t\t\treturn ele + ' ' + ele2;\n\t\t\t}\n\t\t\treturn ele + ', \\n' + ele2;\n\t\t}, '');\n\n\t\tsetValue('addresses.summary' as never, summaryVal as never);\n\t}, [setValue, watchedValues, country_data, state_data]);\n\n\tuseEffect(() => {\n\t\tif (itemData) {\n\t\t\t// Keep the row on the language it was saved with, otherwise an existing Arabic address\n\t\t\t// would be re-tagged as English and moved to the English table on save.\n\t\t\tsetLanguage(itemData?.language === 'ar' ? 'ar' : 'en');\n\t\t\t// The saved translation seeds the Arabic pane, so switching to it shows the Arabic data\n\t\t\t// rather than an empty form. It is held as a draft, never merged into the English pane.\n\t\t\tconst { arabic, ...englishData } = itemData;\n\t\t\tsetDrafts(\n\t\t\t\tarabic\n\t\t\t\t\t? {\n\t\t\t\t\t\tar: {\n\t\t\t\t\t\t\t...BLANK_ADDRESS,\n\t\t\t\t\t\t\t...arabic,\n\t\t\t\t\t\t\tcountry: arabic?.country?.id ?? arabic?.country,\n\t\t\t\t\t\t\tstate: arabic?.state?.id ?? arabic?.state\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t: {}\n\t\t\t);\n\t\t\treset({\n\t\t\t\taddresses: {\n\t\t\t\t\t...BLANK_ADDRESS,\n\t\t\t\t\t...englishData,\n\t\t\t\t\tcountry: englishData?.country?.id,\n\t\t\t\t\tstate: englishData?.state?.id\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}, [itemData, reset]);\n\n\tuseEffect(() => {\n\t\tif (isOpen && !itemData) {\n\t\t\tsetLanguage('en');\n\t\t\tsetDrafts({});\n\t\t\treset({\n\t\t\t\taddresses: {\n\t\t\t\t\t...BLANK_ADDRESS,\n\t\t\t\t\taddress_type: 'Office',\n\t\t\t\t\tcontact_name: prefillData?.contact_name || '',\n\t\t\t\t\tmobile: prefillData?.mobile || ''\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}, [isOpen, itemData, prefillData?.contact_name, prefillData?.mobile, reset]);\n\n\tconst setDetailsData = (data: any[], key: string) => {\n\t\tsetEntryDetails((prev) => ({ ...prev, [key]: data }));\n\t};\n\n\tuseEffect(() => {\n\t\tif (isDirtyC) {\n\t\t\tsetValue('addresses.state', null);\n\t\t}\n\t}, [selectedCountry, isDirtyC]);\n\n\tconst stateFilter = useMemo(() => {\n\t\treturn { '&country_id.eq': selectedCountry || 0 }\n\t}, [selectedCountry]);\n\n\treturn (\n\t\t<Modal\n\t\t\topen={isOpen}\n\t\t\tonClose={setIsOpen}\n\t\t\tmaxWidth='md'\n\t\t\tfullWidth\n\t\t\t{...modalProps}>\n\t\t\t<form onSubmit={handleSubmit(onSubmit)}>\n\t\t\t\t{submitLoading && <FormLoader />}\n\t\t\t\t<DialogTitle className='addressModal--Title'>\n\t\t\t\t\t<Typography type='s3' color='inherit' weight='medium'>\n\t\t\t\t\t\t{t(`accounting.${translationKey}.addressModal.title`)}\n\t\t\t\t\t</Typography>\n\t\t\t\t\t<IconButton onClick={handleModalClose}>\n\t\t\t\t\t\t<Close fontSize='small' />\n\t\t\t\t\t</IconButton>\n\t\t\t\t</DialogTitle>\n\t\t\t\t<DialogContent>\n\t\t\t\t\t<RadioGroup\n\t\t\t\t\t\tclassName='addressModal--LanguageSwitch'\n\t\t\t\t\t\trow\n\t\t\t\t\t\tvalue={language}\n\t\t\t\t\t\tonChange={(e) => handleLanguageChange(e.target.value as 'en' | 'ar')}>\n\t\t\t\t\t\t<FormControlLabel value='en' control={<Radio />} label='English' />\n\t\t\t\t\t\t<FormControlLabel value='ar' control={<Radio />} label='Arabic' />\n\t\t\t\t\t</RadioGroup>\n\t\t\t\t\t<Grid container rowGap={1.5} columnSpacing={3} pt={3}>\n\t\t\t\t\t\t{language === 'en' && (\n\t\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t\t<DynamicSearchSelect\n\t\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.address_type_label`)}\n\t\t\t\t\t\t\t\t\toptions={addressTypeOptions}\n\t\t\t\t\t\t\t\t\tname='address_type'\n\t\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.address_type_placeholder`)}\n\t\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.contact_name_label`)}\n\t\t\t\t\t\t\t\tname='contact_name'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.contact_name_placeholder`)}\n\t\t\t\t\t\t\t\trequired={language === 'en'}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicPhone\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.mobile_label`)}\n\t\t\t\t\t\t\t\tname='mobile'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tsetCountryCodeField={(country: CountryData) =>\n\t\t\t\t\t\t\t\t\thandleSetCountryCodeField(country)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.address1_label`)}\n\t\t\t\t\t\t\t\tname='street_1'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.address1_placeholder`)}\n\t\t\t\t\t\t\t\trequired={language === 'en'}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.address2_label`)}\n\t\t\t\t\t\t\t\tname='street_2'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.address2_placeholder`)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.address3_label`)}\n\t\t\t\t\t\t\t\tname='street_3'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.address3_placeholder`)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t{isKSA && <Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.streetName_label`)}\n\t\t\t\t\t\t\t\tname='street_name'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.streetName_placeholder`)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>}\n\t\t\t\t\t\t{isKSA && <>\n\t\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.buildingNo_label`)}\n\t\t\t\t\t\t\t\t\tname='building_no'\n\t\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\t\tplaceholder='Enter Building No.'\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.additionalNo_label`)}\n\t\t\t\t\t\t\t\t\tname='additional_no'\n\t\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\t\tplaceholder='Enter Additional No.'\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t</>}\n\t\t\t\t\t\t{isKSA && <Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.nationalAddress_label`)}\n\t\t\t\t\t\t\t\tname='national_address'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.nationalAddress_placeholder`)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>}\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.zip_code_label`)}\n\t\t\t\t\t\t\t\tname='zip_code'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.zip_code_placeholder`)}\n\t\t\t\t\t\t\t\trequired={!optionalFields.includes('zip_code') && language === 'en'}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t{language === 'en' && (\n\t\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t\t<DynamicSearchSelect\n\t\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.country_label`)}\n\t\t\t\t\t\t\t\t\tname='country'\n\t\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.country_placeholder`)}\n\t\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\t\tapiType='countries'\n\t\t\t\t\t\t\t\t\tgetSelectedData={(row: any[]) =>\n\t\t\t\t\t\t\t\t\t\tsetDetailsData(row, 'country_data')\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{language === 'en' && (\n\t\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t\t<DynamicSearchSelect\n\t\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.state_label`)}\n\t\t\t\t\t\t\t\t\tname='state'\n\t\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.state_placeholder`)}\n\t\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\t\tapiType='states'\n\t\t\t\t\t\t\t\t\tcustomeFilter={stateFilter}\n\t\t\t\t\t\t\t\t\tgetSelectedData={(row: any[]) =>\n\t\t\t\t\t\t\t\t\t\tsetDetailsData(row, 'state_data')\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.city_label`)}\n\t\t\t\t\t\t\t\tname='city'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.city_placeholder`)}\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t{isKSA && <Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.districtName_label`)}\n\t\t\t\t\t\t\t\tname='district_name'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.districtName_placeholder`)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>}\n\t\t\t\t\t\t<Grid item sm={6}>\n\t\t\t\t\t\t\t<DynamicInput\n\t\t\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\tlabel={t(`accounting.${translationKey}.addressModal.summary_label`)}\n\t\t\t\t\t\t\t\tname='summary'\n\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\tplaceholder={t(`accounting.${translationKey}.addressModal.summary_placeholder`)}\n\t\t\t\t\t\t\t\tis_multiline\n\t\t\t\t\t\t\t\tdisabled\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t{language === 'en' && (\n\t\t\t\t\t\t\t<Grid item sm={12}>\n\t\t\t\t\t\t\t\t<DynamicCheckBox\n\t\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\t\tname='default_shipping_address'\n\t\t\t\t\t\t\t\t\ttitle={t(`accounting.${translationKey}.addressModal.default_shipping_address_label`)}\n\t\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\t\ttitlePosition='end'\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{language === 'en' && (\n\t\t\t\t\t\t\t<Grid item sm={12}>\n\t\t\t\t\t\t\t\t<DynamicCheckBox\n\t\t\t\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\t\t\t\tname='default_billing_address'\n\t\t\t\t\t\t\t\t\ttitle={t(`accounting.${translationKey}.addressModal.default_billing_address_label`)}\n\t\t\t\t\t\t\t\t\tfieldArrayName='addresses'\n\t\t\t\t\t\t\t\t\ttitlePosition='end'\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Grid>\n\t\t\t\t</DialogContent>\n\t\t\t\t<DialogActions\n\t\t\t\t\tclassName={`addressModal--ActionContainer ${!itemData && 'addressModal--ActionContainer--FlexEnd'}`}>\n\t\t\t\t\t{itemData && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName='addressModal--ActionContainer--WhiteBtn'\n\t\t\t\t\t\t\tstartIcon={<Copy />}\n\t\t\t\t\t\t\tdisabled={submitLoading}\n\t\t\t\t\t\t\tonClick={() => handleDuplicate()}>\n\t\t\t\t\t\t\t{t(\"common.duplicate\")}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)}\n\t\t\t\t\t<Box display='flex' gap={1.5}>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName='addressModal--ActionContainer--WhiteBtn'\n\t\t\t\t\t\t\tonClick={handleModalClose}\n\t\t\t\t\t\t\tdisabled={submitLoading}>\n\t\t\t\t\t\t\t{t(\"common.cancel\")}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ttype='submit'\n\t\t\t\t\t\t\tendIcon={\n\t\t\t\t\t\t\t\tsubmitLoading ? (\n\t\t\t\t\t\t\t\t\t<CircularProgress size={20} color='inherit' />\n\t\t\t\t\t\t\t\t) : undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdisabled={submitLoading}>\n\t\t\t\t\t\t\t{t(\"common.save\")}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</Box>\n\t\t\t\t</DialogActions>\n\t\t\t</form>\n\t\t</Modal>\n\t);\n};\n\nexport default AddressModal;\n"],"names":["_a","_b"],"mappings":"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"}
@@ -7,8 +7,8 @@ const simpleBarChart = require("./simple-bar-chart-qXljv2cQ.js");
7
7
  const donutChart = require("./donut-chart-D_uzKul7.js");
8
8
  const groupedBarChart = require("./grouped-bar-chart-B8a0FS2_.js");
9
9
  const marked = require("marked");
10
- const api$1 = require("./api-EomXz8pk.js");
11
- const api = require("./api-DBhNDBh9.js");
10
+ const api$1 = require("./api-DuBJvpDR.js");
11
+ const api = require("./api-CMF1LApB.js");
12
12
  const aiDisclaimer = require("./ai-disclaimer-DAecPGGI.js");
13
13
  const utils_apiConfig = require("../utils/api-config/index.js");
14
14
  const QUICK_QUESTIONS = [
@@ -347,4 +347,4 @@ function AISummaryPanel(props = {}) {
347
347
  exports.AIChatPanel = AIChatPanel;
348
348
  exports.AISummaryExpanded = AISummaryExpanded;
349
349
  exports.AISummaryPanel = AISummaryPanel;
350
- //# sourceMappingURL=ai-summary-BxcrnNNM.js.map
350
+ //# sourceMappingURL=ai-summary-CzLIVEbV.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai-summary-BxcrnNNM.js","sources":["../../src/components/ai-summary/ai-chat-panel.tsx","../../src/components/ai-summary/ai-summary-expanded.tsx","../../src/components/ai-summary/ai-summary.tsx"],"sourcesContent":["import { useState, useEffect, useRef, useCallback } from \"react\";\nimport { marked } from \"marked\";\nimport { getToken } from \"../../utils\";\nimport { streamV1AiFeatureChat } from \"../../api-client/api.ai-feature/api\";\nimport { Sparkles, X, SendHorizontal, TrendingUp, AlertTriangle, Clock } from \"lucide-react\";\n\nconst QUICK_QUESTIONS = [\n { label: \"What are the key trends?\", icon: TrendingUp },\n { label: \"Any risks to watch?\", icon: AlertTriangle },\n { label: \"Top performers?\", icon: Clock },\n];\n\ninterface AIChatPanelProps {\n sessionId: string;\n onClose: () => void;\n}\n\nexport function AIChatPanel({ sessionId, onClose }: AIChatPanelProps) {\n const [chatMessages, setChatMessages] = useState<{ id: number; role: \"user\" | \"ai\"; text: string }[]>([]);\n const [isTyping, setIsTyping] = useState(false);\n const [inputValue, setInputValue] = useState(\"\");\n const chatContainerRef = useRef<HTMLDivElement>(null);\n const chatEndRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n const userScrolledUp = useRef(false);\n\n useEffect(() => {\n setTimeout(() => inputRef.current?.focus(), 100);\n }, []);\n\n useEffect(() => {\n const container = chatContainerRef.current;\n if (!container) return;\n const onScroll = () => {\n const atBottom = container.scrollHeight - container.scrollTop - container.clientHeight < 40;\n userScrolledUp.current = !atBottom;\n };\n container.addEventListener(\"scroll\", onScroll);\n return () => container.removeEventListener(\"scroll\", onScroll);\n }, []);\n\n useEffect(() => {\n if (!userScrolledUp.current && chatContainerRef.current) {\n chatContainerRef.current.scrollTop = chatContainerRef.current.scrollHeight;\n }\n }, [chatMessages, isTyping]);\n\n const sendMessage = useCallback(async (text: string) => {\n if (!text.trim() || isTyping) return;\n setChatMessages(prev => [...prev, { id: Date.now(), role: \"user\" as const, text }]);\n setInputValue(\"\");\n setIsTyping(true);\n\n let aiMsgId: number | null = null;\n\n const appendToken = (token: string) => {\n if (aiMsgId === null) {\n aiMsgId = Date.now() + 1;\n setIsTyping(false);\n setChatMessages(prev => [...prev, { id: aiMsgId!, role: \"ai\", text: token }]);\n } else {\n setChatMessages(prev => prev.map(m =>\n m.id === aiMsgId ? { ...m, text: m.text + token } : m\n ));\n }\n };\n\n try {\n await streamV1AiFeatureChat(\n { ...getToken(), session_id: sessionId, query: text },\n appendToken,\n () => { setIsTyping(false); },\n () => {\n setIsTyping(false);\n if (aiMsgId === null) {\n setChatMessages(prev => [...prev, { id: Date.now() + 1, role: \"ai\", text: \"Sorry, I couldn't process your question. Please try again.\" }]);\n }\n },\n () => {\n setIsTyping(false);\n setChatMessages(prev => [...prev, { id: Date.now() + 1, role: \"ai\", text: \"That question seems outside the scope of this report. Please ask something related to the report data.\" }]);\n }\n );\n } catch (err) {\n console.error(\"Chat error:\", err);\n setIsTyping(false);\n setChatMessages(prev => [...prev, { id: Date.now() + 1, role: \"ai\", text: \"Sorry, I couldn't process your question. Please try again.\" }]);\n }\n }, [isTyping, sessionId]);\n\n function handleKeyDown(e: React.KeyboardEvent) {\n if (e.key === \"Enter\" && !e.shiftKey) {\n e.preventDefault();\n sendMessage(inputValue);\n }\n }\n\n return (\n <div className=\"ai-summary-panel__chat\">\n <div className=\"ai-summary-panel__chat-header\">\n <div className=\"ai-summary-panel__chat-header-left\">\n <Sparkles className=\"ai-summary-panel__chat-header-icon\" />\n <span className=\"ai-summary-panel__chat-header-title\">Ask about this report</span>\n </div>\n <button onClick={onClose} className=\"ai-summary-panel__chat-close-btn\">\n <X />\n </button>\n </div>\n\n {chatMessages.length === 0 && (\n <div className=\"ai-summary-panel__chat-suggestions\">\n <p className=\"ai-summary-panel__chat-suggestions-label\">Suggested questions</p>\n <div className=\"ai-summary-panel__chat-chips\">\n {QUICK_QUESTIONS.map((q) => (\n <button key={q.label} onClick={() => sendMessage(q.label)} className=\"ai-summary-panel__chat-chip\">\n <q.icon className=\"ai-summary-panel__chat-chip-icon\" />\n <span>{q.label}</span>\n </button>\n ))}\n </div>\n </div>\n )}\n\n {chatMessages.length > 0 && (\n <div ref={chatContainerRef} className=\"ai-summary-panel__chat-messages\">\n {chatMessages.map((msg) => (\n <div key={msg.id} className={`ai-summary-panel__chat-message ai-summary-panel__chat-message--${msg.role}`}>\n {msg.role === \"ai\" && (\n <div className=\"ai-summary-panel__chat-ai-row\">\n <div className=\"ai-summary-panel__chat-ai-avatar\"><Sparkles /></div>\n <div\n className=\"ai-summary-panel__chat-ai-text\"\n dangerouslySetInnerHTML={{ __html: marked.parse(msg.text || \"\") as string }}\n />\n </div>\n )}\n {msg.role === \"user\" && (\n <div className=\"ai-summary-panel__chat-user-bubble\"><p>{msg.text}</p></div>\n )}\n </div>\n ))}\n\n {isTyping && (\n <div className=\"ai-summary-panel__chat-typing\">\n <div className=\"ai-summary-panel__chat-ai-avatar\"><Sparkles /></div>\n <div className=\"ai-summary-panel__chat-typing-dots\">\n <span /><span /><span />\n </div>\n </div>\n )}\n\n {chatMessages.length > 0 && !isTyping && chatMessages[chatMessages.length - 1].role === \"ai\" && (\n <div className=\"ai-summary-panel__chat-followups\">\n {QUICK_QUESTIONS\n .filter(q => !chatMessages.some(m => m.role === \"user\" && m.text.toLowerCase() === q.label.toLowerCase()))\n .slice(0, 3)\n .map(q => (\n <button key={q.label} onClick={() => sendMessage(q.label)} className=\"ai-summary-panel__chat-chip ai-summary-panel__chat-chip--small\">\n <q.icon className=\"ai-summary-panel__chat-chip-icon\" />\n <span>{q.label}</span>\n </button>\n ))}\n </div>\n )}\n <div ref={chatEndRef} />\n </div>\n )}\n\n <div className=\"ai-summary-panel__chat-input-bar\">\n <input\n ref={inputRef}\n type=\"text\"\n value={inputValue}\n onChange={(e) => setInputValue(e.target.value)}\n onKeyDown={handleKeyDown}\n placeholder=\"Ask a question about this report...\"\n className=\"ai-summary-panel__chat-input\"\n disabled={isTyping}\n />\n <button\n onClick={() => sendMessage(inputValue)}\n disabled={!inputValue.trim() || isTyping}\n className={`ai-summary-panel__chat-send-btn${inputValue.trim() && !isTyping ? \" ai-summary-panel__chat-send-btn--active\" : \"\"}`}\n >\n <SendHorizontal />\n </button>\n </div>\n </div>\n );\n}\n","import { useState, useEffect, useMemo } from \"react\";\nimport {\n Sparkles,\n ChevronUp,\n Copy,\n Check,\n AlertTriangle,\n TrendingUp,\n Clock,\n ThumbsUp,\n ThumbsDown,\n} from \"lucide-react\";\n\nimport { HorizontalBarChart } from \"./chart/horizontal-bar-chart\";\nimport { SimpleBarChart } from \"./chart/simple-bar-chart\";\nimport { DonutChart } from \"./chart/donut-chart\";\nimport { GroupedBarChart } from \"./chart/grouped-bar-chart\";\nimport { AIChatPanel } from \"./ai-chat-panel\";\nimport AIDisclaimer from \"../ai-disclaimer/ai-disclaimer\";\n\n\ninterface AISummaryExpandedProps {\n aiSummaryData?: any;\n isLoading?: boolean;\n isError?: boolean;\n onCollapse: () => void;\n}\n\nfunction ApiChartsRenderer({ charts, currency = \"AED\" }: { charts: any[]; currency?: string }) {\n const chartMap: Record<string, any> = {\n bar: SimpleBarChart,\n horizontal_bar: HorizontalBarChart,\n donut: DonutChart,\n grouped_bar: GroupedBarChart,\n };\n\n return (\n <div className=\"ai-summary-panel__visuals\">\n {charts.map((chart: any, i: number) => {\n const Component = chartMap[chart.chart_type];\n return Component ? (\n <Component key={i} chart={chart} currency={currency} />\n ) : null;\n })}\n </div>\n );\n}\n\nfunction useTypingEffect(text: string, speed = 18) {\n const [displayed, setDisplayed] = useState(\"\");\n const [done, setDone] = useState(false);\n\n useEffect(() => {\n let i = 0;\n const interval = setInterval(() => {\n i++;\n setDisplayed(text.slice(0, i));\n\n if (i >= text.length) {\n clearInterval(interval);\n setDone(true);\n }\n }, speed);\n\n return () => clearInterval(interval);\n }, [text, speed]);\n\n return { displayed, done };\n}\n\nexport function AISummaryExpanded({ aiSummaryData, isLoading, isError, onCollapse }: AISummaryExpandedProps) {\n const dynamicData = useMemo(() => {\n if (!aiSummaryData) return { summaryText: \"\", insights: [], charts: [], currency: \"AED\" };\n\n const insights = (aiSummaryData.flags || []).map((flag: any) => ({\n icon:\n flag.severity === \"critical\"\n ? AlertTriangle\n : flag.severity === \"warning\"\n ? Clock\n : TrendingUp,\n text: flag.message,\n title:\n flag.severity === \"critical\"\n ? \"Critical\"\n : flag.severity === \"warning\"\n ? \"Warning\"\n : \"Info\",\n color:\n flag.severity === \"critical\"\n ? \"#E85D3A\"\n : flag.severity === \"warning\"\n ? \"#D97706\"\n : \"#059669\",\n }));\n\n return {\n summaryText: aiSummaryData.summary || \"\",\n insights,\n charts: aiSummaryData.charts || [],\n currency: aiSummaryData?.charts?.[0]?.currency || \"AED\",\n };\n }, [aiSummaryData]);\n\n const [copied, setCopied] = useState(false);\n const [insightsVisible, setInsightsVisible] = useState(false);\n const [feedbackGiven, setFeedbackGiven] = useState<\"up\" | \"down\" | null>(null);\n const [chatOpen, setChatOpen] = useState(false);\n\n const { displayed, done } = useTypingEffect(dynamicData.summaryText, 12);\n\n useEffect(() => {\n if (done) {\n setTimeout(() => setInsightsVisible(true), 200);\n }\n }, [done]);\n\n function handleCopy() {\n navigator.clipboard.writeText(dynamicData.summaryText);\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n }\n\n return (\n <div className=\"ai-summary-panel__expanded\">\n <div className=\"ai-summary-panel__header\">\n <div className=\"ai-summary-panel__header-left\">\n <div className=\"ai-summary-panel__header-icon\">\n <Sparkles />\n </div>\n <span className=\"ai-summary-panel__header-title\">AI Summary</span>\n <span className=\"ai-summary-panel__header-badge\">Beta</span>\n </div>\n\n <div className=\"ai-summary-panel__header-actions\">\n <button\n onClick={handleCopy}\n className={`ai-summary-panel__header-btn ${copied ? \"copied\" : \"\"}`}\n >\n {copied ? <Check /> : <Copy />}\n </button>\n\n <button onClick={onCollapse} className=\"ai-summary-panel__header-btn\">\n <ChevronUp />\n </button>\n </div>\n </div>\n\n <div className=\"ai-summary-panel__body\">\n {isLoading && (\n <div className=\"ai-summary-panel__loading\">\n <div className=\"ai-summary-panel__loading-spinner-large\" />\n <span className=\"ai-summary-panel__loading-text\">Generating AI insights...</span>\n </div>\n )}\n\n {!isLoading && isError && (\n <p className=\"ai-summary-panel__error\">\n Unable to generate AI summary. Please try again later.\n </p>\n )}\n\n {!isLoading && !isError && (\n <p className=\"ai-summary-panel__summary\">\n {displayed}\n {!done && <span className=\"ai-summary-panel__summary-cursor\" />}\n </p>\n )}\n\n {dynamicData.charts.length > 0 && insightsVisible && (\n <ApiChartsRenderer charts={dynamicData.charts} currency={dynamicData.currency} />\n )}\n\n {insightsVisible && (\n <div className=\"ai-summary-panel__insights\">\n {dynamicData.insights.map((insight: any, i: number) => (\n <div\n key={i}\n className={`ai-summary-panel__insight-chip ai-summary-panel__insight-chip--${insight.title?.toLowerCase() || \"info\"}`}\n >\n <insight.icon style={{ color: insight.color }} />\n <span className=\"ai-summary-panel__insight-chip-title\">{insight.title}</span>\n <span className=\"ai-summary-panel__insight-chip-text\">— {insight.text}</span>\n <svg className=\"ai-summary-panel__insight-chip-arrow\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M9 18l6-6-6-6\" />\n </svg>\n </div>\n ))}\n </div>\n )}\n\n {insightsVisible && (\n <div className=\"ai-summary-panel__feedback\">\n <div className=\"ai-summary-panel__feedback-left\">\n <div className=\"ai-summary-panel__feedback-thumbs\">\n <span className=\"ai-summary-panel__feedback-label\">Helpful?</span>\n <button\n onClick={() => setFeedbackGiven(feedbackGiven === \"up\" ? null : \"up\")}\n className={`ai-summary-panel__feedback-btn${feedbackGiven === \"up\" ? \" ai-summary-panel__feedback-btn--up\" : \"\"}`}\n >\n <ThumbsUp />\n </button>\n <button\n onClick={() => setFeedbackGiven(feedbackGiven === \"down\" ? null : \"down\")}\n className={`ai-summary-panel__feedback-btn${feedbackGiven === \"down\" ? \" ai-summary-panel__feedback-btn--down\" : \"\"}`}\n >\n <ThumbsDown />\n </button>\n </div>\n <span className=\"ai-summary-panel__feedback-disclaimer\"><AIDisclaimer sx={{ mt: 0 }} /></span>\n </div>\n {!chatOpen && (\n <button onClick={() => setChatOpen(true)} className=\"ai-summary-panel__ask-ai-btn\">\n <Sparkles />\n <span>Ask AI</span>\n </button>\n )}\n </div>\n )}\n </div>\n\n {chatOpen && (\n <AIChatPanel\n sessionId={aiSummaryData?.session_id}\n onClose={() => setChatOpen(false)}\n />\n )}\n </div>\n );\n}\n","import { useState } from \"react\";\nimport { Sparkles, ChevronDown } from \"lucide-react\";\n\nimport { AISummaryExpanded } from \"./ai-summary-expanded\";\nimport { getApiConfigSafe } from \"../../utils/api-config\";\n\nimport \"./ai-summary.scss\";\n\nexport interface AISummaryPanelProps {\n aiSummaryData?: any;\n isLoading?: boolean;\n isError?: boolean;\n onExpand?: () => void;\n}\n\nexport function AISummaryPanel(props: AISummaryPanelProps = {}) {\n const isAiEnabled = getApiConfigSafe()?.aiFeatureEnabled === 'true';\n if (!isAiEnabled) return null;\n\n const { aiSummaryData, isLoading, isError, onExpand } = props;\n const [expanded, setExpanded] = useState(false);\n\n return (\n <div className=\"ai-summary-panel\">\n {!expanded && (\n <button\n onClick={() => {\n setExpanded(true);\n onExpand?.();\n }}\n className=\"ai-summary-panel__collapsed-toggle\"\n disabled={isLoading}\n >\n <div className=\"ai-summary-panel__collapsed-toggle-icon\">\n {isLoading ? (\n <div className=\"ai-summary-panel__loading-spinner\" />\n ) : (\n <Sparkles />\n )}\n </div>\n\n <span className=\"ai-summary-panel__collapsed-toggle-title\">AI Summary</span>\n\n <span className=\"ai-summary-panel__collapsed-toggle-subtitle\">\n {isLoading ? \"Generating insights...\" : \"Click to expand insights\"}\n </span>\n\n {!isLoading && (\n <ChevronDown className=\"ai-summary-panel__collapsed-toggle-chevron\" />\n )}\n </button>\n )}\n\n {expanded && (\n <AISummaryExpanded\n aiSummaryData={aiSummaryData}\n isLoading={isLoading}\n isError={isError}\n onCollapse={() => setExpanded(false)}\n />\n )}\n </div>\n );\n}\n\nexport default AISummaryPanel;\n"],"names":["TrendingUp","AlertTriangle","Clock","useState","useRef","useEffect","useCallback","streamV1AiFeatureChat","getToken","jsxs","jsx","Sparkles","X","marked","SendHorizontal","SimpleBarChart","HorizontalBarChart","DonutChart","GroupedBarChart","useMemo","Check","Copy","ChevronUp","ThumbsUp","ThumbsDown","AIDisclaimer","getApiConfigSafe","ChevronDown"],"mappings":"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"}
1
+ {"version":3,"file":"ai-summary-CzLIVEbV.js","sources":["../../src/components/ai-summary/ai-chat-panel.tsx","../../src/components/ai-summary/ai-summary-expanded.tsx","../../src/components/ai-summary/ai-summary.tsx"],"sourcesContent":["import { useState, useEffect, useRef, useCallback } from \"react\";\nimport { marked } from \"marked\";\nimport { getToken } from \"../../utils\";\nimport { streamV1AiFeatureChat } from \"../../api-client/api.ai-feature/api\";\nimport { Sparkles, X, SendHorizontal, TrendingUp, AlertTriangle, Clock } from \"lucide-react\";\n\nconst QUICK_QUESTIONS = [\n { label: \"What are the key trends?\", icon: TrendingUp },\n { label: \"Any risks to watch?\", icon: AlertTriangle },\n { label: \"Top performers?\", icon: Clock },\n];\n\ninterface AIChatPanelProps {\n sessionId: string;\n onClose: () => void;\n}\n\nexport function AIChatPanel({ sessionId, onClose }: AIChatPanelProps) {\n const [chatMessages, setChatMessages] = useState<{ id: number; role: \"user\" | \"ai\"; text: string }[]>([]);\n const [isTyping, setIsTyping] = useState(false);\n const [inputValue, setInputValue] = useState(\"\");\n const chatContainerRef = useRef<HTMLDivElement>(null);\n const chatEndRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n const userScrolledUp = useRef(false);\n\n useEffect(() => {\n setTimeout(() => inputRef.current?.focus(), 100);\n }, []);\n\n useEffect(() => {\n const container = chatContainerRef.current;\n if (!container) return;\n const onScroll = () => {\n const atBottom = container.scrollHeight - container.scrollTop - container.clientHeight < 40;\n userScrolledUp.current = !atBottom;\n };\n container.addEventListener(\"scroll\", onScroll);\n return () => container.removeEventListener(\"scroll\", onScroll);\n }, []);\n\n useEffect(() => {\n if (!userScrolledUp.current && chatContainerRef.current) {\n chatContainerRef.current.scrollTop = chatContainerRef.current.scrollHeight;\n }\n }, [chatMessages, isTyping]);\n\n const sendMessage = useCallback(async (text: string) => {\n if (!text.trim() || isTyping) return;\n setChatMessages(prev => [...prev, { id: Date.now(), role: \"user\" as const, text }]);\n setInputValue(\"\");\n setIsTyping(true);\n\n let aiMsgId: number | null = null;\n\n const appendToken = (token: string) => {\n if (aiMsgId === null) {\n aiMsgId = Date.now() + 1;\n setIsTyping(false);\n setChatMessages(prev => [...prev, { id: aiMsgId!, role: \"ai\", text: token }]);\n } else {\n setChatMessages(prev => prev.map(m =>\n m.id === aiMsgId ? { ...m, text: m.text + token } : m\n ));\n }\n };\n\n try {\n await streamV1AiFeatureChat(\n { ...getToken(), session_id: sessionId, query: text },\n appendToken,\n () => { setIsTyping(false); },\n () => {\n setIsTyping(false);\n if (aiMsgId === null) {\n setChatMessages(prev => [...prev, { id: Date.now() + 1, role: \"ai\", text: \"Sorry, I couldn't process your question. Please try again.\" }]);\n }\n },\n () => {\n setIsTyping(false);\n setChatMessages(prev => [...prev, { id: Date.now() + 1, role: \"ai\", text: \"That question seems outside the scope of this report. Please ask something related to the report data.\" }]);\n }\n );\n } catch (err) {\n console.error(\"Chat error:\", err);\n setIsTyping(false);\n setChatMessages(prev => [...prev, { id: Date.now() + 1, role: \"ai\", text: \"Sorry, I couldn't process your question. Please try again.\" }]);\n }\n }, [isTyping, sessionId]);\n\n function handleKeyDown(e: React.KeyboardEvent) {\n if (e.key === \"Enter\" && !e.shiftKey) {\n e.preventDefault();\n sendMessage(inputValue);\n }\n }\n\n return (\n <div className=\"ai-summary-panel__chat\">\n <div className=\"ai-summary-panel__chat-header\">\n <div className=\"ai-summary-panel__chat-header-left\">\n <Sparkles className=\"ai-summary-panel__chat-header-icon\" />\n <span className=\"ai-summary-panel__chat-header-title\">Ask about this report</span>\n </div>\n <button onClick={onClose} className=\"ai-summary-panel__chat-close-btn\">\n <X />\n </button>\n </div>\n\n {chatMessages.length === 0 && (\n <div className=\"ai-summary-panel__chat-suggestions\">\n <p className=\"ai-summary-panel__chat-suggestions-label\">Suggested questions</p>\n <div className=\"ai-summary-panel__chat-chips\">\n {QUICK_QUESTIONS.map((q) => (\n <button key={q.label} onClick={() => sendMessage(q.label)} className=\"ai-summary-panel__chat-chip\">\n <q.icon className=\"ai-summary-panel__chat-chip-icon\" />\n <span>{q.label}</span>\n </button>\n ))}\n </div>\n </div>\n )}\n\n {chatMessages.length > 0 && (\n <div ref={chatContainerRef} className=\"ai-summary-panel__chat-messages\">\n {chatMessages.map((msg) => (\n <div key={msg.id} className={`ai-summary-panel__chat-message ai-summary-panel__chat-message--${msg.role}`}>\n {msg.role === \"ai\" && (\n <div className=\"ai-summary-panel__chat-ai-row\">\n <div className=\"ai-summary-panel__chat-ai-avatar\"><Sparkles /></div>\n <div\n className=\"ai-summary-panel__chat-ai-text\"\n dangerouslySetInnerHTML={{ __html: marked.parse(msg.text || \"\") as string }}\n />\n </div>\n )}\n {msg.role === \"user\" && (\n <div className=\"ai-summary-panel__chat-user-bubble\"><p>{msg.text}</p></div>\n )}\n </div>\n ))}\n\n {isTyping && (\n <div className=\"ai-summary-panel__chat-typing\">\n <div className=\"ai-summary-panel__chat-ai-avatar\"><Sparkles /></div>\n <div className=\"ai-summary-panel__chat-typing-dots\">\n <span /><span /><span />\n </div>\n </div>\n )}\n\n {chatMessages.length > 0 && !isTyping && chatMessages[chatMessages.length - 1].role === \"ai\" && (\n <div className=\"ai-summary-panel__chat-followups\">\n {QUICK_QUESTIONS\n .filter(q => !chatMessages.some(m => m.role === \"user\" && m.text.toLowerCase() === q.label.toLowerCase()))\n .slice(0, 3)\n .map(q => (\n <button key={q.label} onClick={() => sendMessage(q.label)} className=\"ai-summary-panel__chat-chip ai-summary-panel__chat-chip--small\">\n <q.icon className=\"ai-summary-panel__chat-chip-icon\" />\n <span>{q.label}</span>\n </button>\n ))}\n </div>\n )}\n <div ref={chatEndRef} />\n </div>\n )}\n\n <div className=\"ai-summary-panel__chat-input-bar\">\n <input\n ref={inputRef}\n type=\"text\"\n value={inputValue}\n onChange={(e) => setInputValue(e.target.value)}\n onKeyDown={handleKeyDown}\n placeholder=\"Ask a question about this report...\"\n className=\"ai-summary-panel__chat-input\"\n disabled={isTyping}\n />\n <button\n onClick={() => sendMessage(inputValue)}\n disabled={!inputValue.trim() || isTyping}\n className={`ai-summary-panel__chat-send-btn${inputValue.trim() && !isTyping ? \" ai-summary-panel__chat-send-btn--active\" : \"\"}`}\n >\n <SendHorizontal />\n </button>\n </div>\n </div>\n );\n}\n","import { useState, useEffect, useMemo } from \"react\";\nimport {\n Sparkles,\n ChevronUp,\n Copy,\n Check,\n AlertTriangle,\n TrendingUp,\n Clock,\n ThumbsUp,\n ThumbsDown,\n} from \"lucide-react\";\n\nimport { HorizontalBarChart } from \"./chart/horizontal-bar-chart\";\nimport { SimpleBarChart } from \"./chart/simple-bar-chart\";\nimport { DonutChart } from \"./chart/donut-chart\";\nimport { GroupedBarChart } from \"./chart/grouped-bar-chart\";\nimport { AIChatPanel } from \"./ai-chat-panel\";\nimport AIDisclaimer from \"../ai-disclaimer/ai-disclaimer\";\n\n\ninterface AISummaryExpandedProps {\n aiSummaryData?: any;\n isLoading?: boolean;\n isError?: boolean;\n onCollapse: () => void;\n}\n\nfunction ApiChartsRenderer({ charts, currency = \"AED\" }: { charts: any[]; currency?: string }) {\n const chartMap: Record<string, any> = {\n bar: SimpleBarChart,\n horizontal_bar: HorizontalBarChart,\n donut: DonutChart,\n grouped_bar: GroupedBarChart,\n };\n\n return (\n <div className=\"ai-summary-panel__visuals\">\n {charts.map((chart: any, i: number) => {\n const Component = chartMap[chart.chart_type];\n return Component ? (\n <Component key={i} chart={chart} currency={currency} />\n ) : null;\n })}\n </div>\n );\n}\n\nfunction useTypingEffect(text: string, speed = 18) {\n const [displayed, setDisplayed] = useState(\"\");\n const [done, setDone] = useState(false);\n\n useEffect(() => {\n let i = 0;\n const interval = setInterval(() => {\n i++;\n setDisplayed(text.slice(0, i));\n\n if (i >= text.length) {\n clearInterval(interval);\n setDone(true);\n }\n }, speed);\n\n return () => clearInterval(interval);\n }, [text, speed]);\n\n return { displayed, done };\n}\n\nexport function AISummaryExpanded({ aiSummaryData, isLoading, isError, onCollapse }: AISummaryExpandedProps) {\n const dynamicData = useMemo(() => {\n if (!aiSummaryData) return { summaryText: \"\", insights: [], charts: [], currency: \"AED\" };\n\n const insights = (aiSummaryData.flags || []).map((flag: any) => ({\n icon:\n flag.severity === \"critical\"\n ? AlertTriangle\n : flag.severity === \"warning\"\n ? Clock\n : TrendingUp,\n text: flag.message,\n title:\n flag.severity === \"critical\"\n ? \"Critical\"\n : flag.severity === \"warning\"\n ? \"Warning\"\n : \"Info\",\n color:\n flag.severity === \"critical\"\n ? \"#E85D3A\"\n : flag.severity === \"warning\"\n ? \"#D97706\"\n : \"#059669\",\n }));\n\n return {\n summaryText: aiSummaryData.summary || \"\",\n insights,\n charts: aiSummaryData.charts || [],\n currency: aiSummaryData?.charts?.[0]?.currency || \"AED\",\n };\n }, [aiSummaryData]);\n\n const [copied, setCopied] = useState(false);\n const [insightsVisible, setInsightsVisible] = useState(false);\n const [feedbackGiven, setFeedbackGiven] = useState<\"up\" | \"down\" | null>(null);\n const [chatOpen, setChatOpen] = useState(false);\n\n const { displayed, done } = useTypingEffect(dynamicData.summaryText, 12);\n\n useEffect(() => {\n if (done) {\n setTimeout(() => setInsightsVisible(true), 200);\n }\n }, [done]);\n\n function handleCopy() {\n navigator.clipboard.writeText(dynamicData.summaryText);\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n }\n\n return (\n <div className=\"ai-summary-panel__expanded\">\n <div className=\"ai-summary-panel__header\">\n <div className=\"ai-summary-panel__header-left\">\n <div className=\"ai-summary-panel__header-icon\">\n <Sparkles />\n </div>\n <span className=\"ai-summary-panel__header-title\">AI Summary</span>\n <span className=\"ai-summary-panel__header-badge\">Beta</span>\n </div>\n\n <div className=\"ai-summary-panel__header-actions\">\n <button\n onClick={handleCopy}\n className={`ai-summary-panel__header-btn ${copied ? \"copied\" : \"\"}`}\n >\n {copied ? <Check /> : <Copy />}\n </button>\n\n <button onClick={onCollapse} className=\"ai-summary-panel__header-btn\">\n <ChevronUp />\n </button>\n </div>\n </div>\n\n <div className=\"ai-summary-panel__body\">\n {isLoading && (\n <div className=\"ai-summary-panel__loading\">\n <div className=\"ai-summary-panel__loading-spinner-large\" />\n <span className=\"ai-summary-panel__loading-text\">Generating AI insights...</span>\n </div>\n )}\n\n {!isLoading && isError && (\n <p className=\"ai-summary-panel__error\">\n Unable to generate AI summary. Please try again later.\n </p>\n )}\n\n {!isLoading && !isError && (\n <p className=\"ai-summary-panel__summary\">\n {displayed}\n {!done && <span className=\"ai-summary-panel__summary-cursor\" />}\n </p>\n )}\n\n {dynamicData.charts.length > 0 && insightsVisible && (\n <ApiChartsRenderer charts={dynamicData.charts} currency={dynamicData.currency} />\n )}\n\n {insightsVisible && (\n <div className=\"ai-summary-panel__insights\">\n {dynamicData.insights.map((insight: any, i: number) => (\n <div\n key={i}\n className={`ai-summary-panel__insight-chip ai-summary-panel__insight-chip--${insight.title?.toLowerCase() || \"info\"}`}\n >\n <insight.icon style={{ color: insight.color }} />\n <span className=\"ai-summary-panel__insight-chip-title\">{insight.title}</span>\n <span className=\"ai-summary-panel__insight-chip-text\">— {insight.text}</span>\n <svg className=\"ai-summary-panel__insight-chip-arrow\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M9 18l6-6-6-6\" />\n </svg>\n </div>\n ))}\n </div>\n )}\n\n {insightsVisible && (\n <div className=\"ai-summary-panel__feedback\">\n <div className=\"ai-summary-panel__feedback-left\">\n <div className=\"ai-summary-panel__feedback-thumbs\">\n <span className=\"ai-summary-panel__feedback-label\">Helpful?</span>\n <button\n onClick={() => setFeedbackGiven(feedbackGiven === \"up\" ? null : \"up\")}\n className={`ai-summary-panel__feedback-btn${feedbackGiven === \"up\" ? \" ai-summary-panel__feedback-btn--up\" : \"\"}`}\n >\n <ThumbsUp />\n </button>\n <button\n onClick={() => setFeedbackGiven(feedbackGiven === \"down\" ? null : \"down\")}\n className={`ai-summary-panel__feedback-btn${feedbackGiven === \"down\" ? \" ai-summary-panel__feedback-btn--down\" : \"\"}`}\n >\n <ThumbsDown />\n </button>\n </div>\n <span className=\"ai-summary-panel__feedback-disclaimer\"><AIDisclaimer sx={{ mt: 0 }} /></span>\n </div>\n {!chatOpen && (\n <button onClick={() => setChatOpen(true)} className=\"ai-summary-panel__ask-ai-btn\">\n <Sparkles />\n <span>Ask AI</span>\n </button>\n )}\n </div>\n )}\n </div>\n\n {chatOpen && (\n <AIChatPanel\n sessionId={aiSummaryData?.session_id}\n onClose={() => setChatOpen(false)}\n />\n )}\n </div>\n );\n}\n","import { useState } from \"react\";\nimport { Sparkles, ChevronDown } from \"lucide-react\";\n\nimport { AISummaryExpanded } from \"./ai-summary-expanded\";\nimport { getApiConfigSafe } from \"../../utils/api-config\";\n\nimport \"./ai-summary.scss\";\n\nexport interface AISummaryPanelProps {\n aiSummaryData?: any;\n isLoading?: boolean;\n isError?: boolean;\n onExpand?: () => void;\n}\n\nexport function AISummaryPanel(props: AISummaryPanelProps = {}) {\n const isAiEnabled = getApiConfigSafe()?.aiFeatureEnabled === 'true';\n if (!isAiEnabled) return null;\n\n const { aiSummaryData, isLoading, isError, onExpand } = props;\n const [expanded, setExpanded] = useState(false);\n\n return (\n <div className=\"ai-summary-panel\">\n {!expanded && (\n <button\n onClick={() => {\n setExpanded(true);\n onExpand?.();\n }}\n className=\"ai-summary-panel__collapsed-toggle\"\n disabled={isLoading}\n >\n <div className=\"ai-summary-panel__collapsed-toggle-icon\">\n {isLoading ? (\n <div className=\"ai-summary-panel__loading-spinner\" />\n ) : (\n <Sparkles />\n )}\n </div>\n\n <span className=\"ai-summary-panel__collapsed-toggle-title\">AI Summary</span>\n\n <span className=\"ai-summary-panel__collapsed-toggle-subtitle\">\n {isLoading ? \"Generating insights...\" : \"Click to expand insights\"}\n </span>\n\n {!isLoading && (\n <ChevronDown className=\"ai-summary-panel__collapsed-toggle-chevron\" />\n )}\n </button>\n )}\n\n {expanded && (\n <AISummaryExpanded\n aiSummaryData={aiSummaryData}\n isLoading={isLoading}\n isError={isError}\n onCollapse={() => setExpanded(false)}\n />\n )}\n </div>\n );\n}\n\nexport default AISummaryPanel;\n"],"names":["TrendingUp","AlertTriangle","Clock","useState","useRef","useEffect","useCallback","streamV1AiFeatureChat","getToken","jsxs","jsx","Sparkles","X","marked","SendHorizontal","SimpleBarChart","HorizontalBarChart","DonutChart","GroupedBarChart","useMemo","Check","Copy","ChevronUp","ThumbsUp","ThumbsDown","AIDisclaimer","getApiConfigSafe","ChevronDown"],"mappings":"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"}
@@ -6,8 +6,8 @@ import { S as SimpleBarChart } from "./simple-bar-chart-BgP04TyL.esm.js";
6
6
  import { D as DonutChart } from "./donut-chart-BUGQ6PrG.esm.js";
7
7
  import { G as GroupedBarChart } from "./grouped-bar-chart-CbiYWlOs.esm.js";
8
8
  import { marked } from "marked";
9
- import { ab as getToken } from "./api-BIVCMSwW.esm.js";
10
- import { r as streamV1AiFeatureChat } from "./api-Bl6wVi9D.esm.js";
9
+ import { ab as getToken } from "./api-COFUx2RW.esm.js";
10
+ import { r as streamV1AiFeatureChat } from "./api-D4FV2rsK.esm.js";
11
11
  import { A as AIDisclaimer } from "./ai-disclaimer-kOtXrSve.esm.js";
12
12
  import { getApiConfigSafe } from "../utils/api-config/index.esm.js";
13
13
  const QUICK_QUESTIONS = [
@@ -348,4 +348,4 @@ export {
348
348
  AIChatPanel as a,
349
349
  AISummaryExpanded as b
350
350
  };
351
- //# sourceMappingURL=ai-summary-SKK5KN2s.esm.js.map
351
+ //# sourceMappingURL=ai-summary-DGQyEhsD.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai-summary-SKK5KN2s.esm.js","sources":["../../src/components/ai-summary/ai-chat-panel.tsx","../../src/components/ai-summary/ai-summary-expanded.tsx","../../src/components/ai-summary/ai-summary.tsx"],"sourcesContent":["import { useState, useEffect, useRef, useCallback } from \"react\";\nimport { marked } from \"marked\";\nimport { getToken } from \"../../utils\";\nimport { streamV1AiFeatureChat } from \"../../api-client/api.ai-feature/api\";\nimport { Sparkles, X, SendHorizontal, TrendingUp, AlertTriangle, Clock } from \"lucide-react\";\n\nconst QUICK_QUESTIONS = [\n { label: \"What are the key trends?\", icon: TrendingUp },\n { label: \"Any risks to watch?\", icon: AlertTriangle },\n { label: \"Top performers?\", icon: Clock },\n];\n\ninterface AIChatPanelProps {\n sessionId: string;\n onClose: () => void;\n}\n\nexport function AIChatPanel({ sessionId, onClose }: AIChatPanelProps) {\n const [chatMessages, setChatMessages] = useState<{ id: number; role: \"user\" | \"ai\"; text: string }[]>([]);\n const [isTyping, setIsTyping] = useState(false);\n const [inputValue, setInputValue] = useState(\"\");\n const chatContainerRef = useRef<HTMLDivElement>(null);\n const chatEndRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n const userScrolledUp = useRef(false);\n\n useEffect(() => {\n setTimeout(() => inputRef.current?.focus(), 100);\n }, []);\n\n useEffect(() => {\n const container = chatContainerRef.current;\n if (!container) return;\n const onScroll = () => {\n const atBottom = container.scrollHeight - container.scrollTop - container.clientHeight < 40;\n userScrolledUp.current = !atBottom;\n };\n container.addEventListener(\"scroll\", onScroll);\n return () => container.removeEventListener(\"scroll\", onScroll);\n }, []);\n\n useEffect(() => {\n if (!userScrolledUp.current && chatContainerRef.current) {\n chatContainerRef.current.scrollTop = chatContainerRef.current.scrollHeight;\n }\n }, [chatMessages, isTyping]);\n\n const sendMessage = useCallback(async (text: string) => {\n if (!text.trim() || isTyping) return;\n setChatMessages(prev => [...prev, { id: Date.now(), role: \"user\" as const, text }]);\n setInputValue(\"\");\n setIsTyping(true);\n\n let aiMsgId: number | null = null;\n\n const appendToken = (token: string) => {\n if (aiMsgId === null) {\n aiMsgId = Date.now() + 1;\n setIsTyping(false);\n setChatMessages(prev => [...prev, { id: aiMsgId!, role: \"ai\", text: token }]);\n } else {\n setChatMessages(prev => prev.map(m =>\n m.id === aiMsgId ? { ...m, text: m.text + token } : m\n ));\n }\n };\n\n try {\n await streamV1AiFeatureChat(\n { ...getToken(), session_id: sessionId, query: text },\n appendToken,\n () => { setIsTyping(false); },\n () => {\n setIsTyping(false);\n if (aiMsgId === null) {\n setChatMessages(prev => [...prev, { id: Date.now() + 1, role: \"ai\", text: \"Sorry, I couldn't process your question. Please try again.\" }]);\n }\n },\n () => {\n setIsTyping(false);\n setChatMessages(prev => [...prev, { id: Date.now() + 1, role: \"ai\", text: \"That question seems outside the scope of this report. Please ask something related to the report data.\" }]);\n }\n );\n } catch (err) {\n console.error(\"Chat error:\", err);\n setIsTyping(false);\n setChatMessages(prev => [...prev, { id: Date.now() + 1, role: \"ai\", text: \"Sorry, I couldn't process your question. Please try again.\" }]);\n }\n }, [isTyping, sessionId]);\n\n function handleKeyDown(e: React.KeyboardEvent) {\n if (e.key === \"Enter\" && !e.shiftKey) {\n e.preventDefault();\n sendMessage(inputValue);\n }\n }\n\n return (\n <div className=\"ai-summary-panel__chat\">\n <div className=\"ai-summary-panel__chat-header\">\n <div className=\"ai-summary-panel__chat-header-left\">\n <Sparkles className=\"ai-summary-panel__chat-header-icon\" />\n <span className=\"ai-summary-panel__chat-header-title\">Ask about this report</span>\n </div>\n <button onClick={onClose} className=\"ai-summary-panel__chat-close-btn\">\n <X />\n </button>\n </div>\n\n {chatMessages.length === 0 && (\n <div className=\"ai-summary-panel__chat-suggestions\">\n <p className=\"ai-summary-panel__chat-suggestions-label\">Suggested questions</p>\n <div className=\"ai-summary-panel__chat-chips\">\n {QUICK_QUESTIONS.map((q) => (\n <button key={q.label} onClick={() => sendMessage(q.label)} className=\"ai-summary-panel__chat-chip\">\n <q.icon className=\"ai-summary-panel__chat-chip-icon\" />\n <span>{q.label}</span>\n </button>\n ))}\n </div>\n </div>\n )}\n\n {chatMessages.length > 0 && (\n <div ref={chatContainerRef} className=\"ai-summary-panel__chat-messages\">\n {chatMessages.map((msg) => (\n <div key={msg.id} className={`ai-summary-panel__chat-message ai-summary-panel__chat-message--${msg.role}`}>\n {msg.role === \"ai\" && (\n <div className=\"ai-summary-panel__chat-ai-row\">\n <div className=\"ai-summary-panel__chat-ai-avatar\"><Sparkles /></div>\n <div\n className=\"ai-summary-panel__chat-ai-text\"\n dangerouslySetInnerHTML={{ __html: marked.parse(msg.text || \"\") as string }}\n />\n </div>\n )}\n {msg.role === \"user\" && (\n <div className=\"ai-summary-panel__chat-user-bubble\"><p>{msg.text}</p></div>\n )}\n </div>\n ))}\n\n {isTyping && (\n <div className=\"ai-summary-panel__chat-typing\">\n <div className=\"ai-summary-panel__chat-ai-avatar\"><Sparkles /></div>\n <div className=\"ai-summary-panel__chat-typing-dots\">\n <span /><span /><span />\n </div>\n </div>\n )}\n\n {chatMessages.length > 0 && !isTyping && chatMessages[chatMessages.length - 1].role === \"ai\" && (\n <div className=\"ai-summary-panel__chat-followups\">\n {QUICK_QUESTIONS\n .filter(q => !chatMessages.some(m => m.role === \"user\" && m.text.toLowerCase() === q.label.toLowerCase()))\n .slice(0, 3)\n .map(q => (\n <button key={q.label} onClick={() => sendMessage(q.label)} className=\"ai-summary-panel__chat-chip ai-summary-panel__chat-chip--small\">\n <q.icon className=\"ai-summary-panel__chat-chip-icon\" />\n <span>{q.label}</span>\n </button>\n ))}\n </div>\n )}\n <div ref={chatEndRef} />\n </div>\n )}\n\n <div className=\"ai-summary-panel__chat-input-bar\">\n <input\n ref={inputRef}\n type=\"text\"\n value={inputValue}\n onChange={(e) => setInputValue(e.target.value)}\n onKeyDown={handleKeyDown}\n placeholder=\"Ask a question about this report...\"\n className=\"ai-summary-panel__chat-input\"\n disabled={isTyping}\n />\n <button\n onClick={() => sendMessage(inputValue)}\n disabled={!inputValue.trim() || isTyping}\n className={`ai-summary-panel__chat-send-btn${inputValue.trim() && !isTyping ? \" ai-summary-panel__chat-send-btn--active\" : \"\"}`}\n >\n <SendHorizontal />\n </button>\n </div>\n </div>\n );\n}\n","import { useState, useEffect, useMemo } from \"react\";\nimport {\n Sparkles,\n ChevronUp,\n Copy,\n Check,\n AlertTriangle,\n TrendingUp,\n Clock,\n ThumbsUp,\n ThumbsDown,\n} from \"lucide-react\";\n\nimport { HorizontalBarChart } from \"./chart/horizontal-bar-chart\";\nimport { SimpleBarChart } from \"./chart/simple-bar-chart\";\nimport { DonutChart } from \"./chart/donut-chart\";\nimport { GroupedBarChart } from \"./chart/grouped-bar-chart\";\nimport { AIChatPanel } from \"./ai-chat-panel\";\nimport AIDisclaimer from \"../ai-disclaimer/ai-disclaimer\";\n\n\ninterface AISummaryExpandedProps {\n aiSummaryData?: any;\n isLoading?: boolean;\n isError?: boolean;\n onCollapse: () => void;\n}\n\nfunction ApiChartsRenderer({ charts, currency = \"AED\" }: { charts: any[]; currency?: string }) {\n const chartMap: Record<string, any> = {\n bar: SimpleBarChart,\n horizontal_bar: HorizontalBarChart,\n donut: DonutChart,\n grouped_bar: GroupedBarChart,\n };\n\n return (\n <div className=\"ai-summary-panel__visuals\">\n {charts.map((chart: any, i: number) => {\n const Component = chartMap[chart.chart_type];\n return Component ? (\n <Component key={i} chart={chart} currency={currency} />\n ) : null;\n })}\n </div>\n );\n}\n\nfunction useTypingEffect(text: string, speed = 18) {\n const [displayed, setDisplayed] = useState(\"\");\n const [done, setDone] = useState(false);\n\n useEffect(() => {\n let i = 0;\n const interval = setInterval(() => {\n i++;\n setDisplayed(text.slice(0, i));\n\n if (i >= text.length) {\n clearInterval(interval);\n setDone(true);\n }\n }, speed);\n\n return () => clearInterval(interval);\n }, [text, speed]);\n\n return { displayed, done };\n}\n\nexport function AISummaryExpanded({ aiSummaryData, isLoading, isError, onCollapse }: AISummaryExpandedProps) {\n const dynamicData = useMemo(() => {\n if (!aiSummaryData) return { summaryText: \"\", insights: [], charts: [], currency: \"AED\" };\n\n const insights = (aiSummaryData.flags || []).map((flag: any) => ({\n icon:\n flag.severity === \"critical\"\n ? AlertTriangle\n : flag.severity === \"warning\"\n ? Clock\n : TrendingUp,\n text: flag.message,\n title:\n flag.severity === \"critical\"\n ? \"Critical\"\n : flag.severity === \"warning\"\n ? \"Warning\"\n : \"Info\",\n color:\n flag.severity === \"critical\"\n ? \"#E85D3A\"\n : flag.severity === \"warning\"\n ? \"#D97706\"\n : \"#059669\",\n }));\n\n return {\n summaryText: aiSummaryData.summary || \"\",\n insights,\n charts: aiSummaryData.charts || [],\n currency: aiSummaryData?.charts?.[0]?.currency || \"AED\",\n };\n }, [aiSummaryData]);\n\n const [copied, setCopied] = useState(false);\n const [insightsVisible, setInsightsVisible] = useState(false);\n const [feedbackGiven, setFeedbackGiven] = useState<\"up\" | \"down\" | null>(null);\n const [chatOpen, setChatOpen] = useState(false);\n\n const { displayed, done } = useTypingEffect(dynamicData.summaryText, 12);\n\n useEffect(() => {\n if (done) {\n setTimeout(() => setInsightsVisible(true), 200);\n }\n }, [done]);\n\n function handleCopy() {\n navigator.clipboard.writeText(dynamicData.summaryText);\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n }\n\n return (\n <div className=\"ai-summary-panel__expanded\">\n <div className=\"ai-summary-panel__header\">\n <div className=\"ai-summary-panel__header-left\">\n <div className=\"ai-summary-panel__header-icon\">\n <Sparkles />\n </div>\n <span className=\"ai-summary-panel__header-title\">AI Summary</span>\n <span className=\"ai-summary-panel__header-badge\">Beta</span>\n </div>\n\n <div className=\"ai-summary-panel__header-actions\">\n <button\n onClick={handleCopy}\n className={`ai-summary-panel__header-btn ${copied ? \"copied\" : \"\"}`}\n >\n {copied ? <Check /> : <Copy />}\n </button>\n\n <button onClick={onCollapse} className=\"ai-summary-panel__header-btn\">\n <ChevronUp />\n </button>\n </div>\n </div>\n\n <div className=\"ai-summary-panel__body\">\n {isLoading && (\n <div className=\"ai-summary-panel__loading\">\n <div className=\"ai-summary-panel__loading-spinner-large\" />\n <span className=\"ai-summary-panel__loading-text\">Generating AI insights...</span>\n </div>\n )}\n\n {!isLoading && isError && (\n <p className=\"ai-summary-panel__error\">\n Unable to generate AI summary. Please try again later.\n </p>\n )}\n\n {!isLoading && !isError && (\n <p className=\"ai-summary-panel__summary\">\n {displayed}\n {!done && <span className=\"ai-summary-panel__summary-cursor\" />}\n </p>\n )}\n\n {dynamicData.charts.length > 0 && insightsVisible && (\n <ApiChartsRenderer charts={dynamicData.charts} currency={dynamicData.currency} />\n )}\n\n {insightsVisible && (\n <div className=\"ai-summary-panel__insights\">\n {dynamicData.insights.map((insight: any, i: number) => (\n <div\n key={i}\n className={`ai-summary-panel__insight-chip ai-summary-panel__insight-chip--${insight.title?.toLowerCase() || \"info\"}`}\n >\n <insight.icon style={{ color: insight.color }} />\n <span className=\"ai-summary-panel__insight-chip-title\">{insight.title}</span>\n <span className=\"ai-summary-panel__insight-chip-text\">— {insight.text}</span>\n <svg className=\"ai-summary-panel__insight-chip-arrow\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M9 18l6-6-6-6\" />\n </svg>\n </div>\n ))}\n </div>\n )}\n\n {insightsVisible && (\n <div className=\"ai-summary-panel__feedback\">\n <div className=\"ai-summary-panel__feedback-left\">\n <div className=\"ai-summary-panel__feedback-thumbs\">\n <span className=\"ai-summary-panel__feedback-label\">Helpful?</span>\n <button\n onClick={() => setFeedbackGiven(feedbackGiven === \"up\" ? null : \"up\")}\n className={`ai-summary-panel__feedback-btn${feedbackGiven === \"up\" ? \" ai-summary-panel__feedback-btn--up\" : \"\"}`}\n >\n <ThumbsUp />\n </button>\n <button\n onClick={() => setFeedbackGiven(feedbackGiven === \"down\" ? null : \"down\")}\n className={`ai-summary-panel__feedback-btn${feedbackGiven === \"down\" ? \" ai-summary-panel__feedback-btn--down\" : \"\"}`}\n >\n <ThumbsDown />\n </button>\n </div>\n <span className=\"ai-summary-panel__feedback-disclaimer\"><AIDisclaimer sx={{ mt: 0 }} /></span>\n </div>\n {!chatOpen && (\n <button onClick={() => setChatOpen(true)} className=\"ai-summary-panel__ask-ai-btn\">\n <Sparkles />\n <span>Ask AI</span>\n </button>\n )}\n </div>\n )}\n </div>\n\n {chatOpen && (\n <AIChatPanel\n sessionId={aiSummaryData?.session_id}\n onClose={() => setChatOpen(false)}\n />\n )}\n </div>\n );\n}\n","import { useState } from \"react\";\nimport { Sparkles, ChevronDown } from \"lucide-react\";\n\nimport { AISummaryExpanded } from \"./ai-summary-expanded\";\nimport { getApiConfigSafe } from \"../../utils/api-config\";\n\nimport \"./ai-summary.scss\";\n\nexport interface AISummaryPanelProps {\n aiSummaryData?: any;\n isLoading?: boolean;\n isError?: boolean;\n onExpand?: () => void;\n}\n\nexport function AISummaryPanel(props: AISummaryPanelProps = {}) {\n const isAiEnabled = getApiConfigSafe()?.aiFeatureEnabled === 'true';\n if (!isAiEnabled) return null;\n\n const { aiSummaryData, isLoading, isError, onExpand } = props;\n const [expanded, setExpanded] = useState(false);\n\n return (\n <div className=\"ai-summary-panel\">\n {!expanded && (\n <button\n onClick={() => {\n setExpanded(true);\n onExpand?.();\n }}\n className=\"ai-summary-panel__collapsed-toggle\"\n disabled={isLoading}\n >\n <div className=\"ai-summary-panel__collapsed-toggle-icon\">\n {isLoading ? (\n <div className=\"ai-summary-panel__loading-spinner\" />\n ) : (\n <Sparkles />\n )}\n </div>\n\n <span className=\"ai-summary-panel__collapsed-toggle-title\">AI Summary</span>\n\n <span className=\"ai-summary-panel__collapsed-toggle-subtitle\">\n {isLoading ? \"Generating insights...\" : \"Click to expand insights\"}\n </span>\n\n {!isLoading && (\n <ChevronDown className=\"ai-summary-panel__collapsed-toggle-chevron\" />\n )}\n </button>\n )}\n\n {expanded && (\n <AISummaryExpanded\n aiSummaryData={aiSummaryData}\n isLoading={isLoading}\n isError={isError}\n onCollapse={() => setExpanded(false)}\n />\n )}\n </div>\n );\n}\n\nexport default AISummaryPanel;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-summary-DGQyEhsD.esm.js","sources":["../../src/components/ai-summary/ai-chat-panel.tsx","../../src/components/ai-summary/ai-summary-expanded.tsx","../../src/components/ai-summary/ai-summary.tsx"],"sourcesContent":["import { useState, useEffect, useRef, useCallback } from \"react\";\nimport { marked } from \"marked\";\nimport { getToken } from \"../../utils\";\nimport { streamV1AiFeatureChat } from \"../../api-client/api.ai-feature/api\";\nimport { Sparkles, X, SendHorizontal, TrendingUp, AlertTriangle, Clock } from \"lucide-react\";\n\nconst QUICK_QUESTIONS = [\n { label: \"What are the key trends?\", icon: TrendingUp },\n { label: \"Any risks to watch?\", icon: AlertTriangle },\n { label: \"Top performers?\", icon: Clock },\n];\n\ninterface AIChatPanelProps {\n sessionId: string;\n onClose: () => void;\n}\n\nexport function AIChatPanel({ sessionId, onClose }: AIChatPanelProps) {\n const [chatMessages, setChatMessages] = useState<{ id: number; role: \"user\" | \"ai\"; text: string }[]>([]);\n const [isTyping, setIsTyping] = useState(false);\n const [inputValue, setInputValue] = useState(\"\");\n const chatContainerRef = useRef<HTMLDivElement>(null);\n const chatEndRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n const userScrolledUp = useRef(false);\n\n useEffect(() => {\n setTimeout(() => inputRef.current?.focus(), 100);\n }, []);\n\n useEffect(() => {\n const container = chatContainerRef.current;\n if (!container) return;\n const onScroll = () => {\n const atBottom = container.scrollHeight - container.scrollTop - container.clientHeight < 40;\n userScrolledUp.current = !atBottom;\n };\n container.addEventListener(\"scroll\", onScroll);\n return () => container.removeEventListener(\"scroll\", onScroll);\n }, []);\n\n useEffect(() => {\n if (!userScrolledUp.current && chatContainerRef.current) {\n chatContainerRef.current.scrollTop = chatContainerRef.current.scrollHeight;\n }\n }, [chatMessages, isTyping]);\n\n const sendMessage = useCallback(async (text: string) => {\n if (!text.trim() || isTyping) return;\n setChatMessages(prev => [...prev, { id: Date.now(), role: \"user\" as const, text }]);\n setInputValue(\"\");\n setIsTyping(true);\n\n let aiMsgId: number | null = null;\n\n const appendToken = (token: string) => {\n if (aiMsgId === null) {\n aiMsgId = Date.now() + 1;\n setIsTyping(false);\n setChatMessages(prev => [...prev, { id: aiMsgId!, role: \"ai\", text: token }]);\n } else {\n setChatMessages(prev => prev.map(m =>\n m.id === aiMsgId ? { ...m, text: m.text + token } : m\n ));\n }\n };\n\n try {\n await streamV1AiFeatureChat(\n { ...getToken(), session_id: sessionId, query: text },\n appendToken,\n () => { setIsTyping(false); },\n () => {\n setIsTyping(false);\n if (aiMsgId === null) {\n setChatMessages(prev => [...prev, { id: Date.now() + 1, role: \"ai\", text: \"Sorry, I couldn't process your question. Please try again.\" }]);\n }\n },\n () => {\n setIsTyping(false);\n setChatMessages(prev => [...prev, { id: Date.now() + 1, role: \"ai\", text: \"That question seems outside the scope of this report. Please ask something related to the report data.\" }]);\n }\n );\n } catch (err) {\n console.error(\"Chat error:\", err);\n setIsTyping(false);\n setChatMessages(prev => [...prev, { id: Date.now() + 1, role: \"ai\", text: \"Sorry, I couldn't process your question. Please try again.\" }]);\n }\n }, [isTyping, sessionId]);\n\n function handleKeyDown(e: React.KeyboardEvent) {\n if (e.key === \"Enter\" && !e.shiftKey) {\n e.preventDefault();\n sendMessage(inputValue);\n }\n }\n\n return (\n <div className=\"ai-summary-panel__chat\">\n <div className=\"ai-summary-panel__chat-header\">\n <div className=\"ai-summary-panel__chat-header-left\">\n <Sparkles className=\"ai-summary-panel__chat-header-icon\" />\n <span className=\"ai-summary-panel__chat-header-title\">Ask about this report</span>\n </div>\n <button onClick={onClose} className=\"ai-summary-panel__chat-close-btn\">\n <X />\n </button>\n </div>\n\n {chatMessages.length === 0 && (\n <div className=\"ai-summary-panel__chat-suggestions\">\n <p className=\"ai-summary-panel__chat-suggestions-label\">Suggested questions</p>\n <div className=\"ai-summary-panel__chat-chips\">\n {QUICK_QUESTIONS.map((q) => (\n <button key={q.label} onClick={() => sendMessage(q.label)} className=\"ai-summary-panel__chat-chip\">\n <q.icon className=\"ai-summary-panel__chat-chip-icon\" />\n <span>{q.label}</span>\n </button>\n ))}\n </div>\n </div>\n )}\n\n {chatMessages.length > 0 && (\n <div ref={chatContainerRef} className=\"ai-summary-panel__chat-messages\">\n {chatMessages.map((msg) => (\n <div key={msg.id} className={`ai-summary-panel__chat-message ai-summary-panel__chat-message--${msg.role}`}>\n {msg.role === \"ai\" && (\n <div className=\"ai-summary-panel__chat-ai-row\">\n <div className=\"ai-summary-panel__chat-ai-avatar\"><Sparkles /></div>\n <div\n className=\"ai-summary-panel__chat-ai-text\"\n dangerouslySetInnerHTML={{ __html: marked.parse(msg.text || \"\") as string }}\n />\n </div>\n )}\n {msg.role === \"user\" && (\n <div className=\"ai-summary-panel__chat-user-bubble\"><p>{msg.text}</p></div>\n )}\n </div>\n ))}\n\n {isTyping && (\n <div className=\"ai-summary-panel__chat-typing\">\n <div className=\"ai-summary-panel__chat-ai-avatar\"><Sparkles /></div>\n <div className=\"ai-summary-panel__chat-typing-dots\">\n <span /><span /><span />\n </div>\n </div>\n )}\n\n {chatMessages.length > 0 && !isTyping && chatMessages[chatMessages.length - 1].role === \"ai\" && (\n <div className=\"ai-summary-panel__chat-followups\">\n {QUICK_QUESTIONS\n .filter(q => !chatMessages.some(m => m.role === \"user\" && m.text.toLowerCase() === q.label.toLowerCase()))\n .slice(0, 3)\n .map(q => (\n <button key={q.label} onClick={() => sendMessage(q.label)} className=\"ai-summary-panel__chat-chip ai-summary-panel__chat-chip--small\">\n <q.icon className=\"ai-summary-panel__chat-chip-icon\" />\n <span>{q.label}</span>\n </button>\n ))}\n </div>\n )}\n <div ref={chatEndRef} />\n </div>\n )}\n\n <div className=\"ai-summary-panel__chat-input-bar\">\n <input\n ref={inputRef}\n type=\"text\"\n value={inputValue}\n onChange={(e) => setInputValue(e.target.value)}\n onKeyDown={handleKeyDown}\n placeholder=\"Ask a question about this report...\"\n className=\"ai-summary-panel__chat-input\"\n disabled={isTyping}\n />\n <button\n onClick={() => sendMessage(inputValue)}\n disabled={!inputValue.trim() || isTyping}\n className={`ai-summary-panel__chat-send-btn${inputValue.trim() && !isTyping ? \" ai-summary-panel__chat-send-btn--active\" : \"\"}`}\n >\n <SendHorizontal />\n </button>\n </div>\n </div>\n );\n}\n","import { useState, useEffect, useMemo } from \"react\";\nimport {\n Sparkles,\n ChevronUp,\n Copy,\n Check,\n AlertTriangle,\n TrendingUp,\n Clock,\n ThumbsUp,\n ThumbsDown,\n} from \"lucide-react\";\n\nimport { HorizontalBarChart } from \"./chart/horizontal-bar-chart\";\nimport { SimpleBarChart } from \"./chart/simple-bar-chart\";\nimport { DonutChart } from \"./chart/donut-chart\";\nimport { GroupedBarChart } from \"./chart/grouped-bar-chart\";\nimport { AIChatPanel } from \"./ai-chat-panel\";\nimport AIDisclaimer from \"../ai-disclaimer/ai-disclaimer\";\n\n\ninterface AISummaryExpandedProps {\n aiSummaryData?: any;\n isLoading?: boolean;\n isError?: boolean;\n onCollapse: () => void;\n}\n\nfunction ApiChartsRenderer({ charts, currency = \"AED\" }: { charts: any[]; currency?: string }) {\n const chartMap: Record<string, any> = {\n bar: SimpleBarChart,\n horizontal_bar: HorizontalBarChart,\n donut: DonutChart,\n grouped_bar: GroupedBarChart,\n };\n\n return (\n <div className=\"ai-summary-panel__visuals\">\n {charts.map((chart: any, i: number) => {\n const Component = chartMap[chart.chart_type];\n return Component ? (\n <Component key={i} chart={chart} currency={currency} />\n ) : null;\n })}\n </div>\n );\n}\n\nfunction useTypingEffect(text: string, speed = 18) {\n const [displayed, setDisplayed] = useState(\"\");\n const [done, setDone] = useState(false);\n\n useEffect(() => {\n let i = 0;\n const interval = setInterval(() => {\n i++;\n setDisplayed(text.slice(0, i));\n\n if (i >= text.length) {\n clearInterval(interval);\n setDone(true);\n }\n }, speed);\n\n return () => clearInterval(interval);\n }, [text, speed]);\n\n return { displayed, done };\n}\n\nexport function AISummaryExpanded({ aiSummaryData, isLoading, isError, onCollapse }: AISummaryExpandedProps) {\n const dynamicData = useMemo(() => {\n if (!aiSummaryData) return { summaryText: \"\", insights: [], charts: [], currency: \"AED\" };\n\n const insights = (aiSummaryData.flags || []).map((flag: any) => ({\n icon:\n flag.severity === \"critical\"\n ? AlertTriangle\n : flag.severity === \"warning\"\n ? Clock\n : TrendingUp,\n text: flag.message,\n title:\n flag.severity === \"critical\"\n ? \"Critical\"\n : flag.severity === \"warning\"\n ? \"Warning\"\n : \"Info\",\n color:\n flag.severity === \"critical\"\n ? \"#E85D3A\"\n : flag.severity === \"warning\"\n ? \"#D97706\"\n : \"#059669\",\n }));\n\n return {\n summaryText: aiSummaryData.summary || \"\",\n insights,\n charts: aiSummaryData.charts || [],\n currency: aiSummaryData?.charts?.[0]?.currency || \"AED\",\n };\n }, [aiSummaryData]);\n\n const [copied, setCopied] = useState(false);\n const [insightsVisible, setInsightsVisible] = useState(false);\n const [feedbackGiven, setFeedbackGiven] = useState<\"up\" | \"down\" | null>(null);\n const [chatOpen, setChatOpen] = useState(false);\n\n const { displayed, done } = useTypingEffect(dynamicData.summaryText, 12);\n\n useEffect(() => {\n if (done) {\n setTimeout(() => setInsightsVisible(true), 200);\n }\n }, [done]);\n\n function handleCopy() {\n navigator.clipboard.writeText(dynamicData.summaryText);\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n }\n\n return (\n <div className=\"ai-summary-panel__expanded\">\n <div className=\"ai-summary-panel__header\">\n <div className=\"ai-summary-panel__header-left\">\n <div className=\"ai-summary-panel__header-icon\">\n <Sparkles />\n </div>\n <span className=\"ai-summary-panel__header-title\">AI Summary</span>\n <span className=\"ai-summary-panel__header-badge\">Beta</span>\n </div>\n\n <div className=\"ai-summary-panel__header-actions\">\n <button\n onClick={handleCopy}\n className={`ai-summary-panel__header-btn ${copied ? \"copied\" : \"\"}`}\n >\n {copied ? <Check /> : <Copy />}\n </button>\n\n <button onClick={onCollapse} className=\"ai-summary-panel__header-btn\">\n <ChevronUp />\n </button>\n </div>\n </div>\n\n <div className=\"ai-summary-panel__body\">\n {isLoading && (\n <div className=\"ai-summary-panel__loading\">\n <div className=\"ai-summary-panel__loading-spinner-large\" />\n <span className=\"ai-summary-panel__loading-text\">Generating AI insights...</span>\n </div>\n )}\n\n {!isLoading && isError && (\n <p className=\"ai-summary-panel__error\">\n Unable to generate AI summary. Please try again later.\n </p>\n )}\n\n {!isLoading && !isError && (\n <p className=\"ai-summary-panel__summary\">\n {displayed}\n {!done && <span className=\"ai-summary-panel__summary-cursor\" />}\n </p>\n )}\n\n {dynamicData.charts.length > 0 && insightsVisible && (\n <ApiChartsRenderer charts={dynamicData.charts} currency={dynamicData.currency} />\n )}\n\n {insightsVisible && (\n <div className=\"ai-summary-panel__insights\">\n {dynamicData.insights.map((insight: any, i: number) => (\n <div\n key={i}\n className={`ai-summary-panel__insight-chip ai-summary-panel__insight-chip--${insight.title?.toLowerCase() || \"info\"}`}\n >\n <insight.icon style={{ color: insight.color }} />\n <span className=\"ai-summary-panel__insight-chip-title\">{insight.title}</span>\n <span className=\"ai-summary-panel__insight-chip-text\">— {insight.text}</span>\n <svg className=\"ai-summary-panel__insight-chip-arrow\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M9 18l6-6-6-6\" />\n </svg>\n </div>\n ))}\n </div>\n )}\n\n {insightsVisible && (\n <div className=\"ai-summary-panel__feedback\">\n <div className=\"ai-summary-panel__feedback-left\">\n <div className=\"ai-summary-panel__feedback-thumbs\">\n <span className=\"ai-summary-panel__feedback-label\">Helpful?</span>\n <button\n onClick={() => setFeedbackGiven(feedbackGiven === \"up\" ? null : \"up\")}\n className={`ai-summary-panel__feedback-btn${feedbackGiven === \"up\" ? \" ai-summary-panel__feedback-btn--up\" : \"\"}`}\n >\n <ThumbsUp />\n </button>\n <button\n onClick={() => setFeedbackGiven(feedbackGiven === \"down\" ? null : \"down\")}\n className={`ai-summary-panel__feedback-btn${feedbackGiven === \"down\" ? \" ai-summary-panel__feedback-btn--down\" : \"\"}`}\n >\n <ThumbsDown />\n </button>\n </div>\n <span className=\"ai-summary-panel__feedback-disclaimer\"><AIDisclaimer sx={{ mt: 0 }} /></span>\n </div>\n {!chatOpen && (\n <button onClick={() => setChatOpen(true)} className=\"ai-summary-panel__ask-ai-btn\">\n <Sparkles />\n <span>Ask AI</span>\n </button>\n )}\n </div>\n )}\n </div>\n\n {chatOpen && (\n <AIChatPanel\n sessionId={aiSummaryData?.session_id}\n onClose={() => setChatOpen(false)}\n />\n )}\n </div>\n );\n}\n","import { useState } from \"react\";\nimport { Sparkles, ChevronDown } from \"lucide-react\";\n\nimport { AISummaryExpanded } from \"./ai-summary-expanded\";\nimport { getApiConfigSafe } from \"../../utils/api-config\";\n\nimport \"./ai-summary.scss\";\n\nexport interface AISummaryPanelProps {\n aiSummaryData?: any;\n isLoading?: boolean;\n isError?: boolean;\n onExpand?: () => void;\n}\n\nexport function AISummaryPanel(props: AISummaryPanelProps = {}) {\n const isAiEnabled = getApiConfigSafe()?.aiFeatureEnabled === 'true';\n if (!isAiEnabled) return null;\n\n const { aiSummaryData, isLoading, isError, onExpand } = props;\n const [expanded, setExpanded] = useState(false);\n\n return (\n <div className=\"ai-summary-panel\">\n {!expanded && (\n <button\n onClick={() => {\n setExpanded(true);\n onExpand?.();\n }}\n className=\"ai-summary-panel__collapsed-toggle\"\n disabled={isLoading}\n >\n <div className=\"ai-summary-panel__collapsed-toggle-icon\">\n {isLoading ? (\n <div className=\"ai-summary-panel__loading-spinner\" />\n ) : (\n <Sparkles />\n )}\n </div>\n\n <span className=\"ai-summary-panel__collapsed-toggle-title\">AI Summary</span>\n\n <span className=\"ai-summary-panel__collapsed-toggle-subtitle\">\n {isLoading ? \"Generating insights...\" : \"Click to expand insights\"}\n </span>\n\n {!isLoading && (\n <ChevronDown className=\"ai-summary-panel__collapsed-toggle-chevron\" />\n )}\n </button>\n )}\n\n {expanded && (\n <AISummaryExpanded\n aiSummaryData={aiSummaryData}\n isLoading={isLoading}\n isError={isError}\n onCollapse={() => setExpanded(false)}\n />\n )}\n </div>\n );\n}\n\nexport default AISummaryPanel;\n"],"names":[],"mappings":"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"}