@erpsquad/common 1.11.5 → 1.11.6

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 (395) hide show
  1. package/dist/chunks/{DynamicDependentField-Bug_QweP.esm.js → DynamicDependentField-C0XXmMlG.esm.js} +2 -2
  2. package/dist/chunks/{DynamicDependentField-Bug_QweP.esm.js.map → DynamicDependentField-C0XXmMlG.esm.js.map} +1 -1
  3. package/dist/chunks/{DynamicDependentField-GTIwrPfP.js → DynamicDependentField-CQIfDDqc.js} +2 -2
  4. package/dist/chunks/{DynamicDependentField-GTIwrPfP.js.map → DynamicDependentField-CQIfDDqc.js.map} +1 -1
  5. package/dist/chunks/{FORMS-QqBksLc2.esm.js → FORMS-B40NtUdz.esm.js} +5 -5
  6. package/dist/chunks/{FORMS-QqBksLc2.esm.js.map → FORMS-B40NtUdz.esm.js.map} +1 -1
  7. package/dist/chunks/{FORMS-DITDFHy1.js → FORMS-K5QYZYJc.js} +5 -5
  8. package/dist/chunks/{FORMS-DITDFHy1.js.map → FORMS-K5QYZYJc.js.map} +1 -1
  9. package/dist/chunks/{FlexibleReduxExample-CMUylyy1.js → FlexibleReduxExample-WGpR03V0.js} +3 -3
  10. package/dist/chunks/{FlexibleReduxExample-CMUylyy1.js.map → FlexibleReduxExample-WGpR03V0.js.map} +1 -1
  11. package/dist/chunks/{FlexibleReduxExample-BweOhhft.esm.js → FlexibleReduxExample-lJRAIjmS.esm.js} +3 -3
  12. package/dist/chunks/{FlexibleReduxExample-BweOhhft.esm.js.map → FlexibleReduxExample-lJRAIjmS.esm.js.map} +1 -1
  13. package/dist/chunks/{SectionFlowEditor-COarQdF5.esm.js → SectionFlowEditor-CFfJBYKx.esm.js} +2 -2
  14. package/dist/chunks/{SectionFlowEditor-COarQdF5.esm.js.map → SectionFlowEditor-CFfJBYKx.esm.js.map} +1 -1
  15. package/dist/chunks/{SectionFlowEditor--gfRgdM2.js → SectionFlowEditor-sKsZ3oQo.js} +2 -2
  16. package/dist/chunks/{SectionFlowEditor--gfRgdM2.js.map → SectionFlowEditor-sKsZ3oQo.js.map} +1 -1
  17. package/dist/chunks/{action-bar-sX54kFo9.esm.js → action-bar-C7Alva4T.esm.js} +3 -3
  18. package/dist/chunks/{action-bar-sX54kFo9.esm.js.map → action-bar-C7Alva4T.esm.js.map} +1 -1
  19. package/dist/chunks/{action-bar-CGP-GLkt.js → action-bar-DdtpxWNk.js} +3 -3
  20. package/dist/chunks/{action-bar-CGP-GLkt.js.map → action-bar-DdtpxWNk.js.map} +1 -1
  21. package/dist/chunks/{add-template-xyPHm3zV.esm.js → add-template-DVvbD9a4.esm.js} +2 -2
  22. package/dist/chunks/{add-template-xyPHm3zV.esm.js.map → add-template-DVvbD9a4.esm.js.map} +1 -1
  23. package/dist/chunks/{add-template-vpXcccHo.js → add-template-Dohg2bHJ.js} +2 -2
  24. package/dist/chunks/{add-template-vpXcccHo.js.map → add-template-Dohg2bHJ.js.map} +1 -1
  25. package/dist/chunks/{address-modal-DFd5sQtR.js → address-modal-CYhiC7ui.js} +2 -2
  26. package/dist/chunks/{address-modal-DFd5sQtR.js.map → address-modal-CYhiC7ui.js.map} +1 -1
  27. package/dist/chunks/{address-modal-DRT30GGc.esm.js → address-modal-CkDBjnye.esm.js} +2 -2
  28. package/dist/chunks/{address-modal-DRT30GGc.esm.js.map → address-modal-CkDBjnye.esm.js.map} +1 -1
  29. package/dist/chunks/{app-switcher-VhH9z0Rd.js → app-switcher-CyEQmYAN.js} +2 -2
  30. package/dist/chunks/{app-switcher-VhH9z0Rd.js.map → app-switcher-CyEQmYAN.js.map} +1 -1
  31. package/dist/chunks/{app-switcher-B6eapuGG.esm.js → app-switcher-D-Bvz9uO.esm.js} +2 -2
  32. package/dist/chunks/{app-switcher-B6eapuGG.esm.js.map → app-switcher-D-Bvz9uO.esm.js.map} +1 -1
  33. package/dist/chunks/{appbar-D5moUuMm.esm.js → appbar-BdTp1k68.esm.js} +2 -2
  34. package/dist/chunks/{appbar-D5moUuMm.esm.js.map → appbar-BdTp1k68.esm.js.map} +1 -1
  35. package/dist/chunks/{appbar-WvWT7p_M.js → appbar-DyIptRTa.js} +2 -2
  36. package/dist/chunks/{appbar-WvWT7p_M.js.map → appbar-DyIptRTa.js.map} +1 -1
  37. package/dist/chunks/{common-PH2uWkqL.js → common-CS5L0Ld_.js} +2 -2
  38. package/dist/chunks/{common-PH2uWkqL.js.map → common-CS5L0Ld_.js.map} +1 -1
  39. package/dist/chunks/{common-Cl5oGXmX.esm.js → common-yORBIVv-.esm.js} +2 -2
  40. package/dist/chunks/{common-Cl5oGXmX.esm.js.map → common-yORBIVv-.esm.js.map} +1 -1
  41. package/dist/chunks/{constants-D_xuLHSu.js → constants-06kIVUBw.js} +2 -2
  42. package/dist/chunks/{constants-D_xuLHSu.js.map → constants-06kIVUBw.js.map} +1 -1
  43. package/dist/chunks/{constants-BrmMAwu2.esm.js → constants-nmkxkzps.esm.js} +2 -2
  44. package/dist/chunks/{constants-BrmMAwu2.esm.js.map → constants-nmkxkzps.esm.js.map} +1 -1
  45. package/dist/chunks/{custom-form-T4yc_sE_.js → custom-form-CFU7NEVb.js} +4 -4
  46. package/dist/chunks/{custom-form-T4yc_sE_.js.map → custom-form-CFU7NEVb.js.map} +1 -1
  47. package/dist/chunks/{custom-form-B0iJKE-f.esm.js → custom-form-DD7YOHMF.esm.js} +4 -4
  48. package/dist/chunks/{custom-form-B0iJKE-f.esm.js.map → custom-form-DD7YOHMF.esm.js.map} +1 -1
  49. package/dist/chunks/{dashboard-u68tvYf2.esm.js → dashboard-B5qcT2Dt.esm.js} +3 -3
  50. package/dist/chunks/{dashboard-u68tvYf2.esm.js.map → dashboard-B5qcT2Dt.esm.js.map} +1 -1
  51. package/dist/chunks/{dashboard-Ck4clis4.js → dashboard-Dzts5-X6.js} +3 -3
  52. package/dist/chunks/{dashboard-Ck4clis4.js.map → dashboard-Dzts5-X6.js.map} +1 -1
  53. package/dist/chunks/{filter-BxLWUhFQ.esm.js → filter-COXKBEER.esm.js} +3 -3
  54. package/dist/chunks/{filter-BxLWUhFQ.esm.js.map → filter-COXKBEER.esm.js.map} +1 -1
  55. package/dist/chunks/{filter-DQNAPq4l.js → filter-Cr_OSIpb.js} +3 -3
  56. package/dist/chunks/{filter-DQNAPq4l.js.map → filter-Cr_OSIpb.js.map} +1 -1
  57. package/dist/chunks/{footer-DioOh69g.js → footer-CD3kMRdS.js} +2 -2
  58. package/dist/chunks/{footer-DioOh69g.js.map → footer-CD3kMRdS.js.map} +1 -1
  59. package/dist/chunks/{footer-BXClGYIb.esm.js → footer-m3_dlNl8.esm.js} +2 -2
  60. package/dist/chunks/{footer-BXClGYIb.esm.js.map → footer-m3_dlNl8.esm.js.map} +1 -1
  61. package/dist/chunks/{form-fields-DKFiyLCi.esm.js → form-fields-hMMnB_wE.esm.js} +2 -2
  62. package/dist/chunks/{form-fields-DKFiyLCi.esm.js.map → form-fields-hMMnB_wE.esm.js.map} +1 -1
  63. package/dist/chunks/{form-fields-BYDhbAgB.js → form-fields-yE9kwjvb.js} +2 -2
  64. package/dist/chunks/{form-fields-BYDhbAgB.js.map → form-fields-yE9kwjvb.js.map} +1 -1
  65. package/dist/chunks/{form-parser-C95b2on7.esm.js → form-parser-DbnSn5eY.esm.js} +2 -2
  66. package/dist/chunks/{form-parser-C95b2on7.esm.js.map → form-parser-DbnSn5eY.esm.js.map} +1 -1
  67. package/dist/chunks/{form-parser-BnMdMDSb.js → form-parser-m4fnw38a.js} +2 -2
  68. package/dist/chunks/{form-parser-BnMdMDSb.js.map → form-parser-m4fnw38a.js.map} +1 -1
  69. package/dist/chunks/{form-section-CFeWD-tF.js → form-section-CPIyMdk2.js} +5 -5
  70. package/dist/chunks/{form-section-CFeWD-tF.js.map → form-section-CPIyMdk2.js.map} +1 -1
  71. package/dist/chunks/{form-section-Bx_D21gW.esm.js → form-section-TMjdOVeW.esm.js} +5 -5
  72. package/dist/chunks/{form-section-Bx_D21gW.esm.js.map → form-section-TMjdOVeW.esm.js.map} +1 -1
  73. package/dist/chunks/{fullScreen-q9u5VL-5.js → fullScreen-B5iqC1y0.js} +2 -2
  74. package/dist/chunks/{fullScreen-q9u5VL-5.js.map → fullScreen-B5iqC1y0.js.map} +1 -1
  75. package/dist/chunks/{fullScreen-DTQ6tqij.esm.js → fullScreen-D-isf0wv.esm.js} +2 -2
  76. package/dist/chunks/{fullScreen-DTQ6tqij.esm.js.map → fullScreen-D-isf0wv.esm.js.map} +1 -1
  77. package/dist/chunks/{global-search-DCsutWXD.esm.js → global-search-BOkxXiZ0.esm.js} +2 -2
  78. package/dist/chunks/{global-search-DCsutWXD.esm.js.map → global-search-BOkxXiZ0.esm.js.map} +1 -1
  79. package/dist/chunks/{global-search-BTV5iL6-.js → global-search-BjKPmzsQ.js} +2 -2
  80. package/dist/chunks/{global-search-BTV5iL6-.js.map → global-search-BjKPmzsQ.js.map} +1 -1
  81. package/dist/chunks/{header-CqTEaHw3.js → header-DQ_e75rt.js} +6 -6
  82. package/dist/chunks/{header-CqTEaHw3.js.map → header-DQ_e75rt.js.map} +1 -1
  83. package/dist/chunks/{header-I2izTvvZ.esm.js → header-D_pPOjdz.esm.js} +6 -6
  84. package/dist/chunks/{header-I2izTvvZ.esm.js.map → header-D_pPOjdz.esm.js.map} +1 -1
  85. package/dist/chunks/{header-enhanced-Dxdetx0I.js → header-enhanced-DCDMljaN.js} +3 -3
  86. package/dist/chunks/{header-enhanced-Dxdetx0I.js.map → header-enhanced-DCDMljaN.js.map} +1 -1
  87. package/dist/chunks/{header-enhanced-D31BpL2H.esm.js → header-enhanced-OiKzLG4i.esm.js} +3 -3
  88. package/dist/chunks/{header-enhanced-D31BpL2H.esm.js.map → header-enhanced-OiKzLG4i.esm.js.map} +1 -1
  89. package/dist/chunks/{inline-edit-fields-CjqUhdIv.esm.js → inline-edit-fields-BYhRpPcH.esm.js} +2 -2
  90. package/dist/chunks/{inline-edit-fields-CjqUhdIv.esm.js.map → inline-edit-fields-BYhRpPcH.esm.js.map} +1 -1
  91. package/dist/chunks/{inline-edit-fields-Cd_qUOjU.js → inline-edit-fields-atDP84QL.js} +2 -2
  92. package/dist/chunks/{inline-edit-fields-Cd_qUOjU.js.map → inline-edit-fields-atDP84QL.js.map} +1 -1
  93. package/dist/chunks/{inventory-reports-title-bar-BfUMM54c.js → inventory-reports-title-bar-Bog2i0dr.js} +2 -2
  94. package/dist/chunks/{inventory-reports-title-bar-BfUMM54c.js.map → inventory-reports-title-bar-Bog2i0dr.js.map} +1 -1
  95. package/dist/chunks/{inventory-reports-title-bar-DPS3r5V2.esm.js → inventory-reports-title-bar-CP8FzW6A.esm.js} +2 -2
  96. package/dist/chunks/{inventory-reports-title-bar-DPS3r5V2.esm.js.map → inventory-reports-title-bar-CP8FzW6A.esm.js.map} +1 -1
  97. package/dist/chunks/{item-response-details-BheThTTK.js → item-response-details-DsGQ7Dlc.js} +2 -2
  98. package/dist/chunks/{item-response-details-BheThTTK.js.map → item-response-details-DsGQ7Dlc.js.map} +1 -1
  99. package/dist/chunks/{item-response-details-BtCmz7XT.esm.js → item-response-details-SHSD-nBh.esm.js} +2 -2
  100. package/dist/chunks/{item-response-details-BtCmz7XT.esm.js.map → item-response-details-SHSD-nBh.esm.js.map} +1 -1
  101. package/dist/chunks/{listing-Ck-RqIjL.esm.js → listing-C0Yb6MVq.esm.js} +4 -4
  102. package/dist/chunks/{listing-Ck-RqIjL.esm.js.map → listing-C0Yb6MVq.esm.js.map} +1 -1
  103. package/dist/chunks/{listing-BDN5cLvI.js → listing-DIuzQrzb.js} +4 -4
  104. package/dist/chunks/{listing-BDN5cLvI.js.map → listing-DIuzQrzb.js.map} +1 -1
  105. package/dist/chunks/{location-select-jwR8SCYN.esm.js → location-select-CFa00fy4.esm.js} +2 -2
  106. package/dist/chunks/{location-select-jwR8SCYN.esm.js.map → location-select-CFa00fy4.esm.js.map} +1 -1
  107. package/dist/chunks/{location-select-CLyRUilk.js → location-select-g5uczAUF.js} +2 -2
  108. package/dist/chunks/{location-select-CLyRUilk.js.map → location-select-g5uczAUF.js.map} +1 -1
  109. package/dist/chunks/{material-editable-table-DFGB0q-s.js → material-editable-table-BGLjrTzT.js} +3 -3
  110. package/dist/chunks/{material-editable-table-DFGB0q-s.js.map → material-editable-table-BGLjrTzT.js.map} +1 -1
  111. package/dist/chunks/{material-editable-table-qC9FTg-4.esm.js → material-editable-table-pAyK7KYf.esm.js} +3 -3
  112. package/dist/chunks/{material-editable-table-qC9FTg-4.esm.js.map → material-editable-table-pAyK7KYf.esm.js.map} +1 -1
  113. package/dist/chunks/{modules-DTRr7zwt.js → modules-BZNWOWrz.js} +2 -2
  114. package/dist/chunks/{modules-DTRr7zwt.js.map → modules-BZNWOWrz.js.map} +1 -1
  115. package/dist/chunks/{modules-enwLrpfQ.esm.js → modules-CWV4WSHs.esm.js} +2 -2
  116. package/dist/chunks/{modules-enwLrpfQ.esm.js.map → modules-CWV4WSHs.esm.js.map} +1 -1
  117. package/dist/chunks/{notification-menu-B00hDUbn.js → notification-menu-D7ASm-K1.js} +2 -2
  118. package/dist/chunks/{notification-menu-B00hDUbn.js.map → notification-menu-D7ASm-K1.js.map} +1 -1
  119. package/dist/chunks/{notification-menu-B_4BOTgX.esm.js → notification-menu-XAadkn-e.esm.js} +2 -2
  120. package/dist/chunks/{notification-menu-B_4BOTgX.esm.js.map → notification-menu-XAadkn-e.esm.js.map} +1 -1
  121. package/dist/chunks/{page-action-TMFOytDw.js → page-action-BPzaL2KJ.js} +2 -2
  122. package/dist/chunks/{page-action-TMFOytDw.js.map → page-action-BPzaL2KJ.js.map} +1 -1
  123. package/dist/chunks/{page-action-0S_h4623.esm.js → page-action-C07iGjvN.esm.js} +2 -2
  124. package/dist/chunks/{page-action-0S_h4623.esm.js.map → page-action-C07iGjvN.esm.js.map} +1 -1
  125. package/dist/chunks/{page-navigator-B17f-mUz.esm.js → page-navigator-8gZpp9_P.esm.js} +2 -2
  126. package/dist/chunks/{page-navigator-B17f-mUz.esm.js.map → page-navigator-8gZpp9_P.esm.js.map} +1 -1
  127. package/dist/chunks/{page-navigator-DdRsmtLy.js → page-navigator-Cgbh3tTG.js} +2 -2
  128. package/dist/chunks/{page-navigator-DdRsmtLy.js.map → page-navigator-Cgbh3tTG.js.map} +1 -1
  129. package/dist/chunks/{page-view-CnzxewUy.esm.js → page-view-CokUNMBn.esm.js} +3 -3
  130. package/dist/chunks/{page-view-CnzxewUy.esm.js.map → page-view-CokUNMBn.esm.js.map} +1 -1
  131. package/dist/chunks/{page-view-CvfqzV03.js → page-view-DJ6HS_dV.js} +3 -3
  132. package/dist/chunks/{page-view-CvfqzV03.js.map → page-view-DJ6HS_dV.js.map} +1 -1
  133. package/dist/chunks/{pathname.rental-CwK6JuID.js → pathname.rental-DgH4LoG7.js} +7 -2
  134. package/dist/chunks/{pathname.rental-CwK6JuID.js.map → pathname.rental-DgH4LoG7.js.map} +1 -1
  135. package/dist/chunks/{pathname.rental-CqHO_l_D.esm.js → pathname.rental-qsAe3XFd.esm.js} +81 -76
  136. package/dist/chunks/{pathname.rental-CqHO_l_D.esm.js.map → pathname.rental-qsAe3XFd.esm.js.map} +1 -1
  137. package/dist/chunks/{reports-title-bar-CqVqKrPd.esm.js → reports-title-bar-Cay4E8SQ.esm.js} +2 -2
  138. package/dist/chunks/{reports-title-bar-CqVqKrPd.esm.js.map → reports-title-bar-Cay4E8SQ.esm.js.map} +1 -1
  139. package/dist/chunks/{reports-title-bar-B1_IweEc.js → reports-title-bar-Kz6JjqsY.js} +2 -2
  140. package/dist/chunks/{reports-title-bar-B1_IweEc.js.map → reports-title-bar-Kz6JjqsY.js.map} +1 -1
  141. package/dist/chunks/{route-page-map-CSg28AvB.esm.js → route-page-map-DkWoisiB.esm.js} +132 -75
  142. package/dist/chunks/{route-page-map-CSg28AvB.esm.js.map → route-page-map-DkWoisiB.esm.js.map} +1 -1
  143. package/dist/chunks/{route-page-map-__F1KHUj.js → route-page-map-Dn-SAbdf.js} +59 -2
  144. package/dist/chunks/{route-page-map-__F1KHUj.js.map → route-page-map-Dn-SAbdf.js.map} +1 -1
  145. package/dist/chunks/{routes-DauYjaxu.esm.js → routes-Be8qxaVS.esm.js} +3 -3
  146. package/dist/chunks/{routes-DauYjaxu.esm.js.map → routes-Be8qxaVS.esm.js.map} +1 -1
  147. package/dist/chunks/{routes-Bs7dqd7j.js → routes-Bi8lChPT.js} +3 -3
  148. package/dist/chunks/{routes-Bs7dqd7j.js.map → routes-Bi8lChPT.js.map} +1 -1
  149. package/dist/chunks/{schedule-report-BwmZ5jea.js → schedule-report-B4ZfEuiU.js} +4 -4
  150. package/dist/chunks/{schedule-report-BwmZ5jea.js.map → schedule-report-B4ZfEuiU.js.map} +1 -1
  151. package/dist/chunks/{schedule-report-D2oYKVGN.esm.js → schedule-report-CLXjjfjc.esm.js} +4 -4
  152. package/dist/chunks/{schedule-report-D2oYKVGN.esm.js.map → schedule-report-CLXjjfjc.esm.js.map} +1 -1
  153. package/dist/chunks/{schedule-report-modal-maDNFV-h.esm.js → schedule-report-modal-CB3G9H7x.esm.js} +2 -2
  154. package/dist/chunks/{schedule-report-modal-maDNFV-h.esm.js.map → schedule-report-modal-CB3G9H7x.esm.js.map} +1 -1
  155. package/dist/chunks/{schedule-report-modal-iNnWP9s4.js → schedule-report-modal-iwoDI-sg.js} +2 -2
  156. package/dist/chunks/{schedule-report-modal-iNnWP9s4.js.map → schedule-report-modal-iwoDI-sg.js.map} +1 -1
  157. package/dist/chunks/{searchable-select-CcG1qflA.esm.js → searchable-select-0F6E4XAr.esm.js} +2 -2
  158. package/dist/chunks/{searchable-select-CcG1qflA.esm.js.map → searchable-select-0F6E4XAr.esm.js.map} +1 -1
  159. package/dist/chunks/{searchable-select-DVUCWWti.js → searchable-select-_DCkITfk.js} +2 -2
  160. package/dist/chunks/{searchable-select-DVUCWWti.js.map → searchable-select-_DCkITfk.js.map} +1 -1
  161. package/dist/chunks/{share-modal-CQYd5GU0.esm.js → share-modal-BaEyZs2h.esm.js} +2 -2
  162. package/dist/chunks/{share-modal-CQYd5GU0.esm.js.map → share-modal-BaEyZs2h.esm.js.map} +1 -1
  163. package/dist/chunks/{share-modal-CobK7BN7.js → share-modal-DrXvh-fV.js} +2 -2
  164. package/dist/chunks/{share-modal-CobK7BN7.js.map → share-modal-DrXvh-fV.js.map} +1 -1
  165. package/dist/chunks/{share-modal-enhanced-DVarD-jt.js → share-modal-enhanced-BTr0zRhF.js} +2 -2
  166. package/dist/chunks/{share-modal-enhanced-DVarD-jt.js.map → share-modal-enhanced-BTr0zRhF.js.map} +1 -1
  167. package/dist/chunks/{share-modal-enhanced-04WjO7Ej.esm.js → share-modal-enhanced-DnEdDBmu.esm.js} +2 -2
  168. package/dist/chunks/{share-modal-enhanced-04WjO7Ej.esm.js.map → share-modal-enhanced-DnEdDBmu.esm.js.map} +1 -1
  169. package/dist/chunks/{sidebarScreen-BvaFDSr8.js → sidebarScreen-3iZYCAMn.js} +2 -2
  170. package/dist/chunks/{sidebarScreen-BvaFDSr8.js.map → sidebarScreen-3iZYCAMn.js.map} +1 -1
  171. package/dist/chunks/{sidebarScreen-CLsGgJpX.esm.js → sidebarScreen-CYUn8OsB.esm.js} +2 -2
  172. package/dist/chunks/{sidebarScreen-CLsGgJpX.esm.js.map → sidebarScreen-CYUn8OsB.esm.js.map} +1 -1
  173. package/dist/chunks/{table-Bpt6ggr3.js → table-DWx7x8zw.js} +2 -2
  174. package/dist/chunks/{table-Bpt6ggr3.js.map → table-DWx7x8zw.js.map} +1 -1
  175. package/dist/chunks/{table-DgCWox6A.esm.js → table-gxAlAeTq.esm.js} +2 -2
  176. package/dist/chunks/{table-DgCWox6A.esm.js.map → table-gxAlAeTq.esm.js.map} +1 -1
  177. package/dist/chunks/{template-editor-router-Dq3Hsw99.js → template-editor-router-BRxF8Dj_.js} +2 -2
  178. package/dist/chunks/{template-editor-router-Dq3Hsw99.js.map → template-editor-router-BRxF8Dj_.js.map} +1 -1
  179. package/dist/chunks/{template-editor-router-DAGjgCfA.esm.js → template-editor-router-BV5FrwJm.esm.js} +2 -2
  180. package/dist/chunks/{template-editor-router-DAGjgCfA.esm.js.map → template-editor-router-BV5FrwJm.esm.js.map} +1 -1
  181. package/dist/chunks/{templates-BkVjG5c0.js → templates-BY9HF32G.js} +4 -4
  182. package/dist/chunks/{templates-BkVjG5c0.js.map → templates-BY9HF32G.js.map} +1 -1
  183. package/dist/chunks/{templates-DrKOJkmh.esm.js → templates-DxvU4PQY.esm.js} +4 -4
  184. package/dist/chunks/{templates-DrKOJkmh.esm.js.map → templates-DxvU4PQY.esm.js.map} +1 -1
  185. package/dist/chunks/{uom-field-wrapper-DyhwLo9Q.esm.js → uom-field-wrapper-CTbEc-MB.esm.js} +2 -2
  186. package/dist/chunks/{uom-field-wrapper-DyhwLo9Q.esm.js.map → uom-field-wrapper-CTbEc-MB.esm.js.map} +1 -1
  187. package/dist/chunks/{uom-field-wrapper-CSqeiVPY.js → uom-field-wrapper-DXZgzOYB.js} +2 -2
  188. package/dist/chunks/{uom-field-wrapper-CSqeiVPY.js.map → uom-field-wrapper-DXZgzOYB.js.map} +1 -1
  189. package/dist/chunks/{use-translations-RGIbWjPM.esm.js → use-translations-BzykVZOP.esm.js} +2 -2
  190. package/dist/chunks/{use-translations-RGIbWjPM.esm.js.map → use-translations-BzykVZOP.esm.js.map} +1 -1
  191. package/dist/chunks/{use-translations-Cn3b4Kqh.js → use-translations-CNI_xsIo.js} +2 -2
  192. package/dist/chunks/{use-translations-Cn3b4Kqh.js.map → use-translations-CNI_xsIo.js.map} +1 -1
  193. package/dist/chunks/{value-editor-Br7X_wEB.js → value-editor-BSS9Ns2T.js} +2 -2
  194. package/dist/chunks/{value-editor-Br7X_wEB.js.map → value-editor-BSS9Ns2T.js.map} +1 -1
  195. package/dist/chunks/{value-editor-DkDNIrZ4.esm.js → value-editor-DQ1qgZ2u.esm.js} +2 -2
  196. package/dist/chunks/{value-editor-DkDNIrZ4.esm.js.map → value-editor-DQ1qgZ2u.esm.js.map} +1 -1
  197. package/dist/chunks/{vendor-ai-summary-C33oHYPA.esm.js → vendor-ai-summary-BA6m2dH9.esm.js} +2 -2
  198. package/dist/chunks/{vendor-ai-summary-C33oHYPA.esm.js.map → vendor-ai-summary-BA6m2dH9.esm.js.map} +1 -1
  199. package/dist/chunks/{vendor-ai-summary-zranZkfk.js → vendor-ai-summary-DWmAaQ_N.js} +2 -2
  200. package/dist/chunks/{vendor-ai-summary-zranZkfk.js.map → vendor-ai-summary-DWmAaQ_N.js.map} +1 -1
  201. package/dist/components/action-bar/action-bar/index.esm.js +1 -1
  202. package/dist/components/action-bar/action-bar/index.js +1 -1
  203. package/dist/components/action-bar/index.esm.js +1 -1
  204. package/dist/components/action-bar/index.js +1 -1
  205. package/dist/components/address-modal/index.esm.js +1 -1
  206. package/dist/components/address-modal/index.js +1 -1
  207. package/dist/components/appbar/appbar/index.esm.js +1 -1
  208. package/dist/components/appbar/appbar/index.js +1 -1
  209. package/dist/components/appbar/index.esm.js +1 -1
  210. package/dist/components/appbar/index.js +1 -1
  211. package/dist/components/custom-forms/FORMS/index.esm.js +1 -1
  212. package/dist/components/custom-forms/FORMS/index.js +1 -1
  213. package/dist/components/custom-forms/index.esm.js +1 -1
  214. package/dist/components/custom-forms/index.js +1 -1
  215. package/dist/components/department-add-modal/index.esm.js +1 -1
  216. package/dist/components/department-add-modal/index.js +1 -1
  217. package/dist/components/designation-add-modal/index.esm.js +1 -1
  218. package/dist/components/designation-add-modal/index.js +1 -1
  219. package/dist/components/examples/FlexibleReduxExample/index.esm.js +1 -1
  220. package/dist/components/examples/FlexibleReduxExample/index.js +1 -1
  221. package/dist/components/examples/index.esm.js +1 -1
  222. package/dist/components/examples/index.js +1 -1
  223. package/dist/components/filter/components/index.esm.js +1 -1
  224. package/dist/components/filter/components/index.js +1 -1
  225. package/dist/components/filter/components/value-editor/index.esm.js +1 -1
  226. package/dist/components/filter/components/value-editor/index.js +1 -1
  227. package/dist/components/filter/filter/index.esm.js +1 -1
  228. package/dist/components/filter/filter/index.js +1 -1
  229. package/dist/components/filter/index.esm.js +2 -2
  230. package/dist/components/filter/index.js +2 -2
  231. package/dist/components/footer/footer/index.esm.js +1 -1
  232. package/dist/components/footer/footer/index.js +1 -1
  233. package/dist/components/footer/index.esm.js +1 -1
  234. package/dist/components/footer/index.js +1 -1
  235. package/dist/components/form-control/form-builder/form-builder-element/dynamic-dependent-field/index.esm.js +1 -1
  236. package/dist/components/form-control/form-builder/form-builder-element/dynamic-dependent-field/index.js +1 -1
  237. package/dist/components/form-control/form-builder/form-builder-element/dynamic-select/index.esm.js +1 -1
  238. package/dist/components/form-control/form-builder/form-builder-element/dynamic-select/index.js +1 -1
  239. package/dist/components/form-control/form-builder/form-builder-element/fixed-asset-item-add-modal/index.esm.js +1 -1
  240. package/dist/components/form-control/form-builder/form-builder-element/fixed-asset-item-add-modal/index.js +1 -1
  241. package/dist/components/form-control/form-builder/form-builder-element/index.esm.js +3 -3
  242. package/dist/components/form-control/form-builder/form-builder-element/index.js +3 -3
  243. package/dist/components/form-control/form-builder/form-builder-element/location-add-modal/index.esm.js +1 -1
  244. package/dist/components/form-control/form-builder/form-builder-element/location-add-modal/index.js +1 -1
  245. package/dist/components/form-control/form-builder/form-builder-element/select-configuration/index.esm.js +1 -1
  246. package/dist/components/form-control/form-builder/form-builder-element/select-configuration/index.js +1 -1
  247. package/dist/components/form-control/form-builder/form-builder-element/table/index.esm.js +1 -1
  248. package/dist/components/form-control/form-builder/form-builder-element/table/index.js +1 -1
  249. package/dist/components/form-control/form-builder/index.esm.js +3 -3
  250. package/dist/components/form-control/form-builder/index.js +3 -3
  251. package/dist/components/form-control/form-parser/form-parser/index.esm.js +1 -1
  252. package/dist/components/form-control/form-parser/form-parser/index.js +1 -1
  253. package/dist/components/form-control/form-parser/form-section/index.esm.js +1 -1
  254. package/dist/components/form-control/form-parser/form-section/index.js +1 -1
  255. package/dist/components/form-control/form-parser/index.esm.js +2 -2
  256. package/dist/components/form-control/form-parser/index.js +2 -2
  257. package/dist/components/form-control/index.esm.js +5 -5
  258. package/dist/components/form-control/index.js +5 -5
  259. package/dist/components/header/components/app-switcher/index.esm.js +1 -1
  260. package/dist/components/header/components/app-switcher/index.js +1 -1
  261. package/dist/components/header/components/global-search/index.esm.js +1 -1
  262. package/dist/components/header/components/global-search/index.js +1 -1
  263. package/dist/components/header/components/index.esm.js +1 -1
  264. package/dist/components/header/components/index.js +1 -1
  265. package/dist/components/header/components/notification-menu/index.esm.js +1 -1
  266. package/dist/components/header/components/notification-menu/index.js +1 -1
  267. package/dist/components/header/components/notification-menu/notification-menu/index.esm.js +1 -1
  268. package/dist/components/header/components/notification-menu/notification-menu/index.js +1 -1
  269. package/dist/components/header/header/index.esm.js +1 -1
  270. package/dist/components/header/header/index.js +1 -1
  271. package/dist/components/header/header-enhanced/index.esm.js +1 -1
  272. package/dist/components/header/header-enhanced/index.js +1 -1
  273. package/dist/components/header/index.esm.js +3 -3
  274. package/dist/components/header/index.js +3 -3
  275. package/dist/components/index.esm.js +26 -26
  276. package/dist/components/index.js +26 -26
  277. package/dist/components/inventory-reports-title-bar/index.esm.js +1 -1
  278. package/dist/components/inventory-reports-title-bar/index.js +1 -1
  279. package/dist/components/inventory-reports-title-bar/inventory-reports-title-bar/index.esm.js +1 -1
  280. package/dist/components/inventory-reports-title-bar/inventory-reports-title-bar/index.js +1 -1
  281. package/dist/components/listing/index.esm.js +1 -1
  282. package/dist/components/listing/index.js +1 -1
  283. package/dist/components/listing/listing/index.esm.js +1 -1
  284. package/dist/components/listing/listing/index.js +1 -1
  285. package/dist/components/location-select/index.esm.js +1 -1
  286. package/dist/components/location-select/index.js +1 -1
  287. package/dist/components/material-editable-table/components/index.esm.js +1 -1
  288. package/dist/components/material-editable-table/components/index.js +1 -1
  289. package/dist/components/material-editable-table/components/inline-edit-fields/index.esm.js +1 -1
  290. package/dist/components/material-editable-table/components/inline-edit-fields/index.js +1 -1
  291. package/dist/components/material-editable-table/index.esm.js +2 -2
  292. package/dist/components/material-editable-table/index.js +2 -2
  293. package/dist/components/material-editable-table/material-editable-table/index.esm.js +1 -1
  294. package/dist/components/material-editable-table/material-editable-table/index.js +1 -1
  295. package/dist/components/material-table/components/index.esm.js +1 -1
  296. package/dist/components/material-table/components/index.js +1 -1
  297. package/dist/components/material-table/components/inline-edit-fields/index.esm.js +1 -1
  298. package/dist/components/material-table/components/inline-edit-fields/index.js +1 -1
  299. package/dist/components/material-table/index.esm.js +1 -1
  300. package/dist/components/material-table/index.js +1 -1
  301. package/dist/components/material-table/material-table/index.esm.js +1 -1
  302. package/dist/components/material-table/material-table/index.js +1 -1
  303. package/dist/components/page-navigator/components/index.esm.js +1 -1
  304. package/dist/components/page-navigator/components/index.js +1 -1
  305. package/dist/components/page-navigator/components/page-action/index.esm.js +1 -1
  306. package/dist/components/page-navigator/components/page-action/index.js +1 -1
  307. package/dist/components/page-navigator/index.esm.js +2 -2
  308. package/dist/components/page-navigator/index.js +2 -2
  309. package/dist/components/page-navigator/page-navigator/index.esm.js +1 -1
  310. package/dist/components/page-navigator/page-navigator/index.js +1 -1
  311. package/dist/components/parties-modal/index.esm.js +1 -1
  312. package/dist/components/parties-modal/index.js +1 -1
  313. package/dist/components/parties-modal/parties-modal/index.esm.js +1 -1
  314. package/dist/components/parties-modal/parties-modal/index.js +1 -1
  315. package/dist/components/reports-title-bar/index.esm.js +1 -1
  316. package/dist/components/reports-title-bar/index.js +1 -1
  317. package/dist/components/reports-title-bar/reports-title-bar/index.esm.js +1 -1
  318. package/dist/components/reports-title-bar/reports-title-bar/index.js +1 -1
  319. package/dist/components/rfq-response/index.esm.js +1 -1
  320. package/dist/components/rfq-response/index.js +1 -1
  321. package/dist/components/rfq-response/item-response-details/index.esm.js +1 -1
  322. package/dist/components/rfq-response/item-response-details/index.js +1 -1
  323. package/dist/components/schedule-report/index.esm.js +2 -2
  324. package/dist/components/schedule-report/index.js +2 -2
  325. package/dist/components/schedule-report/schedule-report/index.esm.js +1 -1
  326. package/dist/components/schedule-report/schedule-report/index.js +1 -1
  327. package/dist/components/schedule-report/schedule-report-modal/index.esm.js +1 -1
  328. package/dist/components/schedule-report/schedule-report-modal/index.js +1 -1
  329. package/dist/components/searchable-select/index.esm.js +1 -1
  330. package/dist/components/searchable-select/index.js +1 -1
  331. package/dist/components/share-modal/index.esm.js +2 -2
  332. package/dist/components/share-modal/index.js +2 -2
  333. package/dist/components/share-modal/share-modal/index.esm.js +1 -1
  334. package/dist/components/share-modal/share-modal/index.js +1 -1
  335. package/dist/components/share-modal/share-modal-enhanced/index.esm.js +1 -1
  336. package/dist/components/share-modal/share-modal-enhanced/index.js +1 -1
  337. package/dist/components/team-add-modal/index.esm.js +1 -1
  338. package/dist/components/team-add-modal/index.js +1 -1
  339. package/dist/components/uom-field-wrapper/index.esm.js +1 -1
  340. package/dist/components/uom-field-wrapper/index.js +1 -1
  341. package/dist/components/uom-field-wrapper/uom-field-wrapper/index.esm.js +1 -1
  342. package/dist/components/uom-field-wrapper/uom-field-wrapper/index.js +1 -1
  343. package/dist/components/vendor-ai-summary/index.esm.js +1 -1
  344. package/dist/components/vendor-ai-summary/index.js +1 -1
  345. package/dist/constants/index.esm.js +145 -143
  346. package/dist/constants/index.js +5 -3
  347. package/dist/constants/index.js.map +1 -1
  348. package/dist/hooks/index.esm.js +1 -1
  349. package/dist/hooks/index.js +1 -1
  350. package/dist/hooks/use-translations/index.esm.js +1 -1
  351. package/dist/hooks/use-translations/index.js +1 -1
  352. package/dist/index.esm.js +182 -180
  353. package/dist/index.js +43 -41
  354. package/dist/index.js.map +1 -1
  355. package/dist/layout/fullScreen/index.esm.js +1 -1
  356. package/dist/layout/fullScreen/index.js +1 -1
  357. package/dist/layout/index.esm.js +2 -2
  358. package/dist/layout/index.js +2 -2
  359. package/dist/layout/sidebarScreen/index.esm.js +1 -1
  360. package/dist/layout/sidebarScreen/index.js +1 -1
  361. package/dist/runtime/index.esm.js +2 -2
  362. package/dist/runtime/index.js +2 -2
  363. package/dist/src/constants/defaultColumns.d.ts +1 -0
  364. package/dist/src/constants/pathnames/pathname.procurement.d.ts +4 -0
  365. package/dist/utils/export-filters/index.esm.js +1 -0
  366. package/dist/utils/export-filters/index.esm.js.map +1 -1
  367. package/dist/utils/export-filters/index.js +1 -0
  368. package/dist/utils/export-filters/index.js.map +1 -1
  369. package/dist/views/afterAuth/dashboard/index.esm.js +1 -1
  370. package/dist/views/afterAuth/dashboard/index.js +1 -1
  371. package/dist/views/afterAuth/index.esm.js +2 -2
  372. package/dist/views/afterAuth/index.js +2 -2
  373. package/dist/views/afterAuth/page-view/index.esm.js +1 -1
  374. package/dist/views/afterAuth/page-view/index.js +1 -1
  375. package/dist/views/form-builder/custom-form/index.esm.js +1 -1
  376. package/dist/views/form-builder/custom-form/index.js +1 -1
  377. package/dist/views/form-builder/form-fields/index.esm.js +1 -1
  378. package/dist/views/form-builder/form-fields/index.js +1 -1
  379. package/dist/views/form-builder/index.esm.js +3 -3
  380. package/dist/views/form-builder/index.js +3 -3
  381. package/dist/views/form-builder/utils/index.esm.js +1 -1
  382. package/dist/views/form-builder/utils/index.js +1 -1
  383. package/dist/views/index.esm.js +10 -10
  384. package/dist/views/index.js +10 -10
  385. package/dist/views/template-editor/add-template/index.esm.js +1 -1
  386. package/dist/views/template-editor/add-template/index.js +1 -1
  387. package/dist/views/template-editor/components/index.esm.js +1 -1
  388. package/dist/views/template-editor/components/index.js +1 -1
  389. package/dist/views/template-editor/index.esm.js +5 -5
  390. package/dist/views/template-editor/index.js +5 -5
  391. package/dist/views/template-editor/routes/index.esm.js +1 -1
  392. package/dist/views/template-editor/routes/index.js +1 -1
  393. package/dist/views/template-editor/templates/index.esm.js +1 -1
  394. package/dist/views/template-editor/templates/index.js +1 -1
  395. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"header-CqTEaHw3.js","sources":["../../src/components/header/header.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from \"react\";\nimport { Link, matchRoutes, useLocation } from \"react-router-dom\";\nimport { useTranslation } from \"react-i18next\";\n\nimport modules from \"../../constants/modules\";\nimport { IModule } from \"./types\";\nimport { AppSwitcher } from \"./components/app-switcher\";\nimport { Breadcrumb } from \"./components/breadcrumb\";\nimport { GlobalSearch } from \"./components/global-search\";\nimport { LanguageSwitch } from \"./components/language-switch\";\nimport { NotificationMenu } from \"./components/notification-menu\";\nimport { UserMenu } from \"./components/user-menu\";\nimport { useAuth } from '@erpsquad/common/runtime';\nimport { getApiConfigSafe } from \"../../utils/api-config\";\nimport { images } from \"../../assets/images\";\nimport { Pathname } from \"../../constants/pathnames/pathname\";\nimport { breadcrumbSegmentLabelMap } from \"../../constants/route-page-map\";\nimport \"./header.scss\";\n\nexport function Header(props: { isDropdownShow?: boolean }): React.ReactElement {\n const { t } = useTranslation();\n const location = useLocation();\n const { pathname } = location;\n const { user } = useAuth();\n const appLogo = getApiConfigSafe()?.appLogo || images.logo;\n\n const checkMatchedRoutes = useCallback(\n (paths: string[] | string) => {\n const shouldMatch: { path: string }[] = Array.isArray(paths)\n ? paths.map((path: string) => ({ path }))\n : [{ path: paths }];\n return Boolean(matchRoutes(shouldMatch, location));\n },\n [location],\n );\n\n const erp_modules = useMemo<IModule[]>(() => {\n const allModules = modules(t);\n\n const u_data = localStorage.getItem(\"_u_data\");\n const userData = u_data ? JSON.parse(u_data) : null;\n const accessModules: { module_name: string }[] =\n userData?.module_access?.length > 0\n ? userData.module_access\n : [{ module_name: \"user\" }];\n\n // Stage 1: filter by module_access\n const stage1 = allModules.filter((m) =>\n m.beModuleName === \"rbac\" ||\n accessModules.some((a: { module_name: string }) => a.module_name === m.beModuleName)\n );\n\n // Stage 2: filter by role-permission.modules\n const rolePermission = localStorage.getItem(\"role-permission\");\n const permissions: string[] =\n rolePermission && JSON.parse(rolePermission)?.modules\n ? JSON.parse(rolePermission).modules\n : [];\n\n if (!permissions.length) return stage1;\n return stage1.filter((m) => permissions.includes(m.beModuleName));\n }, [t]);\n\n const selectedModule = useMemo<IModule | null>(() => {\n const byRoute = erp_modules.find(\n (module: IModule) =>\n module?.link?.toLowerCase() === pathname.toLowerCase() ||\n checkMatchedRoutes(module.connectedRoutes),\n );\n if (byRoute) return byRoute;\n return erp_modules.find(\n (module: IModule) =>\n module.link.length > 1 &&\n pathname.toLowerCase().startsWith(module.link.toLowerCase() + \"/\"),\n ) || null;\n }, [erp_modules, pathname, checkMatchedRoutes]);\n\n const breadcrumbSegments = useMemo(() => {\n if (!selectedModule) return [];\n const base = selectedModule.link;\n const rest = pathname.toLowerCase().startsWith(base.toLowerCase())\n ? pathname.slice(base.length)\n : pathname;\n const rawSegments = rest.split(\"/\").filter(s => s);\n const routeObjects = selectedModule.connectedRoutes.map(r => ({ path: r }));\n const result: { label: string; path: string; navigable: boolean }[] = [];\n for (let i = 0; i < rawSegments.length; i++) {\n const seg = rawSegments[i];\n if (/^\\d+$/.test(seg)) continue;\n const path = base + \"/\" + rawSegments.slice(0, i + 1).join(\"/\");\n const label = breadcrumbSegmentLabelMap[seg] || seg.split(\"-\").map((w: string) => w.charAt(0).toUpperCase() + w.slice(1)).join(\" \");\n const navigable = Boolean(matchRoutes(routeObjects, { pathname: path }));\n result.push({ label, path, navigable });\n }\n return result.filter(s => Boolean(s && s.label));\n }, [pathname, selectedModule]);\n\n return (\n <div className=\"app-bar\">\n {pathname === Pathname.DASHBOARD && (\n <Link style={{ marginTop: \"0.25rem\" }} to={user ? Pathname.DASHBOARD : Pathname.LOGIN}>\n <img src={appLogo} alt=\"logo\" height={55} />\n </Link>\n )}\n {pathname !== Pathname.DASHBOARD && (\n <>\n <AppSwitcher erp_modules={erp_modules} selectedModule={selectedModule} />\n <div className=\"ab-divider\" />\n </>\n )}\n <Breadcrumb selectedModule={selectedModule} segments={breadcrumbSegments} />\n <div style={{ flex: 1 }} />\n <GlobalSearch />\n <div className=\"notif-wrap\">\n <NotificationMenu />\n </div>\n <LanguageSwitch />\n <div className=\"v-divider\" />\n <UserMenu />\n </div>\n );\n}\n\nexport default Header;\n"],"names":["useTranslation","useLocation","pathname","useAuth","getApiConfigSafe","images","useCallback","matchRoutes","useMemo","modules","_a","module","breadcrumbSegmentLabelMap","jsxs","Pathname","jsx","Link","Fragment","AppSwitcher","Breadcrumb","GlobalSearch","NotificationMenu","LanguageSwitch","UserMenu"],"mappings":";;;;;;;;;;;;;;;;;;AAmBO,SAAS,OAAO,OAAyD;;AAC9E,QAAM,EAAE,EAAA,IAAMA,4BAAA;AACd,QAAM,WAAWC,eAAAA,YAAA;AACjB,QAAM,EAAA,UAAEC,eAAa;AACrB,QAAM,EAAE,KAAA,IAASC,gBAAA;AACjB,QAAM,YAAUC,qBAAAA,iBAAA,MAAAA,mBAAoB,YAAWC,OAAAA,QAAO;AAEtD,QAAM,qBAAqBC,MAAAA;AAAAA,IACzB,CAAC,UAA6B;AAC5B,YAAM,cAAkC,MAAM,QAAQ,KAAK,IACvD,MAAM,IAAI,CAAC,UAAkB,EAAE,OAAO,IACtC,CAAC,EAAE,MAAM,OAAO;AACpB,aAAO,QAAQC,eAAAA,YAAY,aAAa,QAAQ,CAAC;AAAA,IACnD;AAAA,IACA,CAAC,QAAQ;AAAA,EAAA;AAGX,QAAM,cAAcC,MAAAA,QAAmB,MAAM;;AAC3C,UAAM,aAAaC,QAAAA,QAAQ,CAAC;AAE5B,UAAM,SAAS,aAAa,QAAQ,SAAS;AAC7C,UAAM,WAAW,SAAS,KAAK,MAAM,MAAM,IAAI;AAC/C,UAAM,kBACJC,MAAA,qCAAU,kBAAV,gBAAAA,IAAyB,UAAS,IAC9B,SAAS,gBACT,CAAC,EAAE,aAAa,OAAA,CAAQ;AAG9B,UAAM,SAAS,WAAW;AAAA,MAAO,CAAC,MAChC,EAAE,iBAAiB,UACnB,cAAc,KAAK,CAAC,MAA+B,EAAE,gBAAgB,EAAE,YAAY;AAAA,IAAA;AAIrF,UAAM,iBAAiB,aAAa,QAAQ,iBAAiB;AAC7D,UAAM,cACJ,oBAAkB,UAAK,MAAM,cAAc,MAAzB,mBAA4B,WAC1C,KAAK,MAAM,cAAc,EAAE,UAC3B,CAAA;AAEN,QAAI,CAAC,YAAY,OAAQ,QAAO;AAChC,WAAO,OAAO,OAAO,CAAC,MAAM,YAAY,SAAS,EAAE,YAAY,CAAC;AAAA,EAClE,GAAG,CAAC,CAAC,CAAC;AAEN,QAAM,iBAAiBF,MAAAA,QAAwB,MAAM;AACnD,UAAM,UAAU,YAAY;AAAA,MAC1B,CAACG,YAAA;;AACC,iBAAAD,MAAAC,WAAA,gBAAAA,QAAQ,SAAR,gBAAAD,IAAc,mBAAkBR,WAAS,YAAA,KACzC,mBAAmBS,QAAO,eAAe;AAAA;AAAA,IAAA;AAE7C,QAAI,QAAS,QAAO;AACpB,WAAO,YAAY;AAAA,MACjB,CAACA,YACCA,QAAO,KAAK,SAAS,KACrBT,WAAS,YAAA,EAAc,WAAWS,QAAO,KAAK,YAAA,IAAgB,GAAG;AAAA,IAAA,KAChE;AAAA,EACP,GAAG,CAAC,aAAaT,YAAU,kBAAkB,CAAC;AAE9C,QAAM,qBAAqBM,MAAAA,QAAQ,MAAM;AACvC,QAAI,CAAC,eAAgB,QAAO,CAAA;AAC5B,UAAM,OAAO,eAAe;AAC5B,UAAM,OAAON,WAAS,YAAA,EAAc,WAAW,KAAK,YAAA,CAAa,IAC7DA,WAAS,MAAM,KAAK,MAAM,IAC1BA;AACJ,UAAM,cAAc,KAAK,MAAM,GAAG,EAAE,OAAO,OAAK,CAAC;AACjD,UAAM,eAAe,eAAe,gBAAgB,IAAI,QAAM,EAAE,MAAM,IAAI;AAC1E,UAAM,SAAgE,CAAA;AACtE,aAAS,IAAI,GAAG,IAAI,YAAY,QAAQ,KAAK;AAC3C,YAAM,MAAM,YAAY,CAAC;AACzB,UAAI,QAAQ,KAAK,GAAG,EAAG;AACvB,YAAM,OAAO,OAAO,MAAM,YAAY,MAAM,GAAG,IAAI,CAAC,EAAE,KAAK,GAAG;AAC9D,YAAM,QAAQU,uCAA0B,GAAG,KAAK,IAAI,MAAM,GAAG,EAAE,IAAI,CAAC,MAAc,EAAE,OAAO,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK,GAAG;AAClI,YAAM,YAAY,QAAQL,eAAAA,YAAY,cAAc,EAAE,UAAU,KAAA,CAAM,CAAC;AACvE,aAAO,KAAK,EAAE,OAAO,MAAM,WAAW;AAAA,IACxC;AACA,WAAO,OAAO,OAAO,CAAA,MAAK,QAAQ,KAAK,EAAE,KAAK,CAAC;AAAA,EACjD,GAAG,CAACL,YAAU,cAAc,CAAC;AAE7B,SACEW,2BAAAA,KAAC,OAAA,EAAI,WAAU,WACZ,UAAA;AAAA,IAAAX,eAAaY,SAAAA,SAAS,aACrBC,2BAAAA,IAACC,eAAAA,MAAA,EAAK,OAAO,EAAE,WAAW,UAAA,GAAa,IAAI,OAAOF,SAAAA,SAAS,YAAYA,SAAAA,SAAS,OAC9E,UAAAC,+BAAC,OAAA,EAAI,KAAK,SAAS,KAAI,QAAO,QAAQ,GAAA,CAAI,EAAA,CAC5C;AAAA,IAEDb,eAAaY,SAAAA,SAAS,aACrBD,2BAAAA,KAAAI,WAAAA,UAAA,EACE,UAAA;AAAA,MAAAF,2BAAAA,IAACG,YAAAA,aAAA,EAAY,aAA0B,eAAA,CAAgC;AAAA,MACvEH,2BAAAA,IAAC,OAAA,EAAI,WAAU,aAAA,CAAa;AAAA,IAAA,GAC9B;AAAA,IAEFA,2BAAAA,IAACI,WAAAA,YAAA,EAAW,gBAAgC,UAAU,mBAAA,CAAoB;AAAA,mCACzE,OAAA,EAAI,OAAO,EAAE,MAAM,KAAK;AAAA,mCACxBC,aAAAA,cAAA,EAAa;AAAA,mCACb,OAAA,EAAI,WAAU,cACb,UAAAL,+BAACM,iBAAAA,oBAAiB,GACpB;AAAA,mCACCC,eAAAA,gBAAA,EAAe;AAAA,IAChBP,2BAAAA,IAAC,OAAA,EAAI,WAAU,YAAA,CAAY;AAAA,mCAC1BQ,SAAAA,UAAA,CAAA,CAAS;AAAA,EAAA,GACZ;AAEJ;;"}
