@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":"use-translations-RGIbWjPM.esm.js","sources":["../../src/hooks/use-translations.ts"],"sourcesContent":["import { useEffect, useState } from 'react'\n// import { useLocation } from 'react-router-dom'\nimport { getI18n, useTranslation } from 'react-i18next'\nimport { loadModuleTranslations } from '../utils/translations'\nimport modules from '../constants/modules'\nimport { useAuth } from '@erpsquad/common/runtime'\nimport { Pathname } from '../constants'\n\n// Global state to prevent duplicate calls across all hook instances\nlet globalLastLoadedModules = ''\nlet globalIsLoading = false\nlet globalInitialLoad = false\n\nexport const useAppTranslations = () => {\n\tconst [isLoading, setIsLoading] = useState(globalInitialLoad)\n\tconst location = window.location\n\tconst i18nInstance = getI18n()\n\tconst { user, loading } = useAuth()\n\tconst { t } = useTranslation()\n\n\tuseEffect(() => {\n\t\tconst erpModules = modules(t)\n\t\tconst currentPath = location.pathname.toLowerCase()\n\t\tif(user?.id && !loading) {\n\t\n\t\t\tconst matchedModule = erpModules.find(\n\t\t\t\t(mod) =>\n\t\t\t\t\tmod.link.toLowerCase() === currentPath ||\n\t\t\t\t\tmod.connectedRoutes?.some((route: string) => currentPath.startsWith(route.toLowerCase()))\n\t\t\t)\n\t\n\t\t\tlet modulesToLoad: string[] = []\n\t\n\t\t\tif (matchedModule?.translationModule) {\n\t\t\t\tmodulesToLoad = [...matchedModule.translationModule, 'common']\n\t\t\t} else if (!matchedModule && (currentPath === Pathname.DASHBOARD || currentPath === Pathname.LANDING_PAGE)) {\n\t\t\t\tmodulesToLoad = ['common']\n\t\t\t}\n\t\n\t\t\tif (modulesToLoad.length > 0) {\n\t\t\t\tconst moduleKey = [...modulesToLoad].sort().join(',')\n\t\n\t\t\t\t// Skip if same modules are already loaded or currently loading\n\t\t\t\tif (globalLastLoadedModules === moduleKey || globalIsLoading) {\n\t\t\t\t\tif (globalInitialLoad) {\n\t\t\t\t\t\tsetIsLoading(false)\n\t\t\t\t\t\tglobalInitialLoad = false\n\t\t\t\t\t}\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\n\t\t\t\tglobalIsLoading = true\n\t\t\t\tglobalLastLoadedModules = moduleKey\n\t\t\t\tsetIsLoading(true)\n\t\n\t\t\t\tloadModuleTranslations(modulesToLoad, i18nInstance).finally(() => {\n\t\t\t\t\tglobalIsLoading = false\n\t\t\t\t\tsetIsLoading(false)\n\t\t\t\t\tglobalInitialLoad = false\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\t// No modules to load, but still need to handle initial load state\n\t\t\t\tif (globalInitialLoad) {\n\t\t\t\t\tsetIsLoading(false)\n\t\t\t\t\tglobalInitialLoad = false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, [location.pathname, t, user, loading])\n\n\treturn { isLoading }\n};\n\nexport default useAppTranslations;\nexport { useTranslation } from 'react-i18next';\n"],"names":[],"mappings":";;;;;;AASA,IAAI,0BAA0B;AAC9B,IAAI,kBAAkB;AACtB,IAAI,oBAAoB;AAEjB,MAAM,qBAAqB,MAAM;AACvC,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,iBAAiB;AAC5D,QAAM,WAAW,OAAO;AACxB,QAAM,eAAe,QAAA;AACrB,QAAM,EAAE,MAAM,QAAA,IAAY,QAAA;AAC1B,QAAM,EAAE,EAAA,IAAM,eAAA;AAEd,YAAU,MAAM;AACf,UAAM,aAAa,QAAQ,CAAC;AAC5B,UAAM,cAAc,SAAS,SAAS,YAAA;AACtC,SAAG,6BAAM,OAAM,CAAC,SAAS;AAExB,YAAM,gBAAgB,WAAW;AAAA,QAChC,CAAC,QAAA;;AACA,qBAAI,KAAK,YAAA,MAAkB,iBAC3B,SAAI,oBAAJ,mBAAqB,KAAK,CAAC,UAAkB,YAAY,WAAW,MAAM,aAAa;AAAA;AAAA,MAAC;AAG1F,UAAI,gBAA0B,CAAA;AAE9B,UAAI,+CAAe,mBAAmB;AACrC,wBAAgB,CAAC,GAAG,cAAc,mBAAmB,QAAQ;AAAA,MAC9D,WAAW,CAAC,kBAAkB,gBAAgB,SAAS,aAAa,gBAAgB,SAAS,eAAe;AAC3G,wBAAgB,CAAC,QAAQ;AAAA,MAC1B;AAEA,UAAI,cAAc,SAAS,GAAG;AAC7B,cAAM,YAAY,CAAC,GAAG,aAAa,EAAE,KAAA,EAAO,KAAK,GAAG;AAGpD,YAAI,4BAA4B,aAAa,iBAAiB;AAC7D,cAAI,mBAAmB;AACtB,yBAAa,KAAK;AAClB,gCAAoB;AAAA,UACrB;AACA;AAAA,QACD;AAEA,0BAAkB;AAClB,kCAA0B;AAC1B,qBAAa,IAAI;AAEjB,+BAAuB,eAAe,YAAY,EAAE,QAAQ,MAAM;AACjE,4BAAkB;AAClB,uBAAa,KAAK;AAClB,8BAAoB;AAAA,QACrB,CAAC;AAAA,MACF,OAAO;AAEN,YAAI,mBAAmB;AACtB,uBAAa,KAAK;AAClB,8BAAoB;AAAA,QACrB;AAAA,MACD;AAAA,IACD;AAAA,EACD,GAAG,CAAC,SAAS,UAAU,GAAG,MAAM,OAAO,CAAC;AAExC,SAAO,EAAE,UAAA;AACV;"}
1
+ {"version":3,"file":"use-translations-BzykVZOP.esm.js","sources":["../../src/hooks/use-translations.ts"],"sourcesContent":["import { useEffect, useState } from 'react'\n// import { useLocation } from 'react-router-dom'\nimport { getI18n, useTranslation } from 'react-i18next'\nimport { loadModuleTranslations } from '../utils/translations'\nimport modules from '../constants/modules'\nimport { useAuth } from '@erpsquad/common/runtime'\nimport { Pathname } from '../constants'\n\n// Global state to prevent duplicate calls across all hook instances\nlet globalLastLoadedModules = ''\nlet globalIsLoading = false\nlet globalInitialLoad = false\n\nexport const useAppTranslations = () => {\n\tconst [isLoading, setIsLoading] = useState(globalInitialLoad)\n\tconst location = window.location\n\tconst i18nInstance = getI18n()\n\tconst { user, loading } = useAuth()\n\tconst { t } = useTranslation()\n\n\tuseEffect(() => {\n\t\tconst erpModules = modules(t)\n\t\tconst currentPath = location.pathname.toLowerCase()\n\t\tif(user?.id && !loading) {\n\t\n\t\t\tconst matchedModule = erpModules.find(\n\t\t\t\t(mod) =>\n\t\t\t\t\tmod.link.toLowerCase() === currentPath ||\n\t\t\t\t\tmod.connectedRoutes?.some((route: string) => currentPath.startsWith(route.toLowerCase()))\n\t\t\t)\n\t\n\t\t\tlet modulesToLoad: string[] = []\n\t\n\t\t\tif (matchedModule?.translationModule) {\n\t\t\t\tmodulesToLoad = [...matchedModule.translationModule, 'common']\n\t\t\t} else if (!matchedModule && (currentPath === Pathname.DASHBOARD || currentPath === Pathname.LANDING_PAGE)) {\n\t\t\t\tmodulesToLoad = ['common']\n\t\t\t}\n\t\n\t\t\tif (modulesToLoad.length > 0) {\n\t\t\t\tconst moduleKey = [...modulesToLoad].sort().join(',')\n\t\n\t\t\t\t// Skip if same modules are already loaded or currently loading\n\t\t\t\tif (globalLastLoadedModules === moduleKey || globalIsLoading) {\n\t\t\t\t\tif (globalInitialLoad) {\n\t\t\t\t\t\tsetIsLoading(false)\n\t\t\t\t\t\tglobalInitialLoad = false\n\t\t\t\t\t}\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\n\t\t\t\tglobalIsLoading = true\n\t\t\t\tglobalLastLoadedModules = moduleKey\n\t\t\t\tsetIsLoading(true)\n\t\n\t\t\t\tloadModuleTranslations(modulesToLoad, i18nInstance).finally(() => {\n\t\t\t\t\tglobalIsLoading = false\n\t\t\t\t\tsetIsLoading(false)\n\t\t\t\t\tglobalInitialLoad = false\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\t// No modules to load, but still need to handle initial load state\n\t\t\t\tif (globalInitialLoad) {\n\t\t\t\t\tsetIsLoading(false)\n\t\t\t\t\tglobalInitialLoad = false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, [location.pathname, t, user, loading])\n\n\treturn { isLoading }\n};\n\nexport default useAppTranslations;\nexport { useTranslation } from 'react-i18next';\n"],"names":[],"mappings":";;;;;;AASA,IAAI,0BAA0B;AAC9B,IAAI,kBAAkB;AACtB,IAAI,oBAAoB;AAEjB,MAAM,qBAAqB,MAAM;AACvC,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,iBAAiB;AAC5D,QAAM,WAAW,OAAO;AACxB,QAAM,eAAe,QAAA;AACrB,QAAM,EAAE,MAAM,QAAA,IAAY,QAAA;AAC1B,QAAM,EAAE,EAAA,IAAM,eAAA;AAEd,YAAU,MAAM;AACf,UAAM,aAAa,QAAQ,CAAC;AAC5B,UAAM,cAAc,SAAS,SAAS,YAAA;AACtC,SAAG,6BAAM,OAAM,CAAC,SAAS;AAExB,YAAM,gBAAgB,WAAW;AAAA,QAChC,CAAC,QAAA;;AACA,qBAAI,KAAK,YAAA,MAAkB,iBAC3B,SAAI,oBAAJ,mBAAqB,KAAK,CAAC,UAAkB,YAAY,WAAW,MAAM,aAAa;AAAA;AAAA,MAAC;AAG1F,UAAI,gBAA0B,CAAA;AAE9B,UAAI,+CAAe,mBAAmB;AACrC,wBAAgB,CAAC,GAAG,cAAc,mBAAmB,QAAQ;AAAA,MAC9D,WAAW,CAAC,kBAAkB,gBAAgB,SAAS,aAAa,gBAAgB,SAAS,eAAe;AAC3G,wBAAgB,CAAC,QAAQ;AAAA,MAC1B;AAEA,UAAI,cAAc,SAAS,GAAG;AAC7B,cAAM,YAAY,CAAC,GAAG,aAAa,EAAE,KAAA,EAAO,KAAK,GAAG;AAGpD,YAAI,4BAA4B,aAAa,iBAAiB;AAC7D,cAAI,mBAAmB;AACtB,yBAAa,KAAK;AAClB,gCAAoB;AAAA,UACrB;AACA;AAAA,QACD;AAEA,0BAAkB;AAClB,kCAA0B;AAC1B,qBAAa,IAAI;AAEjB,+BAAuB,eAAe,YAAY,EAAE,QAAQ,MAAM;AACjE,4BAAkB;AAClB,uBAAa,KAAK;AAClB,8BAAoB;AAAA,QACrB,CAAC;AAAA,MACF,OAAO;AAEN,YAAI,mBAAmB;AACtB,uBAAa,KAAK;AAClB,8BAAoB;AAAA,QACrB;AAAA,MACD;AAAA,IACD;AAAA,EACD,GAAG,CAAC,SAAS,UAAU,GAAG,MAAM,OAAO,CAAC;AAExC,SAAO,EAAE,UAAA;AACV;"}
@@ -2,7 +2,7 @@
2
2
  const React = require("react");
3
3
  const reactI18next = require("react-i18next");
4
4
  const translations = require("./translations-DoVrWLog.js");
5
- const modules = require("./modules-DTRr7zwt.js");
5
+ const modules = require("./modules-BZNWOWrz.js");
6
6
  const runtime = require("@erpsquad/common/runtime");
7
7
  const pathname = require("./pathname-7-q_H5dJ.js");
8
8
  let globalLastLoadedModules = "";
@@ -58,4 +58,4 @@ const useAppTranslations = () => {
58
58
  return { isLoading };
59
59
  };
60
60
  exports.useAppTranslations = useAppTranslations;
