@erpsquad/common 1.8.29 → 1.8.30

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 (814) hide show
  1. package/dist/api-client/api.inventory/api.d.ts +5 -2
  2. package/dist/api-client/api.manufacturing/api.d.ts +15 -102
  3. package/dist/api-client/api.purchase/api.d.ts +3 -2
  4. package/dist/api-client/api.system-feature/api.d.ts +0 -2
  5. package/dist/components/action-bar/action-bar/index.esm.js +1 -1
  6. package/dist/components/action-bar/action-bar/index.esm.js.map +1 -1
  7. package/dist/components/action-bar/action-bar/index.js +1 -1
  8. package/dist/components/action-bar/action-bar/index.js.map +1 -1
  9. package/dist/components/filter/filter/index.esm.js +1 -1
  10. package/dist/components/filter/filter/index.esm.js.map +1 -1
  11. package/dist/components/filter/filter/index.js +1 -1
  12. package/dist/components/filter/filter/index.js.map +1 -1
  13. package/dist/components/header/redux/actionCreator/index.esm.js +1 -1
  14. package/dist/components/header/redux/actionCreator/index.esm.js.map +1 -1
  15. package/dist/components/header/redux/actionCreator/index.js +1 -1
  16. package/dist/components/header/redux/actionCreator/index.js.map +1 -1
  17. package/dist/components/index.d.ts +1 -2
  18. package/dist/components/index.esm.js +429 -435
  19. package/dist/components/index.esm.js.map +1 -1
  20. package/dist/components/index.js +1 -1
  21. package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.esm.js +1 -1
  22. package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.esm.js.map +1 -1
  23. package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.js +1 -1
  24. package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.js.map +1 -1
  25. package/dist/components/material-table/aggregation-fns/index/index.esm.js +0 -10
  26. package/dist/components/material-table/aggregation-fns/index/index.esm.js.map +1 -1
  27. package/dist/components/material-table/aggregation-fns/index/index.js +1 -1
  28. package/dist/components/material-table/aggregation-fns/index/index.js.map +1 -1
  29. package/dist/components/reports-title-bar/redux/actionCreator/index.esm.js +1 -1
  30. package/dist/components/reports-title-bar/redux/actionCreator/index.esm.js.map +1 -1
  31. package/dist/components/reports-title-bar/redux/actionCreator/index.js +1 -1
  32. package/dist/components/reports-title-bar/redux/actionCreator/index.js.map +1 -1
  33. package/dist/components/share-modal/redux/actionCreator/index.esm.js +1 -1
  34. package/dist/components/share-modal/redux/actionCreator/index.esm.js.map +1 -1
  35. package/dist/components/share-modal/redux/actionCreator/index.js +1 -1
  36. package/dist/components/share-modal/redux/actionCreator/index.js.map +1 -1
  37. package/dist/components/upload/upload/index.esm.js +2 -2
  38. package/dist/components/upload/upload/index.esm.js.map +1 -1
  39. package/dist/components/upload/upload/index.js +2 -2
  40. package/dist/components/upload/upload/index.js.map +1 -1
  41. package/dist/contexts/AuthContext/index.esm.js +1 -1
  42. package/dist/contexts/AuthContext/index.esm.js.map +1 -1
  43. package/dist/contexts/AuthContext/index.js +1 -1
  44. package/dist/contexts/AuthContext/index.js.map +1 -1
  45. package/dist/contexts/languageContext/index.esm.js +1 -1
  46. package/dist/contexts/languageContext/index.esm.js.map +1 -1
  47. package/dist/contexts/languageContext/index.js +1 -1
  48. package/dist/contexts/languageContext/index.js.map +1 -1
  49. package/dist/index.d.ts +1 -138
  50. package/dist/index.esm.js +521 -533
  51. package/dist/index.esm.js.map +1 -1
  52. package/dist/index.js +1 -1
  53. package/dist/node_modules/@glideapps/glide-data-grid/dist/js/index/index.esm.js +0 -32
  54. package/dist/node_modules/@glideapps/glide-data-grid/dist/js/index/index.esm.js.map +1 -1
  55. package/dist/node_modules/@glideapps/glide-data-grid/dist/js/index/index.js +36 -36
  56. package/dist/node_modules/@glideapps/glide-data-grid/dist/js/index/index.js.map +1 -1
  57. package/dist/src/api-client/api.accounting/api.d.ts +750 -0
  58. package/dist/src/api-client/api.drive/api.d.ts +44 -0
  59. package/dist/src/api-client/api.inventory/api.d.ts +282 -0
  60. package/dist/src/api-client/api.manufacturing/api.d.ts +476 -0
  61. package/dist/src/api-client/api.purchase/api.d.ts +330 -0
  62. package/dist/src/api-client/api.rbac/api.d.ts +99 -0
  63. package/dist/src/api-client/api.rental/api.d.ts +752 -0
  64. package/dist/src/api-client/api.sales/api.d.ts +429 -0
  65. package/dist/src/api-client/api.system-feature/api.d.ts +148 -0
  66. package/dist/src/api-client/api.user/api.d.ts +14 -0
  67. package/dist/src/api-client/index.d.ts +20 -0
  68. package/dist/{components → src/components}/accordion/accordion.d.ts +1 -1
  69. package/dist/{components → src/components}/action-bar/action-bar.d.ts +1 -1
  70. package/dist/src/components/checkbox/checkbox.d.ts +4 -0
  71. package/dist/{components → src/components}/date-picker/date-picker.d.ts +1 -1
  72. package/dist/{components → src/components}/footer/footer.d.ts +1 -1
  73. package/dist/src/components/form-control/form-builder/form-builder-element/media.d.ts +4 -0
  74. package/dist/src/components/form-control/form-builder/form-builder-element/phone.d.ts +3 -0
  75. package/dist/src/components/form-control/form-builder/form-builder-element/select.d.ts +4 -0
  76. package/dist/src/components/form-control/form-builder/form-builder-element/text.d.ts +4 -0
  77. package/dist/src/components/form-control/form-builder/form-builder-element/time.d.ts +4 -0
  78. package/dist/src/components/form-control/form-parser/form-switcher.d.ts +2 -0
  79. package/dist/src/components/icons/action-arrow.d.ts +4 -0
  80. package/dist/src/components/icons/add-circle.d.ts +4 -0
  81. package/dist/src/components/icons/arrow-bidirectional.d.ts +4 -0
  82. package/dist/src/components/icons/arrow-circle-down.d.ts +4 -0
  83. package/dist/src/components/icons/arrow-down-three.d.ts +4 -0
  84. package/dist/src/components/icons/arrow-down-two.d.ts +4 -0
  85. package/dist/src/components/icons/arrow-down.d.ts +4 -0
  86. package/dist/src/components/icons/arrow-up-down.d.ts +4 -0
  87. package/dist/src/components/icons/arrow-up-two.d.ts +4 -0
  88. package/dist/src/components/icons/assignments.d.ts +4 -0
  89. package/dist/src/components/icons/blank-circle.d.ts +4 -0
  90. package/dist/src/components/icons/block-filled.d.ts +6 -0
  91. package/dist/src/components/icons/calendar-add.d.ts +4 -0
  92. package/dist/src/components/icons/calendar.d.ts +4 -0
  93. package/dist/src/components/icons/checkbox-square.d.ts +4 -0
  94. package/dist/src/components/icons/circular-arrow-setting.d.ts +6 -0
  95. package/dist/src/components/icons/clock.d.ts +4 -0
  96. package/dist/src/components/icons/close.d.ts +6 -0
  97. package/dist/src/components/icons/coin-outline.d.ts +4 -0
  98. package/dist/src/components/icons/copy.d.ts +4 -0
  99. package/dist/src/components/icons/coupon.d.ts +4 -0
  100. package/dist/src/components/icons/cross-hire.d.ts +6 -0
  101. package/dist/src/components/icons/custom-styled-icon.d.ts +6 -0
  102. package/dist/src/components/icons/dashboard.d.ts +4 -0
  103. package/dist/src/components/icons/document-download.d.ts +4 -0
  104. package/dist/src/components/icons/document.d.ts +4 -0
  105. package/dist/src/components/icons/dollar-circle-filled.d.ts +6 -0
  106. package/dist/src/components/icons/dollar-circle.d.ts +4 -0
  107. package/dist/src/components/icons/edit.d.ts +4 -0
  108. package/dist/src/components/icons/email.d.ts +4 -0
  109. package/dist/src/components/icons/export.d.ts +6 -0
  110. package/dist/src/components/icons/eye-off.d.ts +4 -0
  111. package/dist/src/components/icons/eye-plus-circle.d.ts +6 -0
  112. package/dist/src/components/icons/eye.d.ts +4 -0
  113. package/dist/src/components/icons/filled-circle.d.ts +4 -0
  114. package/dist/src/components/icons/filter-remove.d.ts +4 -0
  115. package/dist/src/components/icons/filter.d.ts +4 -0
  116. package/dist/src/components/icons/folder-save.d.ts +4 -0
  117. package/dist/src/components/icons/grid.d.ts +4 -0
  118. package/dist/src/components/icons/hashtag.d.ts +4 -0
  119. package/dist/src/components/icons/image.d.ts +4 -0
  120. package/dist/src/components/icons/import.d.ts +4 -0
  121. package/dist/src/components/icons/info-circle.d.ts +4 -0
  122. package/dist/src/components/icons/info.d.ts +6 -0
  123. package/dist/src/components/icons/link-horizontal.d.ts +4 -0
  124. package/dist/src/components/icons/link.d.ts +4 -0
  125. package/dist/src/components/icons/location.d.ts +4 -0
  126. package/dist/src/components/icons/lowest-lead-time.d.ts +4 -0
  127. package/dist/src/components/icons/lowest-min-qty.d.ts +4 -0
  128. package/dist/src/components/icons/lowest-price.d.ts +4 -0
  129. package/dist/src/components/icons/more.d.ts +4 -0
  130. package/dist/src/components/icons/notification.d.ts +4 -0
  131. package/dist/src/components/icons/paper-clip.d.ts +4 -0
  132. package/dist/src/components/icons/paragraph.d.ts +4 -0
  133. package/dist/src/components/icons/payment-request.d.ts +6 -0
  134. package/dist/src/components/icons/phone.d.ts +4 -0
  135. package/dist/src/components/icons/printer.d.ts +4 -0
  136. package/dist/src/components/icons/process-calendar.d.ts +4 -0
  137. package/dist/src/components/icons/promotion.d.ts +6 -0
  138. package/dist/src/components/icons/radio-button.d.ts +4 -0
  139. package/dist/src/components/icons/receipt-filled.d.ts +6 -0
  140. package/dist/src/components/icons/receipt-outline.d.ts +4 -0
  141. package/dist/src/components/icons/receipt.d.ts +6 -0
  142. package/dist/src/components/icons/refresh-icon.d.ts +4 -0
  143. package/dist/src/components/icons/replace.d.ts +4 -0
  144. package/dist/src/components/icons/save.d.ts +6 -0
  145. package/dist/src/components/icons/search-status.d.ts +4 -0
  146. package/dist/src/components/icons/search.d.ts +4 -0
  147. package/dist/src/components/icons/settings-fallback.d.ts +7 -0
  148. package/dist/src/components/icons/sort-arrow-icon.d.ts +4 -0
  149. package/dist/src/components/icons/stacked-layer.d.ts +6 -0
  150. package/dist/src/components/icons/start-filled.d.ts +6 -0
  151. package/dist/src/components/icons/three-dot-icon.d.ts +4 -0
  152. package/dist/src/components/icons/tick-circle-filled.d.ts +6 -0
  153. package/dist/src/components/icons/tick-circle.d.ts +4 -0
  154. package/dist/src/components/icons/tick-octagon.d.ts +4 -0
  155. package/dist/src/components/icons/tick.d.ts +4 -0
  156. package/dist/src/components/icons/toggle-switch.d.ts +4 -0
  157. package/dist/src/components/icons/trash.d.ts +4 -0
  158. package/dist/src/components/icons/wave.d.ts +6 -0
  159. package/dist/src/components/icons/with-out-tick-octagon.d.ts +4 -0
  160. package/dist/src/components/icons/work-centre.d.ts +6 -0
  161. package/dist/src/components/index.d.ts +125 -0
  162. package/dist/{components → src/components}/location-select.d.ts +1 -1
  163. package/dist/{components → src/components}/material-table/material-table.d.ts +1 -1
  164. package/dist/{components → src/components}/phone-input/phone-input.d.ts +1 -1
  165. package/dist/src/components/radio/radio.d.ts +4 -0
  166. package/dist/src/components/select/select.d.ts +3 -0
  167. package/dist/src/components/switches/android-12-switch.d.ts +4 -0
  168. package/dist/src/components/text-field/text-field.d.ts +3 -0
  169. package/dist/{components → src/components}/time-picker/time-picker.d.ts +1 -1
  170. package/dist/{components → src/components}/upload-media/upload-media.d.ts +1 -1
  171. package/dist/src/constants/index.d.ts +13 -0
  172. package/dist/src/contexts/index.d.ts +5 -0
  173. package/dist/src/hooks/index.d.ts +16 -0
  174. package/dist/src/index.d.ts +138 -0
  175. package/dist/src/layout/index.d.ts +2 -0
  176. package/dist/src/redux/index.d.ts +9 -0
  177. package/dist/src/styles/index.d.ts +2 -0
  178. package/dist/src/theme/index.d.ts +4 -0
  179. package/dist/src/types/index.d.ts +100 -0
  180. package/dist/src/utils/index.d.ts +31 -0
  181. package/dist/src/views/index.d.ts +2 -0
  182. package/dist/style.css +0 -2
  183. package/dist/styles/index.d.ts +1 -1
  184. package/dist/utils/api/index.esm.js +4 -4
  185. package/dist/utils/api/index.esm.js.map +1 -1
  186. package/dist/utils/api/index.js +1 -1
  187. package/dist/utils/api/index.js.map +1 -1
  188. package/dist/utils/common/index.esm.js +6 -6
  189. package/dist/utils/common/index.esm.js.map +1 -1
  190. package/dist/utils/common/index.js +1 -1
  191. package/dist/utils/common/index.js.map +1 -1
  192. package/dist/utils/index.d.ts +1 -2
  193. package/dist/utils/index.esm.js +50 -54
  194. package/dist/utils/index.esm.js.map +1 -1
  195. package/dist/utils/index.js +1 -1
  196. package/dist/views/form-builder/redux/actionCreator/index.esm.js +1 -1
  197. package/dist/views/form-builder/redux/actionCreator/index.esm.js.map +1 -1
  198. package/dist/views/form-builder/redux/actionCreator/index.js +1 -1
  199. package/dist/views/form-builder/redux/actionCreator/index.js.map +1 -1
  200. package/dist/views/form-builder/redux/reducer/index.esm.js +0 -8
  201. package/dist/views/form-builder/redux/reducer/index.esm.js.map +1 -1
  202. package/dist/views/form-builder/redux/reducer/index.js +1 -1
  203. package/dist/views/form-builder/redux/reducer/index.js.map +1 -1
  204. package/dist/views/index.d.ts +1 -1
  205. package/dist/views/index.esm.js +0 -2
  206. package/dist/views/index.esm.js.map +1 -1
  207. package/dist/views/index.js +1 -1
  208. package/dist/views/template-editor/components/EditorSidebar/index.esm.js +1 -1
  209. package/dist/views/template-editor/components/EditorSidebar/index.esm.js.map +1 -1
  210. package/dist/views/template-editor/components/EditorSidebar/index.js +1 -1
  211. package/dist/views/template-editor/components/EditorSidebar/index.js.map +1 -1
  212. package/dist/views/template-editor/templates/index.esm.js +1 -1
  213. package/dist/views/template-editor/templates/index.esm.js.map +1 -1
  214. package/dist/views/template-editor/templates/index.js +1 -1
  215. package/dist/views/template-editor/templates/index.js.map +1 -1
  216. package/package.json +2 -1
  217. package/dist/_virtual/ArrowBack/index.esm.js +0 -5
  218. package/dist/_virtual/ArrowBack/index.esm.js.map +0 -1
  219. package/dist/_virtual/ArrowBack/index.js +0 -2
  220. package/dist/_virtual/ArrowBack/index.js.map +0 -1
  221. package/dist/_virtual/ArrowForward/index.esm.js +0 -5
  222. package/dist/_virtual/ArrowForward/index.esm.js.map +0 -1
  223. package/dist/_virtual/ArrowForward/index.js +0 -2
  224. package/dist/_virtual/ArrowForward/index.js.map +0 -1
  225. package/dist/_virtual/IndeterminateCheckBox/index.esm.js +0 -5
  226. package/dist/_virtual/IndeterminateCheckBox/index.esm.js.map +0 -1
  227. package/dist/_virtual/IndeterminateCheckBox/index.js +0 -2
  228. package/dist/_virtual/IndeterminateCheckBox/index.js.map +0 -1
  229. package/dist/_virtual/NorthEast/index.esm.js +0 -5
  230. package/dist/_virtual/NorthEast/index.esm.js.map +0 -1
  231. package/dist/_virtual/NorthEast/index.js +0 -2
  232. package/dist/_virtual/NorthEast/index.js.map +0 -1
  233. package/dist/_virtual/Visibility/index.esm.js +0 -5
  234. package/dist/_virtual/Visibility/index.esm.js.map +0 -1
  235. package/dist/_virtual/Visibility/index.js +0 -2
  236. package/dist/_virtual/Visibility/index.js.map +0 -1
  237. package/dist/components/charts/line-chart/area-line-chart/index.esm.js +0 -40
  238. package/dist/components/charts/line-chart/area-line-chart/index.esm.js.map +0 -1
  239. package/dist/components/charts/line-chart/area-line-chart/index.js +0 -2
  240. package/dist/components/charts/line-chart/area-line-chart/index.js.map +0 -1
  241. package/dist/components/checkbox/checkbox.d.ts +0 -4
  242. package/dist/components/filter/fields/index.esm.js +0 -180
  243. package/dist/components/filter/fields/index.esm.js.map +0 -1
  244. package/dist/components/filter/fields/index.js +0 -2
  245. package/dist/components/filter/fields/index.js.map +0 -1
  246. package/dist/components/form-control/form-builder/form-builder-element/media.d.ts +0 -4
  247. package/dist/components/form-control/form-builder/form-builder-element/phone.d.ts +0 -3
  248. package/dist/components/form-control/form-builder/form-builder-element/select.d.ts +0 -4
  249. package/dist/components/form-control/form-builder/form-builder-element/text.d.ts +0 -4
  250. package/dist/components/form-control/form-builder/form-builder-element/time.d.ts +0 -4
  251. package/dist/components/form-control/form-parser/form-switcher.d.ts +0 -2
  252. package/dist/components/icons/action-arrow.d.ts +0 -4
  253. package/dist/components/icons/add-circle.d.ts +0 -4
  254. package/dist/components/icons/arrow-bidirectional.d.ts +0 -4
  255. package/dist/components/icons/arrow-circle-down.d.ts +0 -4
  256. package/dist/components/icons/arrow-down-three.d.ts +0 -4
  257. package/dist/components/icons/arrow-down-two.d.ts +0 -4
  258. package/dist/components/icons/arrow-down.d.ts +0 -4
  259. package/dist/components/icons/arrow-up-down.d.ts +0 -4
  260. package/dist/components/icons/arrow-up-two.d.ts +0 -4
  261. package/dist/components/icons/assignments.d.ts +0 -4
  262. package/dist/components/icons/blank-circle.d.ts +0 -4
  263. package/dist/components/icons/block-filled.d.ts +0 -6
  264. package/dist/components/icons/calendar-add.d.ts +0 -4
  265. package/dist/components/icons/calendar.d.ts +0 -4
  266. package/dist/components/icons/checkbox-square.d.ts +0 -4
  267. package/dist/components/icons/circular-arrow-setting.d.ts +0 -6
  268. package/dist/components/icons/clock.d.ts +0 -4
  269. package/dist/components/icons/close.d.ts +0 -6
  270. package/dist/components/icons/coin-outline.d.ts +0 -4
  271. package/dist/components/icons/copy.d.ts +0 -4
  272. package/dist/components/icons/coupon.d.ts +0 -4
  273. package/dist/components/icons/cross-hire.d.ts +0 -6
  274. package/dist/components/icons/custom-styled-icon.d.ts +0 -6
  275. package/dist/components/icons/dashboard.d.ts +0 -4
  276. package/dist/components/icons/document-download.d.ts +0 -4
  277. package/dist/components/icons/document.d.ts +0 -4
  278. package/dist/components/icons/dollar-circle-filled.d.ts +0 -6
  279. package/dist/components/icons/dollar-circle.d.ts +0 -4
  280. package/dist/components/icons/edit.d.ts +0 -4
  281. package/dist/components/icons/email.d.ts +0 -4
  282. package/dist/components/icons/export.d.ts +0 -6
  283. package/dist/components/icons/eye-off.d.ts +0 -4
  284. package/dist/components/icons/eye-plus-circle.d.ts +0 -6
  285. package/dist/components/icons/eye.d.ts +0 -4
  286. package/dist/components/icons/filled-circle.d.ts +0 -4
  287. package/dist/components/icons/filter-remove.d.ts +0 -4
  288. package/dist/components/icons/filter.d.ts +0 -4
  289. package/dist/components/icons/folder-save.d.ts +0 -4
  290. package/dist/components/icons/grid.d.ts +0 -4
  291. package/dist/components/icons/hashtag.d.ts +0 -4
  292. package/dist/components/icons/image.d.ts +0 -4
  293. package/dist/components/icons/import.d.ts +0 -4
  294. package/dist/components/icons/info-circle.d.ts +0 -4
  295. package/dist/components/icons/info.d.ts +0 -6
  296. package/dist/components/icons/link-horizontal.d.ts +0 -4
  297. package/dist/components/icons/link.d.ts +0 -4
  298. package/dist/components/icons/location.d.ts +0 -4
  299. package/dist/components/icons/lowest-lead-time.d.ts +0 -4
  300. package/dist/components/icons/lowest-min-qty.d.ts +0 -4
  301. package/dist/components/icons/lowest-price.d.ts +0 -4
  302. package/dist/components/icons/more.d.ts +0 -4
  303. package/dist/components/icons/notification.d.ts +0 -4
  304. package/dist/components/icons/paper-clip.d.ts +0 -4
  305. package/dist/components/icons/paragraph.d.ts +0 -4
  306. package/dist/components/icons/payment-request.d.ts +0 -6
  307. package/dist/components/icons/phone.d.ts +0 -4
  308. package/dist/components/icons/printer.d.ts +0 -4
  309. package/dist/components/icons/process-calendar.d.ts +0 -4
  310. package/dist/components/icons/promotion.d.ts +0 -6
  311. package/dist/components/icons/radio-button.d.ts +0 -4
  312. package/dist/components/icons/receipt-filled.d.ts +0 -6
  313. package/dist/components/icons/receipt-outline.d.ts +0 -4
  314. package/dist/components/icons/receipt.d.ts +0 -6
  315. package/dist/components/icons/refresh-icon.d.ts +0 -4
  316. package/dist/components/icons/replace.d.ts +0 -4
  317. package/dist/components/icons/save.d.ts +0 -6
  318. package/dist/components/icons/search-status.d.ts +0 -4
  319. package/dist/components/icons/search.d.ts +0 -4
  320. package/dist/components/icons/settings-fallback.d.ts +0 -7
  321. package/dist/components/icons/sort-arrow-icon.d.ts +0 -4
  322. package/dist/components/icons/stacked-layer.d.ts +0 -6
  323. package/dist/components/icons/start-filled.d.ts +0 -6
  324. package/dist/components/icons/three-dot-icon.d.ts +0 -4
  325. package/dist/components/icons/tick-circle-filled.d.ts +0 -6
  326. package/dist/components/icons/tick-circle.d.ts +0 -4
  327. package/dist/components/icons/tick-octagon.d.ts +0 -4
  328. package/dist/components/icons/tick.d.ts +0 -4
  329. package/dist/components/icons/toggle-switch.d.ts +0 -4
  330. package/dist/components/icons/trash.d.ts +0 -4
  331. package/dist/components/icons/wave.d.ts +0 -6
  332. package/dist/components/icons/with-out-tick-octagon.d.ts +0 -4
  333. package/dist/components/icons/work-centre.d.ts +0 -6
  334. package/dist/components/material-editable-table/components/inline-edit-fields/index.esm.js +0 -312
  335. package/dist/components/material-editable-table/components/inline-edit-fields/index.esm.js.map +0 -1
  336. package/dist/components/material-editable-table/components/inline-edit-fields/index.js +0 -4
  337. package/dist/components/material-editable-table/components/inline-edit-fields/index.js.map +0 -1
  338. package/dist/components/material-editable-table/material-editable-table/index.esm.js +0 -1164
  339. package/dist/components/material-editable-table/material-editable-table/index.esm.js.map +0 -1
  340. package/dist/components/material-editable-table/material-editable-table/index.js +0 -28
  341. package/dist/components/material-editable-table/material-editable-table/index.js.map +0 -1
  342. package/dist/components/material-editable-table/material-editable-table.d.ts +0 -40
  343. package/dist/components/material-table/aggregation-fns/index.d.ts +0 -13
  344. package/dist/components/material-table/components/default-aggregation.d.ts +0 -9
  345. package/dist/components/material-table/components/header-cell.d.ts +0 -5
  346. package/dist/components/material-table/components/inline-edit-fields.d.ts +0 -17
  347. package/dist/components/material-table/components/number-aggregation/index.esm.js +0 -133
  348. package/dist/components/material-table/components/number-aggregation/index.esm.js.map +0 -1
  349. package/dist/components/material-table/components/number-aggregation/index.js +0 -5
  350. package/dist/components/material-table/components/number-aggregation/index.js.map +0 -1
  351. package/dist/components/material-table/components/number-aggregation.d.ts +0 -9
  352. package/dist/components/radio/radio.d.ts +0 -4
  353. package/dist/components/select/select.d.ts +0 -3
  354. package/dist/components/switches/android-12-switch.d.ts +0 -2
  355. package/dist/components/text-field/text-field.d.ts +0 -3
  356. package/dist/node_modules/@mui/icons-material/ArrowBack/index.esm.js +0 -18
  357. package/dist/node_modules/@mui/icons-material/ArrowBack/index.esm.js.map +0 -1
  358. package/dist/node_modules/@mui/icons-material/ArrowBack/index.js +0 -2
  359. package/dist/node_modules/@mui/icons-material/ArrowBack/index.js.map +0 -1
  360. package/dist/node_modules/@mui/icons-material/ArrowForward/index.esm.js +0 -18
  361. package/dist/node_modules/@mui/icons-material/ArrowForward/index.esm.js.map +0 -1
  362. package/dist/node_modules/@mui/icons-material/ArrowForward/index.js +0 -2
  363. package/dist/node_modules/@mui/icons-material/ArrowForward/index.js.map +0 -1
  364. package/dist/node_modules/@mui/icons-material/IndeterminateCheckBox/index.esm.js +0 -18
  365. package/dist/node_modules/@mui/icons-material/IndeterminateCheckBox/index.esm.js.map +0 -1
  366. package/dist/node_modules/@mui/icons-material/IndeterminateCheckBox/index.js +0 -2
  367. package/dist/node_modules/@mui/icons-material/IndeterminateCheckBox/index.js.map +0 -1
  368. package/dist/node_modules/@mui/icons-material/NorthEast/index.esm.js +0 -18
  369. package/dist/node_modules/@mui/icons-material/NorthEast/index.esm.js.map +0 -1
  370. package/dist/node_modules/@mui/icons-material/NorthEast/index.js +0 -2
  371. package/dist/node_modules/@mui/icons-material/NorthEast/index.js.map +0 -1
  372. package/dist/node_modules/@mui/icons-material/Visibility/index.esm.js +0 -18
  373. package/dist/node_modules/@mui/icons-material/Visibility/index.esm.js.map +0 -1
  374. package/dist/node_modules/@mui/icons-material/Visibility/index.js +0 -2
  375. package/dist/node_modules/@mui/icons-material/Visibility/index.js.map +0 -1
  376. package/dist/utils/fileSize/index.esm.js +0 -22
  377. package/dist/utils/fileSize/index.esm.js.map +0 -1
  378. package/dist/utils/fileSize/index.js +0 -2
  379. package/dist/utils/fileSize/index.js.map +0 -1
  380. package/dist/views/beforeAuth/components/activity-tag-data/activity-tag-data/index.esm.js +0 -48
  381. package/dist/views/beforeAuth/components/activity-tag-data/activity-tag-data/index.esm.js.map +0 -1
  382. package/dist/views/beforeAuth/components/activity-tag-data/activity-tag-data/index.js +0 -2
  383. package/dist/views/beforeAuth/components/activity-tag-data/activity-tag-data/index.js.map +0 -1
  384. package/dist/views/beforeAuth/components/calendar-data/calendar-data/index.esm.js +0 -50
  385. package/dist/views/beforeAuth/components/calendar-data/calendar-data/index.esm.js.map +0 -1
  386. package/dist/views/beforeAuth/components/calendar-data/calendar-data/index.js +0 -2
  387. package/dist/views/beforeAuth/components/calendar-data/calendar-data/index.js.map +0 -1
  388. package/dist/views/beforeAuth/components/gantt-data/gantt-data/index.esm.js +0 -57
  389. package/dist/views/beforeAuth/components/gantt-data/gantt-data/index.esm.js.map +0 -1
  390. package/dist/views/beforeAuth/components/gantt-data/gantt-data/index.js +0 -2
  391. package/dist/views/beforeAuth/components/gantt-data/gantt-data/index.js.map +0 -1
  392. package/dist/views/beforeAuth/components/grid-data/grid-data/index.esm.js +0 -41
  393. package/dist/views/beforeAuth/components/grid-data/grid-data/index.esm.js.map +0 -1
  394. package/dist/views/beforeAuth/components/grid-data/grid-data/index.js +0 -2
  395. package/dist/views/beforeAuth/components/grid-data/grid-data/index.js.map +0 -1
  396. package/dist/views/beforeAuth/components/index/index.esm.js +0 -1144
  397. package/dist/views/beforeAuth/components/index/index.esm.js.map +0 -1
  398. package/dist/views/beforeAuth/components/index/index.js +0 -206
  399. package/dist/views/beforeAuth/components/index/index.js.map +0 -1
  400. package/dist/views/beforeAuth/components/kanbann-content/kanbann-raw/index.esm.js +0 -72
  401. package/dist/views/beforeAuth/components/kanbann-content/kanbann-raw/index.esm.js.map +0 -1
  402. package/dist/views/beforeAuth/components/kanbann-content/kanbann-raw/index.js +0 -2
  403. package/dist/views/beforeAuth/components/kanbann-content/kanbann-raw/index.js.map +0 -1
  404. package/dist/views/beforeAuth/components/list-content/column-raw/index.esm.js +0 -54
  405. package/dist/views/beforeAuth/components/list-content/column-raw/index.esm.js.map +0 -1
  406. package/dist/views/beforeAuth/components/list-content/column-raw/index.js +0 -2
  407. package/dist/views/beforeAuth/components/list-content/column-raw/index.js.map +0 -1
  408. package/dist/views/beforeAuth/components/list-content/list-data/index.esm.js +0 -61
  409. package/dist/views/beforeAuth/components/list-content/list-data/index.esm.js.map +0 -1
  410. package/dist/views/beforeAuth/components/list-content/list-data/index.js +0 -2
  411. package/dist/views/beforeAuth/components/list-content/list-data/index.js.map +0 -1
  412. package/dist/views/beforeAuth/components/multiline-data/multiline-data/index.esm.js +0 -21
  413. package/dist/views/beforeAuth/components/multiline-data/multiline-data/index.esm.js.map +0 -1
  414. package/dist/views/beforeAuth/components/multiline-data/multiline-data/index.js +0 -2
  415. package/dist/views/beforeAuth/components/multiline-data/multiline-data/index.js.map +0 -1
  416. package/dist/views/beforeAuth/components/tabs-data/tabs-data/index.esm.js +0 -21
  417. package/dist/views/beforeAuth/components/tabs-data/tabs-data/index.esm.js.map +0 -1
  418. package/dist/views/beforeAuth/components/tabs-data/tabs-data/index.js +0 -2
  419. package/dist/views/beforeAuth/components/tabs-data/tabs-data/index.js.map +0 -1
  420. package/dist/views/beforeAuth/components/user-dropdown-data/user-dropdown-data/index.esm.js +0 -306
  421. package/dist/views/beforeAuth/components/user-dropdown-data/user-dropdown-data/index.esm.js.map +0 -1
  422. package/dist/views/beforeAuth/components/user-dropdown-data/user-dropdown-data/index.js +0 -2
  423. package/dist/views/beforeAuth/components/user-dropdown-data/user-dropdown-data/index.js.map +0 -1
  424. package/dist/{@types → src/@types}/common.d.ts +0 -0
  425. package/dist/{@types → src/@types}/page.d.ts +0 -0
  426. package/dist/{@types → src/@types}/pagination-model.d.ts +0 -0
  427. package/dist/{assets → src/assets}/dynamic-svg-icon/dynamic-svg-icon.d.ts +0 -0
  428. package/dist/{assets → src/assets}/images.d.ts +0 -0
  429. package/dist/{assets → src/assets}/view-modal/calendar-icon.d.ts +0 -0
  430. package/dist/{assets → src/assets}/view-modal/chart-icon.d.ts +0 -0
  431. package/dist/{assets → src/assets}/view-modal/gantt-icon.d.ts +0 -0
  432. package/dist/{assets → src/assets}/view-modal/grid-icon.d.ts +0 -0
  433. package/dist/{assets → src/assets}/view-modal/kanban-icon.d.ts +0 -0
  434. package/dist/{assets → src/assets}/view-modal/table-icon.d.ts +0 -0
  435. package/dist/{components → src/components}/Dashboard/dashboard-card.d.ts +0 -0
  436. package/dist/{components → src/components}/Dashboard/dashboard-header.d.ts +0 -0
  437. package/dist/{components → src/components}/activity-tag/activity-tag.d.ts +0 -0
  438. package/dist/{components → src/components}/activityArea/activityArea.d.ts +0 -0
  439. package/dist/{components → src/components}/activityLog/activity-log.d.ts +0 -0
  440. package/dist/{components → src/components}/alert/alert.d.ts +0 -0
  441. package/dist/{components → src/components}/appbar/appbar.d.ts +0 -0
  442. package/dist/{components → src/components}/approval-wrapper/approval-wrapper.d.ts +0 -0
  443. package/dist/{components → src/components}/avatar/avatar.d.ts +0 -0
  444. package/dist/{components → src/components}/board/board.d.ts +0 -0
  445. package/dist/{components → src/components}/board/columnHeader.d.ts +0 -0
  446. package/dist/{components → src/components}/bread-crumb/bread-crumb.d.ts +0 -0
  447. package/dist/{components → src/components}/button/button.d.ts +0 -0
  448. package/dist/{components → src/components}/calculation-summary/calculation-summary.d.ts +0 -0
  449. package/dist/{components → src/components}/calculation-summary/components/discount-summary.d.ts +0 -0
  450. package/dist/{components → src/components}/calculation-summary/components/items-summary.d.ts +0 -0
  451. package/dist/{components → src/components}/calculation-summary/components/subtotal-summary.d.ts +0 -0
  452. package/dist/{components → src/components}/calculation-summary/components/taxes-and-charges-summary.d.ts +0 -0
  453. package/dist/{components → src/components}/calculation-summary/components/total-summary.d.ts +0 -0
  454. package/dist/{components → src/components}/calendar/calendar.d.ts +0 -0
  455. package/dist/{components → src/components}/card-wrapper/card-wrapper.d.ts +0 -0
  456. package/dist/{components → src/components}/change-user-password-modal/change-user-password-modal.d.ts +0 -0
  457. package/dist/{components → src/components}/charts/ChartLegends.d.ts +0 -0
  458. package/dist/{components → src/components}/charts/areaLinerChart.d.ts +0 -0
  459. package/dist/{components → src/components}/charts/bar-chart/bar-chart.d.ts +0 -0
  460. package/dist/{components → src/components}/charts/barChart/barChart.d.ts +0 -0
  461. package/dist/{components → src/components}/charts/barLineChart/barLinechart.d.ts +0 -0
  462. package/dist/{components → src/components}/charts/donut-chart/donut-chart.d.ts +0 -0
  463. package/dist/{components → src/components}/charts/donutChart/DonutChart.d.ts +0 -0
  464. package/dist/{components → src/components}/charts/groupBarChart/GroupBarChart.d.ts +0 -0
  465. package/dist/{components → src/components}/charts/line-chart/area-line-chart.d.ts +0 -0
  466. package/dist/{components → src/components}/charts/line-chart/area-lineChart.d.ts +0 -0
  467. package/dist/{components → src/components}/charts/line-chart/line-chart.d.ts +0 -0
  468. package/dist/{components → src/components}/charts/multiLineChart/multi-line-chart.d.ts +0 -0
  469. package/dist/{components → src/components}/chip/chip.d.ts +0 -0
  470. package/dist/{components → src/components}/chip-generator/chip-generator.d.ts +0 -0
  471. package/dist/{components → src/components}/color-picker-input/color-picker-input.d.ts +0 -0
  472. package/dist/{components → src/components}/confirm-modal/confirm-modal.d.ts +0 -0
  473. package/dist/{components → src/components}/country-select/country-select.d.ts +0 -0
  474. package/dist/{components → src/components}/custom-snackbar/custom-snackbar.d.ts +0 -0
  475. package/dist/{components → src/components}/custom-toggle-switch/custom-toggle-switch.d.ts +0 -0
  476. package/dist/{components → src/components}/date-range-picker/date-range-picker.d.ts +0 -0
  477. package/dist/{components → src/components}/date-time-picker/date-time-picker.d.ts +0 -0
  478. package/dist/{components → src/components}/dropdown-button/dropdown-button.d.ts +0 -0
  479. package/dist/{components → src/components}/dynamic-layout-wrapper/dynamic-layout-wrapper.d.ts +0 -0
  480. package/dist/{components → src/components}/dynamic-modal.d.ts +0 -0
  481. package/dist/{components → src/components}/editor/custom-editor.d.ts +0 -0
  482. package/dist/{components → src/components}/entity-view-wrapper/entity-view-wrapper.d.ts +0 -0
  483. package/dist/{components → src/components}/examples/FlexibleReduxExample.d.ts +0 -0
  484. package/dist/{components → src/components}/expandable-summary-wrapper/expandable-summary-wrapper.d.ts +0 -0
  485. package/dist/{components → src/components}/fallback/fallback.d.ts +0 -0
  486. package/dist/{components → src/components}/filter/components/add-filter.d.ts +0 -0
  487. package/dist/{components → src/components}/filter/components/add-group.d.ts +0 -0
  488. package/dist/{components → src/components}/filter/components/combinator-select.d.ts +0 -0
  489. package/dist/{components → src/components}/filter/components/delete-group.d.ts +0 -0
  490. package/dist/{components → src/components}/filter/components/field-select.d.ts +0 -0
  491. package/dist/{components → src/components}/filter/components/operator-select.d.ts +0 -0
  492. package/dist/{components → src/components}/filter/components/remove-action.d.ts +0 -0
  493. package/dist/{components → src/components}/filter/components/value-editor.d.ts +0 -0
  494. package/dist/{components → src/components}/filter/fields.d.ts +0 -0
  495. package/dist/{components → src/components}/filter/filter.d.ts +0 -0
  496. package/dist/{components → src/components}/footer.d.ts +0 -0
  497. package/dist/{components → src/components}/form-control/form-builder/element-controller.d.ts +0 -0
  498. package/dist/{components → src/components}/form-control/form-builder/form-builder-element/button.d.ts +0 -0
  499. package/dist/{components → src/components}/form-control/form-builder/form-builder-element/checkbox.d.ts +0 -0
  500. package/dist/{components → src/components}/form-control/form-builder/form-builder-element/chip-or-placeholder.d.ts +0 -0
  501. package/dist/{components → src/components}/form-control/form-builder/form-builder-element/date-range-picker.d.ts +0 -0
  502. package/dist/{components → src/components}/form-control/form-builder/form-builder-element/date-time.d.ts +0 -0
  503. package/dist/{components → src/components}/form-control/form-builder/form-builder-element/date.d.ts +0 -0
  504. package/dist/{components → src/components}/form-control/form-builder/form-builder-element/dynamic-currency-input.d.ts +0 -0
  505. package/dist/{components → src/components}/form-control/form-builder/form-builder-element/dynamic-element-hoc.d.ts +0 -0
  506. package/dist/{components → src/components}/form-control/form-builder/form-builder-element/dynamic-input-select.d.ts +0 -0
  507. package/dist/{components → src/components}/form-control/form-builder/form-builder-element/dynamic-select.d.ts +0 -0
  508. package/dist/{components → src/components}/form-control/form-builder/form-builder-element/dynamic-tags-input.d.ts +0 -0
  509. package/dist/{components → src/components}/form-control/form-builder/form-builder-element/dynamic-text-editor.d.ts +0 -0
  510. package/dist/{components → src/components}/form-control/form-builder/form-builder-element/index.d.ts +0 -0
  511. package/dist/{components → src/components}/form-control/form-builder/form-builder-element/info.d.ts +0 -0
  512. package/dist/{components → src/components}/form-control/form-builder/form-builder-element/location-add-modal/location-add-modal.d.ts +0 -0
  513. package/dist/{components → src/components}/form-control/form-builder/form-builder-element/number-input.d.ts +0 -0
  514. package/dist/{components → src/components}/form-control/form-builder/form-builder-element/radio-button.d.ts +0 -0
  515. package/dist/{components → src/components}/form-control/form-builder/form-builder-element/section.d.ts +0 -0
  516. package/dist/{components → src/components}/form-control/form-builder/form-builder-element/select-configuration.d.ts +0 -0
  517. package/dist/{components → src/components}/form-control/form-builder/form-builder-element/table.d.ts +0 -0
  518. package/dist/{components → src/components}/form-control/form-builder/form-builder-element/toggle-button.d.ts +0 -0
  519. package/dist/{components → src/components}/form-control/form-parser/data.d.ts +0 -0
  520. package/dist/{components → src/components}/form-control/form-parser/form-parser.d.ts +0 -0
  521. package/dist/{components → src/components}/form-control/form-parser/form-section.d.ts +0 -0
  522. package/dist/{components → src/components}/form-control/index.d.ts +0 -0
  523. package/dist/{components → src/components}/form-header/form-header.d.ts +0 -0
  524. package/dist/{components → src/components}/gantt/gantt.d.ts +0 -0
  525. package/dist/{components → src/components}/grid/custom-grid-card/custom-grid-card.d.ts +0 -0
  526. package/dist/{components → src/components}/grid/grid-card/grid-card.d.ts +0 -0
  527. package/dist/{components → src/components}/grid/grid-wrapper/grid-wrapper.d.ts +0 -0
  528. package/dist/{components → src/components}/grid-fallback/grid-fallback.d.ts +0 -0
  529. package/dist/{components → src/components}/header/components/notification-menu/notification-menu.d.ts +0 -0
  530. package/dist/{components → src/components}/header/header-enhanced.d.ts +0 -0
  531. package/dist/{components → src/components}/header/header.d.ts +0 -0
  532. package/dist/{components → src/components}/header/redux/actionCreator.d.ts +0 -0
  533. package/dist/{components → src/components}/header/redux/reducer.d.ts +0 -0
  534. package/dist/{components → src/components}/header/redux/state.d.ts +0 -0
  535. package/dist/{components → src/components}/header copy.d.ts +0 -0
  536. package/dist/{components → src/components}/header-card/header-card.d.ts +0 -0
  537. package/dist/{components → src/components}/hr-line/hr-line.d.ts +0 -0
  538. package/dist/{components → src/components}/icons/check-box.d.ts +0 -0
  539. package/dist/{components → src/components}/icons/index.d.ts +0 -0
  540. package/dist/{components → src/components}/icons/rectangle-filled.d.ts +0 -0
  541. package/dist/{components → src/components}/icons/rectangle.d.ts +0 -0
  542. package/dist/{components → src/components}/info-card/info-card.d.ts +0 -0
  543. package/dist/{components → src/components}/inventory-reports-title-bar/component/reportFilter.d.ts +0 -0
  544. package/dist/{components → src/components}/inventory-reports-title-bar/inventory-reports-title-bar.d.ts +0 -0
  545. package/dist/{components → src/components}/inventory-reports-title-bar/redux/actionCreator.d.ts +0 -0
  546. package/dist/{components → src/components}/inventory-reports-title-bar/redux/reducer.d.ts +0 -0
  547. package/dist/{components → src/components}/inventory-reports-title-bar/redux/state.d.ts +0 -0
  548. package/dist/{components → src/components}/inventory-reports-title-bar/report-buttons/report-buttons.d.ts +0 -0
  549. package/dist/{components → src/components}/list/list.d.ts +0 -0
  550. package/dist/{components → src/components}/loader.d.ts +0 -0
  551. package/dist/{components → src/components}/loaders/erp-loader.d.ts +0 -0
  552. package/dist/{components → src/components}/loaders/form-loader.d.ts +0 -0
  553. package/dist/{components → src/components}/loaders/index.d.ts +0 -0
  554. package/dist/{components → src/components}/loaders/modal-loader.d.ts +0 -0
  555. package/dist/{components → src/components}/loaders/page-loader.d.ts +0 -0
  556. package/dist/{components/material-editable-table → src/components/material-table}/aggregation-fns/index.d.ts +0 -0
  557. package/dist/{components/material-editable-table → src/components/material-table}/components/default-aggregation.d.ts +0 -0
  558. package/dist/{components/material-editable-table → src/components/material-table}/components/header-cell.d.ts +0 -0
  559. package/dist/{components/material-editable-table → src/components/material-table}/components/inline-edit-fields.d.ts +0 -0
  560. package/dist/{components/material-editable-table → src/components/material-table}/components/number-aggregation.d.ts +0 -0
  561. package/dist/{components → src/components}/menu/menu.d.ts +0 -0
  562. package/dist/{components → src/components}/modal/modal.d.ts +0 -0
  563. package/dist/{components → src/components}/module-button/module-button.d.ts +0 -0
  564. package/dist/{components → src/components}/mulitline/multiline.d.ts +0 -0
  565. package/dist/{components → src/components}/multi-select/multi-select.d.ts +0 -0
  566. package/dist/{components → src/components}/page-navigator/components/add-page-modal.d.ts +0 -0
  567. package/dist/{components → src/components}/page-navigator/components/add-page.d.ts +0 -0
  568. package/dist/{components → src/components}/page-navigator/components/page-action.d.ts +0 -0
  569. package/dist/{components → src/components}/page-navigator/components/shared-page-modal.d.ts +0 -0
  570. package/dist/{components → src/components}/page-navigator/components/shared-page-view.d.ts +0 -0
  571. package/dist/{components → src/components}/page-navigator/page-navigator.d.ts +0 -0
  572. package/dist/{components → src/components}/pagination/pagination.d.ts +0 -0
  573. package/dist/{components → src/components}/parties-modal/parties-modal.d.ts +0 -0
  574. package/dist/{components → src/components}/parties-modal/utils/constant.d.ts +0 -0
  575. package/dist/{components → src/components}/parties-modal/validator.d.ts +0 -0
  576. package/dist/{components → src/components}/protected-route.d.ts +0 -0
  577. package/dist/{components → src/components}/providers/ERPUIProvider.d.ts +0 -0
  578. package/dist/{components → src/components}/providers/index.d.ts +0 -0
  579. package/dist/{components → src/components}/quick-approval-modal/quick-approval-modal.d.ts +0 -0
  580. package/dist/{components → src/components}/reports/dynamic-report/dynamic-report.d.ts +0 -0
  581. package/dist/{components → src/components}/reports/dynamic-report/dynamic-rows.d.ts +0 -0
  582. package/dist/{components → src/components}/reports-title-bar/redux/actionCreator.d.ts +0 -0
  583. package/dist/{components → src/components}/reports-title-bar/redux/reducer.d.ts +0 -0
  584. package/dist/{components → src/components}/reports-title-bar/redux/state.d.ts +0 -0
  585. package/dist/{components → src/components}/reports-title-bar/report-buttons/report-buttons.d.ts +0 -0
  586. package/dist/{components → src/components}/reports-title-bar/reports-title-bar.d.ts +0 -0
  587. package/dist/{components → src/components}/reset-password-modal/reset-password-modal.d.ts +0 -0
  588. package/dist/{components → src/components}/rfq-response/item-response-details.d.ts +0 -0
  589. package/dist/{components → src/components}/save-filter-modal/save-filter-modal.d.ts +0 -0
  590. package/dist/{components → src/components}/schedule-report/schedule-report-modal.d.ts +0 -0
  591. package/dist/{components → src/components}/schedule-report/schedule-report.d.ts +0 -0
  592. package/dist/{components → src/components}/schedule-report/utils/common.d.ts +0 -0
  593. package/dist/{components → src/components}/schedule-report/utils/constant.d.ts +0 -0
  594. package/dist/{components → src/components}/schedule-report/utils/type.d.ts +0 -0
  595. package/dist/{components → src/components}/schedule-report/validator.d.ts +0 -0
  596. package/dist/{components → src/components}/search-bar/search-bar.d.ts +0 -0
  597. package/dist/{components → src/components}/searchable-select.d.ts +0 -0
  598. package/dist/{components → src/components}/select/controller/chip-or-placeholder.d.ts +0 -0
  599. package/dist/{components → src/components}/select/controller/controller-select.d.ts +0 -0
  600. package/dist/{components → src/components}/select/select-search.d.ts +0 -0
  601. package/dist/{components → src/components}/share-modal/redux/actionCreator.d.ts +0 -0
  602. package/dist/{components → src/components}/share-modal/redux/reducer.d.ts +0 -0
  603. package/dist/{components → src/components}/share-modal/redux/state.d.ts +0 -0
  604. package/dist/{components → src/components}/share-modal/share-modal-enhanced.d.ts +0 -0
  605. package/dist/{components → src/components}/share-modal/share-modal.d.ts +0 -0
  606. package/dist/{components → src/components}/sidebar/sidebar.d.ts +0 -0
  607. package/dist/{components → src/components}/snackbar/snackbar.d.ts +0 -0
  608. package/dist/{components → src/components}/sub-header-doc/sub-header-doc.d.ts +0 -0
  609. package/dist/{components → src/components}/tab-bar-ui/tab-bar-ui.d.ts +0 -0
  610. package/dist/{components → src/components}/tabs/tabs.d.ts +0 -0
  611. package/dist/{components → src/components}/text-area/text-area.d.ts +0 -0
  612. package/dist/{components → src/components}/time-range-picker/time-range-picker.d.ts +0 -0
  613. package/dist/{components → src/components}/title-dropdown-button/title-dropdown-button.d.ts +0 -0
  614. package/dist/{components → src/components}/toast/toast.d.ts +0 -0
  615. package/dist/{components → src/components}/toggle/toggle.d.ts +0 -0
  616. package/dist/{components → src/components}/toggle-switch/toggle-switch.d.ts +0 -0
  617. package/dist/{components → src/components}/tooltip/Tooltip.d.ts +0 -0
  618. package/dist/{components → src/components}/typography/typography.d.ts +0 -0
  619. package/dist/{components → src/components}/upload/file-confirmation.d.ts +0 -0
  620. package/dist/{components → src/components}/upload/upload.d.ts +0 -0
  621. package/dist/{components → src/components}/upload-excel/file-confirmation.d.ts +0 -0
  622. package/dist/{components → src/components}/upload-excel/upload-excel.d.ts +0 -0
  623. package/dist/{components → src/components}/user-dropdown/user-dropdown.d.ts +0 -0
  624. package/dist/{components → src/components}/value-field/value-field.d.ts +0 -0
  625. package/dist/{components → src/components}/view-modal/view-modal.d.ts +0 -0
  626. package/dist/{config → src/config}/index.d.ts +0 -0
  627. package/dist/{constants → src/constants}/action-bar.d.ts +0 -0
  628. package/dist/{constants → src/constants}/all-language.d.ts +0 -0
  629. package/dist/{constants → src/constants}/auth.d.ts +0 -0
  630. package/dist/{constants → src/constants}/common.d.ts +0 -0
  631. package/dist/{constants → src/constants}/defaultColumns.d.ts +0 -0
  632. package/dist/{constants → src/constants}/lang/ar.d.ts +0 -0
  633. package/dist/{constants → src/constants}/lang/en.d.ts +0 -0
  634. package/dist/{constants → src/constants}/lang/es.d.ts +0 -0
  635. package/dist/{constants → src/constants}/modules.d.ts +0 -0
  636. package/dist/{constants → src/constants}/mui.constants.d.ts +0 -0
  637. package/dist/{constants → src/constants}/pathnames/index.d.ts +0 -0
  638. package/dist/{constants → src/constants}/pathnames/pathname.accounting.d.ts +0 -0
  639. package/dist/{constants → src/constants}/pathnames/pathname.crm.d.ts +0 -0
  640. package/dist/{constants → src/constants}/pathnames/pathname.d.ts +0 -0
  641. package/dist/{constants → src/constants}/pathnames/pathname.document.d.ts +0 -0
  642. package/dist/{constants → src/constants}/pathnames/pathname.hrms.d.ts +0 -0
  643. package/dist/{constants → src/constants}/pathnames/pathname.inventory.d.ts +0 -0
  644. package/dist/{constants → src/constants}/pathnames/pathname.manufacturing.d.ts +0 -0
  645. package/dist/{constants → src/constants}/pathnames/pathname.office.d.ts +0 -0
  646. package/dist/{constants → src/constants}/pathnames/pathname.procurement.d.ts +0 -0
  647. package/dist/{constants → src/constants}/pathnames/pathname.project.d.ts +0 -0
  648. package/dist/{constants → src/constants}/pathnames/pathname.quotes.d.ts +0 -0
  649. package/dist/{constants → src/constants}/pathnames/pathname.rental.d.ts +0 -0
  650. package/dist/{constants → src/constants}/pathnames/pathname.user.d.ts +0 -0
  651. package/dist/{constants → src/constants}/resource-lang.d.ts +0 -0
  652. package/dist/{constants → src/constants}/route-page-map.d.ts +0 -0
  653. package/dist/{constants → src/constants}/status.d.ts +0 -0
  654. package/dist/{contexts → src/contexts}/AuthContext.d.ts +0 -0
  655. package/dist/{contexts → src/contexts}/languageContext.d.ts +0 -0
  656. package/dist/{contexts → src/contexts}/page-context.d.ts +0 -0
  657. package/dist/{contexts → src/contexts}/permission-context.d.ts +0 -0
  658. package/dist/{hooks → src/hooks}/apiHelper.d.ts +0 -0
  659. package/dist/{hooks → src/hooks}/common.d.ts +0 -0
  660. package/dist/{hooks → src/hooks}/use-deep-memo.d.ts +0 -0
  661. package/dist/{hooks → src/hooks}/use-material-calculations.d.ts +0 -0
  662. package/dist/{hooks → src/hooks}/use-translations.d.ts +0 -0
  663. package/dist/{hooks → src/hooks}/useCheckSkuAndName.d.ts +0 -0
  664. package/dist/{hooks → src/hooks}/useDataFetcher.d.ts +0 -0
  665. package/dist/{hooks → src/hooks}/useLanguageFallback.d.ts +0 -0
  666. package/dist/{hooks → src/hooks}/useLocationFilter.d.ts +0 -0
  667. package/dist/{hooks → src/hooks}/useReduxIntegration.d.ts +0 -0
  668. package/dist/{layout → src/layout}/fullScreen/fullScreen.d.ts +0 -0
  669. package/dist/{layout → src/layout}/sidebarScreen/sidebarScreen.d.ts +0 -0
  670. package/dist/{redux → src/redux}/actionCreator.d.ts +0 -0
  671. package/dist/{redux → src/redux}/apiConfig.d.ts +0 -0
  672. package/dist/{redux → src/redux}/hooks.d.ts +0 -0
  673. package/dist/{redux → src/redux}/module-reducer.d.ts +0 -0
  674. package/dist/{redux → src/redux}/slices/headerSlice.d.ts +0 -0
  675. package/dist/{redux → src/redux}/slices/index.d.ts +0 -0
  676. package/dist/{redux → src/redux}/slices/inventoryReportsTitleBarSlice.d.ts +0 -0
  677. package/dist/{redux → src/redux}/slices/reportsTitleBarSlice.d.ts +0 -0
  678. package/dist/{redux → src/redux}/slices/shareSlice.d.ts +0 -0
  679. package/dist/{redux → src/redux}/toolkit.d.ts +0 -0
  680. package/dist/{redux → src/redux}/types.d.ts +0 -0
  681. package/dist/{server.d.ts → src/server.d.ts} +0 -0
  682. package/dist/{styles → src/styles}/themes/index.d.ts +0 -0
  683. package/dist/{theme → src/theme}/color.d.ts +0 -0
  684. package/dist/{theme → src/theme}/theme-impl.d.ts +0 -0
  685. package/dist/{theme → src/theme}/themeSelector.d.ts +0 -0
  686. package/dist/{theme → src/theme}/themeWrapper.d.ts +0 -0
  687. package/dist/{theme → src/theme}/typography.d.ts +0 -0
  688. package/dist/{utils → src/utils}/api.d.ts +0 -0
  689. package/dist/{utils → src/utils}/calculation.d.ts +0 -0
  690. package/dist/{utils → src/utils}/color.d.ts +0 -0
  691. package/dist/{utils → src/utils}/common-utility.d.ts +1 -1
  692. /package/dist/{utils → src/utils}/common.d.ts +0 -0
  693. /package/dist/{utils → src/utils}/constant.d.ts +0 -0
  694. /package/dist/{utils → src/utils}/country.d.ts +0 -0
  695. /package/dist/{utils → src/utils}/date-range.d.ts +0 -0
  696. /package/dist/{utils → src/utils}/dateFormat.d.ts +0 -0
  697. /package/dist/{utils → src/utils}/dateValidation.d.ts +0 -0
  698. /package/dist/{utils → src/utils}/deformat-text.d.ts +0 -0
  699. /package/dist/{utils → src/utils}/export-filters.d.ts +0 -0
  700. /package/dist/{utils → src/utils}/fileSize.d.ts +0 -0
  701. /package/dist/{utils → src/utils}/form-builder-conversion.d.ts +0 -0
  702. /package/dist/{utils → src/utils}/form-builder-deconversion.d.ts +0 -0
  703. /package/dist/{utils → src/utils}/format-text.d.ts +0 -0
  704. /package/dist/{utils → src/utils}/i18n.d.ts +0 -0
  705. /package/dist/{utils → src/utils}/language.d.ts +0 -0
  706. /package/dist/{utils → src/utils}/menu-filter.d.ts +0 -0
  707. /package/dist/{utils → src/utils}/metaComponent.d.ts +0 -0
  708. /package/dist/{utils → src/utils}/migration-utils.d.ts +0 -0
  709. /package/dist/{utils → src/utils}/navigation-utils.d.ts +0 -0
  710. /package/dist/{utils → src/utils}/route-utils.d.ts +0 -0
  711. /package/dist/{utils → src/utils}/server.d.ts +0 -0
  712. /package/dist/{utils → src/utils}/setup.d.ts +0 -0
  713. /package/dist/{utils → src/utils}/translations.d.ts +0 -0
  714. /package/dist/{views → src/views}/404.d.ts +0 -0
  715. /package/dist/{views → src/views}/afterAuth/accounting.d.ts +0 -0
  716. /package/dist/{views → src/views}/afterAuth/crm.d.ts +0 -0
  717. /package/dist/{views → src/views}/afterAuth/dashboard/dashboard.d.ts +0 -0
  718. /package/dist/{views → src/views}/afterAuth/dashboard/redux/actionCreator.d.ts +0 -0
  719. /package/dist/{views → src/views}/afterAuth/dashboard/redux/reducer.d.ts +0 -0
  720. /package/dist/{views → src/views}/afterAuth/dashboard/redux/state.d.ts +0 -0
  721. /package/dist/{views → src/views}/afterAuth/document.d.ts +0 -0
  722. /package/dist/{views → src/views}/afterAuth/hrms.d.ts +0 -0
  723. /package/dist/{views → src/views}/afterAuth/inventory.d.ts +0 -0
  724. /package/dist/{views → src/views}/afterAuth/manufacturing.d.ts +0 -0
  725. /package/dist/{views → src/views}/afterAuth/office.d.ts +0 -0
  726. /package/dist/{views → src/views}/afterAuth/page-view/page-view.d.ts +0 -0
  727. /package/dist/{views → src/views}/afterAuth/page-view/redux/actionCreator.d.ts +0 -0
  728. /package/dist/{views → src/views}/afterAuth/page-view/redux/reducer.d.ts +0 -0
  729. /package/dist/{views → src/views}/afterAuth/page-view/redux/state.d.ts +0 -0
  730. /package/dist/{views → src/views}/afterAuth/page-view/utils/default-data.d.ts +0 -0
  731. /package/dist/{views → src/views}/afterAuth/page-view/utils/local-data.d.ts +0 -0
  732. /package/dist/{views → src/views}/afterAuth/procurement.d.ts +0 -0
  733. /package/dist/{views → src/views}/afterAuth/project.d.ts +0 -0
  734. /package/dist/{views → src/views}/afterAuth/purchase.d.ts +0 -0
  735. /package/dist/{views → src/views}/afterAuth/quotes.d.ts +0 -0
  736. /package/dist/{views → src/views}/afterAuth/rental.d.ts +0 -0
  737. /package/dist/{views → src/views}/afterAuth/user.d.ts +0 -0
  738. /package/dist/{views → src/views}/beforeAuth/change-password/change-password.d.ts +0 -0
  739. /package/dist/{views → src/views}/beforeAuth/components/activity-tag-data/activity-tag-data.d.ts +0 -0
  740. /package/dist/{views → src/views}/beforeAuth/components/calendar-data/calendar-data.d.ts +0 -0
  741. /package/dist/{views → src/views}/beforeAuth/components/drive-dashboard-data/drive-dashboard-data.d.ts +0 -0
  742. /package/dist/{views → src/views}/beforeAuth/components/gantt-data/gantt-data.d.ts +0 -0
  743. /package/dist/{views → src/views}/beforeAuth/components/grid-data/grid-data.d.ts +0 -0
  744. /package/dist/{views → src/views}/beforeAuth/components/index.d.ts +0 -0
  745. /package/dist/{views → src/views}/beforeAuth/components/kanbann-content/kanbann-raw.d.ts +0 -0
  746. /package/dist/{views → src/views}/beforeAuth/components/list-content/column-raw.d.ts +0 -0
  747. /package/dist/{views → src/views}/beforeAuth/components/list-content/list-data.d.ts +0 -0
  748. /package/dist/{views → src/views}/beforeAuth/components/multiline-data/multiline-data.d.ts +0 -0
  749. /package/dist/{views → src/views}/beforeAuth/components/share-modal-data/share-modal-data.d.ts +0 -0
  750. /package/dist/{views → src/views}/beforeAuth/components/shared-pages-data/shared-pages-data.d.ts +0 -0
  751. /package/dist/{views → src/views}/beforeAuth/components/tabs-data/tabs-data.d.ts +0 -0
  752. /package/dist/{views → src/views}/beforeAuth/components/user-dashboard-data/user-dashboard-data.d.ts +0 -0
  753. /package/dist/{views → src/views}/beforeAuth/components/user-dropdown-data/user-dropdown-data.d.ts +0 -0
  754. /package/dist/{views → src/views}/beforeAuth/components/user-profile-data/user-profile-data.d.ts +0 -0
  755. /package/dist/{views → src/views}/beforeAuth/forgot-password/forgot-password.d.ts +0 -0
  756. /package/dist/{views → src/views}/beforeAuth/landing/landing.d.ts +0 -0
  757. /package/dist/{views → src/views}/beforeAuth/login/index.d.ts +0 -0
  758. /package/dist/{views → src/views}/beforeAuth/reset-password/reset-password.d.ts +0 -0
  759. /package/dist/{views → src/views}/form-builder/custom-form.d.ts +0 -0
  760. /package/dist/{views → src/views}/form-builder/element-edit-forms/checkbox.d.ts +0 -0
  761. /package/dist/{views → src/views}/form-builder/element-edit-forms/column-width.d.ts +0 -0
  762. /package/dist/{views → src/views}/form-builder/element-edit-forms/field-select.d.ts +0 -0
  763. /package/dist/{views → src/views}/form-builder/element-edit-forms/index.d.ts +0 -0
  764. /package/dist/{views → src/views}/form-builder/element-edit-forms/section.d.ts +0 -0
  765. /package/dist/{views → src/views}/form-builder/element-edit-forms/select.d.ts +0 -0
  766. /package/dist/{views → src/views}/form-builder/element-edit-forms/table-form.d.ts +0 -0
  767. /package/dist/{views → src/views}/form-builder/element-edit-forms/text.d.ts +0 -0
  768. /package/dist/{views → src/views}/form-builder/field_properties.d.ts +0 -0
  769. /package/dist/{views → src/views}/form-builder/form-fields.d.ts +0 -0
  770. /package/dist/{views → src/views}/form-builder/index.d.ts +0 -0
  771. /package/dist/{views → src/views}/form-builder/redux/actionCreator.d.ts +0 -0
  772. /package/dist/{views → src/views}/form-builder/redux/state.d.ts +0 -0
  773. /package/dist/{views → src/views}/form-builder/types.d.ts +0 -0
  774. /package/dist/{views → src/views}/form-builder/utils/common.d.ts +0 -0
  775. /package/dist/{views → src/views}/form-builder/utils/index.d.ts +0 -0
  776. /package/dist/{views → src/views}/privateRoute.d.ts +0 -0
  777. /package/dist/{views → src/views}/template-editor/add-template/add-template.d.ts +0 -0
  778. /package/dist/{views → src/views}/template-editor/add-template/index.d.ts +0 -0
  779. /package/dist/{views → src/views}/template-editor/company-selection-modal/company-selection-modal.d.ts +0 -0
  780. /package/dist/{views → src/views}/template-editor/company-selection-modal/index.d.ts +0 -0
  781. /package/dist/{views → src/views}/template-editor/components/EditorCanvas.d.ts +0 -0
  782. /package/dist/{views → src/views}/template-editor/components/EditorHeader.d.ts +0 -0
  783. /package/dist/{views → src/views}/template-editor/components/EditorSection.d.ts +0 -0
  784. /package/dist/{views → src/views}/template-editor/components/EditorSidebar.d.ts +0 -0
  785. /package/dist/{views → src/views}/template-editor/components/SectionFlowEditor.d.ts +0 -0
  786. /package/dist/{views → src/views}/template-editor/components/SectionFormatPanel.d.ts +0 -0
  787. /package/dist/{views → src/views}/template-editor/components/controllers/AlignmentControl.d.ts +0 -0
  788. /package/dist/{views → src/views}/template-editor/components/controllers/ButtonControls.d.ts +0 -0
  789. /package/dist/{views → src/views}/template-editor/components/controllers/CodeControls.d.ts +0 -0
  790. /package/dist/{views → src/views}/template-editor/components/controllers/DividerControls.d.ts +0 -0
  791. /package/dist/{views → src/views}/template-editor/components/controllers/ImageControls.d.ts +0 -0
  792. /package/dist/{views → src/views}/template-editor/components/controllers/SignatureControls.d.ts +0 -0
  793. /package/dist/{views → src/views}/template-editor/components/controllers/TableControls.d.ts +0 -0
  794. /package/dist/{views → src/views}/template-editor/components/controllers/TextControls.d.ts +0 -0
  795. /package/dist/{views → src/views}/template-editor/components/controllers/border-control.d.ts +0 -0
  796. /package/dist/{views → src/views}/template-editor/components/index.d.ts +0 -0
  797. /package/dist/{views → src/views}/template-editor/edit-section-modal/edit-section-modal.d.ts +0 -0
  798. /package/dist/{views → src/views}/template-editor/edit-section-modal/index.d.ts +0 -0
  799. /package/dist/{views → src/views}/template-editor/index.d.ts +0 -0
  800. /package/dist/{views → src/views}/template-editor/routes.d.ts +0 -0
  801. /package/dist/{views → src/views}/template-editor/template-modal/html-thumbnail-preview.d.ts +0 -0
  802. /package/dist/{views → src/views}/template-editor/template-modal/index.d.ts +0 -0
  803. /package/dist/{views → src/views}/template-editor/template-modal/template-modal.d.ts +0 -0
  804. /package/dist/{views → src/views}/template-editor/template-name-modal/index.d.ts +0 -0
  805. /package/dist/{views → src/views}/template-editor/template-name-modal/template-name-modal.d.ts +0 -0
  806. /package/dist/{views → src/views}/template-editor/templates.d.ts +0 -0
  807. /package/dist/{views → src/views}/template-editor/types/editor.d.ts +0 -0
  808. /package/dist/{views → src/views}/template-editor/types/index.d.ts +0 -0
  809. /package/dist/{views → src/views}/template-editor/utils/common.d.ts +0 -0
  810. /package/dist/{views → src/views}/template-editor/utils/constant.d.ts +0 -0
  811. /package/dist/{views → src/views}/template-editor/utils/default-data.d.ts +0 -0
  812. /package/dist/{views → src/views}/template-editor/utils/index.d.ts +0 -0
  813. /package/dist/{views → src/views}/template-editor/utils/style-extractor.d.ts +0 -0
  814. /package/dist/{views → src/views}/template-editor/utils/types.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../../../src/contexts/AuthContext.tsx"],"sourcesContent":["import React, { createContext, useEffect, useRef, useState } from 'react';\nimport {\n\tpostV1AuthChangePassword,\n\tpostV1AuthForgotPassword,\n\tpostV1AuthChangeUserPassword,\n\t// getV1UserId,\n\tpostV1AuthLogin,\n\tpostV1AuthResetPassword,\n\tsetBaseUrl,\n\tpostV1AuthChangeUserPasswordByAdmin\n} from '../api-client/api.rbac/api';\nimport { auth } from '../constants/auth';\nimport { /* useLocation, */ useNavigate } from 'react-router-dom';\nimport { Pathname } from '../constants/pathnames/pathname'; // Removed - should be passed as props or configured by consuming app\nimport { getToken } from '../utils/common';\nimport { enqueueSnackbar } from 'notistack';\nimport { Socket, io } from 'socket.io-client';\nimport { generateRouteWithId } from '../utils/route-utils';\nimport {\n\tPathnameAccounting,\n\tPathnameGenerator\n} from '../constants/pathnames/pathname.accounting';\n\nimport {\n\tPathnameInventory,\n\tPathnameGenerator as PathnameGeneratorInventory\n} from '../constants/pathnames/pathname.inventory';\n\nimport {\n\tPathnameManufacturing,\n\tPathnameGenerator as PathnameGeneratorManufacuring\n} from '../constants/pathnames/pathname.manufacturing';\n\nimport {\n\tPathnamePurchase,\n\tPathnameGenerator as PathnameGeneratorPurchase\n} from '../constants/pathnames/pathname.procurement';\n\nimport {\n\tPathnameCrm,\n\tPathnameGenerator as PathnameGeneratorCrm\n} from '../constants/pathnames/pathname.crm';\n\nimport {\n\tPathnameRental,\n\tPathnameGenerator as PathnameGeneratorRental\n} from '../constants/pathnames/pathname.rental';\n\nimport { ROUTES as RENTALROUTES } from '../constants/pathnames/pathname.rental';\n\nimport CustomSnackbar from '../components/custom-snackbar/custom-snackbar.tsx';\nexport interface LoginFormValues {\n\temail: string;\n\tpassword: string;\n}\n\nexport interface resetFormValues {\n\temail: string;\n}\n\nexport interface resetPasswordValues {\n\ttoken: string;\n}\n\nexport interface changePasswordValues {\n\tpassword: string;\n}\n\nexport interface changeUserPasswordValues {\n\tpassword: string;\n}\n\ninterface ERPApiUser {\n\tid: string | number;\n\tfirst_name: string;\n\tlast_name: string;\n\tmiddle_name: string;\n\tcountry_code: string;\n\temail: string;\n\tcreated_by: any;\n\tupdated_by: any;\n\tcreated_at: string;\n\tupdated_at: string;\n\trole_id: string;\n\tdepartment_id: number;\n\tis_deleted: number;\n\tdeleted_at: string | null;\n\tdeleted_by: any;\n\ttoken: string;\n\tprofile_image: string;\n\tcurrency_data?: {\n\t\tid: number;\n\t\tsymbol: string;\n\t\tcurrency_name: string;\n\t\tnumber_format:string;\n\t\tposition: string | null;\n\t\tfraction_unit: string | null\n\t};\n\taccessCompanies?: any[]\n}\ninterface ERPUser extends Omit<ERPApiUser, 'token'> {\n\tfull_name: string;\n\tcompany_id: string;\n}\n\ninterface DefaultProviderProps {\n\tuser: ERPUser | null;\n\tloading: boolean;\n\tauthToken: string;\n\tsetUser: React.Dispatch<React.SetStateAction<ERPUser | null>>;\n\tsetLoading: React.Dispatch<React.SetStateAction<boolean>>;\n\tlogin: (\n\t\tparams: LoginFormValues,\n\t\tcallback: (err: string) => void\n\t) => Promise<void>;\n\tlogout: () => Promise<void>;\n\tforgotPassword: (\n\t\tparams: resetFormValues,\n\t\tcallback: (err: string) => void\n\t) => Promise<void>;\n\tresetPassword: (\n\t\tparams: resetPasswordValues,\n\t\tcallback: (err: string) => void\n\t) => Promise<void>;\n\tchangePassword: (\n\t\tparams: changePasswordValues,\n\t\tcallback: (err: string) => void\n\t) => Promise<void>;\n\tchangeUserPassword: (\n\t\tparams: changeUserPasswordValues,\n\t\tcallback: (err: string) => void\n\t) => Promise<void>;\n}\n\nconst defaultProvider: DefaultProviderProps = {\n\tuser: null,\n\tloading: true,\n\tauthToken: '',\n\tsetUser: () => null,\n\tsetLoading: () => Boolean,\n\tlogin: () => Promise.resolve(),\n\tlogout: () => Promise.resolve(),\n\tforgotPassword: () => Promise.resolve(),\n\tresetPassword: () => Promise.resolve(),\n\tchangePassword: () => Promise.resolve(),\n\tchangeUserPassword: () => Promise.resolve()\n};\n\nconst AuthContext = createContext(defaultProvider);\n\ninterface AuthProviderProps {\n\tchildren: React.ReactNode;\n}\n\nsetBaseUrl(`${import.meta.env.VITE_BACKEND_BASE_URL}/rbac`);\n\nconst AuthProvider: React.FC<AuthProviderProps> = ({ children }) => {\n\t// ** States\n\tconst [user, setUser] = useState(defaultProvider.user);\n\tconst [authToken, setAuthToken] = useState<string>('');\n\tconst [loading, setLoading] = useState(defaultProvider.loading);\n\tconst socketRef = useRef<Socket | null>(null);\n\n\t// ** Hooks\n\tconst navigate = useNavigate();\n\t// const location = useLocation();\n\tconst isJsonParse = (string?: string | null) => {\n\t\tif (!string) return false;\n\n\t\ttry {\n\t\t\treturn JSON.parse(string);\n\t\t} catch (error) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tconst getNotificationUrl = (data: any) => {\n\t\tconst { moduleName = '', moduleId = '', notificationData = {} } = data;\n\t\tconst key = moduleName.toLowerCase();\n\n\t\tconst routeMap: Record<string, () => string> = {\n\t\t\t'sales invoice': () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_SALES_INVOICES), moduleId.toString()),\n\n\t\t\t'asset transfers': () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_ASSET_TRANSFER), moduleId.toString()),\n\n\t\t\t'budgets': () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_BUDGET), moduleId.toString()),\n\n\t\t\t'cash expense': () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_CASH_EXPENSE), moduleId.toString()),\n\n\t\t\t'credit notes': () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_CREDIT_NOTE), moduleId.toString()),\n\n\t\t\t'debit notes': () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_DEBIT_NOTE), moduleId.toString()),\n\n\t\t\t'expense reimbursement': () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_EXPENSE_REIMBURSEMENT), moduleId.toString()),\n\n\t\t\t'journal entries': () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_JOURNAL_ENTRY), moduleId.toString()),\n\n\t\t\t'payment entries': () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_PAYMENT_ENTRY), moduleId.toString()),\n\n\t\t\t'purchase invoice': () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_PURCHASE_INVOICE), moduleId.toString()),\n\n\t\t\t'stock transfer': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorInventory(PathnameInventory.VIEW_STOCK_TRANSFER), moduleId.toString()),\n\n\t\t\t'bills of materials': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorManufacuring(PathnameManufacturing.VIEW_BILL_OF_MATERIAL), moduleId.toString()),\n\n\t\t\t'purchase agreement': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorPurchase(PathnamePurchase.VIEW_PURCHASE_AGREEMENT), moduleId.toString()),\n\n\t\t\t'purchase orders': () =>\n\t\t\tgenerateRouteWithId(notificationData?.data?.is_rental == 1 ? RENTALROUTES.VIEW : PathnameGeneratorPurchase(PathnamePurchase.VIEW_PURCHASE_ORDER) , moduleId.toString()),\n\n\t\t\t'purchase request': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorPurchase(PathnamePurchase.VIEW_PURCHASE_ORDER), moduleId.toString()),\n\n\t\t\t'vra': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorPurchase(PathnamePurchase.VIEW_VENDOR_RETURNS), moduleId.toString()),\n\n\t\t\t'sl customer returns': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorCrm(PathnameCrm.VIEW_CUSTOMER_RETURNS), moduleId.toString()),\n\n\t\t\t'sales order': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorCrm(PathnameCrm.VIEW_SALES_ORDER), moduleId.toString()),\n\n\t\t\t'rental order': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorRental(PathnameRental.VIEW_RENTAL_ORDER), moduleId.toString()),\n\n\t\t\t'replacement order': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorRental(PathnameRental.VIEW_RENTAL_ORDER), moduleId.toString()),\n\n\t\t\t'rental agreement': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorRental(PathnameRental.VIEW_AGREEMENT), moduleId.toString()),\n\n\t\t\t'cross hire order': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorRental(PathnameRental.VIEW_CROSS_HIRE_ORDER), moduleId.toString()),\n\n\t\t\t'cross hire request': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorRental(PathnameRental.VIEW_CROSS_HIRE_REQUEST), moduleId.toString()),\n\t\t};\n\n\t\treturn routeMap[key]?.() || '/dashboard';\n\t};\n\n\n\t// const initAuth = async () => {\n\t// \tconst storedToken = window.localStorage.getItem(auth.storageTokenKeyName);\n\t// \tconst storedUser: ERPUser =\n\t// \t\tisJsonParse(window.localStorage.getItem(auth.storageUserKeyName)) || null;\n\t// \tif (storedToken && storedUser) {\n\t// \t\ttry {\n\t// \t\t\tconst userData = await getV1UserId({\n\t// \t\t\t\t'x-token': storedToken,\n\t// \t\t\t\tid: String(storedUser.id)\n\t// \t\t\t});\n\t// \t\t} catch (error) {\n\t// \t\t}\n\t// \t} else {\n\t// \t\tsetLoading(false);\n\t// \t}\n\t// \tif (storedToken && storedUser) {\n\t// \t\tsetUser(storedUser);\n\t// setLoading(false);\n\t// \t} else {\n\t// \t\thandleLogout();\n\t// setLoading(false);\n\t// \t}\n\t// };\n\n\t// useEffect(() => {\n\t// setLoading(true)\n\t// \tinitAuth();\n\t// \tconst storedToken = window.localStorage.getItem(auth.storageTokenKeyName);\n\t// \tif (!storedToken) {\n\t// \t\tsetUser(null);\n\t// \t} else {\n\t// \t\tsetLoading(false);\n\t// \t}\n\t// \teslint-disable-next-line react-hooks/exhaustive-deps\n\t// }, [location.pathname]);\n\n\t// useEffect(() => {\n\t// \tsetLoading(true);\n\t// \tinitAuth();\n\t// \tconst storedToken = window.localStorage.getItem(auth.storageTokenKeyName);\n\t// \tif (!storedToken) {\n\t// \t\tsetLoading(false);\n\t// \t\tnavigate(Pathname.LOGIN);\n\t// \t}\n\t// \t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t// }, []);\n\n\tuseEffect(() => {\n\t\tsetLoading(true);\n\t\t// initAuth()\n\t\tconst storedToken = window.localStorage.getItem(auth.storageTokenKeyName);\n\t\tconst storedUser =\n\t\t\tisJsonParse(window.localStorage.getItem(auth.storageUserKeyName)) ?? null;\n\t\tconst publicRoutes = [Pathname.LOGIN, Pathname.FORGOT_PASSWORD, Pathname.RESET_PASSWORD, Pathname.CHANGE_PASSWORD];\n\t\tconst currentPath = window.location.pathname;\n\t\tif (!storedToken && !storedUser) {\n\t\t\tif (!publicRoutes.includes(currentPath)) {\n\t\t\t\tnavigate(Pathname.LOGIN);\n\t\t\t}\n\t\t\tsetLoading(false);\n\t\t} else {\n\t\t\tsetUser(storedUser);\n\t\t\tsetAuthToken(storedToken || '');\n\t\t\tsetLoading(false);\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (!authToken) {\n\t\t\tif (socketRef.current) {\n\t\t\t\tsocketRef.current?.disconnect();\n\t\t\t\tsocketRef.current = null\n\t\t\t}\n\t\t\tconsole.warn(\"No auth token found, not connecting to socket.\");\n\t\t\treturn;\n\t\t}\n\n\t\tconst socket = io(import.meta.env.VITE_SOCKET_BASE_URL, {\n\t\t\ttransports: [\"websocket\"],\n\t\t\tauth: { token: authToken },\n\t\t\tpath: \"/socket.io/\",\n\t\t\t\n\t\t});\n\t\tsocketRef.current = socket;\n\n\t\tsocket.on(\"connect\", () => {\n\t\t\tconsole.log(\"Socket connected:\", socket.id);\n\t\t\tsocket.onAny((event, ...args) => {\n\t\t\t\tconsole.log(`Received event: ${event}`, args);\n\t\t\t});\n\t\t});\n\t\t\n\t\t// socket event handler\n\t\tsocket.on('notification', (data) => {\n\t\tconst { message, notificationData } = data || {};\n\t\tlet notificationContent: React.ReactNode = message;\n\t\tconst url = getNotificationUrl(data);\n\n\t\tif (notificationData) {\n\t\t\tconst { notification_type } = notificationData;\n\n\t\t\tswitch (notification_type) {\n\t\t\t\tcase 'addApprovers': {\n\t\t\t\t\t\n\t\t\t\t\tnotificationContent = message;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase 'change_approval_status': {\n\t\t\t\t\tnotificationContent = message;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tdefault: {\n\t\t\t\t\tnotificationContent = message;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tenqueueSnackbar(String(message), {\n\t\t\tvariant: 'default',\n\t\t\tanchorOrigin: { vertical: 'top', horizontal: 'center' },\n\t\t\tautoHideDuration: 5000,\n\t\t\tcontent: (key) => (\n\t\t\t<CustomSnackbar snackbarKey={key} message={notificationContent} data={notificationData} variant=\"default\" linkUrl={url}/>\n\t\t\t),\n\t\t});\n\t\t});\n\n\n\t\tsocket.on(\"sales_invoice_viewed\", (data) => {\n\t\t\tconsole.log(\"Invoice viewed:\", data.invoiceId, \"by user:\", data.userId);\n\t\t});\n\n\t\tsocket.on(\"error\", (errMsg) => {\n\t\t\tenqueueSnackbar(`Socket error: ${errMsg}`, { variant: \"error\" });\n\t\t\tconsole.error(\"Socket error:\", errMsg);\n\t\t});\n\n\t\t// Clean up on unmount\n\t\treturn () => {\n\t\t\tif (socketRef.current) {\n\t\t\t\tsocketRef.current.disconnect();\n\t\t\t\tsocketRef.current = null\n\t\t\t}\n\t\t};\n\t}, [authToken]);\n\n\tconst handleLogin = async (\n\t\tparams: LoginFormValues,\n\t\tcallback: (err: string) => void\n\t) => {\n\t\tsetLoading(true);\n\t\tconst storedToken = window.localStorage.getItem(auth.storageTokenKeyName);\n\t\tif (storedToken && user) {\n\t\t\treturn navigate(Pathname.DASHBOARD);\n\t\t}\n\n\t\ttry {\n\t\t\tconst loginUser = await postV1AuthLogin({ ...params, ...getToken() });\n\t\t\tif (loginUser.success) {\n\t\t\t\tconst data: ERPApiUser | null = loginUser?.data?.login || null;\n\t\t\t\tif (data) {\n\t\t\t\t\twindow.localStorage.setItem(auth.storageTokenKeyName, data.token);\n\t\t\t\t\tconst userData: ERPUser = {\n\t\t\t\t\t\t...data,\n\t\t\t\t\t\tfull_name: `${data.first_name} ${data.last_name}`\n\t\t\t\t\t};\n\t\t\t\t\twindow.localStorage.setItem(\n\t\t\t\t\t\tauth.storageUserKeyName,\n\t\t\t\t\t\tJSON.stringify(userData)\n\t\t\t\t\t);\n\t\t\t\t\tsetUser(userData);\n\t\t\t\t\tsetAuthToken(data.token);\n\t\t\t\t\tnavigate(Pathname.DASHBOARD);\n\t\t\t\t\tsetLoading(false);\n\t\t\t\t\tdelete data.token;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tlet message: string = 'Something went wrong';\n\t\t\tif (error instanceof Error) {\n\t\t\t\tmessage = isJsonParse(error.message).message || error.message;\n\t\t\t}\n\n\t\t\tcallback(message);\n\t\t}\n\t};\n\n\tconst handleLogout = async () => {\n\t\twindow.localStorage.removeItem(auth.storageTokenKeyName);\n\t\twindow.localStorage.removeItem(auth.storageUserKeyName);\n\t\twindow.localStorage.removeItem(auth.storageAccessKeyName);\n\t\tsetUser(null);\n\t\tsetAuthToken('');\n\t\tnavigate(Pathname.LOGIN);\n\t};\n\n\tconst handleForgotPassword = async (params: resetFormValues,\n\t\tcallback: (type: boolean, err: string) => void) => {\n\t\ttry {\n\t\t\tawait postV1AuthForgotPassword({ ...params, ...getToken() });\n\t\t\tcallback(true, \"Reset Link sent to your email\");\n\t\t} catch (error) {\n\t\t\tlet message: string = 'Something went wrong';\n\t\t\tif (error instanceof Error) {\n\t\t\t\tmessage = isJsonParse(error.message).message || error.message;\n\t\t\t}\n\n\t\t\tcallback(false, message);\n\t\t}\n\t};\n\n\tconst handleResetPassword = async (params: resetPasswordValues,\n\t\tcallback: (err: string) => void) => {\n\t\ttry {\n\t\t\tconst response = await postV1AuthResetPassword({ ...params, ...getToken() });\n\t\t\tcallback(response);\n\t\t} catch (error) {\n\t\t\tlet message: string = 'Something went wrong';\n\t\t\tconsole.log(\"Error \", error)\n\t\t\tif (error instanceof Error) {\n\t\t\t\tmessage = isJsonParse(error.message).message || error.message;\n\t\t\t\tcallback(message);\n\t\t\t}\n\t\t}\n\t}\n\n\tconst handleChangePassword = async (params: resetPasswordValues,\n\t\tcallback: (err: string) => void) => {\n\t\ttry {\n\t\t\tawait postV1AuthChangePassword({ ...params, ...getToken() });\n\t\t\tcallback(null);\n\t\t} catch (error) {\n\t\t\tlet message: string = 'Something went wrong';\n\t\t\tconsole.log(\"Error \", error)\n\t\t\tif (error instanceof Error) {\n\t\t\t\tmessage = isJsonParse(error.message).message || error.message;\n\t\t\t\tcallback(message);\n\t\t\t}\n\t\t}\n\t\tcallback(\"reset\");\n\t}\n\n\tconst handleChangeUserPassword = async (params: resetPasswordValues,\n\t\tcallback: (err: string, resType: boolean) => void) => {\n\t\ttry {\n\t\t\tawait postV1AuthChangeUserPassword({ ...params, ...getToken() });\n\t\t\tcallback('Password Changed Successfully', true);\n\t\t} catch (error) {\n\t\t\tlet message: string = 'Something went wrong';\n\t\t\tif (error instanceof Error) {\n\t\t\t\tmessage = isJsonParse(error.message).message || error.message;\n\t\t\t\tcallback(message, false);\n\t\t\t}\n\t\t}\n\t}\n\n\tconst handleChangeUserPasswordByAdmin = async (params: changePasswordValues,\n\t\tcallback: (err: string, resType: boolean) => void) => {\n\t\ttry {\n\t\t\tawait postV1AuthChangeUserPasswordByAdmin({ ...params, ...getToken() });\n\t\t\tcallback('Password Changed Successfully', true);\n\t\t} catch (error) {\n\t\t\tlet message: string = 'Something went wrong';\n\t\t\tif (error instanceof Error) {\n\t\t\t\tmessage = isJsonParse(error.message).message || error.message;\n\t\t\t\tcallback(message, false);\n\t\t\t}\n\t\t}\n\t}\n\n\n\tconst values = {\n\t\tuser,\n\t\tauthToken,\n\t\tloading,\n\t\tsetUser,\n\t\tsetLoading,\n\t\tlogin: handleLogin,\n\t\tlogout: handleLogout,\n\t\tforgotPassword: handleForgotPassword,\n\t\tresetPassword: handleResetPassword,\n\t\tchangePassword: handleChangePassword,\n\t\tchangeUserPassword: handleChangeUserPassword,\n\t\tchangeUserPasswordByAdmin: handleChangeUserPasswordByAdmin\n\t};\n\n\treturn <AuthContext.Provider value={values}>{children}</AuthContext.Provider>;\n};\n\nexport { AuthContext, AuthProvider };\n"],"names":["PathnameGenerator","PathnameGeneratorInventory","PathnameGeneratorManufacuring","PathnameGeneratorPurchase","_a","RENTALROUTES","PathnameGeneratorCrm","PathnameGeneratorRental"],"mappings":"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"}
1
+ {"version":3,"file":"index.esm.js","sources":["../../../src/contexts/AuthContext.tsx"],"sourcesContent":["import React, { createContext, useEffect, useRef, useState } from 'react';\nimport {\n\tpostV1AuthChangePassword,\n\tpostV1AuthForgotPassword,\n\tpostV1AuthChangeUserPassword,\n\t// getV1UserId,\n\tpostV1AuthLogin,\n\tpostV1AuthResetPassword,\n\tsetBaseUrl,\n\tpostV1AuthChangeUserPasswordByAdmin\n} from '../api-client/api.rbac/api';\nimport { auth } from '../constants/auth';\nimport { /* useLocation, */ useNavigate } from 'react-router-dom';\nimport { Pathname } from '../constants/pathnames/pathname'; // Removed - should be passed as props or configured by consuming app\nimport { getToken } from '../utils/common';\nimport { enqueueSnackbar } from 'notistack';\nimport { Socket, io } from 'socket.io-client';\nimport { generateRouteWithId } from '../utils/route-utils';\nimport {\n\tPathnameAccounting,\n\tPathnameGenerator\n} from '../constants/pathnames/pathname.accounting';\n\nimport {\n\tPathnameInventory,\n\tPathnameGenerator as PathnameGeneratorInventory\n} from '../constants/pathnames/pathname.inventory';\n\nimport {\n\tPathnameManufacturing,\n\tPathnameGenerator as PathnameGeneratorManufacuring\n} from '../constants/pathnames/pathname.manufacturing';\n\nimport {\n\tPathnamePurchase,\n\tPathnameGenerator as PathnameGeneratorPurchase\n} from '../constants/pathnames/pathname.procurement';\n\nimport {\n\tPathnameCrm,\n\tPathnameGenerator as PathnameGeneratorCrm\n} from '../constants/pathnames/pathname.crm';\n\nimport {\n\tPathnameRental,\n\tPathnameGenerator as PathnameGeneratorRental\n} from '../constants/pathnames/pathname.rental';\n\nimport { ROUTES as RENTALROUTES } from '../constants/pathnames/pathname.rental';\n\nimport CustomSnackbar from '../components/custom-snackbar/custom-snackbar.tsx';\nexport interface LoginFormValues {\n\temail: string;\n\tpassword: string;\n}\n\nexport interface resetFormValues {\n\temail: string;\n}\n\nexport interface resetPasswordValues {\n\ttoken: string;\n}\n\nexport interface changePasswordValues {\n\tpassword: string;\n}\n\nexport interface changeUserPasswordValues {\n\tpassword: string;\n}\n\ninterface ERPApiUser {\n\tid: string | number;\n\tfirst_name: string;\n\tlast_name: string;\n\tmiddle_name: string;\n\tcountry_code: string;\n\temail: string;\n\tcreated_by: any;\n\tupdated_by: any;\n\tcreated_at: string;\n\tupdated_at: string;\n\trole_id: string;\n\tdepartment_id: number;\n\tis_deleted: number;\n\tdeleted_at: string | null;\n\tdeleted_by: any;\n\ttoken: string;\n\tprofile_image: string;\n\tcurrency_data?: {\n\t\tid: number;\n\t\tsymbol: string;\n\t\tcurrency_name: string;\n\t\tnumber_format:string;\n\t\tposition: string | null;\n\t\tfraction_unit: string | null\n\t};\n\taccessCompanies?: any[]\n}\ninterface ERPUser extends Omit<ERPApiUser, 'token'> {\n\tfull_name: string;\n\tcompany_id: string;\n}\n\ninterface DefaultProviderProps {\n\tuser: ERPUser | null;\n\tloading: boolean;\n\tauthToken: string;\n\tsetUser: React.Dispatch<React.SetStateAction<ERPUser | null>>;\n\tsetLoading: React.Dispatch<React.SetStateAction<boolean>>;\n\tlogin: (\n\t\tparams: LoginFormValues,\n\t\tcallback: (err: string) => void\n\t) => Promise<void>;\n\tlogout: () => Promise<void>;\n\tforgotPassword: (\n\t\tparams: resetFormValues,\n\t\tcallback: (err: string) => void\n\t) => Promise<void>;\n\tresetPassword: (\n\t\tparams: resetPasswordValues,\n\t\tcallback: (err: string) => void\n\t) => Promise<void>;\n\tchangePassword: (\n\t\tparams: changePasswordValues,\n\t\tcallback: (err: string) => void\n\t) => Promise<void>;\n\tchangeUserPassword: (\n\t\tparams: changeUserPasswordValues,\n\t\tcallback: (err: string) => void\n\t) => Promise<void>;\n}\n\nconst defaultProvider: DefaultProviderProps = {\n\tuser: null,\n\tloading: true,\n\tauthToken: '',\n\tsetUser: () => null,\n\tsetLoading: () => Boolean,\n\tlogin: () => Promise.resolve(),\n\tlogout: () => Promise.resolve(),\n\tforgotPassword: () => Promise.resolve(),\n\tresetPassword: () => Promise.resolve(),\n\tchangePassword: () => Promise.resolve(),\n\tchangeUserPassword: () => Promise.resolve()\n};\n\nconst AuthContext = createContext(defaultProvider);\n\ninterface AuthProviderProps {\n\tchildren: React.ReactNode;\n}\n\nsetBaseUrl(`${import.meta.env.VITE_BACKEND_BASE_URL}/rbac`);\n\nconst AuthProvider: React.FC<AuthProviderProps> = ({ children }) => {\n\t// ** States\n\tconst [user, setUser] = useState(defaultProvider.user);\n\tconst [authToken, setAuthToken] = useState<string>('');\n\tconst [loading, setLoading] = useState(defaultProvider.loading);\n\tconst socketRef = useRef<Socket | null>(null);\n\n\t// ** Hooks\n\tconst navigate = useNavigate();\n\t// const location = useLocation();\n\tconst isJsonParse = (string?: string | null) => {\n\t\tif (!string) return false;\n\n\t\ttry {\n\t\t\treturn JSON.parse(string);\n\t\t} catch (error) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tconst getNotificationUrl = (data: any) => {\n\t\tconst { moduleName = '', moduleId = '', notificationData = {} } = data;\n\t\tconst key = moduleName.toLowerCase();\n\n\t\tconst routeMap: Record<string, () => string> = {\n\t\t\t'sales invoice': () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_SALES_INVOICES), moduleId.toString()),\n\n\t\t\t'asset transfers': () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_ASSET_TRANSFER), moduleId.toString()),\n\n\t\t\t'budgets': () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_BUDGET), moduleId.toString()),\n\n\t\t\t'cash expense': () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_CASH_EXPENSE), moduleId.toString()),\n\n\t\t\t'credit notes': () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_CREDIT_NOTE), moduleId.toString()),\n\n\t\t\t'debit notes': () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_DEBIT_NOTE), moduleId.toString()),\n\n\t\t\t'expense reimbursement': () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_EXPENSE_REIMBURSEMENT), moduleId.toString()),\n\n\t\t\t'journal entries': () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_JOURNAL_ENTRY), moduleId.toString()),\n\n\t\t\t'payment entries': () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_PAYMENT_ENTRY), moduleId.toString()),\n\n\t\t\t'purchase invoice': () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_PURCHASE_INVOICE), moduleId.toString()),\n\n\t\t\t'stock transfer': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorInventory(PathnameInventory.VIEW_STOCK_TRANSFER), moduleId.toString()),\n\n\t\t\t'bills of materials': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorManufacuring(PathnameManufacturing.VIEW_BILL_OF_MATERIAL), moduleId.toString()),\n\n\t\t\t'purchase agreement': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorPurchase(PathnamePurchase.VIEW_PURCHASE_AGREEMENT), moduleId.toString()),\n\n\t\t\t'purchase orders': () =>\n\t\t\tgenerateRouteWithId(notificationData?.data?.is_rental == 1 ? RENTALROUTES.VIEW : PathnameGeneratorPurchase(PathnamePurchase.VIEW_PURCHASE_ORDER) , moduleId.toString()),\n\n\t\t\t'purchase request': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorPurchase(PathnamePurchase.VIEW_PURCHASE_ORDER), moduleId.toString()),\n\n\t\t\t'vra': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorPurchase(PathnamePurchase.VIEW_VENDOR_RETURNS), moduleId.toString()),\n\n\t\t\t'sl customer returns': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorCrm(PathnameCrm.VIEW_CUSTOMER_RETURNS), moduleId.toString()),\n\n\t\t\t'sales order': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorCrm(PathnameCrm.VIEW_SALES_ORDER), moduleId.toString()),\n\n\t\t\t'rental order': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorRental(PathnameRental.VIEW_RENTAL_ORDER), moduleId.toString()),\n\n\t\t\t'replacement order': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorRental(PathnameRental.VIEW_RENTAL_ORDER), moduleId.toString()),\n\n\t\t\t'rental agreement': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorRental(PathnameRental.VIEW_AGREEMENT), moduleId.toString()),\n\n\t\t\t'cross hire order': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorRental(PathnameRental.VIEW_CROSS_HIRE_ORDER), moduleId.toString()),\n\n\t\t\t'cross hire request': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorRental(PathnameRental.VIEW_CROSS_HIRE_REQUEST), moduleId.toString()),\n\t\t};\n\n\t\treturn routeMap[key]?.() || '/dashboard';\n\t};\n\n\n\t// const initAuth = async () => {\n\t// \tconst storedToken = window.localStorage.getItem(auth.storageTokenKeyName);\n\t// \tconst storedUser: ERPUser =\n\t// \t\tisJsonParse(window.localStorage.getItem(auth.storageUserKeyName)) || null;\n\t// \tif (storedToken && storedUser) {\n\t// \t\ttry {\n\t// \t\t\tconst userData = await getV1UserId({\n\t// \t\t\t\t'x-token': storedToken,\n\t// \t\t\t\tid: String(storedUser.id)\n\t// \t\t\t});\n\t// \t\t} catch (error) {\n\t// \t\t}\n\t// \t} else {\n\t// \t\tsetLoading(false);\n\t// \t}\n\t// \tif (storedToken && storedUser) {\n\t// \t\tsetUser(storedUser);\n\t// setLoading(false);\n\t// \t} else {\n\t// \t\thandleLogout();\n\t// setLoading(false);\n\t// \t}\n\t// };\n\n\t// useEffect(() => {\n\t// setLoading(true)\n\t// \tinitAuth();\n\t// \tconst storedToken = window.localStorage.getItem(auth.storageTokenKeyName);\n\t// \tif (!storedToken) {\n\t// \t\tsetUser(null);\n\t// \t} else {\n\t// \t\tsetLoading(false);\n\t// \t}\n\t// \teslint-disable-next-line react-hooks/exhaustive-deps\n\t// }, [location.pathname]);\n\n\t// useEffect(() => {\n\t// \tsetLoading(true);\n\t// \tinitAuth();\n\t// \tconst storedToken = window.localStorage.getItem(auth.storageTokenKeyName);\n\t// \tif (!storedToken) {\n\t// \t\tsetLoading(false);\n\t// \t\tnavigate(Pathname.LOGIN);\n\t// \t}\n\t// \t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t// }, []);\n\n\tuseEffect(() => {\n\t\tsetLoading(true);\n\t\t// initAuth()\n\t\tconst storedToken = window.localStorage.getItem(auth.storageTokenKeyName);\n\t\tconst storedUser =\n\t\t\tisJsonParse(window.localStorage.getItem(auth.storageUserKeyName)) ?? null;\n\t\tconst publicRoutes = [Pathname.LOGIN, Pathname.FORGOT_PASSWORD, Pathname.RESET_PASSWORD, Pathname.CHANGE_PASSWORD];\n\t\tconst currentPath = window.location.pathname;\n\t\tif (!storedToken && !storedUser) {\n\t\t\tif (!publicRoutes.includes(currentPath)) {\n\t\t\t\tnavigate(Pathname.LOGIN);\n\t\t\t}\n\t\t\tsetLoading(false);\n\t\t} else {\n\t\t\tsetUser(storedUser);\n\t\t\tsetAuthToken(storedToken || '');\n\t\t\tsetLoading(false);\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (!authToken) {\n\t\t\tif (socketRef.current) {\n\t\t\t\tsocketRef.current?.disconnect();\n\t\t\t\tsocketRef.current = null\n\t\t\t}\n\t\t\tconsole.warn(\"No auth token found, not connecting to socket.\");\n\t\t\treturn;\n\t\t}\n\n\t\tconst socket = io(import.meta.env.VITE_SOCKET_BASE_URL, {\n\t\t\ttransports: [\"websocket\"],\n\t\t\tauth: { token: authToken },\n\t\t\tpath: \"/socket.io/\",\n\t\t\t\n\t\t});\n\t\tsocketRef.current = socket;\n\n\t\tsocket.on(\"connect\", () => {\n\t\t\tconsole.log(\"Socket connected:\", socket.id);\n\t\t\tsocket.onAny((event, ...args) => {\n\t\t\t\tconsole.log(`Received event: ${event}`, args);\n\t\t\t});\n\t\t});\n\t\t\n\t\t// socket event handler\n\t\tsocket.on('notification', (data) => {\n\t\tconst { message, notificationData } = data || {};\n\t\tlet notificationContent: React.ReactNode = message;\n\t\tconst url = getNotificationUrl(data);\n\n\t\tif (notificationData) {\n\t\t\tconst { notification_type } = notificationData;\n\n\t\t\tswitch (notification_type) {\n\t\t\t\tcase 'addApprovers': {\n\t\t\t\t\t\n\t\t\t\t\tnotificationContent = message;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase 'change_approval_status': {\n\t\t\t\t\tnotificationContent = message;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tdefault: {\n\t\t\t\t\tnotificationContent = message;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tenqueueSnackbar(String(message), {\n\t\t\tvariant: 'default',\n\t\t\tanchorOrigin: { vertical: 'top', horizontal: 'center' },\n\t\t\tautoHideDuration: 5000,\n\t\t\tcontent: (key) => (\n\t\t\t<CustomSnackbar snackbarKey={key} message={notificationContent} data={notificationData} variant=\"default\" linkUrl={url}/>\n\t\t\t),\n\t\t});\n\t\t});\n\n\n\t\tsocket.on(\"sales_invoice_viewed\", (data) => {\n\t\t\tconsole.log(\"Invoice viewed:\", data.invoiceId, \"by user:\", data.userId);\n\t\t});\n\n\t\tsocket.on(\"error\", (errMsg) => {\n\t\t\tenqueueSnackbar(`Socket error: ${errMsg}`, { variant: \"error\" });\n\t\t\tconsole.error(\"Socket error:\", errMsg);\n\t\t});\n\n\t\t// Clean up on unmount\n\t\treturn () => {\n\t\t\tif (socketRef.current) {\n\t\t\t\tsocketRef.current.disconnect();\n\t\t\t\tsocketRef.current = null\n\t\t\t}\n\t\t};\n\t}, [authToken]);\n\n\tconst handleLogin = async (\n\t\tparams: LoginFormValues,\n\t\tcallback: (err: string) => void\n\t) => {\n\t\tsetLoading(true);\n\t\tconst storedToken = window.localStorage.getItem(auth.storageTokenKeyName);\n\t\tif (storedToken && user) {\n\t\t\treturn navigate(Pathname.DASHBOARD);\n\t\t}\n\n\t\ttry {\n\t\t\tconst loginUser = await postV1AuthLogin({ ...params, ...getToken() });\n\t\t\tif (loginUser.success) {\n\t\t\t\tconst data: ERPApiUser | null = loginUser?.data?.login || null;\n\t\t\t\tif (data) {\n\t\t\t\t\twindow.localStorage.setItem(auth.storageTokenKeyName, data.token);\n\t\t\t\t\tconst userData: ERPUser = {\n\t\t\t\t\t\t...data,\n\t\t\t\t\t\tfull_name: `${data.first_name} ${data.last_name}`\n\t\t\t\t\t};\n\t\t\t\t\twindow.localStorage.setItem(\n\t\t\t\t\t\tauth.storageUserKeyName,\n\t\t\t\t\t\tJSON.stringify(userData)\n\t\t\t\t\t);\n\t\t\t\t\tsetUser(userData);\n\t\t\t\t\tsetAuthToken(data.token);\n\t\t\t\t\tnavigate(Pathname.DASHBOARD);\n\t\t\t\t\tsetLoading(false);\n\t\t\t\t\tdelete data.token;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tlet message: string = 'Something went wrong';\n\t\t\tif (error instanceof Error) {\n\t\t\t\tmessage = isJsonParse(error.message).message || error.message;\n\t\t\t}\n\n\t\t\tcallback(message);\n\t\t}\n\t};\n\n\tconst handleLogout = async () => {\n\t\twindow.localStorage.removeItem(auth.storageTokenKeyName);\n\t\twindow.localStorage.removeItem(auth.storageUserKeyName);\n\t\twindow.localStorage.removeItem(auth.storageAccessKeyName);\n\t\tsetUser(null);\n\t\tsetAuthToken('');\n\t\tnavigate(Pathname.LOGIN);\n\t};\n\n\tconst handleForgotPassword = async (params: resetFormValues,\n\t\tcallback: (type: boolean, err: string) => void) => {\n\t\ttry {\n\t\t\tawait postV1AuthForgotPassword({ ...params, ...getToken() });\n\t\t\tcallback(true, \"Reset Link sent to your email\");\n\t\t} catch (error) {\n\t\t\tlet message: string = 'Something went wrong';\n\t\t\tif (error instanceof Error) {\n\t\t\t\tmessage = isJsonParse(error.message).message || error.message;\n\t\t\t}\n\n\t\t\tcallback(false, message);\n\t\t}\n\t};\n\n\tconst handleResetPassword = async (params: resetPasswordValues,\n\t\tcallback: (err: string) => void) => {\n\t\ttry {\n\t\t\tconst response = await postV1AuthResetPassword({ ...params, ...getToken() });\n\t\t\tcallback(response);\n\t\t} catch (error) {\n\t\t\tlet message: string = 'Something went wrong';\n\t\t\tconsole.log(\"Error \", error)\n\t\t\tif (error instanceof Error) {\n\t\t\t\tmessage = isJsonParse(error.message).message || error.message;\n\t\t\t\tcallback(message);\n\t\t\t}\n\t\t}\n\t}\n\n\tconst handleChangePassword = async (params: resetPasswordValues,\n\t\tcallback: (err: string) => void) => {\n\t\ttry {\n\t\t\tawait postV1AuthChangePassword({ ...params, ...getToken() });\n\t\t\tcallback(null);\n\t\t} catch (error) {\n\t\t\tlet message: string = 'Something went wrong';\n\t\t\tconsole.log(\"Error \", error)\n\t\t\tif (error instanceof Error) {\n\t\t\t\tmessage = isJsonParse(error.message).message || error.message;\n\t\t\t\tcallback(message);\n\t\t\t}\n\t\t}\n\t\tcallback(\"reset\");\n\t}\n\n\tconst handleChangeUserPassword = async (params: resetPasswordValues,\n\t\tcallback: (err: string, resType: boolean) => void) => {\n\t\ttry {\n\t\t\tawait postV1AuthChangeUserPassword({ ...params, ...getToken() });\n\t\t\tcallback('Password Changed Successfully', true);\n\t\t} catch (error) {\n\t\t\tlet message: string = 'Something went wrong';\n\t\t\tif (error instanceof Error) {\n\t\t\t\tmessage = isJsonParse(error.message).message || error.message;\n\t\t\t\tcallback(message, false);\n\t\t\t}\n\t\t}\n\t}\n\n\tconst handleChangeUserPasswordByAdmin = async (params: changePasswordValues,\n\t\tcallback: (err: string, resType: boolean) => void) => {\n\t\ttry {\n\t\t\tawait postV1AuthChangeUserPasswordByAdmin({ ...params, ...getToken() });\n\t\t\tcallback('Password Changed Successfully', true);\n\t\t} catch (error) {\n\t\t\tlet message: string = 'Something went wrong';\n\t\t\tif (error instanceof Error) {\n\t\t\t\tmessage = isJsonParse(error.message).message || error.message;\n\t\t\t\tcallback(message, false);\n\t\t\t}\n\t\t}\n\t}\n\n\n\tconst values = {\n\t\tuser,\n\t\tauthToken,\n\t\tloading,\n\t\tsetUser,\n\t\tsetLoading,\n\t\tlogin: handleLogin,\n\t\tlogout: handleLogout,\n\t\tforgotPassword: handleForgotPassword,\n\t\tresetPassword: handleResetPassword,\n\t\tchangePassword: handleChangePassword,\n\t\tchangeUserPassword: handleChangeUserPassword,\n\t\tchangeUserPasswordByAdmin: handleChangeUserPasswordByAdmin\n\t};\n\n\treturn <AuthContext.Provider value={values}>{children}</AuthContext.Provider>;\n};\n\nexport { AuthContext, AuthProvider };\n"],"names":["PathnameGenerator","PathnameGeneratorInventory","PathnameGeneratorManufacuring","PathnameGeneratorPurchase","_a","RENTALROUTES","PathnameGeneratorCrm","PathnameGeneratorRental"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),a=require("../../api-client/api.rbac/api/index.js"),n=require("../../constants/auth/index.js"),r=require("react-router-dom"),o=require("../../constants/pathnames/pathname/index.js"),s=require("../../utils/common/index.js"),i=require("../../node_modules/notistack/notistack.esm/index.js"),c=require("socket.io-client"),u=require("../../utils/route-utils/index.js"),h=require("../../constants/pathnames/pathname.accounting/index.js"),m=require("../../constants/pathnames/pathname.inventory/index.js"),g=require("../../constants/pathnames/pathname.manufacturing/index.js"),l=require("../../constants/pathnames/pathname.procurement/index.js"),d=require("../../constants/pathnames/pathname.crm/index.js"),P=require("../../constants/pathnames/pathname.rental/index.js"),E=require("../../components/custom-snackbar/custom-snackbar/index.js");const S={user:null,loading:!0,authToken:"",setUser:()=>null,setLoading:()=>Boolean,login:()=>Promise.resolve(),logout:()=>Promise.resolve(),forgotPassword:()=>Promise.resolve(),resetPassword:()=>Promise.resolve(),changePassword:()=>Promise.resolve(),changeUserPassword:()=>Promise.resolve()},R=t.createContext(S);a.setBaseUrl("https://apidev.erpforce.co/rbac"),exports.AuthContext=R,exports.AuthProvider=({children:I})=>{const[_,w]=t.useState(S.user),[W,A]=t.useState(""),[p,f]=t.useState(S.loading),v=t.useRef(null),T=r.useNavigate(),N=e=>{if(!e)return!1;try{return JSON.parse(e)}catch(t){return!1}};t.useEffect(()=>{f(!0);const e=window.localStorage.getItem(n.auth.storageTokenKeyName),t=N(window.localStorage.getItem(n.auth.storageUserKeyName))??null,a=[o.Pathname.LOGIN,o.Pathname.FORGOT_PASSWORD,o.Pathname.RESET_PASSWORD,o.Pathname.CHANGE_PASSWORD],r=window.location.pathname;e||t?(w(t),A(e||""),f(!1)):(a.includes(r)||T(o.Pathname.LOGIN),f(!1))},[]),t.useEffect(()=>{var t;if(!W)return void(v.current&&(null==(t=v.current)||t.disconnect(),v.current=null));const a=c.io("http://127.0.0.1:4012",{transports:["websocket"],auth:{token:W},path:"/socket.io/"});return v.current=a,a.on("connect",()=>{a.onAny((e,...t)=>{})}),a.on("notification",t=>{const{message:a,notificationData:n}=t||{};let r=a;const o=(e=>{var t;const{moduleName:a="",moduleId:n="",notificationData:r={}}=e,o={"sales invoice":()=>u.generateRouteWithId(h.PathnameGenerator(h.PathnameAccounting.VIEW_SALES_INVOICES),n.toString()),"asset transfers":()=>u.generateRouteWithId(h.PathnameGenerator(h.PathnameAccounting.VIEW_ASSET_TRANSFER),n.toString()),budgets:()=>u.generateRouteWithId(h.PathnameGenerator(h.PathnameAccounting.VIEW_BUDGET),n.toString()),"cash expense":()=>u.generateRouteWithId(h.PathnameGenerator(h.PathnameAccounting.VIEW_CASH_EXPENSE),n.toString()),"credit notes":()=>u.generateRouteWithId(h.PathnameGenerator(h.PathnameAccounting.VIEW_CREDIT_NOTE),n.toString()),"debit notes":()=>u.generateRouteWithId(h.PathnameGenerator(h.PathnameAccounting.VIEW_DEBIT_NOTE),n.toString()),"expense reimbursement":()=>u.generateRouteWithId(h.PathnameGenerator(h.PathnameAccounting.VIEW_EXPENSE_REIMBURSEMENT),n.toString()),"journal entries":()=>u.generateRouteWithId(h.PathnameGenerator(h.PathnameAccounting.VIEW_JOURNAL_ENTRY),n.toString()),"payment entries":()=>u.generateRouteWithId(h.PathnameGenerator(h.PathnameAccounting.VIEW_PAYMENT_ENTRY),n.toString()),"purchase invoice":()=>u.generateRouteWithId(h.PathnameGenerator(h.PathnameAccounting.VIEW_PURCHASE_INVOICE),n.toString()),"stock transfer":()=>u.generateRouteWithId(m.PathnameGenerator(m.PathnameInventory.VIEW_STOCK_TRANSFER),n.toString()),"bills of materials":()=>u.generateRouteWithId(g.PathnameGenerator(g.PathnameManufacturing.VIEW_BILL_OF_MATERIAL),n.toString()),"purchase agreement":()=>u.generateRouteWithId(l.PathnameGenerator(l.PathnamePurchase.VIEW_PURCHASE_AGREEMENT),n.toString()),"purchase orders":()=>{var e;return u.generateRouteWithId(1==(null==(e=null==r?void 0:r.data)?void 0:e.is_rental)?P.ROUTES.VIEW:l.PathnameGenerator(l.PathnamePurchase.VIEW_PURCHASE_ORDER),n.toString())},"purchase request":()=>u.generateRouteWithId(l.PathnameGenerator(l.PathnamePurchase.VIEW_PURCHASE_ORDER),n.toString()),vra:()=>u.generateRouteWithId(l.PathnameGenerator(l.PathnamePurchase.VIEW_VENDOR_RETURNS),n.toString()),"sl customer returns":()=>u.generateRouteWithId(d.PathnameGenerator(d.PathnameCrm.VIEW_CUSTOMER_RETURNS),n.toString()),"sales order":()=>u.generateRouteWithId(d.PathnameGenerator(d.PathnameCrm.VIEW_SALES_ORDER),n.toString()),"rental order":()=>u.generateRouteWithId(P.PathnameGenerator(P.PathnameRental.VIEW_RENTAL_ORDER),n.toString()),"replacement order":()=>u.generateRouteWithId(P.PathnameGenerator(P.PathnameRental.VIEW_RENTAL_ORDER),n.toString()),"rental agreement":()=>u.generateRouteWithId(P.PathnameGenerator(P.PathnameRental.VIEW_AGREEMENT),n.toString()),"cross hire order":()=>u.generateRouteWithId(P.PathnameGenerator(P.PathnameRental.VIEW_CROSS_HIRE_ORDER),n.toString()),"cross hire request":()=>u.generateRouteWithId(P.PathnameGenerator(P.PathnameRental.VIEW_CROSS_HIRE_REQUEST),n.toString())};return(null==(t=o[a.toLowerCase()])?void 0:t.call(o))||"/dashboard"})(t);if(n){const{notification_type:e}=n;r=a}i.enqueueSnackbar(String(a),{variant:"default",anchorOrigin:{vertical:"top",horizontal:"center"},autoHideDuration:5e3,content:t=>/* @__PURE__ */e.jsx(E.default,{snackbarKey:t,message:r,data:n,variant:"default",linkUrl:o})})}),a.on("sales_invoice_viewed",e=>{}),a.on("error",e=>{i.enqueueSnackbar(`Socket error: ${e}`,{variant:"error"})}),()=>{v.current&&(v.current.disconnect(),v.current=null)}},[W]);const y={user:_,authToken:W,loading:p,setUser:w,setLoading:f,login:async(e,t)=>{var r;if(f(!0),window.localStorage.getItem(n.auth.storageTokenKeyName)&&_)return T(o.Pathname.DASHBOARD);try{const t=await a.postV1AuthLogin({...e,...s.getToken()});if(t.success){const e=(null==(r=null==t?void 0:t.data)?void 0:r.login)||null;if(e){window.localStorage.setItem(n.auth.storageTokenKeyName,e.token);const t={...e,full_name:`${e.first_name} ${e.last_name}`};window.localStorage.setItem(n.auth.storageUserKeyName,JSON.stringify(t)),w(t),A(e.token),T(o.Pathname.DASHBOARD),f(!1),delete e.token}}}catch(i){let e="Something went wrong";i instanceof Error&&(e=N(i.message).message||i.message),t(e)}},logout:async()=>{window.localStorage.removeItem(n.auth.storageTokenKeyName),window.localStorage.removeItem(n.auth.storageUserKeyName),window.localStorage.removeItem(n.auth.storageAccessKeyName),w(null),A(""),T(o.Pathname.LOGIN)},forgotPassword:async(e,t)=>{try{await a.postV1AuthForgotPassword({...e,...s.getToken()}),t(!0,"Reset Link sent to your email")}catch(n){let e="Something went wrong";n instanceof Error&&(e=N(n.message).message||n.message),t(!1,e)}},resetPassword:async(e,t)=>{try{t(await a.postV1AuthResetPassword({...e,...s.getToken()}))}catch(n){let e="Something went wrong";n instanceof Error&&(e=N(n.message).message||n.message,t(e))}},changePassword:async(e,t)=>{try{await a.postV1AuthChangePassword({...e,...s.getToken()}),t(null)}catch(n){let e="Something went wrong";n instanceof Error&&(e=N(n.message).message||n.message,t(e))}t("reset")},changeUserPassword:async(e,t)=>{try{await a.postV1AuthChangeUserPassword({...e,...s.getToken()}),t("Password Changed Successfully",!0)}catch(n){let e="Something went wrong";n instanceof Error&&(e=N(n.message).message||n.message,t(e,!1))}},changeUserPasswordByAdmin:async(e,t)=>{try{await a.postV1AuthChangeUserPasswordByAdmin({...e,...s.getToken()}),t("Password Changed Successfully",!0)}catch(n){let e="Something went wrong";n instanceof Error&&(e=N(n.message).message||n.message,t(e,!1))}}};/* @__PURE__ */
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),a=require("../../api-client/api.rbac/api/index.js"),n=require("../../constants/auth/index.js"),r=require("react-router-dom"),o=require("../../constants/pathnames/pathname/index.js"),s=require("../../utils/common/index.js"),i=require("../../node_modules/notistack/notistack.esm/index.js"),u=require("socket.io-client"),c=require("../../utils/route-utils/index.js"),h=require("../../constants/pathnames/pathname.accounting/index.js"),m=require("../../constants/pathnames/pathname.inventory/index.js"),g=require("../../constants/pathnames/pathname.manufacturing/index.js"),l=require("../../constants/pathnames/pathname.procurement/index.js"),d=require("../../constants/pathnames/pathname.crm/index.js"),P=require("../../constants/pathnames/pathname.rental/index.js"),E=require("../../components/custom-snackbar/custom-snackbar/index.js");const S={user:null,loading:!0,authToken:"",setUser:()=>null,setLoading:()=>Boolean,login:()=>Promise.resolve(),logout:()=>Promise.resolve(),forgotPassword:()=>Promise.resolve(),resetPassword:()=>Promise.resolve(),changePassword:()=>Promise.resolve(),changeUserPassword:()=>Promise.resolve()},R=t.createContext(S);a.setBaseUrl("http://127.0.0.1:4011/rbac"),exports.AuthContext=R,exports.AuthProvider=({children:I})=>{const[_,w]=t.useState(S.user),[W,A]=t.useState(""),[p,f]=t.useState(S.loading),T=t.useRef(null),v=r.useNavigate(),N=e=>{if(!e)return!1;try{return JSON.parse(e)}catch(t){return!1}};t.useEffect(()=>{f(!0);const e=window.localStorage.getItem(n.auth.storageTokenKeyName),t=N(window.localStorage.getItem(n.auth.storageUserKeyName))??null,a=[o.Pathname.LOGIN,o.Pathname.FORGOT_PASSWORD,o.Pathname.RESET_PASSWORD,o.Pathname.CHANGE_PASSWORD],r=window.location.pathname;e||t?(w(t),A(e||""),f(!1)):(a.includes(r)||v(o.Pathname.LOGIN),f(!1))},[]),t.useEffect(()=>{var t;if(!W)return void(T.current&&(null==(t=T.current)||t.disconnect(),T.current=null));const a=u.io("http://127.0.0.1:4012",{transports:["websocket"],auth:{token:W},path:"/socket.io/"});return T.current=a,a.on("connect",()=>{a.onAny((e,...t)=>{})}),a.on("notification",t=>{const{message:a,notificationData:n}=t||{};let r=a;const o=(e=>{var t;const{moduleName:a="",moduleId:n="",notificationData:r={}}=e,o={"sales invoice":()=>c.generateRouteWithId(h.PathnameGenerator(h.PathnameAccounting.VIEW_SALES_INVOICES),n.toString()),"asset transfers":()=>c.generateRouteWithId(h.PathnameGenerator(h.PathnameAccounting.VIEW_ASSET_TRANSFER),n.toString()),budgets:()=>c.generateRouteWithId(h.PathnameGenerator(h.PathnameAccounting.VIEW_BUDGET),n.toString()),"cash expense":()=>c.generateRouteWithId(h.PathnameGenerator(h.PathnameAccounting.VIEW_CASH_EXPENSE),n.toString()),"credit notes":()=>c.generateRouteWithId(h.PathnameGenerator(h.PathnameAccounting.VIEW_CREDIT_NOTE),n.toString()),"debit notes":()=>c.generateRouteWithId(h.PathnameGenerator(h.PathnameAccounting.VIEW_DEBIT_NOTE),n.toString()),"expense reimbursement":()=>c.generateRouteWithId(h.PathnameGenerator(h.PathnameAccounting.VIEW_EXPENSE_REIMBURSEMENT),n.toString()),"journal entries":()=>c.generateRouteWithId(h.PathnameGenerator(h.PathnameAccounting.VIEW_JOURNAL_ENTRY),n.toString()),"payment entries":()=>c.generateRouteWithId(h.PathnameGenerator(h.PathnameAccounting.VIEW_PAYMENT_ENTRY),n.toString()),"purchase invoice":()=>c.generateRouteWithId(h.PathnameGenerator(h.PathnameAccounting.VIEW_PURCHASE_INVOICE),n.toString()),"stock transfer":()=>c.generateRouteWithId(m.PathnameGenerator(m.PathnameInventory.VIEW_STOCK_TRANSFER),n.toString()),"bills of materials":()=>c.generateRouteWithId(g.PathnameGenerator(g.PathnameManufacturing.VIEW_BILL_OF_MATERIAL),n.toString()),"purchase agreement":()=>c.generateRouteWithId(l.PathnameGenerator(l.PathnamePurchase.VIEW_PURCHASE_AGREEMENT),n.toString()),"purchase orders":()=>{var e;return c.generateRouteWithId(1==(null==(e=null==r?void 0:r.data)?void 0:e.is_rental)?P.ROUTES.VIEW:l.PathnameGenerator(l.PathnamePurchase.VIEW_PURCHASE_ORDER),n.toString())},"purchase request":()=>c.generateRouteWithId(l.PathnameGenerator(l.PathnamePurchase.VIEW_PURCHASE_ORDER),n.toString()),vra:()=>c.generateRouteWithId(l.PathnameGenerator(l.PathnamePurchase.VIEW_VENDOR_RETURNS),n.toString()),"sl customer returns":()=>c.generateRouteWithId(d.PathnameGenerator(d.PathnameCrm.VIEW_CUSTOMER_RETURNS),n.toString()),"sales order":()=>c.generateRouteWithId(d.PathnameGenerator(d.PathnameCrm.VIEW_SALES_ORDER),n.toString()),"rental order":()=>c.generateRouteWithId(P.PathnameGenerator(P.PathnameRental.VIEW_RENTAL_ORDER),n.toString()),"replacement order":()=>c.generateRouteWithId(P.PathnameGenerator(P.PathnameRental.VIEW_RENTAL_ORDER),n.toString()),"rental agreement":()=>c.generateRouteWithId(P.PathnameGenerator(P.PathnameRental.VIEW_AGREEMENT),n.toString()),"cross hire order":()=>c.generateRouteWithId(P.PathnameGenerator(P.PathnameRental.VIEW_CROSS_HIRE_ORDER),n.toString()),"cross hire request":()=>c.generateRouteWithId(P.PathnameGenerator(P.PathnameRental.VIEW_CROSS_HIRE_REQUEST),n.toString())};return(null==(t=o[a.toLowerCase()])?void 0:t.call(o))||"/dashboard"})(t);if(n){const{notification_type:e}=n;r=a}i.enqueueSnackbar(String(a),{variant:"default",anchorOrigin:{vertical:"top",horizontal:"center"},autoHideDuration:5e3,content:t=>/* @__PURE__ */e.jsx(E.default,{snackbarKey:t,message:r,data:n,variant:"default",linkUrl:o})})}),a.on("sales_invoice_viewed",e=>{}),a.on("error",e=>{i.enqueueSnackbar(`Socket error: ${e}`,{variant:"error"})}),()=>{T.current&&(T.current.disconnect(),T.current=null)}},[W]);const y={user:_,authToken:W,loading:p,setUser:w,setLoading:f,login:async(e,t)=>{var r;if(f(!0),window.localStorage.getItem(n.auth.storageTokenKeyName)&&_)return v(o.Pathname.DASHBOARD);try{const t=await a.postV1AuthLogin({...e,...s.getToken()});if(t.success){const e=(null==(r=null==t?void 0:t.data)?void 0:r.login)||null;if(e){window.localStorage.setItem(n.auth.storageTokenKeyName,e.token);const t={...e,full_name:`${e.first_name} ${e.last_name}`};window.localStorage.setItem(n.auth.storageUserKeyName,JSON.stringify(t)),w(t),A(e.token),v(o.Pathname.DASHBOARD),f(!1),delete e.token}}}catch(i){let e="Something went wrong";i instanceof Error&&(e=N(i.message).message||i.message),t(e)}},logout:async()=>{window.localStorage.removeItem(n.auth.storageTokenKeyName),window.localStorage.removeItem(n.auth.storageUserKeyName),window.localStorage.removeItem(n.auth.storageAccessKeyName),w(null),A(""),v(o.Pathname.LOGIN)},forgotPassword:async(e,t)=>{try{await a.postV1AuthForgotPassword({...e,...s.getToken()}),t(!0,"Reset Link sent to your email")}catch(n){let e="Something went wrong";n instanceof Error&&(e=N(n.message).message||n.message),t(!1,e)}},resetPassword:async(e,t)=>{try{t(await a.postV1AuthResetPassword({...e,...s.getToken()}))}catch(n){let e="Something went wrong";n instanceof Error&&(e=N(n.message).message||n.message,t(e))}},changePassword:async(e,t)=>{try{await a.postV1AuthChangePassword({...e,...s.getToken()}),t(null)}catch(n){let e="Something went wrong";n instanceof Error&&(e=N(n.message).message||n.message,t(e))}t("reset")},changeUserPassword:async(e,t)=>{try{await a.postV1AuthChangeUserPassword({...e,...s.getToken()}),t("Password Changed Successfully",!0)}catch(n){let e="Something went wrong";n instanceof Error&&(e=N(n.message).message||n.message,t(e,!1))}},changeUserPasswordByAdmin:async(e,t)=>{try{await a.postV1AuthChangeUserPasswordByAdmin({...e,...s.getToken()}),t("Password Changed Successfully",!0)}catch(n){let e="Something went wrong";n instanceof Error&&(e=N(n.message).message||n.message,t(e,!1))}}};/* @__PURE__ */
2
2
  return e.jsx(R.Provider,{value:y,children:I})};
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/contexts/AuthContext.tsx"],"sourcesContent":["import React, { createContext, useEffect, useRef, useState } from 'react';\nimport {\n\tpostV1AuthChangePassword,\n\tpostV1AuthForgotPassword,\n\tpostV1AuthChangeUserPassword,\n\t// getV1UserId,\n\tpostV1AuthLogin,\n\tpostV1AuthResetPassword,\n\tsetBaseUrl,\n\tpostV1AuthChangeUserPasswordByAdmin\n} from '../api-client/api.rbac/api';\nimport { auth } from '../constants/auth';\nimport { /* useLocation, */ useNavigate } from 'react-router-dom';\nimport { Pathname } from '../constants/pathnames/pathname'; // Removed - should be passed as props or configured by consuming app\nimport { getToken } from '../utils/common';\nimport { enqueueSnackbar } from 'notistack';\nimport { Socket, io } from 'socket.io-client';\nimport { generateRouteWithId } from '../utils/route-utils';\nimport {\n\tPathnameAccounting,\n\tPathnameGenerator\n} from '../constants/pathnames/pathname.accounting';\n\nimport {\n\tPathnameInventory,\n\tPathnameGenerator as PathnameGeneratorInventory\n} from '../constants/pathnames/pathname.inventory';\n\nimport {\n\tPathnameManufacturing,\n\tPathnameGenerator as PathnameGeneratorManufacuring\n} from '../constants/pathnames/pathname.manufacturing';\n\nimport {\n\tPathnamePurchase,\n\tPathnameGenerator as PathnameGeneratorPurchase\n} from '../constants/pathnames/pathname.procurement';\n\nimport {\n\tPathnameCrm,\n\tPathnameGenerator as PathnameGeneratorCrm\n} from '../constants/pathnames/pathname.crm';\n\nimport {\n\tPathnameRental,\n\tPathnameGenerator as PathnameGeneratorRental\n} from '../constants/pathnames/pathname.rental';\n\nimport { ROUTES as RENTALROUTES } from '../constants/pathnames/pathname.rental';\n\nimport CustomSnackbar from '../components/custom-snackbar/custom-snackbar.tsx';\nexport interface LoginFormValues {\n\temail: string;\n\tpassword: string;\n}\n\nexport interface resetFormValues {\n\temail: string;\n}\n\nexport interface resetPasswordValues {\n\ttoken: string;\n}\n\nexport interface changePasswordValues {\n\tpassword: string;\n}\n\nexport interface changeUserPasswordValues {\n\tpassword: string;\n}\n\ninterface ERPApiUser {\n\tid: string | number;\n\tfirst_name: string;\n\tlast_name: string;\n\tmiddle_name: string;\n\tcountry_code: string;\n\temail: string;\n\tcreated_by: any;\n\tupdated_by: any;\n\tcreated_at: string;\n\tupdated_at: string;\n\trole_id: string;\n\tdepartment_id: number;\n\tis_deleted: number;\n\tdeleted_at: string | null;\n\tdeleted_by: any;\n\ttoken: string;\n\tprofile_image: string;\n\tcurrency_data?: {\n\t\tid: number;\n\t\tsymbol: string;\n\t\tcurrency_name: string;\n\t\tnumber_format:string;\n\t\tposition: string | null;\n\t\tfraction_unit: string | null\n\t};\n\taccessCompanies?: any[]\n}\ninterface ERPUser extends Omit<ERPApiUser, 'token'> {\n\tfull_name: string;\n\tcompany_id: string;\n}\n\ninterface DefaultProviderProps {\n\tuser: ERPUser | null;\n\tloading: boolean;\n\tauthToken: string;\n\tsetUser: React.Dispatch<React.SetStateAction<ERPUser | null>>;\n\tsetLoading: React.Dispatch<React.SetStateAction<boolean>>;\n\tlogin: (\n\t\tparams: LoginFormValues,\n\t\tcallback: (err: string) => void\n\t) => Promise<void>;\n\tlogout: () => Promise<void>;\n\tforgotPassword: (\n\t\tparams: resetFormValues,\n\t\tcallback: (err: string) => void\n\t) => Promise<void>;\n\tresetPassword: (\n\t\tparams: resetPasswordValues,\n\t\tcallback: (err: string) => void\n\t) => Promise<void>;\n\tchangePassword: (\n\t\tparams: changePasswordValues,\n\t\tcallback: (err: string) => void\n\t) => Promise<void>;\n\tchangeUserPassword: (\n\t\tparams: changeUserPasswordValues,\n\t\tcallback: (err: string) => void\n\t) => Promise<void>;\n}\n\nconst defaultProvider: DefaultProviderProps = {\n\tuser: null,\n\tloading: true,\n\tauthToken: '',\n\tsetUser: () => null,\n\tsetLoading: () => Boolean,\n\tlogin: () => Promise.resolve(),\n\tlogout: () => Promise.resolve(),\n\tforgotPassword: () => Promise.resolve(),\n\tresetPassword: () => Promise.resolve(),\n\tchangePassword: () => Promise.resolve(),\n\tchangeUserPassword: () => Promise.resolve()\n};\n\nconst AuthContext = createContext(defaultProvider);\n\ninterface AuthProviderProps {\n\tchildren: React.ReactNode;\n}\n\nsetBaseUrl(`${import.meta.env.VITE_BACKEND_BASE_URL}/rbac`);\n\nconst AuthProvider: React.FC<AuthProviderProps> = ({ children }) => {\n\t// ** States\n\tconst [user, setUser] = useState(defaultProvider.user);\n\tconst [authToken, setAuthToken] = useState<string>('');\n\tconst [loading, setLoading] = useState(defaultProvider.loading);\n\tconst socketRef = useRef<Socket | null>(null);\n\n\t// ** Hooks\n\tconst navigate = useNavigate();\n\t// const location = useLocation();\n\tconst isJsonParse = (string?: string | null) => {\n\t\tif (!string) return false;\n\n\t\ttry {\n\t\t\treturn JSON.parse(string);\n\t\t} catch (error) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tconst getNotificationUrl = (data: any) => {\n\t\tconst { moduleName = '', moduleId = '', notificationData = {} } = data;\n\t\tconst key = moduleName.toLowerCase();\n\n\t\tconst routeMap: Record<string, () => string> = {\n\t\t\t'sales invoice': () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_SALES_INVOICES), moduleId.toString()),\n\n\t\t\t'asset transfers': () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_ASSET_TRANSFER), moduleId.toString()),\n\n\t\t\t'budgets': () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_BUDGET), moduleId.toString()),\n\n\t\t\t'cash expense': () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_CASH_EXPENSE), moduleId.toString()),\n\n\t\t\t'credit notes': () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_CREDIT_NOTE), moduleId.toString()),\n\n\t\t\t'debit notes': () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_DEBIT_NOTE), moduleId.toString()),\n\n\t\t\t'expense reimbursement': () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_EXPENSE_REIMBURSEMENT), moduleId.toString()),\n\n\t\t\t'journal entries': () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_JOURNAL_ENTRY), moduleId.toString()),\n\n\t\t\t'payment entries': () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_PAYMENT_ENTRY), moduleId.toString()),\n\n\t\t\t'purchase invoice': () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_PURCHASE_INVOICE), moduleId.toString()),\n\n\t\t\t'stock transfer': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorInventory(PathnameInventory.VIEW_STOCK_TRANSFER), moduleId.toString()),\n\n\t\t\t'bills of materials': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorManufacuring(PathnameManufacturing.VIEW_BILL_OF_MATERIAL), moduleId.toString()),\n\n\t\t\t'purchase agreement': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorPurchase(PathnamePurchase.VIEW_PURCHASE_AGREEMENT), moduleId.toString()),\n\n\t\t\t'purchase orders': () =>\n\t\t\tgenerateRouteWithId(notificationData?.data?.is_rental == 1 ? RENTALROUTES.VIEW : PathnameGeneratorPurchase(PathnamePurchase.VIEW_PURCHASE_ORDER) , moduleId.toString()),\n\n\t\t\t'purchase request': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorPurchase(PathnamePurchase.VIEW_PURCHASE_ORDER), moduleId.toString()),\n\n\t\t\t'vra': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorPurchase(PathnamePurchase.VIEW_VENDOR_RETURNS), moduleId.toString()),\n\n\t\t\t'sl customer returns': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorCrm(PathnameCrm.VIEW_CUSTOMER_RETURNS), moduleId.toString()),\n\n\t\t\t'sales order': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorCrm(PathnameCrm.VIEW_SALES_ORDER), moduleId.toString()),\n\n\t\t\t'rental order': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorRental(PathnameRental.VIEW_RENTAL_ORDER), moduleId.toString()),\n\n\t\t\t'replacement order': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorRental(PathnameRental.VIEW_RENTAL_ORDER), moduleId.toString()),\n\n\t\t\t'rental agreement': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorRental(PathnameRental.VIEW_AGREEMENT), moduleId.toString()),\n\n\t\t\t'cross hire order': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorRental(PathnameRental.VIEW_CROSS_HIRE_ORDER), moduleId.toString()),\n\n\t\t\t'cross hire request': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorRental(PathnameRental.VIEW_CROSS_HIRE_REQUEST), moduleId.toString()),\n\t\t};\n\n\t\treturn routeMap[key]?.() || '/dashboard';\n\t};\n\n\n\t// const initAuth = async () => {\n\t// \tconst storedToken = window.localStorage.getItem(auth.storageTokenKeyName);\n\t// \tconst storedUser: ERPUser =\n\t// \t\tisJsonParse(window.localStorage.getItem(auth.storageUserKeyName)) || null;\n\t// \tif (storedToken && storedUser) {\n\t// \t\ttry {\n\t// \t\t\tconst userData = await getV1UserId({\n\t// \t\t\t\t'x-token': storedToken,\n\t// \t\t\t\tid: String(storedUser.id)\n\t// \t\t\t});\n\t// \t\t} catch (error) {\n\t// \t\t}\n\t// \t} else {\n\t// \t\tsetLoading(false);\n\t// \t}\n\t// \tif (storedToken && storedUser) {\n\t// \t\tsetUser(storedUser);\n\t// setLoading(false);\n\t// \t} else {\n\t// \t\thandleLogout();\n\t// setLoading(false);\n\t// \t}\n\t// };\n\n\t// useEffect(() => {\n\t// setLoading(true)\n\t// \tinitAuth();\n\t// \tconst storedToken = window.localStorage.getItem(auth.storageTokenKeyName);\n\t// \tif (!storedToken) {\n\t// \t\tsetUser(null);\n\t// \t} else {\n\t// \t\tsetLoading(false);\n\t// \t}\n\t// \teslint-disable-next-line react-hooks/exhaustive-deps\n\t// }, [location.pathname]);\n\n\t// useEffect(() => {\n\t// \tsetLoading(true);\n\t// \tinitAuth();\n\t// \tconst storedToken = window.localStorage.getItem(auth.storageTokenKeyName);\n\t// \tif (!storedToken) {\n\t// \t\tsetLoading(false);\n\t// \t\tnavigate(Pathname.LOGIN);\n\t// \t}\n\t// \t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t// }, []);\n\n\tuseEffect(() => {\n\t\tsetLoading(true);\n\t\t// initAuth()\n\t\tconst storedToken = window.localStorage.getItem(auth.storageTokenKeyName);\n\t\tconst storedUser =\n\t\t\tisJsonParse(window.localStorage.getItem(auth.storageUserKeyName)) ?? null;\n\t\tconst publicRoutes = [Pathname.LOGIN, Pathname.FORGOT_PASSWORD, Pathname.RESET_PASSWORD, Pathname.CHANGE_PASSWORD];\n\t\tconst currentPath = window.location.pathname;\n\t\tif (!storedToken && !storedUser) {\n\t\t\tif (!publicRoutes.includes(currentPath)) {\n\t\t\t\tnavigate(Pathname.LOGIN);\n\t\t\t}\n\t\t\tsetLoading(false);\n\t\t} else {\n\t\t\tsetUser(storedUser);\n\t\t\tsetAuthToken(storedToken || '');\n\t\t\tsetLoading(false);\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (!authToken) {\n\t\t\tif (socketRef.current) {\n\t\t\t\tsocketRef.current?.disconnect();\n\t\t\t\tsocketRef.current = null\n\t\t\t}\n\t\t\tconsole.warn(\"No auth token found, not connecting to socket.\");\n\t\t\treturn;\n\t\t}\n\n\t\tconst socket = io(import.meta.env.VITE_SOCKET_BASE_URL, {\n\t\t\ttransports: [\"websocket\"],\n\t\t\tauth: { token: authToken },\n\t\t\tpath: \"/socket.io/\",\n\t\t\t\n\t\t});\n\t\tsocketRef.current = socket;\n\n\t\tsocket.on(\"connect\", () => {\n\t\t\tconsole.log(\"Socket connected:\", socket.id);\n\t\t\tsocket.onAny((event, ...args) => {\n\t\t\t\tconsole.log(`Received event: ${event}`, args);\n\t\t\t});\n\t\t});\n\t\t\n\t\t// socket event handler\n\t\tsocket.on('notification', (data) => {\n\t\tconst { message, notificationData } = data || {};\n\t\tlet notificationContent: React.ReactNode = message;\n\t\tconst url = getNotificationUrl(data);\n\n\t\tif (notificationData) {\n\t\t\tconst { notification_type } = notificationData;\n\n\t\t\tswitch (notification_type) {\n\t\t\t\tcase 'addApprovers': {\n\t\t\t\t\t\n\t\t\t\t\tnotificationContent = message;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase 'change_approval_status': {\n\t\t\t\t\tnotificationContent = message;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tdefault: {\n\t\t\t\t\tnotificationContent = message;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tenqueueSnackbar(String(message), {\n\t\t\tvariant: 'default',\n\t\t\tanchorOrigin: { vertical: 'top', horizontal: 'center' },\n\t\t\tautoHideDuration: 5000,\n\t\t\tcontent: (key) => (\n\t\t\t<CustomSnackbar snackbarKey={key} message={notificationContent} data={notificationData} variant=\"default\" linkUrl={url}/>\n\t\t\t),\n\t\t});\n\t\t});\n\n\n\t\tsocket.on(\"sales_invoice_viewed\", (data) => {\n\t\t\tconsole.log(\"Invoice viewed:\", data.invoiceId, \"by user:\", data.userId);\n\t\t});\n\n\t\tsocket.on(\"error\", (errMsg) => {\n\t\t\tenqueueSnackbar(`Socket error: ${errMsg}`, { variant: \"error\" });\n\t\t\tconsole.error(\"Socket error:\", errMsg);\n\t\t});\n\n\t\t// Clean up on unmount\n\t\treturn () => {\n\t\t\tif (socketRef.current) {\n\t\t\t\tsocketRef.current.disconnect();\n\t\t\t\tsocketRef.current = null\n\t\t\t}\n\t\t};\n\t}, [authToken]);\n\n\tconst handleLogin = async (\n\t\tparams: LoginFormValues,\n\t\tcallback: (err: string) => void\n\t) => {\n\t\tsetLoading(true);\n\t\tconst storedToken = window.localStorage.getItem(auth.storageTokenKeyName);\n\t\tif (storedToken && user) {\n\t\t\treturn navigate(Pathname.DASHBOARD);\n\t\t}\n\n\t\ttry {\n\t\t\tconst loginUser = await postV1AuthLogin({ ...params, ...getToken() });\n\t\t\tif (loginUser.success) {\n\t\t\t\tconst data: ERPApiUser | null = loginUser?.data?.login || null;\n\t\t\t\tif (data) {\n\t\t\t\t\twindow.localStorage.setItem(auth.storageTokenKeyName, data.token);\n\t\t\t\t\tconst userData: ERPUser = {\n\t\t\t\t\t\t...data,\n\t\t\t\t\t\tfull_name: `${data.first_name} ${data.last_name}`\n\t\t\t\t\t};\n\t\t\t\t\twindow.localStorage.setItem(\n\t\t\t\t\t\tauth.storageUserKeyName,\n\t\t\t\t\t\tJSON.stringify(userData)\n\t\t\t\t\t);\n\t\t\t\t\tsetUser(userData);\n\t\t\t\t\tsetAuthToken(data.token);\n\t\t\t\t\tnavigate(Pathname.DASHBOARD);\n\t\t\t\t\tsetLoading(false);\n\t\t\t\t\tdelete data.token;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tlet message: string = 'Something went wrong';\n\t\t\tif (error instanceof Error) {\n\t\t\t\tmessage = isJsonParse(error.message).message || error.message;\n\t\t\t}\n\n\t\t\tcallback(message);\n\t\t}\n\t};\n\n\tconst handleLogout = async () => {\n\t\twindow.localStorage.removeItem(auth.storageTokenKeyName);\n\t\twindow.localStorage.removeItem(auth.storageUserKeyName);\n\t\twindow.localStorage.removeItem(auth.storageAccessKeyName);\n\t\tsetUser(null);\n\t\tsetAuthToken('');\n\t\tnavigate(Pathname.LOGIN);\n\t};\n\n\tconst handleForgotPassword = async (params: resetFormValues,\n\t\tcallback: (type: boolean, err: string) => void) => {\n\t\ttry {\n\t\t\tawait postV1AuthForgotPassword({ ...params, ...getToken() });\n\t\t\tcallback(true, \"Reset Link sent to your email\");\n\t\t} catch (error) {\n\t\t\tlet message: string = 'Something went wrong';\n\t\t\tif (error instanceof Error) {\n\t\t\t\tmessage = isJsonParse(error.message).message || error.message;\n\t\t\t}\n\n\t\t\tcallback(false, message);\n\t\t}\n\t};\n\n\tconst handleResetPassword = async (params: resetPasswordValues,\n\t\tcallback: (err: string) => void) => {\n\t\ttry {\n\t\t\tconst response = await postV1AuthResetPassword({ ...params, ...getToken() });\n\t\t\tcallback(response);\n\t\t} catch (error) {\n\t\t\tlet message: string = 'Something went wrong';\n\t\t\tconsole.log(\"Error \", error)\n\t\t\tif (error instanceof Error) {\n\t\t\t\tmessage = isJsonParse(error.message).message || error.message;\n\t\t\t\tcallback(message);\n\t\t\t}\n\t\t}\n\t}\n\n\tconst handleChangePassword = async (params: resetPasswordValues,\n\t\tcallback: (err: string) => void) => {\n\t\ttry {\n\t\t\tawait postV1AuthChangePassword({ ...params, ...getToken() });\n\t\t\tcallback(null);\n\t\t} catch (error) {\n\t\t\tlet message: string = 'Something went wrong';\n\t\t\tconsole.log(\"Error \", error)\n\t\t\tif (error instanceof Error) {\n\t\t\t\tmessage = isJsonParse(error.message).message || error.message;\n\t\t\t\tcallback(message);\n\t\t\t}\n\t\t}\n\t\tcallback(\"reset\");\n\t}\n\n\tconst handleChangeUserPassword = async (params: resetPasswordValues,\n\t\tcallback: (err: string, resType: boolean) => void) => {\n\t\ttry {\n\t\t\tawait postV1AuthChangeUserPassword({ ...params, ...getToken() });\n\t\t\tcallback('Password Changed Successfully', true);\n\t\t} catch (error) {\n\t\t\tlet message: string = 'Something went wrong';\n\t\t\tif (error instanceof Error) {\n\t\t\t\tmessage = isJsonParse(error.message).message || error.message;\n\t\t\t\tcallback(message, false);\n\t\t\t}\n\t\t}\n\t}\n\n\tconst handleChangeUserPasswordByAdmin = async (params: changePasswordValues,\n\t\tcallback: (err: string, resType: boolean) => void) => {\n\t\ttry {\n\t\t\tawait postV1AuthChangeUserPasswordByAdmin({ ...params, ...getToken() });\n\t\t\tcallback('Password Changed Successfully', true);\n\t\t} catch (error) {\n\t\t\tlet message: string = 'Something went wrong';\n\t\t\tif (error instanceof Error) {\n\t\t\t\tmessage = isJsonParse(error.message).message || error.message;\n\t\t\t\tcallback(message, false);\n\t\t\t}\n\t\t}\n\t}\n\n\n\tconst values = {\n\t\tuser,\n\t\tauthToken,\n\t\tloading,\n\t\tsetUser,\n\t\tsetLoading,\n\t\tlogin: handleLogin,\n\t\tlogout: handleLogout,\n\t\tforgotPassword: handleForgotPassword,\n\t\tresetPassword: handleResetPassword,\n\t\tchangePassword: handleChangePassword,\n\t\tchangeUserPassword: handleChangeUserPassword,\n\t\tchangeUserPasswordByAdmin: handleChangeUserPasswordByAdmin\n\t};\n\n\treturn <AuthContext.Provider value={values}>{children}</AuthContext.Provider>;\n};\n\nexport { AuthContext, AuthProvider };\n"],"names":["defaultProvider","user","loading","authToken","setUser","setLoading","Boolean","login","Promise","resolve","logout","forgotPassword","resetPassword","changePassword","changeUserPassword","AuthContext","createContext","setBaseUrl","children","useState","setAuthToken","socketRef","useRef","navigate","useNavigate","isJsonParse","string","JSON","parse","error","useEffect","storedToken","window","localStorage","getItem","auth","storageTokenKeyName","storedUser","storageUserKeyName","publicRoutes","Pathname","LOGIN","FORGOT_PASSWORD","RESET_PASSWORD","CHANGE_PASSWORD","currentPath","location","pathname","includes","current","_a","disconnect","socket","io","transports","token","path","on","onAny","event","args","data","message","notificationData","notificationContent","url","moduleName","moduleId","routeMap","generateRouteWithId","PathnameGenerator","PathnameAccounting","VIEW_SALES_INVOICES","toString","VIEW_ASSET_TRANSFER","budgets","VIEW_BUDGET","VIEW_CASH_EXPENSE","VIEW_CREDIT_NOTE","VIEW_DEBIT_NOTE","VIEW_EXPENSE_REIMBURSEMENT","VIEW_JOURNAL_ENTRY","VIEW_PAYMENT_ENTRY","VIEW_PURCHASE_INVOICE","PathnameGeneratorInventory","PathnameInventory","VIEW_STOCK_TRANSFER","PathnameGeneratorManufacuring","PathnameManufacturing","VIEW_BILL_OF_MATERIAL","PathnameGeneratorPurchase","PathnamePurchase","VIEW_PURCHASE_AGREEMENT","is_rental","RENTALROUTES","VIEW","VIEW_PURCHASE_ORDER","vra","VIEW_VENDOR_RETURNS","PathnameGeneratorCrm","PathnameCrm","VIEW_CUSTOMER_RETURNS","VIEW_SALES_ORDER","PathnameGeneratorRental","PathnameRental","VIEW_RENTAL_ORDER","VIEW_AGREEMENT","VIEW_CROSS_HIRE_ORDER","VIEW_CROSS_HIRE_REQUEST","toLowerCase","call","getNotificationUrl","notification_type","enqueueSnackbar","String","variant","anchorOrigin","vertical","horizontal","autoHideDuration","content","key","jsx","CustomSnackbar","snackbarKey","linkUrl","errMsg","values","async","params","callback","DASHBOARD","loginUser","postV1AuthLogin","getToken","success","setItem","userData","full_name","first_name","last_name","stringify","Error","removeItem","storageAccessKeyName","postV1AuthForgotPassword","postV1AuthResetPassword","postV1AuthChangePassword","postV1AuthChangeUserPassword","changeUserPasswordByAdmin","postV1AuthChangeUserPasswordByAdmin","Provider","value"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/contexts/AuthContext.tsx"],"sourcesContent":["import React, { createContext, useEffect, useRef, useState } from 'react';\nimport {\n\tpostV1AuthChangePassword,\n\tpostV1AuthForgotPassword,\n\tpostV1AuthChangeUserPassword,\n\t// getV1UserId,\n\tpostV1AuthLogin,\n\tpostV1AuthResetPassword,\n\tsetBaseUrl,\n\tpostV1AuthChangeUserPasswordByAdmin\n} from '../api-client/api.rbac/api';\nimport { auth } from '../constants/auth';\nimport { /* useLocation, */ useNavigate } from 'react-router-dom';\nimport { Pathname } from '../constants/pathnames/pathname'; // Removed - should be passed as props or configured by consuming app\nimport { getToken } from '../utils/common';\nimport { enqueueSnackbar } from 'notistack';\nimport { Socket, io } from 'socket.io-client';\nimport { generateRouteWithId } from '../utils/route-utils';\nimport {\n\tPathnameAccounting,\n\tPathnameGenerator\n} from '../constants/pathnames/pathname.accounting';\n\nimport {\n\tPathnameInventory,\n\tPathnameGenerator as PathnameGeneratorInventory\n} from '../constants/pathnames/pathname.inventory';\n\nimport {\n\tPathnameManufacturing,\n\tPathnameGenerator as PathnameGeneratorManufacuring\n} from '../constants/pathnames/pathname.manufacturing';\n\nimport {\n\tPathnamePurchase,\n\tPathnameGenerator as PathnameGeneratorPurchase\n} from '../constants/pathnames/pathname.procurement';\n\nimport {\n\tPathnameCrm,\n\tPathnameGenerator as PathnameGeneratorCrm\n} from '../constants/pathnames/pathname.crm';\n\nimport {\n\tPathnameRental,\n\tPathnameGenerator as PathnameGeneratorRental\n} from '../constants/pathnames/pathname.rental';\n\nimport { ROUTES as RENTALROUTES } from '../constants/pathnames/pathname.rental';\n\nimport CustomSnackbar from '../components/custom-snackbar/custom-snackbar.tsx';\nexport interface LoginFormValues {\n\temail: string;\n\tpassword: string;\n}\n\nexport interface resetFormValues {\n\temail: string;\n}\n\nexport interface resetPasswordValues {\n\ttoken: string;\n}\n\nexport interface changePasswordValues {\n\tpassword: string;\n}\n\nexport interface changeUserPasswordValues {\n\tpassword: string;\n}\n\ninterface ERPApiUser {\n\tid: string | number;\n\tfirst_name: string;\n\tlast_name: string;\n\tmiddle_name: string;\n\tcountry_code: string;\n\temail: string;\n\tcreated_by: any;\n\tupdated_by: any;\n\tcreated_at: string;\n\tupdated_at: string;\n\trole_id: string;\n\tdepartment_id: number;\n\tis_deleted: number;\n\tdeleted_at: string | null;\n\tdeleted_by: any;\n\ttoken: string;\n\tprofile_image: string;\n\tcurrency_data?: {\n\t\tid: number;\n\t\tsymbol: string;\n\t\tcurrency_name: string;\n\t\tnumber_format:string;\n\t\tposition: string | null;\n\t\tfraction_unit: string | null\n\t};\n\taccessCompanies?: any[]\n}\ninterface ERPUser extends Omit<ERPApiUser, 'token'> {\n\tfull_name: string;\n\tcompany_id: string;\n}\n\ninterface DefaultProviderProps {\n\tuser: ERPUser | null;\n\tloading: boolean;\n\tauthToken: string;\n\tsetUser: React.Dispatch<React.SetStateAction<ERPUser | null>>;\n\tsetLoading: React.Dispatch<React.SetStateAction<boolean>>;\n\tlogin: (\n\t\tparams: LoginFormValues,\n\t\tcallback: (err: string) => void\n\t) => Promise<void>;\n\tlogout: () => Promise<void>;\n\tforgotPassword: (\n\t\tparams: resetFormValues,\n\t\tcallback: (err: string) => void\n\t) => Promise<void>;\n\tresetPassword: (\n\t\tparams: resetPasswordValues,\n\t\tcallback: (err: string) => void\n\t) => Promise<void>;\n\tchangePassword: (\n\t\tparams: changePasswordValues,\n\t\tcallback: (err: string) => void\n\t) => Promise<void>;\n\tchangeUserPassword: (\n\t\tparams: changeUserPasswordValues,\n\t\tcallback: (err: string) => void\n\t) => Promise<void>;\n}\n\nconst defaultProvider: DefaultProviderProps = {\n\tuser: null,\n\tloading: true,\n\tauthToken: '',\n\tsetUser: () => null,\n\tsetLoading: () => Boolean,\n\tlogin: () => Promise.resolve(),\n\tlogout: () => Promise.resolve(),\n\tforgotPassword: () => Promise.resolve(),\n\tresetPassword: () => Promise.resolve(),\n\tchangePassword: () => Promise.resolve(),\n\tchangeUserPassword: () => Promise.resolve()\n};\n\nconst AuthContext = createContext(defaultProvider);\n\ninterface AuthProviderProps {\n\tchildren: React.ReactNode;\n}\n\nsetBaseUrl(`${import.meta.env.VITE_BACKEND_BASE_URL}/rbac`);\n\nconst AuthProvider: React.FC<AuthProviderProps> = ({ children }) => {\n\t// ** States\n\tconst [user, setUser] = useState(defaultProvider.user);\n\tconst [authToken, setAuthToken] = useState<string>('');\n\tconst [loading, setLoading] = useState(defaultProvider.loading);\n\tconst socketRef = useRef<Socket | null>(null);\n\n\t// ** Hooks\n\tconst navigate = useNavigate();\n\t// const location = useLocation();\n\tconst isJsonParse = (string?: string | null) => {\n\t\tif (!string) return false;\n\n\t\ttry {\n\t\t\treturn JSON.parse(string);\n\t\t} catch (error) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tconst getNotificationUrl = (data: any) => {\n\t\tconst { moduleName = '', moduleId = '', notificationData = {} } = data;\n\t\tconst key = moduleName.toLowerCase();\n\n\t\tconst routeMap: Record<string, () => string> = {\n\t\t\t'sales invoice': () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_SALES_INVOICES), moduleId.toString()),\n\n\t\t\t'asset transfers': () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_ASSET_TRANSFER), moduleId.toString()),\n\n\t\t\t'budgets': () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_BUDGET), moduleId.toString()),\n\n\t\t\t'cash expense': () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_CASH_EXPENSE), moduleId.toString()),\n\n\t\t\t'credit notes': () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_CREDIT_NOTE), moduleId.toString()),\n\n\t\t\t'debit notes': () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_DEBIT_NOTE), moduleId.toString()),\n\n\t\t\t'expense reimbursement': () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_EXPENSE_REIMBURSEMENT), moduleId.toString()),\n\n\t\t\t'journal entries': () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_JOURNAL_ENTRY), moduleId.toString()),\n\n\t\t\t'payment entries': () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_PAYMENT_ENTRY), moduleId.toString()),\n\n\t\t\t'purchase invoice': () =>\n\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_PURCHASE_INVOICE), moduleId.toString()),\n\n\t\t\t'stock transfer': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorInventory(PathnameInventory.VIEW_STOCK_TRANSFER), moduleId.toString()),\n\n\t\t\t'bills of materials': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorManufacuring(PathnameManufacturing.VIEW_BILL_OF_MATERIAL), moduleId.toString()),\n\n\t\t\t'purchase agreement': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorPurchase(PathnamePurchase.VIEW_PURCHASE_AGREEMENT), moduleId.toString()),\n\n\t\t\t'purchase orders': () =>\n\t\t\tgenerateRouteWithId(notificationData?.data?.is_rental == 1 ? RENTALROUTES.VIEW : PathnameGeneratorPurchase(PathnamePurchase.VIEW_PURCHASE_ORDER) , moduleId.toString()),\n\n\t\t\t'purchase request': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorPurchase(PathnamePurchase.VIEW_PURCHASE_ORDER), moduleId.toString()),\n\n\t\t\t'vra': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorPurchase(PathnamePurchase.VIEW_VENDOR_RETURNS), moduleId.toString()),\n\n\t\t\t'sl customer returns': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorCrm(PathnameCrm.VIEW_CUSTOMER_RETURNS), moduleId.toString()),\n\n\t\t\t'sales order': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorCrm(PathnameCrm.VIEW_SALES_ORDER), moduleId.toString()),\n\n\t\t\t'rental order': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorRental(PathnameRental.VIEW_RENTAL_ORDER), moduleId.toString()),\n\n\t\t\t'replacement order': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorRental(PathnameRental.VIEW_RENTAL_ORDER), moduleId.toString()),\n\n\t\t\t'rental agreement': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorRental(PathnameRental.VIEW_AGREEMENT), moduleId.toString()),\n\n\t\t\t'cross hire order': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorRental(PathnameRental.VIEW_CROSS_HIRE_ORDER), moduleId.toString()),\n\n\t\t\t'cross hire request': () =>\n\t\t\tgenerateRouteWithId(PathnameGeneratorRental(PathnameRental.VIEW_CROSS_HIRE_REQUEST), moduleId.toString()),\n\t\t};\n\n\t\treturn routeMap[key]?.() || '/dashboard';\n\t};\n\n\n\t// const initAuth = async () => {\n\t// \tconst storedToken = window.localStorage.getItem(auth.storageTokenKeyName);\n\t// \tconst storedUser: ERPUser =\n\t// \t\tisJsonParse(window.localStorage.getItem(auth.storageUserKeyName)) || null;\n\t// \tif (storedToken && storedUser) {\n\t// \t\ttry {\n\t// \t\t\tconst userData = await getV1UserId({\n\t// \t\t\t\t'x-token': storedToken,\n\t// \t\t\t\tid: String(storedUser.id)\n\t// \t\t\t});\n\t// \t\t} catch (error) {\n\t// \t\t}\n\t// \t} else {\n\t// \t\tsetLoading(false);\n\t// \t}\n\t// \tif (storedToken && storedUser) {\n\t// \t\tsetUser(storedUser);\n\t// setLoading(false);\n\t// \t} else {\n\t// \t\thandleLogout();\n\t// setLoading(false);\n\t// \t}\n\t// };\n\n\t// useEffect(() => {\n\t// setLoading(true)\n\t// \tinitAuth();\n\t// \tconst storedToken = window.localStorage.getItem(auth.storageTokenKeyName);\n\t// \tif (!storedToken) {\n\t// \t\tsetUser(null);\n\t// \t} else {\n\t// \t\tsetLoading(false);\n\t// \t}\n\t// \teslint-disable-next-line react-hooks/exhaustive-deps\n\t// }, [location.pathname]);\n\n\t// useEffect(() => {\n\t// \tsetLoading(true);\n\t// \tinitAuth();\n\t// \tconst storedToken = window.localStorage.getItem(auth.storageTokenKeyName);\n\t// \tif (!storedToken) {\n\t// \t\tsetLoading(false);\n\t// \t\tnavigate(Pathname.LOGIN);\n\t// \t}\n\t// \t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t// }, []);\n\n\tuseEffect(() => {\n\t\tsetLoading(true);\n\t\t// initAuth()\n\t\tconst storedToken = window.localStorage.getItem(auth.storageTokenKeyName);\n\t\tconst storedUser =\n\t\t\tisJsonParse(window.localStorage.getItem(auth.storageUserKeyName)) ?? null;\n\t\tconst publicRoutes = [Pathname.LOGIN, Pathname.FORGOT_PASSWORD, Pathname.RESET_PASSWORD, Pathname.CHANGE_PASSWORD];\n\t\tconst currentPath = window.location.pathname;\n\t\tif (!storedToken && !storedUser) {\n\t\t\tif (!publicRoutes.includes(currentPath)) {\n\t\t\t\tnavigate(Pathname.LOGIN);\n\t\t\t}\n\t\t\tsetLoading(false);\n\t\t} else {\n\t\t\tsetUser(storedUser);\n\t\t\tsetAuthToken(storedToken || '');\n\t\t\tsetLoading(false);\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (!authToken) {\n\t\t\tif (socketRef.current) {\n\t\t\t\tsocketRef.current?.disconnect();\n\t\t\t\tsocketRef.current = null\n\t\t\t}\n\t\t\tconsole.warn(\"No auth token found, not connecting to socket.\");\n\t\t\treturn;\n\t\t}\n\n\t\tconst socket = io(import.meta.env.VITE_SOCKET_BASE_URL, {\n\t\t\ttransports: [\"websocket\"],\n\t\t\tauth: { token: authToken },\n\t\t\tpath: \"/socket.io/\",\n\t\t\t\n\t\t});\n\t\tsocketRef.current = socket;\n\n\t\tsocket.on(\"connect\", () => {\n\t\t\tconsole.log(\"Socket connected:\", socket.id);\n\t\t\tsocket.onAny((event, ...args) => {\n\t\t\t\tconsole.log(`Received event: ${event}`, args);\n\t\t\t});\n\t\t});\n\t\t\n\t\t// socket event handler\n\t\tsocket.on('notification', (data) => {\n\t\tconst { message, notificationData } = data || {};\n\t\tlet notificationContent: React.ReactNode = message;\n\t\tconst url = getNotificationUrl(data);\n\n\t\tif (notificationData) {\n\t\t\tconst { notification_type } = notificationData;\n\n\t\t\tswitch (notification_type) {\n\t\t\t\tcase 'addApprovers': {\n\t\t\t\t\t\n\t\t\t\t\tnotificationContent = message;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase 'change_approval_status': {\n\t\t\t\t\tnotificationContent = message;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tdefault: {\n\t\t\t\t\tnotificationContent = message;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tenqueueSnackbar(String(message), {\n\t\t\tvariant: 'default',\n\t\t\tanchorOrigin: { vertical: 'top', horizontal: 'center' },\n\t\t\tautoHideDuration: 5000,\n\t\t\tcontent: (key) => (\n\t\t\t<CustomSnackbar snackbarKey={key} message={notificationContent} data={notificationData} variant=\"default\" linkUrl={url}/>\n\t\t\t),\n\t\t});\n\t\t});\n\n\n\t\tsocket.on(\"sales_invoice_viewed\", (data) => {\n\t\t\tconsole.log(\"Invoice viewed:\", data.invoiceId, \"by user:\", data.userId);\n\t\t});\n\n\t\tsocket.on(\"error\", (errMsg) => {\n\t\t\tenqueueSnackbar(`Socket error: ${errMsg}`, { variant: \"error\" });\n\t\t\tconsole.error(\"Socket error:\", errMsg);\n\t\t});\n\n\t\t// Clean up on unmount\n\t\treturn () => {\n\t\t\tif (socketRef.current) {\n\t\t\t\tsocketRef.current.disconnect();\n\t\t\t\tsocketRef.current = null\n\t\t\t}\n\t\t};\n\t}, [authToken]);\n\n\tconst handleLogin = async (\n\t\tparams: LoginFormValues,\n\t\tcallback: (err: string) => void\n\t) => {\n\t\tsetLoading(true);\n\t\tconst storedToken = window.localStorage.getItem(auth.storageTokenKeyName);\n\t\tif (storedToken && user) {\n\t\t\treturn navigate(Pathname.DASHBOARD);\n\t\t}\n\n\t\ttry {\n\t\t\tconst loginUser = await postV1AuthLogin({ ...params, ...getToken() });\n\t\t\tif (loginUser.success) {\n\t\t\t\tconst data: ERPApiUser | null = loginUser?.data?.login || null;\n\t\t\t\tif (data) {\n\t\t\t\t\twindow.localStorage.setItem(auth.storageTokenKeyName, data.token);\n\t\t\t\t\tconst userData: ERPUser = {\n\t\t\t\t\t\t...data,\n\t\t\t\t\t\tfull_name: `${data.first_name} ${data.last_name}`\n\t\t\t\t\t};\n\t\t\t\t\twindow.localStorage.setItem(\n\t\t\t\t\t\tauth.storageUserKeyName,\n\t\t\t\t\t\tJSON.stringify(userData)\n\t\t\t\t\t);\n\t\t\t\t\tsetUser(userData);\n\t\t\t\t\tsetAuthToken(data.token);\n\t\t\t\t\tnavigate(Pathname.DASHBOARD);\n\t\t\t\t\tsetLoading(false);\n\t\t\t\t\tdelete data.token;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tlet message: string = 'Something went wrong';\n\t\t\tif (error instanceof Error) {\n\t\t\t\tmessage = isJsonParse(error.message).message || error.message;\n\t\t\t}\n\n\t\t\tcallback(message);\n\t\t}\n\t};\n\n\tconst handleLogout = async () => {\n\t\twindow.localStorage.removeItem(auth.storageTokenKeyName);\n\t\twindow.localStorage.removeItem(auth.storageUserKeyName);\n\t\twindow.localStorage.removeItem(auth.storageAccessKeyName);\n\t\tsetUser(null);\n\t\tsetAuthToken('');\n\t\tnavigate(Pathname.LOGIN);\n\t};\n\n\tconst handleForgotPassword = async (params: resetFormValues,\n\t\tcallback: (type: boolean, err: string) => void) => {\n\t\ttry {\n\t\t\tawait postV1AuthForgotPassword({ ...params, ...getToken() });\n\t\t\tcallback(true, \"Reset Link sent to your email\");\n\t\t} catch (error) {\n\t\t\tlet message: string = 'Something went wrong';\n\t\t\tif (error instanceof Error) {\n\t\t\t\tmessage = isJsonParse(error.message).message || error.message;\n\t\t\t}\n\n\t\t\tcallback(false, message);\n\t\t}\n\t};\n\n\tconst handleResetPassword = async (params: resetPasswordValues,\n\t\tcallback: (err: string) => void) => {\n\t\ttry {\n\t\t\tconst response = await postV1AuthResetPassword({ ...params, ...getToken() });\n\t\t\tcallback(response);\n\t\t} catch (error) {\n\t\t\tlet message: string = 'Something went wrong';\n\t\t\tconsole.log(\"Error \", error)\n\t\t\tif (error instanceof Error) {\n\t\t\t\tmessage = isJsonParse(error.message).message || error.message;\n\t\t\t\tcallback(message);\n\t\t\t}\n\t\t}\n\t}\n\n\tconst handleChangePassword = async (params: resetPasswordValues,\n\t\tcallback: (err: string) => void) => {\n\t\ttry {\n\t\t\tawait postV1AuthChangePassword({ ...params, ...getToken() });\n\t\t\tcallback(null);\n\t\t} catch (error) {\n\t\t\tlet message: string = 'Something went wrong';\n\t\t\tconsole.log(\"Error \", error)\n\t\t\tif (error instanceof Error) {\n\t\t\t\tmessage = isJsonParse(error.message).message || error.message;\n\t\t\t\tcallback(message);\n\t\t\t}\n\t\t}\n\t\tcallback(\"reset\");\n\t}\n\n\tconst handleChangeUserPassword = async (params: resetPasswordValues,\n\t\tcallback: (err: string, resType: boolean) => void) => {\n\t\ttry {\n\t\t\tawait postV1AuthChangeUserPassword({ ...params, ...getToken() });\n\t\t\tcallback('Password Changed Successfully', true);\n\t\t} catch (error) {\n\t\t\tlet message: string = 'Something went wrong';\n\t\t\tif (error instanceof Error) {\n\t\t\t\tmessage = isJsonParse(error.message).message || error.message;\n\t\t\t\tcallback(message, false);\n\t\t\t}\n\t\t}\n\t}\n\n\tconst handleChangeUserPasswordByAdmin = async (params: changePasswordValues,\n\t\tcallback: (err: string, resType: boolean) => void) => {\n\t\ttry {\n\t\t\tawait postV1AuthChangeUserPasswordByAdmin({ ...params, ...getToken() });\n\t\t\tcallback('Password Changed Successfully', true);\n\t\t} catch (error) {\n\t\t\tlet message: string = 'Something went wrong';\n\t\t\tif (error instanceof Error) {\n\t\t\t\tmessage = isJsonParse(error.message).message || error.message;\n\t\t\t\tcallback(message, false);\n\t\t\t}\n\t\t}\n\t}\n\n\n\tconst values = {\n\t\tuser,\n\t\tauthToken,\n\t\tloading,\n\t\tsetUser,\n\t\tsetLoading,\n\t\tlogin: handleLogin,\n\t\tlogout: handleLogout,\n\t\tforgotPassword: handleForgotPassword,\n\t\tresetPassword: handleResetPassword,\n\t\tchangePassword: handleChangePassword,\n\t\tchangeUserPassword: handleChangeUserPassword,\n\t\tchangeUserPasswordByAdmin: handleChangeUserPasswordByAdmin\n\t};\n\n\treturn <AuthContext.Provider value={values}>{children}</AuthContext.Provider>;\n};\n\nexport { AuthContext, AuthProvider };\n"],"names":["defaultProvider","user","loading","authToken","setUser","setLoading","Boolean","login","Promise","resolve","logout","forgotPassword","resetPassword","changePassword","changeUserPassword","AuthContext","createContext","setBaseUrl","children","useState","setAuthToken","socketRef","useRef","navigate","useNavigate","isJsonParse","string","JSON","parse","error","useEffect","storedToken","window","localStorage","getItem","auth","storageTokenKeyName","storedUser","storageUserKeyName","publicRoutes","Pathname","LOGIN","FORGOT_PASSWORD","RESET_PASSWORD","CHANGE_PASSWORD","currentPath","location","pathname","includes","current","_a","disconnect","socket","io","transports","token","path","on","onAny","event","args","data","message","notificationData","notificationContent","url","moduleName","moduleId","routeMap","generateRouteWithId","PathnameGenerator","PathnameAccounting","VIEW_SALES_INVOICES","toString","VIEW_ASSET_TRANSFER","budgets","VIEW_BUDGET","VIEW_CASH_EXPENSE","VIEW_CREDIT_NOTE","VIEW_DEBIT_NOTE","VIEW_EXPENSE_REIMBURSEMENT","VIEW_JOURNAL_ENTRY","VIEW_PAYMENT_ENTRY","VIEW_PURCHASE_INVOICE","PathnameGeneratorInventory","PathnameInventory","VIEW_STOCK_TRANSFER","PathnameGeneratorManufacuring","PathnameManufacturing","VIEW_BILL_OF_MATERIAL","PathnameGeneratorPurchase","PathnamePurchase","VIEW_PURCHASE_AGREEMENT","is_rental","RENTALROUTES","VIEW","VIEW_PURCHASE_ORDER","vra","VIEW_VENDOR_RETURNS","PathnameGeneratorCrm","PathnameCrm","VIEW_CUSTOMER_RETURNS","VIEW_SALES_ORDER","PathnameGeneratorRental","PathnameRental","VIEW_RENTAL_ORDER","VIEW_AGREEMENT","VIEW_CROSS_HIRE_ORDER","VIEW_CROSS_HIRE_REQUEST","toLowerCase","call","getNotificationUrl","notification_type","enqueueSnackbar","String","variant","anchorOrigin","vertical","horizontal","autoHideDuration","content","key","jsx","CustomSnackbar","snackbarKey","linkUrl","errMsg","values","async","params","callback","DASHBOARD","loginUser","postV1AuthLogin","getToken","success","setItem","userData","full_name","first_name","last_name","stringify","Error","removeItem","storageAccessKeyName","postV1AuthForgotPassword","postV1AuthResetPassword","postV1AuthChangePassword","postV1AuthChangeUserPassword","changeUserPasswordByAdmin","postV1AuthChangeUserPasswordByAdmin","Provider","value"],"mappings":"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"}
@@ -80,7 +80,7 @@ const LanguageProvider = ({ children }) => {
80
80
  const [state, dispatch] = useReducer(languageReducer, initialState);
81
81
  const { i18n } = useTranslation();
82
82
  useEffect(() => {
83
- setBaseUrl(`${"https://apidev.erpforce.co"}/rbac`);
83
+ setBaseUrl(`${"http://127.0.0.1:4011"}/rbac`);
84
84
  }, []);
85
85
  const safeChangeLanguage = async (langCode) => {
86
86
  if (i18n && typeof i18n.changeLanguage === "function") {
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../../../src/contexts/languageContext.tsx"],"sourcesContent":["// contexts/LanguageContext.tsx\nimport React, { createContext, useEffect, useReducer, ReactNode } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { DEFAULT_LANG } from '../constants/all-language';\nimport { getToken } from '../utils/common';\nimport { setRoleURL } from '../utils/server';\nimport { getV1Languages } from '../api-client/api.system-feature/api';\n// import ErpLoader from '../components/loader/erp-loader';\n\n// Types\ninterface ILanguage {\n label: string;\n code: string;\n direction: string;\n}\n\ninterface LanguageState {\n languages: ILanguage[];\n currentLanguage: ILanguage | null;\n isLoading: boolean;\n error: string | null;\n isFallbackActive: boolean; // Track if we're using fallback\n}\n\ninterface LanguageContextType extends LanguageState {\n changeLanguage: (langCode: string) => void;\n fetchLanguages: () => Promise<void>;\n}\n\n// Define fallback languages in order of preference - English first\nconst FALLBACK_LANGUAGES = [\n 'en', // English as primary fallback\n 'en-US', // US English as secondary\n DEFAULT_LANG, // Then default language\n];\n\n// Create English fallback language object\nconst createEnglishFallback = (): ILanguage => ({\n code: 'en',\n label: 'English',\n direction: 'ltr'\n});\n\n// Action types\ntype LanguageAction =\n | { type: 'FETCH_LANGUAGES_START' }\n | { type: 'FETCH_LANGUAGES_SUCCESS'; payload: ILanguage[] }\n | { type: 'FETCH_LANGUAGES_ERROR'; payload: string }\n | { type: 'SET_CURRENT_LANGUAGE'; payload: ILanguage; isFallback?: boolean }\n | { type: 'SET_FALLBACK_ACTIVE'; payload: boolean };\n\n// Initial state\nconst initialState: LanguageState = {\n languages: [],\n currentLanguage: null,\n isLoading: false,\n error: null,\n isFallbackActive: false,\n};\n\n// Helper function to find the best available language\nconst findBestAvailableLanguage = (\n languages: ILanguage[], \n preferredCode?: string\n): ILanguage | null => {\n if (!languages || languages.length === 0) return null;\n\n // First try the preferred language if provided\n if (preferredCode) {\n const preferred = languages.find(lang => lang.code === preferredCode);\n if (preferred) return preferred;\n }\n\n // Try fallback languages in order (English first)\n for (const fallbackCode of FALLBACK_LANGUAGES) {\n const fallback = languages.find(lang => lang.code === fallbackCode);\n if (fallback) return fallback;\n }\n\n // If no fallbacks found, return the first available language\n return languages[0] || null;\n};\n\n// Reducer\nconst languageReducer = (state: LanguageState, action: LanguageAction): LanguageState => {\n switch (action.type) {\n case 'FETCH_LANGUAGES_START':\n return {\n ...state,\n isLoading: true,\n error: null,\n };\n case 'FETCH_LANGUAGES_SUCCESS':\n return {\n ...state,\n languages: action.payload,\n isLoading: false,\n error: null,\n isFallbackActive: false,\n };\n case 'FETCH_LANGUAGES_ERROR':\n return {\n ...state,\n isLoading: false,\n error: action.payload,\n isFallbackActive: true, \n };\n case 'SET_CURRENT_LANGUAGE':\n return {\n ...state,\n currentLanguage: action.payload,\n isFallbackActive: action.isFallback || false,\n };\n case 'SET_FALLBACK_ACTIVE':\n return {\n ...state,\n isFallbackActive: action.payload,\n };\n default:\n return state;\n }\n};\n\n// Create context\nconst LanguageContext = createContext<LanguageContextType | undefined>(undefined);\n\n// Provider component\ninterface LanguageProviderProps {\n children: ReactNode;\n}\n\nexport const LanguageProvider: React.FC<LanguageProviderProps> = ({ children }) => {\n const [state, dispatch] = useReducer(languageReducer, initialState);\n const { i18n } = useTranslation();\n\n // Initialize role URL\n useEffect(() => {\n setRoleURL(`${import.meta.env.VITE_BACKEND_BASE_URL}/rbac`);\n }, []);\n\n // Guarded i18n changeLanguage call\n const safeChangeLanguage = async (langCode: string) => {\n if (i18n && typeof i18n.changeLanguage === 'function') {\n try {\n await i18n.changeLanguage(langCode);\n } catch (error) {\n console.warn(`Failed to change language to \"${langCode}\"`, error);\n }\n } else {\n console.warn(\n 'i18n.changeLanguage is unavailable. Ensure I18nextProvider is configured in the host application.'\n );\n }\n };\n\n // Apply language settings\n const applyLanguageSettings = (language: ILanguage) => {\n document.body.dir = language.direction || 'ltr';\n safeChangeLanguage(language.code);\n localStorage.setItem('_language', language.code);\n };\n\n // Fetch languages from API\n const fetchLanguages = async (): Promise<void> => {\n try {\n dispatch({ type: 'FETCH_LANGUAGES_START' });\n \n const response = await getV1Languages({\n order: `id:1`,\n filters: `(is_active.in=[1])`,\n ...getToken(),\n });\n \n const data = response?.data?.languages || [];\n const languages = data\n ?.filter((d: any) => d?.is_active)\n ?.map((d: any) => ({\n label: d?.name,\n code: d?.code,\n direction: d?.direction,\n }));\n\n // Always ensure English is available in the languages list\n const hasEnglish = languages.some((lang: ILanguage) => lang.code === 'en');\n if (!hasEnglish) {\n languages.unshift(createEnglishFallback());\n }\n\n dispatch({ type: 'FETCH_LANGUAGES_SUCCESS', payload: languages });\n \n // Get saved language or use fallback\n const savedLangCode = localStorage.getItem('_language');\n const bestLanguage = findBestAvailableLanguage(languages, savedLangCode || undefined);\n \n if (bestLanguage) {\n const isFallback = savedLangCode && savedLangCode !== bestLanguage.code;\n dispatch({ \n type: 'SET_CURRENT_LANGUAGE', \n payload: bestLanguage,\n isFallback \n });\n applyLanguageSettings(bestLanguage);\n \n // Log if we're using a fallback\n if (isFallback) {\n console.warn(`Saved language \"${savedLangCode}\" not available. Using fallback: \"${bestLanguage.code}\"`);\n }\n } else {\n console.error('No languages available');\n }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : 'Failed to fetch languages';\n dispatch({ type: 'FETCH_LANGUAGES_ERROR', payload: errorMessage });\n \n // On error, always fall back to English\n const englishFallback = createEnglishFallback();\n \n // Create languages array with English fallback for dropdown\n const fallbackLanguages = [englishFallback];\n \n dispatch({ type: 'FETCH_LANGUAGES_SUCCESS', payload: fallbackLanguages });\n dispatch({ \n type: 'SET_CURRENT_LANGUAGE', \n payload: englishFallback,\n isFallback: true \n });\n \n document.body.dir = 'ltr';\n safeChangeLanguage('en');\n localStorage.setItem('_language', 'en');\n \n console.warn('Language fetch failed, using English fallback');\n }\n };\n\n // Change language function\n const changeLanguage = (langCode: string): void => {\n const selectedLanguage = state.languages.find((lang) => lang.code === langCode);\n \n if (selectedLanguage) {\n dispatch({ type: 'SET_CURRENT_LANGUAGE', payload: selectedLanguage });\n dispatch({ type: 'SET_FALLBACK_ACTIVE', payload: false });\n applyLanguageSettings(selectedLanguage);\n } else {\n console.error(`Language \"${langCode}\" not found in available languages`);\n \n // If language not found, fall back to English\n const englishFallback = createEnglishFallback();\n dispatch({ \n type: 'SET_CURRENT_LANGUAGE', \n payload: englishFallback,\n isFallback: true \n });\n applyLanguageSettings(englishFallback);\n }\n };\n\n // Initialize on mount\n useEffect(() => {\n fetchLanguages();\n //eslint-disable-next-line \n }, []);\n\n const contextValue: LanguageContextType = {\n ...state,\n changeLanguage,\n fetchLanguages,\n };\n\n return (\n <LanguageContext.Provider value={contextValue}>\n {/* {state.isLoading } */}\n {children}\n </LanguageContext.Provider>\n );\n};\n\nexport default LanguageContext;"],"names":["setRoleURL"],"mappings":"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"}
1
+ {"version":3,"file":"index.esm.js","sources":["../../../src/contexts/languageContext.tsx"],"sourcesContent":["// contexts/LanguageContext.tsx\nimport React, { createContext, useEffect, useReducer, ReactNode } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { DEFAULT_LANG } from '../constants/all-language';\nimport { getToken } from '../utils/common';\nimport { setRoleURL } from '../utils/server';\nimport { getV1Languages } from '../api-client/api.system-feature/api';\n// import ErpLoader from '../components/loader/erp-loader';\n\n// Types\ninterface ILanguage {\n label: string;\n code: string;\n direction: string;\n}\n\ninterface LanguageState {\n languages: ILanguage[];\n currentLanguage: ILanguage | null;\n isLoading: boolean;\n error: string | null;\n isFallbackActive: boolean; // Track if we're using fallback\n}\n\ninterface LanguageContextType extends LanguageState {\n changeLanguage: (langCode: string) => void;\n fetchLanguages: () => Promise<void>;\n}\n\n// Define fallback languages in order of preference - English first\nconst FALLBACK_LANGUAGES = [\n 'en', // English as primary fallback\n 'en-US', // US English as secondary\n DEFAULT_LANG, // Then default language\n];\n\n// Create English fallback language object\nconst createEnglishFallback = (): ILanguage => ({\n code: 'en',\n label: 'English',\n direction: 'ltr'\n});\n\n// Action types\ntype LanguageAction =\n | { type: 'FETCH_LANGUAGES_START' }\n | { type: 'FETCH_LANGUAGES_SUCCESS'; payload: ILanguage[] }\n | { type: 'FETCH_LANGUAGES_ERROR'; payload: string }\n | { type: 'SET_CURRENT_LANGUAGE'; payload: ILanguage; isFallback?: boolean }\n | { type: 'SET_FALLBACK_ACTIVE'; payload: boolean };\n\n// Initial state\nconst initialState: LanguageState = {\n languages: [],\n currentLanguage: null,\n isLoading: false,\n error: null,\n isFallbackActive: false,\n};\n\n// Helper function to find the best available language\nconst findBestAvailableLanguage = (\n languages: ILanguage[], \n preferredCode?: string\n): ILanguage | null => {\n if (!languages || languages.length === 0) return null;\n\n // First try the preferred language if provided\n if (preferredCode) {\n const preferred = languages.find(lang => lang.code === preferredCode);\n if (preferred) return preferred;\n }\n\n // Try fallback languages in order (English first)\n for (const fallbackCode of FALLBACK_LANGUAGES) {\n const fallback = languages.find(lang => lang.code === fallbackCode);\n if (fallback) return fallback;\n }\n\n // If no fallbacks found, return the first available language\n return languages[0] || null;\n};\n\n// Reducer\nconst languageReducer = (state: LanguageState, action: LanguageAction): LanguageState => {\n switch (action.type) {\n case 'FETCH_LANGUAGES_START':\n return {\n ...state,\n isLoading: true,\n error: null,\n };\n case 'FETCH_LANGUAGES_SUCCESS':\n return {\n ...state,\n languages: action.payload,\n isLoading: false,\n error: null,\n isFallbackActive: false,\n };\n case 'FETCH_LANGUAGES_ERROR':\n return {\n ...state,\n isLoading: false,\n error: action.payload,\n isFallbackActive: true, \n };\n case 'SET_CURRENT_LANGUAGE':\n return {\n ...state,\n currentLanguage: action.payload,\n isFallbackActive: action.isFallback || false,\n };\n case 'SET_FALLBACK_ACTIVE':\n return {\n ...state,\n isFallbackActive: action.payload,\n };\n default:\n return state;\n }\n};\n\n// Create context\nconst LanguageContext = createContext<LanguageContextType | undefined>(undefined);\n\n// Provider component\ninterface LanguageProviderProps {\n children: ReactNode;\n}\n\nexport const LanguageProvider: React.FC<LanguageProviderProps> = ({ children }) => {\n const [state, dispatch] = useReducer(languageReducer, initialState);\n const { i18n } = useTranslation();\n\n // Initialize role URL\n useEffect(() => {\n setRoleURL(`${import.meta.env.VITE_BACKEND_BASE_URL}/rbac`);\n }, []);\n\n // Guarded i18n changeLanguage call\n const safeChangeLanguage = async (langCode: string) => {\n if (i18n && typeof i18n.changeLanguage === 'function') {\n try {\n await i18n.changeLanguage(langCode);\n } catch (error) {\n console.warn(`Failed to change language to \"${langCode}\"`, error);\n }\n } else {\n console.warn(\n 'i18n.changeLanguage is unavailable. Ensure I18nextProvider is configured in the host application.'\n );\n }\n };\n\n // Apply language settings\n const applyLanguageSettings = (language: ILanguage) => {\n document.body.dir = language.direction || 'ltr';\n safeChangeLanguage(language.code);\n localStorage.setItem('_language', language.code);\n };\n\n // Fetch languages from API\n const fetchLanguages = async (): Promise<void> => {\n try {\n dispatch({ type: 'FETCH_LANGUAGES_START' });\n \n const response = await getV1Languages({\n order: `id:1`,\n filters: `(is_active.in=[1])`,\n ...getToken(),\n });\n \n const data = response?.data?.languages || [];\n const languages = data\n ?.filter((d: any) => d?.is_active)\n ?.map((d: any) => ({\n label: d?.name,\n code: d?.code,\n direction: d?.direction,\n }));\n\n // Always ensure English is available in the languages list\n const hasEnglish = languages.some((lang: ILanguage) => lang.code === 'en');\n if (!hasEnglish) {\n languages.unshift(createEnglishFallback());\n }\n\n dispatch({ type: 'FETCH_LANGUAGES_SUCCESS', payload: languages });\n \n // Get saved language or use fallback\n const savedLangCode = localStorage.getItem('_language');\n const bestLanguage = findBestAvailableLanguage(languages, savedLangCode || undefined);\n \n if (bestLanguage) {\n const isFallback = savedLangCode && savedLangCode !== bestLanguage.code;\n dispatch({ \n type: 'SET_CURRENT_LANGUAGE', \n payload: bestLanguage,\n isFallback \n });\n applyLanguageSettings(bestLanguage);\n \n // Log if we're using a fallback\n if (isFallback) {\n console.warn(`Saved language \"${savedLangCode}\" not available. Using fallback: \"${bestLanguage.code}\"`);\n }\n } else {\n console.error('No languages available');\n }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : 'Failed to fetch languages';\n dispatch({ type: 'FETCH_LANGUAGES_ERROR', payload: errorMessage });\n \n // On error, always fall back to English\n const englishFallback = createEnglishFallback();\n \n // Create languages array with English fallback for dropdown\n const fallbackLanguages = [englishFallback];\n \n dispatch({ type: 'FETCH_LANGUAGES_SUCCESS', payload: fallbackLanguages });\n dispatch({ \n type: 'SET_CURRENT_LANGUAGE', \n payload: englishFallback,\n isFallback: true \n });\n \n document.body.dir = 'ltr';\n safeChangeLanguage('en');\n localStorage.setItem('_language', 'en');\n \n console.warn('Language fetch failed, using English fallback');\n }\n };\n\n // Change language function\n const changeLanguage = (langCode: string): void => {\n const selectedLanguage = state.languages.find((lang) => lang.code === langCode);\n \n if (selectedLanguage) {\n dispatch({ type: 'SET_CURRENT_LANGUAGE', payload: selectedLanguage });\n dispatch({ type: 'SET_FALLBACK_ACTIVE', payload: false });\n applyLanguageSettings(selectedLanguage);\n } else {\n console.error(`Language \"${langCode}\" not found in available languages`);\n \n // If language not found, fall back to English\n const englishFallback = createEnglishFallback();\n dispatch({ \n type: 'SET_CURRENT_LANGUAGE', \n payload: englishFallback,\n isFallback: true \n });\n applyLanguageSettings(englishFallback);\n }\n };\n\n // Initialize on mount\n useEffect(() => {\n fetchLanguages();\n //eslint-disable-next-line \n }, []);\n\n const contextValue: LanguageContextType = {\n ...state,\n changeLanguage,\n fetchLanguages,\n };\n\n return (\n <LanguageContext.Provider value={contextValue}>\n {/* {state.isLoading } */}\n {children}\n </LanguageContext.Provider>\n );\n};\n\nexport default LanguageContext;"],"names":["setRoleURL"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),a=require("react"),n=require("react-i18next"),t=require("../../constants/all-language/index.js"),l=require("../../utils/common/index.js"),i=require("../../api-client/api.rbac/api/index.js"),r=require("../../api-client/api.system-feature/api/index.js");const o=["en","en-US",t.DEFAULT_LANG],c={languages:[],currentLanguage:null,isLoading:!1,error:null,isFallbackActive:!1},s=(e,a)=>{switch(a.type){case"FETCH_LANGUAGES_START":return{...e,isLoading:!0,error:null};case"FETCH_LANGUAGES_SUCCESS":return{...e,languages:a.payload,isLoading:!1,error:null,isFallbackActive:!1};case"FETCH_LANGUAGES_ERROR":return{...e,isLoading:!1,error:a.payload,isFallbackActive:!0};case"SET_CURRENT_LANGUAGE":return{...e,currentLanguage:a.payload,isFallbackActive:a.isFallback||!1};case"SET_FALLBACK_ACTIVE":return{...e,isFallbackActive:a.payload};default:return e}},d=a.createContext(void 0);exports.LanguageProvider=({children:t})=>{const[u,g]=a.useReducer(s,c),{i18n:E}=n.useTranslation();a.useEffect(()=>{i.setBaseUrl("https://apidev.erpforce.co/rbac")},[]);const A=async e=>{if(E&&"function"==typeof E.changeLanguage)try{await E.changeLanguage(e)}catch(a){}},p=e=>{document.body.dir=e.direction||"ltr",A(e.code),localStorage.setItem("_language",e.code)},_=async()=>{var e,a;try{g({type:"FETCH_LANGUAGES_START"});const n=await r.getV1Languages({order:"id:1",filters:"(is_active.in=[1])",...l.getToken()}),t=(null==(e=null==n?void 0:n.data)?void 0:e.languages)||[],i=null==(a=null==t?void 0:t.filter(e=>null==e?void 0:e.is_active))?void 0:a.map(e=>({label:null==e?void 0:e.name,code:null==e?void 0:e.code,direction:null==e?void 0:e.direction}));i.some(e=>"en"===e.code)||i.unshift({code:"en",label:"English",direction:"ltr"}),g({type:"FETCH_LANGUAGES_SUCCESS",payload:i});const c=localStorage.getItem("_language"),s=((e,a)=>{if(!e||0===e.length)return null;if(a){const n=e.find(e=>e.code===a);if(n)return n}for(const n of o){const a=e.find(e=>e.code===n);if(a)return a}return e[0]||null})(i,c||void 0);if(s){const e=c&&c!==s.code;g({type:"SET_CURRENT_LANGUAGE",payload:s,isFallback:e}),p(s)}}catch(n){const e=n instanceof Error?n.message:"Failed to fetch languages";g({type:"FETCH_LANGUAGES_ERROR",payload:e});const a={code:"en",label:"English",direction:"ltr"};g({type:"FETCH_LANGUAGES_SUCCESS",payload:[a]}),g({type:"SET_CURRENT_LANGUAGE",payload:a,isFallback:!0}),document.body.dir="ltr",A("en"),localStorage.setItem("_language","en")}};a.useEffect(()=>{_()},[]);const y={...u,changeLanguage:e=>{const a=u.languages.find(a=>a.code===e);if(a)g({type:"SET_CURRENT_LANGUAGE",payload:a}),g({type:"SET_FALLBACK_ACTIVE",payload:!1}),p(a);else{const e={code:"en",label:"English",direction:"ltr"};g({type:"SET_CURRENT_LANGUAGE",payload:e,isFallback:!0}),p(e)}},fetchLanguages:_};/* @__PURE__ */
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),a=require("react"),n=require("react-i18next"),t=require("../../constants/all-language/index.js"),l=require("../../utils/common/index.js"),i=require("../../api-client/api.rbac/api/index.js"),r=require("../../api-client/api.system-feature/api/index.js");const o=["en","en-US",t.DEFAULT_LANG],c={languages:[],currentLanguage:null,isLoading:!1,error:null,isFallbackActive:!1},s=(e,a)=>{switch(a.type){case"FETCH_LANGUAGES_START":return{...e,isLoading:!0,error:null};case"FETCH_LANGUAGES_SUCCESS":return{...e,languages:a.payload,isLoading:!1,error:null,isFallbackActive:!1};case"FETCH_LANGUAGES_ERROR":return{...e,isLoading:!1,error:a.payload,isFallbackActive:!0};case"SET_CURRENT_LANGUAGE":return{...e,currentLanguage:a.payload,isFallbackActive:a.isFallback||!1};case"SET_FALLBACK_ACTIVE":return{...e,isFallbackActive:a.payload};default:return e}},d=a.createContext(void 0);exports.LanguageProvider=({children:t})=>{const[u,g]=a.useReducer(s,c),{i18n:E}=n.useTranslation();a.useEffect(()=>{i.setBaseUrl("http://127.0.0.1:4011/rbac")},[]);const A=async e=>{if(E&&"function"==typeof E.changeLanguage)try{await E.changeLanguage(e)}catch(a){}},_=e=>{document.body.dir=e.direction||"ltr",A(e.code),localStorage.setItem("_language",e.code)},p=async()=>{var e,a;try{g({type:"FETCH_LANGUAGES_START"});const n=await r.getV1Languages({order:"id:1",filters:"(is_active.in=[1])",...l.getToken()}),t=(null==(e=null==n?void 0:n.data)?void 0:e.languages)||[],i=null==(a=null==t?void 0:t.filter(e=>null==e?void 0:e.is_active))?void 0:a.map(e=>({label:null==e?void 0:e.name,code:null==e?void 0:e.code,direction:null==e?void 0:e.direction}));i.some(e=>"en"===e.code)||i.unshift({code:"en",label:"English",direction:"ltr"}),g({type:"FETCH_LANGUAGES_SUCCESS",payload:i});const c=localStorage.getItem("_language"),s=((e,a)=>{if(!e||0===e.length)return null;if(a){const n=e.find(e=>e.code===a);if(n)return n}for(const n of o){const a=e.find(e=>e.code===n);if(a)return a}return e[0]||null})(i,c||void 0);if(s){const e=c&&c!==s.code;g({type:"SET_CURRENT_LANGUAGE",payload:s,isFallback:e}),_(s)}}catch(n){const e=n instanceof Error?n.message:"Failed to fetch languages";g({type:"FETCH_LANGUAGES_ERROR",payload:e});const a={code:"en",label:"English",direction:"ltr"};g({type:"FETCH_LANGUAGES_SUCCESS",payload:[a]}),g({type:"SET_CURRENT_LANGUAGE",payload:a,isFallback:!0}),document.body.dir="ltr",A("en"),localStorage.setItem("_language","en")}};a.useEffect(()=>{p()},[]);const y={...u,changeLanguage:e=>{const a=u.languages.find(a=>a.code===e);if(a)g({type:"SET_CURRENT_LANGUAGE",payload:a}),g({type:"SET_FALLBACK_ACTIVE",payload:!1}),_(a);else{const e={code:"en",label:"English",direction:"ltr"};g({type:"SET_CURRENT_LANGUAGE",payload:e,isFallback:!0}),_(e)}},fetchLanguages:p};/* @__PURE__ */
2
2
  return e.jsx(d.Provider,{value:y,children:t})},exports.default=d;
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/contexts/languageContext.tsx"],"sourcesContent":["// contexts/LanguageContext.tsx\nimport React, { createContext, useEffect, useReducer, ReactNode } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { DEFAULT_LANG } from '../constants/all-language';\nimport { getToken } from '../utils/common';\nimport { setRoleURL } from '../utils/server';\nimport { getV1Languages } from '../api-client/api.system-feature/api';\n// import ErpLoader from '../components/loader/erp-loader';\n\n// Types\ninterface ILanguage {\n label: string;\n code: string;\n direction: string;\n}\n\ninterface LanguageState {\n languages: ILanguage[];\n currentLanguage: ILanguage | null;\n isLoading: boolean;\n error: string | null;\n isFallbackActive: boolean; // Track if we're using fallback\n}\n\ninterface LanguageContextType extends LanguageState {\n changeLanguage: (langCode: string) => void;\n fetchLanguages: () => Promise<void>;\n}\n\n// Define fallback languages in order of preference - English first\nconst FALLBACK_LANGUAGES = [\n 'en', // English as primary fallback\n 'en-US', // US English as secondary\n DEFAULT_LANG, // Then default language\n];\n\n// Create English fallback language object\nconst createEnglishFallback = (): ILanguage => ({\n code: 'en',\n label: 'English',\n direction: 'ltr'\n});\n\n// Action types\ntype LanguageAction =\n | { type: 'FETCH_LANGUAGES_START' }\n | { type: 'FETCH_LANGUAGES_SUCCESS'; payload: ILanguage[] }\n | { type: 'FETCH_LANGUAGES_ERROR'; payload: string }\n | { type: 'SET_CURRENT_LANGUAGE'; payload: ILanguage; isFallback?: boolean }\n | { type: 'SET_FALLBACK_ACTIVE'; payload: boolean };\n\n// Initial state\nconst initialState: LanguageState = {\n languages: [],\n currentLanguage: null,\n isLoading: false,\n error: null,\n isFallbackActive: false,\n};\n\n// Helper function to find the best available language\nconst findBestAvailableLanguage = (\n languages: ILanguage[], \n preferredCode?: string\n): ILanguage | null => {\n if (!languages || languages.length === 0) return null;\n\n // First try the preferred language if provided\n if (preferredCode) {\n const preferred = languages.find(lang => lang.code === preferredCode);\n if (preferred) return preferred;\n }\n\n // Try fallback languages in order (English first)\n for (const fallbackCode of FALLBACK_LANGUAGES) {\n const fallback = languages.find(lang => lang.code === fallbackCode);\n if (fallback) return fallback;\n }\n\n // If no fallbacks found, return the first available language\n return languages[0] || null;\n};\n\n// Reducer\nconst languageReducer = (state: LanguageState, action: LanguageAction): LanguageState => {\n switch (action.type) {\n case 'FETCH_LANGUAGES_START':\n return {\n ...state,\n isLoading: true,\n error: null,\n };\n case 'FETCH_LANGUAGES_SUCCESS':\n return {\n ...state,\n languages: action.payload,\n isLoading: false,\n error: null,\n isFallbackActive: false,\n };\n case 'FETCH_LANGUAGES_ERROR':\n return {\n ...state,\n isLoading: false,\n error: action.payload,\n isFallbackActive: true, \n };\n case 'SET_CURRENT_LANGUAGE':\n return {\n ...state,\n currentLanguage: action.payload,\n isFallbackActive: action.isFallback || false,\n };\n case 'SET_FALLBACK_ACTIVE':\n return {\n ...state,\n isFallbackActive: action.payload,\n };\n default:\n return state;\n }\n};\n\n// Create context\nconst LanguageContext = createContext<LanguageContextType | undefined>(undefined);\n\n// Provider component\ninterface LanguageProviderProps {\n children: ReactNode;\n}\n\nexport const LanguageProvider: React.FC<LanguageProviderProps> = ({ children }) => {\n const [state, dispatch] = useReducer(languageReducer, initialState);\n const { i18n } = useTranslation();\n\n // Initialize role URL\n useEffect(() => {\n setRoleURL(`${import.meta.env.VITE_BACKEND_BASE_URL}/rbac`);\n }, []);\n\n // Guarded i18n changeLanguage call\n const safeChangeLanguage = async (langCode: string) => {\n if (i18n && typeof i18n.changeLanguage === 'function') {\n try {\n await i18n.changeLanguage(langCode);\n } catch (error) {\n console.warn(`Failed to change language to \"${langCode}\"`, error);\n }\n } else {\n console.warn(\n 'i18n.changeLanguage is unavailable. Ensure I18nextProvider is configured in the host application.'\n );\n }\n };\n\n // Apply language settings\n const applyLanguageSettings = (language: ILanguage) => {\n document.body.dir = language.direction || 'ltr';\n safeChangeLanguage(language.code);\n localStorage.setItem('_language', language.code);\n };\n\n // Fetch languages from API\n const fetchLanguages = async (): Promise<void> => {\n try {\n dispatch({ type: 'FETCH_LANGUAGES_START' });\n \n const response = await getV1Languages({\n order: `id:1`,\n filters: `(is_active.in=[1])`,\n ...getToken(),\n });\n \n const data = response?.data?.languages || [];\n const languages = data\n ?.filter((d: any) => d?.is_active)\n ?.map((d: any) => ({\n label: d?.name,\n code: d?.code,\n direction: d?.direction,\n }));\n\n // Always ensure English is available in the languages list\n const hasEnglish = languages.some((lang: ILanguage) => lang.code === 'en');\n if (!hasEnglish) {\n languages.unshift(createEnglishFallback());\n }\n\n dispatch({ type: 'FETCH_LANGUAGES_SUCCESS', payload: languages });\n \n // Get saved language or use fallback\n const savedLangCode = localStorage.getItem('_language');\n const bestLanguage = findBestAvailableLanguage(languages, savedLangCode || undefined);\n \n if (bestLanguage) {\n const isFallback = savedLangCode && savedLangCode !== bestLanguage.code;\n dispatch({ \n type: 'SET_CURRENT_LANGUAGE', \n payload: bestLanguage,\n isFallback \n });\n applyLanguageSettings(bestLanguage);\n \n // Log if we're using a fallback\n if (isFallback) {\n console.warn(`Saved language \"${savedLangCode}\" not available. Using fallback: \"${bestLanguage.code}\"`);\n }\n } else {\n console.error('No languages available');\n }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : 'Failed to fetch languages';\n dispatch({ type: 'FETCH_LANGUAGES_ERROR', payload: errorMessage });\n \n // On error, always fall back to English\n const englishFallback = createEnglishFallback();\n \n // Create languages array with English fallback for dropdown\n const fallbackLanguages = [englishFallback];\n \n dispatch({ type: 'FETCH_LANGUAGES_SUCCESS', payload: fallbackLanguages });\n dispatch({ \n type: 'SET_CURRENT_LANGUAGE', \n payload: englishFallback,\n isFallback: true \n });\n \n document.body.dir = 'ltr';\n safeChangeLanguage('en');\n localStorage.setItem('_language', 'en');\n \n console.warn('Language fetch failed, using English fallback');\n }\n };\n\n // Change language function\n const changeLanguage = (langCode: string): void => {\n const selectedLanguage = state.languages.find((lang) => lang.code === langCode);\n \n if (selectedLanguage) {\n dispatch({ type: 'SET_CURRENT_LANGUAGE', payload: selectedLanguage });\n dispatch({ type: 'SET_FALLBACK_ACTIVE', payload: false });\n applyLanguageSettings(selectedLanguage);\n } else {\n console.error(`Language \"${langCode}\" not found in available languages`);\n \n // If language not found, fall back to English\n const englishFallback = createEnglishFallback();\n dispatch({ \n type: 'SET_CURRENT_LANGUAGE', \n payload: englishFallback,\n isFallback: true \n });\n applyLanguageSettings(englishFallback);\n }\n };\n\n // Initialize on mount\n useEffect(() => {\n fetchLanguages();\n //eslint-disable-next-line \n }, []);\n\n const contextValue: LanguageContextType = {\n ...state,\n changeLanguage,\n fetchLanguages,\n };\n\n return (\n <LanguageContext.Provider value={contextValue}>\n {/* {state.isLoading } */}\n {children}\n </LanguageContext.Provider>\n );\n};\n\nexport default LanguageContext;"],"names":["FALLBACK_LANGUAGES","DEFAULT_LANG","initialState","languages","currentLanguage","isLoading","error","isFallbackActive","languageReducer","state","action","type","payload","isFallback","LanguageContext","createContext","children","dispatch","useReducer","i18n","useTranslation","useEffect","setRoleURL","safeChangeLanguage","async","langCode","changeLanguage","applyLanguageSettings","language","document","body","dir","direction","code","localStorage","setItem","fetchLanguages","response","getV1Languages","order","filters","getToken","data","_a","_b","filter","d","is_active","map","label","name","some","lang","unshift","savedLangCode","getItem","bestLanguage","preferredCode","length","preferred","find","fallbackCode","fallback","findBestAvailableLanguage","errorMessage","Error","message","englishFallback","contextValue","selectedLanguage","Provider","value"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/contexts/languageContext.tsx"],"sourcesContent":["// contexts/LanguageContext.tsx\nimport React, { createContext, useEffect, useReducer, ReactNode } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { DEFAULT_LANG } from '../constants/all-language';\nimport { getToken } from '../utils/common';\nimport { setRoleURL } from '../utils/server';\nimport { getV1Languages } from '../api-client/api.system-feature/api';\n// import ErpLoader from '../components/loader/erp-loader';\n\n// Types\ninterface ILanguage {\n label: string;\n code: string;\n direction: string;\n}\n\ninterface LanguageState {\n languages: ILanguage[];\n currentLanguage: ILanguage | null;\n isLoading: boolean;\n error: string | null;\n isFallbackActive: boolean; // Track if we're using fallback\n}\n\ninterface LanguageContextType extends LanguageState {\n changeLanguage: (langCode: string) => void;\n fetchLanguages: () => Promise<void>;\n}\n\n// Define fallback languages in order of preference - English first\nconst FALLBACK_LANGUAGES = [\n 'en', // English as primary fallback\n 'en-US', // US English as secondary\n DEFAULT_LANG, // Then default language\n];\n\n// Create English fallback language object\nconst createEnglishFallback = (): ILanguage => ({\n code: 'en',\n label: 'English',\n direction: 'ltr'\n});\n\n// Action types\ntype LanguageAction =\n | { type: 'FETCH_LANGUAGES_START' }\n | { type: 'FETCH_LANGUAGES_SUCCESS'; payload: ILanguage[] }\n | { type: 'FETCH_LANGUAGES_ERROR'; payload: string }\n | { type: 'SET_CURRENT_LANGUAGE'; payload: ILanguage; isFallback?: boolean }\n | { type: 'SET_FALLBACK_ACTIVE'; payload: boolean };\n\n// Initial state\nconst initialState: LanguageState = {\n languages: [],\n currentLanguage: null,\n isLoading: false,\n error: null,\n isFallbackActive: false,\n};\n\n// Helper function to find the best available language\nconst findBestAvailableLanguage = (\n languages: ILanguage[], \n preferredCode?: string\n): ILanguage | null => {\n if (!languages || languages.length === 0) return null;\n\n // First try the preferred language if provided\n if (preferredCode) {\n const preferred = languages.find(lang => lang.code === preferredCode);\n if (preferred) return preferred;\n }\n\n // Try fallback languages in order (English first)\n for (const fallbackCode of FALLBACK_LANGUAGES) {\n const fallback = languages.find(lang => lang.code === fallbackCode);\n if (fallback) return fallback;\n }\n\n // If no fallbacks found, return the first available language\n return languages[0] || null;\n};\n\n// Reducer\nconst languageReducer = (state: LanguageState, action: LanguageAction): LanguageState => {\n switch (action.type) {\n case 'FETCH_LANGUAGES_START':\n return {\n ...state,\n isLoading: true,\n error: null,\n };\n case 'FETCH_LANGUAGES_SUCCESS':\n return {\n ...state,\n languages: action.payload,\n isLoading: false,\n error: null,\n isFallbackActive: false,\n };\n case 'FETCH_LANGUAGES_ERROR':\n return {\n ...state,\n isLoading: false,\n error: action.payload,\n isFallbackActive: true, \n };\n case 'SET_CURRENT_LANGUAGE':\n return {\n ...state,\n currentLanguage: action.payload,\n isFallbackActive: action.isFallback || false,\n };\n case 'SET_FALLBACK_ACTIVE':\n return {\n ...state,\n isFallbackActive: action.payload,\n };\n default:\n return state;\n }\n};\n\n// Create context\nconst LanguageContext = createContext<LanguageContextType | undefined>(undefined);\n\n// Provider component\ninterface LanguageProviderProps {\n children: ReactNode;\n}\n\nexport const LanguageProvider: React.FC<LanguageProviderProps> = ({ children }) => {\n const [state, dispatch] = useReducer(languageReducer, initialState);\n const { i18n } = useTranslation();\n\n // Initialize role URL\n useEffect(() => {\n setRoleURL(`${import.meta.env.VITE_BACKEND_BASE_URL}/rbac`);\n }, []);\n\n // Guarded i18n changeLanguage call\n const safeChangeLanguage = async (langCode: string) => {\n if (i18n && typeof i18n.changeLanguage === 'function') {\n try {\n await i18n.changeLanguage(langCode);\n } catch (error) {\n console.warn(`Failed to change language to \"${langCode}\"`, error);\n }\n } else {\n console.warn(\n 'i18n.changeLanguage is unavailable. Ensure I18nextProvider is configured in the host application.'\n );\n }\n };\n\n // Apply language settings\n const applyLanguageSettings = (language: ILanguage) => {\n document.body.dir = language.direction || 'ltr';\n safeChangeLanguage(language.code);\n localStorage.setItem('_language', language.code);\n };\n\n // Fetch languages from API\n const fetchLanguages = async (): Promise<void> => {\n try {\n dispatch({ type: 'FETCH_LANGUAGES_START' });\n \n const response = await getV1Languages({\n order: `id:1`,\n filters: `(is_active.in=[1])`,\n ...getToken(),\n });\n \n const data = response?.data?.languages || [];\n const languages = data\n ?.filter((d: any) => d?.is_active)\n ?.map((d: any) => ({\n label: d?.name,\n code: d?.code,\n direction: d?.direction,\n }));\n\n // Always ensure English is available in the languages list\n const hasEnglish = languages.some((lang: ILanguage) => lang.code === 'en');\n if (!hasEnglish) {\n languages.unshift(createEnglishFallback());\n }\n\n dispatch({ type: 'FETCH_LANGUAGES_SUCCESS', payload: languages });\n \n // Get saved language or use fallback\n const savedLangCode = localStorage.getItem('_language');\n const bestLanguage = findBestAvailableLanguage(languages, savedLangCode || undefined);\n \n if (bestLanguage) {\n const isFallback = savedLangCode && savedLangCode !== bestLanguage.code;\n dispatch({ \n type: 'SET_CURRENT_LANGUAGE', \n payload: bestLanguage,\n isFallback \n });\n applyLanguageSettings(bestLanguage);\n \n // Log if we're using a fallback\n if (isFallback) {\n console.warn(`Saved language \"${savedLangCode}\" not available. Using fallback: \"${bestLanguage.code}\"`);\n }\n } else {\n console.error('No languages available');\n }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : 'Failed to fetch languages';\n dispatch({ type: 'FETCH_LANGUAGES_ERROR', payload: errorMessage });\n \n // On error, always fall back to English\n const englishFallback = createEnglishFallback();\n \n // Create languages array with English fallback for dropdown\n const fallbackLanguages = [englishFallback];\n \n dispatch({ type: 'FETCH_LANGUAGES_SUCCESS', payload: fallbackLanguages });\n dispatch({ \n type: 'SET_CURRENT_LANGUAGE', \n payload: englishFallback,\n isFallback: true \n });\n \n document.body.dir = 'ltr';\n safeChangeLanguage('en');\n localStorage.setItem('_language', 'en');\n \n console.warn('Language fetch failed, using English fallback');\n }\n };\n\n // Change language function\n const changeLanguage = (langCode: string): void => {\n const selectedLanguage = state.languages.find((lang) => lang.code === langCode);\n \n if (selectedLanguage) {\n dispatch({ type: 'SET_CURRENT_LANGUAGE', payload: selectedLanguage });\n dispatch({ type: 'SET_FALLBACK_ACTIVE', payload: false });\n applyLanguageSettings(selectedLanguage);\n } else {\n console.error(`Language \"${langCode}\" not found in available languages`);\n \n // If language not found, fall back to English\n const englishFallback = createEnglishFallback();\n dispatch({ \n type: 'SET_CURRENT_LANGUAGE', \n payload: englishFallback,\n isFallback: true \n });\n applyLanguageSettings(englishFallback);\n }\n };\n\n // Initialize on mount\n useEffect(() => {\n fetchLanguages();\n //eslint-disable-next-line \n }, []);\n\n const contextValue: LanguageContextType = {\n ...state,\n changeLanguage,\n fetchLanguages,\n };\n\n return (\n <LanguageContext.Provider value={contextValue}>\n {/* {state.isLoading } */}\n {children}\n </LanguageContext.Provider>\n );\n};\n\nexport default LanguageContext;"],"names":["FALLBACK_LANGUAGES","DEFAULT_LANG","initialState","languages","currentLanguage","isLoading","error","isFallbackActive","languageReducer","state","action","type","payload","isFallback","LanguageContext","createContext","children","dispatch","useReducer","i18n","useTranslation","useEffect","setRoleURL","safeChangeLanguage","async","langCode","changeLanguage","applyLanguageSettings","language","document","body","dir","direction","code","localStorage","setItem","fetchLanguages","response","getV1Languages","order","filters","getToken","data","_a","_b","filter","d","is_active","map","label","name","some","lang","unshift","savedLangCode","getItem","bestLanguage","preferredCode","length","preferred","find","fallbackCode","fallback","findBestAvailableLanguage","errorMessage","Error","message","englishFallback","contextValue","selectedLanguage","Provider","value"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,138 +1 @@
1
- /**
2
- * @erpforce/common - ERP Common UI Library
3
- *
4
- * This is the main entry point for the @erpforce/common library.
5
- * It exports only stable functionality that doesn't require peer dependencies.
6
- *
7
- * For full functionality, install the required peer dependencies:
8
- * @see https://www.npmjs.com/package/@erpforce/common#peer-dependencies
9
- */
10
- /**
11
- * Library Configuration System
12
- * Provides configuration management for application-specific business logic
13
- */
14
- export { configureLibrary, getLibraryConfig, getConfigFunction, type LibraryConfig } from './config';
15
- /**
16
- * Static Assets
17
- * Pre-bundled images and icons that work without external dependencies
18
- */
19
- export { default as images } from './assets/images';
20
- /**
21
- * Constants
22
- * Basic constants and configuration values
23
- */
24
- export { DEFAULT_LANG, LANGUAGES } from './constants/all-language';
25
- export { S3_BUCKET_URL } from './constants/common';
26
- export { modules } from './constants';
27
- /**
28
- * Core TypeScript type definitions
29
- * These types are available for use in consuming applications
30
- */
31
- export type { BaseComponentProps, ThemeConfig, ERPUIProviderProps, SelectOption, TableColumn, PaginationProps, FormField, ApiResponse, Language, LanguageContextType, AuthContextType, PageContextType, PermissionContextType, User, Permission, LibraryReduxSlices, ReduxIntegration } from './types';
32
- /**
33
- * Additional commonly used types from contexts
34
- * Exported for convenience when working with page state and views
35
- */
36
- export type { PageState, ViewType, SavedViewType, GeneratedColumnsState } from './contexts';
37
- /**
38
- * IMPORTANT: The following exports require peer dependencies to be installed.
39
- *
40
- * To use components, hooks, contexts, theme, and utilities, install:
41
- *
42
- * Required peer dependencies:
43
- * - react (>=18.0.0)
44
- * - react-dom (>=18.0.0)
45
- * - @mui/material (>=5.0.0)
46
- * - @mui/icons-material (>=5.0.0)
47
- * - @emotion/react (>=11.0.0)
48
- * - @emotion/styled (>=11.0.0)
49
- *
50
- * Optional peer dependencies (for specific features):
51
- * - react-redux (>=8.0.0) - for Redux integration
52
- * - @reduxjs/toolkit (>=1.9.0) - for Redux store management
53
- * - react-router-dom (>=6.0.0) - for routing utilities
54
- * - react-i18next (>=12.0.0) - for internationalization
55
- * - dayjs (>=1.11.0) - for date utilities
56
- * - lodash (>=4.17.0) - for utility functions
57
- * - axios (>=1.0.0) - for API utilities
58
- * - notistack (>=3.0.0) - for notifications
59
- * - socket.io-client (>=4.0.0) - for real-time features
60
- * - moment-timezone (>=0.5.0) - for timezone handling
61
- * - libphonenumber-js (>=1.10.0) - for phone validation
62
- * - yup (>=1.0.0) - for form validation
63
- * - material-react-table (>=1.0.0) - for advanced tables
64
- * - react-querybuilder (>=6.0.0) - for query building
65
- *
66
- * Installation example:
67
- * ```bash
68
- * npm install @mui/material @mui/icons-material @emotion/react @emotion/styled
69
- * npm install react-redux @reduxjs/toolkit react-router-dom react-i18next
70
- * npm install dayjs lodash axios notistack
71
- * ```
72
- *
73
- * After installing peer dependencies, you can import:
74
- *
75
- * Components:
76
- * ```typescript
77
- * import { Button, TextField, DataGrid } from '@erpforce/common/components';
78
- * ```
79
- *
80
- * Hooks:
81
- * ```typescript
82
- * import { useAuth, useLanguage, usePermissions } from '@erpforce/common/hooks';
83
- * ```
84
- *
85
- * Contexts:
86
- * ```typescript
87
- * import { AuthProvider, LanguageProvider } from '@erpforce/common/contexts';
88
- * ```
89
- *
90
- * Theme:
91
- * ```typescript
92
- * import { createLightTheme, createDarkTheme } from '@erpforce/common/theme';
93
- * ```
94
- *
95
- * Utilities:
96
- * ```typescript
97
- * import { formatDate, validateEmail } from '@erpforce/common/utils';
98
- * ```
99
- *
100
- * Redux:
101
- * ```typescript
102
- * import { createStore, slices } from '@erpforce/common/redux';
103
- * ```
104
- *
105
- * API Clients:
106
- * ```typescript
107
- * import { AccountingAPI, InventoryAPI } from '@erpforce/common/api-client';
108
- * ```
109
- *
110
- * Note: Direct barrel exports (export * from './components') are intentionally
111
- * disabled to prevent dependency resolution errors. Use specific imports instead.
112
- */
113
- export * from './components';
114
- export * from './hooks';
115
- export * from './contexts';
116
- export * from './theme';
117
- export * from './utils';
118
- export * from './redux';
119
- export * from './api-client';
120
- export * from './layout';
121
- /**
122
- * Views
123
- * Ready-to-use views and page templates including:
124
- * - Template Editor (Email/PDF editor with WYSIWYG capabilities)
125
- *
126
- * Usage:
127
- * ```typescript
128
- * import {
129
- * Templates,
130
- * AddTemplate,
131
- * templateEditorRoutes,
132
- * SectionFlowEditor,
133
- * type ElementType,
134
- * type SectionData
135
- * } from '@erpforce/common/views';
136
- * ```
137
- */
138
- export * from './views';
1
+ export * from './src/index'