1
+ {"version":3,"file":"header-DQ_e75rt.js","sources":["../../src/components/header/header.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from \"react\";\nimport { Link, matchRoutes, useLocation } from \"react-router-dom\";\nimport { useTranslation } from \"react-i18next\";\n\nimport modules from \"../../constants/modules\";\nimport { IModule } from \"./types\";\nimport { AppSwitcher } from \"./components/app-switcher\";\nimport { Breadcrumb } from \"./components/breadcrumb\";\nimport { GlobalSearch } from \"./components/global-search\";\nimport { LanguageSwitch } from \"./components/language-switch\";\nimport { NotificationMenu } from \"./components/notification-menu\";\nimport { UserMenu } from \"./components/user-menu\";\nimport { useAuth } from '@erpsquad/common/runtime';\nimport { getApiConfigSafe } from \"../../utils/api-config\";\nimport { images } from \"../../assets/images\";\nimport { Pathname } from \"../../constants/pathnames/pathname\";\nimport { breadcrumbSegmentLabelMap } from \"../../constants/route-page-map\";\nimport \"./header.scss\";\n\nexport function Header(props: { isDropdownShow?: boolean }): React.ReactElement {\n const { t } = useTranslation();\n const location = useLocation();\n const { pathname } = location;\n const { user } = useAuth();\n const appLogo = getApiConfigSafe()?.appLogo || images.logo;\n\n const checkMatchedRoutes = useCallback(\n (paths: string[] | string) => {\n const shouldMatch: { path: string }[] = Array.isArray(paths)\n ? paths.map((path: string) => ({ path }))\n : [{ path: paths }];\n return Boolean(matchRoutes(shouldMatch, location));\n },\n [location],\n );\n\n const erp_modules = useMemo<IModule[]>(() => {\n const allModules = modules(t);\n\n const u_data = localStorage.getItem(\"_u_data\");\n const userData = u_data ? JSON.parse(u_data) : null;\n const accessModules: { module_name: string }[] =\n userData?.module_access?.length > 0\n ? userData.module_access\n : [{ module_name: \"user\" }];\n\n // Stage 1: filter by module_access\n const stage1 = allModules.filter((m) =>\n m.beModuleName === \"rbac\" ||\n accessModules.some((a: { module_name: string }) => a.module_name === m.beModuleName)\n );\n\n // Stage 2: filter by role-permission.modules\n const rolePermission = localStorage.getItem(\"role-permission\");\n const permissions: string[] =\n rolePermission && JSON.parse(rolePermission)?.modules\n ? JSON.parse(rolePermission).modules\n : [];\n\n if (!permissions.length) return stage1;\n return stage1.filter((m) => permissions.includes(m.beModuleName));\n }, [t]);\n\n const selectedModule = useMemo<IModule | null>(() => {\n const byRoute = erp_modules.find(\n (module: IModule) =>\n module?.link?.toLowerCase() === pathname.toLowerCase() ||\n checkMatchedRoutes(module.connectedRoutes),\n );\n if (byRoute) return byRoute;\n return erp_modules.find(\n (module: IModule) =>\n module.link.length > 1 &&\n pathname.toLowerCase().startsWith(module.link.toLowerCase() + \"/\"),\n ) || null;\n }, [erp_modules, pathname, checkMatchedRoutes]);\n\n const breadcrumbSegments = useMemo(() => {\n if (!selectedModule) return [];\n const base = selectedModule.link;\n const rest = pathname.toLowerCase().startsWith(base.toLowerCase())\n ? pathname.slice(base.length)\n : pathname;\n const rawSegments = rest.split(\"/\").filter(s => s);\n const routeObjects = selectedModule.connectedRoutes.map(r => ({ path: r }));\n const result: { label: string; path: string; navigable: boolean }[] = [];\n for (let i = 0; i < rawSegments.length; i++) {\n const seg = rawSegments[i];\n if (/^\\d+$/.test(seg)) continue;\n const path = base + \"/\" + rawSegments.slice(0, i + 1).join(\"/\");\n const label = breadcrumbSegmentLabelMap[seg] || seg.split(\"-\").map((w: string) => w.charAt(0).toUpperCase() + w.slice(1)).join(\" \");\n const navigable = Boolean(matchRoutes(routeObjects, { pathname: path }));\n result.push({ label, path, navigable });\n }\n return result.filter(s => Boolean(s && s.label));\n }, [pathname, selectedModule]);\n\n return (\n <div className=\"app-bar\">\n {pathname === Pathname.DASHBOARD && (\n <Link style={{ marginTop: \"0.25rem\" }} to={user ? Pathname.DASHBOARD : Pathname.LOGIN}>\n <img src={appLogo} alt=\"logo\" height={55} />\n </Link>\n )}\n {pathname !== Pathname.DASHBOARD && (\n <>\n <AppSwitcher erp_modules={erp_modules} selectedModule={selectedModule} />\n <div className=\"ab-divider\" />\n </>\n )}\n <Breadcrumb selectedModule={selectedModule} segments={breadcrumbSegments} />\n <div style={{ flex: 1 }} />\n <GlobalSearch />\n <div className=\"notif-wrap\">\n <NotificationMenu />\n </div>\n <LanguageSwitch />\n <div className=\"v-divider\" />\n <UserMenu />\n </div>\n );\n}\n\nexport default Header;\n"],"names":["useTranslation","useLocation","pathname","useAuth","getApiConfigSafe","images","useCallback","matchRoutes","useMemo","modules","_a","module","breadcrumbSegmentLabelMap","jsxs","Pathname","jsx","Link","Fragment","AppSwitcher","Breadcrumb","GlobalSearch","NotificationMenu","LanguageSwitch","UserMenu"],"mappings":"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"}
@@ -2,18 +2,18 @@ import { jsxs, jsx, Fragment } from "react/jsx-runtime";
2
2
  import { useCallback, useMemo } from "react";