61
- //# sourceMappingURL=use-translations-Cn3b4Kqh.js.map
61
+ //# sourceMappingURL=use-translations-CNI_xsIo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-translations-Cn3b4Kqh.js","sources":["../../src/hooks/use-translations.ts"],"sourcesContent":["import { useEffect, useState } from 'react'\n// import { useLocation } from 'react-router-dom'\nimport { getI18n, useTranslation } from 'react-i18next'\nimport { loadModuleTranslations } from '../utils/translations'\nimport modules from '../constants/modules'\nimport { useAuth } from '@erpsquad/common/runtime'\nimport { Pathname } from '../constants'\n\n// Global state to prevent duplicate calls across all hook instances\nlet globalLastLoadedModules = ''\nlet globalIsLoading = false\nlet globalInitialLoad = false\n\nexport const useAppTranslations = () => {\n\tconst [isLoading, setIsLoading] = useState(globalInitialLoad)\n\tconst location = window.location\n\tconst i18nInstance = getI18n()\n\tconst { user, loading } = useAuth()\n\tconst { t } = useTranslation()\n\n\tuseEffect(() => {\n\t\tconst erpModules = modules(t)\n\t\tconst currentPath = location.pathname.toLowerCase()\n\t\tif(user?.id && !loading) {\n\t\n\t\t\tconst matchedModule = erpModules.find(\n\t\t\t\t(mod) =>\n\t\t\t\t\tmod.link.toLowerCase() === currentPath ||\n\t\t\t\t\tmod.connectedRoutes?.some((route: string) => currentPath.startsWith(route.toLowerCase()))\n\t\t\t)\n\t\n\t\t\tlet modulesToLoad: string[] = []\n\t\n\t\t\tif (matchedModule?.translationModule) {\n\t\t\t\tmodulesToLoad = [...matchedModule.translationModule, 'common']\n\t\t\t} else if (!matchedModule && (currentPath === Pathname.DASHBOARD || currentPath === Pathname.LANDING_PAGE)) {\n\t\t\t\tmodulesToLoad = ['common']\n\t\t\t}\n\t\n\t\t\tif (modulesToLoad.length > 0) {\n\t\t\t\tconst moduleKey = [...modulesToLoad].sort().join(',')\n\t\n\t\t\t\t// Skip if same modules are already loaded or currently loading\n\t\t\t\tif (globalLastLoadedModules === moduleKey || globalIsLoading) {\n\t\t\t\t\tif (globalInitialLoad) {\n\t\t\t\t\t\tsetIsLoading(false)\n\t\t\t\t\t\tglobalInitialLoad = false\n\t\t\t\t\t}\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\n\t\t\t\tglobalIsLoading = true\n\t\t\t\tglobalLastLoadedModules = moduleKey\n\t\t\t\tsetIsLoading(true)\n\t\n\t\t\t\tloadModuleTranslations(modulesToLoad, i18nInstance).finally(() => {\n\t\t\t\t\tglobalIsLoading = false\n\t\t\t\t\tsetIsLoading(false)\n\t\t\t\t\tglobalInitialLoad = false\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\t// No modules to load, but still need to handle initial load state\n\t\t\t\tif (globalInitialLoad) {\n\t\t\t\t\tsetIsLoading(false)\n\t\t\t\t\tglobalInitialLoad = false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, [location.pathname, t, user, loading])\n\n\treturn { isLoading }\n};\n\nexport default useAppTranslations;\nexport { useTranslation } from 'react-i18next';\n"],"names":["useState","getI18n","useAuth","useTranslation","useEffect","modules","Pathname","loadModuleTranslations"],"mappings":";;;;;;;AASA,IAAI,0BAA0B;AAC9B,IAAI,kBAAkB;AACtB,IAAI,oBAAoB;AAEjB,MAAM,qBAAqB,MAAM;AACvC,QAAM,CAAC,WAAW,YAAY,IAAIA,MAAAA,SAAS,iBAAiB;AAC5D,QAAM,WAAW,OAAO;AACxB,QAAM,eAAeC,aAAAA,QAAA;AACrB,QAAM,EAAE,MAAM,QAAA,IAAYC,gBAAA;AAC1B,QAAM,EAAE,EAAA,IAAMC,4BAAA;AAEdC,QAAAA,UAAU,MAAM;AACf,UAAM,aAAaC,QAAAA,QAAQ,CAAC;AAC5B,UAAM,cAAc,SAAS,SAAS,YAAA;AACtC,SAAG,6BAAM,OAAM,CAAC,SAAS;AAExB,YAAM,gBAAgB,WAAW;AAAA,QAChC,CAAC,QAAA;;AACA,qBAAI,KAAK,YAAA,MAAkB,iBAC3B,SAAI,oBAAJ,mBAAqB,KAAK,CAAC,UAAkB,YAAY,WAAW,MAAM,aAAa;AAAA;AAAA,MAAC;AAG1F,UAAI,gBAA0B,CAAA;AAE9B,UAAI,+CAAe,mBAAmB;AACrC,wBAAgB,CAAC,GAAG,cAAc,mBAAmB,QAAQ;AAAA,MAC9D,WAAW,CAAC,kBAAkB,gBAAgBC,SAAAA,SAAS,aAAa,gBAAgBA,kBAAS,eAAe;AAC3G,wBAAgB,CAAC,QAAQ;AAAA,MAC1B;AAEA,UAAI,cAAc,SAAS,GAAG;AAC7B,cAAM,YAAY,CAAC,GAAG,aAAa,EAAE,KAAA,EAAO,KAAK,GAAG;AAGpD,YAAI,4BAA4B,aAAa,iBAAiB;AAC7D,cAAI,mBAAmB;AACtB,yBAAa,KAAK;AAClB,gCAAoB;AAAA,UACrB;AACA;AAAA,QACD;AAEA,0BAAkB;AAClB,kCAA0B;AAC1B,qBAAa,IAAI;AAEjBC,qBAAAA,uBAAuB,eAAe,YAAY,EAAE,QAAQ,MAAM;AACjE,4BAAkB;AAClB,uBAAa,KAAK;AAClB,8BAAoB;AAAA,QACrB,CAAC;AAAA,MACF,OAAO;AAEN,YAAI,mBAAmB;AACtB,uBAAa,KAAK;AAClB,8BAAoB;AAAA,QACrB;AAAA,MACD;AAAA,IACD;AAAA,EACD,GAAG,CAAC,SAAS,UAAU,GAAG,MAAM,OAAO,CAAC;AAExC,SAAO,EAAE,UAAA;AACV;;"}
1
+ {"version":3,"file":"use-translations-CNI_xsIo.js","sources":["../../src/hooks/use-translations.ts"],"sourcesContent":["import { useEffect, useState } from 'react'\n// import { useLocation } from 'react-router-dom'\nimport { getI18n, useTranslation } from 'react-i18next'\nimport { loadModuleTranslations } from '../utils/translations'\nimport modules from '../constants/modules'\nimport { useAuth } from '@erpsquad/common/runtime'\nimport { Pathname } from '../constants'\n\n// Global state to prevent duplicate calls across all hook instances\nlet globalLastLoadedModules = ''\nlet globalIsLoading = false\nlet globalInitialLoad = false\n\nexport const useAppTranslations = () => {\n\tconst [isLoading, setIsLoading] = useState(globalInitialLoad)\n\tconst location = window.location\n\tconst i18nInstance = getI18n()\n\tconst { user, loading } = useAuth()\n\tconst { t } = useTranslation()\n\n\tuseEffect(() => {\n\t\tconst erpModules = modules(t)\n\t\tconst currentPath = location.pathname.toLowerCase()\n\t\tif(user?.id && !loading) {\n\t\n\t\t\tconst matchedModule = erpModules.find(\n\t\t\t\t(mod) =>\n\t\t\t\t\tmod.link.toLowerCase() === currentPath ||\n\t\t\t\t\tmod.connectedRoutes?.some((route: string) => currentPath.startsWith(route.toLowerCase()))\n\t\t\t)\n\t\n\t\t\tlet modulesToLoad: string[] = []\n\t\n\t\t\tif (matchedModule?.translationModule) {\n\t\t\t\tmodulesToLoad = [...matchedModule.translationModule, 'common']\n\t\t\t} else if (!matchedModule && (currentPath === Pathname.DASHBOARD || currentPath === Pathname.LANDING_PAGE)) {\n\t\t\t\tmodulesToLoad = ['common']\n\t\t\t}\n\t\n\t\t\tif (modulesToLoad.length > 0) {\n\t\t\t\tconst moduleKey = [...modulesToLoad].sort().join(',')\n\t\n\t\t\t\t// Skip if same modules are already loaded or currently loading\n\t\t\t\tif (globalLastLoadedModules === moduleKey || globalIsLoading) {\n\t\t\t\t\tif (globalInitialLoad) {\n\t\t\t\t\t\tsetIsLoading(false)\n\t\t\t\t\t\tglobalInitialLoad = false\n\t\t\t\t\t}\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\n\t\t\t\tglobalIsLoading = true\n\t\t\t\tglobalLastLoadedModules = moduleKey\n\t\t\t\tsetIsLoading(true)\n\t\n\t\t\t\tloadModuleTranslations(modulesToLoad, i18nInstance).finally(() => {\n\t\t\t\t\tglobalIsLoading = false\n\t\t\t\t\tsetIsLoading(false)\n\t\t\t\t\tglobalInitialLoad = false\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\t// No modules to load, but still need to handle initial load state\n\t\t\t\tif (globalInitialLoad) {\n\t\t\t\t\tsetIsLoading(false)\n\t\t\t\t\tglobalInitialLoad = false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, [location.pathname, t, user, loading])\n\n\treturn { isLoading }\n};\n\nexport default useAppTranslations;\nexport { useTranslation } from 'react-i18next';\n"],"names":["useState","getI18n","useAuth","useTranslation","useEffect","modules","Pathname","loadModuleTranslations"],"mappings":";;;;;;;AASA,IAAI,0BAA0B;AAC9B,IAAI,kBAAkB;AACtB,IAAI,oBAAoB;AAEjB,MAAM,qBAAqB,MAAM;AACvC,QAAM,CAAC,WAAW,YAAY,IAAIA,MAAAA,SAAS,iBAAiB;AAC5D,QAAM,WAAW,OAAO;AACxB,QAAM,eAAeC,aAAAA,QAAA;AACrB,QAAM,EAAE,MAAM,QAAA,IAAYC,gBAAA;AAC1B,QAAM,EAAE,EAAA,IAAMC,4BAAA;AAEdC,QAAAA,UAAU,MAAM;AACf,UAAM,aAAaC,QAAAA,QAAQ,CAAC;AAC5B,UAAM,cAAc,SAAS,SAAS,YAAA;AACtC,SAAG,6BAAM,OAAM,CAAC,SAAS;AAExB,YAAM,gBAAgB,WAAW;AAAA,QAChC,CAAC,QAAA;;AACA,qBAAI,KAAK,YAAA,MAAkB,iBAC3B,SAAI,oBAAJ,mBAAqB,KAAK,CAAC,UAAkB,YAAY,WAAW,MAAM,aAAa;AAAA;AAAA,MAAC;AAG1F,UAAI,gBAA0B,CAAA;AAE9B,UAAI,+CAAe,mBAAmB;AACrC,wBAAgB,CAAC,GAAG,cAAc,mBAAmB,QAAQ;AAAA,MAC9D,WAAW,CAAC,kBAAkB,gBAAgBC,SAAAA,SAAS,aAAa,gBAAgBA,kBAAS,eAAe;AAC3G,wBAAgB,CAAC,QAAQ;AAAA,MAC1B;AAEA,UAAI,cAAc,SAAS,GAAG;AAC7B,cAAM,YAAY,CAAC,GAAG,aAAa,EAAE,KAAA,EAAO,KAAK,GAAG;AAGpD,YAAI,4BAA4B,aAAa,iBAAiB;AAC7D,cAAI,mBAAmB;AACtB,yBAAa,KAAK;AAClB,gCAAoB;AAAA,UACrB;AACA;AAAA,QACD;AAEA,0BAAkB;AAClB,kCAA0B;AAC1B,qBAAa,IAAI;AAEjBC,qBAAAA,uBAAuB,eAAe,YAAY,EAAE,QAAQ,MAAM;AACjE,4BAAkB;AAClB,uBAAa,KAAK;AAClB,8BAAoB;AAAA,QACrB,CAAC;AAAA,MACF,OAAO;AAEN,YAAI,mBAAmB;AACtB,uBAAa,KAAK;AAClB,8BAAoB;AAAA,QACrB;AAAA,MACD;AAAA,IACD;AAAA,EACD,GAAG,CAAC,SAAS,UAAU,GAAG,MAAM,OAAO,CAAC;AAExC,SAAO,EAAE,UAAA;AACV;;"}
@@ -6,7 +6,7 @@ const textField = require("./text-field-Bdux43lV.js");
6
6
  ;/* empty css */
7
7
  const datePicker = require("./date-picker-C0qJ2Ceq.js");
8
8
  const dayjs = require("dayjs");
9
- const searchableSelect = require("./searchable-select-DVUCWWti.js");
9
+ const searchableSelect = require("./searchable-select-_DCkITfk.js");
10
10
  const utils_formatText = require("../utils/format-text/index.js");
11
11
  const api = require("./api-EomXz8pk.js");
12
12
  const api$1 = require("./api-D3c7E20L.js");
@@ -132,4 +132,4 @@ const ValueEditor = (props) => {
132
132
  return /* @__PURE__ */ jsxRuntime.jsx(material.Box, { width: "100%", children: renderOptions() });
133
133
  };
134
134
  exports.ValueEditor = ValueEditor;
