@erpsquad/common 1.8.79 → 1.8.81

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 (660) hide show
  1. package/CHANGELOG.md +253 -253
  2. package/README.md +979 -979
  3. package/dist/_virtual/index/index.esm10.js +3 -3
  4. package/dist/_virtual/index/index.esm11.js +3 -3
  5. package/dist/_virtual/index/index.esm2.js +2 -4
  6. package/dist/_virtual/index/index.esm2.js.map +1 -1
  7. package/dist/_virtual/index/index.esm3.js +4 -2
  8. package/dist/_virtual/index/index.esm3.js.map +1 -1
  9. package/dist/_virtual/index/index.esm4.js +1 -1
  10. package/dist/_virtual/index/index.esm5.js +3 -3
  11. package/dist/_virtual/index/index.esm6.js +3 -3
  12. package/dist/_virtual/index/index.esm7.js +3 -3
  13. package/dist/_virtual/index/index.esm8.js +3 -3
  14. package/dist/_virtual/index/index.esm9.js +3 -3
  15. package/dist/_virtual/index/index10.js +1 -1
  16. package/dist/_virtual/index/index11.js +1 -1
  17. package/dist/_virtual/index/index2.js +1 -1
  18. package/dist/_virtual/index/index3.js +1 -1
  19. package/dist/_virtual/index/index4.js +1 -1
  20. package/dist/_virtual/index/index5.js +1 -1
  21. package/dist/_virtual/index/index6.js +1 -1
  22. package/dist/_virtual/index/index7.js +1 -1
  23. package/dist/_virtual/index/index8.js +1 -1
  24. package/dist/_virtual/index/index9.js +1 -1
  25. package/dist/api-client/api.accounting/api/index.esm.js.map +1 -1
  26. package/dist/api-client/api.accounting/api/index.js.map +1 -1
  27. package/dist/api-client/api.accounting/api-types.d.ts +15883 -15883
  28. package/dist/api-client/api.drive/api/index.esm.js.map +1 -1
  29. package/dist/api-client/api.drive/api/index.js.map +1 -1
  30. package/dist/api-client/api.drive/api-types.d.ts +696 -696
  31. package/dist/api-client/api.hrms/api/index.esm.js.map +1 -1
  32. package/dist/api-client/api.hrms/api/index.js.map +1 -1
  33. package/dist/api-client/api.inventory/api/index.esm.js.map +1 -1
  34. package/dist/api-client/api.inventory/api/index.js.map +1 -1
  35. package/dist/api-client/api.inventory/api-types.d.ts +6110 -6110
  36. package/dist/api-client/api.manufacturing/api/index.esm.js.map +1 -1
  37. package/dist/api-client/api.manufacturing/api/index.js.map +1 -1
  38. package/dist/api-client/api.manufacturing/api-types.d.ts +10066 -10066
  39. package/dist/api-client/api.purchase/api/index.esm.js.map +1 -1
  40. package/dist/api-client/api.purchase/api/index.js.map +1 -1
  41. package/dist/api-client/api.purchase/api-types.d.ts +6715 -6715
  42. package/dist/api-client/api.rbac/api/index.esm.js.map +1 -1
  43. package/dist/api-client/api.rbac/api/index.esm2.js.map +1 -1
  44. package/dist/api-client/api.rbac/api/index.js.map +1 -1
  45. package/dist/api-client/api.rbac/api/index2.js.map +1 -1
  46. package/dist/api-client/api.rbac/api-types.d.ts +1753 -1753
  47. package/dist/api-client/api.rental/api/index.esm.js.map +1 -1
  48. package/dist/api-client/api.rental/api/index.js.map +1 -1
  49. package/dist/api-client/api.rental/api-types.d.ts +15666 -15666
  50. package/dist/api-client/api.sales/api/index.esm.js.map +1 -1
  51. package/dist/api-client/api.sales/api/index.js.map +1 -1
  52. package/dist/api-client/api.sales/api-types.d.ts +8258 -8258
  53. package/dist/api-client/api.system-feature/api/index.esm.js.map +1 -1
  54. package/dist/api-client/api.system-feature/api/index.js.map +1 -1
  55. package/dist/api-client/api.system-feature/api-types.d.ts +2875 -2875
  56. package/dist/api-client/api.user/api/index.esm.js.map +1 -1
  57. package/dist/api-client/api.user/api/index.js.map +1 -1
  58. package/dist/api-client/api.user/api-types.d.ts +95 -95
  59. package/dist/api-client/api.workflow-automation/api/index.esm.js.map +1 -1
  60. package/dist/api-client/api.workflow-automation/api/index.js.map +1 -1
  61. package/dist/api-client/index.d.ts +39 -39
  62. package/dist/components/accordion/accordion/index.esm.js.map +1 -1
  63. package/dist/components/accordion/accordion/index.js.map +1 -1
  64. package/dist/components/accordion/accordion.d.ts +1 -1
  65. package/dist/components/action-bar/action-bar/index.esm.js +1 -1
  66. package/dist/components/action-bar/action-bar/index.esm.js.map +1 -1
  67. package/dist/components/action-bar/action-bar/index.js +5 -5
  68. package/dist/components/action-bar/action-bar/index.js.map +1 -1
  69. package/dist/components/action-bar/action-bar.d.ts +1 -1
  70. package/dist/components/activity-tag/activity-tag/index.esm.js.map +1 -1
  71. package/dist/components/activity-tag/activity-tag/index.js.map +1 -1
  72. package/dist/components/alert/alert/index.esm.js.map +1 -1
  73. package/dist/components/alert/alert/index.js.map +1 -1
  74. package/dist/components/button/button/index.esm.js.map +1 -1
  75. package/dist/components/button/button/index.js.map +1 -1
  76. package/dist/components/change-user-password-modal/change-user-password-modal/index.esm.js.map +1 -1
  77. package/dist/components/change-user-password-modal/change-user-password-modal/index.js.map +1 -1
  78. package/dist/components/checkbox/checkbox/index.esm.js.map +1 -1
  79. package/dist/components/checkbox/checkbox/index.js.map +1 -1
  80. package/dist/components/checkbox/checkbox.d.ts +1 -1
  81. package/dist/components/chip/chip/index.esm.js.map +1 -1
  82. package/dist/components/chip/chip/index.js.map +1 -1
  83. package/dist/components/chip-generator/chip-generator/index.esm.js.map +1 -1
  84. package/dist/components/chip-generator/chip-generator/index.js.map +1 -1
  85. package/dist/components/date-picker/date-picker/index.esm.js.map +1 -1
  86. package/dist/components/date-picker/date-picker/index.js.map +1 -1
  87. package/dist/components/date-picker/date-picker.d.ts +1 -1
  88. package/dist/components/date-time-picker/date-time-picker/index.esm.js.map +1 -1
  89. package/dist/components/date-time-picker/date-time-picker/index.js.map +1 -1
  90. package/dist/components/editor/custom-editor/index.esm.js.map +1 -1
  91. package/dist/components/editor/custom-editor/index.js.map +1 -1
  92. package/dist/components/filter/components/delete-group/index.esm.js +1 -0
  93. package/dist/components/filter/components/delete-group/index.esm.js.map +1 -1
  94. package/dist/components/filter/components/delete-group/index.js +1 -1
  95. package/dist/components/filter/components/delete-group/index.js.map +1 -1
  96. package/dist/components/filter/filter/index.esm.js +1 -1
  97. package/dist/components/filter/filter/index.esm.js.map +1 -1
  98. package/dist/components/filter/filter/index.js +7 -7
  99. package/dist/components/filter/filter/index.js.map +1 -1
  100. package/dist/components/footer/footer.d.ts +1 -1
  101. package/dist/components/form-control/form-builder/form-builder-element/dynamic-select/index.esm.js.map +1 -1
  102. package/dist/components/form-control/form-builder/form-builder-element/dynamic-select/index.js.map +1 -1
  103. package/dist/components/form-control/form-builder/form-builder-element/media.d.ts +1 -1
  104. package/dist/components/form-control/form-builder/form-builder-element/phone.d.ts +1 -1
  105. package/dist/components/form-control/form-builder/form-builder-element/select.d.ts +1 -1
  106. package/dist/components/form-control/form-builder/form-builder-element/text.d.ts +1 -1
  107. package/dist/components/form-control/form-builder/form-builder-element/time.d.ts +1 -1
  108. package/dist/components/form-control/form-parser/form-switcher.d.ts +1 -1
  109. package/dist/components/header/header/index.esm.js.map +1 -1
  110. package/dist/components/header/header/index.js.map +1 -1
  111. package/dist/components/header/redux/actionCreator/index.esm.js +1 -1
  112. package/dist/components/header/redux/actionCreator/index.esm.js.map +1 -1
  113. package/dist/components/header/redux/actionCreator/index.js +1 -1
  114. package/dist/components/header/redux/actionCreator/index.js.map +1 -1
  115. package/dist/components/icons/action/index.esm.js.map +1 -1
  116. package/dist/components/icons/action/index.js.map +1 -1
  117. package/dist/components/icons/action-arrow.d.ts +3 -3
  118. package/dist/components/icons/add-circle.d.ts +3 -3
  119. package/dist/components/icons/arrow-bidirectional.d.ts +3 -3
  120. package/dist/components/icons/arrow-circle-down.d.ts +3 -3
  121. package/dist/components/icons/arrow-down-three.d.ts +3 -3
  122. package/dist/components/icons/arrow-down-two.d.ts +3 -3
  123. package/dist/components/icons/arrow-down.d.ts +3 -3
  124. package/dist/components/icons/arrow-up-down.d.ts +3 -3
  125. package/dist/components/icons/arrow-up-two.d.ts +3 -3
  126. package/dist/components/icons/assignments.d.ts +3 -3
  127. package/dist/components/icons/blank-circle.d.ts +3 -3
  128. package/dist/components/icons/block-filled.d.ts +3 -3
  129. package/dist/components/icons/calendar-add.d.ts +3 -3
  130. package/dist/components/icons/calendar.d.ts +3 -3
  131. package/dist/components/icons/checkbox-square.d.ts +3 -3
  132. package/dist/components/icons/circular-arrow-setting.d.ts +3 -3
  133. package/dist/components/icons/clock.d.ts +3 -3
  134. package/dist/components/icons/close.d.ts +3 -3
  135. package/dist/components/icons/coin-outline.d.ts +3 -3
  136. package/dist/components/icons/copy.d.ts +3 -3
  137. package/dist/components/icons/coupon.d.ts +3 -3
  138. package/dist/components/icons/criteria/index.esm.js.map +1 -1
  139. package/dist/components/icons/criteria/index.js.map +1 -1
  140. package/dist/components/icons/cross/index.esm.js.map +1 -1
  141. package/dist/components/icons/cross/index.js.map +1 -1
  142. package/dist/components/icons/cross-hire.d.ts +3 -3
  143. package/dist/components/icons/custom-styled-icon.d.ts +3 -3
  144. package/dist/components/icons/dashboard.d.ts +3 -3
  145. package/dist/components/icons/document-download.d.ts +3 -3
  146. package/dist/components/icons/document.d.ts +3 -3
  147. package/dist/components/icons/dollar-circle-filled.d.ts +3 -3
  148. package/dist/components/icons/dollar-circle.d.ts +3 -3
  149. package/dist/components/icons/edit.d.ts +3 -3
  150. package/dist/components/icons/email.d.ts +3 -3
  151. package/dist/components/icons/export.d.ts +3 -3
  152. package/dist/components/icons/eye-off.d.ts +3 -3
  153. package/dist/components/icons/eye-plus-circle.d.ts +3 -3
  154. package/dist/components/icons/eye.d.ts +3 -3
  155. package/dist/components/icons/filled-circle.d.ts +3 -3
  156. package/dist/components/icons/filter-remove.d.ts +3 -3
  157. package/dist/components/icons/filter.d.ts +3 -3
  158. package/dist/components/icons/folder-save.d.ts +3 -3
  159. package/dist/components/icons/grid.d.ts +3 -3
  160. package/dist/components/icons/hashtag.d.ts +3 -3
  161. package/dist/components/icons/image.d.ts +3 -3
  162. package/dist/components/icons/import.d.ts +3 -3
  163. package/dist/components/icons/info-circle.d.ts +3 -3
  164. package/dist/components/icons/info.d.ts +3 -3
  165. package/dist/components/icons/link-horizontal.d.ts +3 -3
  166. package/dist/components/icons/link.d.ts +3 -3
  167. package/dist/components/icons/location.d.ts +3 -3
  168. package/dist/components/icons/lowest-lead-time.d.ts +3 -3
  169. package/dist/components/icons/lowest-min-qty.d.ts +3 -3
  170. package/dist/components/icons/lowest-price.d.ts +3 -3
  171. package/dist/components/icons/more.d.ts +3 -3
  172. package/dist/components/icons/notification.d.ts +3 -3
  173. package/dist/components/icons/paper-clip.d.ts +3 -3
  174. package/dist/components/icons/paragraph.d.ts +3 -3
  175. package/dist/components/icons/payment-request.d.ts +3 -3
  176. package/dist/components/icons/phone.d.ts +3 -3
  177. package/dist/components/icons/printer.d.ts +3 -3
  178. package/dist/components/icons/process-calendar.d.ts +3 -3
  179. package/dist/components/icons/promotion.d.ts +3 -3
  180. package/dist/components/icons/radio-button.d.ts +3 -3
  181. package/dist/components/icons/receipt-filled.d.ts +3 -3
  182. package/dist/components/icons/receipt-outline.d.ts +3 -3
  183. package/dist/components/icons/receipt.d.ts +3 -3
  184. package/dist/components/icons/refresh-icon.d.ts +3 -3
  185. package/dist/components/icons/replace.d.ts +3 -3
  186. package/dist/components/icons/save.d.ts +3 -3
  187. package/dist/components/icons/search-status.d.ts +3 -3
  188. package/dist/components/icons/search.d.ts +3 -3
  189. package/dist/components/icons/settings-fallback.d.ts +3 -3
  190. package/dist/components/icons/share/index.esm.js.map +1 -1
  191. package/dist/components/icons/share/index.js.map +1 -1
  192. package/dist/components/icons/sort-arrow-icon.d.ts +3 -3
  193. package/dist/components/icons/stacked-layer.d.ts +3 -3
  194. package/dist/components/icons/start-filled.d.ts +3 -3
  195. package/dist/components/icons/three-dot-icon.d.ts +3 -3
  196. package/dist/components/icons/tick-circle-filled.d.ts +3 -3
  197. package/dist/components/icons/tick-circle.d.ts +3 -3
  198. package/dist/components/icons/tick-octagon.d.ts +3 -3
  199. package/dist/components/icons/tick.d.ts +3 -3
  200. package/dist/components/icons/toggle-switch.d.ts +3 -3
  201. package/dist/components/icons/trash.d.ts +3 -3
  202. package/dist/components/icons/wave.d.ts +3 -3
  203. package/dist/components/icons/with-out-tick-octagon.d.ts +3 -3
  204. package/dist/components/icons/work-centre.d.ts +3 -3
  205. package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.esm.js +1 -1
  206. package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.esm.js.map +1 -1
  207. package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.js +1 -1
  208. package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.js.map +1 -1
  209. package/dist/components/label-value/label-value/index.esm.js.map +1 -1
  210. package/dist/components/label-value/label-value/index.js.map +1 -1
  211. package/dist/components/listing/listing/index.esm.js.map +1 -1
  212. package/dist/components/listing/listing/index.js.map +1 -1
  213. package/dist/components/loaders/erp-loader/index.esm.js.map +1 -1
  214. package/dist/components/loaders/erp-loader/index.js.map +1 -1
  215. package/dist/components/loaders/form-loader/index.esm.js.map +1 -1
  216. package/dist/components/loaders/form-loader/index.js.map +1 -1
  217. package/dist/components/loaders/modal-loader/index.esm.js.map +1 -1
  218. package/dist/components/loaders/modal-loader/index.js.map +1 -1
  219. package/dist/components/loaders/page-loader/index.esm.js.map +1 -1
  220. package/dist/components/loaders/page-loader/index.js.map +1 -1
  221. package/dist/components/location-select.d.ts +1 -1
  222. package/dist/components/material-editable-table/components/inline-edit-fields/index.esm.js.map +1 -1
  223. package/dist/components/material-editable-table/components/inline-edit-fields/index.js.map +1 -1
  224. package/dist/components/material-editable-table/material-editable-table/index.esm.js.map +1 -1
  225. package/dist/components/material-editable-table/material-editable-table/index.js.map +1 -1
  226. package/dist/components/material-editable-table/material-editable-table.d.ts +1 -1
  227. package/dist/components/material-table/material-table.d.ts +1 -1
  228. package/dist/components/menu/menu/index.esm.js.map +1 -1
  229. package/dist/components/menu/menu/index.js.map +1 -1
  230. package/dist/components/modal/modal/index.esm.js.map +1 -1
  231. package/dist/components/modal/modal/index.js.map +1 -1
  232. package/dist/components/page-navigator/page-navigator/index.esm.js.map +1 -1
  233. package/dist/components/page-navigator/page-navigator/index.js.map +1 -1
  234. package/dist/components/phone-input/phone-input.d.ts +1 -1
  235. package/dist/components/providers/ERPUIProvider/index.esm.js.map +1 -1
  236. package/dist/components/providers/ERPUIProvider/index.js.map +1 -1
  237. package/dist/components/radio/radio.d.ts +1 -1
  238. package/dist/components/reports-title-bar/redux/actionCreator/index.esm.js +1 -1
  239. package/dist/components/reports-title-bar/redux/actionCreator/index.esm.js.map +1 -1
  240. package/dist/components/reports-title-bar/redux/actionCreator/index.js +1 -1
  241. package/dist/components/reports-title-bar/redux/actionCreator/index.js.map +1 -1
  242. package/dist/components/reset-password-modal/reset-password-modal/index.esm.js.map +1 -1
  243. package/dist/components/reset-password-modal/reset-password-modal/index.js.map +1 -1
  244. package/dist/components/search-bar/search-bar/index.esm.js.map +1 -1
  245. package/dist/components/search-bar/search-bar/index.js.map +1 -1
  246. package/dist/components/searchable-select/index.esm.js.map +1 -1
  247. package/dist/components/searchable-select/index.js.map +1 -1
  248. package/dist/components/select/controller/chip-or-placeholder/index.esm.js.map +1 -1
  249. package/dist/components/select/controller/chip-or-placeholder/index.js.map +1 -1
  250. package/dist/components/select/select/index.esm.js.map +1 -1
  251. package/dist/components/select/select/index.js.map +1 -1
  252. package/dist/components/select/select-search/index.esm.js.map +1 -1
  253. package/dist/components/select/select-search/index.js.map +1 -1
  254. package/dist/components/select/select.d.ts +1 -1
  255. package/dist/components/share-modal/redux/actionCreator/index.esm.js +1 -1
  256. package/dist/components/share-modal/redux/actionCreator/index.esm.js.map +1 -1
  257. package/dist/components/share-modal/redux/actionCreator/index.js +1 -1
  258. package/dist/components/share-modal/redux/actionCreator/index.js.map +1 -1
  259. package/dist/components/sub-header-doc/sub-header-doc/index.esm.js.map +1 -1
  260. package/dist/components/sub-header-doc/sub-header-doc/index.js.map +1 -1
  261. package/dist/components/switches/android-12-switch/index.esm.js.map +1 -1
  262. package/dist/components/switches/android-12-switch/index.js.map +1 -1
  263. package/dist/components/switches/android-12-switch.d.ts +1 -3
  264. package/dist/components/text-area/text-area/index.esm.js.map +1 -1
  265. package/dist/components/text-area/text-area/index.js.map +1 -1
  266. package/dist/components/text-field/text-field/index.esm.js.map +1 -1
  267. package/dist/components/text-field/text-field/index.js.map +1 -1
  268. package/dist/components/text-field/text-field.d.ts +1 -1
  269. package/dist/components/time-picker/time-picker/index.esm.js.map +1 -1
  270. package/dist/components/time-picker/time-picker/index.js.map +1 -1
  271. package/dist/components/time-picker/time-picker.d.ts +1 -1
  272. package/dist/components/toast/toast/index.esm.js.map +1 -1
  273. package/dist/components/toast/toast/index.js.map +1 -1
  274. package/dist/components/toggle/toggle/index.esm.js.map +1 -1
  275. package/dist/components/toggle/toggle/index.js.map +1 -1
  276. package/dist/components/typography/typography/index.esm.js.map +1 -1
  277. package/dist/components/typography/typography/index.js.map +1 -1
  278. package/dist/components/upload/upload/index.esm.js +2 -2
  279. package/dist/components/upload/upload/index.esm.js.map +1 -1
  280. package/dist/components/upload/upload/index.js +11 -11
  281. package/dist/components/upload/upload/index.js.map +1 -1
  282. package/dist/components/upload-media/upload-media.d.ts +1 -1
  283. package/dist/constants/defaultColumns/index.esm.js.map +1 -1
  284. package/dist/constants/defaultColumns/index.js.map +1 -1
  285. package/dist/constants/modules/index.esm.js.map +1 -1
  286. package/dist/constants/modules/index.js.map +1 -1
  287. package/dist/constants/pathnames/pathname/index.esm.js.map +1 -1
  288. package/dist/constants/pathnames/pathname/index.js.map +1 -1
  289. package/dist/constants/pathnames/pathname.accounting/index.esm.js.map +1 -1
  290. package/dist/constants/pathnames/pathname.accounting/index.js.map +1 -1
  291. package/dist/constants/pathnames/pathname.crm/index.esm.js.map +1 -1
  292. package/dist/constants/pathnames/pathname.crm/index.js.map +1 -1
  293. package/dist/constants/pathnames/pathname.document/index.esm.js.map +1 -1
  294. package/dist/constants/pathnames/pathname.document/index.js.map +1 -1
  295. package/dist/constants/pathnames/pathname.hrms/index.esm.js.map +1 -1
  296. package/dist/constants/pathnames/pathname.hrms/index.js.map +1 -1
  297. package/dist/constants/pathnames/pathname.inventory/index.esm.js.map +1 -1
  298. package/dist/constants/pathnames/pathname.inventory/index.js.map +1 -1
  299. package/dist/constants/pathnames/pathname.manufacturing/index.esm.js.map +1 -1
  300. package/dist/constants/pathnames/pathname.manufacturing/index.js.map +1 -1
  301. package/dist/constants/pathnames/pathname.office/index.esm.js.map +1 -1
  302. package/dist/constants/pathnames/pathname.office/index.js.map +1 -1
  303. package/dist/constants/pathnames/pathname.procurement/index.esm.js.map +1 -1
  304. package/dist/constants/pathnames/pathname.procurement/index.js.map +1 -1
  305. package/dist/constants/pathnames/pathname.project/index.esm.js.map +1 -1
  306. package/dist/constants/pathnames/pathname.project/index.js.map +1 -1
  307. package/dist/constants/pathnames/pathname.quotes/index.esm.js.map +1 -1
  308. package/dist/constants/pathnames/pathname.quotes/index.js.map +1 -1
  309. package/dist/constants/pathnames/pathname.rental/index.esm.js.map +1 -1
  310. package/dist/constants/pathnames/pathname.rental/index.js.map +1 -1
  311. package/dist/constants/pathnames/pathname.user/index.esm.js.map +1 -1
  312. package/dist/constants/pathnames/pathname.user/index.js.map +1 -1
  313. package/dist/constants/route-page-map/index.esm.js.map +1 -1
  314. package/dist/constants/route-page-map/index.js.map +1 -1
  315. package/dist/constants/status/index.esm.js.map +1 -1
  316. package/dist/constants/status/index.js.map +1 -1
  317. package/dist/contexts/AuthContext/index.esm.js +1 -1
  318. package/dist/contexts/AuthContext/index.esm.js.map +1 -1
  319. package/dist/contexts/AuthContext/index.js +1 -1
  320. package/dist/contexts/AuthContext/index.js.map +1 -1
  321. package/dist/contexts/languageContext/index.esm.js +1 -1
  322. package/dist/contexts/languageContext/index.esm.js.map +1 -1
  323. package/dist/contexts/languageContext/index.js +1 -1
  324. package/dist/contexts/languageContext/index.js.map +1 -1
  325. package/dist/contexts/page-context/index.esm.js.map +1 -1
  326. package/dist/contexts/page-context/index.js.map +1 -1
  327. package/dist/hooks/use-translations/index.esm.js.map +1 -1
  328. package/dist/hooks/use-translations/index.js.map +1 -1
  329. package/dist/hooks/useApi/index.esm.js +2 -4
  330. package/dist/hooks/useApi/index.esm.js.map +1 -1
  331. package/dist/hooks/useApi/index.js +1 -1
  332. package/dist/hooks/useApi/index.js.map +1 -1
  333. package/dist/hooks/useDataFetcher/index.esm.js.map +1 -1
  334. package/dist/hooks/useDataFetcher/index.js.map +1 -1
  335. package/dist/layout/fullScreen/fullScreen/index.esm.js.map +1 -1
  336. package/dist/layout/fullScreen/fullScreen/index.js.map +1 -1
  337. package/dist/layout/sidebarScreen/sidebarScreen/index.esm.js.map +1 -1
  338. package/dist/layout/sidebarScreen/sidebarScreen/index.js.map +1 -1
  339. package/dist/node_modules/@asseinfo/react-kanban/dist/index/index.esm.js +1 -1
  340. package/dist/node_modules/@asseinfo/react-kanban/dist/index/index.js +1 -1
  341. package/dist/node_modules/@glideapps/glide-data-grid-cells/dist/js/article-cell-editor-JDI676YI/index.esm.js +1 -1
  342. package/dist/node_modules/@glideapps/glide-data-grid-cells/dist/js/article-cell-editor-JDI676YI/index.js +2 -2
  343. package/dist/node_modules/@glideapps/glide-data-grid-cells/dist/js/article-cell-editor-JDI676YI/index.js.map +1 -1
  344. package/dist/node_modules/{@toast-ui → @glideapps/glide-data-grid-cells/node_modules/@toast-ui}/react-editor/dist/esm/index/index.esm.js +2 -2
  345. package/dist/node_modules/@glideapps/glide-data-grid-cells/node_modules/@toast-ui/react-editor/dist/esm/index/index.esm.js.map +1 -0
  346. package/dist/node_modules/@glideapps/glide-data-grid-cells/node_modules/@toast-ui/react-editor/dist/esm/index/index.js +2 -0
  347. package/dist/node_modules/@glideapps/glide-data-grid-cells/node_modules/@toast-ui/react-editor/dist/esm/index/index.js.map +1 -0
  348. package/dist/node_modules/@mui/icons-material/utils/createSvgIcon/index.esm.js +1 -1
  349. package/dist/node_modules/@mui/icons-material/utils/createSvgIcon/index.js +1 -1
  350. package/dist/node_modules/@mui/system/colorManipulator/index.esm.js +2 -2
  351. package/dist/node_modules/@mui/system/colorManipulator/index.js +1 -1
  352. package/dist/node_modules/@mui/system/colorManipulator/index.js.map +1 -1
  353. package/dist/node_modules/@mui/system/createStyled/index.esm.js +6 -6
  354. package/dist/node_modules/@mui/system/createStyled/index.js +1 -1
  355. package/dist/node_modules/@mui/system/createStyled/index.js.map +1 -1
  356. package/dist/node_modules/@mui/system/useThemeWithoutDefault/index.esm.js +1 -1
  357. package/dist/node_modules/@mui/system/useThemeWithoutDefault/index.js +1 -1
  358. package/dist/node_modules/material-react-table/dist/index.esm/index.esm.js +1 -1
  359. package/dist/node_modules/material-react-table/dist/index.esm/index.js +1 -1
  360. package/dist/node_modules/material-react-table/dist/index.esm/index.js.map +1 -1
  361. package/dist/node_modules/{@tanstack → material-react-table/node_modules/@tanstack}/react-virtual/dist/esm/index/index.esm.js +2 -2
  362. package/dist/node_modules/material-react-table/node_modules/@tanstack/react-virtual/dist/esm/index/index.esm.js.map +1 -0
  363. package/dist/node_modules/material-react-table/node_modules/@tanstack/react-virtual/dist/esm/index/index.js +2 -0
  364. package/dist/node_modules/material-react-table/node_modules/@tanstack/react-virtual/dist/esm/index/index.js.map +1 -0
  365. package/dist/redux/actionCreator/index.esm.js.map +1 -1
  366. package/dist/redux/actionCreator/index.js.map +1 -1
  367. package/dist/redux/module-reducer/index.esm.js.map +1 -1
  368. package/dist/redux/module-reducer/index.js.map +1 -1
  369. package/dist/redux/store/index.esm.js.map +1 -1
  370. package/dist/redux/store/index.js.map +1 -1
  371. package/dist/server/index.esm.js.map +1 -1
  372. package/dist/server/index.js.map +1 -1
  373. package/dist/src/components/accordion/accordion.d.ts +1 -1
  374. package/dist/src/components/action-bar/action-bar.d.ts +1 -1
  375. package/dist/src/components/checkbox/checkbox.d.ts +1 -1
  376. package/dist/src/components/date-picker/date-picker.d.ts +1 -1
  377. package/dist/src/components/footer/footer.d.ts +1 -1
  378. package/dist/src/components/form-control/form-builder/form-builder-element/media.d.ts +1 -1
  379. package/dist/src/components/form-control/form-builder/form-builder-element/phone.d.ts +1 -1
  380. package/dist/src/components/form-control/form-builder/form-builder-element/select.d.ts +1 -1
  381. package/dist/src/components/form-control/form-builder/form-builder-element/text.d.ts +1 -1
  382. package/dist/src/components/form-control/form-builder/form-builder-element/time.d.ts +1 -1
  383. package/dist/src/components/form-control/form-parser/form-switcher.d.ts +1 -1
  384. package/dist/src/components/icons/action-arrow.d.ts +3 -3
  385. package/dist/src/components/icons/add-circle.d.ts +3 -3
  386. package/dist/src/components/icons/arrow-bidirectional.d.ts +3 -3
  387. package/dist/src/components/icons/arrow-circle-down.d.ts +3 -3
  388. package/dist/src/components/icons/arrow-down-three.d.ts +3 -3
  389. package/dist/src/components/icons/arrow-down-two.d.ts +3 -3
  390. package/dist/src/components/icons/arrow-down.d.ts +3 -3
  391. package/dist/src/components/icons/arrow-up-down.d.ts +3 -3
  392. package/dist/src/components/icons/arrow-up-two.d.ts +3 -3
  393. package/dist/src/components/icons/assignments.d.ts +3 -3
  394. package/dist/src/components/icons/blank-circle.d.ts +3 -3
  395. package/dist/src/components/icons/block-filled.d.ts +3 -3
  396. package/dist/src/components/icons/calendar-add.d.ts +3 -3
  397. package/dist/src/components/icons/calendar.d.ts +3 -3
  398. package/dist/src/components/icons/checkbox-square.d.ts +3 -3
  399. package/dist/src/components/icons/circular-arrow-setting.d.ts +3 -3
  400. package/dist/src/components/icons/clock.d.ts +3 -3
  401. package/dist/src/components/icons/close.d.ts +3 -3
  402. package/dist/src/components/icons/coin-outline.d.ts +3 -3
  403. package/dist/src/components/icons/copy.d.ts +3 -3
  404. package/dist/src/components/icons/coupon.d.ts +3 -3
  405. package/dist/src/components/icons/cross-hire.d.ts +3 -3
  406. package/dist/src/components/icons/custom-styled-icon.d.ts +3 -3
  407. package/dist/src/components/icons/dashboard.d.ts +3 -3
  408. package/dist/src/components/icons/document-download.d.ts +3 -3
  409. package/dist/src/components/icons/document.d.ts +3 -3
  410. package/dist/src/components/icons/dollar-circle-filled.d.ts +3 -3
  411. package/dist/src/components/icons/dollar-circle.d.ts +3 -3
  412. package/dist/src/components/icons/edit.d.ts +3 -3
  413. package/dist/src/components/icons/email.d.ts +3 -3
  414. package/dist/src/components/icons/export.d.ts +3 -3
  415. package/dist/src/components/icons/eye-off.d.ts +3 -3
  416. package/dist/src/components/icons/eye-plus-circle.d.ts +3 -3
  417. package/dist/src/components/icons/eye.d.ts +3 -3
  418. package/dist/src/components/icons/filled-circle.d.ts +3 -3
  419. package/dist/src/components/icons/filter-remove.d.ts +3 -3
  420. package/dist/src/components/icons/filter.d.ts +3 -3
  421. package/dist/src/components/icons/folder-save.d.ts +3 -3
  422. package/dist/src/components/icons/grid.d.ts +3 -3
  423. package/dist/src/components/icons/hashtag.d.ts +3 -3
  424. package/dist/src/components/icons/image.d.ts +3 -3
  425. package/dist/src/components/icons/import.d.ts +3 -3
  426. package/dist/src/components/icons/info-circle.d.ts +3 -3
  427. package/dist/src/components/icons/info.d.ts +3 -3
  428. package/dist/src/components/icons/link-horizontal.d.ts +3 -3
  429. package/dist/src/components/icons/link.d.ts +3 -3
  430. package/dist/src/components/icons/location.d.ts +3 -3
  431. package/dist/src/components/icons/lowest-lead-time.d.ts +3 -3
  432. package/dist/src/components/icons/lowest-min-qty.d.ts +3 -3
  433. package/dist/src/components/icons/lowest-price.d.ts +3 -3
  434. package/dist/src/components/icons/more.d.ts +3 -3
  435. package/dist/src/components/icons/notification.d.ts +3 -3
  436. package/dist/src/components/icons/paper-clip.d.ts +3 -3
  437. package/dist/src/components/icons/paragraph.d.ts +3 -3
  438. package/dist/src/components/icons/payment-request.d.ts +3 -3
  439. package/dist/src/components/icons/phone.d.ts +3 -3
  440. package/dist/src/components/icons/printer.d.ts +3 -3
  441. package/dist/src/components/icons/process-calendar.d.ts +3 -3
  442. package/dist/src/components/icons/promotion.d.ts +3 -3
  443. package/dist/src/components/icons/radio-button.d.ts +3 -3
  444. package/dist/src/components/icons/receipt-filled.d.ts +3 -3
  445. package/dist/src/components/icons/receipt-outline.d.ts +3 -3
  446. package/dist/src/components/icons/receipt.d.ts +3 -3
  447. package/dist/src/components/icons/refresh-icon.d.ts +3 -3
  448. package/dist/src/components/icons/replace.d.ts +3 -3
  449. package/dist/src/components/icons/save.d.ts +3 -3
  450. package/dist/src/components/icons/search-status.d.ts +3 -3
  451. package/dist/src/components/icons/search.d.ts +3 -3
  452. package/dist/src/components/icons/settings-fallback.d.ts +3 -3
  453. package/dist/src/components/icons/sort-arrow-icon.d.ts +3 -3
  454. package/dist/src/components/icons/stacked-layer.d.ts +3 -3
  455. package/dist/src/components/icons/start-filled.d.ts +3 -3
  456. package/dist/src/components/icons/three-dot-icon.d.ts +3 -3
  457. package/dist/src/components/icons/tick-circle-filled.d.ts +3 -3
  458. package/dist/src/components/icons/tick-circle.d.ts +3 -3
  459. package/dist/src/components/icons/tick-octagon.d.ts +3 -3
  460. package/dist/src/components/icons/tick.d.ts +3 -3
  461. package/dist/src/components/icons/toggle-switch.d.ts +3 -3
  462. package/dist/src/components/icons/trash.d.ts +3 -3
  463. package/dist/src/components/icons/wave.d.ts +3 -3
  464. package/dist/src/components/icons/with-out-tick-octagon.d.ts +3 -3
  465. package/dist/src/components/icons/work-centre.d.ts +3 -3
  466. package/dist/src/components/location-select.d.ts +1 -1
  467. package/dist/src/components/material-editable-table/material-editable-table.d.ts +1 -1
  468. package/dist/src/components/material-table/material-table.d.ts +1 -1
  469. package/dist/src/components/phone-input/phone-input.d.ts +1 -1
  470. package/dist/src/components/radio/radio.d.ts +1 -1
  471. package/dist/src/components/select/select.d.ts +1 -1
  472. package/dist/src/components/switches/android-12-switch.d.ts +1 -3
  473. package/dist/src/components/text-field/text-field.d.ts +1 -1
  474. package/dist/src/components/time-picker/time-picker.d.ts +1 -1
  475. package/dist/src/components/upload-media/upload-media.d.ts +1 -1
  476. package/dist/src/utils/common-utility.d.ts +1 -1
  477. package/dist/style.css +69 -69
  478. package/dist/styles/index.d.ts +1 -1
  479. package/dist/theme/theme-impl/index.esm.js.map +1 -1
  480. package/dist/theme/theme-impl/index.js.map +1 -1
  481. package/dist/utils/api/index.esm.js +6 -6
  482. package/dist/utils/api/index.esm.js.map +1 -1
  483. package/dist/utils/api/index.js +1 -1
  484. package/dist/utils/api/index.js.map +1 -1
  485. package/dist/utils/common/index.esm.js +6 -6
  486. package/dist/utils/common/index.esm.js.map +1 -1
  487. package/dist/utils/common/index.js +1 -1
  488. package/dist/utils/common/index.js.map +1 -1
  489. package/dist/utils/common-utility.d.ts +1 -1
  490. package/dist/utils/date-range/index.esm.js.map +1 -1
  491. package/dist/utils/date-range/index.js.map +1 -1
  492. package/dist/utils/i18n/index.esm.js.map +1 -1
  493. package/dist/utils/i18n/index.js.map +1 -1
  494. package/dist/utils/menu-filter/index.esm.js.map +1 -1
  495. package/dist/utils/menu-filter/index.js.map +1 -1
  496. package/dist/views/404/index.esm.js.map +1 -1
  497. package/dist/views/404/index.js.map +1 -1
  498. package/dist/views/afterAuth/dashboard/dashboard/index.esm.js.map +1 -1
  499. package/dist/views/afterAuth/dashboard/dashboard/index.js.map +1 -1
  500. package/dist/views/afterAuth/dashboard/redux/actionCreator/index.esm.js.map +1 -1
  501. package/dist/views/afterAuth/dashboard/redux/actionCreator/index.js.map +1 -1
  502. package/dist/views/afterAuth/dashboard/redux/reducer/index.esm.js.map +1 -1
  503. package/dist/views/afterAuth/dashboard/redux/reducer/index.js.map +1 -1
  504. package/dist/views/afterAuth/dashboard/redux/state/index.esm.js.map +1 -1
  505. package/dist/views/afterAuth/dashboard/redux/state/index.js.map +1 -1
  506. package/dist/views/afterAuth/page-view/page-view/index.esm.js.map +1 -1
  507. package/dist/views/afterAuth/page-view/page-view/index.js.map +1 -1
  508. package/dist/views/afterAuth/page-view/redux/actionCreator/index.esm.js.map +1 -1
  509. package/dist/views/afterAuth/page-view/redux/actionCreator/index.js.map +1 -1
  510. package/dist/views/afterAuth/page-view/redux/reducer/index.esm.js.map +1 -1
  511. package/dist/views/afterAuth/page-view/redux/reducer/index.js.map +1 -1
  512. package/dist/views/afterAuth/page-view/redux/state/index.esm.js.map +1 -1
  513. package/dist/views/afterAuth/page-view/redux/state/index.js.map +1 -1
  514. package/dist/views/afterAuth/page-view/utils/default-data/index.esm.js.map +1 -1
  515. package/dist/views/afterAuth/page-view/utils/default-data/index.js.map +1 -1
  516. package/dist/views/afterAuth/page-view/utils/local-data/index.esm.js.map +1 -1
  517. package/dist/views/afterAuth/page-view/utils/local-data/index.js.map +1 -1
  518. package/dist/views/beforeAuth/change-password/change-password/index.esm.js.map +1 -1
  519. package/dist/views/beforeAuth/change-password/change-password/index.js.map +1 -1
  520. package/dist/views/beforeAuth/components/activity-tag-data/activity-tag-data/index.esm.js.map +1 -1
  521. package/dist/views/beforeAuth/components/activity-tag-data/activity-tag-data/index.js.map +1 -1
  522. package/dist/views/beforeAuth/components/calendar-data/calendar-data/index.esm.js.map +1 -1
  523. package/dist/views/beforeAuth/components/calendar-data/calendar-data/index.js.map +1 -1
  524. package/dist/views/beforeAuth/components/gantt-data/gantt-data/index.esm.js.map +1 -1
  525. package/dist/views/beforeAuth/components/gantt-data/gantt-data/index.js.map +1 -1
  526. package/dist/views/beforeAuth/components/grid-data/grid-data/index.esm.js.map +1 -1
  527. package/dist/views/beforeAuth/components/grid-data/grid-data/index.js.map +1 -1
  528. package/dist/views/beforeAuth/components/kanbann-content/kanbann-raw/index.esm.js.map +1 -1
  529. package/dist/views/beforeAuth/components/kanbann-content/kanbann-raw/index.js.map +1 -1
  530. package/dist/views/beforeAuth/components/list-content/column-raw/index.esm.js.map +1 -1
  531. package/dist/views/beforeAuth/components/list-content/column-raw/index.js.map +1 -1
  532. package/dist/views/beforeAuth/components/list-content/list-data/index.esm.js.map +1 -1
  533. package/dist/views/beforeAuth/components/list-content/list-data/index.js.map +1 -1
  534. package/dist/views/beforeAuth/components/multiline-data/multiline-data/index.esm.js.map +1 -1
  535. package/dist/views/beforeAuth/components/multiline-data/multiline-data/index.js.map +1 -1
  536. package/dist/views/beforeAuth/components/share-modal-data/share-modal-data/index.esm.js.map +1 -1
  537. package/dist/views/beforeAuth/components/share-modal-data/share-modal-data/index.js.map +1 -1
  538. package/dist/views/beforeAuth/components/shared-pages-data/shared-pages-data/index.esm.js.map +1 -1
  539. package/dist/views/beforeAuth/components/shared-pages-data/shared-pages-data/index.js.map +1 -1
  540. package/dist/views/beforeAuth/components/tabs-data/tabs-data/index.esm.js.map +1 -1
  541. package/dist/views/beforeAuth/components/tabs-data/tabs-data/index.js.map +1 -1
  542. package/dist/views/beforeAuth/components/user-dashboard-data/user-dashboard-data/index.esm.js.map +1 -1
  543. package/dist/views/beforeAuth/components/user-dashboard-data/user-dashboard-data/index.js.map +1 -1
  544. package/dist/views/beforeAuth/components/user-dropdown-data/user-dropdown-data/index.esm.js.map +1 -1
  545. package/dist/views/beforeAuth/components/user-dropdown-data/user-dropdown-data/index.js.map +1 -1
  546. package/dist/views/beforeAuth/forgot-password/forgot-password/index.esm.js.map +1 -1
  547. package/dist/views/beforeAuth/forgot-password/forgot-password/index.js.map +1 -1
  548. package/dist/views/beforeAuth/landing/landing/index.esm.js.map +1 -1
  549. package/dist/views/beforeAuth/landing/landing/index.js.map +1 -1
  550. package/dist/views/beforeAuth/reset-password/reset-password/index.esm.js.map +1 -1
  551. package/dist/views/beforeAuth/reset-password/reset-password/index.js.map +1 -1
  552. package/dist/views/form-builder/custom-form/index.esm.js.map +1 -1
  553. package/dist/views/form-builder/custom-form/index.js.map +1 -1
  554. package/dist/views/form-builder/element-edit-forms/checkbox/index.esm.js.map +1 -1
  555. package/dist/views/form-builder/element-edit-forms/checkbox/index.js.map +1 -1
  556. package/dist/views/form-builder/element-edit-forms/column-width/index.esm.js.map +1 -1
  557. package/dist/views/form-builder/element-edit-forms/column-width/index.js.map +1 -1
  558. package/dist/views/form-builder/element-edit-forms/field-select/index.esm.js.map +1 -1
  559. package/dist/views/form-builder/element-edit-forms/field-select/index.js.map +1 -1
  560. package/dist/views/form-builder/element-edit-forms/section/index.esm.js.map +1 -1
  561. package/dist/views/form-builder/element-edit-forms/section/index.js.map +1 -1
  562. package/dist/views/form-builder/element-edit-forms/select/index.esm.js.map +1 -1
  563. package/dist/views/form-builder/element-edit-forms/select/index.js.map +1 -1
  564. package/dist/views/form-builder/element-edit-forms/table-form/index.esm.js.map +1 -1
  565. package/dist/views/form-builder/element-edit-forms/table-form/index.js.map +1 -1
  566. package/dist/views/form-builder/element-edit-forms/text/index.esm.js.map +1 -1
  567. package/dist/views/form-builder/element-edit-forms/text/index.js.map +1 -1
  568. package/dist/views/form-builder/field_properties/index.esm.js.map +1 -1
  569. package/dist/views/form-builder/field_properties/index.js.map +1 -1
  570. package/dist/views/form-builder/form-fields/index.esm.js.map +1 -1
  571. package/dist/views/form-builder/form-fields/index.js.map +1 -1
  572. package/dist/views/form-builder/redux/actionCreator/index.esm.js +1 -1
  573. package/dist/views/form-builder/redux/actionCreator/index.esm.js.map +1 -1
  574. package/dist/views/form-builder/redux/actionCreator/index.js +1 -1
  575. package/dist/views/form-builder/redux/actionCreator/index.js.map +1 -1
  576. package/dist/views/form-builder/redux/reducer/index.esm.js.map +1 -1
  577. package/dist/views/form-builder/redux/reducer/index.js.map +1 -1
  578. package/dist/views/form-builder/redux/state/index.esm.js.map +1 -1
  579. package/dist/views/form-builder/redux/state/index.js.map +1 -1
  580. package/dist/views/form-builder/utils/common/index.esm.js.map +1 -1
  581. package/dist/views/form-builder/utils/common/index.js.map +1 -1
  582. package/dist/views/index.d.ts +8 -8
  583. package/dist/views/privateRoute/index.esm.js.map +1 -1
  584. package/dist/views/privateRoute/index.js.map +1 -1
  585. package/dist/views/template-editor/add-template/add-template/index.esm.js.map +1 -1
  586. package/dist/views/template-editor/add-template/add-template/index.js.map +1 -1
  587. package/dist/views/template-editor/company-selection-modal/company-selection-modal/index.esm.js.map +1 -1
  588. package/dist/views/template-editor/company-selection-modal/company-selection-modal/index.js.map +1 -1
  589. package/dist/views/template-editor/components/EditorCanvas/index.esm.js.map +1 -1
  590. package/dist/views/template-editor/components/EditorCanvas/index.js.map +1 -1
  591. package/dist/views/template-editor/components/EditorHeader/index.esm.js.map +1 -1
  592. package/dist/views/template-editor/components/EditorHeader/index.js.map +1 -1
  593. package/dist/views/template-editor/components/EditorSection/index.esm.js.map +1 -1
  594. package/dist/views/template-editor/components/EditorSection/index.js.map +1 -1
  595. package/dist/views/template-editor/components/EditorSidebar/index.esm.js +1 -1
  596. package/dist/views/template-editor/components/EditorSidebar/index.esm.js.map +1 -1
  597. package/dist/views/template-editor/components/EditorSidebar/index.js +1 -1
  598. package/dist/views/template-editor/components/EditorSidebar/index.js.map +1 -1
  599. package/dist/views/template-editor/components/SectionFlowEditor/index.esm.js.map +1 -1
  600. package/dist/views/template-editor/components/SectionFlowEditor/index.js.map +1 -1
  601. package/dist/views/template-editor/components/SectionFormatPanel/index.esm.js.map +1 -1
  602. package/dist/views/template-editor/components/SectionFormatPanel/index.js.map +1 -1
  603. package/dist/views/template-editor/components/controllers/AlignmentControl/index.esm.js.map +1 -1
  604. package/dist/views/template-editor/components/controllers/AlignmentControl/index.js.map +1 -1
  605. package/dist/views/template-editor/components/controllers/ButtonControls/index.esm.js.map +1 -1
  606. package/dist/views/template-editor/components/controllers/ButtonControls/index.js.map +1 -1
  607. package/dist/views/template-editor/components/controllers/CodeControls/index.esm.js.map +1 -1
  608. package/dist/views/template-editor/components/controllers/CodeControls/index.js.map +1 -1
  609. package/dist/views/template-editor/components/controllers/DividerControls/index.esm.js.map +1 -1
  610. package/dist/views/template-editor/components/controllers/DividerControls/index.js.map +1 -1
  611. package/dist/views/template-editor/components/controllers/ImageControls/index.esm.js.map +1 -1
  612. package/dist/views/template-editor/components/controllers/ImageControls/index.js.map +1 -1
  613. package/dist/views/template-editor/components/controllers/SignatureControls/index.esm.js.map +1 -1
  614. package/dist/views/template-editor/components/controllers/SignatureControls/index.js.map +1 -1
  615. package/dist/views/template-editor/components/controllers/TableControls/index.esm.js.map +1 -1
  616. package/dist/views/template-editor/components/controllers/TableControls/index.js.map +1 -1
  617. package/dist/views/template-editor/components/controllers/TextControls/index.esm.js.map +1 -1
  618. package/dist/views/template-editor/components/controllers/TextControls/index.js.map +1 -1
  619. package/dist/views/template-editor/components/controllers/border-control/index.esm.js.map +1 -1
  620. package/dist/views/template-editor/components/controllers/border-control/index.js.map +1 -1
  621. package/dist/views/template-editor/edit-section-modal/edit-section-modal/index.esm.js.map +1 -1
  622. package/dist/views/template-editor/edit-section-modal/edit-section-modal/index.js.map +1 -1
  623. package/dist/views/template-editor/routes/index.esm.js.map +1 -1
  624. package/dist/views/template-editor/routes/index.js.map +1 -1
  625. package/dist/views/template-editor/template-modal/html-thumbnail-preview/index.esm.js.map +1 -1
  626. package/dist/views/template-editor/template-modal/html-thumbnail-preview/index.js.map +1 -1
  627. package/dist/views/template-editor/template-modal/template-modal/index.esm.js.map +1 -1
  628. package/dist/views/template-editor/template-modal/template-modal/index.js.map +1 -1
  629. package/dist/views/template-editor/template-name-modal/template-name-modal/index.esm.js.map +1 -1
  630. package/dist/views/template-editor/template-name-modal/template-name-modal/index.js.map +1 -1
  631. package/dist/views/template-editor/templates/index.esm.js +1 -1
  632. package/dist/views/template-editor/templates/index.esm.js.map +1 -1
  633. package/dist/views/template-editor/templates/index.js +1 -1
  634. package/dist/views/template-editor/templates/index.js.map +1 -1
  635. package/dist/views/template-editor/utils/common/index.esm.js.map +1 -1
  636. package/dist/views/template-editor/utils/common/index.js.map +1 -1
  637. package/dist/views/template-editor/utils/constant/index.esm.js.map +1 -1
  638. package/dist/views/template-editor/utils/constant/index.js.map +1 -1
  639. package/dist/views/template-editor/utils/default-data/index.esm.js.map +1 -1
  640. package/dist/views/template-editor/utils/default-data/index.js.map +1 -1
  641. package/dist/views/template-editor/utils/style-extractor/index.esm.js.map +1 -1
  642. package/dist/views/template-editor/utils/style-extractor/index.js.map +1 -1
  643. package/dist/vite-env.d.ts +23 -23
  644. package/package.json +299 -299
  645. package/src/styles/README.md +287 -287
  646. package/src/styles/all.scss +7 -7
  647. package/src/styles/animations.scss +5 -5
  648. package/src/styles/css/reset.css +1 -1
  649. package/src/styles/index.d.ts +1 -1
  650. package/src/styles/index.ts +1 -1
  651. package/src/styles/mixins.scss +5 -5
  652. package/src/styles/sass/main.scss +11 -11
  653. package/src/styles/utils.scss +5 -5
  654. package/src/styles/variables.scss +4 -4
  655. package/dist/node_modules/@tanstack/react-virtual/dist/esm/index/index.esm.js.map +0 -1
  656. package/dist/node_modules/@tanstack/react-virtual/dist/esm/index/index.js +0 -2
  657. package/dist/node_modules/@tanstack/react-virtual/dist/esm/index/index.js.map +0 -1
  658. package/dist/node_modules/@toast-ui/react-editor/dist/esm/index/index.esm.js.map +0 -1
  659. package/dist/node_modules/@toast-ui/react-editor/dist/esm/index/index.js +0 -2
  660. package/dist/node_modules/@toast-ui/react-editor/dist/esm/index/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../src/components/form-control/form-builder/form-builder-element/dynamic-select.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { Controller, useFormContext, useWatch, Control } from 'react-hook-form';\nimport { dynamicSelectAdd } from './select-configuration';\nimport {\n Box,\n CircularProgress,\n Divider,\n IconButton,\n InputAdornment,\n MenuItem,\n MenuItemProps,\n OutlinedInput,\n} from '@mui/material';\nimport PropTypes from 'prop-types';\nimport { debounce } from 'lodash';\nimport { sortBy } from \"lodash\";\nimport { useTranslation } from \"react-i18next\";\nimport { Add, Close } from '@mui/icons-material';\n\nimport Select from '../../../select/select';\nimport ChipOrPlaceholder from './chip-or-placeholder';\nimport Checkbox from '../../../checkbox/checkbox';\nimport Typography from '../../../typography/typography';\nimport Chip from '../../../chip/chip';\nimport { MoreIcon } from '../../../icons';\nimport { fetchApi } from '../../../../utils/api';\nimport { useLanguage } from '../../../../hooks/useLangauge';\nimport './element.scss';\n\n// Types\ninterface IOption {\n id: string | number;\n value: string | number;\n label: string | React.ReactNode;\n disabled?: boolean;\n isGroup?: boolean;\n options?: IOption[];\n searchLabel?: string;\n}\n\n\n\ninterface IMenuItemsProps extends MenuItemProps {\n options: IOption[];\n multiple: boolean;\n placeholder: string;\n with_checkboxes: boolean;\n values: string | string[];\n field: IDynamicSearchSelectProps;\n disabledIds: (string | number)[];\n onChange: (value: string | string[]) => void;\n handleChange?: (value: string | string[]) => void;\n hasParent: boolean;\n t: (key: string) => string;\n // onFooterClick?: () => void;\n}\n\ninterface IDynamicSearchSelectProps {\n name: string;\n placeholder: string;\n label: string;\n size?: 'small' | 'medium';\n options: IOption[];\n formControl: Control<any>;\n defaultValue?: string | string[];\n fieldArrayName: string;\n id?: string;\n required?: boolean;\n is_multiselect?: boolean;\n position?: number;\n formType?: string;\n typeOfField?: string;\n disabled?: boolean;\n onChipRemove?: (value: string) => void;\n enable_footer?: boolean;\n footer_action?: string;\n onFooterClick?: () => void;\n is_loading?: boolean;\n selectedLabel?: string;\n isInternal?: boolean;\n disabledIds?: (string | number)[];\n getSelectedData?: (data: IOption | IOption[] | null, name: string) => void;\n attributes?: string[];\n handleChange?: (value: string | string[]) => void;\n hasParent?: boolean;\n sortOrder?: string;\n apiType?: string;\n handleOptions?: (value: any) => void;\n filterKey?: string;\n customeFilter?: Record<string, any>;\n refresh?: boolean;\n addType?: string;\n}\n\ninterface IPaginationState {\n page: number;\n hasMore: boolean;\n isLoadingMore: boolean;\n total: number;\n}\n\n// Helper function to generate menu items\nconst generateMenuItems = ({\n options,\n multiple,\n placeholder,\n with_checkboxes,\n values,\n // field,\n disabledIds,\n onChange,\n handleChange,\n hasParent,\n t,\n // onFooterClick\n}: IMenuItemsProps): React.ReactElement[] => {\n const itemDisabled = (id: string | number) => disabledIds?.includes(id);\n const items: React.ReactElement[] = [];\n\n if (!multiple) {\n items.push(\n <MenuItem disabled value='' key=\"placeholder\" sx={{ opacity: `0 !important`, height: `0 !important`, p: `0 !important`, m: `0 !important` }}>\n <Typography type='s3' color='theme.secondary.1000'>\n <em>{t(placeholder)}</em>\n </Typography>\n </MenuItem>\n );\n }\n const selectedValues = (Array.isArray(values) && values?.length > 0) ? values?.filter((value) => value) : values;\n\n const handleParentChange = (parentValue: string, childOptions: IOption[]) => {\n const childValues = childOptions.map((child) => child.value);\n const valueArray = Array.isArray(selectedValues) ? selectedValues : [selectedValues];\n\n const isParentSelected = valueArray.includes(parentValue);\n const updatedValues = isParentSelected\n ? valueArray.filter((value) => value !== parentValue && !childValues.includes(value))\n : [...new Set([...valueArray, parentValue, ...childValues])];\n\n onChange(updatedValues);\n handleChange?.(updatedValues);\n };\n\n const isAllOptionsSelected = (parentValue: string, childOptions: IOption[]) => {\n const childValues = childOptions.map((child) => child.value);\n const valueArray = Array.isArray(selectedValues) ? selectedValues : [selectedValues];\n return childValues.every((childValue) => valueArray.includes(childValue));\n };\n\n const isSomeOptionsSelected = (childOptions: IOption[]) => {\n const childValues = childOptions.map((child) => child.value);\n const valueArray = Array.isArray(selectedValues) ? selectedValues : [selectedValues];\n return childValues.some((childValue) => valueArray.includes(childValue));\n };\n\n if (Array.isArray(options) && options.length > 0) {\n options.forEach((option) => {\n items.push(\n <MenuItem\n value={option.value}\n key={option.value}\n disabled={Boolean(option.disabled) || itemDisabled(option.id || option.value)}\n className={option.isGroup ? 'select--MenuItemHeader' : ''}\n >\n <Box sx={{ display: 'flex', gap: 1 }}>\n {multiple && with_checkboxes && (\n <Checkbox\n checked={\n hasParent\n ? isAllOptionsSelected(option.value, option.options || [])\n : Boolean(Array.isArray(selectedValues) ? selectedValues.includes(option.value) : selectedValues == option.value)\n }\n indeterminate={\n hasParent && isSomeOptionsSelected(option.options || [])\n }\n onChange={() => hasParent ? handleParentChange(option.value, option.options || []) : handleChange?.(option.value)}\n />\n )}\n <Typography\n type='s3'\n color='theme.secondary.1000'\n onClick={() => handleChange?.(option.value)}\n >\n {option.label}\n </Typography>\n </Box>\n </MenuItem>\n );\n\n if (option.isGroup && Array.isArray(option.options)) {\n option.options.forEach((opt) => {\n items.push(\n <MenuItem\n value={opt.value}\n disabled={Boolean(opt.disabled) || itemDisabled(opt.id || opt.value)}\n sx={{ pl: 5 }}\n key={`${option.value}-${opt.value}`}\n >\n <Box sx={{ display: 'flex', gap: 1 }}>\n {multiple && with_checkboxes && (\n <Checkbox\n checked={Boolean(Array.isArray(values) && values.includes(opt.value))}\n />\n )}\n <Typography\n type='s3'\n color='theme.secondary.1000'\n onClick={() => handleChange?.(String(opt.value))}\n >\n {opt.label == \"Payment Entries\" ? \"Payment and Collection Entries\" : opt.label || opt.value}\n </Typography>\n </Box>\n </MenuItem>\n );\n });\n }\n });\n }\n\n // if (field.enable_footer) {\n\n // }\n\n if (!items.length || (items.length == 1 && !multiple)) {\n items.push(\n <MenuItem disabled key=\"no-data\">\n No data available\n </MenuItem>\n );\n }\n\n return items;\n};\n\n// Selected items component\nconst SelectedItems: React.FC<{\n data: (string | number)[];\n options: IOption[];\n}> = ({ data, options }) => {\n const displayTitle = data.map(\n (selectedItem) =>\n options?.find((option) => option.value == selectedItem)?.label || ''\n );\n const filteredDisplayTitle = displayTitle.filter(Boolean);\n\n return (\n <Typography\n type='s4'\n color='inherit'\n sx={{ display: 'flex', gap: 1, alignItems: 'center', mt: 0.5 }}\n >\n {filteredDisplayTitle.slice(0, 4).join(', ')}\n {data.length > 4 && (\n <Chip variant='outlined' type='normal' label={<MoreIcon />} />\n )}\n </Typography>\n );\n};\n\nconst Loading = () => (\n <Typography fontStyle='italic' color='inherit' type='s3'>Loading...</Typography>\n)\n\nconst DynamicSearchSelect: React.FC<IDynamicSearchSelectProps> = React.memo((props) => {\n const watchedValue = useWatch({\n control: props.formControl,\n name: `${props.fieldArrayName}.${props.name}`\n });\n\n const formContext = useFormContext();\n const { setValue } = formContext || {};\n const { t } = useTranslation();\n const { isRtl } = useLanguage();\n const selectRef = useRef<HTMLDivElement>(null);\n\n // State management\n const [options, setOptions] = useState<IOption[]>([]);\n const [selectedValue, setSelectedValue] = useState<any>(null);\n const [selectedOptions, setSelectedOptions] = useState<IOption[]>([]);\n const [loading, setLoading] = useState<boolean>(false);\n const [open, setOpen] = useState<boolean>(false);\n const [isAlreadyLoaded, setIsAlreadyLoaded] = useState<boolean>(false);\n const [prevFilter, setPrevFilter] = useState<any>(null);\n const [initialLoading, setInitialLoading] = useState<boolean>(false);\n const [searchQuery, setSearchQuery] = useState<string>(\"\");\n const [searchInitiate, setSearchInitiate] = useState<boolean>(false);\n const [addConfig, setAddConfig] = useState<any>(null);\n\n // Modal states\n const [isModalOpen, setIsModalOpen] = useState<boolean>(false);\n const [isAddLoading, setIsAddLoading] = useState<boolean>(false);\n\n\n // Pagination state\n const [pagination, setPagination] = useState<IPaginationState>({\n page: 1,\n hasMore: true,\n isLoadingMore: false,\n total: 0\n });\n\n // Props destructuring with defaults\n const {\n handleOptions,\n isInternal = false,\n disabledIds = [],\n getSelectedData,\n attributes = [],\n filterKey = 'id',\n customeFilter = {},\n refresh,\n handleChange,\n hasParent = false,\n sortOrder = 'id:-1',\n apiType,\n addType\n } = props;\n\n const limit = 25;\n\n // Memoized values\n const isInternalOptions = useMemo(() => {\n return isInternal || !apiType;\n }, [isInternal, apiType]);\n //eslint-disable-next-line\n const cf = useMemo(() => customeFilter, [JSON.stringify(customeFilter)]);\n\n // Local search function\n const searchOptionsLocally = useCallback((searchTerm: string, value: any): IOption[] => {\n if (!searchTerm) return props.options || [];\n\n const lowercasedSearchTerm = searchTerm.toLowerCase();\n\n const filteredOptions = hasParent\n ? props.options?.reduce((acc: IOption[], opt) => {\n const searchedOptions = opt.options?.filter((item) => {\n const label = React.isValidElement(item.label) ? item.searchLabel : String(item.label);\n return label?.toLowerCase().includes(lowercasedSearchTerm);\n });\n\n if (searchedOptions?.length) {\n acc.push({ ...opt, options: searchedOptions });\n }\n\n return acc;\n }, []) || []\n : props.options?.filter((opt) => {\n const label = React.isValidElement(opt.label) ? opt.searchLabel : String(opt.label);\n return label?.toLowerCase().includes(lowercasedSearchTerm);\n }) || [];\n //eslint-disable-next-line\n return sortBySelectedValues(filteredOptions, value);\n //eslint-disable-next-line\n }, [props.options, hasParent]);\n\n // Get unique options\n const getUniqueOptions = useCallback((data: IOption[]): IOption[] => {\n const uniqueOptions = [\n ...new Map(data?.map(item => [item.value, item])).values()\n ];\n return uniqueOptions;\n }, []);\n\n // Sort by selected values\n const sortBySelectedValues = useCallback((arrayToSort: IOption[], value: any): IOption[] => {\n const selectedValues = Array.isArray(value) ? value : [value];\n const sortedValue = sortBy(arrayToSort, (item) => {\n const index = selectedValues.indexOf(item.id || item.value);\n return index == -1 ? Infinity : index;\n });\n return sortedValue;\n }, []);\n\n // Filtered options with pagination support\n const filteredOptions = useMemo(() => {\n if (isInternalOptions) {\n return searchOptionsLocally(searchQuery, watchedValue);\n }\n return sortBySelectedValues(getUniqueOptions([...options, ...selectedOptions]), watchedValue);\n //eslint-disable-next-line\n }, [options, selectedOptions, isInternalOptions, props.options, watchedValue, searchQuery, searchOptionsLocally, sortBySelectedValues, getUniqueOptions]);\n\n // API Functions\n const fetchOptions = useCallback(async (searchTerm = '', flt = cf, page = 1, append = false) => {\n if (!apiType) return [];\n\n setLoading(true);\n if (page > 1) {\n setPagination(prev => ({ ...prev, isLoadingMore: true }));\n }\n\n try {\n const { data = [], pagination = {} } = await fetchApi({\n apiKey: apiType,\n filters: {\n limit,\n skip: (page - 1) * limit,\n search: searchTerm,\n filters: flt,\n select: attributes,\n order: sortOrder\n }\n });\n\n if (data && Array.isArray(data)) {\n const newOptions = append ? [...options, ...data] : data;\n updateOptions(newOptions, append);\n handleSelectedValue(data);\n // Update pagination\n setPagination(prev => ({\n ...prev,\n page,\n hasMore: pagination?.totalCount > (page * limit),\n total: pagination?.totalCount,\n isLoadingMore: false\n }));\n }\n\n return data || [];\n } catch (error) {\n console.error('Error fetching options:', error);\n setPagination(prev => ({ ...prev, isLoadingMore: false }));\n return [];\n } finally {\n setLoading(false);\n }\n //eslint-disable-next-line\n }, [apiType, options, attributes, sortOrder, limit, cf]);\n\n // Handle scroll pagination\n const handleScroll = useCallback((event: React.UIEvent<HTMLDivElement>) => {\n const { scrollTop, scrollHeight, clientHeight } = event.currentTarget;\n const isBottom = scrollHeight - scrollTop <= clientHeight + 10;\n\n if (isBottom && pagination.hasMore && !pagination.isLoadingMore && !isInternalOptions) {\n const nextPage = pagination.page + 1;\n fetchOptions(searchQuery, cf, nextPage, true);\n }\n }, [pagination.hasMore, pagination.isLoadingMore, pagination.page, isInternalOptions, searchQuery, cf, fetchOptions]);\n\n // Update options\n const updateOptions = useCallback((newOptions: IOption[], append = false) => {\n const oldOptions = append ? options : selectedOptions;\n const uniqueOptions = getUniqueOptions([...oldOptions, ...newOptions]);\n setOptions(uniqueOptions);\n }, [options, selectedOptions, getUniqueOptions]);\n\n // Handle selected value\n const handleSelectedValue = useCallback(async (updateOptions: IOption[]) => {\n const filterValue = props.is_multiselect ? watchedValue : [watchedValue];\n const isInOptions = updateOptions?.filter((item) =>\n Array.isArray(filterValue) ? filterValue.includes(item.id || item.value) : (item[filterKey] || item.value || item.id) == filterValue\n );\n\n if (Array.isArray(isInOptions) && isInOptions.length > 0) {\n getSelectedData?.(props.is_multiselect ? isInOptions : isInOptions[0], props.name);\n return true;\n }\n return false;\n //eslint-disable-next-line\n }, [props.is_multiselect, props.name, watchedValue, filterKey, getSelectedData, filteredOptions]);\n\n // Fetch options by ID\n const fetchIdOptions = useCallback(async () => {\n if (await handleSelectedValue(filteredOptions)) return;\n if (open) return;\n const condition = props.is_multiselect ?\n Array.isArray(watchedValue) && watchedValue.length > 0 :\n Boolean(watchedValue);\n\n if (condition) {\n setInitialLoading(true);\n const response = await fetchOptions('', { ...cf, '&id.in': watchedValue }, 1, false);\n setInitialLoading(false);\n\n if (response.length == 0 && setValue && !isInternalOptions) {\n // setValue(`${props.fieldArrayName}.${props.name}`, props.is_multiselect ? [] : null);\n }\n }\n //eslint-disable-next-line\n }, [open, watchedValue, JSON.stringify(cf)]);\n\n // Initial fetch\n const initialFetch = useCallback(async () => {\n const condition = JSON.stringify(cf) !== JSON.stringify(prevFilter);\n\n if (condition) {\n setPrevFilter(cf);\n setOptions([]);\n setIsAlreadyLoaded(false);\n setPagination({\n page: 1,\n hasMore: true,\n isLoadingMore: false,\n total: 0\n });\n }\n\n if (!isInternalOptions && !isAlreadyLoaded) {\n await fetchOptions(searchQuery, cf, 1, false);\n setIsAlreadyLoaded(true);\n }\n //eslint-disable-next-line react-hooks/exhaustive-deps\n }, [cf, isInternalOptions, isAlreadyLoaded]);\n\n // Debounced search\n const debouncedSearch = useMemo(\n () => debounce(async (searchTerm: string) => {\n if (loading) return;\n\n if (!searchTerm && !isInternalOptions && searchInitiate) {\n setPagination({\n page: 1,\n hasMore: true,\n isLoadingMore: false,\n total: 0\n });\n await fetchOptions('', cf, 1, false);\n }\n if (searchTerm.length > 1 && !isInternalOptions) {\n setPagination({\n page: 1,\n hasMore: true,\n isLoadingMore: false,\n total: 0\n });\n await fetchOptions(searchTerm, cf, 1, false);\n }\n }, 700),\n //eslint-disable-next-line\n [isInternalOptions, searchInitiate, cf]\n );\n\n // Reset value function\n const resetValue = useCallback((field: any) => {\n field.onChange(props.is_multiselect ? [] : null);\n if (getSelectedData) {\n getSelectedData(null, props.name);\n }\n }, [props.is_multiselect, props.name, getSelectedData]);\n\n // Handle close\n const handleClose = useCallback(() => {\n setOpen(false);\n if (searchQuery.length > 0) {\n setIsAlreadyLoaded(false);\n }\n setSearchInitiate(false);\n setSearchQuery('');\n }, [searchQuery]);\n\n const handleModalOpen = useCallback(() => {\n setIsModalOpen(true);\n }, []);\n\n\n\n // Handle modal save\n const handleModalSave = useCallback(async (payload: any) => {\n if (!addConfig || !addConfig.api) {\n console.error('Add configuration is not properly set');\n return;\n }\n\n setIsAddLoading(true);\n try {\n const result = await addConfig.api(payload);\n setIsAddLoading(false);\n setIsModalOpen(false);\n if (!isInternalOptions) {\n setPagination({\n page: 1,\n hasMore: true,\n isLoadingMore: false,\n total: 0\n });\n setIsAlreadyLoaded(false);\n await fetchOptions('', cf, 1, false);\n }\n if (result && result.data) {\n const newValue = props.is_multiselect\n ? [...(watchedValue || []), result.data.id]\n : result.data.id;\n\n if (setValue) {\n setValue(`${props.fieldArrayName}.${props.name}`, newValue);\n }\n }\n } catch (error) {\n console.log(\"error\", error);\n setIsAddLoading(false);\n }\n\n\n }, [addConfig, isInternalOptions, fetchOptions, cf, props.is_multiselect, props.fieldArrayName, props.name, watchedValue, setValue]);\n\n // Effects\n useEffect(() => {\n if (handleOptions) {\n handleOptions(selectedValue);\n }\n }, [handleOptions, selectedValue]);\n\n useEffect(() => {\n if (open) {\n initialFetch();\n }\n }, [open, initialFetch]);\n\n useEffect(() => {\n fetchIdOptions();\n }, [fetchIdOptions]);\n\n useEffect(() => {\n if (refresh) {\n setPagination({\n page: 1,\n hasMore: true,\n isLoadingMore: false,\n total: 0\n });\n fetchOptions('', cf, 1, false);\n }\n }, [refresh, fetchOptions, cf]);\n\n useEffect(() => {\n if (open) {\n debouncedSearch(searchQuery);\n }\n return () => debouncedSearch.cancel();\n }, [searchQuery, open, debouncedSearch]);\n\n useEffect(() => {\n if (watchedValue && !open) {\n const selectedData = options?.filter((item) =>\n props.is_multiselect ?\n Array.isArray(watchedValue) && watchedValue.includes(item.id || item.value) :\n (item.id || item.value) == watchedValue\n );\n setSelectedOptions(selectedData || []);\n }\n }, [watchedValue, options, props.is_multiselect, open]);\n\n const removeUndefined = useCallback((selectOptions: any[]) => {\n return Array.isArray(selectOptions) ? selectOptions.filter(Boolean) : [];\n }, []);\n\n useEffect(() => {\n if (!addType) return;\n const config = dynamicSelectAdd(addType);\n setAddConfig(config);\n }, [addType])\n\n useEffect(() => {\n handleSelectedValue(filteredOptions)\n }, [handleSelectedValue])\n return (\n <Controller\n control={props.formControl}\n name={`${props.fieldArrayName}.${props.name}`}\n render={({ field, fieldState }) => (\n <>\n {props.placeholder == 'Select Currency' && setSelectedValue(field.value)}\n <Select\n {...field}\n ref={selectRef}\n open={open}\n onOpen={() => setOpen(true)}\n onClose={handleClose}\n fullWidth\n dataPosition={props.position}\n dataName={`${props.fieldArrayName}.${props.name}`}\n placeholder={props.placeholder}\n label={props.label}\n defaultValue={props.defaultValue || (props.is_multiselect ? [] : '')}\n searchValue={searchQuery}\n required={props.formType == 'builder' ? false : props.required}\n size={props.size || 'small'}\n multiple={props.is_multiselect || false}\n disabled={props.disabled}\n sx={(props.is_multiselect && field?.value?.length) ? { \"& .MuiSelect-select\": { padding: '5.5px !important' } } : {}}\n variant='outlined'\n value={\n initialLoading\n ? (props.is_multiselect ? [] : '')\n : (field.value?.id || field.value || (props.is_multiselect ? [] : ''))\n }\n className={\n props.is_multiselect && removeUndefined(field.value)?.length\n ? 'MultiSelect filter-select'\n : ''\n }\n MenuProps={{\n PaperProps: {\n onScroll: handleScroll,\n style: { maxHeight: 300 }\n }\n }}\n\n renderValue={(selected: any) => {\n if (Array.isArray(selected)) {\n return (\n <ChipOrPlaceholder\n selectedLabel={props.selectedLabel}\n data={removeUndefined(selected)}\n placeholder={(loading || props.is_loading) ? <Loading /> : `${t('common.search')} ${props.label}`}\n onDelete={props.onChipRemove}\n disabled={props.disabled}\n chipProps={{\n sx: {\n background: '#ebf9f2',\n border: 0,\n // borderRadius: '15px',\n '& .MuiTypography-body1': {\n color: '#289b64',\n fontWeight: \"500\",\n }\n }\n }}\n />\n );\n } else {\n const selectedOption = filteredOptions?.find(\n (option) => (option.value?.id || option.value) == selected\n );\n return (loading || props.is_loading) ? <Loading /> : selectedOption?.label ||\n (typeof props.label == 'string' ?\n `${t('common.search')} ${props.label}` :\n props.placeholder);\n }\n }}\n searchPlaceholder={`${t('common.search')} ${props.label}`}\n handleSearch={(text: string) => {\n setSearchQuery(text);\n setSearchInitiate(true);\n }}\n error={Boolean(fieldState.error?.message)}\n helperText={fieldState.error?.message || ''}\n onBlur={field.onBlur}\n input={\n <OutlinedInput\n label=''\n endAdornment={\n <InputAdornment position='end'>\n {(loading || props.is_loading) ? (\n <CircularProgress\n size={20}\n sx={{ mr: 3, color: \"#4AC08C\" }}\n />\n ) : (\n !props.disabled &&\n (props.is_multiselect ?\n (Array.isArray(field.value) && field.value.length > 0) :\n Boolean(field.value)) && (\n <IconButton\n aria-label='clear selection'\n onClick={() => resetValue(field)}\n edge='end'\n sx={isRtl ? { ml: 2.5 } : { mr: 1.5 }}\n size='small'\n >\n <Close sx={{ fontSize: '1rem' }} />\n </IconButton>\n )\n )}\n </InputAdornment>\n }\n />\n }\n >\n {generateMenuItems({\n options: filteredOptions,\n multiple: Boolean(props.is_multiselect),\n placeholder: props.placeholder,\n values: field.value,\n with_checkboxes: true,\n field: props,\n disabledIds,\n onChange: field.onChange,\n handleChange,\n hasParent,\n t,\n // onFooterClick: () => {\n // if (props?.onFooterClick) {\n // props?.onFooterClick();\n // } else {\n // handleModalOpen();\n // }\n // }\n })}\n {props?.enable_footer &&\n <Box key=\"footer\" sx={{ position: 'sticky', bottom: 0, background: '#fff', zIndex: 1 }}>\n <Divider flexItem sx={{ mt: '0.25rem !important', mb: '0.25rem !important' }} />\n <MenuItem sx={{ gap: 1 }} onClick={\n () => {\n if (props?.onFooterClick) {\n props?.onFooterClick();\n } else {\n handleModalOpen();\n }\n }\n\n }>\n <Add fontSize='small' />\n <Typography type='s4' color='theme.secondary.1000'>\n Create New {props.label}\n </Typography>\n </MenuItem>\n </Box>}\n {pagination.isLoadingMore && (\n <MenuItem disabled>\n <Box sx={{ display: 'flex', justifyContent: 'center', width: '100%' }}>\n <CircularProgress size={20} />\n </Box>\n </MenuItem>\n )}\n </Select>\n\n {/* Modal for adding new items */}\n {addConfig && addConfig.component && (\n <>\n {React.createElement(addConfig.component, {\n isOpen: isModalOpen,\n setIsOpen: setIsModalOpen,\n isLoading: isAddLoading,\n onSave: handleModalSave,\n modalProps: {\n maxWidth: 'md',\n fullWidth: true\n },\n ...props?.modalComponentProps\n })}\n </>\n )}\n\n {props.is_multiselect && Array.isArray(field.value) && (\n <SelectedItems\n data={field.value}\n options={filteredOptions}\n />\n )}\n </>\n )}\n />\n );\n});\n\nDynamicSearchSelect.propTypes = {\n name: PropTypes.string.isRequired,\n placeholder: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n size: PropTypes.string,\n options: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n value: PropTypes.any\n })\n ).isRequired,\n formControl: PropTypes.object.isRequired,\n defaultValue: PropTypes.any,\n fieldArrayName: PropTypes.string.isRequired,\n id: PropTypes.string,\n required: PropTypes.bool,\n is_multiselect: PropTypes.bool,\n position: PropTypes.number,\n formType: PropTypes.string,\n typeOfField: PropTypes.string,\n disabled: PropTypes.bool,\n onChipRemove: PropTypes.func,\n enable_footer: PropTypes.bool,\n footer_action: PropTypes.string,\n onFooterClick: PropTypes.func,\n is_loading: PropTypes.bool,\n selectedLabel: PropTypes.string,\n isInternal: PropTypes.bool,\n disabledIds: PropTypes.array,\n getSelectedData: PropTypes.func,\n attributes: PropTypes.array,\n handleChange: PropTypes.func,\n hasParent: PropTypes.bool,\n sortOrder: PropTypes.string,\n apiType: PropTypes.string,\n handleOptions: PropTypes.func,\n filterKey: PropTypes.string,\n customeFilter: PropTypes.object,\n refresh: PropTypes.bool,\n addType: PropTypes.string,\n modalComponentProps: PropTypes.object\n};\n\nexport default DynamicSearchSelect;\n"],"names":["generateMenuItems","options","multiple","placeholder","with_checkboxes","values","disabledIds","onChange","handleChange","hasParent","t","itemDisabled","id","includes","items","push","jsx","MenuItem","disabled","value","sx","opacity","height","p","m","children","Typography","type","color","selectedValues","Array","isArray","length","filter","isAllOptionsSelected","parentValue","childOptions","childValues","map","child","valueArray","every","childValue","isSomeOptionsSelected","some","forEach","option","Boolean","className","isGroup","jsxs","Box","display","gap","Checkbox","checked","indeterminate","updatedValues","Set","handleParentChange","onClick","label","opt","pl","String","SelectedItems","data","filteredDisplayTitle","selectedItem","_a","find","alignItems","mt","slice","join","Chip","variant","MoreIcon","Loading","fontStyle","DynamicSearchSelect","React","memo","props","watchedValue","useWatch","control","formControl","name","fieldArrayName","formContext","useFormContext","setValue","useTranslation","isRtl","useLanguage","selectRef","useRef","setOptions","useState","selectedValue","setSelectedValue","selectedOptions","setSelectedOptions","loading","setLoading","open","setOpen","isAlreadyLoaded","setIsAlreadyLoaded","prevFilter","setPrevFilter","initialLoading","setInitialLoading","searchQuery","setSearchQuery","searchInitiate","setSearchInitiate","addConfig","setAddConfig","isModalOpen","setIsModalOpen","isAddLoading","setIsAddLoading","pagination","setPagination","page","hasMore","isLoadingMore","total","handleOptions","isInternal","getSelectedData","attributes","filterKey","customeFilter","refresh","sortOrder","apiType","addType","isInternalOptions","useMemo","cf","JSON","stringify","searchOptionsLocally","useCallback","searchTerm","lowercasedSearchTerm","toLowerCase","filteredOptions","reduce","acc","searchedOptions","item","isValidElement","searchLabel","_b","sortBySelectedValues","getUniqueOptions","Map","arrayToSort","sortBy","index","indexOf","Infinity","fetchOptions","async","flt","append","prev","fetchApi","apiKey","filters","limit","skip","search","select","order","newOptions","updateOptions","handleSelectedValue","totalCount","error","handleScroll","event","scrollTop","scrollHeight","clientHeight","currentTarget","nextPage","uniqueOptions","filterValue","is_multiselect","isInOptions","fetchIdOptions","initialFetch","debouncedSearch","debounce","resetValue","field","handleClose","handleModalOpen","handleModalSave","payload","api","result","newValue","useEffect","cancel","selectedData","removeUndefined","selectOptions","config","dynamicSelectAdd","Controller","render","fieldState","Fragment","Select","ref","onOpen","onClose","fullWidth","dataPosition","position","dataName","defaultValue","searchValue","required","formType","size","padding","_c","MenuProps","PaperProps","onScroll","style","maxHeight","renderValue","selected","ChipOrPlaceholder","selectedLabel","is_loading","onDelete","onChipRemove","chipProps","background","border","fontWeight","selectedOption","searchPlaceholder","handleSearch","text","_d","message","helperText","_e","onBlur","input","OutlinedInput","endAdornment","InputAdornment","CircularProgress","mr","IconButton","edge","ml","Close","fontSize","enable_footer","bottom","zIndex","Divider","flexItem","mb","onFooterClick","Add","justifyContent","width","component","createElement","isOpen","setIsOpen","isLoading","onSave","modalProps","maxWidth","modalComponentProps","propTypes","PropTypes","string","isRequired","arrayOf","shape","oneOfType","node","any","object","bool","number","typeOfField","func","footer_action","array"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../src/components/form-control/form-builder/form-builder-element/dynamic-select.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\r\nimport { Controller, useFormContext, useWatch, Control } from 'react-hook-form';\r\nimport { dynamicSelectAdd } from './select-configuration';\r\nimport {\r\n Box,\r\n CircularProgress,\r\n Divider,\r\n IconButton,\r\n InputAdornment,\r\n MenuItem,\r\n MenuItemProps,\r\n OutlinedInput,\r\n} from '@mui/material';\r\nimport PropTypes from 'prop-types';\r\nimport { debounce } from 'lodash';\r\nimport { sortBy } from \"lodash\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Add, Close } from '@mui/icons-material';\r\n\r\nimport Select from '../../../select/select';\r\nimport ChipOrPlaceholder from './chip-or-placeholder';\r\nimport Checkbox from '../../../checkbox/checkbox';\r\nimport Typography from '../../../typography/typography';\r\nimport Chip from '../../../chip/chip';\r\nimport { MoreIcon } from '../../../icons';\r\nimport { fetchApi } from '../../../../utils/api';\r\nimport { useLanguage } from '../../../../hooks/useLangauge';\r\nimport './element.scss';\r\n\r\n// Types\r\ninterface IOption {\r\n id: string | number;\r\n value: string | number;\r\n label: string | React.ReactNode;\r\n disabled?: boolean;\r\n isGroup?: boolean;\r\n options?: IOption[];\r\n searchLabel?: string;\r\n}\r\n\r\n\r\n\r\ninterface IMenuItemsProps extends MenuItemProps {\r\n options: IOption[];\r\n multiple: boolean;\r\n placeholder: string;\r\n with_checkboxes: boolean;\r\n values: string | string[];\r\n field: IDynamicSearchSelectProps;\r\n disabledIds: (string | number)[];\r\n onChange: (value: string | string[]) => void;\r\n handleChange?: (value: string | string[]) => void;\r\n hasParent: boolean;\r\n t: (key: string) => string;\r\n // onFooterClick?: () => void;\r\n}\r\n\r\ninterface IDynamicSearchSelectProps {\r\n name: string;\r\n placeholder: string;\r\n label: string;\r\n size?: 'small' | 'medium';\r\n options: IOption[];\r\n formControl: Control<any>;\r\n defaultValue?: string | string[];\r\n fieldArrayName: string;\r\n id?: string;\r\n required?: boolean;\r\n is_multiselect?: boolean;\r\n position?: number;\r\n formType?: string;\r\n typeOfField?: string;\r\n disabled?: boolean;\r\n onChipRemove?: (value: string) => void;\r\n enable_footer?: boolean;\r\n footer_action?: string;\r\n onFooterClick?: () => void;\r\n is_loading?: boolean;\r\n selectedLabel?: string;\r\n isInternal?: boolean;\r\n disabledIds?: (string | number)[];\r\n getSelectedData?: (data: IOption | IOption[] | null, name: string) => void;\r\n attributes?: string[];\r\n handleChange?: (value: string | string[]) => void;\r\n hasParent?: boolean;\r\n sortOrder?: string;\r\n apiType?: string;\r\n handleOptions?: (value: any) => void;\r\n filterKey?: string;\r\n customeFilter?: Record<string, any>;\r\n refresh?: boolean;\r\n addType?: string;\r\n}\r\n\r\ninterface IPaginationState {\r\n page: number;\r\n hasMore: boolean;\r\n isLoadingMore: boolean;\r\n total: number;\r\n}\r\n\r\n// Helper function to generate menu items\r\nconst generateMenuItems = ({\r\n options,\r\n multiple,\r\n placeholder,\r\n with_checkboxes,\r\n values,\r\n // field,\r\n disabledIds,\r\n onChange,\r\n handleChange,\r\n hasParent,\r\n t,\r\n // onFooterClick\r\n}: IMenuItemsProps): React.ReactElement[] => {\r\n const itemDisabled = (id: string | number) => disabledIds?.includes(id);\r\n const items: React.ReactElement[] = [];\r\n\r\n if (!multiple) {\r\n items.push(\r\n <MenuItem disabled value='' key=\"placeholder\" sx={{ opacity: `0 !important`, height: `0 !important`, p: `0 !important`, m: `0 !important` }}>\r\n <Typography type='s3' color='theme.secondary.1000'>\r\n <em>{t(placeholder)}</em>\r\n </Typography>\r\n </MenuItem>\r\n );\r\n }\r\n const selectedValues = (Array.isArray(values) && values?.length > 0) ? values?.filter((value) => value) : values;\r\n\r\n const handleParentChange = (parentValue: string, childOptions: IOption[]) => {\r\n const childValues = childOptions.map((child) => child.value);\r\n const valueArray = Array.isArray(selectedValues) ? selectedValues : [selectedValues];\r\n\r\n const isParentSelected = valueArray.includes(parentValue);\r\n const updatedValues = isParentSelected\r\n ? valueArray.filter((value) => value !== parentValue && !childValues.includes(value))\r\n : [...new Set([...valueArray, parentValue, ...childValues])];\r\n\r\n onChange(updatedValues);\r\n handleChange?.(updatedValues);\r\n };\r\n\r\n const isAllOptionsSelected = (parentValue: string, childOptions: IOption[]) => {\r\n const childValues = childOptions.map((child) => child.value);\r\n const valueArray = Array.isArray(selectedValues) ? selectedValues : [selectedValues];\r\n return childValues.every((childValue) => valueArray.includes(childValue));\r\n };\r\n\r\n const isSomeOptionsSelected = (childOptions: IOption[]) => {\r\n const childValues = childOptions.map((child) => child.value);\r\n const valueArray = Array.isArray(selectedValues) ? selectedValues : [selectedValues];\r\n return childValues.some((childValue) => valueArray.includes(childValue));\r\n };\r\n\r\n if (Array.isArray(options) && options.length > 0) {\r\n options.forEach((option) => {\r\n items.push(\r\n <MenuItem\r\n value={option.value}\r\n key={option.value}\r\n disabled={Boolean(option.disabled) || itemDisabled(option.id || option.value)}\r\n className={option.isGroup ? 'select--MenuItemHeader' : ''}\r\n >\r\n <Box sx={{ display: 'flex', gap: 1 }}>\r\n {multiple && with_checkboxes && (\r\n <Checkbox\r\n checked={\r\n hasParent\r\n ? isAllOptionsSelected(option.value, option.options || [])\r\n : Boolean(Array.isArray(selectedValues) ? selectedValues.includes(option.value) : selectedValues == option.value)\r\n }\r\n indeterminate={\r\n hasParent && isSomeOptionsSelected(option.options || [])\r\n }\r\n onChange={() => hasParent ? handleParentChange(option.value, option.options || []) : handleChange?.(option.value)}\r\n />\r\n )}\r\n <Typography\r\n type='s3'\r\n color='theme.secondary.1000'\r\n onClick={() => handleChange?.(option.value)}\r\n >\r\n {option.label}\r\n </Typography>\r\n </Box>\r\n </MenuItem>\r\n );\r\n\r\n if (option.isGroup && Array.isArray(option.options)) {\r\n option.options.forEach((opt) => {\r\n items.push(\r\n <MenuItem\r\n value={opt.value}\r\n disabled={Boolean(opt.disabled) || itemDisabled(opt.id || opt.value)}\r\n sx={{ pl: 5 }}\r\n key={`${option.value}-${opt.value}`}\r\n >\r\n <Box sx={{ display: 'flex', gap: 1 }}>\r\n {multiple && with_checkboxes && (\r\n <Checkbox\r\n checked={Boolean(Array.isArray(values) && values.includes(opt.value))}\r\n />\r\n )}\r\n <Typography\r\n type='s3'\r\n color='theme.secondary.1000'\r\n onClick={() => handleChange?.(String(opt.value))}\r\n >\r\n {opt.label == \"Payment Entries\" ? \"Payment and Collection Entries\" : opt.label || opt.value}\r\n </Typography>\r\n </Box>\r\n </MenuItem>\r\n );\r\n });\r\n }\r\n });\r\n }\r\n\r\n // if (field.enable_footer) {\r\n\r\n // }\r\n\r\n if (!items.length || (items.length == 1 && !multiple)) {\r\n items.push(\r\n <MenuItem disabled key=\"no-data\">\r\n No data available\r\n </MenuItem>\r\n );\r\n }\r\n\r\n return items;\r\n};\r\n\r\n// Selected items component\r\nconst SelectedItems: React.FC<{\r\n data: (string | number)[];\r\n options: IOption[];\r\n}> = ({ data, options }) => {\r\n const displayTitle = data.map(\r\n (selectedItem) =>\r\n options?.find((option) => option.value == selectedItem)?.label || ''\r\n );\r\n const filteredDisplayTitle = displayTitle.filter(Boolean);\r\n\r\n return (\r\n <Typography\r\n type='s4'\r\n color='inherit'\r\n sx={{ display: 'flex', gap: 1, alignItems: 'center', mt: 0.5 }}\r\n >\r\n {filteredDisplayTitle.slice(0, 4).join(', ')}\r\n {data.length > 4 && (\r\n <Chip variant='outlined' type='normal' label={<MoreIcon />} />\r\n )}\r\n </Typography>\r\n );\r\n};\r\n\r\nconst Loading = () => (\r\n <Typography fontStyle='italic' color='inherit' type='s3'>Loading...</Typography>\r\n)\r\n\r\nconst DynamicSearchSelect: React.FC<IDynamicSearchSelectProps> = React.memo((props) => {\r\n const watchedValue = useWatch({\r\n control: props.formControl,\r\n name: `${props.fieldArrayName}.${props.name}`\r\n });\r\n\r\n const formContext = useFormContext();\r\n const { setValue } = formContext || {};\r\n const { t } = useTranslation();\r\n const { isRtl } = useLanguage();\r\n const selectRef = useRef<HTMLDivElement>(null);\r\n\r\n // State management\r\n const [options, setOptions] = useState<IOption[]>([]);\r\n const [selectedValue, setSelectedValue] = useState<any>(null);\r\n const [selectedOptions, setSelectedOptions] = useState<IOption[]>([]);\r\n const [loading, setLoading] = useState<boolean>(false);\r\n const [open, setOpen] = useState<boolean>(false);\r\n const [isAlreadyLoaded, setIsAlreadyLoaded] = useState<boolean>(false);\r\n const [prevFilter, setPrevFilter] = useState<any>(null);\r\n const [initialLoading, setInitialLoading] = useState<boolean>(false);\r\n const [searchQuery, setSearchQuery] = useState<string>(\"\");\r\n const [searchInitiate, setSearchInitiate] = useState<boolean>(false);\r\n const [addConfig, setAddConfig] = useState<any>(null);\r\n\r\n // Modal states\r\n const [isModalOpen, setIsModalOpen] = useState<boolean>(false);\r\n const [isAddLoading, setIsAddLoading] = useState<boolean>(false);\r\n\r\n\r\n // Pagination state\r\n const [pagination, setPagination] = useState<IPaginationState>({\r\n page: 1,\r\n hasMore: true,\r\n isLoadingMore: false,\r\n total: 0\r\n });\r\n\r\n // Props destructuring with defaults\r\n const {\r\n handleOptions,\r\n isInternal = false,\r\n disabledIds = [],\r\n getSelectedData,\r\n attributes = [],\r\n filterKey = 'id',\r\n customeFilter = {},\r\n refresh,\r\n handleChange,\r\n hasParent = false,\r\n sortOrder = 'id:-1',\r\n apiType,\r\n addType\r\n } = props;\r\n\r\n const limit = 25;\r\n\r\n // Memoized values\r\n const isInternalOptions = useMemo(() => {\r\n return isInternal || !apiType;\r\n }, [isInternal, apiType]);\r\n //eslint-disable-next-line\r\n const cf = useMemo(() => customeFilter, [JSON.stringify(customeFilter)]);\r\n\r\n // Local search function\r\n const searchOptionsLocally = useCallback((searchTerm: string, value: any): IOption[] => {\r\n if (!searchTerm) return props.options || [];\r\n\r\n const lowercasedSearchTerm = searchTerm.toLowerCase();\r\n\r\n const filteredOptions = hasParent\r\n ? props.options?.reduce((acc: IOption[], opt) => {\r\n const searchedOptions = opt.options?.filter((item) => {\r\n const label = React.isValidElement(item.label) ? item.searchLabel : String(item.label);\r\n return label?.toLowerCase().includes(lowercasedSearchTerm);\r\n });\r\n\r\n if (searchedOptions?.length) {\r\n acc.push({ ...opt, options: searchedOptions });\r\n }\r\n\r\n return acc;\r\n }, []) || []\r\n : props.options?.filter((opt) => {\r\n const label = React.isValidElement(opt.label) ? opt.searchLabel : String(opt.label);\r\n return label?.toLowerCase().includes(lowercasedSearchTerm);\r\n }) || [];\r\n //eslint-disable-next-line\r\n return sortBySelectedValues(filteredOptions, value);\r\n //eslint-disable-next-line\r\n }, [props.options, hasParent]);\r\n\r\n // Get unique options\r\n const getUniqueOptions = useCallback((data: IOption[]): IOption[] => {\r\n const uniqueOptions = [\r\n ...new Map(data?.map(item => [item.value, item])).values()\r\n ];\r\n return uniqueOptions;\r\n }, []);\r\n\r\n // Sort by selected values\r\n const sortBySelectedValues = useCallback((arrayToSort: IOption[], value: any): IOption[] => {\r\n const selectedValues = Array.isArray(value) ? value : [value];\r\n const sortedValue = sortBy(arrayToSort, (item) => {\r\n const index = selectedValues.indexOf(item.id || item.value);\r\n return index == -1 ? Infinity : index;\r\n });\r\n return sortedValue;\r\n }, []);\r\n\r\n // Filtered options with pagination support\r\n const filteredOptions = useMemo(() => {\r\n if (isInternalOptions) {\r\n return searchOptionsLocally(searchQuery, watchedValue);\r\n }\r\n return sortBySelectedValues(getUniqueOptions([...options, ...selectedOptions]), watchedValue);\r\n //eslint-disable-next-line\r\n }, [options, selectedOptions, isInternalOptions, props.options, watchedValue, searchQuery, searchOptionsLocally, sortBySelectedValues, getUniqueOptions]);\r\n\r\n // API Functions\r\n const fetchOptions = useCallback(async (searchTerm = '', flt = cf, page = 1, append = false) => {\r\n if (!apiType) return [];\r\n\r\n setLoading(true);\r\n if (page > 1) {\r\n setPagination(prev => ({ ...prev, isLoadingMore: true }));\r\n }\r\n\r\n try {\r\n const { data = [], pagination = {} } = await fetchApi({\r\n apiKey: apiType,\r\n filters: {\r\n limit,\r\n skip: (page - 1) * limit,\r\n search: searchTerm,\r\n filters: flt,\r\n select: attributes,\r\n order: sortOrder\r\n }\r\n });\r\n\r\n if (data && Array.isArray(data)) {\r\n const newOptions = append ? [...options, ...data] : data;\r\n updateOptions(newOptions, append);\r\n handleSelectedValue(data);\r\n // Update pagination\r\n setPagination(prev => ({\r\n ...prev,\r\n page,\r\n hasMore: pagination?.totalCount > (page * limit),\r\n total: pagination?.totalCount,\r\n isLoadingMore: false\r\n }));\r\n }\r\n\r\n return data || [];\r\n } catch (error) {\r\n console.error('Error fetching options:', error);\r\n setPagination(prev => ({ ...prev, isLoadingMore: false }));\r\n return [];\r\n } finally {\r\n setLoading(false);\r\n }\r\n //eslint-disable-next-line\r\n }, [apiType, options, attributes, sortOrder, limit, cf]);\r\n\r\n // Handle scroll pagination\r\n const handleScroll = useCallback((event: React.UIEvent<HTMLDivElement>) => {\r\n const { scrollTop, scrollHeight, clientHeight } = event.currentTarget;\r\n const isBottom = scrollHeight - scrollTop <= clientHeight + 10;\r\n\r\n if (isBottom && pagination.hasMore && !pagination.isLoadingMore && !isInternalOptions) {\r\n const nextPage = pagination.page + 1;\r\n fetchOptions(searchQuery, cf, nextPage, true);\r\n }\r\n }, [pagination.hasMore, pagination.isLoadingMore, pagination.page, isInternalOptions, searchQuery, cf, fetchOptions]);\r\n\r\n // Update options\r\n const updateOptions = useCallback((newOptions: IOption[], append = false) => {\r\n const oldOptions = append ? options : selectedOptions;\r\n const uniqueOptions = getUniqueOptions([...oldOptions, ...newOptions]);\r\n setOptions(uniqueOptions);\r\n }, [options, selectedOptions, getUniqueOptions]);\r\n\r\n // Handle selected value\r\n const handleSelectedValue = useCallback(async (updateOptions: IOption[]) => {\r\n const filterValue = props.is_multiselect ? watchedValue : [watchedValue];\r\n const isInOptions = updateOptions?.filter((item) =>\r\n Array.isArray(filterValue) ? filterValue.includes(item.id || item.value) : (item[filterKey] || item.value || item.id) == filterValue\r\n );\r\n\r\n if (Array.isArray(isInOptions) && isInOptions.length > 0) {\r\n getSelectedData?.(props.is_multiselect ? isInOptions : isInOptions[0], props.name);\r\n return true;\r\n }\r\n return false;\r\n //eslint-disable-next-line\r\n }, [props.is_multiselect, props.name, watchedValue, filterKey, getSelectedData, filteredOptions]);\r\n\r\n // Fetch options by ID\r\n const fetchIdOptions = useCallback(async () => {\r\n if (await handleSelectedValue(filteredOptions)) return;\r\n if (open) return;\r\n const condition = props.is_multiselect ?\r\n Array.isArray(watchedValue) && watchedValue.length > 0 :\r\n Boolean(watchedValue);\r\n\r\n if (condition) {\r\n setInitialLoading(true);\r\n const response = await fetchOptions('', { ...cf, '&id.in': watchedValue }, 1, false);\r\n setInitialLoading(false);\r\n\r\n if (response.length == 0 && setValue && !isInternalOptions) {\r\n // setValue(`${props.fieldArrayName}.${props.name}`, props.is_multiselect ? [] : null);\r\n }\r\n }\r\n //eslint-disable-next-line\r\n }, [open, watchedValue, JSON.stringify(cf)]);\r\n\r\n // Initial fetch\r\n const initialFetch = useCallback(async () => {\r\n const condition = JSON.stringify(cf) !== JSON.stringify(prevFilter);\r\n\r\n if (condition) {\r\n setPrevFilter(cf);\r\n setOptions([]);\r\n setIsAlreadyLoaded(false);\r\n setPagination({\r\n page: 1,\r\n hasMore: true,\r\n isLoadingMore: false,\r\n total: 0\r\n });\r\n }\r\n\r\n if (!isInternalOptions && !isAlreadyLoaded) {\r\n await fetchOptions(searchQuery, cf, 1, false);\r\n setIsAlreadyLoaded(true);\r\n }\r\n //eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [cf, isInternalOptions, isAlreadyLoaded]);\r\n\r\n // Debounced search\r\n const debouncedSearch = useMemo(\r\n () => debounce(async (searchTerm: string) => {\r\n if (loading) return;\r\n\r\n if (!searchTerm && !isInternalOptions && searchInitiate) {\r\n setPagination({\r\n page: 1,\r\n hasMore: true,\r\n isLoadingMore: false,\r\n total: 0\r\n });\r\n await fetchOptions('', cf, 1, false);\r\n }\r\n if (searchTerm.length > 1 && !isInternalOptions) {\r\n setPagination({\r\n page: 1,\r\n hasMore: true,\r\n isLoadingMore: false,\r\n total: 0\r\n });\r\n await fetchOptions(searchTerm, cf, 1, false);\r\n }\r\n }, 700),\r\n //eslint-disable-next-line\r\n [isInternalOptions, searchInitiate, cf]\r\n );\r\n\r\n // Reset value function\r\n const resetValue = useCallback((field: any) => {\r\n field.onChange(props.is_multiselect ? [] : null);\r\n if (getSelectedData) {\r\n getSelectedData(null, props.name);\r\n }\r\n }, [props.is_multiselect, props.name, getSelectedData]);\r\n\r\n // Handle close\r\n const handleClose = useCallback(() => {\r\n setOpen(false);\r\n if (searchQuery.length > 0) {\r\n setIsAlreadyLoaded(false);\r\n }\r\n setSearchInitiate(false);\r\n setSearchQuery('');\r\n }, [searchQuery]);\r\n\r\n const handleModalOpen = useCallback(() => {\r\n setIsModalOpen(true);\r\n }, []);\r\n\r\n\r\n\r\n // Handle modal save\r\n const handleModalSave = useCallback(async (payload: any) => {\r\n if (!addConfig || !addConfig.api) {\r\n console.error('Add configuration is not properly set');\r\n return;\r\n }\r\n\r\n setIsAddLoading(true);\r\n try {\r\n const result = await addConfig.api(payload);\r\n setIsAddLoading(false);\r\n setIsModalOpen(false);\r\n if (!isInternalOptions) {\r\n setPagination({\r\n page: 1,\r\n hasMore: true,\r\n isLoadingMore: false,\r\n total: 0\r\n });\r\n setIsAlreadyLoaded(false);\r\n await fetchOptions('', cf, 1, false);\r\n }\r\n if (result && result.data) {\r\n const newValue = props.is_multiselect\r\n ? [...(watchedValue || []), result.data.id]\r\n : result.data.id;\r\n\r\n if (setValue) {\r\n setValue(`${props.fieldArrayName}.${props.name}`, newValue);\r\n }\r\n }\r\n } catch (error) {\r\n console.log(\"error\", error);\r\n setIsAddLoading(false);\r\n }\r\n\r\n\r\n }, [addConfig, isInternalOptions, fetchOptions, cf, props.is_multiselect, props.fieldArrayName, props.name, watchedValue, setValue]);\r\n\r\n // Effects\r\n useEffect(() => {\r\n if (handleOptions) {\r\n handleOptions(selectedValue);\r\n }\r\n }, [handleOptions, selectedValue]);\r\n\r\n useEffect(() => {\r\n if (open) {\r\n initialFetch();\r\n }\r\n }, [open, initialFetch]);\r\n\r\n useEffect(() => {\r\n fetchIdOptions();\r\n }, [fetchIdOptions]);\r\n\r\n useEffect(() => {\r\n if (refresh) {\r\n setPagination({\r\n page: 1,\r\n hasMore: true,\r\n isLoadingMore: false,\r\n total: 0\r\n });\r\n fetchOptions('', cf, 1, false);\r\n }\r\n }, [refresh, fetchOptions, cf]);\r\n\r\n useEffect(() => {\r\n if (open) {\r\n debouncedSearch(searchQuery);\r\n }\r\n return () => debouncedSearch.cancel();\r\n }, [searchQuery, open, debouncedSearch]);\r\n\r\n useEffect(() => {\r\n if (watchedValue && !open) {\r\n const selectedData = options?.filter((item) =>\r\n props.is_multiselect ?\r\n Array.isArray(watchedValue) && watchedValue.includes(item.id || item.value) :\r\n (item.id || item.value) == watchedValue\r\n );\r\n setSelectedOptions(selectedData || []);\r\n }\r\n }, [watchedValue, options, props.is_multiselect, open]);\r\n\r\n const removeUndefined = useCallback((selectOptions: any[]) => {\r\n return Array.isArray(selectOptions) ? selectOptions.filter(Boolean) : [];\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!addType) return;\r\n const config = dynamicSelectAdd(addType);\r\n setAddConfig(config);\r\n }, [addType])\r\n\r\n useEffect(() => {\r\n handleSelectedValue(filteredOptions)\r\n }, [handleSelectedValue])\r\n return (\r\n <Controller\r\n control={props.formControl}\r\n name={`${props.fieldArrayName}.${props.name}`}\r\n render={({ field, fieldState }) => (\r\n <>\r\n {props.placeholder == 'Select Currency' && setSelectedValue(field.value)}\r\n <Select\r\n {...field}\r\n ref={selectRef}\r\n open={open}\r\n onOpen={() => setOpen(true)}\r\n onClose={handleClose}\r\n fullWidth\r\n dataPosition={props.position}\r\n dataName={`${props.fieldArrayName}.${props.name}`}\r\n placeholder={props.placeholder}\r\n label={props.label}\r\n defaultValue={props.defaultValue || (props.is_multiselect ? [] : '')}\r\n searchValue={searchQuery}\r\n required={props.formType == 'builder' ? false : props.required}\r\n size={props.size || 'small'}\r\n multiple={props.is_multiselect || false}\r\n disabled={props.disabled}\r\n sx={(props.is_multiselect && field?.value?.length) ? { \"& .MuiSelect-select\": { padding: '5.5px !important' } } : {}}\r\n variant='outlined'\r\n value={\r\n initialLoading\r\n ? (props.is_multiselect ? [] : '')\r\n : (field.value?.id || field.value || (props.is_multiselect ? [] : ''))\r\n }\r\n className={\r\n props.is_multiselect && removeUndefined(field.value)?.length\r\n ? 'MultiSelect filter-select'\r\n : ''\r\n }\r\n MenuProps={{\r\n PaperProps: {\r\n onScroll: handleScroll,\r\n style: { maxHeight: 300 }\r\n }\r\n }}\r\n\r\n renderValue={(selected: any) => {\r\n if (Array.isArray(selected)) {\r\n return (\r\n <ChipOrPlaceholder\r\n selectedLabel={props.selectedLabel}\r\n data={removeUndefined(selected)}\r\n placeholder={(loading || props.is_loading) ? <Loading /> : `${t('common.search')} ${props.label}`}\r\n onDelete={props.onChipRemove}\r\n disabled={props.disabled}\r\n chipProps={{\r\n sx: {\r\n background: '#ebf9f2',\r\n border: 0,\r\n // borderRadius: '15px',\r\n '& .MuiTypography-body1': {\r\n color: '#289b64',\r\n fontWeight: \"500\",\r\n }\r\n }\r\n }}\r\n />\r\n );\r\n } else {\r\n const selectedOption = filteredOptions?.find(\r\n (option) => (option.value?.id || option.value) == selected\r\n );\r\n return (loading || props.is_loading) ? <Loading /> : selectedOption?.label ||\r\n (typeof props.label == 'string' ?\r\n `${t('common.search')} ${props.label}` :\r\n props.placeholder);\r\n }\r\n }}\r\n searchPlaceholder={`${t('common.search')} ${props.label}`}\r\n handleSearch={(text: string) => {\r\n setSearchQuery(text);\r\n setSearchInitiate(true);\r\n }}\r\n error={Boolean(fieldState.error?.message)}\r\n helperText={fieldState.error?.message || ''}\r\n onBlur={field.onBlur}\r\n input={\r\n <OutlinedInput\r\n label=''\r\n endAdornment={\r\n <InputAdornment position='end'>\r\n {(loading || props.is_loading) ? (\r\n <CircularProgress\r\n size={20}\r\n sx={{ mr: 3, color: \"#4AC08C\" }}\r\n />\r\n ) : (\r\n !props.disabled &&\r\n (props.is_multiselect ?\r\n (Array.isArray(field.value) && field.value.length > 0) :\r\n Boolean(field.value)) && (\r\n <IconButton\r\n aria-label='clear selection'\r\n onClick={() => resetValue(field)}\r\n edge='end'\r\n sx={isRtl ? { ml: 2.5 } : { mr: 1.5 }}\r\n size='small'\r\n >\r\n <Close sx={{ fontSize: '1rem' }} />\r\n </IconButton>\r\n )\r\n )}\r\n </InputAdornment>\r\n }\r\n />\r\n }\r\n >\r\n {generateMenuItems({\r\n options: filteredOptions,\r\n multiple: Boolean(props.is_multiselect),\r\n placeholder: props.placeholder,\r\n values: field.value,\r\n with_checkboxes: true,\r\n field: props,\r\n disabledIds,\r\n onChange: field.onChange,\r\n handleChange,\r\n hasParent,\r\n t,\r\n // onFooterClick: () => {\r\n // if (props?.onFooterClick) {\r\n // props?.onFooterClick();\r\n // } else {\r\n // handleModalOpen();\r\n // }\r\n // }\r\n })}\r\n {props?.enable_footer &&\r\n <Box key=\"footer\" sx={{ position: 'sticky', bottom: 0, background: '#fff', zIndex: 1 }}>\r\n <Divider flexItem sx={{ mt: '0.25rem !important', mb: '0.25rem !important' }} />\r\n <MenuItem sx={{ gap: 1 }} onClick={\r\n () => {\r\n if (props?.onFooterClick) {\r\n props?.onFooterClick();\r\n } else {\r\n handleModalOpen();\r\n }\r\n }\r\n\r\n }>\r\n <Add fontSize='small' />\r\n <Typography type='s4' color='theme.secondary.1000'>\r\n Create New {props.label}\r\n </Typography>\r\n </MenuItem>\r\n </Box>}\r\n {pagination.isLoadingMore && (\r\n <MenuItem disabled>\r\n <Box sx={{ display: 'flex', justifyContent: 'center', width: '100%' }}>\r\n <CircularProgress size={20} />\r\n </Box>\r\n </MenuItem>\r\n )}\r\n </Select>\r\n\r\n {/* Modal for adding new items */}\r\n {addConfig && addConfig.component && (\r\n <>\r\n {React.createElement(addConfig.component, {\r\n isOpen: isModalOpen,\r\n setIsOpen: setIsModalOpen,\r\n isLoading: isAddLoading,\r\n onSave: handleModalSave,\r\n modalProps: {\r\n maxWidth: 'md',\r\n fullWidth: true\r\n },\r\n ...props?.modalComponentProps\r\n })}\r\n </>\r\n )}\r\n\r\n {props.is_multiselect && Array.isArray(field.value) && (\r\n <SelectedItems\r\n data={field.value}\r\n options={filteredOptions}\r\n />\r\n )}\r\n </>\r\n )}\r\n />\r\n );\r\n});\r\n\r\nDynamicSearchSelect.propTypes = {\r\n name: PropTypes.string.isRequired,\r\n placeholder: PropTypes.string.isRequired,\r\n label: PropTypes.string.isRequired,\r\n size: PropTypes.string,\r\n options: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\r\n value: PropTypes.any\r\n })\r\n ).isRequired,\r\n formControl: PropTypes.object.isRequired,\r\n defaultValue: PropTypes.any,\r\n fieldArrayName: PropTypes.string.isRequired,\r\n id: PropTypes.string,\r\n required: PropTypes.bool,\r\n is_multiselect: PropTypes.bool,\r\n position: PropTypes.number,\r\n formType: PropTypes.string,\r\n typeOfField: PropTypes.string,\r\n disabled: PropTypes.bool,\r\n onChipRemove: PropTypes.func,\r\n enable_footer: PropTypes.bool,\r\n footer_action: PropTypes.string,\r\n onFooterClick: PropTypes.func,\r\n is_loading: PropTypes.bool,\r\n selectedLabel: PropTypes.string,\r\n isInternal: PropTypes.bool,\r\n disabledIds: PropTypes.array,\r\n getSelectedData: PropTypes.func,\r\n attributes: PropTypes.array,\r\n handleChange: PropTypes.func,\r\n hasParent: PropTypes.bool,\r\n sortOrder: PropTypes.string,\r\n apiType: PropTypes.string,\r\n handleOptions: PropTypes.func,\r\n filterKey: PropTypes.string,\r\n customeFilter: PropTypes.object,\r\n refresh: PropTypes.bool,\r\n addType: PropTypes.string,\r\n modalComponentProps: PropTypes.object\r\n};\r\n\r\nexport default DynamicSearchSelect;\r\n"],"names":["generateMenuItems","options","multiple","placeholder","with_checkboxes","values","disabledIds","onChange","handleChange","hasParent","t","itemDisabled","id","includes","items","push","jsx","MenuItem","disabled","value","sx","opacity","height","p","m","children","Typography","type","color","selectedValues","Array","isArray","length","filter","isAllOptionsSelected","parentValue","childOptions","childValues","map","child","valueArray","every","childValue","isSomeOptionsSelected","some","forEach","option","Boolean","className","isGroup","jsxs","Box","display","gap","Checkbox","checked","indeterminate","updatedValues","Set","handleParentChange","onClick","label","opt","pl","String","SelectedItems","data","filteredDisplayTitle","selectedItem","_a","find","alignItems","mt","slice","join","Chip","variant","MoreIcon","Loading","fontStyle","DynamicSearchSelect","React","memo","props","watchedValue","useWatch","control","formControl","name","fieldArrayName","formContext","useFormContext","setValue","useTranslation","isRtl","useLanguage","selectRef","useRef","setOptions","useState","selectedValue","setSelectedValue","selectedOptions","setSelectedOptions","loading","setLoading","open","setOpen","isAlreadyLoaded","setIsAlreadyLoaded","prevFilter","setPrevFilter","initialLoading","setInitialLoading","searchQuery","setSearchQuery","searchInitiate","setSearchInitiate","addConfig","setAddConfig","isModalOpen","setIsModalOpen","isAddLoading","setIsAddLoading","pagination","setPagination","page","hasMore","isLoadingMore","total","handleOptions","isInternal","getSelectedData","attributes","filterKey","customeFilter","refresh","sortOrder","apiType","addType","isInternalOptions","useMemo","cf","JSON","stringify","searchOptionsLocally","useCallback","searchTerm","lowercasedSearchTerm","toLowerCase","filteredOptions","reduce","acc","searchedOptions","item","isValidElement","searchLabel","_b","sortBySelectedValues","getUniqueOptions","Map","arrayToSort","sortBy","index","indexOf","Infinity","fetchOptions","async","flt","append","prev","fetchApi","apiKey","filters","limit","skip","search","select","order","newOptions","updateOptions","handleSelectedValue","totalCount","error","handleScroll","event","scrollTop","scrollHeight","clientHeight","currentTarget","nextPage","uniqueOptions","filterValue","is_multiselect","isInOptions","fetchIdOptions","initialFetch","debouncedSearch","debounce","resetValue","field","handleClose","handleModalOpen","handleModalSave","payload","api","result","newValue","useEffect","cancel","selectedData","removeUndefined","selectOptions","config","dynamicSelectAdd","Controller","render","fieldState","Fragment","Select","ref","onOpen","onClose","fullWidth","dataPosition","position","dataName","defaultValue","searchValue","required","formType","size","padding","_c","MenuProps","PaperProps","onScroll","style","maxHeight","renderValue","selected","ChipOrPlaceholder","selectedLabel","is_loading","onDelete","onChipRemove","chipProps","background","border","fontWeight","selectedOption","searchPlaceholder","handleSearch","text","_d","message","helperText","_e","onBlur","input","OutlinedInput","endAdornment","InputAdornment","CircularProgress","mr","IconButton","edge","ml","Close","fontSize","enable_footer","bottom","zIndex","Divider","flexItem","mb","onFooterClick","Add","justifyContent","width","component","createElement","isOpen","setIsOpen","isLoading","onSave","modalProps","maxWidth","modalComponentProps","propTypes","PropTypes","string","isRequired","arrayOf","shape","oneOfType","node","any","object","bool","number","typeOfField","func","footer_action","array"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { default as React } from 'react';
2
2
 
3
- declare const DynamicMedia: React.NamedExoticComponent<any>;
3
+ declare const DynamicMedia: React.MemoExoticComponent<(props: any) => import("react/jsx-runtime").JSX.Element>;
4
4
  export { DynamicMedia };
5
5
  export default DynamicMedia;
@@ -1,4 +1,4 @@
1
1
 
2
- declare const DynamicPhone: import('react').NamedExoticComponent<any>;
2
+ declare const DynamicPhone: import('react').MemoExoticComponent<(props: any) => import("react/jsx-runtime").JSX.Element>;
3
3
  export { DynamicPhone };
4
4
  export default DynamicPhone;
@@ -1,5 +1,5 @@
1
1
  import { default as React } from 'react';
2
2
 
3
- declare const DynamicSelect: React.NamedExoticComponent<any>;
3
+ declare const DynamicSelect: React.MemoExoticComponent<(props: any) => import("react/jsx-runtime").JSX.Element>;
4
4
  export { DynamicSelect };
5
5
  export default DynamicSelect;
@@ -1,5 +1,5 @@
1
1
  import { default as React } from 'react';
2
2
 
3
- declare const DynamicInput: React.NamedExoticComponent<any>;
3
+ declare const DynamicInput: React.MemoExoticComponent<(props: any) => import("react/jsx-runtime").JSX.Element>;
4
4
  export { DynamicInput };
5
5
  export default DynamicInput;
@@ -1,5 +1,5 @@
1
1
  import { default as React } from 'react';
2
2
 
3
- declare const DynamicTime: React.NamedExoticComponent<any>;
3
+ declare const DynamicTime: React.MemoExoticComponent<(props: any) => import("react/jsx-runtime").JSX.Element>;
4
4
  export { DynamicTime };
5
5
  export default DynamicTime;
@@ -1,3 +1,3 @@
1
- declare const FormSwitcher: import('react').NamedExoticComponent<any>;
1
+ declare const FormSwitcher: import('react').MemoExoticComponent<({ children, isFormSwitcher, control, fieldArrayName, formSwitcherName, label, resetForm, }: any) => import("react/jsx-runtime").JSX.Element>;
2
2
  export { FormSwitcher };
3
3
  export default FormSwitcher;
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../../../../src/components/header/header.tsx"],"sourcesContent":["// components/header/Header.tsx - Complete updated version with English fallback\nimport React, { useState, useCallback, useMemo } from \"react\";\nimport { Link, matchRoutes, useLocation, useNavigate } from \"react-router-dom\";\nimport Box from \"@mui/material/Box\";\nimport { useTranslation } from \"react-i18next\";\nimport LockIcon from \"@mui/icons-material/Lock\";\nimport IconButton from \"@mui/material/IconButton\";\nimport MenuItem from \"@mui/material/MenuItem\";\nimport Menu from \"@mui/material/Menu\";\nimport KeyboardBackspaceIcon from \"@mui/icons-material/KeyboardBackspace\";\nimport ListItemText from \"@mui/material/ListItemText\";\nimport Divider from \"@mui/material/Divider\";\nimport ListItemIcon from \"@mui/material/ListItemIcon\";\n\n\nimport { Pathname } from \"../../constants/pathnames/pathname\"; // Removed - should be passed as props\nimport Typography from \"../typography/typography\";\nimport logo, { images } from \"../../assets/images\";\nimport Select from \"../select/select\";\nimport modules from \"../../constants/modules\"; // Removed - should be passed as props\nimport Avatar from \"../avatar/avatar\";\nimport { useAuth } from \"../../hooks/useAuth\";\nimport ConfirmPopUp from \"../confirm-modal/confirm-modal\";\nimport formatText from \"../../utils/format-text\";\nimport \"./header.scss\";\nimport { useLanguage } from \"../../hooks/useLangauge\";\nimport { Eye } from \"../icons\";\nimport ResetPasswordModal from \"../reset-password-modal/reset-password-modal\";\nimport NotificationMenu from \"./components/notification-menu/notification-menu\";\n\ninterface ILanguage {\n label: string;\n code: string;\n direction: string;\n}\n\ninterface IModule {\n label: any;\n link: string;\n sidebar: string;\n icon: string;\n permission: string;\n bg: string;\n connectedRoutes: string[];\n translationModule: string;\n}\n\n\nexport function Header(props: any): React.ReactElement {\n const navigate = useNavigate();\n const { t } = useTranslation();\n const location = useLocation();\n const { logout, user } = useAuth();\n \n const { \n languages, \n currentLanguage, \n changeLanguage, \n isLoading: languagesLoading,\n error: languageContextError,\n isFallbackActive,\n fetchLanguages,\n isRtl\n } = useLanguage();\n \n const { pathname } = location;\n const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);\n const [logoutConfirmation, setLogoutConfirmation] = useState<boolean>(false);\n const [localLanguageError, setLocalLanguageError] = useState<string | null>(null);\n const [showModal, setShowModal] = useState(false);\n\n const u_data = localStorage.getItem(\"_u_data\") || undefined;\n const userData = u_data ? JSON.parse(u_data) : \"\";\n const isMenuOpen = Boolean(anchorEl);\n\n const handleLogoutConfirmation = () =>\n setLogoutConfirmation(!logoutConfirmation);\n\n const checkMatchedRoutes = useCallback(\n (paths: string[] | string) => {\n const shouldMatch: { path: string }[] = Array.isArray(paths)\n ? paths.map((path: string) => ({ path }))\n : [{ path: paths }];\n\n return Boolean(matchRoutes(shouldMatch, location));\n },\n [location],\n );\n\n const erp_modules = useMemo<IModule[]>(() => modules(t), [t]);\n\n const selectedModule = useMemo<IModule | null>(() => {\n return (\n erp_modules.find(\n (module: IModule) =>\n module?.link?.toLowerCase() === pathname.toLowerCase() ||\n checkMatchedRoutes(module.connectedRoutes),\n ) || null\n );\n }, [erp_modules, pathname, checkMatchedRoutes]);\n\n const handleChangePasswordView = () => {\n setShowModal(true);\n }\n\n // Enhanced language change handler with validation and error handling\n const onChangeLang = (e: React.ChangeEvent<HTMLSelectElement>) => {\n const lang_code = e.target.value;\n \n // Clear any previous errors\n setLocalLanguageError(null);\n \n // Validate the language exists before changing\n if (!languages || languages.length === 0) {\n const errorMsg = t('header.language_not_available') || 'Languages not available';\n setLocalLanguageError(errorMsg);\n return;\n }\n \n const languageExists = languages.some((lang: ILanguage) => lang.code === lang_code);\n \n if (languageExists) {\n try {\n changeLanguage(lang_code);\n } catch (error) {\n const errorMsg = error instanceof Error ? error.message : 'Failed to change language';\n setLocalLanguageError(errorMsg);\n }\n } else {\n const errorMsg = t('header.language_not_found', { language: lang_code }) || \n `Selected language \"${lang_code}\" is not available`;\n setLocalLanguageError(errorMsg);\n }\n };\n\n // Retry language loading\n const handleRetryLanguages = async () => {\n setLocalLanguageError(null);\n try {\n await fetchLanguages();\n } catch (error) {\n const errorMsg = 'Failed to reload languages';\n setLocalLanguageError(errorMsg);\n }\n };\n\n\n const handleProfileMenuOpen = (event: React.MouseEvent<HTMLElement>) =>\n setAnchorEl(event.currentTarget);\n\n const handleMenuClose = () => {\n setAnchorEl(null);\n };\n\n const handleChange = (event: any) => {\n const selectedLink = event.target.value;\n setTimeout(() => {\n navigate(selectedLink);\n }, 300);\n };\n\n const handleBackButton = () => {\n window.history.back();\n };\n\n // Get current language display value with fallback indication\n const getCurrentLanguageDisplay = (): string => {\n if (!currentLanguage) return t('header.select_language') || 'Select Language';\n \n // Show fallback indicator for better UX\n if (isFallbackActive || languageContextError) {\n return `${currentLanguage.label}`;\n }\n \n return currentLanguage.label;\n };\n\n // Create English fallback for consistent display\n const createEnglishFallback = (): ILanguage => ({\n code: 'en',\n label: 'English',\n direction: 'ltr'\n });\n\n // Get languages for dropdown - ensure English is always available\n const getLanguagesForDropdown = (): ILanguage[] => {\n if (!languages || languages.length === 0) {\n // If no languages available, show only English\n return [createEnglishFallback()];\n }\n \n // Ensure English is in the list\n const hasEnglish = languages.some(lang => lang.code === 'en');\n if (!hasEnglish) {\n return [createEnglishFallback(), ...languages];\n }\n \n return languages;\n };\n\n // Render language selector based on different states\n const renderLanguageSelector = () => {\n const availableLanguages = getLanguagesForDropdown();\n const displayValue = currentLanguage?.code || 'en'; // Default to English\n\n // Loading state\n if (languagesLoading) {\n return (\n <Box className=\"language-loading\">\n <Typography variant=\"body2\" color=\"text.secondary\">\n {'Loading...'}\n </Typography>\n </Box>\n );\n }\n\n // Always show dropdown with at least English available\n return (\n <Select\n onChange={onChangeLang}\n size=\"small\"\n value={displayValue}\n renderValue={() => getCurrentLanguageDisplay()}\n error={!!localLanguageError}\n className={isFallbackActive || languageContextError ? 'language-fallback-active' : ''}\n \n >\n {availableLanguages.map(({ code, label }: ILanguage) => (\n <MenuItem key={code} value={code}>\n <Typography\n type=\"s4\"\n weight=\"medium\"\n color=\"theme.secondary.1000\"\n \n >\n {label}\n {/* Show fallback indicator in dropdown */}\n {/* {(isFallbackActive || languageContextError) && code === 'en' && \n ` (${t('header.fallback') || 'Fallback'})`\n } */}\n </Typography>\n </MenuItem>\n ))}\n \n {/* Show retry option if there's an error */}\n {languageContextError && (\n <MenuItem onClick={handleRetryLanguages} style={{ fontStyle: 'italic' }}>\n <Typography\n type=\"s4\"\n weight=\"medium\"\n color=\"theme.secondary.500\"\n >\n 🔄 {t('header.retry_languages') || 'Retry loading languages'}\n </Typography>\n </MenuItem>\n )}\n </Select>\n );\n };\n\n const menuId = \"primary-search-account-menu\";\n const renderMenu = (\n <Menu\n className=\"main-profile-menu\"\n anchorEl={anchorEl}\n id={menuId}\n keepMounted\n open={isMenuOpen}\n onClose={handleMenuClose}\n >\n <MenuItem className=\"user-assigned\">\n <span>{t('common.assigned_roles') || 'Assigned roles'}</span>\n </MenuItem>\n <MenuItem className=\"user-data-wrap\" value={userData.role_id}>\n <ListItemIcon>\n <Avatar size={27} alt={userData.role_name} />\n </ListItemIcon>\n <ListItemText className=\"size15\">\n {userData.role_name}\n </ListItemText>\n <Typography variant=\"body2\" color=\"text.secondary\">\n <img src={images.tickicon} alt=\"Active\" />\n </Typography>\n </MenuItem>\n <Divider />\n <MenuItem\n className=\"user-assigned\"\n onClick={() => {\n handleChangePasswordView();\n setAnchorEl(null);\n }}\n >\n <ListItemIcon>\n <Eye fontSize=\"medium\" width={20} height={20} htmlColor=\"#292D32\" />\n </ListItemIcon>\n <ListItemText className=\"size15\">{t(\"common.change_password\")}</ListItemText>\n </MenuItem>\n <Divider />\n <MenuItem\n className=\"menu-item-color\"\n onClick={() => {\n handleLogoutConfirmation();\n setAnchorEl(null);\n }}\n >\n <ListItemIcon>\n <img src={images.logout} alt=\"logout\" />\n </ListItemIcon>\n <ListItemText className=\"size15\">{t(\"common.logout\")}</ListItemText>\n </MenuItem>\n </Menu>\n );\n\n return (\n <>\n <Box className=\"main-box\">\n {!props.isDropdownShow && (\n <Link to={user ? Pathname.DASHBOARD : Pathname.LOGIN}>\n <img src={images.logo} alt=\"logo\" />\n </Link>\n )}\n <Box className=\"second-box\">\n {props.isDropdownShow && (\n <>\n <IconButton onClick={handleBackButton}>\n <KeyboardBackspaceIcon\n className={isRtl?\"arrow-pointer_rtl\":\"arrow-pointer\"}\n />\n </IconButton>\n <Box width={250}>\n <Select\n fullWidth\n placeholder=\"Placeholder\"\n size={\"small\"}\n value={selectedModule?.link || \"\"}\n onChange={handleChange}\n className=\"select-box\"\n variant=\"outlined\"\n renderValue={(value: string) => (\n <>\n {selectedModule ? (\n <Box className=\"selected-menu-box\">\n <img\n src={selectedModule.icon}\n alt={selectedModule.label}\n />\n {selectedModule.label}\n </Box>\n ) : (\n value\n )}\n </>\n )}\n >\n {erp_modules.map((module: any, index: number) => (\n <MenuItem\n className=\"select-box-menu-item\"\n value={module.link}\n key={index}\n >\n <img src={module.icon} alt={module.label} />\n {module.label}\n </MenuItem>\n ))}\n </Select>\n </Box>\n </>\n )}\n </Box>\n <Box className=\"header-right-wrap\">\n {/* Language Selector with Enhanced Fallback Support */}\n <Box className=\"language-selector-wrapper\">\n {renderLanguageSelector()}\n </Box>\n\n {/* <IconButton\n size=\"small\"\n aria-label=\"notification bell\"\n className=\"p-0\"\n >\n <img src={logo.notification} alt=\"notification icon\" />\n </IconButton> */}\n <NotificationMenu/>\n <IconButton\n size=\"small\"\n aria-label=\"help\"\n className=\"p-0\"\n >\n <img src={logo.question} alt=\"question icon\" />\n </IconButton>\n <img src={logo.vdivider} alt=\"divider icon\" />\n {localStorage.getItem(\"_tid\") ? (\n <Box className=\"user-profile-box\" onClick={handleProfileMenuOpen}>\n <Avatar\n size={32}\n src={user?.profile_image ? `${import.meta.env.VITE_S3_BUCKET_URL}${user?.profile_image}` : undefined}\n alt={formatText(user?.full_name)}\n className=\"avatar-class\"\n />\n <div>\n <Typography className=\"profile-name\">\n {user?.full_name}\n </Typography>\n <Typography className=\"user-auth\">\n {user?.role_name}\n </Typography>\n </div>\n </Box>\n ) : (\n <IconButton\n size=\"large\"\n edge=\"end\"\n aria-label=\"account of current user\"\n aria-controls={menuId}\n aria-haspopup=\"true\"\n component={Link}\n to={Pathname.LOGIN}\n color=\"inherit\"\n >\n <LockIcon className=\"icon-btn\" />\n </IconButton>\n )}\n </Box>\n {renderMenu}\n </Box>\n\n {/* Logout Confirmation Dialog */}\n <ConfirmPopUp\n open={logoutConfirmation}\n title={t(\"common.logout\")}\n description={t('common.logout_confirmation') || \"Are you sure, you want to logout?\"}\n onConfirm={() => logout()}\n onClose={handleLogoutConfirmation}\n fullWidth\n maxWidth=\"xs\"\n buttonTexts={{\n confirm: t(\"common.logout\"),\n cancel: t(\"common.cancel\"),\n }}\n />\n\n <ResetPasswordModal showModal={showModal} setShowModal = {setShowModal} />\n \n </>\n );\n}\n\nexport default Header;"],"names":["React","KeyboardBackspaceIcon","logo","LockIcon"],"mappings":"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"}
1
+ {"version":3,"file":"index.esm.js","sources":["../../../../src/components/header/header.tsx"],"sourcesContent":["// components/header/Header.tsx - Complete updated version with English fallback\r\nimport React, { useState, useCallback, useMemo } from \"react\";\r\nimport { Link, matchRoutes, useLocation, useNavigate } from \"react-router-dom\";\r\nimport Box from \"@mui/material/Box\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport LockIcon from \"@mui/icons-material/Lock\";\r\nimport IconButton from \"@mui/material/IconButton\";\r\nimport MenuItem from \"@mui/material/MenuItem\";\r\nimport Menu from \"@mui/material/Menu\";\r\nimport KeyboardBackspaceIcon from \"@mui/icons-material/KeyboardBackspace\";\r\nimport ListItemText from \"@mui/material/ListItemText\";\r\nimport Divider from \"@mui/material/Divider\";\r\nimport ListItemIcon from \"@mui/material/ListItemIcon\";\r\n\r\n\r\nimport { Pathname } from \"../../constants/pathnames/pathname\"; // Removed - should be passed as props\r\nimport Typography from \"../typography/typography\";\r\nimport logo, { images } from \"../../assets/images\";\r\nimport Select from \"../select/select\";\r\nimport modules from \"../../constants/modules\"; // Removed - should be passed as props\r\nimport Avatar from \"../avatar/avatar\";\r\nimport { useAuth } from \"../../hooks/useAuth\";\r\nimport ConfirmPopUp from \"../confirm-modal/confirm-modal\";\r\nimport formatText from \"../../utils/format-text\";\r\nimport \"./header.scss\";\r\nimport { useLanguage } from \"../../hooks/useLangauge\";\r\nimport { Eye } from \"../icons\";\r\nimport ResetPasswordModal from \"../reset-password-modal/reset-password-modal\";\r\nimport NotificationMenu from \"./components/notification-menu/notification-menu\";\r\n\r\ninterface ILanguage {\r\n label: string;\r\n code: string;\r\n direction: string;\r\n}\r\n\r\ninterface IModule {\r\n label: any;\r\n link: string;\r\n sidebar: string;\r\n icon: string;\r\n permission: string;\r\n bg: string;\r\n connectedRoutes: string[];\r\n translationModule: string;\r\n}\r\n\r\n\r\nexport function Header(props: any): React.ReactElement {\r\n const navigate = useNavigate();\r\n const { t } = useTranslation();\r\n const location = useLocation();\r\n const { logout, user } = useAuth();\r\n \r\n const { \r\n languages, \r\n currentLanguage, \r\n changeLanguage, \r\n isLoading: languagesLoading,\r\n error: languageContextError,\r\n isFallbackActive,\r\n fetchLanguages,\r\n isRtl\r\n } = useLanguage();\r\n \r\n const { pathname } = location;\r\n const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);\r\n const [logoutConfirmation, setLogoutConfirmation] = useState<boolean>(false);\r\n const [localLanguageError, setLocalLanguageError] = useState<string | null>(null);\r\n const [showModal, setShowModal] = useState(false);\r\n\r\n const u_data = localStorage.getItem(\"_u_data\") || undefined;\r\n const userData = u_data ? JSON.parse(u_data) : \"\";\r\n const isMenuOpen = Boolean(anchorEl);\r\n\r\n const handleLogoutConfirmation = () =>\r\n setLogoutConfirmation(!logoutConfirmation);\r\n\r\n const checkMatchedRoutes = useCallback(\r\n (paths: string[] | string) => {\r\n const shouldMatch: { path: string }[] = Array.isArray(paths)\r\n ? paths.map((path: string) => ({ path }))\r\n : [{ path: paths }];\r\n\r\n return Boolean(matchRoutes(shouldMatch, location));\r\n },\r\n [location],\r\n );\r\n\r\n const erp_modules = useMemo<IModule[]>(() => modules(t), [t]);\r\n\r\n const selectedModule = useMemo<IModule | null>(() => {\r\n return (\r\n erp_modules.find(\r\n (module: IModule) =>\r\n module?.link?.toLowerCase() === pathname.toLowerCase() ||\r\n checkMatchedRoutes(module.connectedRoutes),\r\n ) || null\r\n );\r\n }, [erp_modules, pathname, checkMatchedRoutes]);\r\n\r\n const handleChangePasswordView = () => {\r\n setShowModal(true);\r\n }\r\n\r\n // Enhanced language change handler with validation and error handling\r\n const onChangeLang = (e: React.ChangeEvent<HTMLSelectElement>) => {\r\n const lang_code = e.target.value;\r\n \r\n // Clear any previous errors\r\n setLocalLanguageError(null);\r\n \r\n // Validate the language exists before changing\r\n if (!languages || languages.length === 0) {\r\n const errorMsg = t('header.language_not_available') || 'Languages not available';\r\n setLocalLanguageError(errorMsg);\r\n return;\r\n }\r\n \r\n const languageExists = languages.some((lang: ILanguage) => lang.code === lang_code);\r\n \r\n if (languageExists) {\r\n try {\r\n changeLanguage(lang_code);\r\n } catch (error) {\r\n const errorMsg = error instanceof Error ? error.message : 'Failed to change language';\r\n setLocalLanguageError(errorMsg);\r\n }\r\n } else {\r\n const errorMsg = t('header.language_not_found', { language: lang_code }) || \r\n `Selected language \"${lang_code}\" is not available`;\r\n setLocalLanguageError(errorMsg);\r\n }\r\n };\r\n\r\n // Retry language loading\r\n const handleRetryLanguages = async () => {\r\n setLocalLanguageError(null);\r\n try {\r\n await fetchLanguages();\r\n } catch (error) {\r\n const errorMsg = 'Failed to reload languages';\r\n setLocalLanguageError(errorMsg);\r\n }\r\n };\r\n\r\n\r\n const handleProfileMenuOpen = (event: React.MouseEvent<HTMLElement>) =>\r\n setAnchorEl(event.currentTarget);\r\n\r\n const handleMenuClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n const handleChange = (event: any) => {\r\n const selectedLink = event.target.value;\r\n setTimeout(() => {\r\n navigate(selectedLink);\r\n }, 300);\r\n };\r\n\r\n const handleBackButton = () => {\r\n window.history.back();\r\n };\r\n\r\n // Get current language display value with fallback indication\r\n const getCurrentLanguageDisplay = (): string => {\r\n if (!currentLanguage) return t('header.select_language') || 'Select Language';\r\n \r\n // Show fallback indicator for better UX\r\n if (isFallbackActive || languageContextError) {\r\n return `${currentLanguage.label}`;\r\n }\r\n \r\n return currentLanguage.label;\r\n };\r\n\r\n // Create English fallback for consistent display\r\n const createEnglishFallback = (): ILanguage => ({\r\n code: 'en',\r\n label: 'English',\r\n direction: 'ltr'\r\n });\r\n\r\n // Get languages for dropdown - ensure English is always available\r\n const getLanguagesForDropdown = (): ILanguage[] => {\r\n if (!languages || languages.length === 0) {\r\n // If no languages available, show only English\r\n return [createEnglishFallback()];\r\n }\r\n \r\n // Ensure English is in the list\r\n const hasEnglish = languages.some(lang => lang.code === 'en');\r\n if (!hasEnglish) {\r\n return [createEnglishFallback(), ...languages];\r\n }\r\n \r\n return languages;\r\n };\r\n\r\n // Render language selector based on different states\r\n const renderLanguageSelector = () => {\r\n const availableLanguages = getLanguagesForDropdown();\r\n const displayValue = currentLanguage?.code || 'en'; // Default to English\r\n\r\n // Loading state\r\n if (languagesLoading) {\r\n return (\r\n <Box className=\"language-loading\">\r\n <Typography variant=\"body2\" color=\"text.secondary\">\r\n {'Loading...'}\r\n </Typography>\r\n </Box>\r\n );\r\n }\r\n\r\n // Always show dropdown with at least English available\r\n return (\r\n <Select\r\n onChange={onChangeLang}\r\n size=\"small\"\r\n value={displayValue}\r\n renderValue={() => getCurrentLanguageDisplay()}\r\n error={!!localLanguageError}\r\n className={isFallbackActive || languageContextError ? 'language-fallback-active' : ''}\r\n \r\n >\r\n {availableLanguages.map(({ code, label }: ILanguage) => (\r\n <MenuItem key={code} value={code}>\r\n <Typography\r\n type=\"s4\"\r\n weight=\"medium\"\r\n color=\"theme.secondary.1000\"\r\n \r\n >\r\n {label}\r\n {/* Show fallback indicator in dropdown */}\r\n {/* {(isFallbackActive || languageContextError) && code === 'en' && \r\n ` (${t('header.fallback') || 'Fallback'})`\r\n } */}\r\n </Typography>\r\n </MenuItem>\r\n ))}\r\n \r\n {/* Show retry option if there's an error */}\r\n {languageContextError && (\r\n <MenuItem onClick={handleRetryLanguages} style={{ fontStyle: 'italic' }}>\r\n <Typography\r\n type=\"s4\"\r\n weight=\"medium\"\r\n color=\"theme.secondary.500\"\r\n >\r\n 🔄 {t('header.retry_languages') || 'Retry loading languages'}\r\n </Typography>\r\n </MenuItem>\r\n )}\r\n </Select>\r\n );\r\n };\r\n\r\n const menuId = \"primary-search-account-menu\";\r\n const renderMenu = (\r\n <Menu\r\n className=\"main-profile-menu\"\r\n anchorEl={anchorEl}\r\n id={menuId}\r\n keepMounted\r\n open={isMenuOpen}\r\n onClose={handleMenuClose}\r\n >\r\n <MenuItem className=\"user-assigned\">\r\n <span>{t('common.assigned_roles') || 'Assigned roles'}</span>\r\n </MenuItem>\r\n <MenuItem className=\"user-data-wrap\" value={userData.role_id}>\r\n <ListItemIcon>\r\n <Avatar size={27} alt={userData.role_name} />\r\n </ListItemIcon>\r\n <ListItemText className=\"size15\">\r\n {userData.role_name}\r\n </ListItemText>\r\n <Typography variant=\"body2\" color=\"text.secondary\">\r\n <img src={images.tickicon} alt=\"Active\" />\r\n </Typography>\r\n </MenuItem>\r\n <Divider />\r\n <MenuItem\r\n className=\"user-assigned\"\r\n onClick={() => {\r\n handleChangePasswordView();\r\n setAnchorEl(null);\r\n }}\r\n >\r\n <ListItemIcon>\r\n <Eye fontSize=\"medium\" width={20} height={20} htmlColor=\"#292D32\" />\r\n </ListItemIcon>\r\n <ListItemText className=\"size15\">{t(\"common.change_password\")}</ListItemText>\r\n </MenuItem>\r\n <Divider />\r\n <MenuItem\r\n className=\"menu-item-color\"\r\n onClick={() => {\r\n handleLogoutConfirmation();\r\n setAnchorEl(null);\r\n }}\r\n >\r\n <ListItemIcon>\r\n <img src={images.logout} alt=\"logout\" />\r\n </ListItemIcon>\r\n <ListItemText className=\"size15\">{t(\"common.logout\")}</ListItemText>\r\n </MenuItem>\r\n </Menu>\r\n );\r\n\r\n return (\r\n <>\r\n <Box className=\"main-box\">\r\n {!props.isDropdownShow && (\r\n <Link to={user ? Pathname.DASHBOARD : Pathname.LOGIN}>\r\n <img src={images.logo} alt=\"logo\" />\r\n </Link>\r\n )}\r\n <Box className=\"second-box\">\r\n {props.isDropdownShow && (\r\n <>\r\n <IconButton onClick={handleBackButton}>\r\n <KeyboardBackspaceIcon\r\n className={isRtl?\"arrow-pointer_rtl\":\"arrow-pointer\"}\r\n />\r\n </IconButton>\r\n <Box width={250}>\r\n <Select\r\n fullWidth\r\n placeholder=\"Placeholder\"\r\n size={\"small\"}\r\n value={selectedModule?.link || \"\"}\r\n onChange={handleChange}\r\n className=\"select-box\"\r\n variant=\"outlined\"\r\n renderValue={(value: string) => (\r\n <>\r\n {selectedModule ? (\r\n <Box className=\"selected-menu-box\">\r\n <img\r\n src={selectedModule.icon}\r\n alt={selectedModule.label}\r\n />\r\n {selectedModule.label}\r\n </Box>\r\n ) : (\r\n value\r\n )}\r\n </>\r\n )}\r\n >\r\n {erp_modules.map((module: any, index: number) => (\r\n <MenuItem\r\n className=\"select-box-menu-item\"\r\n value={module.link}\r\n key={index}\r\n >\r\n <img src={module.icon} alt={module.label} />\r\n {module.label}\r\n </MenuItem>\r\n ))}\r\n </Select>\r\n </Box>\r\n </>\r\n )}\r\n </Box>\r\n <Box className=\"header-right-wrap\">\r\n {/* Language Selector with Enhanced Fallback Support */}\r\n <Box className=\"language-selector-wrapper\">\r\n {renderLanguageSelector()}\r\n </Box>\r\n\r\n {/* <IconButton\r\n size=\"small\"\r\n aria-label=\"notification bell\"\r\n className=\"p-0\"\r\n >\r\n <img src={logo.notification} alt=\"notification icon\" />\r\n </IconButton> */}\r\n <NotificationMenu/>\r\n <IconButton\r\n size=\"small\"\r\n aria-label=\"help\"\r\n className=\"p-0\"\r\n >\r\n <img src={logo.question} alt=\"question icon\" />\r\n </IconButton>\r\n <img src={logo.vdivider} alt=\"divider icon\" />\r\n {localStorage.getItem(\"_tid\") ? (\r\n <Box className=\"user-profile-box\" onClick={handleProfileMenuOpen}>\r\n <Avatar\r\n size={32}\r\n src={user?.profile_image ? `${import.meta.env.VITE_S3_BUCKET_URL}${user?.profile_image}` : undefined}\r\n alt={formatText(user?.full_name)}\r\n className=\"avatar-class\"\r\n />\r\n <div>\r\n <Typography className=\"profile-name\">\r\n {user?.full_name}\r\n </Typography>\r\n <Typography className=\"user-auth\">\r\n {user?.role_name}\r\n </Typography>\r\n </div>\r\n </Box>\r\n ) : (\r\n <IconButton\r\n size=\"large\"\r\n edge=\"end\"\r\n aria-label=\"account of current user\"\r\n aria-controls={menuId}\r\n aria-haspopup=\"true\"\r\n component={Link}\r\n to={Pathname.LOGIN}\r\n color=\"inherit\"\r\n >\r\n <LockIcon className=\"icon-btn\" />\r\n </IconButton>\r\n )}\r\n </Box>\r\n {renderMenu}\r\n </Box>\r\n\r\n {/* Logout Confirmation Dialog */}\r\n <ConfirmPopUp\r\n open={logoutConfirmation}\r\n title={t(\"common.logout\")}\r\n description={t('common.logout_confirmation') || \"Are you sure, you want to logout?\"}\r\n onConfirm={() => logout()}\r\n onClose={handleLogoutConfirmation}\r\n fullWidth\r\n maxWidth=\"xs\"\r\n buttonTexts={{\r\n confirm: t(\"common.logout\"),\r\n cancel: t(\"common.cancel\"),\r\n }}\r\n />\r\n\r\n <ResetPasswordModal showModal={showModal} setShowModal = {setShowModal} />\r\n \r\n </>\r\n );\r\n}\r\n\r\nexport default Header;"],"names":["React","KeyboardBackspaceIcon","logo","LockIcon"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/header/header.tsx"],"sourcesContent":["// components/header/Header.tsx - Complete updated version with English fallback\nimport React, { useState, useCallback, useMemo } from \"react\";\nimport { Link, matchRoutes, useLocation, useNavigate } from \"react-router-dom\";\nimport Box from \"@mui/material/Box\";\nimport { useTranslation } from \"react-i18next\";\nimport LockIcon from \"@mui/icons-material/Lock\";\nimport IconButton from \"@mui/material/IconButton\";\nimport MenuItem from \"@mui/material/MenuItem\";\nimport Menu from \"@mui/material/Menu\";\nimport KeyboardBackspaceIcon from \"@mui/icons-material/KeyboardBackspace\";\nimport ListItemText from \"@mui/material/ListItemText\";\nimport Divider from \"@mui/material/Divider\";\nimport ListItemIcon from \"@mui/material/ListItemIcon\";\n\n\nimport { Pathname } from \"../../constants/pathnames/pathname\"; // Removed - should be passed as props\nimport Typography from \"../typography/typography\";\nimport logo, { images } from \"../../assets/images\";\nimport Select from \"../select/select\";\nimport modules from \"../../constants/modules\"; // Removed - should be passed as props\nimport Avatar from \"../avatar/avatar\";\nimport { useAuth } from \"../../hooks/useAuth\";\nimport ConfirmPopUp from \"../confirm-modal/confirm-modal\";\nimport formatText from \"../../utils/format-text\";\nimport \"./header.scss\";\nimport { useLanguage } from \"../../hooks/useLangauge\";\nimport { Eye } from \"../icons\";\nimport ResetPasswordModal from \"../reset-password-modal/reset-password-modal\";\nimport NotificationMenu from \"./components/notification-menu/notification-menu\";\n\ninterface ILanguage {\n label: string;\n code: string;\n direction: string;\n}\n\ninterface IModule {\n label: any;\n link: string;\n sidebar: string;\n icon: string;\n permission: string;\n bg: string;\n connectedRoutes: string[];\n translationModule: string;\n}\n\n\nexport function Header(props: any): React.ReactElement {\n const navigate = useNavigate();\n const { t } = useTranslation();\n const location = useLocation();\n const { logout, user } = useAuth();\n \n const { \n languages, \n currentLanguage, \n changeLanguage, \n isLoading: languagesLoading,\n error: languageContextError,\n isFallbackActive,\n fetchLanguages,\n isRtl\n } = useLanguage();\n \n const { pathname } = location;\n const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);\n const [logoutConfirmation, setLogoutConfirmation] = useState<boolean>(false);\n const [localLanguageError, setLocalLanguageError] = useState<string | null>(null);\n const [showModal, setShowModal] = useState(false);\n\n const u_data = localStorage.getItem(\"_u_data\") || undefined;\n const userData = u_data ? JSON.parse(u_data) : \"\";\n const isMenuOpen = Boolean(anchorEl);\n\n const handleLogoutConfirmation = () =>\n setLogoutConfirmation(!logoutConfirmation);\n\n const checkMatchedRoutes = useCallback(\n (paths: string[] | string) => {\n const shouldMatch: { path: string }[] = Array.isArray(paths)\n ? paths.map((path: string) => ({ path }))\n : [{ path: paths }];\n\n return Boolean(matchRoutes(shouldMatch, location));\n },\n [location],\n );\n\n const erp_modules = useMemo<IModule[]>(() => modules(t), [t]);\n\n const selectedModule = useMemo<IModule | null>(() => {\n return (\n erp_modules.find(\n (module: IModule) =>\n module?.link?.toLowerCase() === pathname.toLowerCase() ||\n checkMatchedRoutes(module.connectedRoutes),\n ) || null\n );\n }, [erp_modules, pathname, checkMatchedRoutes]);\n\n const handleChangePasswordView = () => {\n setShowModal(true);\n }\n\n // Enhanced language change handler with validation and error handling\n const onChangeLang = (e: React.ChangeEvent<HTMLSelectElement>) => {\n const lang_code = e.target.value;\n \n // Clear any previous errors\n setLocalLanguageError(null);\n \n // Validate the language exists before changing\n if (!languages || languages.length === 0) {\n const errorMsg = t('header.language_not_available') || 'Languages not available';\n setLocalLanguageError(errorMsg);\n return;\n }\n \n const languageExists = languages.some((lang: ILanguage) => lang.code === lang_code);\n \n if (languageExists) {\n try {\n changeLanguage(lang_code);\n } catch (error) {\n const errorMsg = error instanceof Error ? error.message : 'Failed to change language';\n setLocalLanguageError(errorMsg);\n }\n } else {\n const errorMsg = t('header.language_not_found', { language: lang_code }) || \n `Selected language \"${lang_code}\" is not available`;\n setLocalLanguageError(errorMsg);\n }\n };\n\n // Retry language loading\n const handleRetryLanguages = async () => {\n setLocalLanguageError(null);\n try {\n await fetchLanguages();\n } catch (error) {\n const errorMsg = 'Failed to reload languages';\n setLocalLanguageError(errorMsg);\n }\n };\n\n\n const handleProfileMenuOpen = (event: React.MouseEvent<HTMLElement>) =>\n setAnchorEl(event.currentTarget);\n\n const handleMenuClose = () => {\n setAnchorEl(null);\n };\n\n const handleChange = (event: any) => {\n const selectedLink = event.target.value;\n setTimeout(() => {\n navigate(selectedLink);\n }, 300);\n };\n\n const handleBackButton = () => {\n window.history.back();\n };\n\n // Get current language display value with fallback indication\n const getCurrentLanguageDisplay = (): string => {\n if (!currentLanguage) return t('header.select_language') || 'Select Language';\n \n // Show fallback indicator for better UX\n if (isFallbackActive || languageContextError) {\n return `${currentLanguage.label}`;\n }\n \n return currentLanguage.label;\n };\n\n // Create English fallback for consistent display\n const createEnglishFallback = (): ILanguage => ({\n code: 'en',\n label: 'English',\n direction: 'ltr'\n });\n\n // Get languages for dropdown - ensure English is always available\n const getLanguagesForDropdown = (): ILanguage[] => {\n if (!languages || languages.length === 0) {\n // If no languages available, show only English\n return [createEnglishFallback()];\n }\n \n // Ensure English is in the list\n const hasEnglish = languages.some(lang => lang.code === 'en');\n if (!hasEnglish) {\n return [createEnglishFallback(), ...languages];\n }\n \n return languages;\n };\n\n // Render language selector based on different states\n const renderLanguageSelector = () => {\n const availableLanguages = getLanguagesForDropdown();\n const displayValue = currentLanguage?.code || 'en'; // Default to English\n\n // Loading state\n if (languagesLoading) {\n return (\n <Box className=\"language-loading\">\n <Typography variant=\"body2\" color=\"text.secondary\">\n {'Loading...'}\n </Typography>\n </Box>\n );\n }\n\n // Always show dropdown with at least English available\n return (\n <Select\n onChange={onChangeLang}\n size=\"small\"\n value={displayValue}\n renderValue={() => getCurrentLanguageDisplay()}\n error={!!localLanguageError}\n className={isFallbackActive || languageContextError ? 'language-fallback-active' : ''}\n \n >\n {availableLanguages.map(({ code, label }: ILanguage) => (\n <MenuItem key={code} value={code}>\n <Typography\n type=\"s4\"\n weight=\"medium\"\n color=\"theme.secondary.1000\"\n \n >\n {label}\n {/* Show fallback indicator in dropdown */}\n {/* {(isFallbackActive || languageContextError) && code === 'en' && \n ` (${t('header.fallback') || 'Fallback'})`\n } */}\n </Typography>\n </MenuItem>\n ))}\n \n {/* Show retry option if there's an error */}\n {languageContextError && (\n <MenuItem onClick={handleRetryLanguages} style={{ fontStyle: 'italic' }}>\n <Typography\n type=\"s4\"\n weight=\"medium\"\n color=\"theme.secondary.500\"\n >\n 🔄 {t('header.retry_languages') || 'Retry loading languages'}\n </Typography>\n </MenuItem>\n )}\n </Select>\n );\n };\n\n const menuId = \"primary-search-account-menu\";\n const renderMenu = (\n <Menu\n className=\"main-profile-menu\"\n anchorEl={anchorEl}\n id={menuId}\n keepMounted\n open={isMenuOpen}\n onClose={handleMenuClose}\n >\n <MenuItem className=\"user-assigned\">\n <span>{t('common.assigned_roles') || 'Assigned roles'}</span>\n </MenuItem>\n <MenuItem className=\"user-data-wrap\" value={userData.role_id}>\n <ListItemIcon>\n <Avatar size={27} alt={userData.role_name} />\n </ListItemIcon>\n <ListItemText className=\"size15\">\n {userData.role_name}\n </ListItemText>\n <Typography variant=\"body2\" color=\"text.secondary\">\n <img src={images.tickicon} alt=\"Active\" />\n </Typography>\n </MenuItem>\n <Divider />\n <MenuItem\n className=\"user-assigned\"\n onClick={() => {\n handleChangePasswordView();\n setAnchorEl(null);\n }}\n >\n <ListItemIcon>\n <Eye fontSize=\"medium\" width={20} height={20} htmlColor=\"#292D32\" />\n </ListItemIcon>\n <ListItemText className=\"size15\">{t(\"common.change_password\")}</ListItemText>\n </MenuItem>\n <Divider />\n <MenuItem\n className=\"menu-item-color\"\n onClick={() => {\n handleLogoutConfirmation();\n setAnchorEl(null);\n }}\n >\n <ListItemIcon>\n <img src={images.logout} alt=\"logout\" />\n </ListItemIcon>\n <ListItemText className=\"size15\">{t(\"common.logout\")}</ListItemText>\n </MenuItem>\n </Menu>\n );\n\n return (\n <>\n <Box className=\"main-box\">\n {!props.isDropdownShow && (\n <Link to={user ? Pathname.DASHBOARD : Pathname.LOGIN}>\n <img src={images.logo} alt=\"logo\" />\n </Link>\n )}\n <Box className=\"second-box\">\n {props.isDropdownShow && (\n <>\n <IconButton onClick={handleBackButton}>\n <KeyboardBackspaceIcon\n className={isRtl?\"arrow-pointer_rtl\":\"arrow-pointer\"}\n />\n </IconButton>\n <Box width={250}>\n <Select\n fullWidth\n placeholder=\"Placeholder\"\n size={\"small\"}\n value={selectedModule?.link || \"\"}\n onChange={handleChange}\n className=\"select-box\"\n variant=\"outlined\"\n renderValue={(value: string) => (\n <>\n {selectedModule ? (\n <Box className=\"selected-menu-box\">\n <img\n src={selectedModule.icon}\n alt={selectedModule.label}\n />\n {selectedModule.label}\n </Box>\n ) : (\n value\n )}\n </>\n )}\n >\n {erp_modules.map((module: any, index: number) => (\n <MenuItem\n className=\"select-box-menu-item\"\n value={module.link}\n key={index}\n >\n <img src={module.icon} alt={module.label} />\n {module.label}\n </MenuItem>\n ))}\n </Select>\n </Box>\n </>\n )}\n </Box>\n <Box className=\"header-right-wrap\">\n {/* Language Selector with Enhanced Fallback Support */}\n <Box className=\"language-selector-wrapper\">\n {renderLanguageSelector()}\n </Box>\n\n {/* <IconButton\n size=\"small\"\n aria-label=\"notification bell\"\n className=\"p-0\"\n >\n <img src={logo.notification} alt=\"notification icon\" />\n </IconButton> */}\n <NotificationMenu/>\n <IconButton\n size=\"small\"\n aria-label=\"help\"\n className=\"p-0\"\n >\n <img src={logo.question} alt=\"question icon\" />\n </IconButton>\n <img src={logo.vdivider} alt=\"divider icon\" />\n {localStorage.getItem(\"_tid\") ? (\n <Box className=\"user-profile-box\" onClick={handleProfileMenuOpen}>\n <Avatar\n size={32}\n src={user?.profile_image ? `${import.meta.env.VITE_S3_BUCKET_URL}${user?.profile_image}` : undefined}\n alt={formatText(user?.full_name)}\n className=\"avatar-class\"\n />\n <div>\n <Typography className=\"profile-name\">\n {user?.full_name}\n </Typography>\n <Typography className=\"user-auth\">\n {user?.role_name}\n </Typography>\n </div>\n </Box>\n ) : (\n <IconButton\n size=\"large\"\n edge=\"end\"\n aria-label=\"account of current user\"\n aria-controls={menuId}\n aria-haspopup=\"true\"\n component={Link}\n to={Pathname.LOGIN}\n color=\"inherit\"\n >\n <LockIcon className=\"icon-btn\" />\n </IconButton>\n )}\n </Box>\n {renderMenu}\n </Box>\n\n {/* Logout Confirmation Dialog */}\n <ConfirmPopUp\n open={logoutConfirmation}\n title={t(\"common.logout\")}\n description={t('common.logout_confirmation') || \"Are you sure, you want to logout?\"}\n onConfirm={() => logout()}\n onClose={handleLogoutConfirmation}\n fullWidth\n maxWidth=\"xs\"\n buttonTexts={{\n confirm: t(\"common.logout\"),\n cancel: t(\"common.cancel\"),\n }}\n />\n\n <ResetPasswordModal showModal={showModal} setShowModal = {setShowModal} />\n \n </>\n );\n}\n\nexport default Header;"],"names":["Header","props","navigate","useNavigate","t","useTranslation","location","useLocation","logout","user","useAuth","languages","currentLanguage","changeLanguage","isLoading","languagesLoading","error","languageContextError","isFallbackActive","fetchLanguages","isRtl","useLanguage","pathname","anchorEl","setAnchorEl","React","useState","logoutConfirmation","setLogoutConfirmation","localLanguageError","setLocalLanguageError","showModal","setShowModal","u_data","localStorage","getItem","userData","JSON","parse","isMenuOpen","Boolean","handleLogoutConfirmation","checkMatchedRoutes","useCallback","paths","shouldMatch","Array","isArray","map","path","matchRoutes","erp_modules","useMemo","modules","selectedModule","find","module","_a","link","toLowerCase","connectedRoutes","onChangeLang","e","lang_code","target","value","length","errorMsg","some","lang","code","Error","message","language","handleRetryLanguages","async","menuId","renderMenu","jsxs","Menu","className","id","keepMounted","open","onClose","children","MenuItem","jsx","role_id","ListItemIcon","Avatar","size","alt","role_name","ListItemText","Typography","variant","color","src","images","tickicon","Divider","onClick","Eye","fontSize","width","height","htmlColor","Fragment","Box","isDropdownShow","Link","to","Pathname","DASHBOARD","LOGIN","logo","IconButton","window","history","back","KeyboardBackspaceIcon","Select","fullWidth","placeholder","onChange","event","selectedLink","setTimeout","renderValue","icon","label","index","availableLanguages","direction","displayValue","type","weight","style","fontStyle","renderLanguageSelector","NotificationMenu","question","vdivider","currentTarget","profile_image","formatText","full_name","edge","component","LockIcon","ConfirmPopUp","title","description","onConfirm","maxWidth","buttonTexts","confirm","cancel","ResetPasswordModal"],"mappings":"2nDAgDO,SAASA,EAAOC,GACrB,MAAMC,EAAWC,EAAAA,eACXC,EAAEA,GAAMC,mBACRC,EAAWC,EAAAA,eACXC,OAAEA,EAAAC,KAAQA,GAASC,aAEnBC,UACJA,EAAAC,gBACAA,EAAAC,eACAA,EACAC,UAAWC,EACXC,MAAOC,EAAAC,iBACPA,EAAAC,eACAA,EAAAC,MACAA,GACEC,iBAEEC,SAAEA,GAAahB,GACdiB,EAAUC,GAAeC,EAAAA,QAAMC,SAA6B,OAC5DC,EAAoBC,GAAyBF,EAAAA,UAAkB,IAC/DG,EAAoBC,GAAyBJ,EAAAA,SAAwB,OACrEK,EAAWC,GAAgBN,EAAAA,UAAS,GAErCO,EAASC,aAAaC,QAAQ,iBAAc,EAC5CC,EAAWH,EAASI,KAAKC,MAAML,GAAU,GACzCM,EAAaC,QAAQjB,GAErBkB,EAA2B,IAC/Bb,GAAuBD,GAEnBe,GAAqBC,EAAAA,YACxBC,IACC,MAAMC,EAAkCC,MAAMC,QAAQH,GAClDA,EAAMI,IAAKC,IAAA,CAAoBA,UAC/B,CAAC,CAAEA,KAAML,IAEb,OAAOJ,QAAQU,EAAAA,YAAYL,EAAavC,KAE1C,CAACA,IAGG6C,GAAcC,EAAAA,QAAmB,IAAMC,EAAAA,QAAQjD,GAAI,CAACA,IAEpDkD,GAAiBF,EAAAA,QAAwB,IAE3CD,GAAYI,KACTC,UACC,OAAA,OAAAC,EAAA,MAAAD,OAAA,EAAAA,EAAQE,WAAR,EAAAD,EAAcE,iBAAkBrC,EAASqC,eACzCjB,GAAmBc,EAAOI,oBACzB,KAEN,CAACT,GAAa7B,EAAUoB,KAOrBmB,GAAgBC,IACpB,MAAMC,EAAYD,EAAEE,OAAOC,MAM3B,GAHAnC,EAAsB,OAGjBnB,GAAkC,IAArBA,EAAUuD,OAAc,CACxC,MAAMC,EAAW/D,EAAE,kCAAoC,0BAEvD,YADA0B,EAAsBqC,EAExB,CAIA,GAFuBxD,EAAUyD,KAAMC,GAAoBA,EAAKC,OAASP,GAGvE,IACElD,EAAekD,EACjB,OAAS/C,GACP,MAAMmD,EAAWnD,aAAiBuD,MAAQvD,EAAMwD,QAAU,4BAC1D1C,EAAsBqC,EACxB,KACK,CACL,MAAMA,EAAW/D,EAAE,4BAA6B,CAAEqE,SAAUV,KAC7C,sBAAsBA,sBACrCjC,EAAsBqC,EACxB,GAIIO,GAAuBC,UAC3B7C,EAAsB,MACtB,UACQX,GACR,OAASH,GAEPc,EADiB,6BAEnB,GAqHI8C,GAAS,8BACTC,kBACJC,EAAAA,KAACC,EAAAA,QAAA,CACCC,UAAU,oBACVzD,WACA0D,GAAIL,GACJM,aAAW,EACXC,KAAM5C,EACN6C,QAtHoB,KACtB5D,EAAY,OAuHV6D,SAAA;qBAACC,EAAAA,QAAA,CAASN,UAAU,gBAClBK,wBAAAE,EAAAA,IAAC,QAAMF,SAAAjF,EAAE,0BAA4B;sBAEtCkF,EAAAA,QAAA,CAASN,UAAU,iBAAiBf,MAAO7B,EAASoD,QACnDH,SAAA;iBAAAE,IAACE,EAAAA,QAAA,CACCJ,8BAACK,EAAAA,OAAA,CAAOC,KAAM,GAAIC,IAAKxD,EAASyD;eAElCN,EAAAA,IAACO,EAAAA,QAAA,CAAad,UAAU,SACrBK,WAASQ;qBAEXE,EAAAA,WAAA,CAAWC,QAAQ,QAAQC,MAAM,iBAChCZ,wBAAAE,EAAAA,IAAC,MAAA,CAAIW,IAAKC,EAAAA,OAAOC,SAAUR,IAAI;qBAGlCS,EAAAA,QAAA;eACDvB,EAAAA,KAACQ,EAAAA,QAAA,CACCN,UAAU,gBACVsB,QAAS,KAzLbtE,GAAa,GA2LPR,EAAY,OAGd6D,SAAA;qBAACI,EAAAA,QAAA,CACCJ,wBAAAE,EAAAA,IAACgB,EAAAA,IAAA,CAAIC,SAAS,SAASC,MAAO,GAAIC,OAAQ,GAAIC,UAAU;qBAEzDb,EAAAA,QAAA,CAAad,UAAU,SAAUK,SAAAjF,EAAE;qBAErCiG,EAAAA,QAAA;eACDvB,EAAAA,KAACQ,EAAAA,QAAA,CACCN,UAAU,kBACVsB,QAAS,KACP7D,IACAjB,EAAY,OAGd6D,SAAA;iBAAAE,IAACE,EAAAA,QAAA,CACCJ,8BAAC,MAAA,CAAIa,IAAKC,EAAAA,OAAO3F,OAAQoF,IAAI;qBAE9BE,EAAAA,QAAA,CAAad,UAAU,SAAUK,SAAAjF,EAAE;AAK1C,OACE0E,EAAAA,KAAA8B,WAAA,CACEvB,SAAA;iBAAAP,KAAC+B,EAAAA,QAAA,CAAI7B,UAAU,WACZK,SAAA,EAACpF,EAAM6G,+BACNvB,EAAAA,IAACwB,EAAAA,KAAA,CAAKC,GAAIvG,EAAOwG,WAASC,UAAYD,EAAAA,SAASE,MAC7C9B,8BAAC,MAAA,CAAIa,IAAKC,SAAOiB,KAAMxB,IAAI;qBAG9BiB,EAAAA,QAAA,CAAI7B,UAAU,aACZK,SAAApF,EAAM6G,+BACLhC,EAAAA,KAAA8B,EAAAA,SAAA,CACAvB,SAAA;eAAAE,EAAAA,IAAC8B,EAAAA,QAAA,CAAWf,QAnKG,KACvBgB,OAAOC,QAAQC,QAmKLnC,wBAAAE,EAAAA,IAACkC,EAAAA,QAAA,CACCzC,UAAW5D,EAAM,oBAAoB;eAGvCmE,EAAAA,IAACsB,EAAAA,QAAA,CAAIJ,MAAO,IACVpB,wBAAAE,EAAAA,IAACmC,EAAAA,OAAA,CACCC,WAAS,EACTC,YAAY,cACZjC,KAAM,QACN1B,aAAOX,aAAgBI,OAAQ,GAC/BmE,SArLMC,IACpB,MAAMC,EAAeD,EAAM9D,OAAOC,MAClC+D,WAAW,KACT9H,EAAS6H,IACR,MAkLW/C,UAAU,aACVgB,QAAQ,WACRiC,YAAchE,kBACZsB,MAAAqB,EAAAA,SAAA,CACGvB,6BACCP,KAAC+B,EAAAA,QAAA,CAAI7B,UAAU,oBACbK,SAAA;eAAAE,EAAAA,IAAC,MAAA,CACCW,IAAK5C,GAAe4E,KACpBtC,IAAKtC,GAAe6E,QAErB7E,GAAe6E,SAGlBlE,IAKLoB,SAAAlC,GAAYH,IAAI,CAACQ,EAAa4E,mBAC7BtD,EAAAA,KAACQ,EAAAA,QAAA,CACCN,UAAU,uBACVf,MAAOT,EAAOE,KAGd2B,SAAA;eAAAE,MAAC,OAAIW,IAAK1C,EAAO0E,KAAMtC,IAAKpC,EAAO2E,QAClC3E,EAAO2E,QAHHC;iBAWnBtD,KAAC+B,EAAAA,QAAA,CAAI7B,UAAU,oBAEbK,SAAA;eAAAE,EAAAA,IAACsB,EAAAA,QAAA,CAAI7B,UAAU,4BACZK,SA3KoB,MAC7B,MAAMgD,EAhBD1H,GAAkC,IAArBA,EAAUuD,OAMTvD,EAAUyD,KAAKC,GAAsB,OAAdA,EAAKC,MAKxC3D,EAHE,CAhBmB,CAC5B2D,KAAM,KACN6D,MAAO,UACPG,UAAW,UAa2B3H,GAN7B,CAVmB,CAC5B2D,KAAM,KACN6D,MAAO,UACPG,UAAW,QAsBLC,SAAe3H,WAAiB0D,OAAQ,KAG9C,OAAIvD,uBAEC8F,EAAAA,QAAA,CAAI7B,UAAU,mBACbK,wBAAAE,MAACQ,EAAAA,WAAA,CAAWC,QAAQ,QAAQC,MAAM,iBAC/BZ,SAAA,gCAQPP,EAAAA,KAAC4C,EAAAA,OAAA,CACCG,SAAUhE,GACV8B,KAAK,QACL1B,MAAOsE,EACPN,YAAa,IAvDZrH,EAGDM,GAAoBD,EACf,GAAGL,EAAgBuH,QAGrBvH,EAAgBuH,MAPM/H,EAAE,2BAA6B,kBAwDxDY,QAASa,EACTmD,UAAW9D,GAAoBD,EAAuB,2BAA6B,GAGlFoE,SAAA,CAAAgD,EAAmBrF,IAAI,EAAGsB,OAAM6D,0BAC/B5C,MAACD,EAAAA,QAAA,CAAoBrB,MAAOK,EAC1Be,wBAAAE,EAAAA,IAACQ,EAAAA,WAAA,CACCyC,KAAK,KACLC,OAAO,SACPxC,MAAM,uBAGLZ,SAAA8C,KAPU7D,IAiBhBrD,wBACEqE,UAAA,CAASgB,QAAS5B,GAAsBgE,MAAO,CAAEC,UAAW,UAC3DtD,wBAAAP,EAAAA,KAACiB,EAAAA,WAAA,CACCyC,KAAK,KACLC,OAAO,SACPxC,MAAM,sBACPZ,SAAA,CAAA,MACKjF,EAAE,2BAA6B,mCAwHpCwI;qBAUFC,EAAAA,iBAAA;eACDtD,EAAAA,IAAC8B,EAAAA,QAAA,CACC1B,KAAK,QACL,aAAW,OACXX,UAAU,MAEVK,8BAAC,MAAA,CAAIa,IAAKkB,EAAAA,OAAK0B,SAAUlD,IAAI;qBAE9B,MAAA,CAAIM,IAAKkB,EAAAA,OAAK2B,SAAUnD,IAAI,iBAC5B1D,aAAaC,QAAQ,8BACnB0E,EAAAA,QAAA,CAAI7B,UAAU,mBAAmBsB,QArPbwB,GAC7BtG,EAAYsG,EAAMkB,eAqPR3D,SAAA;eAAAE,EAAAA,IAACG,EAAAA,OAAA,CACCC,KAAM,GACNO,WAAKzF,WAAMwI,eAAgB,mDAAwC,MAAAxI,OAAA,EAAAA,EAAMwI,qBAAkB,EAC3FrD,IAAKsD,EAAAA,WAAW,MAAAzI,OAAA,EAAAA,EAAM0I,WACtBnE,UAAU;sBAEX,MAAA,CACCK,SAAA;eAAAE,EAAAA,IAACQ,EAAAA,WAAA,CAAWf,UAAU,eACnBK,SAAA,MAAA5E,OAAA,EAAAA,EAAM0I;eAET5D,EAAAA,IAACQ,EAAAA,WAAA,CAAWf,UAAU,YACnBK,0BAAMQ,iCAKbN,EAAAA,IAAC8B,EAAAA,QAAA,CACC1B,KAAK,QACLyD,KAAK,MACL,aAAW,0BACX,gBAAexE,GACf,gBAAc,OACdyE,UAAWtC,EAAAA,KACXC,GAAIC,EAAAA,SAASE,MACblB,MAAM,UAENZ,0BAAAE,IAAC+D,EAAAA,QAAA,CAAStE,UAAU,kBAIzBH;eAIHU,EAAAA,IAACgE,EAAAA,aAAA,CACCpE,KAAMxD,EACN6H,MAAOpJ,EAAE,iBACTqJ,YAAarJ,EAAE,+BAAiC,oCAChDsJ,UAAW,IAAMlJ,IACjB4E,QAAS3C,EACTkF,WAAS,EACTgC,SAAS,KACTC,YAAa,CACXC,QAASzJ,EAAE,iBACX0J,OAAQ1J,EAAE;iBAIdmF,IAACwE,EAAAA,mBAAA,CAAmBhI,YAAsBC,mBAIhD"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/header/header.tsx"],"sourcesContent":["// components/header/Header.tsx - Complete updated version with English fallback\r\nimport React, { useState, useCallback, useMemo } from \"react\";\r\nimport { Link, matchRoutes, useLocation, useNavigate } from \"react-router-dom\";\r\nimport Box from \"@mui/material/Box\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport LockIcon from \"@mui/icons-material/Lock\";\r\nimport IconButton from \"@mui/material/IconButton\";\r\nimport MenuItem from \"@mui/material/MenuItem\";\r\nimport Menu from \"@mui/material/Menu\";\r\nimport KeyboardBackspaceIcon from \"@mui/icons-material/KeyboardBackspace\";\r\nimport ListItemText from \"@mui/material/ListItemText\";\r\nimport Divider from \"@mui/material/Divider\";\r\nimport ListItemIcon from \"@mui/material/ListItemIcon\";\r\n\r\n\r\nimport { Pathname } from \"../../constants/pathnames/pathname\"; // Removed - should be passed as props\r\nimport Typography from \"../typography/typography\";\r\nimport logo, { images } from \"../../assets/images\";\r\nimport Select from \"../select/select\";\r\nimport modules from \"../../constants/modules\"; // Removed - should be passed as props\r\nimport Avatar from \"../avatar/avatar\";\r\nimport { useAuth } from \"../../hooks/useAuth\";\r\nimport ConfirmPopUp from \"../confirm-modal/confirm-modal\";\r\nimport formatText from \"../../utils/format-text\";\r\nimport \"./header.scss\";\r\nimport { useLanguage } from \"../../hooks/useLangauge\";\r\nimport { Eye } from \"../icons\";\r\nimport ResetPasswordModal from \"../reset-password-modal/reset-password-modal\";\r\nimport NotificationMenu from \"./components/notification-menu/notification-menu\";\r\n\r\ninterface ILanguage {\r\n label: string;\r\n code: string;\r\n direction: string;\r\n}\r\n\r\ninterface IModule {\r\n label: any;\r\n link: string;\r\n sidebar: string;\r\n icon: string;\r\n permission: string;\r\n bg: string;\r\n connectedRoutes: string[];\r\n translationModule: string;\r\n}\r\n\r\n\r\nexport function Header(props: any): React.ReactElement {\r\n const navigate = useNavigate();\r\n const { t } = useTranslation();\r\n const location = useLocation();\r\n const { logout, user } = useAuth();\r\n \r\n const { \r\n languages, \r\n currentLanguage, \r\n changeLanguage, \r\n isLoading: languagesLoading,\r\n error: languageContextError,\r\n isFallbackActive,\r\n fetchLanguages,\r\n isRtl\r\n } = useLanguage();\r\n \r\n const { pathname } = location;\r\n const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);\r\n const [logoutConfirmation, setLogoutConfirmation] = useState<boolean>(false);\r\n const [localLanguageError, setLocalLanguageError] = useState<string | null>(null);\r\n const [showModal, setShowModal] = useState(false);\r\n\r\n const u_data = localStorage.getItem(\"_u_data\") || undefined;\r\n const userData = u_data ? JSON.parse(u_data) : \"\";\r\n const isMenuOpen = Boolean(anchorEl);\r\n\r\n const handleLogoutConfirmation = () =>\r\n setLogoutConfirmation(!logoutConfirmation);\r\n\r\n const checkMatchedRoutes = useCallback(\r\n (paths: string[] | string) => {\r\n const shouldMatch: { path: string }[] = Array.isArray(paths)\r\n ? paths.map((path: string) => ({ path }))\r\n : [{ path: paths }];\r\n\r\n return Boolean(matchRoutes(shouldMatch, location));\r\n },\r\n [location],\r\n );\r\n\r\n const erp_modules = useMemo<IModule[]>(() => modules(t), [t]);\r\n\r\n const selectedModule = useMemo<IModule | null>(() => {\r\n return (\r\n erp_modules.find(\r\n (module: IModule) =>\r\n module?.link?.toLowerCase() === pathname.toLowerCase() ||\r\n checkMatchedRoutes(module.connectedRoutes),\r\n ) || null\r\n );\r\n }, [erp_modules, pathname, checkMatchedRoutes]);\r\n\r\n const handleChangePasswordView = () => {\r\n setShowModal(true);\r\n }\r\n\r\n // Enhanced language change handler with validation and error handling\r\n const onChangeLang = (e: React.ChangeEvent<HTMLSelectElement>) => {\r\n const lang_code = e.target.value;\r\n \r\n // Clear any previous errors\r\n setLocalLanguageError(null);\r\n \r\n // Validate the language exists before changing\r\n if (!languages || languages.length === 0) {\r\n const errorMsg = t('header.language_not_available') || 'Languages not available';\r\n setLocalLanguageError(errorMsg);\r\n return;\r\n }\r\n \r\n const languageExists = languages.some((lang: ILanguage) => lang.code === lang_code);\r\n \r\n if (languageExists) {\r\n try {\r\n changeLanguage(lang_code);\r\n } catch (error) {\r\n const errorMsg = error instanceof Error ? error.message : 'Failed to change language';\r\n setLocalLanguageError(errorMsg);\r\n }\r\n } else {\r\n const errorMsg = t('header.language_not_found', { language: lang_code }) || \r\n `Selected language \"${lang_code}\" is not available`;\r\n setLocalLanguageError(errorMsg);\r\n }\r\n };\r\n\r\n // Retry language loading\r\n const handleRetryLanguages = async () => {\r\n setLocalLanguageError(null);\r\n try {\r\n await fetchLanguages();\r\n } catch (error) {\r\n const errorMsg = 'Failed to reload languages';\r\n setLocalLanguageError(errorMsg);\r\n }\r\n };\r\n\r\n\r\n const handleProfileMenuOpen = (event: React.MouseEvent<HTMLElement>) =>\r\n setAnchorEl(event.currentTarget);\r\n\r\n const handleMenuClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n const handleChange = (event: any) => {\r\n const selectedLink = event.target.value;\r\n setTimeout(() => {\r\n navigate(selectedLink);\r\n }, 300);\r\n };\r\n\r\n const handleBackButton = () => {\r\n window.history.back();\r\n };\r\n\r\n // Get current language display value with fallback indication\r\n const getCurrentLanguageDisplay = (): string => {\r\n if (!currentLanguage) return t('header.select_language') || 'Select Language';\r\n \r\n // Show fallback indicator for better UX\r\n if (isFallbackActive || languageContextError) {\r\n return `${currentLanguage.label}`;\r\n }\r\n \r\n return currentLanguage.label;\r\n };\r\n\r\n // Create English fallback for consistent display\r\n const createEnglishFallback = (): ILanguage => ({\r\n code: 'en',\r\n label: 'English',\r\n direction: 'ltr'\r\n });\r\n\r\n // Get languages for dropdown - ensure English is always available\r\n const getLanguagesForDropdown = (): ILanguage[] => {\r\n if (!languages || languages.length === 0) {\r\n // If no languages available, show only English\r\n return [createEnglishFallback()];\r\n }\r\n \r\n // Ensure English is in the list\r\n const hasEnglish = languages.some(lang => lang.code === 'en');\r\n if (!hasEnglish) {\r\n return [createEnglishFallback(), ...languages];\r\n }\r\n \r\n return languages;\r\n };\r\n\r\n // Render language selector based on different states\r\n const renderLanguageSelector = () => {\r\n const availableLanguages = getLanguagesForDropdown();\r\n const displayValue = currentLanguage?.code || 'en'; // Default to English\r\n\r\n // Loading state\r\n if (languagesLoading) {\r\n return (\r\n <Box className=\"language-loading\">\r\n <Typography variant=\"body2\" color=\"text.secondary\">\r\n {'Loading...'}\r\n </Typography>\r\n </Box>\r\n );\r\n }\r\n\r\n // Always show dropdown with at least English available\r\n return (\r\n <Select\r\n onChange={onChangeLang}\r\n size=\"small\"\r\n value={displayValue}\r\n renderValue={() => getCurrentLanguageDisplay()}\r\n error={!!localLanguageError}\r\n className={isFallbackActive || languageContextError ? 'language-fallback-active' : ''}\r\n \r\n >\r\n {availableLanguages.map(({ code, label }: ILanguage) => (\r\n <MenuItem key={code} value={code}>\r\n <Typography\r\n type=\"s4\"\r\n weight=\"medium\"\r\n color=\"theme.secondary.1000\"\r\n \r\n >\r\n {label}\r\n {/* Show fallback indicator in dropdown */}\r\n {/* {(isFallbackActive || languageContextError) && code === 'en' && \r\n ` (${t('header.fallback') || 'Fallback'})`\r\n } */}\r\n </Typography>\r\n </MenuItem>\r\n ))}\r\n \r\n {/* Show retry option if there's an error */}\r\n {languageContextError && (\r\n <MenuItem onClick={handleRetryLanguages} style={{ fontStyle: 'italic' }}>\r\n <Typography\r\n type=\"s4\"\r\n weight=\"medium\"\r\n color=\"theme.secondary.500\"\r\n >\r\n 🔄 {t('header.retry_languages') || 'Retry loading languages'}\r\n </Typography>\r\n </MenuItem>\r\n )}\r\n </Select>\r\n );\r\n };\r\n\r\n const menuId = \"primary-search-account-menu\";\r\n const renderMenu = (\r\n <Menu\r\n className=\"main-profile-menu\"\r\n anchorEl={anchorEl}\r\n id={menuId}\r\n keepMounted\r\n open={isMenuOpen}\r\n onClose={handleMenuClose}\r\n >\r\n <MenuItem className=\"user-assigned\">\r\n <span>{t('common.assigned_roles') || 'Assigned roles'}</span>\r\n </MenuItem>\r\n <MenuItem className=\"user-data-wrap\" value={userData.role_id}>\r\n <ListItemIcon>\r\n <Avatar size={27} alt={userData.role_name} />\r\n </ListItemIcon>\r\n <ListItemText className=\"size15\">\r\n {userData.role_name}\r\n </ListItemText>\r\n <Typography variant=\"body2\" color=\"text.secondary\">\r\n <img src={images.tickicon} alt=\"Active\" />\r\n </Typography>\r\n </MenuItem>\r\n <Divider />\r\n <MenuItem\r\n className=\"user-assigned\"\r\n onClick={() => {\r\n handleChangePasswordView();\r\n setAnchorEl(null);\r\n }}\r\n >\r\n <ListItemIcon>\r\n <Eye fontSize=\"medium\" width={20} height={20} htmlColor=\"#292D32\" />\r\n </ListItemIcon>\r\n <ListItemText className=\"size15\">{t(\"common.change_password\")}</ListItemText>\r\n </MenuItem>\r\n <Divider />\r\n <MenuItem\r\n className=\"menu-item-color\"\r\n onClick={() => {\r\n handleLogoutConfirmation();\r\n setAnchorEl(null);\r\n }}\r\n >\r\n <ListItemIcon>\r\n <img src={images.logout} alt=\"logout\" />\r\n </ListItemIcon>\r\n <ListItemText className=\"size15\">{t(\"common.logout\")}</ListItemText>\r\n </MenuItem>\r\n </Menu>\r\n );\r\n\r\n return (\r\n <>\r\n <Box className=\"main-box\">\r\n {!props.isDropdownShow && (\r\n <Link to={user ? Pathname.DASHBOARD : Pathname.LOGIN}>\r\n <img src={images.logo} alt=\"logo\" />\r\n </Link>\r\n )}\r\n <Box className=\"second-box\">\r\n {props.isDropdownShow && (\r\n <>\r\n <IconButton onClick={handleBackButton}>\r\n <KeyboardBackspaceIcon\r\n className={isRtl?\"arrow-pointer_rtl\":\"arrow-pointer\"}\r\n />\r\n </IconButton>\r\n <Box width={250}>\r\n <Select\r\n fullWidth\r\n placeholder=\"Placeholder\"\r\n size={\"small\"}\r\n value={selectedModule?.link || \"\"}\r\n onChange={handleChange}\r\n className=\"select-box\"\r\n variant=\"outlined\"\r\n renderValue={(value: string) => (\r\n <>\r\n {selectedModule ? (\r\n <Box className=\"selected-menu-box\">\r\n <img\r\n src={selectedModule.icon}\r\n alt={selectedModule.label}\r\n />\r\n {selectedModule.label}\r\n </Box>\r\n ) : (\r\n value\r\n )}\r\n </>\r\n )}\r\n >\r\n {erp_modules.map((module: any, index: number) => (\r\n <MenuItem\r\n className=\"select-box-menu-item\"\r\n value={module.link}\r\n key={index}\r\n >\r\n <img src={module.icon} alt={module.label} />\r\n {module.label}\r\n </MenuItem>\r\n ))}\r\n </Select>\r\n </Box>\r\n </>\r\n )}\r\n </Box>\r\n <Box className=\"header-right-wrap\">\r\n {/* Language Selector with Enhanced Fallback Support */}\r\n <Box className=\"language-selector-wrapper\">\r\n {renderLanguageSelector()}\r\n </Box>\r\n\r\n {/* <IconButton\r\n size=\"small\"\r\n aria-label=\"notification bell\"\r\n className=\"p-0\"\r\n >\r\n <img src={logo.notification} alt=\"notification icon\" />\r\n </IconButton> */}\r\n <NotificationMenu/>\r\n <IconButton\r\n size=\"small\"\r\n aria-label=\"help\"\r\n className=\"p-0\"\r\n >\r\n <img src={logo.question} alt=\"question icon\" />\r\n </IconButton>\r\n <img src={logo.vdivider} alt=\"divider icon\" />\r\n {localStorage.getItem(\"_tid\") ? (\r\n <Box className=\"user-profile-box\" onClick={handleProfileMenuOpen}>\r\n <Avatar\r\n size={32}\r\n src={user?.profile_image ? `${import.meta.env.VITE_S3_BUCKET_URL}${user?.profile_image}` : undefined}\r\n alt={formatText(user?.full_name)}\r\n className=\"avatar-class\"\r\n />\r\n <div>\r\n <Typography className=\"profile-name\">\r\n {user?.full_name}\r\n </Typography>\r\n <Typography className=\"user-auth\">\r\n {user?.role_name}\r\n </Typography>\r\n </div>\r\n </Box>\r\n ) : (\r\n <IconButton\r\n size=\"large\"\r\n edge=\"end\"\r\n aria-label=\"account of current user\"\r\n aria-controls={menuId}\r\n aria-haspopup=\"true\"\r\n component={Link}\r\n to={Pathname.LOGIN}\r\n color=\"inherit\"\r\n >\r\n <LockIcon className=\"icon-btn\" />\r\n </IconButton>\r\n )}\r\n </Box>\r\n {renderMenu}\r\n </Box>\r\n\r\n {/* Logout Confirmation Dialog */}\r\n <ConfirmPopUp\r\n open={logoutConfirmation}\r\n title={t(\"common.logout\")}\r\n description={t('common.logout_confirmation') || \"Are you sure, you want to logout?\"}\r\n onConfirm={() => logout()}\r\n onClose={handleLogoutConfirmation}\r\n fullWidth\r\n maxWidth=\"xs\"\r\n buttonTexts={{\r\n confirm: t(\"common.logout\"),\r\n cancel: t(\"common.cancel\"),\r\n }}\r\n />\r\n\r\n <ResetPasswordModal showModal={showModal} setShowModal = {setShowModal} />\r\n \r\n </>\r\n );\r\n}\r\n\r\nexport default Header;"],"names":["Header","props","navigate","useNavigate","t","useTranslation","location","useLocation","logout","user","useAuth","languages","currentLanguage","changeLanguage","isLoading","languagesLoading","error","languageContextError","isFallbackActive","fetchLanguages","isRtl","useLanguage","pathname","anchorEl","setAnchorEl","React","useState","logoutConfirmation","setLogoutConfirmation","localLanguageError","setLocalLanguageError","showModal","setShowModal","u_data","localStorage","getItem","userData","JSON","parse","isMenuOpen","Boolean","handleLogoutConfirmation","checkMatchedRoutes","useCallback","paths","shouldMatch","Array","isArray","map","path","matchRoutes","erp_modules","useMemo","modules","selectedModule","find","module","_a","link","toLowerCase","connectedRoutes","onChangeLang","e","lang_code","target","value","length","errorMsg","some","lang","code","Error","message","language","handleRetryLanguages","async","menuId","renderMenu","jsxs","Menu","className","id","keepMounted","open","onClose","children","MenuItem","jsx","role_id","ListItemIcon","Avatar","size","alt","role_name","ListItemText","Typography","variant","color","src","images","tickicon","Divider","onClick","Eye","fontSize","width","height","htmlColor","Fragment","Box","isDropdownShow","Link","to","Pathname","DASHBOARD","LOGIN","logo","IconButton","window","history","back","KeyboardBackspaceIcon","Select","fullWidth","placeholder","onChange","event","selectedLink","setTimeout","renderValue","icon","label","index","availableLanguages","direction","displayValue","type","weight","style","fontStyle","renderLanguageSelector","NotificationMenu","question","vdivider","currentTarget","profile_image","formatText","full_name","edge","component","LockIcon","ConfirmPopUp","title","description","onConfirm","maxWidth","buttonTexts","confirm","cancel","ResetPasswordModal"],"mappings":"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"}
@@ -2,7 +2,7 @@ import { createAsyncThunk } from "@reduxjs/toolkit";
2
2
  import { setBaseUrl } from "../../../../api-client/api.rbac/api/index.esm.js";
3
3
  import { getV1Languages } from "../../../../api-client/api.system-feature/api/index.esm.js";
4
4
  import { getToken } from "../../../../utils/common/index.esm.js";
5
- setBaseUrl(`${"http://127.0.0.1:4011"}/rbac`);
5
+ setBaseUrl(`${"https://apidev.erpforce.co"}/rbac`);
6
6
  const fetchLanguages = createAsyncThunk(
7
7
  "header/language/get",
8
8
  async () => {