3
3
  import { useLocation, matchRoutes, Link } from "react-router-dom";
4
4
  import { useTranslation } from "react-i18next";
5
- import { m as modules } from "./modules-enwLrpfQ.esm.js";
6
- import { A as AppSwitcher } from "./app-switcher-B6eapuGG.esm.js";
5
+ import { m as modules } from "./modules-CWV4WSHs.esm.js";
6
+ import { A as AppSwitcher } from "./app-switcher-D-Bvz9uO.esm.js";
7
7
  import { B as Breadcrumb } from "./breadcrumb-BO3RBo3f.esm.js";
8
- import { G as GlobalSearch } from "./global-search-DCsutWXD.esm.js";
8
+ import { G as GlobalSearch } from "./global-search-BOkxXiZ0.esm.js";
9
9
  import { L as LanguageSwitch } from "./language-switch-D8MsYvhw.esm.js";
10
- import { N as NotificationMenu } from "./notification-menu-B_4BOTgX.esm.js";
10
+ import { N as NotificationMenu } from "./notification-menu-XAadkn-e.esm.js";
11
11
  import { U as UserMenu } from "./user-menu-BOV3egnJ.esm.js";
12
12
  import { useAuth } from "@erpsquad/common/runtime";
13
13
  import { getApiConfigSafe } from "../utils/api-config/index.esm.js";
14
14
  import images from "../images/index.esm.js";
15
15
  import { P as Pathname } from "./pathname-DkK1_yYM.esm.js";
16
- import { o as breadcrumbSegmentLabelMap } from "./route-page-map-CSg28AvB.esm.js";
16
+ import { o as breadcrumbSegmentLabelMap } from "./route-page-map-DkWoisiB.esm.js";
17
17
  /* empty css */
18
18
  function Header(props) {
19
19
  var _a;
@@ -90,4 +90,4 @@ function Header(props) {
90
90
  export {
91
91
  Header as H
92
92
  };
93
- //# sourceMappingURL=header-I2izTvvZ.esm.js.map
93
+ //# sourceMappingURL=header-D_pPOjdz.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"header-I2izTvvZ.esm.js","sources":["../../src/components/header/header.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from \"react\";\nimport { Link, matchRoutes, useLocation } from \"react-router-dom\";\nimport { useTranslation } from \"react-i18next\";\n\nimport modules from \"../../constants/modules\";\nimport { IModule } from \"./types\";\nimport { AppSwitcher } from \"./components/app-switcher\";\nimport { Breadcrumb } from \"./components/breadcrumb\";\nimport { GlobalSearch } from \"./components/global-search\";\nimport { LanguageSwitch } from \"./components/language-switch\";\nimport { NotificationMenu } from \"./components/notification-menu\";\nimport { UserMenu } from \"./components/user-menu\";\nimport { useAuth } from '@erpsquad/common/runtime';\nimport { getApiConfigSafe } from \"../../utils/api-config\";\nimport { images } from \"../../assets/images\";\nimport { Pathname } from \"../../constants/pathnames/pathname\";\nimport { breadcrumbSegmentLabelMap } from \"../../constants/route-page-map\";\nimport \"./header.scss\";\n\nexport function Header(props: { isDropdownShow?: boolean }): React.ReactElement {\n const { t } = useTranslation();\n const location = useLocation();\n const { pathname } = location;\n const { user } = useAuth();\n const appLogo = getApiConfigSafe()?.appLogo || images.logo;\n\n const checkMatchedRoutes = useCallback(\n (paths: string[] | string) => {\n const shouldMatch: { path: string }[] = Array.isArray(paths)\n ? paths.map((path: string) => ({ path }))\n : [{ path: paths }];\n return Boolean(matchRoutes(shouldMatch, location));\n },\n [location],\n );\n\n const erp_modules = useMemo<IModule[]>(() => {\n const allModules = modules(t);\n\n const u_data = localStorage.getItem(\"_u_data\");\n const userData = u_data ? JSON.parse(u_data) : null;\n const accessModules: { module_name: string }[] =\n userData?.module_access?.length > 0\n ? userData.module_access\n : [{ module_name: \"user\" }];\n\n // Stage 1: filter by module_access\n const stage1 = allModules.filter((m) =>\n m.beModuleName === \"rbac\" ||\n accessModules.some((a: { module_name: string }) => a.module_name === m.beModuleName)\n );\n\n // Stage 2: filter by role-permission.modules\n const rolePermission = localStorage.getItem(\"role-permission\");\n const permissions: string[] =\n rolePermission && JSON.parse(rolePermission)?.modules\n ? JSON.parse(rolePermission).modules\n : [];\n\n if (!permissions.length) return stage1;\n return stage1.filter((m) => permissions.includes(m.beModuleName));\n }, [t]);\n\n const selectedModule = useMemo<IModule | null>(() => {\n const byRoute = erp_modules.find(\n (module: IModule) =>\n module?.link?.toLowerCase() === pathname.toLowerCase() ||\n checkMatchedRoutes(module.connectedRoutes),\n );\n if (byRoute) return byRoute;\n return erp_modules.find(\n (module: IModule) =>\n module.link.length > 1 &&\n pathname.toLowerCase().startsWith(module.link.toLowerCase() + \"/\"),\n ) || null;\n }, [erp_modules, pathname, checkMatchedRoutes]);\n\n const breadcrumbSegments = useMemo(() => {\n if (!selectedModule) return [];\n const base = selectedModule.link;\n const rest = pathname.toLowerCase().startsWith(base.toLowerCase())\n ? pathname.slice(base.length)\n : pathname;\n const rawSegments = rest.split(\"/\").filter(s => s);\n const routeObjects = selectedModule.connectedRoutes.map(r => ({ path: r }));\n const result: { label: string; path: string; navigable: boolean }[] = [];\n for (let i = 0; i < rawSegments.length; i++) {\n const seg = rawSegments[i];\n if (/^\\d+$/.test(seg)) continue;\n const path = base + \"/\" + rawSegments.slice(0, i + 1).join(\"/\");\n const label = breadcrumbSegmentLabelMap[seg] || seg.split(\"-\").map((w: string) => w.charAt(0).toUpperCase() + w.slice(1)).join(\" \");\n const navigable = Boolean(matchRoutes(routeObjects, { pathname: path }));\n result.push({ label, path, navigable });\n }\n return result.filter(s => Boolean(s && s.label));\n }, [pathname, selectedModule]);\n\n return (\n <div className=\"app-bar\">\n {pathname === Pathname.DASHBOARD && (\n <Link style={{ marginTop: \"0.25rem\" }} to={user ? Pathname.DASHBOARD : Pathname.LOGIN}>\n <img src={appLogo} alt=\"logo\" height={55} />\n </Link>\n )}\n {pathname !== Pathname.DASHBOARD && (\n <>\n <AppSwitcher erp_modules={erp_modules} selectedModule={selectedModule} />\n <div className=\"ab-divider\" />\n </>\n )}\n <Breadcrumb selectedModule={selectedModule} segments={breadcrumbSegments} />\n <div style={{ flex: 1 }} />\n <GlobalSearch />\n <div className=\"notif-wrap\">\n <NotificationMenu />\n </div>\n <LanguageSwitch />\n <div className=\"v-divider\" />\n <UserMenu />\n </div>\n );\n}\n\nexport default Header;\n"],"names":["_a"],"mappings":";;;;;;;;;;;;;;;;;AAmBO,SAAS,OAAO,OAAyD;;AAC9E,QAAM,EAAE,EAAA,IAAM,eAAA;AACd,QAAM,WAAW,YAAA;AACjB,QAAM,EAAE,aAAa;AACrB,QAAM,EAAE,KAAA,IAAS,QAAA;AACjB,QAAM,YAAU,sBAAA,MAAA,mBAAoB,YAAW,OAAO;AAEtD,QAAM,qBAAqB;AAAA,IACzB,CAAC,UAA6B;AAC5B,YAAM,cAAkC,MAAM,QAAQ,KAAK,IACvD,MAAM,IAAI,CAAC,UAAkB,EAAE,OAAO,IACtC,CAAC,EAAE,MAAM,OAAO;AACpB,aAAO,QAAQ,YAAY,aAAa,QAAQ,CAAC;AAAA,IACnD;AAAA,IACA,CAAC,QAAQ;AAAA,EAAA;AAGX,QAAM,cAAc,QAAmB,MAAM;;AAC3C,UAAM,aAAa,QAAQ,CAAC;AAE5B,UAAM,SAAS,aAAa,QAAQ,SAAS;AAC7C,UAAM,WAAW,SAAS,KAAK,MAAM,MAAM,IAAI;AAC/C,UAAM,kBACJA,MAAA,qCAAU,kBAAV,gBAAAA,IAAyB,UAAS,IAC9B,SAAS,gBACT,CAAC,EAAE,aAAa,OAAA,CAAQ;AAG9B,UAAM,SAAS,WAAW;AAAA,MAAO,CAAC,MAChC,EAAE,iBAAiB,UACnB,cAAc,KAAK,CAAC,MAA+B,EAAE,gBAAgB,EAAE,YAAY;AAAA,IAAA;AAIrF,UAAM,iBAAiB,aAAa,QAAQ,iBAAiB;AAC7D,UAAM,cACJ,oBAAkB,UAAK,MAAM,cAAc,MAAzB,mBAA4B,WAC1C,KAAK,MAAM,cAAc,EAAE,UAC3B,CAAA;AAEN,QAAI,CAAC,YAAY,OAAQ,QAAO;AAChC,WAAO,OAAO,OAAO,CAAC,MAAM,YAAY,SAAS,EAAE,YAAY,CAAC;AAAA,EAClE,GAAG,CAAC,CAAC,CAAC;AAEN,QAAM,iBAAiB,QAAwB,MAAM;AACnD,UAAM,UAAU,YAAY;AAAA,MAC1B,CAAC,WAAA;;AACC,iBAAAA,MAAA,iCAAQ,SAAR,gBAAAA,IAAc,mBAAkB,SAAS,YAAA,KACzC,mBAAmB,OAAO,eAAe;AAAA;AAAA,IAAA;AAE7C,QAAI,QAAS,QAAO;AACpB,WAAO,YAAY;AAAA,MACjB,CAAC,WACC,OAAO,KAAK,SAAS,KACrB,SAAS,YAAA,EAAc,WAAW,OAAO,KAAK,YAAA,IAAgB,GAAG;AAAA,IAAA,KAChE;AAAA,EACP,GAAG,CAAC,aAAa,UAAU,kBAAkB,CAAC;AAE9C,QAAM,qBAAqB,QAAQ,MAAM;AACvC,QAAI,CAAC,eAAgB,QAAO,CAAA;AAC5B,UAAM,OAAO,eAAe;AAC5B,UAAM,OAAO,SAAS,YAAA,EAAc,WAAW,KAAK,YAAA,CAAa,IAC7D,SAAS,MAAM,KAAK,MAAM,IAC1B;AACJ,UAAM,cAAc,KAAK,MAAM,GAAG,EAAE,OAAO,OAAK,CAAC;AACjD,UAAM,eAAe,eAAe,gBAAgB,IAAI,QAAM,EAAE,MAAM,IAAI;AAC1E,UAAM,SAAgE,CAAA;AACtE,aAAS,IAAI,GAAG,IAAI,YAAY,QAAQ,KAAK;AAC3C,YAAM,MAAM,YAAY,CAAC;AACzB,UAAI,QAAQ,KAAK,GAAG,EAAG;AACvB,YAAM,OAAO,OAAO,MAAM,YAAY,MAAM,GAAG,IAAI,CAAC,EAAE,KAAK,GAAG;AAC9D,YAAM,QAAQ,0BAA0B,GAAG,KAAK,IAAI,MAAM,GAAG,EAAE,IAAI,CAAC,MAAc,EAAE,OAAO,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK,GAAG;AAClI,YAAM,YAAY,QAAQ,YAAY,cAAc,EAAE,UAAU,KAAA,CAAM,CAAC;AACvE,aAAO,KAAK,EAAE,OAAO,MAAM,WAAW;AAAA,IACxC;AACA,WAAO,OAAO,OAAO,CAAA,MAAK,QAAQ,KAAK,EAAE,KAAK,CAAC;AAAA,EACjD,GAAG,CAAC,UAAU,cAAc,CAAC;AAE7B,SACE,qBAAC,OAAA,EAAI,WAAU,WACZ,UAAA;AAAA,IAAA,aAAa,SAAS,aACrB,oBAAC,MAAA,EAAK,OAAO,EAAE,WAAW,UAAA,GAAa,IAAI,OAAO,SAAS,YAAY,SAAS,OAC9E,UAAA,oBAAC,OAAA,EAAI,KAAK,SAAS,KAAI,QAAO,QAAQ,GAAA,CAAI,EAAA,CAC5C;AAAA,IAED,aAAa,SAAS,aACrB,qBAAA,UAAA,EACE,UAAA;AAAA,MAAA,oBAAC,aAAA,EAAY,aAA0B,eAAA,CAAgC;AAAA,MACvE,oBAAC,OAAA,EAAI,WAAU,aAAA,CAAa;AAAA,IAAA,GAC9B;AAAA,IAEF,oBAAC,YAAA,EAAW,gBAAgC,UAAU,mBAAA,CAAoB;AAAA,wBACzE,OAAA,EAAI,OAAO,EAAE,MAAM,KAAK;AAAA,wBACxB,cAAA,EAAa;AAAA,wBACb,OAAA,EAAI,WAAU,cACb,UAAA,oBAAC,oBAAiB,GACpB;AAAA,wBACC,gBAAA,EAAe;AAAA,IAChB,oBAAC,OAAA,EAAI,WAAU,YAAA,CAAY;AAAA,wBAC1B,UAAA,CAAA,CAAS;AAAA,EAAA,GACZ;AAEJ;"}
1
+ {"version":3,"file":"header-D_pPOjdz.esm.js","sources":["../../src/components/header/header.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from \"react\";\nimport { Link, matchRoutes, useLocation } from \"react-router-dom\";\nimport { useTranslation } from \"react-i18next\";\n\nimport modules from \"../../constants/modules\";\nimport { IModule } from \"./types\";\nimport { AppSwitcher } from \"./components/app-switcher\";\nimport { Breadcrumb } from \"./components/breadcrumb\";\nimport { GlobalSearch } from \"./components/global-search\";\nimport { LanguageSwitch } from \"./components/language-switch\";\nimport { NotificationMenu } from \"./components/notification-menu\";\nimport { UserMenu } from \"./components/user-menu\";\nimport { useAuth } from '@erpsquad/common/runtime';\nimport { getApiConfigSafe } from \"../../utils/api-config\";\nimport { images } from \"../../assets/images\";\nimport { Pathname } from \"../../constants/pathnames/pathname\";\nimport { breadcrumbSegmentLabelMap } from \"../../constants/route-page-map\";\nimport \"./header.scss\";\n\nexport function Header(props: { isDropdownShow?: boolean }): React.ReactElement {\n const { t } = useTranslation();\n const location = useLocation();\n const { pathname } = location;\n const { user } = useAuth();\n const appLogo = getApiConfigSafe()?.appLogo || images.logo;\n\n const checkMatchedRoutes = useCallback(\n (paths: string[] | string) => {\n const shouldMatch: { path: string }[] = Array.isArray(paths)\n ? paths.map((path: string) => ({ path }))\n : [{ path: paths }];\n return Boolean(matchRoutes(shouldMatch, location));\n },\n [location],\n );\n\n const erp_modules = useMemo<IModule[]>(() => {\n const allModules = modules(t);\n\n const u_data = localStorage.getItem(\"_u_data\");\n const userData = u_data ? JSON.parse(u_data) : null;\n const accessModules: { module_name: string }[] =\n userData?.module_access?.length > 0\n ? userData.module_access\n : [{ module_name: \"user\" }];\n\n // Stage 1: filter by module_access\n const stage1 = allModules.filter((m) =>\n m.beModuleName === \"rbac\" ||\n accessModules.some((a: { module_name: string }) => a.module_name === m.beModuleName)\n );\n\n // Stage 2: filter by role-permission.modules\n const rolePermission = localStorage.getItem(\"role-permission\");\n const permissions: string[] =\n rolePermission && JSON.parse(rolePermission)?.modules\n ? JSON.parse(rolePermission).modules\n : [];\n\n if (!permissions.length) return stage1;\n return stage1.filter((m) => permissions.includes(m.beModuleName));\n }, [t]);\n\n const selectedModule = useMemo<IModule | null>(() => {\n const byRoute = erp_modules.find(\n (module: IModule) =>\n module?.link?.toLowerCase() === pathname.toLowerCase() ||\n checkMatchedRoutes(module.connectedRoutes),\n );\n if (byRoute) return byRoute;\n return erp_modules.find(\n (module: IModule) =>\n module.link.length > 1 &&\n pathname.toLowerCase().startsWith(module.link.toLowerCase() + \"/\"),\n ) || null;\n }, [erp_modules, pathname, checkMatchedRoutes]);\n\n const breadcrumbSegments = useMemo(() => {\n if (!selectedModule) return [];\n const base = selectedModule.link;\n const rest = pathname.toLowerCase().startsWith(base.toLowerCase())\n ? pathname.slice(base.length)\n : pathname;\n const rawSegments = rest.split(\"/\").filter(s => s);\n const routeObjects = selectedModule.connectedRoutes.map(r => ({ path: r }));\n const result: { label: string; path: string; navigable: boolean }[] = [];\n for (let i = 0; i < rawSegments.length; i++) {\n const seg = rawSegments[i];\n if (/^\\d+$/.test(seg)) continue;\n const path = base + \"/\" + rawSegments.slice(0, i + 1).join(\"/\");\n const label = breadcrumbSegmentLabelMap[seg] || seg.split(\"-\").map((w: string) => w.charAt(0).toUpperCase() + w.slice(1)).join(\" \");\n const navigable = Boolean(matchRoutes(routeObjects, { pathname: path }));\n result.push({ label, path, navigable });\n }\n return result.filter(s => Boolean(s && s.label));\n }, [pathname, selectedModule]);\n\n return (\n <div className=\"app-bar\">\n {pathname === Pathname.DASHBOARD && (\n <Link style={{ marginTop: \"0.25rem\" }} to={user ? Pathname.DASHBOARD : Pathname.LOGIN}>\n <img src={appLogo} alt=\"logo\" height={55} />\n </Link>\n )}\n {pathname !== Pathname.DASHBOARD && (\n <>\n <AppSwitcher erp_modules={erp_modules} selectedModule={selectedModule} />\n <div className=\"ab-divider\" />\n </>\n )}\n <Breadcrumb selectedModule={selectedModule} segments={breadcrumbSegments} />\n <div style={{ flex: 1 }} />\n <GlobalSearch />\n <div className=\"notif-wrap\">\n <NotificationMenu />\n </div>\n <LanguageSwitch />\n <div className=\"v-divider\" />\n <UserMenu />\n </div>\n );\n}\n\nexport default Header;\n"],"names":["_a"],"mappings":"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"}
@@ -9,14 +9,14 @@ const KeyboardBackspaceIcon = require("@mui/icons-material/KeyboardBackspace");
9
9
  const typography = require("./typography-Bqfr1Ksf.js");
10
10
  const images = require("../images/index.js");
11
11
  const select = require("./select-xEdBPnWK.js");
12
- const modules = require("./modules-DTRr7zwt.js");
12
+ const modules = require("./modules-BZNWOWrz.js");
13
13
  const avatar = require("./avatar-xHKDflhM.js");
14
14
  const runtime = require("@erpsquad/common/runtime");
15
15
  const confirmModal = require("./confirm-modal-BpCtXddt.js");
16
16
  const utils_formatText = require("../utils/format-text/index.js");
17
17
  const eye = require("./eye-BM7Zd78y.js");
18
18
  const resetPasswordModal = require("./reset-password-modal-D_hnpcKu.js");
19
- const notificationMenu = require("./notification-menu-B00hDUbn.js");
19
+ const notificationMenu = require("./notification-menu-D7ASm-K1.js");
20
20
  ;/* empty css */
21
21
  const utils_apiConfig = require("../utils/api-config/index.js");
22
22
  const hooks = require("./hooks-BcqqrpEF.js");
@@ -397,4 +397,4 @@ function HeaderEnhanced(props) {
397
397
  ] });