135
- //# sourceMappingURL=value-editor-Br7X_wEB.js.map
135
+ //# sourceMappingURL=value-editor-BSS9Ns2T.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"value-editor-Br7X_wEB.js","sources":["../../src/components/filter/components/value-editor.tsx"],"sourcesContent":["import { useMemo, useCallback } from 'react';\nimport { Box } from '@mui/material';\nimport TextField from '../../text-field/text-field';\nimport { ValueEditorProps } from 'react-querybuilder';\nimport '../filter.scss';\nimport DatePicker from '../../date-picker/date-picker';\nimport dayjs from 'dayjs';\n\nimport SearchableSelect from '../../searchable-select';\nimport _ from 'lodash';\nimport { formatLabel } from '../../../utils/format-text';\nimport { getToken } from '@/utils';\nimport { getV1FilterFilterTable } from '../../../api-client/api.system-feature/api';\n\nconst getFilterTableFields = async (\n\ttableName: string,\n\tsearchText: string,\n\tlimit: number,\n\toffset: number = 0\n) => {\n\ttry {\n\t\tconst tokenObj = getToken();\n\t\tconst response = await getV1FilterFilterTable({\n\t\t\ttable: tableName,\n\t\t\tsearch: searchText,\n\t\t\tlimit: limit,\n\t\t\toffset: offset,\n\t\t\t'x-token': tokenObj['x-token'],\n\t\t\t'x-timezone': String(tokenObj['x-timezone'])\n\t\t});\n\n\t\t// response could be of several types, but use optional chaining and type narrowing\n\t\tif ('data' in response && response.data) {\n\t\t\tconst result: any[] = (response.data as any)?.result ?? [];\n\t\t\tconst totalCount: number = (response as any)?.pagination?.totalCount ?? result.length;\n\t\t\tconst items = result.map((r: any) => ({ label: r.name, value: r.id }));\n\t\t\treturn { items, totalCount };\n\t\t}\n\t\treturn { items: [], totalCount: 0 };\n\t} catch {\n\t\treturn { items: [], totalCount: 0 };\n\t}\n};\n\nconst ValueEditor = (props: ValueEditorProps) => {\n\t// eslint-disable-next-line\n\tlet { values, value, handleOnChange, fieldData, rule, ...rest } = props;\n\n\tif (!value && fieldData.inputType == 'select') {\n\t\tvalue = null;\n\t} else if (!Array.isArray(value) && fieldData.inputType == 'select') {\n\t\tvalue = [];\n\t}\n\n\tconst isDisabled = useMemo(() => {\n\t\treturn rule.operator === 'null' || rule.operator === 'notNull';\n\t}, [rule.operator]);\n\n\tconst customFetch = useCallback(\n\t\tasync (params: any) => {\n\t\t\tconst search = params?.search || '';\n\t\t\tconst limit = params?.limit || 25;\n\t\t\tconst offset = params?.skip || 0;\n\t\t\tif (fieldData.table) {\n\t\t\t\tconst data = await getFilterTableFields(fieldData.table, search, limit, offset);\n\t\t\t\tconst optionData = data.items.map((r: any) => ({ id: r.value, value: r.value, label: r.label }));\n\t\t\t\treturn { data: optionData, pagination: { totalCount: data.totalCount } };\n\t\t\t} else {\n\t\t\t\t// const searchedOptions =\n\t\t\t\t// \tvalues?.filter((opt) => opt.label?.toLowerCase().includes(search.toLowerCase())) ||\n\t\t\t\t// \t[];\n\t\t\t\tconst optionData = values?.map((item: any) => ({\n\t\t\t\t\t...item,\n\t\t\t\t\tvalue: item?.name,\n\t\t\t\t\tlabel: item.label ? formatLabel(item.label) : ''\n\t\t\t\t}));\n\t\t\t\treturn {\n\t\t\t\t\tdata: optionData,\n\t\t\t\t\tpagination: { totalCount: optionData.length }\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t\t[fieldData.table, values]\n\t);\n\n\tconst renderOptions = () => {\n\t\tswitch (fieldData.inputType) {\n\t\t\tcase 'select':\n\t\t\t\treturn (\n\t\t\t\t\t<SearchableSelect\n\t\t\t\t\t\tkey={fieldData.name}\n\t\t\t\t\t\tlabel=''\n\t\t\t\t\t\tname='insurance_account'\n\t\t\t\t\t\tplaceholder='Select'\n\t\t\t\t\t\tonChange={(e: any, selected: any) => {\n\t\t\t\t\t\t\tconst mappedValue = selected?.map((i: any) => ({\n\t\t\t\t\t\t\t\t...i,\n\t\t\t\t\t\t\t\tname: i?.value\n\t\t\t\t\t\t\t}))\n\t\t\t\t\t\t\thandleOnChange(mappedValue)\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tvalue={value?.map(i => i?.value)}\n\t\t\t\t\t\tmultiple={true}\n\t\t\t\t\t\tcustomFetchApi={customFetch}\n\t\t\t\t\t\tdisabled={isDisabled}\n\t\t\t\t\t\tonChipRemove={() => handleOnChange([])}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\tcase 'date':\n\t\t\t\treturn (\n\t\t\t\t\t<DatePicker\n\t\t\t\t\t\tonChange={(val) =>\n\t\t\t\t\t\t\thandleOnChange(\n\t\t\t\t\t\t\t\tdayjs(val).isValid() ? dayjs(val).format('YYYY-MM-DD') : ''\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalue={value ? dayjs(value) : null}\n\t\t\t\t\t\tdisabled={isDisabled}\n\t\t\t\t\t\tslotProps={{\n\t\t\t\t\t\t\ttextField: {\n\t\t\t\t\t\t\t\tplaceholder: 'YYYY-MM-DD',\n\t\t\t\t\t\t\t\tclassName: 'select-drps'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tformat='YYYY-MM-DD'\n\t\t\t\t\t/>\n\t\t\t\t);\n\n\t\t\tdefault:\n\t\t\t\treturn (\n\t\t\t\t\t<TextField\n\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\tonChange={(e: any) => {\n\t\t\t\t\t\t\thandleOnChange(e.target.value);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\t{...rest}\n\t\t\t\t\t\tinputProps={{\n\t\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t\tfontSize: '0.8125rem'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tclassName='select-drps'\n\t\t\t\t\t\ttype={fieldData.inputType}\n\t\t\t\t\t\tdisabled={isDisabled}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t}\n\t};\n\n\treturn <Box width='100%'>{renderOptions()}</Box>;\n};\n\nexport { ValueEditor };\nexport default ValueEditor;\n"],"names":["getToken","getV1FilterFilterTable","useMemo","useCallback","formatLabel","jsx","SearchableSelect","DatePicker","TextField","Box"],"mappings":"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"}
1
+ {"version":3,"file":"value-editor-BSS9Ns2T.js","sources":["../../src/components/filter/components/value-editor.tsx"],"sourcesContent":["import { useMemo, useCallback } from 'react';\nimport { Box } from '@mui/material';\nimport TextField from '../../text-field/text-field';\nimport { ValueEditorProps } from 'react-querybuilder';\nimport '../filter.scss';\nimport DatePicker from '../../date-picker/date-picker';\nimport dayjs from 'dayjs';\n\nimport SearchableSelect from '../../searchable-select';\nimport _ from 'lodash';\nimport { formatLabel } from '../../../utils/format-text';\nimport { getToken } from '@/utils';\nimport { getV1FilterFilterTable } from '../../../api-client/api.system-feature/api';\n\nconst getFilterTableFields = async (\n\ttableName: string,\n\tsearchText: string,\n\tlimit: number,\n\toffset: number = 0\n) => {\n\ttry {\n\t\tconst tokenObj = getToken();\n\t\tconst response = await getV1FilterFilterTable({\n\t\t\ttable: tableName,\n\t\t\tsearch: searchText,\n\t\t\tlimit: limit,\n\t\t\toffset: offset,\n\t\t\t'x-token': tokenObj['x-token'],\n\t\t\t'x-timezone': String(tokenObj['x-timezone'])\n\t\t});\n\n\t\t// response could be of several types, but use optional chaining and type narrowing\n\t\tif ('data' in response && response.data) {\n\t\t\tconst result: any[] = (response.data as any)?.result ?? [];\n\t\t\tconst totalCount: number = (response as any)?.pagination?.totalCount ?? result.length;\n\t\t\tconst items = result.map((r: any) => ({ label: r.name, value: r.id }));\n\t\t\treturn { items, totalCount };\n\t\t}\n\t\treturn { items: [], totalCount: 0 };\n\t} catch {\n\t\treturn { items: [], totalCount: 0 };\n\t}\n};\n\nconst ValueEditor = (props: ValueEditorProps) => {\n\t// eslint-disable-next-line\n\tlet { values, value, handleOnChange, fieldData, rule, ...rest } = props;\n\n\tif (!value && fieldData.inputType == 'select') {\n\t\tvalue = null;\n\t} else if (!Array.isArray(value) && fieldData.inputType == 'select') {\n\t\tvalue = [];\n\t}\n\n\tconst isDisabled = useMemo(() => {\n\t\treturn rule.operator === 'null' || rule.operator === 'notNull';\n\t}, [rule.operator]);\n\n\tconst customFetch = useCallback(\n\t\tasync (params: any) => {\n\t\t\tconst search = params?.search || '';\n\t\t\tconst limit = params?.limit || 25;\n\t\t\tconst offset = params?.skip || 0;\n\t\t\tif (fieldData.table) {\n\t\t\t\tconst data = await getFilterTableFields(fieldData.table, search, limit, offset);\n\t\t\t\tconst optionData = data.items.map((r: any) => ({ id: r.value, value: r.value, label: r.label }));\n\t\t\t\treturn { data: optionData, pagination: { totalCount: data.totalCount } };\n\t\t\t} else {\n\t\t\t\t// const searchedOptions =\n\t\t\t\t// \tvalues?.filter((opt) => opt.label?.toLowerCase().includes(search.toLowerCase())) ||\n\t\t\t\t// \t[];\n\t\t\t\tconst optionData = values?.map((item: any) => ({\n\t\t\t\t\t...item,\n\t\t\t\t\tvalue: item?.name,\n\t\t\t\t\tlabel: item.label ? formatLabel(item.label) : ''\n\t\t\t\t}));\n\t\t\t\treturn {\n\t\t\t\t\tdata: optionData,\n\t\t\t\t\tpagination: { totalCount: optionData.length }\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t\t[fieldData.table, values]\n\t);\n\n\tconst renderOptions = () => {\n\t\tswitch (fieldData.inputType) {\n\t\t\tcase 'select':\n\t\t\t\treturn (\n\t\t\t\t\t<SearchableSelect\n\t\t\t\t\t\tkey={fieldData.name}\n\t\t\t\t\t\tlabel=''\n\t\t\t\t\t\tname='insurance_account'\n\t\t\t\t\t\tplaceholder='Select'\n\t\t\t\t\t\tonChange={(e: any, selected: any) => {\n\t\t\t\t\t\t\tconst mappedValue = selected?.map((i: any) => ({\n\t\t\t\t\t\t\t\t...i,\n\t\t\t\t\t\t\t\tname: i?.value\n\t\t\t\t\t\t\t}))\n\t\t\t\t\t\t\thandleOnChange(mappedValue)\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tvalue={value?.map(i => i?.value)}\n\t\t\t\t\t\tmultiple={true}\n\t\t\t\t\t\tcustomFetchApi={customFetch}\n\t\t\t\t\t\tdisabled={isDisabled}\n\t\t\t\t\t\tonChipRemove={() => handleOnChange([])}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\tcase 'date':\n\t\t\t\treturn (\n\t\t\t\t\t<DatePicker\n\t\t\t\t\t\tonChange={(val) =>\n\t\t\t\t\t\t\thandleOnChange(\n\t\t\t\t\t\t\t\tdayjs(val).isValid() ? dayjs(val).format('YYYY-MM-DD') : ''\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalue={value ? dayjs(value) : null}\n\t\t\t\t\t\tdisabled={isDisabled}\n\t\t\t\t\t\tslotProps={{\n\t\t\t\t\t\t\ttextField: {\n\t\t\t\t\t\t\t\tplaceholder: 'YYYY-MM-DD',\n\t\t\t\t\t\t\t\tclassName: 'select-drps'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tformat='YYYY-MM-DD'\n\t\t\t\t\t/>\n\t\t\t\t);\n\n\t\t\tdefault:\n\t\t\t\treturn (\n\t\t\t\t\t<TextField\n\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\tonChange={(e: any) => {\n\t\t\t\t\t\t\thandleOnChange(e.target.value);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\t{...rest}\n\t\t\t\t\t\tinputProps={{\n\t\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t\tfontSize: '0.8125rem'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tclassName='select-drps'\n\t\t\t\t\t\ttype={fieldData.inputType}\n\t\t\t\t\t\tdisabled={isDisabled}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t}\n\t};\n\n\treturn <Box width='100%'>{renderOptions()}</Box>;\n};\n\nexport { ValueEditor };\nexport default ValueEditor;\n"],"names":["getToken","getV1FilterFilterTable","useMemo","useCallback","formatLabel","jsx","SearchableSelect","DatePicker","TextField","Box"],"mappings":"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"}
@@ -5,7 +5,7 @@ import { T as TextField } from "./text-field-CPrqrrio.esm.js";
5
5
  /* empty css */
6
6
  import { D as DatePicker } from "./date-picker-CqiwV3fq.esm.js";
7
7
  import dayjs from "dayjs";
8
- import { S as SearchableSelect } from "./searchable-select-CcG1qflA.esm.js";
8
+ import { S as SearchableSelect } from "./searchable-select-0F6E4XAr.esm.js";
9
9
  import { formatLabel } from "../utils/format-text/index.esm.js";
10
10
  import { ab as getToken } from "./api-BIVCMSwW.esm.js";
11
11
  import { e as getV1FilterFilterTable } from "./api-DBmWILBN.esm.js";
@@ -133,4 +133,4 @@ const ValueEditor = (props) => {
133
133
  export {
134
134
  ValueEditor as V
135
135
  };
136
- //# sourceMappingURL=value-editor-DkDNIrZ4.esm.js.map
136
+ //# sourceMappingURL=value-editor-DQ1qgZ2u.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"value-editor-DkDNIrZ4.esm.js","sources":["../../src/components/filter/components/value-editor.tsx"],"sourcesContent":["import { useMemo, useCallback } from 'react';\nimport { Box } from '@mui/material';\nimport TextField from '../../text-field/text-field';\nimport { ValueEditorProps } from 'react-querybuilder';\nimport '../filter.scss';\nimport DatePicker from '../../date-picker/date-picker';\nimport dayjs from 'dayjs';\n\nimport SearchableSelect from '../../searchable-select';\nimport _ from 'lodash';\nimport { formatLabel } from '../../../utils/format-text';\nimport { getToken } from '@/utils';\nimport { getV1FilterFilterTable } from '../../../api-client/api.system-feature/api';\n\nconst getFilterTableFields = async (\n\ttableName: string,\n\tsearchText: string,\n\tlimit: number,\n\toffset: number = 0\n) => {\n\ttry {\n\t\tconst tokenObj = getToken();\n\t\tconst response = await getV1FilterFilterTable({\n\t\t\ttable: tableName,\n\t\t\tsearch: searchText,\n\t\t\tlimit: limit,\n\t\t\toffset: offset,\n\t\t\t'x-token': tokenObj['x-token'],\n\t\t\t'x-timezone': String(tokenObj['x-timezone'])\n\t\t});\n\n\t\t// response could be of several types, but use optional chaining and type narrowing\n\t\tif ('data' in response && response.data) {\n\t\t\tconst result: any[] = (response.data as any)?.result ?? [];\n\t\t\tconst totalCount: number = (response as any)?.pagination?.totalCount ?? result.length;\n\t\t\tconst items = result.map((r: any) => ({ label: r.name, value: r.id }));\n\t\t\treturn { items, totalCount };\n\t\t}\n\t\treturn { items: [], totalCount: 0 };\n\t} catch {\n\t\treturn { items: [], totalCount: 0 };\n\t}\n};\n\nconst ValueEditor = (props: ValueEditorProps) => {\n\t// eslint-disable-next-line\n\tlet { values, value, handleOnChange, fieldData, rule, ...rest } = props;\n\n\tif (!value && fieldData.inputType == 'select') {\n\t\tvalue = null;\n\t} else if (!Array.isArray(value) && fieldData.inputType == 'select') {\n\t\tvalue = [];\n\t}\n\n\tconst isDisabled = useMemo(() => {\n\t\treturn rule.operator === 'null' || rule.operator === 'notNull';\n\t}, [rule.operator]);\n\n\tconst customFetch = useCallback(\n\t\tasync (params: any) => {\n\t\t\tconst search = params?.search || '';\n\t\t\tconst limit = params?.limit || 25;\n\t\t\tconst offset = params?.skip || 0;\n\t\t\tif (fieldData.table) {\n\t\t\t\tconst data = await getFilterTableFields(fieldData.table, search, limit, offset);\n\t\t\t\tconst optionData = data.items.map((r: any) => ({ id: r.value, value: r.value, label: r.label }));\n\t\t\t\treturn { data: optionData, pagination: { totalCount: data.totalCount } };\n\t\t\t} else {\n\t\t\t\t// const searchedOptions =\n\t\t\t\t// \tvalues?.filter((opt) => opt.label?.toLowerCase().includes(search.toLowerCase())) ||\n\t\t\t\t// \t[];\n\t\t\t\tconst optionData = values?.map((item: any) => ({\n\t\t\t\t\t...item,\n\t\t\t\t\tvalue: item?.name,\n\t\t\t\t\tlabel: item.label ? formatLabel(item.label) : ''\n\t\t\t\t}));\n\t\t\t\treturn {\n\t\t\t\t\tdata: optionData,\n\t\t\t\t\tpagination: { totalCount: optionData.length }\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t\t[fieldData.table, values]\n\t);\n\n\tconst renderOptions = () => {\n\t\tswitch (fieldData.inputType) {\n\t\t\tcase 'select':\n\t\t\t\treturn (\n\t\t\t\t\t<SearchableSelect\n\t\t\t\t\t\tkey={fieldData.name}\n\t\t\t\t\t\tlabel=''\n\t\t\t\t\t\tname='insurance_account'\n\t\t\t\t\t\tplaceholder='Select'\n\t\t\t\t\t\tonChange={(e: any, selected: any) => {\n\t\t\t\t\t\t\tconst mappedValue = selected?.map((i: any) => ({\n\t\t\t\t\t\t\t\t...i,\n\t\t\t\t\t\t\t\tname: i?.value\n\t\t\t\t\t\t\t}))\n\t\t\t\t\t\t\thandleOnChange(mappedValue)\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tvalue={value?.map(i => i?.value)}\n\t\t\t\t\t\tmultiple={true}\n\t\t\t\t\t\tcustomFetchApi={customFetch}\n\t\t\t\t\t\tdisabled={isDisabled}\n\t\t\t\t\t\tonChipRemove={() => handleOnChange([])}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\tcase 'date':\n\t\t\t\treturn (\n\t\t\t\t\t<DatePicker\n\t\t\t\t\t\tonChange={(val) =>\n\t\t\t\t\t\t\thandleOnChange(\n\t\t\t\t\t\t\t\tdayjs(val).isValid() ? dayjs(val).format('YYYY-MM-DD') : ''\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalue={value ? dayjs(value) : null}\n\t\t\t\t\t\tdisabled={isDisabled}\n\t\t\t\t\t\tslotProps={{\n\t\t\t\t\t\t\ttextField: {\n\t\t\t\t\t\t\t\tplaceholder: 'YYYY-MM-DD',\n\t\t\t\t\t\t\t\tclassName: 'select-drps'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tformat='YYYY-MM-DD'\n\t\t\t\t\t/>\n\t\t\t\t);\n\n\t\t\tdefault:\n\t\t\t\treturn (\n\t\t\t\t\t<TextField\n\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\tonChange={(e: any) => {\n\t\t\t\t\t\t\thandleOnChange(e.target.value);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\t{...rest}\n\t\t\t\t\t\tinputProps={{\n\t\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t\tfontSize: '0.8125rem'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tclassName='select-drps'\n\t\t\t\t\t\ttype={fieldData.inputType}\n\t\t\t\t\t\tdisabled={isDisabled}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t}\n\t};\n\n\treturn <Box width='100%'>{renderOptions()}</Box>;\n};\n\nexport { ValueEditor };\nexport default ValueEditor;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"value-editor-DQ1qgZ2u.esm.js","sources":["../../src/components/filter/components/value-editor.tsx"],"sourcesContent":["import { useMemo, useCallback } from 'react';\nimport { Box } from '@mui/material';\nimport TextField from '../../text-field/text-field';\nimport { ValueEditorProps } from 'react-querybuilder';\nimport '../filter.scss';\nimport DatePicker from '../../date-picker/date-picker';\nimport dayjs from 'dayjs';\n\nimport SearchableSelect from '../../searchable-select';\nimport _ from 'lodash';\nimport { formatLabel } from '../../../utils/format-text';\nimport { getToken } from '@/utils';\nimport { getV1FilterFilterTable } from '../../../api-client/api.system-feature/api';\n\nconst getFilterTableFields = async (\n\ttableName: string,\n\tsearchText: string,\n\tlimit: number,\n\toffset: number = 0\n) => {\n\ttry {\n\t\tconst tokenObj = getToken();\n\t\tconst response = await getV1FilterFilterTable({\n\t\t\ttable: tableName,\n\t\t\tsearch: searchText,\n\t\t\tlimit: limit,\n\t\t\toffset: offset,\n\t\t\t'x-token': tokenObj['x-token'],\n\t\t\t'x-timezone': String(tokenObj['x-timezone'])\n\t\t});\n\n\t\t// response could be of several types, but use optional chaining and type narrowing\n\t\tif ('data' in response && response.data) {\n\t\t\tconst result: any[] = (response.data as any)?.result ?? [];\n\t\t\tconst totalCount: number = (response as any)?.pagination?.totalCount ?? result.length;\n\t\t\tconst items = result.map((r: any) => ({ label: r.name, value: r.id }));\n\t\t\treturn { items, totalCount };\n\t\t}\n\t\treturn { items: [], totalCount: 0 };\n\t} catch {\n\t\treturn { items: [], totalCount: 0 };\n\t}\n};\n\nconst ValueEditor = (props: ValueEditorProps) => {\n\t// eslint-disable-next-line\n\tlet { values, value, handleOnChange, fieldData, rule, ...rest } = props;\n\n\tif (!value && fieldData.inputType == 'select') {\n\t\tvalue = null;\n\t} else if (!Array.isArray(value) && fieldData.inputType == 'select') {\n\t\tvalue = [];\n\t}\n\n\tconst isDisabled = useMemo(() => {\n\t\treturn rule.operator === 'null' || rule.operator === 'notNull';\n\t}, [rule.operator]);\n\n\tconst customFetch = useCallback(\n\t\tasync (params: any) => {\n\t\t\tconst search = params?.search || '';\n\t\t\tconst limit = params?.limit || 25;\n\t\t\tconst offset = params?.skip || 0;\n\t\t\tif (fieldData.table) {\n\t\t\t\tconst data = await getFilterTableFields(fieldData.table, search, limit, offset);\n\t\t\t\tconst optionData = data.items.map((r: any) => ({ id: r.value, value: r.value, label: r.label }));\n\t\t\t\treturn { data: optionData, pagination: { totalCount: data.totalCount } };\n\t\t\t} else {\n\t\t\t\t// const searchedOptions =\n\t\t\t\t// \tvalues?.filter((opt) => opt.label?.toLowerCase().includes(search.toLowerCase())) ||\n\t\t\t\t// \t[];\n\t\t\t\tconst optionData = values?.map((item: any) => ({\n\t\t\t\t\t...item,\n\t\t\t\t\tvalue: item?.name,\n\t\t\t\t\tlabel: item.label ? formatLabel(item.label) : ''\n\t\t\t\t}));\n\t\t\t\treturn {\n\t\t\t\t\tdata: optionData,\n\t\t\t\t\tpagination: { totalCount: optionData.length }\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t\t[fieldData.table, values]\n\t);\n\n\tconst renderOptions = () => {\n\t\tswitch (fieldData.inputType) {\n\t\t\tcase 'select':\n\t\t\t\treturn (\n\t\t\t\t\t<SearchableSelect\n\t\t\t\t\t\tkey={fieldData.name}\n\t\t\t\t\t\tlabel=''\n\t\t\t\t\t\tname='insurance_account'\n\t\t\t\t\t\tplaceholder='Select'\n\t\t\t\t\t\tonChange={(e: any, selected: any) => {\n\t\t\t\t\t\t\tconst mappedValue = selected?.map((i: any) => ({\n\t\t\t\t\t\t\t\t...i,\n\t\t\t\t\t\t\t\tname: i?.value\n\t\t\t\t\t\t\t}))\n\t\t\t\t\t\t\thandleOnChange(mappedValue)\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tvalue={value?.map(i => i?.value)}\n\t\t\t\t\t\tmultiple={true}\n\t\t\t\t\t\tcustomFetchApi={customFetch}\n\t\t\t\t\t\tdisabled={isDisabled}\n\t\t\t\t\t\tonChipRemove={() => handleOnChange([])}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\tcase 'date':\n\t\t\t\treturn (\n\t\t\t\t\t<DatePicker\n\t\t\t\t\t\tonChange={(val) =>\n\t\t\t\t\t\t\thandleOnChange(\n\t\t\t\t\t\t\t\tdayjs(val).isValid() ? dayjs(val).format('YYYY-MM-DD') : ''\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalue={value ? dayjs(value) : null}\n\t\t\t\t\t\tdisabled={isDisabled}\n\t\t\t\t\t\tslotProps={{\n\t\t\t\t\t\t\ttextField: {\n\t\t\t\t\t\t\t\tplaceholder: 'YYYY-MM-DD',\n\t\t\t\t\t\t\t\tclassName: 'select-drps'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tformat='YYYY-MM-DD'\n\t\t\t\t\t/>\n\t\t\t\t);\n\n\t\t\tdefault:\n\t\t\t\treturn (\n\t\t\t\t\t<TextField\n\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\tonChange={(e: any) => {\n\t\t\t\t\t\t\thandleOnChange(e.target.value);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\t{...rest}\n\t\t\t\t\t\tinputProps={{\n\t\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t\tfontSize: '0.8125rem'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tclassName='select-drps'\n\t\t\t\t\t\ttype={fieldData.inputType}\n\t\t\t\t\t\tdisabled={isDisabled}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t}\n\t};\n\n\treturn <Box width='100%'>{renderOptions()}</Box>;\n};\n\nexport { ValueEditor };\nexport default ValueEditor;\n"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ import { A as AIDisclaimer } from "./ai-disclaimer-kOtXrSve.esm.js";
7
7
  import "@erpsquad/common/runtime";
8
8
  import { useTranslation } from "react-i18next";
9
9
  import { useForm, FormProvider } from "react-hook-form";
10
- import { D as DynamicSearchSelect } from "./searchable-select-CcG1qflA.esm.js";
10
+ import { D as DynamicSearchSelect } from "./searchable-select-0F6E4XAr.esm.js";
11
11
  const VendorAISummary = ({
12
12
  profileData,
13
13
  isProfileLoading,
@@ -171,4 +171,4 @@ const VendorAISummary = ({
171
171
  export {
172
172
  VendorAISummary as V
173
173
  };
174
- //# sourceMappingURL=vendor-ai-summary-C33oHYPA.esm.js.map
174
+ //# sourceMappingURL=vendor-ai-summary-BA6m2dH9.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"vendor-ai-summary-C33oHYPA.esm.js","sources":["../../src/components/vendor-ai-summary/vendor-ai-summary.tsx"],"sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport { Box, CircularProgress, Button } from \"@mui/material\";\nimport { TrendingUp, TrendingDown, Users, Scale, ChevronDown, Map, X, Trophy } from \"lucide-react\";\nimport { Typography } from \"../../components/typography\";\nimport { AIDisclaimer } from \"../../components/ai-disclaimer\";\nimport { useTranslation } from \"../../hooks\";\nimport { useForm, FormProvider, useWatch } from \"react-hook-form\";\nimport DynamicSelect from \"../../components/form-control/form-builder/form-builder-element/dynamic-select\";\nimport \"./vendor-ai-summary.scss\";\n\nexport interface VendorInsightOut {\n vendor_id: number;\n vendor_name: string | null;\n facts: {\n po_created: number;\n po_delivered: number;\n timely_delivery: number;\n missed_delivery: number;\n delivery_date_unknown: number;\n short_shipment_count: number;\n lead_time_kept: number;\n lead_time_missed: number;\n lead_time_unknown: number;\n price_pattern: Array<{\n item_id: number;\n item_name: string;\n first_price: number;\n last_price: number;\n pct_change: number;\n trend: string;\n n: number;\n }>;\n payment_terms_pattern: Record<string, number>;\n rfq_invited: number;\n rfq_responded: number;\n quick_response_items: string[];\n late_response_items: string[];\n no_response_items: string[];\n };\n insight: string;\n}\n\nexport interface VendorAIProfileProps {\n profileData?: {\n company_id: number;\n vendors: VendorInsightOut[];\n } | null;\n isProfileLoading?: boolean;\n isProfileError?: boolean;\n insightData?: {\n company_id: number;\n vendors: VendorInsightOut[];\n top_recommendations?: Array<{\n vendor_id: number;\n vendor_name: string | null;\n rank: number;\n reason: string;\n }>;\n } | null;\n isInsightLoading?: boolean;\n isInsightError?: boolean;\n onCompare?: (vendorIds: number[]) => void;\n}\n\nexport const VendorAISummary: React.FC<VendorAIProfileProps> = ({\n profileData,\n isProfileLoading,\n isProfileError,\n insightData,\n isInsightLoading,\n isInsightError,\n onCompare,\n}) => {\n const [itemsToShow, setItemsToShow] = useState(3);\n const [selectedVendorOptions, setSelectedVendorOptions] = useState<any[]>([]);\n const [localInsightData, setLocalInsightData] = useState<any>(insightData);\n const { t } = useTranslation();\n\n const methods = useForm({\n defaultValues: { compare_vendors: { list: [] } },\n });\n\n const mainVendorId = profileData?.vendors?.[0]?.vendor_id;\n\n useEffect(() => {\n setLocalInsightData(insightData);\n }, [insightData]);\n\n useEffect(() => {\n // Clear selected comparison vendors when main vendor changes\n methods.reset({ compare_vendors: { list: [] } });\n setSelectedVendorOptions([]);\n setLocalInsightData(null);\n }, [mainVendorId, methods]);\n\n const handleCompare = () => {\n if (onCompare && profileData?.vendors?.[0]) {\n const val = methods.getValues(\"compare_vendors.list\");\n const selectedIds: number[] = Array.isArray(val)\n ? val.map((v: any) => Number(v?.value || v?.id || v))\n : val\n ? [Number(typeof val === \"object\" ? (val as any)?.value : val)]\n : [];\n\n onCompare(selectedIds.filter(Boolean));\n }\n };\n\n const handleRemoveVendor = (vendorToRemove: any) => {\n const idToRemove = vendorToRemove?.value || vendorToRemove?.id || vendorToRemove;\n const updated = selectedVendorOptions.filter((v: any) => \n (v?.value || v?.id || v) !== idToRemove\n ).map(v => v?.value || v?.id || v);\n methods.setValue(\"compare_vendors.list\", updated, { shouldValidate: true, shouldDirty: true, shouldTouch: true });\n setSelectedVendorOptions(prev => prev.filter(v => (v?.value || v?.id || v) !== idToRemove));\n };\n\n if (isProfileLoading) {\n return (\n <Box className=\"vai__loading\">\n <CircularProgress size={28} sx={{ color: \"#10b981\" }} />\n </Box>\n );\n }\n\n if (isProfileError) {\n return (\n <Box className=\"vai__empty\">\n <Typography type=\"s4\">Failed to load vendor profile. Please try again.</Typography>\n </Box>\n );\n }\n\n const vendorData = profileData?.vendors?.[0];\n\n if (!vendorData) {\n return (\n <Box className=\"vai__empty\">\n <Typography type=\"s4\">No vendor data available.</Typography>\n </Box>\n );\n }\n\n const facts = vendorData.facts;\n const pricePatterns = facts?.price_pattern ?? [];\n\n return (\n <FormProvider {...methods}>\n <Box className=\"vai\">\n\n {/* ── Insight ─────────────────────────────────────── */}\n <Box className=\"vai__block\">\n <Box className=\"vai__block-title\">\n <Box className=\"vai__badge vai__badge--green\">\n <Map size={13} />\n <Typography type=\"s4\" weight=\"medium\">Insight</Typography>\n </Box>\n </Box>\n <Typography type=\"s4\" className=\"vai__block-body\">\n {vendorData.insight || \"Vendor has no purchase order or RFQ activity, so its performance and reliability cannot be evaluated at this time.\"}\n </Typography>\n </Box>\n\n <Box className=\"vai__divider\" />\n\n {/* ── Price Patterns ─────────────────────────────── */}\n <Box className=\"vai__block\">\n <Box className=\"vai__block-title\">\n <Box className=\"vai__badge vai__badge--green\">\n <TrendingUp size={13} />\n <Typography type=\"s4\" weight=\"medium\">Price Patterns</Typography>\n </Box>\n </Box>\n\n {pricePatterns.length > 0 ? (\n <Box className=\"vai__price-list\">\n {pricePatterns.slice(0, itemsToShow).map((pattern, idx) => (\n <Box key={idx} className=\"vai__price-row\">\n <span className=\"vai__price-name\">{pattern.item_name}</span>\n <span className={`vai__price-val vai__price-val--${pattern.trend ?? 'flat'}`}>\n {pattern.trend === \"up\"\n ? <TrendingUp size={13} />\n : pattern.trend === \"down\"\n ? <TrendingDown size={13} />\n : null}\n {pattern.pct_change >= 0 ? \"+\" : \"\"}{pattern.pct_change.toFixed(1)}%\n </span>\n </Box>\n ))}\n {pricePatterns.length > itemsToShow && (\n <Box className=\"vai__load-more\" onClick={() => setItemsToShow((p) => p + 5)}>\n <Box className=\"vai__load-more-pill\">\n {t(\"common.load_more\")} <ChevronDown size={13} />\n </Box>\n </Box>\n )}\n </Box>\n ) : (\n <Typography type=\"s5\" className=\"vai__empty-msg\">No recent price trends found.</Typography>\n )}\n </Box>\n\n <Box className=\"vai__divider\" />\n\n {/* ── Compare Vendors ────────────────────────────── */}\n <Box className=\"vai__block\">\n <Box className=\"vai__block-title\">\n <Box className=\"vai__badge vai__badge--green\">\n <Users size={13} />\n <Typography type=\"s4\" weight=\"medium\">Compare Vendors</Typography>\n </Box>\n </Box>\n <Typography type=\"s5\" className=\"vai__block-body--muted\" sx={{ mt: 1, mb: 2 }}>\n Select multiple vendors to compare and get AI recommendations based on pricing, reliability, and past performance.\n </Typography>\n\n <Box className=\"vai__select-wrap\">\n <DynamicSelect\n name=\"list\"\n label=\"\"\n placeholder=\"Search and select vendors\"\n formControl={methods.control}\n fieldArrayName=\"compare_vendors\"\n options={[]}\n is_multiselect={true}\n apiType=\"party\"\n customeFilter={{ \"status.eq\": 1, \"&type.eq\": \"Vendor\" }}\n getSelectedData={(data: any) => {\n if (Array.isArray(data)) {\n setSelectedVendorOptions(data);\n } else if (!data) {\n setSelectedVendorOptions([]);\n } else {\n setSelectedVendorOptions([data]);\n }\n }}\n />\n </Box>\n\n {selectedVendorOptions.length > 0 && (\n <Box className=\"vai__chips\">\n {selectedVendorOptions.map((v: any, idx: number) => (\n <Box key={idx} className=\"vai__chip\">\n <span>{v?.label || v?.name || v?.value || v}</span>\n <X\n size={12}\n className=\"vai__chip-close\"\n onClick={() => handleRemoveVendor(v)}\n />\n </Box>\n ))}\n </Box>\n )}\n\n <Button\n fullWidth\n variant=\"contained\"\n color=\"success\"\n onClick={handleCompare}\n disabled={isInsightLoading || selectedVendorOptions.length < 2}\n className=\"vai__compare-btn\"\n startIcon={isInsightLoading ? <CircularProgress size={16} sx={{ color: '#fff' }} /> : <Scale size={17} />}\n >\n {isInsightLoading ? \"Comparing…\" : \"Compare\"}\n </Button>\n </Box>\n\n {/* ── Recommendations ────────────────────────────── */}\n {isInsightError && (\n <Box className=\"vai__block vai__error\">\n <Typography type=\"s4\">Failed to load comparison. Please try again.</Typography>\n </Box>\n )}\n\n {localInsightData?.top_recommendations && localInsightData.top_recommendations.length > 0 && (\n <>\n <Box className=\"vai__divider\" />\n <Box className=\"vai__block vai__recs\">\n <Box className=\"vai__recs-header\">\n <Box className=\"vai__recs-icon\">\n <Trophy size={16} />\n </Box>\n <Box>\n <Typography type=\"s3\" weight=\"medium\" className=\"vai__recs-title\">\n Top Recommendations\n </Typography>\n </Box>\n </Box>\n\n <Box className=\"vai__recs-list\">\n {localInsightData.top_recommendations.map((rec: any, idx: number) => (\n <Box key={idx} className=\"vai__rec-item\">\n <Box className=\"vai__rec-item-header\">\n <Box className={`vai__rec-rank ${idx === 0 ? 'vai__rec-rank--first' : ''}`}>{rec.rank}</Box>\n {rec.vendor_name && <Typography type=\"s4\" weight=\"medium\" className=\"vai__rec-name\">{rec.vendor_name}</Typography>}\n </Box>\n <Typography type=\"s5\" className=\"vai__rec-reason\">{rec.reason}</Typography>\n </Box>\n ))}\n </Box>\n </Box>\n </>\n )}\n\n <AIDisclaimer showIcon={false}/>\n </Box>\n </FormProvider>\n );\n};\n\nexport default VendorAISummary;\n"],"names":["_a","DynamicSelect"],"mappings":"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"}
1
+ {"version":3,"file":"vendor-ai-summary-BA6m2dH9.esm.js","sources":["../../src/components/vendor-ai-summary/vendor-ai-summary.tsx"],"sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport { Box, CircularProgress, Button } from \"@mui/material\";\nimport { TrendingUp, TrendingDown, Users, Scale, ChevronDown, Map, X, Trophy } from \"lucide-react\";\nimport { Typography } from \"../../components/typography\";\nimport { AIDisclaimer } from \"../../components/ai-disclaimer\";\nimport { useTranslation } from \"../../hooks\";\nimport { useForm, FormProvider, useWatch } from \"react-hook-form\";\nimport DynamicSelect from \"../../components/form-control/form-builder/form-builder-element/dynamic-select\";\nimport \"./vendor-ai-summary.scss\";\n\nexport interface VendorInsightOut {\n vendor_id: number;\n vendor_name: string | null;\n facts: {\n po_created: number;\n po_delivered: number;\n timely_delivery: number;\n missed_delivery: number;\n delivery_date_unknown: number;\n short_shipment_count: number;\n lead_time_kept: number;\n lead_time_missed: number;\n lead_time_unknown: number;\n price_pattern: Array<{\n item_id: number;\n item_name: string;\n first_price: number;\n last_price: number;\n pct_change: number;\n trend: string;\n n: number;\n }>;\n payment_terms_pattern: Record<string, number>;\n rfq_invited: number;\n rfq_responded: number;\n quick_response_items: string[];\n late_response_items: string[];\n no_response_items: string[];\n };\n insight: string;\n}\n\nexport interface VendorAIProfileProps {\n profileData?: {\n company_id: number;\n vendors: VendorInsightOut[];\n } | null;\n isProfileLoading?: boolean;\n isProfileError?: boolean;\n insightData?: {\n company_id: number;\n vendors: VendorInsightOut[];\n top_recommendations?: Array<{\n vendor_id: number;\n vendor_name: string | null;\n rank: number;\n reason: string;\n }>;\n } | null;\n isInsightLoading?: boolean;\n isInsightError?: boolean;\n onCompare?: (vendorIds: number[]) => void;\n}\n\nexport const VendorAISummary: React.FC<VendorAIProfileProps> = ({\n profileData,\n isProfileLoading,\n isProfileError,\n insightData,\n isInsightLoading,\n isInsightError,\n onCompare,\n}) => {\n const [itemsToShow, setItemsToShow] = useState(3);\n const [selectedVendorOptions, setSelectedVendorOptions] = useState<any[]>([]);\n const [localInsightData, setLocalInsightData] = useState<any>(insightData);\n const { t } = useTranslation();\n\n const methods = useForm({\n defaultValues: { compare_vendors: { list: [] } },\n });\n\n const mainVendorId = profileData?.vendors?.[0]?.vendor_id;\n\n useEffect(() => {\n setLocalInsightData(insightData);\n }, [insightData]);\n\n useEffect(() => {\n // Clear selected comparison vendors when main vendor changes\n methods.reset({ compare_vendors: { list: [] } });\n setSelectedVendorOptions([]);\n setLocalInsightData(null);\n }, [mainVendorId, methods]);\n\n const handleCompare = () => {\n if (onCompare && profileData?.vendors?.[0]) {\n const val = methods.getValues(\"compare_vendors.list\");\n const selectedIds: number[] = Array.isArray(val)\n ? val.map((v: any) => Number(v?.value || v?.id || v))\n : val\n ? [Number(typeof val === \"object\" ? (val as any)?.value : val)]\n : [];\n\n onCompare(selectedIds.filter(Boolean));\n }\n };\n\n const handleRemoveVendor = (vendorToRemove: any) => {\n const idToRemove = vendorToRemove?.value || vendorToRemove?.id || vendorToRemove;\n const updated = selectedVendorOptions.filter((v: any) => \n (v?.value || v?.id || v) !== idToRemove\n ).map(v => v?.value || v?.id || v);\n methods.setValue(\"compare_vendors.list\", updated, { shouldValidate: true, shouldDirty: true, shouldTouch: true });\n setSelectedVendorOptions(prev => prev.filter(v => (v?.value || v?.id || v) !== idToRemove));\n };\n\n if (isProfileLoading) {\n return (\n <Box className=\"vai__loading\">\n <CircularProgress size={28} sx={{ color: \"#10b981\" }} />\n </Box>\n );\n }\n\n if (isProfileError) {\n return (\n <Box className=\"vai__empty\">\n <Typography type=\"s4\">Failed to load vendor profile. Please try again.</Typography>\n </Box>\n );\n }\n\n const vendorData = profileData?.vendors?.[0];\n\n if (!vendorData) {\n return (\n <Box className=\"vai__empty\">\n <Typography type=\"s4\">No vendor data available.</Typography>\n </Box>\n );\n }\n\n const facts = vendorData.facts;\n const pricePatterns = facts?.price_pattern ?? [];\n\n return (\n <FormProvider {...methods}>\n <Box className=\"vai\">\n\n {/* ── Insight ─────────────────────────────────────── */}\n <Box className=\"vai__block\">\n <Box className=\"vai__block-title\">\n <Box className=\"vai__badge vai__badge--green\">\n <Map size={13} />\n <Typography type=\"s4\" weight=\"medium\">Insight</Typography>\n </Box>\n </Box>\n <Typography type=\"s4\" className=\"vai__block-body\">\n {vendorData.insight || \"Vendor has no purchase order or RFQ activity, so its performance and reliability cannot be evaluated at this time.\"}\n </Typography>\n </Box>\n\n <Box className=\"vai__divider\" />\n\n {/* ── Price Patterns ─────────────────────────────── */}\n <Box className=\"vai__block\">\n <Box className=\"vai__block-title\">\n <Box className=\"vai__badge vai__badge--green\">\n <TrendingUp size={13} />\n <Typography type=\"s4\" weight=\"medium\">Price Patterns</Typography>\n </Box>\n </Box>\n\n {pricePatterns.length > 0 ? (\n <Box className=\"vai__price-list\">\n {pricePatterns.slice(0, itemsToShow).map((pattern, idx) => (\n <Box key={idx} className=\"vai__price-row\">\n <span className=\"vai__price-name\">{pattern.item_name}</span>\n <span className={`vai__price-val vai__price-val--${pattern.trend ?? 'flat'}`}>\n {pattern.trend === \"up\"\n ? <TrendingUp size={13} />\n : pattern.trend === \"down\"\n ? <TrendingDown size={13} />\n : null}\n {pattern.pct_change >= 0 ? \"+\" : \"\"}{pattern.pct_change.toFixed(1)}%\n </span>\n </Box>\n ))}\n {pricePatterns.length > itemsToShow && (\n <Box className=\"vai__load-more\" onClick={() => setItemsToShow((p) => p + 5)}>\n <Box className=\"vai__load-more-pill\">\n {t(\"common.load_more\")} <ChevronDown size={13} />\n </Box>\n </Box>\n )}\n </Box>\n ) : (\n <Typography type=\"s5\" className=\"vai__empty-msg\">No recent price trends found.</Typography>\n )}\n </Box>\n\n <Box className=\"vai__divider\" />\n\n {/* ── Compare Vendors ────────────────────────────── */}\n <Box className=\"vai__block\">\n <Box className=\"vai__block-title\">\n <Box className=\"vai__badge vai__badge--green\">\n <Users size={13} />\n <Typography type=\"s4\" weight=\"medium\">Compare Vendors</Typography>\n </Box>\n </Box>\n <Typography type=\"s5\" className=\"vai__block-body--muted\" sx={{ mt: 1, mb: 2 }}>\n Select multiple vendors to compare and get AI recommendations based on pricing, reliability, and past performance.\n </Typography>\n\n <Box className=\"vai__select-wrap\">\n <DynamicSelect\n name=\"list\"\n label=\"\"\n placeholder=\"Search and select vendors\"\n formControl={methods.control}\n fieldArrayName=\"compare_vendors\"\n options={[]}\n is_multiselect={true}\n apiType=\"party\"\n customeFilter={{ \"status.eq\": 1, \"&type.eq\": \"Vendor\" }}\n getSelectedData={(data: any) => {\n if (Array.isArray(data)) {\n setSelectedVendorOptions(data);\n } else if (!data) {\n setSelectedVendorOptions([]);\n } else {\n setSelectedVendorOptions([data]);\n }\n }}\n />\n </Box>\n\n {selectedVendorOptions.length > 0 && (\n <Box className=\"vai__chips\">\n {selectedVendorOptions.map((v: any, idx: number) => (\n <Box key={idx} className=\"vai__chip\">\n <span>{v?.label || v?.name || v?.value || v}</span>\n <X\n size={12}\n className=\"vai__chip-close\"\n onClick={() => handleRemoveVendor(v)}\n />\n </Box>\n ))}\n </Box>\n )}\n\n <Button\n fullWidth\n variant=\"contained\"\n color=\"success\"\n onClick={handleCompare}\n disabled={isInsightLoading || selectedVendorOptions.length < 2}\n className=\"vai__compare-btn\"\n startIcon={isInsightLoading ? <CircularProgress size={16} sx={{ color: '#fff' }} /> : <Scale size={17} />}\n >\n {isInsightLoading ? \"Comparing…\" : \"Compare\"}\n </Button>\n </Box>\n\n {/* ── Recommendations ────────────────────────────── */}\n {isInsightError && (\n <Box className=\"vai__block vai__error\">\n <Typography type=\"s4\">Failed to load comparison. Please try again.</Typography>\n </Box>\n )}\n\n {localInsightData?.top_recommendations && localInsightData.top_recommendations.length > 0 && (\n <>\n <Box className=\"vai__divider\" />\n <Box className=\"vai__block vai__recs\">\n <Box className=\"vai__recs-header\">\n <Box className=\"vai__recs-icon\">\n <Trophy size={16} />\n </Box>\n <Box>\n <Typography type=\"s3\" weight=\"medium\" className=\"vai__recs-title\">\n Top Recommendations\n </Typography>\n </Box>\n </Box>\n\n <Box className=\"vai__recs-list\">\n {localInsightData.top_recommendations.map((rec: any, idx: number) => (\n <Box key={idx} className=\"vai__rec-item\">\n <Box className=\"vai__rec-item-header\">\n <Box className={`vai__rec-rank ${idx === 0 ? 'vai__rec-rank--first' : ''}`}>{rec.rank}</Box>\n {rec.vendor_name && <Typography type=\"s4\" weight=\"medium\" className=\"vai__rec-name\">{rec.vendor_name}</Typography>}\n </Box>\n <Typography type=\"s5\" className=\"vai__rec-reason\">{rec.reason}</Typography>\n </Box>\n ))}\n </Box>\n </Box>\n </>\n )}\n\n <AIDisclaimer showIcon={false}/>\n </Box>\n </FormProvider>\n );\n};\n\nexport default VendorAISummary;\n"],"names":["_a","DynamicSelect"],"mappings":"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"}
@@ -8,7 +8,7 @@ const aiDisclaimer = require("./ai-disclaimer-DAecPGGI.js");
8
8
  require("@erpsquad/common/runtime");
9
9
  const reactI18next = require("react-i18next");
10
10
  const reactHookForm = require("react-hook-form");
11
- const searchableSelect = require("./searchable-select-DVUCWWti.js");
11
+ const searchableSelect = require("./searchable-select-_DCkITfk.js");
12
12
  const VendorAISummary = ({
13
13
  profileData,
14
14
  isProfileLoading,
@@ -170,4 +170,4 @@ const VendorAISummary = ({
170
170
  ] }) });
171
171
  };
172
172
  exports.VendorAISummary = VendorAISummary;
173
- //# sourceMappingURL=vendor-ai-summary-zranZkfk.js.map
173
+ //# sourceMappingURL=vendor-ai-summary-DWmAaQ_N.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"vendor-ai-summary-zranZkfk.js","sources":["../../src/components/vendor-ai-summary/vendor-ai-summary.tsx"],"sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport { Box, CircularProgress, Button } from \"@mui/material\";\nimport { TrendingUp, TrendingDown, Users, Scale, ChevronDown, Map, X, Trophy } from \"lucide-react\";\nimport { Typography } from \"../../components/typography\";\nimport { AIDisclaimer } from \"../../components/ai-disclaimer\";\nimport { useTranslation } from \"../../hooks\";\nimport { useForm, FormProvider, useWatch } from \"react-hook-form\";\nimport DynamicSelect from \"../../components/form-control/form-builder/form-builder-element/dynamic-select\";\nimport \"./vendor-ai-summary.scss\";\n\nexport interface VendorInsightOut {\n vendor_id: number;\n vendor_name: string | null;\n facts: {\n po_created: number;\n po_delivered: number;\n timely_delivery: number;\n missed_delivery: number;\n delivery_date_unknown: number;\n short_shipment_count: number;\n lead_time_kept: number;\n lead_time_missed: number;\n lead_time_unknown: number;\n price_pattern: Array<{\n item_id: number;\n item_name: string;\n first_price: number;\n last_price: number;\n pct_change: number;\n trend: string;\n n: number;\n }>;\n payment_terms_pattern: Record<string, number>;\n rfq_invited: number;\n rfq_responded: number;\n quick_response_items: string[];\n late_response_items: string[];\n no_response_items: string[];\n };\n insight: string;\n}\n\nexport interface VendorAIProfileProps {\n profileData?: {\n company_id: number;\n vendors: VendorInsightOut[];\n } | null;\n isProfileLoading?: boolean;\n isProfileError?: boolean;\n insightData?: {\n company_id: number;\n vendors: VendorInsightOut[];\n top_recommendations?: Array<{\n vendor_id: number;\n vendor_name: string | null;\n rank: number;\n reason: string;\n }>;\n } | null;\n isInsightLoading?: boolean;\n isInsightError?: boolean;\n onCompare?: (vendorIds: number[]) => void;\n}\n\nexport const VendorAISummary: React.FC<VendorAIProfileProps> = ({\n profileData,\n isProfileLoading,\n isProfileError,\n insightData,\n isInsightLoading,\n isInsightError,\n onCompare,\n}) => {\n const [itemsToShow, setItemsToShow] = useState(3);\n const [selectedVendorOptions, setSelectedVendorOptions] = useState<any[]>([]);\n const [localInsightData, setLocalInsightData] = useState<any>(insightData);\n const { t } = useTranslation();\n\n const methods = useForm({\n defaultValues: { compare_vendors: { list: [] } },\n });\n\n const mainVendorId = profileData?.vendors?.[0]?.vendor_id;\n\n useEffect(() => {\n setLocalInsightData(insightData);\n }, [insightData]);\n\n useEffect(() => {\n // Clear selected comparison vendors when main vendor changes\n methods.reset({ compare_vendors: { list: [] } });\n setSelectedVendorOptions([]);\n setLocalInsightData(null);\n }, [mainVendorId, methods]);\n\n const handleCompare = () => {\n if (onCompare && profileData?.vendors?.[0]) {\n const val = methods.getValues(\"compare_vendors.list\");\n const selectedIds: number[] = Array.isArray(val)\n ? val.map((v: any) => Number(v?.value || v?.id || v))\n : val\n ? [Number(typeof val === \"object\" ? (val as any)?.value : val)]\n : [];\n\n onCompare(selectedIds.filter(Boolean));\n }\n };\n\n const handleRemoveVendor = (vendorToRemove: any) => {\n const idToRemove = vendorToRemove?.value || vendorToRemove?.id || vendorToRemove;\n const updated = selectedVendorOptions.filter((v: any) => \n (v?.value || v?.id || v) !== idToRemove\n ).map(v => v?.value || v?.id || v);\n methods.setValue(\"compare_vendors.list\", updated, { shouldValidate: true, shouldDirty: true, shouldTouch: true });\n setSelectedVendorOptions(prev => prev.filter(v => (v?.value || v?.id || v) !== idToRemove));\n };\n\n if (isProfileLoading) {\n return (\n <Box className=\"vai__loading\">\n <CircularProgress size={28} sx={{ color: \"#10b981\" }} />\n </Box>\n );\n }\n\n if (isProfileError) {\n return (\n <Box className=\"vai__empty\">\n <Typography type=\"s4\">Failed to load vendor profile. Please try again.</Typography>\n </Box>\n );\n }\n\n const vendorData = profileData?.vendors?.[0];\n\n if (!vendorData) {\n return (\n <Box className=\"vai__empty\">\n <Typography type=\"s4\">No vendor data available.</Typography>\n </Box>\n );\n }\n\n const facts = vendorData.facts;\n const pricePatterns = facts?.price_pattern ?? [];\n\n return (\n <FormProvider {...methods}>\n <Box className=\"vai\">\n\n {/* ── Insight ─────────────────────────────────────── */}\n <Box className=\"vai__block\">\n <Box className=\"vai__block-title\">\n <Box className=\"vai__badge vai__badge--green\">\n <Map size={13} />\n <Typography type=\"s4\" weight=\"medium\">Insight</Typography>\n </Box>\n </Box>\n <Typography type=\"s4\" className=\"vai__block-body\">\n {vendorData.insight || \"Vendor has no purchase order or RFQ activity, so its performance and reliability cannot be evaluated at this time.\"}\n </Typography>\n </Box>\n\n <Box className=\"vai__divider\" />\n\n {/* ── Price Patterns ─────────────────────────────── */}\n <Box className=\"vai__block\">\n <Box className=\"vai__block-title\">\n <Box className=\"vai__badge vai__badge--green\">\n <TrendingUp size={13} />\n <Typography type=\"s4\" weight=\"medium\">Price Patterns</Typography>\n </Box>\n </Box>\n\n {pricePatterns.length > 0 ? (\n <Box className=\"vai__price-list\">\n {pricePatterns.slice(0, itemsToShow).map((pattern, idx) => (\n <Box key={idx} className=\"vai__price-row\">\n <span className=\"vai__price-name\">{pattern.item_name}</span>\n <span className={`vai__price-val vai__price-val--${pattern.trend ?? 'flat'}`}>\n {pattern.trend === \"up\"\n ? <TrendingUp size={13} />\n : pattern.trend === \"down\"\n ? <TrendingDown size={13} />\n : null}\n {pattern.pct_change >= 0 ? \"+\" : \"\"}{pattern.pct_change.toFixed(1)}%\n </span>\n </Box>\n ))}\n {pricePatterns.length > itemsToShow && (\n <Box className=\"vai__load-more\" onClick={() => setItemsToShow((p) => p + 5)}>\n <Box className=\"vai__load-more-pill\">\n {t(\"common.load_more\")} <ChevronDown size={13} />\n </Box>\n </Box>\n )}\n </Box>\n ) : (\n <Typography type=\"s5\" className=\"vai__empty-msg\">No recent price trends found.</Typography>\n )}\n </Box>\n\n <Box className=\"vai__divider\" />\n\n {/* ── Compare Vendors ────────────────────────────── */}\n <Box className=\"vai__block\">\n <Box className=\"vai__block-title\">\n <Box className=\"vai__badge vai__badge--green\">\n <Users size={13} />\n <Typography type=\"s4\" weight=\"medium\">Compare Vendors</Typography>\n </Box>\n </Box>\n <Typography type=\"s5\" className=\"vai__block-body--muted\" sx={{ mt: 1, mb: 2 }}>\n Select multiple vendors to compare and get AI recommendations based on pricing, reliability, and past performance.\n </Typography>\n\n <Box className=\"vai__select-wrap\">\n <DynamicSelect\n name=\"list\"\n label=\"\"\n placeholder=\"Search and select vendors\"\n formControl={methods.control}\n fieldArrayName=\"compare_vendors\"\n options={[]}\n is_multiselect={true}\n apiType=\"party\"\n customeFilter={{ \"status.eq\": 1, \"&type.eq\": \"Vendor\" }}\n getSelectedData={(data: any) => {\n if (Array.isArray(data)) {\n setSelectedVendorOptions(data);\n } else if (!data) {\n setSelectedVendorOptions([]);\n } else {\n setSelectedVendorOptions([data]);\n }\n }}\n />\n </Box>\n\n {selectedVendorOptions.length > 0 && (\n <Box className=\"vai__chips\">\n {selectedVendorOptions.map((v: any, idx: number) => (\n <Box key={idx} className=\"vai__chip\">\n <span>{v?.label || v?.name || v?.value || v}</span>\n <X\n size={12}\n className=\"vai__chip-close\"\n onClick={() => handleRemoveVendor(v)}\n />\n </Box>\n ))}\n </Box>\n )}\n\n <Button\n fullWidth\n variant=\"contained\"\n color=\"success\"\n onClick={handleCompare}\n disabled={isInsightLoading || selectedVendorOptions.length < 2}\n className=\"vai__compare-btn\"\n startIcon={isInsightLoading ? <CircularProgress size={16} sx={{ color: '#fff' }} /> : <Scale size={17} />}\n >\n {isInsightLoading ? \"Comparing…\" : \"Compare\"}\n </Button>\n </Box>\n\n {/* ── Recommendations ────────────────────────────── */}\n {isInsightError && (\n <Box className=\"vai__block vai__error\">\n <Typography type=\"s4\">Failed to load comparison. Please try again.</Typography>\n </Box>\n )}\n\n {localInsightData?.top_recommendations && localInsightData.top_recommendations.length > 0 && (\n <>\n <Box className=\"vai__divider\" />\n <Box className=\"vai__block vai__recs\">\n <Box className=\"vai__recs-header\">\n <Box className=\"vai__recs-icon\">\n <Trophy size={16} />\n </Box>\n <Box>\n <Typography type=\"s3\" weight=\"medium\" className=\"vai__recs-title\">\n Top Recommendations\n </Typography>\n </Box>\n </Box>\n\n <Box className=\"vai__recs-list\">\n {localInsightData.top_recommendations.map((rec: any, idx: number) => (\n <Box key={idx} className=\"vai__rec-item\">\n <Box className=\"vai__rec-item-header\">\n <Box className={`vai__rec-rank ${idx === 0 ? 'vai__rec-rank--first' : ''}`}>{rec.rank}</Box>\n {rec.vendor_name && <Typography type=\"s4\" weight=\"medium\" className=\"vai__rec-name\">{rec.vendor_name}</Typography>}\n </Box>\n <Typography type=\"s5\" className=\"vai__rec-reason\">{rec.reason}</Typography>\n </Box>\n ))}\n </Box>\n </Box>\n </>\n )}\n\n <AIDisclaimer showIcon={false}/>\n </Box>\n </FormProvider>\n );\n};\n\nexport default VendorAISummary;\n"],"names":["useState","useTranslation","useForm","useEffect","_a","jsx","Box","CircularProgress","Typography","FormProvider","jsxs","Map","TrendingUp","TrendingDown","ChevronDown","Users","DynamicSelect","X","Button","Scale","Fragment","Trophy","AIDisclaimer"],"mappings":"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"}
1
+ {"version":3,"file":"vendor-ai-summary-DWmAaQ_N.js","sources":["../../src/components/vendor-ai-summary/vendor-ai-summary.tsx"],"sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport { Box, CircularProgress, Button } from \"@mui/material\";\nimport { TrendingUp, TrendingDown, Users, Scale, ChevronDown, Map, X, Trophy } from \"lucide-react\";\nimport { Typography } from \"../../components/typography\";\nimport { AIDisclaimer } from \"../../components/ai-disclaimer\";\nimport { useTranslation } from \"../../hooks\";\nimport { useForm, FormProvider, useWatch } from \"react-hook-form\";\nimport DynamicSelect from \"../../components/form-control/form-builder/form-builder-element/dynamic-select\";\nimport \"./vendor-ai-summary.scss\";\n\nexport interface VendorInsightOut {\n vendor_id: number;\n vendor_name: string | null;\n facts: {\n po_created: number;\n po_delivered: number;\n timely_delivery: number;\n missed_delivery: number;\n delivery_date_unknown: number;\n short_shipment_count: number;\n lead_time_kept: number;\n lead_time_missed: number;\n lead_time_unknown: number;\n price_pattern: Array<{\n item_id: number;\n item_name: string;\n first_price: number;\n last_price: number;\n pct_change: number;\n trend: string;\n n: number;\n }>;\n payment_terms_pattern: Record<string, number>;\n rfq_invited: number;\n rfq_responded: number;\n quick_response_items: string[];\n late_response_items: string[];\n no_response_items: string[];\n };\n insight: string;\n}\n\nexport interface VendorAIProfileProps {\n profileData?: {\n company_id: number;\n vendors: VendorInsightOut[];\n } | null;\n isProfileLoading?: boolean;\n isProfileError?: boolean;\n insightData?: {\n company_id: number;\n vendors: VendorInsightOut[];\n top_recommendations?: Array<{\n vendor_id: number;\n vendor_name: string | null;\n rank: number;\n reason: string;\n }>;\n } | null;\n isInsightLoading?: boolean;\n isInsightError?: boolean;\n onCompare?: (vendorIds: number[]) => void;\n}\n\nexport const VendorAISummary: React.FC<VendorAIProfileProps> = ({\n profileData,\n isProfileLoading,\n isProfileError,\n insightData,\n isInsightLoading,\n isInsightError,\n onCompare,\n}) => {\n const [itemsToShow, setItemsToShow] = useState(3);\n const [selectedVendorOptions, setSelectedVendorOptions] = useState<any[]>([]);\n const [localInsightData, setLocalInsightData] = useState<any>(insightData);\n const { t } = useTranslation();\n\n const methods = useForm({\n defaultValues: { compare_vendors: { list: [] } },\n });\n\n const mainVendorId = profileData?.vendors?.[0]?.vendor_id;\n\n useEffect(() => {\n setLocalInsightData(insightData);\n }, [insightData]);\n\n useEffect(() => {\n // Clear selected comparison vendors when main vendor changes\n methods.reset({ compare_vendors: { list: [] } });\n setSelectedVendorOptions([]);\n setLocalInsightData(null);\n }, [mainVendorId, methods]);\n\n const handleCompare = () => {\n if (onCompare && profileData?.vendors?.[0]) {\n const val = methods.getValues(\"compare_vendors.list\");\n const selectedIds: number[] = Array.isArray(val)\n ? val.map((v: any) => Number(v?.value || v?.id || v))\n : val\n ? [Number(typeof val === \"object\" ? (val as any)?.value : val)]\n : [];\n\n onCompare(selectedIds.filter(Boolean));\n }\n };\n\n const handleRemoveVendor = (vendorToRemove: any) => {\n const idToRemove = vendorToRemove?.value || vendorToRemove?.id || vendorToRemove;\n const updated = selectedVendorOptions.filter((v: any) => \n (v?.value || v?.id || v) !== idToRemove\n ).map(v => v?.value || v?.id || v);\n methods.setValue(\"compare_vendors.list\", updated, { shouldValidate: true, shouldDirty: true, shouldTouch: true });\n setSelectedVendorOptions(prev => prev.filter(v => (v?.value || v?.id || v) !== idToRemove));\n };\n\n if (isProfileLoading) {\n return (\n <Box className=\"vai__loading\">\n <CircularProgress size={28} sx={{ color: \"#10b981\" }} />\n </Box>\n );\n }\n\n if (isProfileError) {\n return (\n <Box className=\"vai__empty\">\n <Typography type=\"s4\">Failed to load vendor profile. Please try again.</Typography>\n </Box>\n );\n }\n\n const vendorData = profileData?.vendors?.[0];\n\n if (!vendorData) {\n return (\n <Box className=\"vai__empty\">\n <Typography type=\"s4\">No vendor data available.</Typography>\n </Box>\n );\n }\n\n const facts = vendorData.facts;\n const pricePatterns = facts?.price_pattern ?? [];\n\n return (\n <FormProvider {...methods}>\n <Box className=\"vai\">\n\n {/* ── Insight ─────────────────────────────────────── */}\n <Box className=\"vai__block\">\n <Box className=\"vai__block-title\">\n <Box className=\"vai__badge vai__badge--green\">\n <Map size={13} />\n <Typography type=\"s4\" weight=\"medium\">Insight</Typography>\n </Box>\n </Box>\n <Typography type=\"s4\" className=\"vai__block-body\">\n {vendorData.insight || \"Vendor has no purchase order or RFQ activity, so its performance and reliability cannot be evaluated at this time.\"}\n </Typography>\n </Box>\n\n <Box className=\"vai__divider\" />\n\n {/* ── Price Patterns ─────────────────────────────── */}\n <Box className=\"vai__block\">\n <Box className=\"vai__block-title\">\n <Box className=\"vai__badge vai__badge--green\">\n <TrendingUp size={13} />\n <Typography type=\"s4\" weight=\"medium\">Price Patterns</Typography>\n </Box>\n </Box>\n\n {pricePatterns.length > 0 ? (\n <Box className=\"vai__price-list\">\n {pricePatterns.slice(0, itemsToShow).map((pattern, idx) => (\n <Box key={idx} className=\"vai__price-row\">\n <span className=\"vai__price-name\">{pattern.item_name}</span>\n <span className={`vai__price-val vai__price-val--${pattern.trend ?? 'flat'}`}>\n {pattern.trend === \"up\"\n ? <TrendingUp size={13} />\n : pattern.trend === \"down\"\n ? <TrendingDown size={13} />\n : null}\n {pattern.pct_change >= 0 ? \"+\" : \"\"}{pattern.pct_change.toFixed(1)}%\n </span>\n </Box>\n ))}\n {pricePatterns.length > itemsToShow && (\n <Box className=\"vai__load-more\" onClick={() => setItemsToShow((p) => p + 5)}>\n <Box className=\"vai__load-more-pill\">\n {t(\"common.load_more\")} <ChevronDown size={13} />\n </Box>\n </Box>\n )}\n </Box>\n ) : (\n <Typography type=\"s5\" className=\"vai__empty-msg\">No recent price trends found.</Typography>\n )}\n </Box>\n\n <Box className=\"vai__divider\" />\n\n {/* ── Compare Vendors ────────────────────────────── */}\n <Box className=\"vai__block\">\n <Box className=\"vai__block-title\">\n <Box className=\"vai__badge vai__badge--green\">\n <Users size={13} />\n <Typography type=\"s4\" weight=\"medium\">Compare Vendors</Typography>\n </Box>\n </Box>\n <Typography type=\"s5\" className=\"vai__block-body--muted\" sx={{ mt: 1, mb: 2 }}>\n Select multiple vendors to compare and get AI recommendations based on pricing, reliability, and past performance.\n </Typography>\n\n <Box className=\"vai__select-wrap\">\n <DynamicSelect\n name=\"list\"\n label=\"\"\n placeholder=\"Search and select vendors\"\n formControl={methods.control}\n fieldArrayName=\"compare_vendors\"\n options={[]}\n is_multiselect={true}\n apiType=\"party\"\n customeFilter={{ \"status.eq\": 1, \"&type.eq\": \"Vendor\" }}\n getSelectedData={(data: any) => {\n if (Array.isArray(data)) {\n setSelectedVendorOptions(data);\n } else if (!data) {\n setSelectedVendorOptions([]);\n } else {\n setSelectedVendorOptions([data]);\n }\n }}\n />\n </Box>\n\n {selectedVendorOptions.length > 0 && (\n <Box className=\"vai__chips\">\n {selectedVendorOptions.map((v: any, idx: number) => (\n <Box key={idx} className=\"vai__chip\">\n <span>{v?.label || v?.name || v?.value || v}</span>\n <X\n size={12}\n className=\"vai__chip-close\"\n onClick={() => handleRemoveVendor(v)}\n />\n </Box>\n ))}\n </Box>\n )}\n\n <Button\n fullWidth\n variant=\"contained\"\n color=\"success\"\n onClick={handleCompare}\n disabled={isInsightLoading || selectedVendorOptions.length < 2}\n className=\"vai__compare-btn\"\n startIcon={isInsightLoading ? <CircularProgress size={16} sx={{ color: '#fff' }} /> : <Scale size={17} />}\n >\n {isInsightLoading ? \"Comparing…\" : \"Compare\"}\n </Button>\n </Box>\n\n {/* ── Recommendations ────────────────────────────── */}\n {isInsightError && (\n <Box className=\"vai__block vai__error\">\n <Typography type=\"s4\">Failed to load comparison. Please try again.</Typography>\n </Box>\n )}\n\n {localInsightData?.top_recommendations && localInsightData.top_recommendations.length > 0 && (\n <>\n <Box className=\"vai__divider\" />\n <Box className=\"vai__block vai__recs\">\n <Box className=\"vai__recs-header\">\n <Box className=\"vai__recs-icon\">\n <Trophy size={16} />\n </Box>\n <Box>\n <Typography type=\"s3\" weight=\"medium\" className=\"vai__recs-title\">\n Top Recommendations\n </Typography>\n </Box>\n </Box>\n\n <Box className=\"vai__recs-list\">\n {localInsightData.top_recommendations.map((rec: any, idx: number) => (\n <Box key={idx} className=\"vai__rec-item\">\n <Box className=\"vai__rec-item-header\">\n <Box className={`vai__rec-rank ${idx === 0 ? 'vai__rec-rank--first' : ''}`}>{rec.rank}</Box>\n {rec.vendor_name && <Typography type=\"s4\" weight=\"medium\" className=\"vai__rec-name\">{rec.vendor_name}</Typography>}\n </Box>\n <Typography type=\"s5\" className=\"vai__rec-reason\">{rec.reason}</Typography>\n </Box>\n ))}\n </Box>\n </Box>\n </>\n )}\n\n <AIDisclaimer showIcon={false}/>\n </Box>\n </FormProvider>\n );\n};\n\nexport default VendorAISummary;\n"],"names":["useState","useTranslation","useForm","useEffect","_a","jsx","Box","CircularProgress","Typography","FormProvider","jsxs","Map","TrendingUp","TrendingDown","ChevronDown","Users","DynamicSelect","X","Button","Scale","Fragment","Trophy","AIDisclaimer"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { A, A as A2 } from "../../../chunks/action-bar-sX54kFo9.esm.js";
1
+ import { A, A as A2 } from "../../../chunks/action-bar-C7Alva4T.esm.js";
2
2
  export {
3
3
  A as ActionBar,
4
4
  A2 as default
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const actionBar = require("../../../chunks/action-bar-CGP-GLkt.js");
3
+ const actionBar = require("../../../chunks/action-bar-DdtpxWNk.js");
4
4
  exports.ActionBar = actionBar.ActionBar;
5
5
  exports.default = actionBar.ActionBar;
6
6
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import { A, A as A2 } from "../../chunks/action-bar-sX54kFo9.esm.js";
1
+ import { A, A as A2 } from "../../chunks/action-bar-C7Alva4T.esm.js";
2
2
  export {
3
3
  A as ActionBar,
4
4
  A2 as default
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const actionBar = require("../../chunks/action-bar-CGP-GLkt.js");
3
+ const actionBar = require("../../chunks/action-bar-DdtpxWNk.js");
4
4
  exports.ActionBar = actionBar.ActionBar;
5
5
  exports.default = actionBar.ActionBar;
6
6
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import { A } from "../../chunks/address-modal-DRT30GGc.esm.js";
1
+ import { A } from "../../chunks/address-modal-CkDBjnye.esm.js";
2
2
  export {
3
3
  A as default
4
4
  };
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const addressModal = require("../../chunks/address-modal-DFd5sQtR.js");
3
+ const addressModal = require("../../chunks/address-modal-CYhiC7ui.js");
4
4
  exports.default = addressModal.AddressModal;
5
5
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import { A, A as A2 } from "../../../chunks/appbar-D5moUuMm.esm.js";
1
+ import { A, A as A2 } from "../../../chunks/appbar-BdTp1k68.esm.js";
2
2
  export {
3
3
  A as AppBarWrapper,
4
4
  A2 as default
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const appbar = require("../../../chunks/appbar-WvWT7p_M.js");
3
+ const appbar = require("../../../chunks/appbar-DyIptRTa.js");
4
4
  exports.AppBarWrapper = appbar.AppBarWrapper;
5
5
  exports.default = appbar.AppBarWrapper;
6
6
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import { A, A as A2 } from "../../chunks/appbar-D5moUuMm.esm.js";
1
+ import { A, A as A2 } from "../../chunks/appbar-BdTp1k68.esm.js";
2
2
  export {
3
3
  A as AppBarWrapper,
4
4
  A2 as default
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const appbar = require("../../chunks/appbar-WvWT7p_M.js");
3
+ const appbar = require("../../chunks/appbar-DyIptRTa.js");
4
4
  exports.AppBarWrapper = appbar.AppBarWrapper;
5
5
  exports.default = appbar.AppBarWrapper;
6
6
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import { F, F as F2, F as F3 } from "../../../chunks/FORMS-QqBksLc2.esm.js";
1
+ import { F, F as F2, F as F3 } from "../../../chunks/FORMS-B40NtUdz.esm.js";
2
2
  export {
3
3
  F as FORMS,
4
4
  F2 as Forms,
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const FORMS = require("../../../chunks/FORMS-DITDFHy1.js");
3
+ const FORMS = require("../../../chunks/FORMS-K5QYZYJc.js");
4
4
  exports.FORMS = FORMS.Forms;
5
5
  exports.Forms = FORMS.Forms;
6
6
  exports.default = FORMS.Forms;
@@ -1,4 +1,4 @@
1
- import { F } from "../../chunks/FORMS-QqBksLc2.esm.js";
1
+ import { F } from "../../chunks/FORMS-B40NtUdz.esm.js";
2
2
  import { G } from "../../chunks/grid-view-Bo86x7YL.esm.js";
3
3
  export {
4
4
  F as Forms,
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const FORMS = require("../../chunks/FORMS-DITDFHy1.js");
3
+ const FORMS = require("../../chunks/FORMS-K5QYZYJc.js");
4
4
  const gridView = require("../../chunks/grid-view-B1u_x5yr.js");
5
5
  exports.Forms = FORMS.Forms;
6
6
  exports.GridCard = gridView.GridCard;
@@ -1,4 +1,4 @@
1
- import { a } from "../../chunks/searchable-select-CcG1qflA.esm.js";
1
+ import { a } from "../../chunks/searchable-select-0F6E4XAr.esm.js";
2
2
  export {
3
3
  a as DepartmentAddModal
4
4
  };
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const searchableSelect = require("../../chunks/searchable-select-DVUCWWti.js");
3
+ const searchableSelect = require("../../chunks/searchable-select-_DCkITfk.js");
4
4
  exports.DepartmentAddModal = searchableSelect.DepartmentAddModal;
5
5
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import { b } from "../../chunks/searchable-select-CcG1qflA.esm.js";
1
+ import { b } from "../../chunks/searchable-select-0F6E4XAr.esm.js";
2
2
  export {
3
3
  b as DesignationAddModal
4
4
  };
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const searchableSelect = require("../../chunks/searchable-select-DVUCWWti.js");
3
+ const searchableSelect = require("../../chunks/searchable-select-_DCkITfk.js");
4
4
  exports.DesignationAddModal = searchableSelect.DesignationAddModal;
5
5
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import { F, F as F2 } from "../../../chunks/FlexibleReduxExample-BweOhhft.esm.js";
1
+ import { F, F as F2 } from "../../../chunks/FlexibleReduxExample-lJRAIjmS.esm.js";
2
2
  export {
3
3
  F as FlexibleReduxExample,
4
4
  F2 as default
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const FlexibleReduxExample = require("../../../chunks/FlexibleReduxExample-CMUylyy1.js");
3
+ const FlexibleReduxExample = require("../../../chunks/FlexibleReduxExample-WGpR03V0.js");
4
4
  exports.FlexibleReduxExample = FlexibleReduxExample.FlexibleReduxExample;
5
5
  exports.default = FlexibleReduxExample.FlexibleReduxExample;
6
6
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import { F, F as F2 } from "../../chunks/FlexibleReduxExample-BweOhhft.esm.js";
1
+ import { F, F as F2 } from "../../chunks/FlexibleReduxExample-lJRAIjmS.esm.js";
2
2
  export {
3
3
  F as FlexibleReduxExample,
4
4
  F2 as default
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const FlexibleReduxExample = require("../../chunks/FlexibleReduxExample-CMUylyy1.js");
3
+ const FlexibleReduxExample = require("../../chunks/FlexibleReduxExample-WGpR03V0.js");
4
4
  exports.FlexibleReduxExample = FlexibleReduxExample.FlexibleReduxExample;
5
5
  exports.default = FlexibleReduxExample.FlexibleReduxExample;
6
6
  //# sourceMappingURL=index.js.map
@@ -5,7 +5,7 @@ import { R } from "../../../chunks/delete-group-DaaCveWI.esm.js";
5
5
  import { F } from "../../../chunks/field-select-BjeQDwH6.esm.js";
6
6
  import { O } from "../../../chunks/operator-select-B0zEa7Ul.esm.js";
7
7
  import { R as R2 } from "../../../chunks/remove-action-wZz3Pmbv.esm.js";
8
- import { V } from "../../../chunks/value-editor-DkDNIrZ4.esm.js";
8
+ import { V } from "../../../chunks/value-editor-DQ1qgZ2u.esm.js";
9
9
  export {
10
10
  A as AddFilterButton,
11
11
  A3 as AddGroupButton,