398
398
  }
399
399
  exports.HeaderEnhanced = HeaderEnhanced;
400
- //# sourceMappingURL=header-enhanced-Dxdetx0I.js.map
400
+ //# sourceMappingURL=header-enhanced-DCDMljaN.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"header-enhanced-Dxdetx0I.js","sources":["../../src/components/header/header-enhanced.tsx"],"sourcesContent":["// components/header/Header.tsx - Enhanced version with optional Redux support\nimport React, { useState, useEffect, useCallback } from \"react\";\nimport { Link, matchRoutes, useLocation, useNavigate } from \"react-router-dom\";\nimport { Box } from \"@mui/material\";\nimport { useTranslation } from \"react-i18next\";\nimport LockIcon from \"@mui/icons-material/Lock\";\nimport { IconButton } from \"@mui/material\";\nimport { MenuItem } from \"@mui/material\";\nimport { Menu } from \"@mui/material\";\nimport KeyboardBackspaceIcon from \"@mui/icons-material/KeyboardBackspace\";\nimport { ListItemText } from \"@mui/material\";\nimport { Divider } from \"@mui/material\";\nimport { ListItemIcon } from \"@mui/material\";\n\n// import { Pathname } from \"../../pathname\"; // Removed - should be passed as props\nimport Typography from \"../typography/typography\";\nimport logo, { images } from \"../../assets/images\";\nimport Select from \"../select/select\";\nimport modules from \"../../constants/modules\"; // Removed - should be passed as props\nimport Avatar from \"../avatar/avatar\";\nimport { useAuth } from '@erpsquad/common/runtime';\nimport ConfirmPopUp from \"../confirm-modal/confirm-modal\";\nimport formatText from \"../../utils/format-text\";\nimport { useLanguage } from '@erpsquad/common/runtime';\nimport { Eye } from \"../icons\";\nimport ResetPasswordModal from \"../reset-password-modal/reset-password-modal\";\nimport NotificationMenu from \"./components/notification-menu/notification-menu\";\nimport \"./header.scss\";\nimport { getApiConfig } from \"@/utils\";\nimport { Pathname } from \"@/constants\";\nimport { useAppSelector, useAppDispatch } from '../../redux/hooks';\nimport { fetchLanguages } from '../../redux/slices';\ninterface ILanguage {\n label: string;\n code: string;\n direction: string;\n}\n\ninterface IModule {\n label: any;\n link: string;\n sidebar: string;\n icon: string;\n permission: string;\n bg: string;\n connectedRoutes: string[];\n translationModule: string;\n}\n\n// Enhanced props interface\ninterface HeaderEnhancedProps {\n isDropdownShow?: boolean;\n\n // Language props (alternative to Redux)\n languages?: ILanguage[];\n currentLanguage?: ILanguage;\n languagesLoading?: boolean;\n languageError?: string;\n onLanguageChange?: (languageCode: string) => void;\n onFetchLanguages?: () => Promise<void>;\n\n // Redux integration (optional)\n useRedux?: boolean;\n}\n\nexport function HeaderEnhanced(props: HeaderEnhancedProps): React.ReactElement {\n const {\n isDropdownShow,\n\n // Non-Redux props\n languages: propLanguages = [],\n currentLanguage: propCurrentLanguage,\n languagesLoading: propLanguagesLoading = false,\n languageError: propLanguageError = \"\",\n onLanguageChange,\n onFetchLanguages,\n\n // Redux integration\n useRedux = false,\n } = props;\n\n const navigate = useNavigate();\n const { t } = useTranslation();\n const location = useLocation();\n const { logout, user } = useAuth();\n\n // Conditional Redux usage\n let reduxLanguageState = {\n languages: [],\n currentLanguage: { label: 'English', code: 'en', direction: 'ltr' },\n isLoading: false,\n error: '',\n isFallbackActive: false,\n isRtl: false\n };\n let dispatch: any = null;\n let reduxActions: any = {};\n\n if (useRedux) {\n try {\n // Redux hooks and actions (statically imported)\n\n const headerState = useAppSelector((store: any) => store.header || {});\n dispatch = useAppDispatch();\n reduxActions = { fetchLanguages };\n\n reduxLanguageState = {\n languages: headerState.languagesData?.data || [],\n currentLanguage: headerState.currentLanguage || reduxLanguageState.currentLanguage,\n isLoading: headerState.languagesData?.isLoading || false,\n error: headerState.languagesData?.error || '',\n isFallbackActive: false, // This would need to be computed\n isRtl: headerState.currentLanguage?.direction === 'rtl'\n };\n } catch (error) {\n console.warn(\"Redux not available for Header, falling back to prop-based data\");\n }\n }\n\n // Use Redux data if available, otherwise use props or useLanguage hook\n const {\n languages: hookLanguages,\n currentLanguage: hookCurrentLanguage,\n changeLanguage: hookChangeLanguage,\n isLoading: hookLanguagesLoading,\n error: hookLanguageError,\n isFallbackActive: hookIsFallbackActive,\n fetchLanguages: hookFetchLanguages,\n isRtl: hookIsRtl\n } = useLanguage();\n const config = getApiConfig()\n\n // Determine which data source to use\n const languages = useRedux ? reduxLanguageState.languages : (propLanguages.length > 0 ? propLanguages : hookLanguages);\n const currentLanguage = useRedux ? reduxLanguageState.currentLanguage : (propCurrentLanguage || hookCurrentLanguage);\n const languagesLoading = useRedux ? reduxLanguageState.isLoading : (propLanguagesLoading || hookLanguagesLoading);\n const languageContextError = useRedux ? reduxLanguageState.error : (propLanguageError || hookLanguageError);\n const isFallbackActive = useRedux ? reduxLanguageState.isFallbackActive : hookIsFallbackActive;\n const isRtl = useRedux ? reduxLanguageState.isRtl : hookIsRtl;\n\n const { pathname } = location;\n const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);\n const [logoutConfirmation, setLogoutConfirmation] = useState<boolean>(false);\n const [selectedModule, setSelectedModule] = useState<IModule | null>(null);\n const [erp_modules, setModules] = useState<IModule[]>([]);\n const [localLanguageError, setLocalLanguageError] = useState<string | null>(null);\n const [showModal, setShowModal] = useState(false);\n\n const u_data = localStorage.getItem(\"_u_data\") || undefined;\n const userData = u_data ? JSON.parse(u_data) : \"\";\n const isMenuOpen = Boolean(anchorEl);\n\n const handleLogoutConfirmation = () =>\n setLogoutConfirmation(!logoutConfirmation);\n\n const checkMatchedRoutes = useCallback(\n (paths: string[] | string) => {\n const shouldMatch: { path: string }[] = Array.isArray(paths)\n ? paths.map((path: string) => ({ path }))\n : [{ path: paths }];\n\n return Boolean(matchRoutes(shouldMatch, location));\n },\n [location],\n );\n\n const handleChangePasswordView = () => {\n setShowModal(true);\n }\n\n useEffect(() => {\n const moduleName = erp_modules.find(\n (module: IModule) =>\n module?.link?.toLowerCase() === pathname.toLowerCase() ||\n checkMatchedRoutes(module.connectedRoutes),\n );\n\n if (moduleName) {\n setSelectedModule(moduleName);\n }\n }, [pathname, erp_modules, checkMatchedRoutes]);\n\n useEffect(() => {\n setModules(modules(t));\n }, [t]);\n\n // Enhanced language change handler\n const onChangeLang = (e: React.ChangeEvent<HTMLSelectElement>) => {\n const lang_code = e.target.value;\n\n // Clear any previous errors\n setLocalLanguageError(null);\n\n // Validate the language exists before changing\n if (!languages || languages.length === 0) {\n const errorMsg = t('header.language_not_available') || 'Languages not available';\n setLocalLanguageError(errorMsg);\n return;\n }\n\n const languageExists = languages.some((lang: ILanguage) => lang.code === lang_code);\n\n if (languageExists) {\n try {\n if (useRedux) {\n // Use Redux action (would need to be implemented in the slice)\n // dispatch(setCurrentLanguage({ code: lang_code, ... }));\n } else if (onLanguageChange) {\n onLanguageChange(lang_code);\n } else {\n hookChangeLanguage(lang_code);\n }\n } catch (error) {\n const errorMsg = error instanceof Error ? error.message : 'Failed to change language';\n setLocalLanguageError(errorMsg);\n }\n } else {\n const errorMsg = t('header.language_not_found', { language: lang_code }) ||\n `Selected language \"${lang_code}\" is not available`;\n setLocalLanguageError(errorMsg);\n }\n };\n\n // Retry language loading\n const handleRetryLanguages = async () => {\n setLocalLanguageError(null);\n try {\n if (useRedux && dispatch && reduxActions.fetchLanguages) {\n await dispatch(reduxActions.fetchLanguages());\n } else if (onFetchLanguages) {\n await onFetchLanguages();\n } else {\n await hookFetchLanguages();\n }\n } catch (error) {\n const errorMsg = 'Failed to reload languages';\n setLocalLanguageError(errorMsg);\n }\n };\n\n const handleProfileMenuOpen = (event: React.MouseEvent<HTMLElement>) =>\n setAnchorEl(event.currentTarget);\n\n const handleMenuClose = () => {\n setAnchorEl(null);\n };\n\n const handleChange = (event: any) => {\n const selectedLink = event.target.value;\n setTimeout(() => {\n navigate(selectedLink);\n }, 300);\n };\n\n const handleBackButton = () => {\n window.history.back();\n };\n\n // Get current language display value with fallback indication\n const getCurrentLanguageDisplay = (): string => {\n if (!currentLanguage) return t('header.select_language') || 'Select Language';\n\n // Show fallback indicator for better UX\n if (isFallbackActive || languageContextError) {\n return `${currentLanguage.label}`;\n }\n\n return currentLanguage.label;\n };\n\n // Create English fallback for consistent display\n const createEnglishFallback = (): ILanguage => ({\n code: 'en',\n label: 'English',\n direction: 'ltr'\n });\n\n // Get languages for dropdown - ensure English is always available\n const getLanguagesForDropdown = (): ILanguage[] => {\n if (!languages || languages.length === 0) {\n // If no languages available, show only English\n return [createEnglishFallback()];\n }\n\n // Ensure English is in the list\n const hasEnglish = languages.some(lang => lang.code === 'en');\n if (!hasEnglish) {\n return [createEnglishFallback(), ...languages];\n }\n\n return languages;\n };\n\n // Render language selector based on different states\n const renderLanguageSelector = () => {\n const availableLanguages = getLanguagesForDropdown();\n const displayValue = currentLanguage?.code || 'en'; // Default to English\n\n // Loading state\n if (languagesLoading) {\n return (\n <Box className=\"language-loading\">\n <Typography variant=\"body2\" color=\"text.secondary\">\n {'Loading...'}\n </Typography>\n </Box>\n );\n }\n\n // Always show dropdown with at least English available\n return (\n <Select\n onChange={onChangeLang}\n size=\"small\"\n value={displayValue}\n renderValue={() => getCurrentLanguageDisplay()}\n error={!!localLanguageError}\n className={isFallbackActive || languageContextError ? 'language-fallback-active' : ''}\n >\n {availableLanguages.map(({ code, label }: ILanguage) => (\n <MenuItem key={code} value={code}>\n <Typography\n type=\"s4\"\n weight=\"medium\"\n color=\"theme.secondary.1000\"\n >\n {label}\n </Typography>\n </MenuItem>\n ))}\n\n {/* Show retry option if there's an error */}\n {languageContextError && (\n <MenuItem onClick={handleRetryLanguages} style={{ fontStyle: 'italic' }}>\n <Typography\n type=\"s4\"\n weight=\"medium\"\n color=\"theme.secondary.500\"\n >\n 🔄 {t('header.retry_languages') || 'Retry loading languages'}\n </Typography>\n </MenuItem>\n )}\n </Select>\n );\n };\n\n const menuId = \"primary-search-account-menu\";\n const renderMenu = (\n <Menu\n className=\"main-profile-menu\"\n anchorEl={anchorEl}\n id={menuId}\n keepMounted\n open={isMenuOpen}\n onClose={handleMenuClose}\n >\n <MenuItem className=\"user-assigned\">\n <span>{t('common.assigned_roles') || 'Assigned roles'}</span>\n </MenuItem>\n <MenuItem className=\"user-data-wrap\" value={userData.role_id}>\n <ListItemIcon>\n <Avatar size={27} alt={userData.role_name} />\n </ListItemIcon>\n <ListItemText className=\"size15\">\n {userData.role_name}\n </ListItemText>\n <Typography variant=\"body2\" color=\"text.secondary\">\n <img src={images.tickicon} alt=\"Active\" />\n </Typography>\n </MenuItem>\n <Divider />\n <MenuItem\n className=\"user-assigned\"\n onClick={() => {\n handleChangePasswordView();\n setAnchorEl(null);\n }}\n >\n <ListItemIcon>\n <Eye fontSize=\"medium\" width={20} height={20} htmlColor=\"#292D32\" />\n </ListItemIcon>\n <ListItemText className=\"size15\">{t(\"common.change_password\")}</ListItemText>\n </MenuItem>\n <Divider />\n <MenuItem\n className=\"menu-item-color\"\n onClick={() => {\n handleLogoutConfirmation();\n setAnchorEl(null);\n }}\n >\n <ListItemIcon>\n <img src={images.logout} alt=\"logout\" />\n </ListItemIcon>\n <ListItemText className=\"size15\">{t(\"common.logout\")}</ListItemText>\n </MenuItem>\n </Menu>\n );\n\n const appLogo = getApiConfig().appLogo || images.logo\n\n return (\n <>\n <Box className=\"main-box\">\n {!isDropdownShow && (\n <Link to={user ? Pathname.DASHBOARD : Pathname.LOGIN}>\n <img src={appLogo} alt=\"logo\" height={55}/>\n </Link>\n )}\n <Box className=\"second-box\">\n {isDropdownShow && (\n <>\n <IconButton onClick={handleBackButton}>\n <KeyboardBackspaceIcon\n className={isRtl ? \"arrow-pointer_rtl\" : \"arrow-pointer\"}\n />\n </IconButton>\n <Box width={250}>\n <Select\n fullWidth\n placeholder=\"Placeholder\"\n size={\"small\"}\n value={selectedModule?.link || \"\"}\n onChange={handleChange}\n className=\"select-box\"\n variant=\"outlined\"\n renderValue={(value: string) => (\n <>\n {selectedModule ? (\n <Box className=\"selected-menu-box\">\n <img\n src={selectedModule.icon}\n alt={selectedModule.label}\n />\n {selectedModule.label}\n </Box>\n ) : (\n value\n )}\n </>\n )}\n >\n {erp_modules.map((module: any, index: number) => (\n <MenuItem\n className=\"select-box-menu-item\"\n value={module.link}\n key={index}\n >\n <img src={module.icon} alt={module.label} />\n {module.label}\n </MenuItem>\n ))}\n </Select>\n </Box>\n </>\n )}\n </Box>\n <Box className=\"header-right-wrap\">\n {/* Language Selector with Enhanced Fallback Support */}\n <Box className=\"language-selector-wrapper\">\n {renderLanguageSelector()}\n </Box>\n\n <NotificationMenu />\n <IconButton\n size=\"small\"\n aria-label=\"help\"\n className=\"p-0\"\n >\n <img src={logo.question} alt=\"question icon\" />\n </IconButton>\n <img src={logo.vdivider} alt=\"divider icon\" />\n {localStorage.getItem(\"_tid\") ? (\n <Box className=\"user-profile-box\" onClick={handleProfileMenuOpen}>\n <Avatar\n size={32}\n src={user?.profile_image ? `${config?.s3BucketUrl}${user?.profile_image}` : undefined}\n alt={formatText(user?.full_name)}\n className=\"avatar-class\"\n />\n <div>\n <Typography className=\"profile-name\">\n {user?.full_name}\n </Typography>\n <Typography className=\"user-auth\">\n {user?.role_name}\n </Typography>\n </div>\n </Box>\n ) : (\n <IconButton\n size=\"large\"\n edge=\"end\"\n aria-label=\"account of current user\"\n aria-controls={menuId}\n aria-haspopup=\"true\"\n component={Link}\n to={Pathname.LOGIN}\n color=\"inherit\"\n >\n <LockIcon className=\"icon-btn\" />\n </IconButton>\n )}\n </Box>\n {renderMenu}\n </Box>\n\n {/* Logout Confirmation Dialog */}\n <ConfirmPopUp\n open={logoutConfirmation}\n title={t(\"common.logout\")}\n description={t('common.logout_confirmation') || \"Are you sure, you want to logout?\"}\n onConfirm={() => logout()}\n onClose={handleLogoutConfirmation}\n fullWidth\n maxWidth=\"xs\"\n buttonTexts={{\n confirm: t(\"common.logout\"),\n cancel: t(\"common.cancel\"),\n }}\n />\n\n <ResetPasswordModal showModal={showModal} setShowModal={setShowModal} />\n </>\n );\n}\n\nexport default HeaderEnhanced;"],"names":["useNavigate","useTranslation","useLocation","useAuth","useAppSelector","useAppDispatch","fetchLanguages","useLanguage","getApiConfig","pathname","useState","useCallback","matchRoutes","useEffect","module","_a","modules","jsx","Box","Typography","jsxs","Select","MenuItem","Menu","ListItemIcon","Avatar","ListItemText","images","Divider","Eye","Fragment","Link","Pathname","IconButton","NotificationMenu","logo","formatText","ConfirmPopUp","ResetPasswordModal"],"mappings":"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"}
1
+ {"version":3,"file":"header-enhanced-DCDMljaN.js","sources":["../../src/components/header/header-enhanced.tsx"],"sourcesContent":["// components/header/Header.tsx - Enhanced version with optional Redux support\nimport React, { useState, useEffect, useCallback } from \"react\";\nimport { Link, matchRoutes, useLocation, useNavigate } from \"react-router-dom\";\nimport { Box } from \"@mui/material\";\nimport { useTranslation } from \"react-i18next\";\nimport LockIcon from \"@mui/icons-material/Lock\";\nimport { IconButton } from \"@mui/material\";\nimport { MenuItem } from \"@mui/material\";\nimport { Menu } from \"@mui/material\";\nimport KeyboardBackspaceIcon from \"@mui/icons-material/KeyboardBackspace\";\nimport { ListItemText } from \"@mui/material\";\nimport { Divider } from \"@mui/material\";\nimport { ListItemIcon } from \"@mui/material\";\n\n// import { Pathname } from \"../../pathname\"; // Removed - should be passed as props\nimport Typography from \"../typography/typography\";\nimport logo, { images } from \"../../assets/images\";\nimport Select from \"../select/select\";\nimport modules from \"../../constants/modules\"; // Removed - should be passed as props\nimport Avatar from \"../avatar/avatar\";\nimport { useAuth } from '@erpsquad/common/runtime';\nimport ConfirmPopUp from \"../confirm-modal/confirm-modal\";\nimport formatText from \"../../utils/format-text\";\nimport { useLanguage } from '@erpsquad/common/runtime';\nimport { Eye } from \"../icons\";\nimport ResetPasswordModal from \"../reset-password-modal/reset-password-modal\";\nimport NotificationMenu from \"./components/notification-menu/notification-menu\";\nimport \"./header.scss\";\nimport { getApiConfig } from \"@/utils\";\nimport { Pathname } from \"@/constants\";\nimport { useAppSelector, useAppDispatch } from '../../redux/hooks';\nimport { fetchLanguages } from '../../redux/slices';\ninterface ILanguage {\n label: string;\n code: string;\n direction: string;\n}\n\ninterface IModule {\n label: any;\n link: string;\n sidebar: string;\n icon: string;\n permission: string;\n bg: string;\n connectedRoutes: string[];\n translationModule: string;\n}\n\n// Enhanced props interface\ninterface HeaderEnhancedProps {\n isDropdownShow?: boolean;\n\n // Language props (alternative to Redux)\n languages?: ILanguage[];\n currentLanguage?: ILanguage;\n languagesLoading?: boolean;\n languageError?: string;\n onLanguageChange?: (languageCode: string) => void;\n onFetchLanguages?: () => Promise<void>;\n\n // Redux integration (optional)\n useRedux?: boolean;\n}\n\nexport function HeaderEnhanced(props: HeaderEnhancedProps): React.ReactElement {\n const {\n isDropdownShow,\n\n // Non-Redux props\n languages: propLanguages = [],\n currentLanguage: propCurrentLanguage,\n languagesLoading: propLanguagesLoading = false,\n languageError: propLanguageError = \"\",\n onLanguageChange,\n onFetchLanguages,\n\n // Redux integration\n useRedux = false,\n } = props;\n\n const navigate = useNavigate();\n const { t } = useTranslation();\n const location = useLocation();\n const { logout, user } = useAuth();\n\n // Conditional Redux usage\n let reduxLanguageState = {\n languages: [],\n currentLanguage: { label: 'English', code: 'en', direction: 'ltr' },\n isLoading: false,\n error: '',\n isFallbackActive: false,\n isRtl: false\n };\n let dispatch: any = null;\n let reduxActions: any = {};\n\n if (useRedux) {\n try {\n // Redux hooks and actions (statically imported)\n\n const headerState = useAppSelector((store: any) => store.header || {});\n dispatch = useAppDispatch();\n reduxActions = { fetchLanguages };\n\n reduxLanguageState = {\n languages: headerState.languagesData?.data || [],\n currentLanguage: headerState.currentLanguage || reduxLanguageState.currentLanguage,\n isLoading: headerState.languagesData?.isLoading || false,\n error: headerState.languagesData?.error || '',\n isFallbackActive: false, // This would need to be computed\n isRtl: headerState.currentLanguage?.direction === 'rtl'\n };\n } catch (error) {\n console.warn(\"Redux not available for Header, falling back to prop-based data\");\n }\n }\n\n // Use Redux data if available, otherwise use props or useLanguage hook\n const {\n languages: hookLanguages,\n currentLanguage: hookCurrentLanguage,\n changeLanguage: hookChangeLanguage,\n isLoading: hookLanguagesLoading,\n error: hookLanguageError,\n isFallbackActive: hookIsFallbackActive,\n fetchLanguages: hookFetchLanguages,\n isRtl: hookIsRtl\n } = useLanguage();\n const config = getApiConfig()\n\n // Determine which data source to use\n const languages = useRedux ? reduxLanguageState.languages : (propLanguages.length > 0 ? propLanguages : hookLanguages);\n const currentLanguage = useRedux ? reduxLanguageState.currentLanguage : (propCurrentLanguage || hookCurrentLanguage);\n const languagesLoading = useRedux ? reduxLanguageState.isLoading : (propLanguagesLoading || hookLanguagesLoading);\n const languageContextError = useRedux ? reduxLanguageState.error : (propLanguageError || hookLanguageError);\n const isFallbackActive = useRedux ? reduxLanguageState.isFallbackActive : hookIsFallbackActive;\n const isRtl = useRedux ? reduxLanguageState.isRtl : hookIsRtl;\n\n const { pathname } = location;\n const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);\n const [logoutConfirmation, setLogoutConfirmation] = useState<boolean>(false);\n const [selectedModule, setSelectedModule] = useState<IModule | null>(null);\n const [erp_modules, setModules] = useState<IModule[]>([]);\n const [localLanguageError, setLocalLanguageError] = useState<string | null>(null);\n const [showModal, setShowModal] = useState(false);\n\n const u_data = localStorage.getItem(\"_u_data\") || undefined;\n const userData = u_data ? JSON.parse(u_data) : \"\";\n const isMenuOpen = Boolean(anchorEl);\n\n const handleLogoutConfirmation = () =>\n setLogoutConfirmation(!logoutConfirmation);\n\n const checkMatchedRoutes = useCallback(\n (paths: string[] | string) => {\n const shouldMatch: { path: string }[] = Array.isArray(paths)\n ? paths.map((path: string) => ({ path }))\n : [{ path: paths }];\n\n return Boolean(matchRoutes(shouldMatch, location));\n },\n [location],\n );\n\n const handleChangePasswordView = () => {\n setShowModal(true);\n }\n\n useEffect(() => {\n const moduleName = erp_modules.find(\n (module: IModule) =>\n module?.link?.toLowerCase() === pathname.toLowerCase() ||\n checkMatchedRoutes(module.connectedRoutes),\n );\n\n if (moduleName) {\n setSelectedModule(moduleName);\n }\n }, [pathname, erp_modules, checkMatchedRoutes]);\n\n useEffect(() => {\n setModules(modules(t));\n }, [t]);\n\n // Enhanced language change handler\n const onChangeLang = (e: React.ChangeEvent<HTMLSelectElement>) => {\n const lang_code = e.target.value;\n\n // Clear any previous errors\n setLocalLanguageError(null);\n\n // Validate the language exists before changing\n if (!languages || languages.length === 0) {\n const errorMsg = t('header.language_not_available') || 'Languages not available';\n setLocalLanguageError(errorMsg);\n return;\n }\n\n const languageExists = languages.some((lang: ILanguage) => lang.code === lang_code);\n\n if (languageExists) {\n try {\n if (useRedux) {\n // Use Redux action (would need to be implemented in the slice)\n // dispatch(setCurrentLanguage({ code: lang_code, ... }));\n } else if (onLanguageChange) {\n onLanguageChange(lang_code);\n } else {\n hookChangeLanguage(lang_code);\n }\n } catch (error) {\n const errorMsg = error instanceof Error ? error.message : 'Failed to change language';\n setLocalLanguageError(errorMsg);\n }\n } else {\n const errorMsg = t('header.language_not_found', { language: lang_code }) ||\n `Selected language \"${lang_code}\" is not available`;\n setLocalLanguageError(errorMsg);\n }\n };\n\n // Retry language loading\n const handleRetryLanguages = async () => {\n setLocalLanguageError(null);\n try {\n if (useRedux && dispatch && reduxActions.fetchLanguages) {\n await dispatch(reduxActions.fetchLanguages());\n } else if (onFetchLanguages) {\n await onFetchLanguages();\n } else {\n await hookFetchLanguages();\n }\n } catch (error) {\n const errorMsg = 'Failed to reload languages';\n setLocalLanguageError(errorMsg);\n }\n };\n\n const handleProfileMenuOpen = (event: React.MouseEvent<HTMLElement>) =>\n setAnchorEl(event.currentTarget);\n\n const handleMenuClose = () => {\n setAnchorEl(null);\n };\n\n const handleChange = (event: any) => {\n const selectedLink = event.target.value;\n setTimeout(() => {\n navigate(selectedLink);\n }, 300);\n };\n\n const handleBackButton = () => {\n window.history.back();\n };\n\n // Get current language display value with fallback indication\n const getCurrentLanguageDisplay = (): string => {\n if (!currentLanguage) return t('header.select_language') || 'Select Language';\n\n // Show fallback indicator for better UX\n if (isFallbackActive || languageContextError) {\n return `${currentLanguage.label}`;\n }\n\n return currentLanguage.label;\n };\n\n // Create English fallback for consistent display\n const createEnglishFallback = (): ILanguage => ({\n code: 'en',\n label: 'English',\n direction: 'ltr'\n });\n\n // Get languages for dropdown - ensure English is always available\n const getLanguagesForDropdown = (): ILanguage[] => {\n if (!languages || languages.length === 0) {\n // If no languages available, show only English\n return [createEnglishFallback()];\n }\n\n // Ensure English is in the list\n const hasEnglish = languages.some(lang => lang.code === 'en');\n if (!hasEnglish) {\n return [createEnglishFallback(), ...languages];\n }\n\n return languages;\n };\n\n // Render language selector based on different states\n const renderLanguageSelector = () => {\n const availableLanguages = getLanguagesForDropdown();\n const displayValue = currentLanguage?.code || 'en'; // Default to English\n\n // Loading state\n if (languagesLoading) {\n return (\n <Box className=\"language-loading\">\n <Typography variant=\"body2\" color=\"text.secondary\">\n {'Loading...'}\n </Typography>\n </Box>\n );\n }\n\n // Always show dropdown with at least English available\n return (\n <Select\n onChange={onChangeLang}\n size=\"small\"\n value={displayValue}\n renderValue={() => getCurrentLanguageDisplay()}\n error={!!localLanguageError}\n className={isFallbackActive || languageContextError ? 'language-fallback-active' : ''}\n >\n {availableLanguages.map(({ code, label }: ILanguage) => (\n <MenuItem key={code} value={code}>\n <Typography\n type=\"s4\"\n weight=\"medium\"\n color=\"theme.secondary.1000\"\n >\n {label}\n </Typography>\n </MenuItem>\n ))}\n\n {/* Show retry option if there's an error */}\n {languageContextError && (\n <MenuItem onClick={handleRetryLanguages} style={{ fontStyle: 'italic' }}>\n <Typography\n type=\"s4\"\n weight=\"medium\"\n color=\"theme.secondary.500\"\n >\n 🔄 {t('header.retry_languages') || 'Retry loading languages'}\n </Typography>\n </MenuItem>\n )}\n </Select>\n );\n };\n\n const menuId = \"primary-search-account-menu\";\n const renderMenu = (\n <Menu\n className=\"main-profile-menu\"\n anchorEl={anchorEl}\n id={menuId}\n keepMounted\n open={isMenuOpen}\n onClose={handleMenuClose}\n >\n <MenuItem className=\"user-assigned\">\n <span>{t('common.assigned_roles') || 'Assigned roles'}</span>\n </MenuItem>\n <MenuItem className=\"user-data-wrap\" value={userData.role_id}>\n <ListItemIcon>\n <Avatar size={27} alt={userData.role_name} />\n </ListItemIcon>\n <ListItemText className=\"size15\">\n {userData.role_name}\n </ListItemText>\n <Typography variant=\"body2\" color=\"text.secondary\">\n <img src={images.tickicon} alt=\"Active\" />\n </Typography>\n </MenuItem>\n <Divider />\n <MenuItem\n className=\"user-assigned\"\n onClick={() => {\n handleChangePasswordView();\n setAnchorEl(null);\n }}\n >\n <ListItemIcon>\n <Eye fontSize=\"medium\" width={20} height={20} htmlColor=\"#292D32\" />\n </ListItemIcon>\n <ListItemText className=\"size15\">{t(\"common.change_password\")}</ListItemText>\n </MenuItem>\n <Divider />\n <MenuItem\n className=\"menu-item-color\"\n onClick={() => {\n handleLogoutConfirmation();\n setAnchorEl(null);\n }}\n >\n <ListItemIcon>\n <img src={images.logout} alt=\"logout\" />\n </ListItemIcon>\n <ListItemText className=\"size15\">{t(\"common.logout\")}</ListItemText>\n </MenuItem>\n </Menu>\n );\n\n const appLogo = getApiConfig().appLogo || images.logo\n\n return (\n <>\n <Box className=\"main-box\">\n {!isDropdownShow && (\n <Link to={user ? Pathname.DASHBOARD : Pathname.LOGIN}>\n <img src={appLogo} alt=\"logo\" height={55}/>\n </Link>\n )}\n <Box className=\"second-box\">\n {isDropdownShow && (\n <>\n <IconButton onClick={handleBackButton}>\n <KeyboardBackspaceIcon\n className={isRtl ? \"arrow-pointer_rtl\" : \"arrow-pointer\"}\n />\n </IconButton>\n <Box width={250}>\n <Select\n fullWidth\n placeholder=\"Placeholder\"\n size={\"small\"}\n value={selectedModule?.link || \"\"}\n onChange={handleChange}\n className=\"select-box\"\n variant=\"outlined\"\n renderValue={(value: string) => (\n <>\n {selectedModule ? (\n <Box className=\"selected-menu-box\">\n <img\n src={selectedModule.icon}\n alt={selectedModule.label}\n />\n {selectedModule.label}\n </Box>\n ) : (\n value\n )}\n </>\n )}\n >\n {erp_modules.map((module: any, index: number) => (\n <MenuItem\n className=\"select-box-menu-item\"\n value={module.link}\n key={index}\n >\n <img src={module.icon} alt={module.label} />\n {module.label}\n </MenuItem>\n ))}\n </Select>\n </Box>\n </>\n )}\n </Box>\n <Box className=\"header-right-wrap\">\n {/* Language Selector with Enhanced Fallback Support */}\n <Box className=\"language-selector-wrapper\">\n {renderLanguageSelector()}\n </Box>\n\n <NotificationMenu />\n <IconButton\n size=\"small\"\n aria-label=\"help\"\n className=\"p-0\"\n >\n <img src={logo.question} alt=\"question icon\" />\n </IconButton>\n <img src={logo.vdivider} alt=\"divider icon\" />\n {localStorage.getItem(\"_tid\") ? (\n <Box className=\"user-profile-box\" onClick={handleProfileMenuOpen}>\n <Avatar\n size={32}\n src={user?.profile_image ? `${config?.s3BucketUrl}${user?.profile_image}` : undefined}\n alt={formatText(user?.full_name)}\n className=\"avatar-class\"\n />\n <div>\n <Typography className=\"profile-name\">\n {user?.full_name}\n </Typography>\n <Typography className=\"user-auth\">\n {user?.role_name}\n </Typography>\n </div>\n </Box>\n ) : (\n <IconButton\n size=\"large\"\n edge=\"end\"\n aria-label=\"account of current user\"\n aria-controls={menuId}\n aria-haspopup=\"true\"\n component={Link}\n to={Pathname.LOGIN}\n color=\"inherit\"\n >\n <LockIcon className=\"icon-btn\" />\n </IconButton>\n )}\n </Box>\n {renderMenu}\n </Box>\n\n {/* Logout Confirmation Dialog */}\n <ConfirmPopUp\n open={logoutConfirmation}\n title={t(\"common.logout\")}\n description={t('common.logout_confirmation') || \"Are you sure, you want to logout?\"}\n onConfirm={() => logout()}\n onClose={handleLogoutConfirmation}\n fullWidth\n maxWidth=\"xs\"\n buttonTexts={{\n confirm: t(\"common.logout\"),\n cancel: t(\"common.cancel\"),\n }}\n />\n\n <ResetPasswordModal showModal={showModal} setShowModal={setShowModal} />\n </>\n );\n}\n\nexport default HeaderEnhanced;"],"names":["useNavigate","useTranslation","useLocation","useAuth","useAppSelector","useAppDispatch","fetchLanguages","useLanguage","getApiConfig","pathname","useState","useCallback","matchRoutes","useEffect","module","_a","modules","jsx","Box","Typography","jsxs","Select","MenuItem","Menu","ListItemIcon","Avatar","ListItemText","images","Divider","Eye","Fragment","Link","Pathname","IconButton","NotificationMenu","logo","formatText","ConfirmPopUp","ResetPasswordModal"],"mappings":"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"}
@@ -8,14 +8,14 @@ import KeyboardBackspaceIcon from "@mui/icons-material/KeyboardBackspace";
8
8
  import { T as Typography } from "./typography-CG_A0iOJ.esm.js";
9
9
  import images from "../images/index.esm.js";
10
10
  import { S as Select } from "./select-CVxEdXzL.esm.js";
11
- import { m as modules } from "./modules-enwLrpfQ.esm.js";
11
+ import { m as modules } from "./modules-CWV4WSHs.esm.js";
12
12
  import { A as Avatar } from "./avatar-lNOkcI7m.esm.js";
13
13
  import { useAuth, useLanguage } from "@erpsquad/common/runtime";
14
14
  import { C as ConfirmPopUp } from "./confirm-modal-PbguB4YV.esm.js";
15
15
  import formatText from "../utils/format-text/index.esm.js";
16
16
  import { E as Eye } from "./eye-CByHBTch.esm.js";
17
17
  import { R as ResetPasswordModal } from "./reset-password-modal-x82f8yfU.esm.js";
18
- import { N as NotificationMenu } from "./notification-menu-B_4BOTgX.esm.js";
18
+ import { N as NotificationMenu } from "./notification-menu-XAadkn-e.esm.js";
19
19
  /* empty css */
20
20
  import { getApiConfig } from "../utils/api-config/index.esm.js";
21
21
  import { a as useAppSelector, u as useAppDispatch } from "./hooks-Ddf9hdOk.esm.js";
@@ -398,4 +398,4 @@ function HeaderEnhanced(props) {
398
398
  export {
399
399
  HeaderEnhanced as H
400
400
  };
401
- //# sourceMappingURL=header-enhanced-D31BpL2H.esm.js.map
401
+ //# sourceMappingURL=header-enhanced-OiKzLG4i.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"header-enhanced-D31BpL2H.esm.js","sources":["../../src/components/header/header-enhanced.tsx"],"sourcesContent":["// components/header/Header.tsx - Enhanced version with optional Redux support\nimport React, { useState, useEffect, useCallback } from \"react\";\nimport { Link, matchRoutes, useLocation, useNavigate } from \"react-router-dom\";\nimport { Box } from \"@mui/material\";\nimport { useTranslation } from \"react-i18next\";\nimport LockIcon from \"@mui/icons-material/Lock\";\nimport { IconButton } from \"@mui/material\";\nimport { MenuItem } from \"@mui/material\";\nimport { Menu } from \"@mui/material\";\nimport KeyboardBackspaceIcon from \"@mui/icons-material/KeyboardBackspace\";\nimport { ListItemText } from \"@mui/material\";\nimport { Divider } from \"@mui/material\";\nimport { ListItemIcon } from \"@mui/material\";\n\n// import { Pathname } from \"../../pathname\"; // Removed - should be passed as props\nimport Typography from \"../typography/typography\";\nimport logo, { images } from \"../../assets/images\";\nimport Select from \"../select/select\";\nimport modules from \"../../constants/modules\"; // Removed - should be passed as props\nimport Avatar from \"../avatar/avatar\";\nimport { useAuth } from '@erpsquad/common/runtime';\nimport ConfirmPopUp from \"../confirm-modal/confirm-modal\";\nimport formatText from \"../../utils/format-text\";\nimport { useLanguage } from '@erpsquad/common/runtime';\nimport { Eye } from \"../icons\";\nimport ResetPasswordModal from \"../reset-password-modal/reset-password-modal\";\nimport NotificationMenu from \"./components/notification-menu/notification-menu\";\nimport \"./header.scss\";\nimport { getApiConfig } from \"@/utils\";\nimport { Pathname } from \"@/constants\";\nimport { useAppSelector, useAppDispatch } from '../../redux/hooks';\nimport { fetchLanguages } from '../../redux/slices';\ninterface ILanguage {\n label: string;\n code: string;\n direction: string;\n}\n\ninterface IModule {\n label: any;\n link: string;\n sidebar: string;\n icon: string;\n permission: string;\n bg: string;\n connectedRoutes: string[];\n translationModule: string;\n}\n\n// Enhanced props interface\ninterface HeaderEnhancedProps {\n isDropdownShow?: boolean;\n\n // Language props (alternative to Redux)\n languages?: ILanguage[];\n currentLanguage?: ILanguage;\n languagesLoading?: boolean;\n languageError?: string;\n onLanguageChange?: (languageCode: string) => void;\n onFetchLanguages?: () => Promise<void>;\n\n // Redux integration (optional)\n useRedux?: boolean;\n}\n\nexport function HeaderEnhanced(props: HeaderEnhancedProps): React.ReactElement {\n const {\n isDropdownShow,\n\n // Non-Redux props\n languages: propLanguages = [],\n currentLanguage: propCurrentLanguage,\n languagesLoading: propLanguagesLoading = false,\n languageError: propLanguageError = \"\",\n onLanguageChange,\n onFetchLanguages,\n\n // Redux integration\n useRedux = false,\n } = props;\n\n const navigate = useNavigate();\n const { t } = useTranslation();\n const location = useLocation();\n const { logout, user } = useAuth();\n\n // Conditional Redux usage\n let reduxLanguageState = {\n languages: [],\n currentLanguage: { label: 'English', code: 'en', direction: 'ltr' },\n isLoading: false,\n error: '',\n isFallbackActive: false,\n isRtl: false\n };\n let dispatch: any = null;\n let reduxActions: any = {};\n\n if (useRedux) {\n try {\n // Redux hooks and actions (statically imported)\n\n const headerState = useAppSelector((store: any) => store.header || {});\n dispatch = useAppDispatch();\n reduxActions = { fetchLanguages };\n\n reduxLanguageState = {\n languages: headerState.languagesData?.data || [],\n currentLanguage: headerState.currentLanguage || reduxLanguageState.currentLanguage,\n isLoading: headerState.languagesData?.isLoading || false,\n error: headerState.languagesData?.error || '',\n isFallbackActive: false, // This would need to be computed\n isRtl: headerState.currentLanguage?.direction === 'rtl'\n };\n } catch (error) {\n console.warn(\"Redux not available for Header, falling back to prop-based data\");\n }\n }\n\n // Use Redux data if available, otherwise use props or useLanguage hook\n const {\n languages: hookLanguages,\n currentLanguage: hookCurrentLanguage,\n changeLanguage: hookChangeLanguage,\n isLoading: hookLanguagesLoading,\n error: hookLanguageError,\n isFallbackActive: hookIsFallbackActive,\n fetchLanguages: hookFetchLanguages,\n isRtl: hookIsRtl\n } = useLanguage();\n const config = getApiConfig()\n\n // Determine which data source to use\n const languages = useRedux ? reduxLanguageState.languages : (propLanguages.length > 0 ? propLanguages : hookLanguages);\n const currentLanguage = useRedux ? reduxLanguageState.currentLanguage : (propCurrentLanguage || hookCurrentLanguage);\n const languagesLoading = useRedux ? reduxLanguageState.isLoading : (propLanguagesLoading || hookLanguagesLoading);\n const languageContextError = useRedux ? reduxLanguageState.error : (propLanguageError || hookLanguageError);\n const isFallbackActive = useRedux ? reduxLanguageState.isFallbackActive : hookIsFallbackActive;\n const isRtl = useRedux ? reduxLanguageState.isRtl : hookIsRtl;\n\n const { pathname } = location;\n const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);\n const [logoutConfirmation, setLogoutConfirmation] = useState<boolean>(false);\n const [selectedModule, setSelectedModule] = useState<IModule | null>(null);\n const [erp_modules, setModules] = useState<IModule[]>([]);\n const [localLanguageError, setLocalLanguageError] = useState<string | null>(null);\n const [showModal, setShowModal] = useState(false);\n\n const u_data = localStorage.getItem(\"_u_data\") || undefined;\n const userData = u_data ? JSON.parse(u_data) : \"\";\n const isMenuOpen = Boolean(anchorEl);\n\n const handleLogoutConfirmation = () =>\n setLogoutConfirmation(!logoutConfirmation);\n\n const checkMatchedRoutes = useCallback(\n (paths: string[] | string) => {\n const shouldMatch: { path: string }[] = Array.isArray(paths)\n ? paths.map((path: string) => ({ path }))\n : [{ path: paths }];\n\n return Boolean(matchRoutes(shouldMatch, location));\n },\n [location],\n );\n\n const handleChangePasswordView = () => {\n setShowModal(true);\n }\n\n useEffect(() => {\n const moduleName = erp_modules.find(\n (module: IModule) =>\n module?.link?.toLowerCase() === pathname.toLowerCase() ||\n checkMatchedRoutes(module.connectedRoutes),\n );\n\n if (moduleName) {\n setSelectedModule(moduleName);\n }\n }, [pathname, erp_modules, checkMatchedRoutes]);\n\n useEffect(() => {\n setModules(modules(t));\n }, [t]);\n\n // Enhanced language change handler\n const onChangeLang = (e: React.ChangeEvent<HTMLSelectElement>) => {\n const lang_code = e.target.value;\n\n // Clear any previous errors\n setLocalLanguageError(null);\n\n // Validate the language exists before changing\n if (!languages || languages.length === 0) {\n const errorMsg = t('header.language_not_available') || 'Languages not available';\n setLocalLanguageError(errorMsg);\n return;\n }\n\n const languageExists = languages.some((lang: ILanguage) => lang.code === lang_code);\n\n if (languageExists) {\n try {\n if (useRedux) {\n // Use Redux action (would need to be implemented in the slice)\n // dispatch(setCurrentLanguage({ code: lang_code, ... }));\n } else if (onLanguageChange) {\n onLanguageChange(lang_code);\n } else {\n hookChangeLanguage(lang_code);\n }\n } catch (error) {\n const errorMsg = error instanceof Error ? error.message : 'Failed to change language';\n setLocalLanguageError(errorMsg);\n }\n } else {\n const errorMsg = t('header.language_not_found', { language: lang_code }) ||\n `Selected language \"${lang_code}\" is not available`;\n setLocalLanguageError(errorMsg);\n }\n };\n\n // Retry language loading\n const handleRetryLanguages = async () => {\n setLocalLanguageError(null);\n try {\n if (useRedux && dispatch && reduxActions.fetchLanguages) {\n await dispatch(reduxActions.fetchLanguages());\n } else if (onFetchLanguages) {\n await onFetchLanguages();\n } else {\n await hookFetchLanguages();\n }\n } catch (error) {\n const errorMsg = 'Failed to reload languages';\n setLocalLanguageError(errorMsg);\n }\n };\n\n const handleProfileMenuOpen = (event: React.MouseEvent<HTMLElement>) =>\n setAnchorEl(event.currentTarget);\n\n const handleMenuClose = () => {\n setAnchorEl(null);\n };\n\n const handleChange = (event: any) => {\n const selectedLink = event.target.value;\n setTimeout(() => {\n navigate(selectedLink);\n }, 300);\n };\n\n const handleBackButton = () => {\n window.history.back();\n };\n\n // Get current language display value with fallback indication\n const getCurrentLanguageDisplay = (): string => {\n if (!currentLanguage) return t('header.select_language') || 'Select Language';\n\n // Show fallback indicator for better UX\n if (isFallbackActive || languageContextError) {\n return `${currentLanguage.label}`;\n }\n\n return currentLanguage.label;\n };\n\n // Create English fallback for consistent display\n const createEnglishFallback = (): ILanguage => ({\n code: 'en',\n label: 'English',\n direction: 'ltr'\n });\n\n // Get languages for dropdown - ensure English is always available\n const getLanguagesForDropdown = (): ILanguage[] => {\n if (!languages || languages.length === 0) {\n // If no languages available, show only English\n return [createEnglishFallback()];\n }\n\n // Ensure English is in the list\n const hasEnglish = languages.some(lang => lang.code === 'en');\n if (!hasEnglish) {\n return [createEnglishFallback(), ...languages];\n }\n\n return languages;\n };\n\n // Render language selector based on different states\n const renderLanguageSelector = () => {\n const availableLanguages = getLanguagesForDropdown();\n const displayValue = currentLanguage?.code || 'en'; // Default to English\n\n // Loading state\n if (languagesLoading) {\n return (\n <Box className=\"language-loading\">\n <Typography variant=\"body2\" color=\"text.secondary\">\n {'Loading...'}\n </Typography>\n </Box>\n );\n }\n\n // Always show dropdown with at least English available\n return (\n <Select\n onChange={onChangeLang}\n size=\"small\"\n value={displayValue}\n renderValue={() => getCurrentLanguageDisplay()}\n error={!!localLanguageError}\n className={isFallbackActive || languageContextError ? 'language-fallback-active' : ''}\n >\n {availableLanguages.map(({ code, label }: ILanguage) => (\n <MenuItem key={code} value={code}>\n <Typography\n type=\"s4\"\n weight=\"medium\"\n color=\"theme.secondary.1000\"\n >\n {label}\n </Typography>\n </MenuItem>\n ))}\n\n {/* Show retry option if there's an error */}\n {languageContextError && (\n <MenuItem onClick={handleRetryLanguages} style={{ fontStyle: 'italic' }}>\n <Typography\n type=\"s4\"\n weight=\"medium\"\n color=\"theme.secondary.500\"\n >\n 🔄 {t('header.retry_languages') || 'Retry loading languages'}\n </Typography>\n </MenuItem>\n )}\n </Select>\n );\n };\n\n const menuId = \"primary-search-account-menu\";\n const renderMenu = (\n <Menu\n className=\"main-profile-menu\"\n anchorEl={anchorEl}\n id={menuId}\n keepMounted\n open={isMenuOpen}\n onClose={handleMenuClose}\n >\n <MenuItem className=\"user-assigned\">\n <span>{t('common.assigned_roles') || 'Assigned roles'}</span>\n </MenuItem>\n <MenuItem className=\"user-data-wrap\" value={userData.role_id}>\n <ListItemIcon>\n <Avatar size={27} alt={userData.role_name} />\n </ListItemIcon>\n <ListItemText className=\"size15\">\n {userData.role_name}\n </ListItemText>\n <Typography variant=\"body2\" color=\"text.secondary\">\n <img src={images.tickicon} alt=\"Active\" />\n </Typography>\n </MenuItem>\n <Divider />\n <MenuItem\n className=\"user-assigned\"\n onClick={() => {\n handleChangePasswordView();\n setAnchorEl(null);\n }}\n >\n <ListItemIcon>\n <Eye fontSize=\"medium\" width={20} height={20} htmlColor=\"#292D32\" />\n </ListItemIcon>\n <ListItemText className=\"size15\">{t(\"common.change_password\")}</ListItemText>\n </MenuItem>\n <Divider />\n <MenuItem\n className=\"menu-item-color\"\n onClick={() => {\n handleLogoutConfirmation();\n setAnchorEl(null);\n }}\n >\n <ListItemIcon>\n <img src={images.logout} alt=\"logout\" />\n </ListItemIcon>\n <ListItemText className=\"size15\">{t(\"common.logout\")}</ListItemText>\n </MenuItem>\n </Menu>\n );\n\n const appLogo = getApiConfig().appLogo || images.logo\n\n return (\n <>\n <Box className=\"main-box\">\n {!isDropdownShow && (\n <Link to={user ? Pathname.DASHBOARD : Pathname.LOGIN}>\n <img src={appLogo} alt=\"logo\" height={55}/>\n </Link>\n )}\n <Box className=\"second-box\">\n {isDropdownShow && (\n <>\n <IconButton onClick={handleBackButton}>\n <KeyboardBackspaceIcon\n className={isRtl ? \"arrow-pointer_rtl\" : \"arrow-pointer\"}\n />\n </IconButton>\n <Box width={250}>\n <Select\n fullWidth\n placeholder=\"Placeholder\"\n size={\"small\"}\n value={selectedModule?.link || \"\"}\n onChange={handleChange}\n className=\"select-box\"\n variant=\"outlined\"\n renderValue={(value: string) => (\n <>\n {selectedModule ? (\n <Box className=\"selected-menu-box\">\n <img\n src={selectedModule.icon}\n alt={selectedModule.label}\n />\n {selectedModule.label}\n </Box>\n ) : (\n value\n )}\n </>\n )}\n >\n {erp_modules.map((module: any, index: number) => (\n <MenuItem\n className=\"select-box-menu-item\"\n value={module.link}\n key={index}\n >\n <img src={module.icon} alt={module.label} />\n {module.label}\n </MenuItem>\n ))}\n </Select>\n </Box>\n </>\n )}\n </Box>\n <Box className=\"header-right-wrap\">\n {/* Language Selector with Enhanced Fallback Support */}\n <Box className=\"language-selector-wrapper\">\n {renderLanguageSelector()}\n </Box>\n\n <NotificationMenu />\n <IconButton\n size=\"small\"\n aria-label=\"help\"\n className=\"p-0\"\n >\n <img src={logo.question} alt=\"question icon\" />\n </IconButton>\n <img src={logo.vdivider} alt=\"divider icon\" />\n {localStorage.getItem(\"_tid\") ? (\n <Box className=\"user-profile-box\" onClick={handleProfileMenuOpen}>\n <Avatar\n size={32}\n src={user?.profile_image ? `${config?.s3BucketUrl}${user?.profile_image}` : undefined}\n alt={formatText(user?.full_name)}\n className=\"avatar-class\"\n />\n <div>\n <Typography className=\"profile-name\">\n {user?.full_name}\n </Typography>\n <Typography className=\"user-auth\">\n {user?.role_name}\n </Typography>\n </div>\n </Box>\n ) : (\n <IconButton\n size=\"large\"\n edge=\"end\"\n aria-label=\"account of current user\"\n aria-controls={menuId}\n aria-haspopup=\"true\"\n component={Link}\n to={Pathname.LOGIN}\n color=\"inherit\"\n >\n <LockIcon className=\"icon-btn\" />\n </IconButton>\n )}\n </Box>\n {renderMenu}\n </Box>\n\n {/* Logout Confirmation Dialog */}\n <ConfirmPopUp\n open={logoutConfirmation}\n title={t(\"common.logout\")}\n description={t('common.logout_confirmation') || \"Are you sure, you want to logout?\"}\n onConfirm={() => logout()}\n onClose={handleLogoutConfirmation}\n fullWidth\n maxWidth=\"xs\"\n buttonTexts={{\n confirm: t(\"common.logout\"),\n cancel: t(\"common.cancel\"),\n }}\n />\n\n <ResetPasswordModal showModal={showModal} setShowModal={setShowModal} />\n </>\n );\n}\n\nexport default HeaderEnhanced;"],"names":["React","_a","logo"],"mappings":"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"}
1
+ {"version":3,"file":"header-enhanced-OiKzLG4i.esm.js","sources":["../../src/components/header/header-enhanced.tsx"],"sourcesContent":["// components/header/Header.tsx - Enhanced version with optional Redux support\nimport React, { useState, useEffect, useCallback } from \"react\";\nimport { Link, matchRoutes, useLocation, useNavigate } from \"react-router-dom\";\nimport { Box } from \"@mui/material\";\nimport { useTranslation } from \"react-i18next\";\nimport LockIcon from \"@mui/icons-material/Lock\";\nimport { IconButton } from \"@mui/material\";\nimport { MenuItem } from \"@mui/material\";\nimport { Menu } from \"@mui/material\";\nimport KeyboardBackspaceIcon from \"@mui/icons-material/KeyboardBackspace\";\nimport { ListItemText } from \"@mui/material\";\nimport { Divider } from \"@mui/material\";\nimport { ListItemIcon } from \"@mui/material\";\n\n// import { Pathname } from \"../../pathname\"; // Removed - should be passed as props\nimport Typography from \"../typography/typography\";\nimport logo, { images } from \"../../assets/images\";\nimport Select from \"../select/select\";\nimport modules from \"../../constants/modules\"; // Removed - should be passed as props\nimport Avatar from \"../avatar/avatar\";\nimport { useAuth } from '@erpsquad/common/runtime';\nimport ConfirmPopUp from \"../confirm-modal/confirm-modal\";\nimport formatText from \"../../utils/format-text\";\nimport { useLanguage } from '@erpsquad/common/runtime';\nimport { Eye } from \"../icons\";\nimport ResetPasswordModal from \"../reset-password-modal/reset-password-modal\";\nimport NotificationMenu from \"./components/notification-menu/notification-menu\";\nimport \"./header.scss\";\nimport { getApiConfig } from \"@/utils\";\nimport { Pathname } from \"@/constants\";\nimport { useAppSelector, useAppDispatch } from '../../redux/hooks';\nimport { fetchLanguages } from '../../redux/slices';\ninterface ILanguage {\n label: string;\n code: string;\n direction: string;\n}\n\ninterface IModule {\n label: any;\n link: string;\n sidebar: string;\n icon: string;\n permission: string;\n bg: string;\n connectedRoutes: string[];\n translationModule: string;\n}\n\n// Enhanced props interface\ninterface HeaderEnhancedProps {\n isDropdownShow?: boolean;\n\n // Language props (alternative to Redux)\n languages?: ILanguage[];\n currentLanguage?: ILanguage;\n languagesLoading?: boolean;\n languageError?: string;\n onLanguageChange?: (languageCode: string) => void;\n onFetchLanguages?: () => Promise<void>;\n\n // Redux integration (optional)\n useRedux?: boolean;\n}\n\nexport function HeaderEnhanced(props: HeaderEnhancedProps): React.ReactElement {\n const {\n isDropdownShow,\n\n // Non-Redux props\n languages: propLanguages = [],\n currentLanguage: propCurrentLanguage,\n languagesLoading: propLanguagesLoading = false,\n languageError: propLanguageError = \"\",\n onLanguageChange,\n onFetchLanguages,\n\n // Redux integration\n useRedux = false,\n } = props;\n\n const navigate = useNavigate();\n const { t } = useTranslation();\n const location = useLocation();\n const { logout, user } = useAuth();\n\n // Conditional Redux usage\n let reduxLanguageState = {\n languages: [],\n currentLanguage: { label: 'English', code: 'en', direction: 'ltr' },\n isLoading: false,\n error: '',\n isFallbackActive: false,\n isRtl: false\n };\n let dispatch: any = null;\n let reduxActions: any = {};\n\n if (useRedux) {\n try {\n // Redux hooks and actions (statically imported)\n\n const headerState = useAppSelector((store: any) => store.header || {});\n dispatch = useAppDispatch();\n reduxActions = { fetchLanguages };\n\n reduxLanguageState = {\n languages: headerState.languagesData?.data || [],\n currentLanguage: headerState.currentLanguage || reduxLanguageState.currentLanguage,\n isLoading: headerState.languagesData?.isLoading || false,\n error: headerState.languagesData?.error || '',\n isFallbackActive: false, // This would need to be computed\n isRtl: headerState.currentLanguage?.direction === 'rtl'\n };\n } catch (error) {\n console.warn(\"Redux not available for Header, falling back to prop-based data\");\n }\n }\n\n // Use Redux data if available, otherwise use props or useLanguage hook\n const {\n languages: hookLanguages,\n currentLanguage: hookCurrentLanguage,\n changeLanguage: hookChangeLanguage,\n isLoading: hookLanguagesLoading,\n error: hookLanguageError,\n isFallbackActive: hookIsFallbackActive,\n fetchLanguages: hookFetchLanguages,\n isRtl: hookIsRtl\n } = useLanguage();\n const config = getApiConfig()\n\n // Determine which data source to use\n const languages = useRedux ? reduxLanguageState.languages : (propLanguages.length > 0 ? propLanguages : hookLanguages);\n const currentLanguage = useRedux ? reduxLanguageState.currentLanguage : (propCurrentLanguage || hookCurrentLanguage);\n const languagesLoading = useRedux ? reduxLanguageState.isLoading : (propLanguagesLoading || hookLanguagesLoading);\n const languageContextError = useRedux ? reduxLanguageState.error : (propLanguageError || hookLanguageError);\n const isFallbackActive = useRedux ? reduxLanguageState.isFallbackActive : hookIsFallbackActive;\n const isRtl = useRedux ? reduxLanguageState.isRtl : hookIsRtl;\n\n const { pathname } = location;\n const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);\n const [logoutConfirmation, setLogoutConfirmation] = useState<boolean>(false);\n const [selectedModule, setSelectedModule] = useState<IModule | null>(null);\n const [erp_modules, setModules] = useState<IModule[]>([]);\n const [localLanguageError, setLocalLanguageError] = useState<string | null>(null);\n const [showModal, setShowModal] = useState(false);\n\n const u_data = localStorage.getItem(\"_u_data\") || undefined;\n const userData = u_data ? JSON.parse(u_data) : \"\";\n const isMenuOpen = Boolean(anchorEl);\n\n const handleLogoutConfirmation = () =>\n setLogoutConfirmation(!logoutConfirmation);\n\n const checkMatchedRoutes = useCallback(\n (paths: string[] | string) => {\n const shouldMatch: { path: string }[] = Array.isArray(paths)\n ? paths.map((path: string) => ({ path }))\n : [{ path: paths }];\n\n return Boolean(matchRoutes(shouldMatch, location));\n },\n [location],\n );\n\n const handleChangePasswordView = () => {\n setShowModal(true);\n }\n\n useEffect(() => {\n const moduleName = erp_modules.find(\n (module: IModule) =>\n module?.link?.toLowerCase() === pathname.toLowerCase() ||\n checkMatchedRoutes(module.connectedRoutes),\n );\n\n if (moduleName) {\n setSelectedModule(moduleName);\n }\n }, [pathname, erp_modules, checkMatchedRoutes]);\n\n useEffect(() => {\n setModules(modules(t));\n }, [t]);\n\n // Enhanced language change handler\n const onChangeLang = (e: React.ChangeEvent<HTMLSelectElement>) => {\n const lang_code = e.target.value;\n\n // Clear any previous errors\n setLocalLanguageError(null);\n\n // Validate the language exists before changing\n if (!languages || languages.length === 0) {\n const errorMsg = t('header.language_not_available') || 'Languages not available';\n setLocalLanguageError(errorMsg);\n return;\n }\n\n const languageExists = languages.some((lang: ILanguage) => lang.code === lang_code);\n\n if (languageExists) {\n try {\n if (useRedux) {\n // Use Redux action (would need to be implemented in the slice)\n // dispatch(setCurrentLanguage({ code: lang_code, ... }));\n } else if (onLanguageChange) {\n onLanguageChange(lang_code);\n } else {\n hookChangeLanguage(lang_code);\n }\n } catch (error) {\n const errorMsg = error instanceof Error ? error.message : 'Failed to change language';\n setLocalLanguageError(errorMsg);\n }\n } else {\n const errorMsg = t('header.language_not_found', { language: lang_code }) ||\n `Selected language \"${lang_code}\" is not available`;\n setLocalLanguageError(errorMsg);\n }\n };\n\n // Retry language loading\n const handleRetryLanguages = async () => {\n setLocalLanguageError(null);\n try {\n if (useRedux && dispatch && reduxActions.fetchLanguages) {\n await dispatch(reduxActions.fetchLanguages());\n } else if (onFetchLanguages) {\n await onFetchLanguages();\n } else {\n await hookFetchLanguages();\n }\n } catch (error) {\n const errorMsg = 'Failed to reload languages';\n setLocalLanguageError(errorMsg);\n }\n };\n\n const handleProfileMenuOpen = (event: React.MouseEvent<HTMLElement>) =>\n setAnchorEl(event.currentTarget);\n\n const handleMenuClose = () => {\n setAnchorEl(null);\n };\n\n const handleChange = (event: any) => {\n const selectedLink = event.target.value;\n setTimeout(() => {\n navigate(selectedLink);\n }, 300);\n };\n\n const handleBackButton = () => {\n window.history.back();\n };\n\n // Get current language display value with fallback indication\n const getCurrentLanguageDisplay = (): string => {\n if (!currentLanguage) return t('header.select_language') || 'Select Language';\n\n // Show fallback indicator for better UX\n if (isFallbackActive || languageContextError) {\n return `${currentLanguage.label}`;\n }\n\n return currentLanguage.label;\n };\n\n // Create English fallback for consistent display\n const createEnglishFallback = (): ILanguage => ({\n code: 'en',\n label: 'English',\n direction: 'ltr'\n });\n\n // Get languages for dropdown - ensure English is always available\n const getLanguagesForDropdown = (): ILanguage[] => {\n if (!languages || languages.length === 0) {\n // If no languages available, show only English\n return [createEnglishFallback()];\n }\n\n // Ensure English is in the list\n const hasEnglish = languages.some(lang => lang.code === 'en');\n if (!hasEnglish) {\n return [createEnglishFallback(), ...languages];\n }\n\n return languages;\n };\n\n // Render language selector based on different states\n const renderLanguageSelector = () => {\n const availableLanguages = getLanguagesForDropdown();\n const displayValue = currentLanguage?.code || 'en'; // Default to English\n\n // Loading state\n if (languagesLoading) {\n return (\n <Box className=\"language-loading\">\n <Typography variant=\"body2\" color=\"text.secondary\">\n {'Loading...'}\n </Typography>\n </Box>\n );\n }\n\n // Always show dropdown with at least English available\n return (\n <Select\n onChange={onChangeLang}\n size=\"small\"\n value={displayValue}\n renderValue={() => getCurrentLanguageDisplay()}\n error={!!localLanguageError}\n className={isFallbackActive || languageContextError ? 'language-fallback-active' : ''}\n >\n {availableLanguages.map(({ code, label }: ILanguage) => (\n <MenuItem key={code} value={code}>\n <Typography\n type=\"s4\"\n weight=\"medium\"\n color=\"theme.secondary.1000\"\n >\n {label}\n </Typography>\n </MenuItem>\n ))}\n\n {/* Show retry option if there's an error */}\n {languageContextError && (\n <MenuItem onClick={handleRetryLanguages} style={{ fontStyle: 'italic' }}>\n <Typography\n type=\"s4\"\n weight=\"medium\"\n color=\"theme.secondary.500\"\n >\n 🔄 {t('header.retry_languages') || 'Retry loading languages'}\n </Typography>\n </MenuItem>\n )}\n </Select>\n );\n };\n\n const menuId = \"primary-search-account-menu\";\n const renderMenu = (\n <Menu\n className=\"main-profile-menu\"\n anchorEl={anchorEl}\n id={menuId}\n keepMounted\n open={isMenuOpen}\n onClose={handleMenuClose}\n >\n <MenuItem className=\"user-assigned\">\n <span>{t('common.assigned_roles') || 'Assigned roles'}</span>\n </MenuItem>\n <MenuItem className=\"user-data-wrap\" value={userData.role_id}>\n <ListItemIcon>\n <Avatar size={27} alt={userData.role_name} />\n </ListItemIcon>\n <ListItemText className=\"size15\">\n {userData.role_name}\n </ListItemText>\n <Typography variant=\"body2\" color=\"text.secondary\">\n <img src={images.tickicon} alt=\"Active\" />\n </Typography>\n </MenuItem>\n <Divider />\n <MenuItem\n className=\"user-assigned\"\n onClick={() => {\n handleChangePasswordView();\n setAnchorEl(null);\n }}\n >\n <ListItemIcon>\n <Eye fontSize=\"medium\" width={20} height={20} htmlColor=\"#292D32\" />\n </ListItemIcon>\n <ListItemText className=\"size15\">{t(\"common.change_password\")}</ListItemText>\n </MenuItem>\n <Divider />\n <MenuItem\n className=\"menu-item-color\"\n onClick={() => {\n handleLogoutConfirmation();\n setAnchorEl(null);\n }}\n >\n <ListItemIcon>\n <img src={images.logout} alt=\"logout\" />\n </ListItemIcon>\n <ListItemText className=\"size15\">{t(\"common.logout\")}</ListItemText>\n </MenuItem>\n </Menu>\n );\n\n const appLogo = getApiConfig().appLogo || images.logo\n\n return (\n <>\n <Box className=\"main-box\">\n {!isDropdownShow && (\n <Link to={user ? Pathname.DASHBOARD : Pathname.LOGIN}>\n <img src={appLogo} alt=\"logo\" height={55}/>\n </Link>\n )}\n <Box className=\"second-box\">\n {isDropdownShow && (\n <>\n <IconButton onClick={handleBackButton}>\n <KeyboardBackspaceIcon\n className={isRtl ? \"arrow-pointer_rtl\" : \"arrow-pointer\"}\n />\n </IconButton>\n <Box width={250}>\n <Select\n fullWidth\n placeholder=\"Placeholder\"\n size={\"small\"}\n value={selectedModule?.link || \"\"}\n onChange={handleChange}\n className=\"select-box\"\n variant=\"outlined\"\n renderValue={(value: string) => (\n <>\n {selectedModule ? (\n <Box className=\"selected-menu-box\">\n <img\n src={selectedModule.icon}\n alt={selectedModule.label}\n />\n {selectedModule.label}\n </Box>\n ) : (\n value\n )}\n </>\n )}\n >\n {erp_modules.map((module: any, index: number) => (\n <MenuItem\n className=\"select-box-menu-item\"\n value={module.link}\n key={index}\n >\n <img src={module.icon} alt={module.label} />\n {module.label}\n </MenuItem>\n ))}\n </Select>\n </Box>\n </>\n )}\n </Box>\n <Box className=\"header-right-wrap\">\n {/* Language Selector with Enhanced Fallback Support */}\n <Box className=\"language-selector-wrapper\">\n {renderLanguageSelector()}\n </Box>\n\n <NotificationMenu />\n <IconButton\n size=\"small\"\n aria-label=\"help\"\n className=\"p-0\"\n >\n <img src={logo.question} alt=\"question icon\" />\n </IconButton>\n <img src={logo.vdivider} alt=\"divider icon\" />\n {localStorage.getItem(\"_tid\") ? (\n <Box className=\"user-profile-box\" onClick={handleProfileMenuOpen}>\n <Avatar\n size={32}\n src={user?.profile_image ? `${config?.s3BucketUrl}${user?.profile_image}` : undefined}\n alt={formatText(user?.full_name)}\n className=\"avatar-class\"\n />\n <div>\n <Typography className=\"profile-name\">\n {user?.full_name}\n </Typography>\n <Typography className=\"user-auth\">\n {user?.role_name}\n </Typography>\n </div>\n </Box>\n ) : (\n <IconButton\n size=\"large\"\n edge=\"end\"\n aria-label=\"account of current user\"\n aria-controls={menuId}\n aria-haspopup=\"true\"\n component={Link}\n to={Pathname.LOGIN}\n color=\"inherit\"\n >\n <LockIcon className=\"icon-btn\" />\n </IconButton>\n )}\n </Box>\n {renderMenu}\n </Box>\n\n {/* Logout Confirmation Dialog */}\n <ConfirmPopUp\n open={logoutConfirmation}\n title={t(\"common.logout\")}\n description={t('common.logout_confirmation') || \"Are you sure, you want to logout?\"}\n onConfirm={() => logout()}\n onClose={handleLogoutConfirmation}\n fullWidth\n maxWidth=\"xs\"\n buttonTexts={{\n confirm: t(\"common.logout\"),\n cancel: t(\"common.cancel\"),\n }}\n />\n\n <ResetPasswordModal showModal={showModal} setShowModal={setShowModal} />\n </>\n );\n}\n\nexport default HeaderEnhanced;"],"names":["React","_a","logo"],"mappings":"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"}
@@ -11,7 +11,7 @@ import _ from "lodash";
11
11
  import dayjs from "dayjs";
12
12
  import { P as PhoneInput } from "./phone-input-CUBzAgfr.esm.js";
13
13
  import { C as Checkbox } from "./checkbox-C0Kk4Gq8.esm.js";
14
- import { S as SearchableSelect } from "./searchable-select-CcG1qflA.esm.js";
14
+ import { S as SearchableSelect } from "./searchable-select-0F6E4XAr.esm.js";
15
15
  import { T as TimePicker } from "./time-picker-CJ7ZnL8e.esm.js";
16
16
  const InlineEditFields = ({
17
17
  // cell,
@@ -322,4 +322,4 @@ const InlineEditFields = ({
322
322
  export {
323
323
  InlineEditFields as I
324
324
  };
325
- //# sourceMappingURL=inline-edit-fields-CjqUhdIv.esm.js.map
325
+ //# sourceMappingURL=inline-edit-fields-BYhRpPcH.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"inline-edit-fields-CjqUhdIv.esm.js","sources":["../../src/components/material-editable-table/components/inline-edit-fields.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { Box } from '@mui/material';\n\nimport Typography from '../../typography/typography';\nimport DatePicker from '../../date-picker/date-picker';\nimport DateTimePicker from '../../date-time-picker/date-time-picker';\nimport TextField from '../../text-field/text-field';\nimport UploadMedia from '../../upload-media/upload-media';\n\nimport * as yup from 'yup';\nimport _ from 'lodash';\nimport dayjs from 'dayjs';\nimport PhoneInput from '../../phone-input/phone-input';\nimport Checkbox from '../../checkbox/checkbox';\nimport SearchableSelect from '../../searchable-select';\nimport TimePicker from '../../time-picker/time-picker';\n\ninterface IInlineEditFields {\n\tcell: any;\n\tcolumn: any;\n\trow: any;\n\ttable: any;\n\tcol: any;\n\tcallback: (value: any, column: any, rowId: any) => any;\n\terrors: any;\n\tvalidationSchema: any;\n\tsetValidationErrors: any;\n\tonChangeRowField?: (e: any, type: string, row: any) => any;\n\tgetSelectedData: any\n}\nconst InlineEditFields: React.FC<IInlineEditFields> = ({\n\t// cell,\n\tcolumn,\n\trow,\n\t// table,\n\tcol,\n\t// callback,\n\terrors,\n\tvalidationSchema,\n\tsetValidationErrors,\n\tonChangeRowField,\n\tgetSelectedData,\n\tsyncFieldValue\n}) => {\n\n\tconst [inputValue, setInputValue] = useState<any>();\n\tconst [isInitialSet, setIsInitialSet] = useState<any>(false);\n\tconst customFilter = useRef(null)\n\t// ** Getting only editing enabled fields.\n\tconst editCols = row\n\t\t.getAllCells()\n\t\t.map((col: any) => col.column.columnDef)\n\t\t.filter(\n\t\t\t(col: any) =>\n\t\t\t\tcol?.enableEditing === undefined || col?.enableEditing === true\n\t\t);\n\n\tconst editVariant = col.editVariant;\n\tconst fieldProperties = column.columnDef?.editProperties || {};\n\n\t// ** Default and Dynamic disbaling a field with row data\n\tlet fieldDisbled = false;\n\tif (fieldProperties?.disable) {\n\t\tif (typeof fieldProperties.disable === 'function') {\n\t\t\tfieldDisbled = Boolean(fieldProperties?.disable(row, row._valuesCache));\n\t\t} else {\n\t\t\tfieldDisbled = Boolean(fieldProperties.disable);\n\t\t}\n\t}\n\n\tconst handleCustomFilter = useCallback(async (row, values) => {\n\n\t\ttry {\n\t\t\tif (typeof fieldProperties.customeFilter === 'function') {\n\t\t\t\tconst filter = await fieldProperties.customeFilter(row, values);\n\t\t\t\tcustomFilter.current = filter;\n\t\t\t\treturn filter;\n\t\t\t} else {\n\t\t\t\tcustomFilter.current = fieldProperties?.customeFilter;\n\t\t\t}\n\t\t} catch (error) {\n\t\t\treturn null;\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [fieldProperties, row, row._valuesCache]);\n\n\n\tuseEffect(() => {\n\t\thandleCustomFilter(row, row._valuesCache)\n\t}, [handleCustomFilter, row, row._valuesCache]);\n\t// ** Setting a default value for edit mode.\n\tconst valueKey = fieldProperties?.valueKey;\n\tlet defaultValue: any = '';\n\n\tif (editVariant === 'select' && fieldProperties?.is_multiple) {\n\t\tdefaultValue = valueKey ? _.get(row.original, valueKey, []) : [];\n\t} else {\n\t\tdefaultValue = valueKey\n\t\t\t? _.get(row.original, valueKey, row.original[column.id])\n\t\t\t: row.original[column.id];\n\n\t\t// For select fields, if we have a string or numeric value but need an object, try to find the matching option\n\t\tif (editVariant === 'select' && (typeof defaultValue === 'string' || typeof defaultValue === 'number') && col?.editSelectOptions) {\n\t\t\tconst matchingOption = col.editSelectOptions.find((option: any) =>\n\t\t\t\toption.value === defaultValue || option.id === defaultValue || option.name === defaultValue || String(option.id) === String(defaultValue)\n\t\t\t);\n\t\t\tif (matchingOption) {\n\t\t\t\tdefaultValue = matchingOption;\n\t\t\t}\n\t\t}\n\t}\n\n\t// ** Validate a field with Material Table Validation Schema.\n\tconst validate = async (value: any) => {\n\t\ttry {\n\t\t\t// const v = await validationSchema.validateAt( // * * This line has commented for rerendering purpose\n\t\t\tawait validationSchema.validateAt(\n\t\t\t\tcolumn.id,\n\t\t\t\t{\n\t\t\t\t\t// ...row._valuesCache,\n\t\t\t\t\t[column.id]: value\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tabortEarly: false\n\t\t\t\t}\n\t\t\t);\n\t\t\t// if (v) { // * * The if condition has commented for rerendering purpose\n\t\t\tconst fe: any = {}; // field error\n\t\t\tfor (const e in errors) {\n\t\t\t\tif (e != column.id) {\n\t\t\t\t\tfe[e] = errors[e];\n\t\t\t\t}\n\t\t\t}\n\t\t\tsetValidationErrors(fe);\n\t\t\t// }\n\t\t} catch (err) {\n\t\t\tif (err instanceof yup.ValidationError) {\n\t\t\t\tconst e: Record<string, string> = {};\n\t\t\t\terr.inner.forEach((error) => {\n\t\t\t\t\tif (error.path) {\n\t\t\t\t\t\te[error.path] = error.message;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tconst em = { ...errors, ...e };\n\t\t\t\tsetValidationErrors(em);\n\t\t\t}\n\t\t}\n\t};\n\n\n\n\t// ** Detect onChnage to perform the action on an input change.\n\tconst onChange = async (e: any, type: string, selectedData: any) => {\n\t\tconst data = selectedData\n\t\tlet value;\n\t\tswitch (type) {\n\t\t\tcase 'date':\n\t\t\tcase 'file':\n\t\t\tcase 'image':\n\t\t\tcase 'phone':\n\t\t\tcase 'time':\n\t\t\t\tvalue = e;\n\t\t\t\t// setInputValue({ ...inputValue, [column.id]: e });\n\t\t\t\tbreak;\n\t\t\tcase 'text':\n\t\t\tcase 'number':\n\t\t\t\tvalue = e.target.value;\n\t\t\t\t// setInputValue({ ...inputValue, [column.id]: value });\n\t\t\t\tbreak;\n\t\t\tcase 'checkbox':\n\t\t\t\tvalue = e.target.checked;\n\t\t\t\t// setInputValue({ ...inputValue, [column.id]: value });\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tvalue = e.target.value;\n\t\t\t\tbreak;\n\t\t}\n\t\tsetInputValue({ ...inputValue, [column.id]: value });\n\n\t\tif (onChangeRowField) {\n\t\t\tconst v = await onChangeRowField(e, type, row, col, data);\n\t\t\tif (v) {\n\t\t\t\trow._valuesCache = { ...row._valuesCache, ...v };\n\t\t\t\tsetInputValue({ ...inputValue, ...v });\n\t\t\t}\n\t\t}\n\t\tsetInputValue({ ...inputValue, [column.id]: value });\n\t\trow._valuesCache = { ...row._valuesCache, [column.id]: value };\n\t\tsyncFieldValue(row.id, column.id, value);\n\n\t\tawait validate(value);\n\t};\n\n\tuseEffect(() => {\n\t\tsetInputValue({ ...inputValue, ...row._valuesCache });\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [row._valuesCache]);\n\n\tuseEffect(() => {\n\t\tif (!isInitialSet) {\n\t\t\tconst editFields = Object.keys(row._valuesCache || {});\n\t\t\tconst dValues: any = {};\n\n\t\t\trow.getAllCells().forEach((cell) => {\n\t\t\t\tif (\n\t\t\t\t\tcell.column.columnDef?.enableEditing === undefined ||\n\t\t\t\t\tcell.column.columnDef?.enableEditing === true\n\t\t\t\t) {\n\t\t\t\t\tconst { is_multiple, valueKey } =\n\t\t\t\t\t\tcell.column.columnDef?.editProperties || {};\n\t\t\t\t\tconst cellEditVariant = cell.column.columnDef?.editVariant;\n\n\t\t\t\t\tif (editFields.includes(cell.column.id)) {\n\t\t\t\t\t\tconst vl = _.get(row.original, valueKey);\n\t\t\t\t\t\tif (cellEditVariant === 'select' && is_multiple) {\n\t\t\t\t\t\t\tdValues[cell.column.id] = vl\n\t\t\t\t\t\t\t\t? Array.isArray(vl)\n\t\t\t\t\t\t\t\t\t? vl\n\t\t\t\t\t\t\t\t\t: [vl]\n\t\t\t\t\t\t\t\t: [];\n\t\t\t\t\t\t} else if (cellEditVariant === 'date' || cellEditVariant === 'date_time' || cellEditVariant === 'time') {\n\t\t\t\t\t\t\tdValues[cell.column.id] = vl\n\t\t\t\t\t\t\t\t? dayjs(vl).isValid()\n\t\t\t\t\t\t\t\t\t? dayjs(vl)\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t: dayjs(row.original[cell.column.id]).isValid()\n\t\t\t\t\t\t\t\t\t? dayjs(row.original[cell.column.id])\n\t\t\t\t\t\t\t\t\t: undefined;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tdValues[cell.column.id] = _.get(\n\t\t\t\t\t\t\t\trow.original,\n\t\t\t\t\t\t\t\tvalueKey,\n\t\t\t\t\t\t\t\trow.original[cell.column.id]\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\t// setFieldsValues(dValues);\n\t\t\trow._valuesCache = dValues;\n\t\t\tsetInputValue(dValues);\n\t\t\tsetIsInitialSet(true);\n\t\t}\n\t}, [row, editVariant, isInitialSet]);\n\treturn (\n\t\t<>\n\t\t\t{(!editVariant || editVariant === 'number') && (\n\t\t\t\t<TextField\n\t\t\t\t\tdefaultValue={defaultValue}\n\t\t\t\t\t// onBlur={(e) => onBlur(e)}\n\t\t\t\t\t// onKeyDown={onKeyDown}\n\t\t\t\t\tonChange={(e) => onChange(e, editVariant)}\n\t\t\t\t\tvalue={inputValue?.[column.id]}\n\t\t\t\t\tautoFocus={editCols?.[0]?.accessorKey === column.id}\n\t\t\t\t\ttype={editVariant || 'text'}\n\t\t\t\t\terror={errors?.[column.id] ? true : false}\n\t\t\t\t\thelperText={errors?.[column.id]}\n\t\t\t\t\tplaceholder={fieldProperties?.placeholder || ''}\n\t\t\t\t\tname={fieldProperties?.field_name || ''}\n\t\t\t\t\tdisabled={fieldDisbled}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{editVariant === 'select' && (\n\t\t\t\t<Box display='flex' flexDirection='column' width='100%'>\n\t\t\t\t\t<SearchableSelect\n\t\t\t\t\t\tname={fieldProperties?.field_name || ''}\n\t\t\t\t\t\tdefaultValue={defaultValue}\n\t\t\t\t\t\tplaceholder={fieldProperties?.placeholder || ''}\n\t\t\t\t\t\tsearchPlaceholder={`Search ${col.header}`}\n\t\t\t\t\t\tonChange={(e, row) => onChange(e, 'select', row)}\n\t\t\t\t\t\tapiType={fieldProperties?.apiType}\n\t\t\t\t\t\tautoFocus={editCols?.[0]?.accessorKey === column.id}\n\t\t\t\t\t\toptions={col?.editSelectOptions}\n\t\t\t\t\t\tcustomeFilter={customFilter.current}\n\t\t\t\t\t\tfilterKey={fieldProperties?.filterKey}\n\t\t\t\t\t\tlabelKey={fieldProperties?.labelKey}\n\t\t\t\t\t\tvalueKey={fieldProperties?.bindingKey}\n\t\t\t\t\t\tattributes={fieldProperties.attributes}\n\t\t\t\t\t\tisInternal={fieldProperties?.isInternal || !fieldProperties?.apiType}\n\t\t\t\t\t\tmultiple={fieldProperties?.is_multiple}\n\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\tfieldProperties?.is_multiple\n\t\t\t\t\t\t\t\t? Array.isArray(inputValue?.[column.id])\n\t\t\t\t\t\t\t\t\t? inputValue?.[column.id]\n\t\t\t\t\t\t\t\t\t: []\n\t\t\t\t\t\t\t\t: inputValue?.[column.id]\n\t\t\t\t\t\t}\n\t\t\t\t\t\tgetSelectedData={(row) => getSelectedData(fieldProperties?.field_name, row)}\n\t\t\t\t\t\tdisabled={fieldDisbled}\n\t\t\t\t\t/>\n\n\t\t\t\t\t{errors?.[column.id] && (\n\t\t\t\t\t\t<Typography color='theme.error.600' type='s5'>\n\t\t\t\t\t\t\t{errors?.[column.id]}\n\t\t\t\t\t\t</Typography>\n\t\t\t\t\t)}\n\t\t\t\t</Box>\n\t\t\t)}\n\t\t\t{editVariant === 'date' && (\n\t\t\t\t<DatePicker\n\t\t\t\t\tname={fieldProperties?.field_name || ''}\n\t\t\t\t\tdefaultValue={defaultValue}\n\t\t\t\t\tonChange={(v) => onChange(v, 'date')}\n\t\t\t\t\ttextFieldProps={{\n\t\t\t\t\t\tautoFocus: editCols?.[0]?.accessorKey === column.id\n\t\t\t\t\t}}\n\t\t\t\t\terror={errors?.[column.id] ? true : false}\n\t\t\t\t\thelperText={errors?.[column.id]}\n\t\t\t\t\tformat={fieldProperties?.dateFormat}\n\t\t\t\t\tplaceholder={\n\t\t\t\t\t\tfieldProperties?.placeholder || fieldProperties?.dateFormat\n\t\t\t\t\t}\n\t\t\t\t\tvalue={\n\t\t\t\t\t\trow._valuesCache[column.id] && dayjs(row._valuesCache[column.id]).isValid()\n\t\t\t\t\t\t\t? dayjs(row._valuesCache[column.id])\n\t\t\t\t\t\t\t: null\n\t\t\t\t\t}\n\t\t\t\t\tdisabled={fieldDisbled}\n\t\t\t\t\tminDate={fieldProperties?.min_date}\n\t\t\t\t\tmaxDate={fieldProperties?.max_date}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{editVariant === 'date_time' && (\n\t\t\t\t<DateTimePicker\n\t\t\t\t\tname={fieldProperties?.field_name || ''}\n\t\t\t\t\tdefaultValue={defaultValue}\n\t\t\t\t\tonChange={(v) => onChange(v, 'date')}\n\t\t\t\t\ttextFieldProps={{\n\t\t\t\t\t\tautoFocus: editCols?.[0]?.accessorKey === column.id\n\t\t\t\t\t}}\n\t\t\t\t\terror={errors?.[column.id] ? true : false}\n\t\t\t\t\thelperText={errors?.[column.id]}\n\t\t\t\t\tformat={fieldProperties?.dateFormat}\n\t\t\t\t\tplaceholder={\n\t\t\t\t\t\tfieldProperties?.placeholder || fieldProperties?.dateFormat\n\t\t\t\t\t}\n\t\t\t\t\tvalue={\n\t\t\t\t\t\tdayjs(row._valuesCache[column.id]).isValid()\n\t\t\t\t\t\t\t? dayjs(row._valuesCache[column.id])\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t\tdisabled={fieldDisbled}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{editVariant === 'time' && (\n\t\t\t\t<TimePicker\n\t\t\t\t\tname={fieldProperties?.field_name || ''}\n\t\t\t\t\tlabel=''\n\t\t\t\t\tvalue={\n\t\t\t\t\t\tdayjs(row._valuesCache[column.id]).isValid()\n\t\t\t\t\t\t\t? dayjs(row._valuesCache[column.id])\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t\tonChange={(v) => onChange(v, 'time')}\n\t\t\t\t\terror={errors?.[column.id] ? true : false}\n\t\t\t\t\thelperText={errors?.[column.id]}\n\t\t\t\t\tplaceholder={fieldProperties?.placeholder || 'HH:mm A'}\n\t\t\t\t\tdisabled={fieldDisbled}\n\t\t\t\t\tis24hrFormat={fieldProperties?.is24hrFormat}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{(editVariant === 'file' || editVariant === 'image') && (\n\t\t\t\t<Box display='flex' flexDirection='column'>\n\t\t\t\t\t<UploadMedia\n\t\t\t\t\t\tname={fieldProperties?.field_name || 'table_file'}\n\t\t\t\t\t\tdataPosition={0}\n\t\t\t\t\t\tdataName='table_file'\n\t\t\t\t\t\tlabel=''\n\t\t\t\t\t\ttype={editVariant}\n\t\t\t\t\t\tmax_size={10}\n\t\t\t\t\t\tonChange={(v) => onChange(v, 'file')}\n\t\t\t\t\t\terror={errors?.[column.id] ? true : false}\n\t\t\t\t\t\tmultiple={Boolean(column?.is_multiple)}\n\t\t\t\t\t\tvalue={row._valuesCache[column.id]}\n\t\t\t\t\t/>\n\t\t\t\t\t{errors?.[column.id] && (\n\t\t\t\t\t\t<Typography color='theme.error.600' type='s5'>\n\t\t\t\t\t\t\t{errors?.[column.id]}\n\t\t\t\t\t\t</Typography>\n\t\t\t\t\t)}\n\t\t\t\t</Box>\n\t\t\t)}\n\t\t\t{editVariant === 'phone' && (\n\t\t\t\t<PhoneInput\n\t\t\t\t\tname={fieldProperties?.field_name || ''}\n\t\t\t\t\tdefault_value={defaultValue}\n\t\t\t\t\tonChange={(v) => onChange(v, 'phone')}\n\t\t\t\t\ttextFieldProps={{\n\t\t\t\t\t\tautoFocus: editCols?.[0]?.accessorKey === column.id\n\t\t\t\t\t}}\n\t\t\t\t\terror={errors?.[column.id] ? true : false}\n\t\t\t\t\thelperText={errors?.[column.id]}\n\t\t\t\t\tformat={fieldProperties?.dateFormat}\n\t\t\t\t\tplaceholder={\n\t\t\t\t\t\tfieldProperties?.placeholder || fieldProperties?.dateFormat\n\t\t\t\t\t}\n\t\t\t\t\tvalue={row._valuesCache?.[column.id]}\n\t\t\t\t\tdisabled={fieldDisbled}\n\t\t\t\t\tisInlineEditing={true}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{editVariant === 'checkbox' && (\n\t\t\t\t<Checkbox\n\t\t\t\t\tname={fieldProperties?.field_name || ''}\n\t\t\t\t\tdefaultChecked={Boolean(defaultValue)}\n\t\t\t\t\t// checked={Boolean(defaultValue)}\n\t\t\t\t\tonChange={(v) => onChange(v, 'checkbox')}\n\t\t\t\t\terror={errors?.[column.id] ? true : false}\n\t\t\t\t\thelperText={errors?.[column.id]}\n\t\t\t\t\tformat={fieldProperties?.dateFormat}\n\t\t\t\t\tplaceholder={\n\t\t\t\t\t\tfieldProperties?.placeholder || fieldProperties?.dateFormat\n\t\t\t\t\t}\n\t\t\t\t\tvalue={row._valuesCache?.[column.id]}\n\t\t\t\t\tdisabled={fieldDisbled}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</>\n\t);\n};\n\nexport default InlineEditFields;\n"],"names":["col","row","yup","_a","_b","valueKey","_c","_d"],"mappings":";;;;;;;;;;;;;;;AA+BA,MAAM,mBAAgD,CAAC;AAAA;AAAA,EAEtD;AAAA,EACA;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,MAAM;;AAEL,QAAM,CAAC,YAAY,aAAa,IAAI,SAAA;AACpC,QAAM,CAAC,cAAc,eAAe,IAAI,SAAc,KAAK;AAC3D,QAAM,eAAe,OAAO,IAAI;AAEhC,QAAM,WAAW,IACf,YAAA,EACA,IAAI,CAACA,SAAaA,KAAI,OAAO,SAAS,EACtC;AAAA,IACA,CAACA,UACAA,6BAAK,mBAAkB,WAAaA,6BAAK,mBAAkB;AAAA,EAAA;AAG9D,QAAM,cAAc,IAAI;AACxB,QAAM,oBAAkB,YAAO,cAAP,mBAAkB,mBAAkB,CAAA;AAG5D,MAAI,eAAe;AACnB,MAAI,mDAAiB,SAAS;AAC7B,QAAI,OAAO,gBAAgB,YAAY,YAAY;AAClD,qBAAe,QAAQ,mDAAiB,QAAQ,KAAK,IAAI,aAAa;AAAA,IACvE,OAAO;AACN,qBAAe,QAAQ,gBAAgB,OAAO;AAAA,IAC/C;AAAA,EACD;AAEA,QAAM,qBAAqB,YAAY,OAAOC,MAAK,WAAW;AAE7D,QAAI;AACH,UAAI,OAAO,gBAAgB,kBAAkB,YAAY;AACxD,cAAM,SAAS,MAAM,gBAAgB,cAAcA,MAAK,MAAM;AAC9D,qBAAa,UAAU;AACvB,eAAO;AAAA,MACR,OAAO;AACN,qBAAa,UAAU,mDAAiB;AAAA,MACzC;AAAA,IACD,SAAS,OAAO;AACf,aAAO;AAAA,IACR;AAAA,EAED,GAAG,CAAC,iBAAiB,KAAK,IAAI,YAAY,CAAC;AAG3C,YAAU,MAAM;AACf,uBAAmB,KAAK,IAAI,YAAY;AAAA,EACzC,GAAG,CAAC,oBAAoB,KAAK,IAAI,YAAY,CAAC;AAE9C,QAAM,WAAW,mDAAiB;AAClC,MAAI,eAAoB;AAExB,MAAI,gBAAgB,aAAY,mDAAiB,cAAa;AAC7D,mBAAe,WAAW,EAAE,IAAI,IAAI,UAAU,UAAU,CAAA,CAAE,IAAI,CAAA;AAAA,EAC/D,OAAO;AACN,mBAAe,WACZ,EAAE,IAAI,IAAI,UAAU,UAAU,IAAI,SAAS,OAAO,EAAE,CAAC,IACrD,IAAI,SAAS,OAAO,EAAE;AAGzB,QAAI,gBAAgB,aAAa,OAAO,iBAAiB,YAAY,OAAO,iBAAiB,cAAa,2BAAK,oBAAmB;AACjI,YAAM,iBAAiB,IAAI,kBAAkB;AAAA,QAAK,CAAC,WAClD,OAAO,UAAU,gBAAgB,OAAO,OAAO,gBAAgB,OAAO,SAAS,gBAAgB,OAAO,OAAO,EAAE,MAAM,OAAO,YAAY;AAAA,MAAA;AAEzI,UAAI,gBAAgB;AACnB,uBAAe;AAAA,MAChB;AAAA,IACD;AAAA,EACD;AAGA,QAAM,WAAW,OAAO,UAAe;AACtC,QAAI;AAEH,YAAM,iBAAiB;AAAA,QACtB,OAAO;AAAA,QACP;AAAA;AAAA,UAEC,CAAC,OAAO,EAAE,GAAG;AAAA,QAAA;AAAA,QAEd;AAAA,UACC,YAAY;AAAA,QAAA;AAAA,MACb;AAGD,YAAM,KAAU,CAAA;AAChB,iBAAW,KAAK,QAAQ;AACvB,YAAI,KAAK,OAAO,IAAI;AACnB,aAAG,CAAC,IAAI,OAAO,CAAC;AAAA,QACjB;AAAA,MACD;AACA,0BAAoB,EAAE;AAAA,IAEvB,SAAS,KAAK;AACb,UAAI,eAAeC,IAAI,iBAAiB;AACvC,cAAM,IAA4B,CAAA;AAClC,YAAI,MAAM,QAAQ,CAAC,UAAU;AAC5B,cAAI,MAAM,MAAM;AACf,cAAE,MAAM,IAAI,IAAI,MAAM;AAAA,UACvB;AAAA,QACD,CAAC;AACD,cAAM,KAAK,EAAE,GAAG,QAAQ,GAAG,EAAA;AAC3B,4BAAoB,EAAE;AAAA,MACvB;AAAA,IACD;AAAA,EACD;AAKA,QAAM,WAAW,OAAO,GAAQ,MAAc,iBAAsB;AACnE,UAAM,OAAO;AACb,QAAI;AACJ,YAAQ,MAAA;AAAA,MACP,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACJ,gBAAQ;AAER;AAAA,MACD,KAAK;AAAA,MACL,KAAK;AACJ,gBAAQ,EAAE,OAAO;AAEjB;AAAA,MACD,KAAK;AACJ,gBAAQ,EAAE,OAAO;AAEjB;AAAA,MACD;AACC,gBAAQ,EAAE,OAAO;AACjB;AAAA,IAAA;AAEF,kBAAc,EAAE,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,OAAO;AAEnD,QAAI,kBAAkB;AACrB,YAAM,IAAI,MAAM,iBAAiB,GAAG,MAAM,KAAK,KAAK,IAAI;AACxD,UAAI,GAAG;AACN,YAAI,eAAe,EAAE,GAAG,IAAI,cAAc,GAAG,EAAA;AAC7C,sBAAc,EAAE,GAAG,YAAY,GAAG,GAAG;AAAA,MACtC;AAAA,IACD;AACA,kBAAc,EAAE,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,OAAO;AACnD,QAAI,eAAe,EAAE,GAAG,IAAI,cAAc,CAAC,OAAO,EAAE,GAAG,MAAA;AACvD,mBAAe,IAAI,IAAI,OAAO,IAAI,KAAK;AAEvC,UAAM,SAAS,KAAK;AAAA,EACrB;AAEA,YAAU,MAAM;AACf,kBAAc,EAAE,GAAG,YAAY,GAAG,IAAI,cAAc;AAAA,EAErD,GAAG,CAAC,IAAI,YAAY,CAAC;AAErB,YAAU,MAAM;AACf,QAAI,CAAC,cAAc;AAClB,YAAM,aAAa,OAAO,KAAK,IAAI,gBAAgB,CAAA,CAAE;AACrD,YAAM,UAAe,CAAA;AAErB,UAAI,YAAA,EAAc,QAAQ,CAAC,SAAS;;AACnC,cACCC,MAAA,KAAK,OAAO,cAAZ,gBAAAA,IAAuB,mBAAkB,YACzCC,MAAA,KAAK,OAAO,cAAZ,gBAAAA,IAAuB,mBAAkB,MACxC;AACD,gBAAM,EAAE,aAAa,UAAAC,UAAAA,MACpBC,MAAA,KAAK,OAAO,cAAZ,gBAAAA,IAAuB,mBAAkB,CAAA;AAC1C,gBAAM,mBAAkBC,MAAA,KAAK,OAAO,cAAZ,gBAAAA,IAAuB;AAE/C,cAAI,WAAW,SAAS,KAAK,OAAO,EAAE,GAAG;AACxC,kBAAM,KAAK,EAAE,IAAI,IAAI,UAAUF,SAAQ;AACvC,gBAAI,oBAAoB,YAAY,aAAa;AAChD,sBAAQ,KAAK,OAAO,EAAE,IAAI,KACvB,MAAM,QAAQ,EAAE,IACf,KACA,CAAC,EAAE,IACJ,CAAA;AAAA,YACJ,WAAW,oBAAoB,UAAU,oBAAoB,eAAe,oBAAoB,QAAQ;AACvG,sBAAQ,KAAK,OAAO,EAAE,IAAI,KACvB,MAAM,EAAE,EAAE,QAAA,IACT,MAAM,EAAE,IACR,SACD,MAAM,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC,EAAE,QAAA,IACnC,MAAM,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC,IAClC;AAAA,YACL,OAAO;AACN,sBAAQ,KAAK,OAAO,EAAE,IAAI,EAAE;AAAA,gBAC3B,IAAI;AAAA,gBACJA;AAAAA,gBACA,IAAI,SAAS,KAAK,OAAO,EAAE;AAAA,cAAA;AAAA,YAE7B;AAAA,UACD;AAAA,QACD;AAAA,MACD,CAAC;AAED,UAAI,eAAe;AACnB,oBAAc,OAAO;AACrB,sBAAgB,IAAI;AAAA,IACrB;AAAA,EACD,GAAG,CAAC,KAAK,aAAa,YAAY,CAAC;AACnC,SACC,qBAAA,UAAA,EACG,UAAA;AAAA,KAAA,CAAC,eAAe,gBAAgB,aACjC;AAAA,MAAC;AAAA,MAAA;AAAA,QACA;AAAA,QAGA,UAAU,CAAC,MAAM,SAAS,GAAG,WAAW;AAAA,QACxC,OAAO,yCAAa,OAAO;AAAA,QAC3B,aAAW,0CAAW,OAAX,mBAAe,iBAAgB,OAAO;AAAA,QACjD,MAAM,eAAe;AAAA,QACrB,QAAO,iCAAS,OAAO,OAAM,OAAO;AAAA,QACpC,YAAY,iCAAS,OAAO;AAAA,QAC5B,cAAa,mDAAiB,gBAAe;AAAA,QAC7C,OAAM,mDAAiB,eAAc;AAAA,QACrC,UAAU;AAAA,MAAA;AAAA,IAAA;AAAA,IAGX,gBAAgB,YAChB,qBAAC,KAAA,EAAI,SAAQ,QAAO,eAAc,UAAS,OAAM,QAChD,UAAA;AAAA,MAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACA,OAAM,mDAAiB,eAAc;AAAA,UACrC;AAAA,UACA,cAAa,mDAAiB,gBAAe;AAAA,UAC7C,mBAAmB,UAAU,IAAI,MAAM;AAAA,UACvC,UAAU,CAAC,GAAGJ,SAAQ,SAAS,GAAG,UAAUA,IAAG;AAAA,UAC/C,SAAS,mDAAiB;AAAA,UAC1B,aAAW,0CAAW,OAAX,mBAAe,iBAAgB,OAAO;AAAA,UACjD,SAAS,2BAAK;AAAA,UACd,eAAe,aAAa;AAAA,UAC5B,WAAW,mDAAiB;AAAA,UAC5B,UAAU,mDAAiB;AAAA,UAC3B,UAAU,mDAAiB;AAAA,UAC3B,YAAY,gBAAgB;AAAA,UAC5B,aAAY,mDAAiB,eAAc,EAAC,mDAAiB;AAAA,UAC7D,UAAU,mDAAiB;AAAA,UAC3B,QACC,mDAAiB,eACd,MAAM,QAAQ,yCAAa,OAAO,GAAG,IACpC,yCAAa,OAAO,MACpB,CAAA,IACD,yCAAa,OAAO;AAAA,UAExB,iBAAiB,CAACA,SAAQ,gBAAgB,mDAAiB,YAAYA,IAAG;AAAA,UAC1E,UAAU;AAAA,QAAA;AAAA,MAAA;AAAA,OAGV,iCAAS,OAAO,QAChB,oBAAC,YAAA,EAAW,OAAM,mBAAkB,MAAK,MACvC,UAAA,iCAAS,OAAO,IAAE,CACpB;AAAA,IAAA,GAEF;AAAA,IAEA,gBAAgB,UAChB;AAAA,MAAC;AAAA,MAAA;AAAA,QACA,OAAM,mDAAiB,eAAc;AAAA,QACrC;AAAA,QACA,UAAU,CAAC,MAAM,SAAS,GAAG,MAAM;AAAA,QACnC,gBAAgB;AAAA,UACf,aAAW,0CAAW,OAAX,mBAAe,iBAAgB,OAAO;AAAA,QAAA;AAAA,QAElD,QAAO,iCAAS,OAAO,OAAM,OAAO;AAAA,QACpC,YAAY,iCAAS,OAAO;AAAA,QAC5B,QAAQ,mDAAiB;AAAA,QACzB,cACC,mDAAiB,iBAAe,mDAAiB;AAAA,QAElD,OACC,IAAI,aAAa,OAAO,EAAE,KAAK,MAAM,IAAI,aAAa,OAAO,EAAE,CAAC,EAAE,YAC/D,MAAM,IAAI,aAAa,OAAO,EAAE,CAAC,IACjC;AAAA,QAEJ,UAAU;AAAA,QACV,SAAS,mDAAiB;AAAA,QAC1B,SAAS,mDAAiB;AAAA,MAAA;AAAA,IAAA;AAAA,IAG3B,gBAAgB,eAChB;AAAA,MAAC;AAAA,MAAA;AAAA,QACA,OAAM,mDAAiB,eAAc;AAAA,QACrC;AAAA,QACA,UAAU,CAAC,MAAM,SAAS,GAAG,MAAM;AAAA,QACnC,gBAAgB;AAAA,UACf,aAAW,0CAAW,OAAX,mBAAe,iBAAgB,OAAO;AAAA,QAAA;AAAA,QAElD,QAAO,iCAAS,OAAO,OAAM,OAAO;AAAA,QACpC,YAAY,iCAAS,OAAO;AAAA,QAC5B,QAAQ,mDAAiB;AAAA,QACzB,cACC,mDAAiB,iBAAe,mDAAiB;AAAA,QAElD,OACC,MAAM,IAAI,aAAa,OAAO,EAAE,CAAC,EAAE,QAAA,IAChC,MAAM,IAAI,aAAa,OAAO,EAAE,CAAC,IACjC;AAAA,QAEJ,UAAU;AAAA,MAAA;AAAA,IAAA;AAAA,IAGX,gBAAgB,UAChB;AAAA,MAAC;AAAA,MAAA;AAAA,QACA,OAAM,mDAAiB,eAAc;AAAA,QACrC,OAAM;AAAA,QACN,OACC,MAAM,IAAI,aAAa,OAAO,EAAE,CAAC,EAAE,QAAA,IAChC,MAAM,IAAI,aAAa,OAAO,EAAE,CAAC,IACjC;AAAA,QAEJ,UAAU,CAAC,MAAM,SAAS,GAAG,MAAM;AAAA,QACnC,QAAO,iCAAS,OAAO,OAAM,OAAO;AAAA,QACpC,YAAY,iCAAS,OAAO;AAAA,QAC5B,cAAa,mDAAiB,gBAAe;AAAA,QAC7C,UAAU;AAAA,QACV,cAAc,mDAAiB;AAAA,MAAA;AAAA,IAAA;AAAA,KAG/B,gBAAgB,UAAU,gBAAgB,iCAC1C,KAAA,EAAI,SAAQ,QAAO,eAAc,UACjC,UAAA;AAAA,MAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACA,OAAM,mDAAiB,eAAc;AAAA,UACrC,cAAc;AAAA,UACd,UAAS;AAAA,UACT,OAAM;AAAA,UACN,MAAM;AAAA,UACN,UAAU;AAAA,UACV,UAAU,CAAC,MAAM,SAAS,GAAG,MAAM;AAAA,UACnC,QAAO,iCAAS,OAAO,OAAM,OAAO;AAAA,UACpC,UAAU,QAAQ,iCAAQ,WAAW;AAAA,UACrC,OAAO,IAAI,aAAa,OAAO,EAAE;AAAA,QAAA;AAAA,MAAA;AAAA,OAEjC,iCAAS,OAAO,QAChB,oBAAC,YAAA,EAAW,OAAM,mBAAkB,MAAK,MACvC,UAAA,iCAAS,OAAO,IAAE,CACpB;AAAA,IAAA,GAEF;AAAA,IAEA,gBAAgB,WAChB;AAAA,MAAC;AAAA,MAAA;AAAA,QACA,OAAM,mDAAiB,eAAc;AAAA,QACrC,eAAe;AAAA,QACf,UAAU,CAAC,MAAM,SAAS,GAAG,OAAO;AAAA,QACpC,gBAAgB;AAAA,UACf,aAAW,0CAAW,OAAX,mBAAe,iBAAgB,OAAO;AAAA,QAAA;AAAA,QAElD,QAAO,iCAAS,OAAO,OAAM,OAAO;AAAA,QACpC,YAAY,iCAAS,OAAO;AAAA,QAC5B,QAAQ,mDAAiB;AAAA,QACzB,cACC,mDAAiB,iBAAe,mDAAiB;AAAA,QAElD,QAAO,SAAI,iBAAJ,mBAAmB,OAAO;AAAA,QACjC,UAAU;AAAA,QACV,iBAAiB;AAAA,MAAA;AAAA,IAAA;AAAA,IAGlB,gBAAgB,cAChB;AAAA,MAAC;AAAA,MAAA;AAAA,QACA,OAAM,mDAAiB,eAAc;AAAA,QACrC,gBAAgB,QAAQ,YAAY;AAAA,QAEpC,UAAU,CAAC,MAAM,SAAS,GAAG,UAAU;AAAA,QACvC,QAAO,iCAAS,OAAO,OAAM,OAAO;AAAA,QACpC,YAAY,iCAAS,OAAO;AAAA,QAC5B,QAAQ,mDAAiB;AAAA,QACzB,cACC,mDAAiB,iBAAe,mDAAiB;AAAA,QAElD,QAAO,SAAI,iBAAJ,mBAAmB,OAAO;AAAA,QACjC,UAAU;AAAA,MAAA;AAAA,IAAA;AAAA,EACX,GAEF;AAEF;"}
1
+ {"version":3,"file":"inline-edit-fields-BYhRpPcH.esm.js","sources":["../../src/components/material-editable-table/components/inline-edit-fields.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { Box } from '@mui/material';\n\nimport Typography from '../../typography/typography';\nimport DatePicker from '../../date-picker/date-picker';\nimport DateTimePicker from '../../date-time-picker/date-time-picker';\nimport TextField from '../../text-field/text-field';\nimport UploadMedia from '../../upload-media/upload-media';\n\nimport * as yup from 'yup';\nimport _ from 'lodash';\nimport dayjs from 'dayjs';\nimport PhoneInput from '../../phone-input/phone-input';\nimport Checkbox from '../../checkbox/checkbox';\nimport SearchableSelect from '../../searchable-select';\nimport TimePicker from '../../time-picker/time-picker';\n\ninterface IInlineEditFields {\n\tcell: any;\n\tcolumn: any;\n\trow: any;\n\ttable: any;\n\tcol: any;\n\tcallback: (value: any, column: any, rowId: any) => any;\n\terrors: any;\n\tvalidationSchema: any;\n\tsetValidationErrors: any;\n\tonChangeRowField?: (e: any, type: string, row: any) => any;\n\tgetSelectedData: any\n}\nconst InlineEditFields: React.FC<IInlineEditFields> = ({\n\t// cell,\n\tcolumn,\n\trow,\n\t// table,\n\tcol,\n\t// callback,\n\terrors,\n\tvalidationSchema,\n\tsetValidationErrors,\n\tonChangeRowField,\n\tgetSelectedData,\n\tsyncFieldValue\n}) => {\n\n\tconst [inputValue, setInputValue] = useState<any>();\n\tconst [isInitialSet, setIsInitialSet] = useState<any>(false);\n\tconst customFilter = useRef(null)\n\t// ** Getting only editing enabled fields.\n\tconst editCols = row\n\t\t.getAllCells()\n\t\t.map((col: any) => col.column.columnDef)\n\t\t.filter(\n\t\t\t(col: any) =>\n\t\t\t\tcol?.enableEditing === undefined || col?.enableEditing === true\n\t\t);\n\n\tconst editVariant = col.editVariant;\n\tconst fieldProperties = column.columnDef?.editProperties || {};\n\n\t// ** Default and Dynamic disbaling a field with row data\n\tlet fieldDisbled = false;\n\tif (fieldProperties?.disable) {\n\t\tif (typeof fieldProperties.disable === 'function') {\n\t\t\tfieldDisbled = Boolean(fieldProperties?.disable(row, row._valuesCache));\n\t\t} else {\n\t\t\tfieldDisbled = Boolean(fieldProperties.disable);\n\t\t}\n\t}\n\n\tconst handleCustomFilter = useCallback(async (row, values) => {\n\n\t\ttry {\n\t\t\tif (typeof fieldProperties.customeFilter === 'function') {\n\t\t\t\tconst filter = await fieldProperties.customeFilter(row, values);\n\t\t\t\tcustomFilter.current = filter;\n\t\t\t\treturn filter;\n\t\t\t} else {\n\t\t\t\tcustomFilter.current = fieldProperties?.customeFilter;\n\t\t\t}\n\t\t} catch (error) {\n\t\t\treturn null;\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [fieldProperties, row, row._valuesCache]);\n\n\n\tuseEffect(() => {\n\t\thandleCustomFilter(row, row._valuesCache)\n\t}, [handleCustomFilter, row, row._valuesCache]);\n\t// ** Setting a default value for edit mode.\n\tconst valueKey = fieldProperties?.valueKey;\n\tlet defaultValue: any = '';\n\n\tif (editVariant === 'select' && fieldProperties?.is_multiple) {\n\t\tdefaultValue = valueKey ? _.get(row.original, valueKey, []) : [];\n\t} else {\n\t\tdefaultValue = valueKey\n\t\t\t? _.get(row.original, valueKey, row.original[column.id])\n\t\t\t: row.original[column.id];\n\n\t\t// For select fields, if we have a string or numeric value but need an object, try to find the matching option\n\t\tif (editVariant === 'select' && (typeof defaultValue === 'string' || typeof defaultValue === 'number') && col?.editSelectOptions) {\n\t\t\tconst matchingOption = col.editSelectOptions.find((option: any) =>\n\t\t\t\toption.value === defaultValue || option.id === defaultValue || option.name === defaultValue || String(option.id) === String(defaultValue)\n\t\t\t);\n\t\t\tif (matchingOption) {\n\t\t\t\tdefaultValue = matchingOption;\n\t\t\t}\n\t\t}\n\t}\n\n\t// ** Validate a field with Material Table Validation Schema.\n\tconst validate = async (value: any) => {\n\t\ttry {\n\t\t\t// const v = await validationSchema.validateAt( // * * This line has commented for rerendering purpose\n\t\t\tawait validationSchema.validateAt(\n\t\t\t\tcolumn.id,\n\t\t\t\t{\n\t\t\t\t\t// ...row._valuesCache,\n\t\t\t\t\t[column.id]: value\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tabortEarly: false\n\t\t\t\t}\n\t\t\t);\n\t\t\t// if (v) { // * * The if condition has commented for rerendering purpose\n\t\t\tconst fe: any = {}; // field error\n\t\t\tfor (const e in errors) {\n\t\t\t\tif (e != column.id) {\n\t\t\t\t\tfe[e] = errors[e];\n\t\t\t\t}\n\t\t\t}\n\t\t\tsetValidationErrors(fe);\n\t\t\t// }\n\t\t} catch (err) {\n\t\t\tif (err instanceof yup.ValidationError) {\n\t\t\t\tconst e: Record<string, string> = {};\n\t\t\t\terr.inner.forEach((error) => {\n\t\t\t\t\tif (error.path) {\n\t\t\t\t\t\te[error.path] = error.message;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tconst em = { ...errors, ...e };\n\t\t\t\tsetValidationErrors(em);\n\t\t\t}\n\t\t}\n\t};\n\n\n\n\t// ** Detect onChnage to perform the action on an input change.\n\tconst onChange = async (e: any, type: string, selectedData: any) => {\n\t\tconst data = selectedData\n\t\tlet value;\n\t\tswitch (type) {\n\t\t\tcase 'date':\n\t\t\tcase 'file':\n\t\t\tcase 'image':\n\t\t\tcase 'phone':\n\t\t\tcase 'time':\n\t\t\t\tvalue = e;\n\t\t\t\t// setInputValue({ ...inputValue, [column.id]: e });\n\t\t\t\tbreak;\n\t\t\tcase 'text':\n\t\t\tcase 'number':\n\t\t\t\tvalue = e.target.value;\n\t\t\t\t// setInputValue({ ...inputValue, [column.id]: value });\n\t\t\t\tbreak;\n\t\t\tcase 'checkbox':\n\t\t\t\tvalue = e.target.checked;\n\t\t\t\t// setInputValue({ ...inputValue, [column.id]: value });\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tvalue = e.target.value;\n\t\t\t\tbreak;\n\t\t}\n\t\tsetInputValue({ ...inputValue, [column.id]: value });\n\n\t\tif (onChangeRowField) {\n\t\t\tconst v = await onChangeRowField(e, type, row, col, data);\n\t\t\tif (v) {\n\t\t\t\trow._valuesCache = { ...row._valuesCache, ...v };\n\t\t\t\tsetInputValue({ ...inputValue, ...v });\n\t\t\t}\n\t\t}\n\t\tsetInputValue({ ...inputValue, [column.id]: value });\n\t\trow._valuesCache = { ...row._valuesCache, [column.id]: value };\n\t\tsyncFieldValue(row.id, column.id, value);\n\n\t\tawait validate(value);\n\t};\n\n\tuseEffect(() => {\n\t\tsetInputValue({ ...inputValue, ...row._valuesCache });\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [row._valuesCache]);\n\n\tuseEffect(() => {\n\t\tif (!isInitialSet) {\n\t\t\tconst editFields = Object.keys(row._valuesCache || {});\n\t\t\tconst dValues: any = {};\n\n\t\t\trow.getAllCells().forEach((cell) => {\n\t\t\t\tif (\n\t\t\t\t\tcell.column.columnDef?.enableEditing === undefined ||\n\t\t\t\t\tcell.column.columnDef?.enableEditing === true\n\t\t\t\t) {\n\t\t\t\t\tconst { is_multiple, valueKey } =\n\t\t\t\t\t\tcell.column.columnDef?.editProperties || {};\n\t\t\t\t\tconst cellEditVariant = cell.column.columnDef?.editVariant;\n\n\t\t\t\t\tif (editFields.includes(cell.column.id)) {\n\t\t\t\t\t\tconst vl = _.get(row.original, valueKey);\n\t\t\t\t\t\tif (cellEditVariant === 'select' && is_multiple) {\n\t\t\t\t\t\t\tdValues[cell.column.id] = vl\n\t\t\t\t\t\t\t\t? Array.isArray(vl)\n\t\t\t\t\t\t\t\t\t? vl\n\t\t\t\t\t\t\t\t\t: [vl]\n\t\t\t\t\t\t\t\t: [];\n\t\t\t\t\t\t} else if (cellEditVariant === 'date' || cellEditVariant === 'date_time' || cellEditVariant === 'time') {\n\t\t\t\t\t\t\tdValues[cell.column.id] = vl\n\t\t\t\t\t\t\t\t? dayjs(vl).isValid()\n\t\t\t\t\t\t\t\t\t? dayjs(vl)\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t: dayjs(row.original[cell.column.id]).isValid()\n\t\t\t\t\t\t\t\t\t? dayjs(row.original[cell.column.id])\n\t\t\t\t\t\t\t\t\t: undefined;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tdValues[cell.column.id] = _.get(\n\t\t\t\t\t\t\t\trow.original,\n\t\t\t\t\t\t\t\tvalueKey,\n\t\t\t\t\t\t\t\trow.original[cell.column.id]\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\t// setFieldsValues(dValues);\n\t\t\trow._valuesCache = dValues;\n\t\t\tsetInputValue(dValues);\n\t\t\tsetIsInitialSet(true);\n\t\t}\n\t}, [row, editVariant, isInitialSet]);\n\treturn (\n\t\t<>\n\t\t\t{(!editVariant || editVariant === 'number') && (\n\t\t\t\t<TextField\n\t\t\t\t\tdefaultValue={defaultValue}\n\t\t\t\t\t// onBlur={(e) => onBlur(e)}\n\t\t\t\t\t// onKeyDown={onKeyDown}\n\t\t\t\t\tonChange={(e) => onChange(e, editVariant)}\n\t\t\t\t\tvalue={inputValue?.[column.id]}\n\t\t\t\t\tautoFocus={editCols?.[0]?.accessorKey === column.id}\n\t\t\t\t\ttype={editVariant || 'text'}\n\t\t\t\t\terror={errors?.[column.id] ? true : false}\n\t\t\t\t\thelperText={errors?.[column.id]}\n\t\t\t\t\tplaceholder={fieldProperties?.placeholder || ''}\n\t\t\t\t\tname={fieldProperties?.field_name || ''}\n\t\t\t\t\tdisabled={fieldDisbled}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{editVariant === 'select' && (\n\t\t\t\t<Box display='flex' flexDirection='column' width='100%'>\n\t\t\t\t\t<SearchableSelect\n\t\t\t\t\t\tname={fieldProperties?.field_name || ''}\n\t\t\t\t\t\tdefaultValue={defaultValue}\n\t\t\t\t\t\tplaceholder={fieldProperties?.placeholder || ''}\n\t\t\t\t\t\tsearchPlaceholder={`Search ${col.header}`}\n\t\t\t\t\t\tonChange={(e, row) => onChange(e, 'select', row)}\n\t\t\t\t\t\tapiType={fieldProperties?.apiType}\n\t\t\t\t\t\tautoFocus={editCols?.[0]?.accessorKey === column.id}\n\t\t\t\t\t\toptions={col?.editSelectOptions}\n\t\t\t\t\t\tcustomeFilter={customFilter.current}\n\t\t\t\t\t\tfilterKey={fieldProperties?.filterKey}\n\t\t\t\t\t\tlabelKey={fieldProperties?.labelKey}\n\t\t\t\t\t\tvalueKey={fieldProperties?.bindingKey}\n\t\t\t\t\t\tattributes={fieldProperties.attributes}\n\t\t\t\t\t\tisInternal={fieldProperties?.isInternal || !fieldProperties?.apiType}\n\t\t\t\t\t\tmultiple={fieldProperties?.is_multiple}\n\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\tfieldProperties?.is_multiple\n\t\t\t\t\t\t\t\t? Array.isArray(inputValue?.[column.id])\n\t\t\t\t\t\t\t\t\t? inputValue?.[column.id]\n\t\t\t\t\t\t\t\t\t: []\n\t\t\t\t\t\t\t\t: inputValue?.[column.id]\n\t\t\t\t\t\t}\n\t\t\t\t\t\tgetSelectedData={(row) => getSelectedData(fieldProperties?.field_name, row)}\n\t\t\t\t\t\tdisabled={fieldDisbled}\n\t\t\t\t\t/>\n\n\t\t\t\t\t{errors?.[column.id] && (\n\t\t\t\t\t\t<Typography color='theme.error.600' type='s5'>\n\t\t\t\t\t\t\t{errors?.[column.id]}\n\t\t\t\t\t\t</Typography>\n\t\t\t\t\t)}\n\t\t\t\t</Box>\n\t\t\t)}\n\t\t\t{editVariant === 'date' && (\n\t\t\t\t<DatePicker\n\t\t\t\t\tname={fieldProperties?.field_name || ''}\n\t\t\t\t\tdefaultValue={defaultValue}\n\t\t\t\t\tonChange={(v) => onChange(v, 'date')}\n\t\t\t\t\ttextFieldProps={{\n\t\t\t\t\t\tautoFocus: editCols?.[0]?.accessorKey === column.id\n\t\t\t\t\t}}\n\t\t\t\t\terror={errors?.[column.id] ? true : false}\n\t\t\t\t\thelperText={errors?.[column.id]}\n\t\t\t\t\tformat={fieldProperties?.dateFormat}\n\t\t\t\t\tplaceholder={\n\t\t\t\t\t\tfieldProperties?.placeholder || fieldProperties?.dateFormat\n\t\t\t\t\t}\n\t\t\t\t\tvalue={\n\t\t\t\t\t\trow._valuesCache[column.id] && dayjs(row._valuesCache[column.id]).isValid()\n\t\t\t\t\t\t\t? dayjs(row._valuesCache[column.id])\n\t\t\t\t\t\t\t: null\n\t\t\t\t\t}\n\t\t\t\t\tdisabled={fieldDisbled}\n\t\t\t\t\tminDate={fieldProperties?.min_date}\n\t\t\t\t\tmaxDate={fieldProperties?.max_date}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{editVariant === 'date_time' && (\n\t\t\t\t<DateTimePicker\n\t\t\t\t\tname={fieldProperties?.field_name || ''}\n\t\t\t\t\tdefaultValue={defaultValue}\n\t\t\t\t\tonChange={(v) => onChange(v, 'date')}\n\t\t\t\t\ttextFieldProps={{\n\t\t\t\t\t\tautoFocus: editCols?.[0]?.accessorKey === column.id\n\t\t\t\t\t}}\n\t\t\t\t\terror={errors?.[column.id] ? true : false}\n\t\t\t\t\thelperText={errors?.[column.id]}\n\t\t\t\t\tformat={fieldProperties?.dateFormat}\n\t\t\t\t\tplaceholder={\n\t\t\t\t\t\tfieldProperties?.placeholder || fieldProperties?.dateFormat\n\t\t\t\t\t}\n\t\t\t\t\tvalue={\n\t\t\t\t\t\tdayjs(row._valuesCache[column.id]).isValid()\n\t\t\t\t\t\t\t? dayjs(row._valuesCache[column.id])\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t\tdisabled={fieldDisbled}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{editVariant === 'time' && (\n\t\t\t\t<TimePicker\n\t\t\t\t\tname={fieldProperties?.field_name || ''}\n\t\t\t\t\tlabel=''\n\t\t\t\t\tvalue={\n\t\t\t\t\t\tdayjs(row._valuesCache[column.id]).isValid()\n\t\t\t\t\t\t\t? dayjs(row._valuesCache[column.id])\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t\tonChange={(v) => onChange(v, 'time')}\n\t\t\t\t\terror={errors?.[column.id] ? true : false}\n\t\t\t\t\thelperText={errors?.[column.id]}\n\t\t\t\t\tplaceholder={fieldProperties?.placeholder || 'HH:mm A'}\n\t\t\t\t\tdisabled={fieldDisbled}\n\t\t\t\t\tis24hrFormat={fieldProperties?.is24hrFormat}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{(editVariant === 'file' || editVariant === 'image') && (\n\t\t\t\t<Box display='flex' flexDirection='column'>\n\t\t\t\t\t<UploadMedia\n\t\t\t\t\t\tname={fieldProperties?.field_name || 'table_file'}\n\t\t\t\t\t\tdataPosition={0}\n\t\t\t\t\t\tdataName='table_file'\n\t\t\t\t\t\tlabel=''\n\t\t\t\t\t\ttype={editVariant}\n\t\t\t\t\t\tmax_size={10}\n\t\t\t\t\t\tonChange={(v) => onChange(v, 'file')}\n\t\t\t\t\t\terror={errors?.[column.id] ? true : false}\n\t\t\t\t\t\tmultiple={Boolean(column?.is_multiple)}\n\t\t\t\t\t\tvalue={row._valuesCache[column.id]}\n\t\t\t\t\t/>\n\t\t\t\t\t{errors?.[column.id] && (\n\t\t\t\t\t\t<Typography color='theme.error.600' type='s5'>\n\t\t\t\t\t\t\t{errors?.[column.id]}\n\t\t\t\t\t\t</Typography>\n\t\t\t\t\t)}\n\t\t\t\t</Box>\n\t\t\t)}\n\t\t\t{editVariant === 'phone' && (\n\t\t\t\t<PhoneInput\n\t\t\t\t\tname={fieldProperties?.field_name || ''}\n\t\t\t\t\tdefault_value={defaultValue}\n\t\t\t\t\tonChange={(v) => onChange(v, 'phone')}\n\t\t\t\t\ttextFieldProps={{\n\t\t\t\t\t\tautoFocus: editCols?.[0]?.accessorKey === column.id\n\t\t\t\t\t}}\n\t\t\t\t\terror={errors?.[column.id] ? true : false}\n\t\t\t\t\thelperText={errors?.[column.id]}\n\t\t\t\t\tformat={fieldProperties?.dateFormat}\n\t\t\t\t\tplaceholder={\n\t\t\t\t\t\tfieldProperties?.placeholder || fieldProperties?.dateFormat\n\t\t\t\t\t}\n\t\t\t\t\tvalue={row._valuesCache?.[column.id]}\n\t\t\t\t\tdisabled={fieldDisbled}\n\t\t\t\t\tisInlineEditing={true}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{editVariant === 'checkbox' && (\n\t\t\t\t<Checkbox\n\t\t\t\t\tname={fieldProperties?.field_name || ''}\n\t\t\t\t\tdefaultChecked={Boolean(defaultValue)}\n\t\t\t\t\t// checked={Boolean(defaultValue)}\n\t\t\t\t\tonChange={(v) => onChange(v, 'checkbox')}\n\t\t\t\t\terror={errors?.[column.id] ? true : false}\n\t\t\t\t\thelperText={errors?.[column.id]}\n\t\t\t\t\tformat={fieldProperties?.dateFormat}\n\t\t\t\t\tplaceholder={\n\t\t\t\t\t\tfieldProperties?.placeholder || fieldProperties?.dateFormat\n\t\t\t\t\t}\n\t\t\t\t\tvalue={row._valuesCache?.[column.id]}\n\t\t\t\t\tdisabled={fieldDisbled}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</>\n\t);\n};\n\nexport default InlineEditFields;\n"],"names":["col","row","yup","_a","_b","valueKey","_c","_d"],"mappings":"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"}