@argusoft/medplat-core 1.0.29 → 1.0.31

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 (217) hide show
  1. package/dist/AccessRights-DUgY6ewy.js +1031 -0
  2. package/dist/AccessRights-DUgY6ewy.js.map +1 -0
  3. package/dist/AddEditQueryBuilder-D-iQiVIe.js +365 -0
  4. package/dist/AddEditQueryBuilder-D-iQiVIe.js.map +1 -0
  5. package/dist/{AddFeatures-v3TmGQee.js → AddFeatures-D1sU8RjY.js} +2 -2
  6. package/dist/{AddFeatures-v3TmGQee.js.map → AddFeatures-D1sU8RjY.js.map} +1 -1
  7. package/dist/AddLabelModal-Bq-wRqv9.js +631 -0
  8. package/dist/AddLabelModal-Bq-wRqv9.js.map +1 -0
  9. package/dist/AddMenuConfiguration-c6ZKiN0i.js +8898 -0
  10. package/dist/AddMenuConfiguration-c6ZKiN0i.js.map +1 -0
  11. package/dist/AppModal-CCtrQ5Tr.js +394 -0
  12. package/dist/AppModal-CCtrQ5Tr.js.map +1 -0
  13. package/dist/BrandsPage-DMw2vT0u-BVhvhc6J.js +387 -0
  14. package/dist/BrandsPage-DMw2vT0u-BVhvhc6J.js.map +1 -0
  15. package/dist/CategoriesPage-D3ihx9Gi-CT58g0ry.js +398 -0
  16. package/dist/CategoriesPage-D3ihx9Gi-CT58g0ry.js.map +1 -0
  17. package/dist/{ChangePasswordModalCore-DutQAZOx.js → ChangePasswordModalCore-lQ9GamH1.js} +1605 -1610
  18. package/dist/ChangePasswordModalCore-lQ9GamH1.js.map +1 -0
  19. package/dist/ConditionConfig-BQBmBHaM.js +408 -0
  20. package/dist/ConditionConfig-BQBmBHaM.js.map +1 -0
  21. package/dist/DashboardPage-asr2XDRu-uOOlX9Vq.js +435 -0
  22. package/dist/DashboardPage-asr2XDRu-uOOlX9Vq.js.map +1 -0
  23. package/dist/EventConfig-BY2cgGyx.js +27 -0
  24. package/dist/EventConfig-BY2cgGyx.js.map +1 -0
  25. package/dist/EventConfigurations-CUPEN5BV.js +544 -0
  26. package/dist/EventConfigurations-CUPEN5BV.js.map +1 -0
  27. package/dist/EventConfigurations.css +1 -1
  28. package/dist/EventsExceptionModal-BX-ArkBE.js +188 -0
  29. package/dist/EventsExceptionModal-BX-ArkBE.js.map +1 -0
  30. package/dist/EventsUi-D6O9S7BK.js +258 -0
  31. package/dist/EventsUi-D6O9S7BK.js.map +1 -0
  32. package/dist/FacilityPicker-DYl_PDyt-Cbwo2tAY.js +79 -0
  33. package/dist/FacilityPicker-DYl_PDyt-Cbwo2tAY.js.map +1 -0
  34. package/dist/FeatureMenu-CHsBbw3W.js +525 -0
  35. package/dist/FeatureMenu-CHsBbw3W.js.map +1 -0
  36. package/dist/{FhirServerList-Dkq7Kbes.js → FhirServerList-iXBPkRVF.js} +22 -22
  37. package/dist/{FhirServerList-Dkq7Kbes.js.map → FhirServerList-iXBPkRVF.js.map} +1 -1
  38. package/dist/{FhirServerWizard-Db6Hm4bQ.js → FhirServerWizard-DZI8Olku.js} +15 -15
  39. package/dist/{FhirServerWizard-Db6Hm4bQ.js.map → FhirServerWizard-DZI8Olku.js.map} +1 -1
  40. package/dist/FlywayQuery-CQygj51V.js +179 -0
  41. package/dist/FlywayQuery-CQygj51V.js.map +1 -0
  42. package/dist/GrantPermissionModal-D7iNZd0M.js +239 -0
  43. package/dist/GrantPermissionModal-D7iNZd0M.js.map +1 -0
  44. package/dist/ImmunizationConfigurationBase-aUtx0JEe.js +8019 -0
  45. package/dist/ImmunizationConfigurationBase-aUtx0JEe.js.map +1 -0
  46. package/dist/ImmunizationConfigurationBase.css +1 -1
  47. package/dist/ImmunizationConfigurationsList-TZcLDEci.js +369 -0
  48. package/dist/ImmunizationConfigurationsList-TZcLDEci.js.map +1 -0
  49. package/dist/InventoryPage-DOotGZrj-CoPjOJEI.js +665 -0
  50. package/dist/InventoryPage-DOotGZrj-CoPjOJEI.js.map +1 -0
  51. package/dist/LanguagesModal-B3NTebYT.js +352 -0
  52. package/dist/LanguagesModal-B3NTebYT.js.map +1 -0
  53. package/dist/ManageDynamicFeature-BU0I45dd.js +4475 -0
  54. package/dist/ManageDynamicFeature-BU0I45dd.js.map +1 -0
  55. package/dist/ManageEventConfiguration-DqW3krT6.js +1216 -0
  56. package/dist/ManageEventConfiguration-DqW3krT6.js.map +1 -0
  57. package/dist/ManageEventConfiguration.css +1 -1
  58. package/dist/{ManageNotification-CfhHlfxA.js → ManageNotification-C5MhV77Q.js} +2 -2
  59. package/dist/{ManageNotification-CfhHlfxA.js.map → ManageNotification-C5MhV77Q.js.map} +1 -1
  60. package/dist/{ManageRole-4Y2PP4dQ.js → ManageRole-CNZBRKGU.js} +2 -2
  61. package/dist/{ManageRole-4Y2PP4dQ.js.map → ManageRole-CNZBRKGU.js.map} +1 -1
  62. package/dist/ManageTranslation-vRiptUAP.js +833 -0
  63. package/dist/ManageTranslation-vRiptUAP.js.map +1 -0
  64. package/dist/ManageTranslation.css +1 -1
  65. package/dist/{ManageUser-DDzyd9jm.js → ManageUser-DZltBina.js} +224 -224
  66. package/dist/{ManageUser-DDzyd9jm.js.map → ManageUser-DZltBina.js.map} +1 -1
  67. package/dist/MemberProfileCard-D5CgkTdJ-D2NgDJl3.js +272 -0
  68. package/dist/MemberProfileCard-D5CgkTdJ-D2NgDJl3.js.map +1 -0
  69. package/dist/MobileAnalytics-BLOionG_.js +17301 -0
  70. package/dist/MobileAnalytics-BLOionG_.js.map +1 -0
  71. package/dist/MobileMenuManagement-68Wijb0X.js +220 -0
  72. package/dist/MobileMenuManagement-68Wijb0X.js.map +1 -0
  73. package/dist/MobileTypeEventConfigModal-CMcj7Ozp.js +752 -0
  74. package/dist/MobileTypeEventConfigModal-CMcj7Ozp.js.map +1 -0
  75. package/dist/NotificationFlywayQuery-BAHVjf6N.js +247 -0
  76. package/dist/NotificationFlywayQuery-BAHVjf6N.js.map +1 -0
  77. package/dist/{NotificationList-BMFpNUJG.js → NotificationList-DEyRZEuM.js} +2 -2
  78. package/dist/{NotificationList-BMFpNUJG.js.map → NotificationList-DEyRZEuM.js.map} +1 -1
  79. package/dist/OtherTypeEventConfigModal-stNmuSv_.js +1812 -0
  80. package/dist/OtherTypeEventConfigModal-stNmuSv_.js.map +1 -0
  81. package/dist/PaymentCreatePage-DfvSZ-kB-CckogYoe.js +482 -0
  82. package/dist/PaymentCreatePage-DfvSZ-kB-CckogYoe.js.map +1 -0
  83. package/dist/PaymentsPage-DMNjYWAJ-ChO9IXmk.js +157 -0
  84. package/dist/PaymentsPage-DMNjYWAJ-ChO9IXmk.js.map +1 -0
  85. package/dist/PermissionsModal-CCYkcKlC.js +151 -0
  86. package/dist/PermissionsModal-CCYkcKlC.js.map +1 -0
  87. package/dist/PickupBatchLinesEditor-CE2RuyJT-BPceiJr8.js +119 -0
  88. package/dist/PickupBatchLinesEditor-CE2RuyJT-BPceiJr8.js.map +1 -0
  89. package/dist/PickupCreatePage-B4O_-vE5-DoOo9nJO.js +783 -0
  90. package/dist/PickupCreatePage-B4O_-vE5-DoOo9nJO.js.map +1 -0
  91. package/dist/PickupsPage-D7zyioJB-bHKnARYw.js +818 -0
  92. package/dist/PickupsPage-D7zyioJB-bHKnARYw.js.map +1 -0
  93. package/dist/PmGuard-BZE-y4In-D_pUm5MP.js +599 -0
  94. package/dist/PmGuard-BZE-y4In-D_pUm5MP.js.map +1 -0
  95. package/dist/ProductEditPage-BVlVUCtD-BR-tJ5Wb.js +1305 -0
  96. package/dist/ProductEditPage-BVlVUCtD-BR-tJ5Wb.js.map +1 -0
  97. package/dist/ProductsPage-DvNHIeZt-BoOOJJtk.js +253 -0
  98. package/dist/ProductsPage-DvNHIeZt-BoOOJJtk.js.map +1 -0
  99. package/dist/PurchaseCreatePage-Cq_i9snz-DRtHHFWw.js +675 -0
  100. package/dist/PurchaseCreatePage-Cq_i9snz-DRtHHFWw.js.map +1 -0
  101. package/dist/PurchaseRequestDetailPage-CA9KFOfE-CtjG4Gx6.js +1577 -0
  102. package/dist/PurchaseRequestDetailPage-CA9KFOfE-CtjG4Gx6.js.map +1 -0
  103. package/dist/PurchaseRequestsPage-DS9i4o0--TpoxA5Kd.js +279 -0
  104. package/dist/PurchaseRequestsPage-DS9i4o0--TpoxA5Kd.js.map +1 -0
  105. package/dist/PurchasesPage-DgL5T6BY-DePUuE9l.js +293 -0
  106. package/dist/PurchasesPage-DgL5T6BY-DePUuE9l.js.map +1 -0
  107. package/dist/QueryBuilder-CXaBe6sr.js +478 -0
  108. package/dist/QueryBuilder-CXaBe6sr.js.map +1 -0
  109. package/dist/{RoleManagement-DEiBNfT8.js → RoleManagement-s8iNx2Mu.js} +145 -155
  110. package/dist/RoleManagement-s8iNx2Mu.js.map +1 -0
  111. package/dist/Roles-BIyiic67.js +14 -0
  112. package/dist/Roles-BIyiic67.js.map +1 -0
  113. package/dist/SaleCreatePage-CZnIOydv-DKBw-qp7.js +544 -0
  114. package/dist/SaleCreatePage-CZnIOydv-DKBw-qp7.js.map +1 -0
  115. package/dist/SalesPage-DPIRrC_O-M8rqnK7z.js +315 -0
  116. package/dist/SalesPage-DPIRrC_O-M8rqnK7z.js.map +1 -0
  117. package/dist/SettingsPage-BC_R6Z-Q-CKNt9zRu.js +676 -0
  118. package/dist/SettingsPage-BC_R6Z-Q-CKNt9zRu.js.map +1 -0
  119. package/dist/ShowFlywayQuery-D10Olk5Z.js +154 -0
  120. package/dist/ShowFlywayQuery-D10Olk5Z.js.map +1 -0
  121. package/dist/{ShowFlywayQuery-DVRCd384.js → ShowFlywayQuery-DIOUdYfG.js} +170 -123
  122. package/dist/ShowFlywayQuery-DIOUdYfG.js.map +1 -0
  123. package/dist/ShowQueryHistory-DRBKYDKk.js +313 -0
  124. package/dist/ShowQueryHistory-DRBKYDKk.js.map +1 -0
  125. package/dist/StorageUnitsPage-BDRkdCjW-UF64rf7q.js +728 -0
  126. package/dist/StorageUnitsPage-BDRkdCjW-UF64rf7q.js.map +1 -0
  127. package/dist/SubMenu-BdMTYtC1.js +319 -0
  128. package/dist/SubMenu-BdMTYtC1.js.map +1 -0
  129. package/dist/TransactionsPage-CqWTMNU8-Df6eGFDW.js +746 -0
  130. package/dist/TransactionsPage-CqWTMNU8-Df6eGFDW.js.map +1 -0
  131. package/dist/TransferCreatePage-DF7FZaTJ-CL79V3aR.js +315 -0
  132. package/dist/TransferCreatePage-DF7FZaTJ-CL79V3aR.js.map +1 -0
  133. package/dist/TransfersPage-CGrRFaBF-cTwBUv0o.js +476 -0
  134. package/dist/TransfersPage-CGrRFaBF-cTwBUv0o.js.map +1 -0
  135. package/dist/TypeConfiguration-JbRCN6GR.js +114 -0
  136. package/dist/TypeConfiguration-JbRCN6GR.js.map +1 -0
  137. package/dist/{UserList-Bc8gYxRL.js → UserList-L41Xw0Q6.js} +253 -236
  138. package/dist/{UserList-Bc8gYxRL.js.map → UserList-L41Xw0Q6.js.map} +1 -1
  139. package/dist/Users-CsJ08Kjm.js.map +1 -1
  140. package/dist/VialsPage-rvvXjgZG-Oqo1v6kQ.js +321 -0
  141. package/dist/VialsPage-rvvXjgZG-Oqo1v6kQ.js.map +1 -0
  142. package/dist/constants-DpXnLsAB-D6lN5cjK.js +445 -0
  143. package/dist/constants-DpXnLsAB-D6lN5cjK.js.map +1 -0
  144. package/dist/{dashboardLayoutUtils-D1xCAxp3.js → dashboardLayoutUtils-CJivzaU1.js} +95 -92
  145. package/dist/dashboardLayoutUtils-CJivzaU1.js.map +1 -0
  146. package/dist/format-UOyOu75i-D0GyylyQ.js +63 -0
  147. package/dist/format-UOyOu75i-D0GyylyQ.js.map +1 -0
  148. package/dist/index.css +1 -1
  149. package/dist/index.js +1 -1
  150. package/dist/index.lib-ETRQOzvE.js +894 -0
  151. package/dist/index.lib-ETRQOzvE.js.map +1 -0
  152. package/dist/listValueStore-BFQtDYIR-Bj0yX145.js +36 -0
  153. package/dist/listValueStore-BFQtDYIR-Bj0yX145.js.map +1 -0
  154. package/dist/useFieldErrors-hDG8ox_x-DbSAzrGo.js +28 -0
  155. package/dist/useFieldErrors-hDG8ox_x-DbSAzrGo.js.map +1 -0
  156. package/dist/validation-BzlHnL-r-CCJm2utQ.js +125 -0
  157. package/dist/validation-BzlHnL-r-CCJm2utQ.js.map +1 -0
  158. package/package.json +4 -3
  159. package/dist/AccessRights-Zm8Obm4N.js +0 -1284
  160. package/dist/AccessRights-Zm8Obm4N.js.map +0 -1
  161. package/dist/AddEditQueryBuilder-Brdnm6rQ.js +0 -313
  162. package/dist/AddEditQueryBuilder-Brdnm6rQ.js.map +0 -1
  163. package/dist/AddLabelModal-DFllBVcd.js +0 -734
  164. package/dist/AddLabelModal-DFllBVcd.js.map +0 -1
  165. package/dist/AddMenuConfiguration-Ce91MhnU.js +0 -8547
  166. package/dist/AddMenuConfiguration-Ce91MhnU.js.map +0 -1
  167. package/dist/AppModal-CtG2GjD_.js +0 -428
  168. package/dist/AppModal-CtG2GjD_.js.map +0 -1
  169. package/dist/ChangePasswordModalCore-DutQAZOx.js.map +0 -1
  170. package/dist/ConditionConfig-B4Ffpgj3.js +0 -395
  171. package/dist/ConditionConfig-B4Ffpgj3.js.map +0 -1
  172. package/dist/ConditionConfig.css +0 -1
  173. package/dist/EventConfigurations-BJcURufo.js +0 -449
  174. package/dist/EventConfigurations-BJcURufo.js.map +0 -1
  175. package/dist/EventsExceptionModal-BlZtBQoR.js +0 -200
  176. package/dist/EventsExceptionModal-BlZtBQoR.js.map +0 -1
  177. package/dist/EventsSkeleton-DK6JDKAK.js +0 -83
  178. package/dist/EventsSkeleton-DK6JDKAK.js.map +0 -1
  179. package/dist/FeatureMenu-C3503UIX.js +0 -265
  180. package/dist/FeatureMenu-C3503UIX.js.map +0 -1
  181. package/dist/FlywayQuery-Cx2sly6g.js +0 -169
  182. package/dist/FlywayQuery-Cx2sly6g.js.map +0 -1
  183. package/dist/ImmunizationConfigurationBase-DLQVSNnt.js +0 -5895
  184. package/dist/ImmunizationConfigurationBase-DLQVSNnt.js.map +0 -1
  185. package/dist/ImmunizationConfigurationsList-DdSZicTP.js +0 -344
  186. package/dist/ImmunizationConfigurationsList-DdSZicTP.js.map +0 -1
  187. package/dist/LanguagesModal-D6VfaGrl.js +0 -394
  188. package/dist/LanguagesModal-D6VfaGrl.js.map +0 -1
  189. package/dist/ManageDynamicFeature-dt096fyj.js +0 -4189
  190. package/dist/ManageDynamicFeature-dt096fyj.js.map +0 -1
  191. package/dist/ManageEventConfiguration-BpSJszSX.js +0 -1017
  192. package/dist/ManageEventConfiguration-BpSJszSX.js.map +0 -1
  193. package/dist/ManageTranslation-B4C9-lWD.js +0 -625
  194. package/dist/ManageTranslation-B4C9-lWD.js.map +0 -1
  195. package/dist/MobileMenuManagement-Cf8IZlla.js +0 -108
  196. package/dist/MobileMenuManagement-Cf8IZlla.js.map +0 -1
  197. package/dist/MobileTypeEventConfigModal-DUkUYACe.js +0 -783
  198. package/dist/MobileTypeEventConfigModal-DUkUYACe.js.map +0 -1
  199. package/dist/NotificationFlywayQuery-BY8Zzml_.js +0 -244
  200. package/dist/NotificationFlywayQuery-BY8Zzml_.js.map +0 -1
  201. package/dist/OtherTypeEventConfigModal-CYBfr2XE.js +0 -2046
  202. package/dist/OtherTypeEventConfigModal-CYBfr2XE.js.map +0 -1
  203. package/dist/QueryBuilder-z7eqfd7D.js +0 -383
  204. package/dist/QueryBuilder-z7eqfd7D.js.map +0 -1
  205. package/dist/RoleManagement-DEiBNfT8.js.map +0 -1
  206. package/dist/ShowFlywayQuery-DVRCd384.js.map +0 -1
  207. package/dist/ShowFlywayQuery-tj42YQAS.js +0 -130
  208. package/dist/ShowFlywayQuery-tj42YQAS.js.map +0 -1
  209. package/dist/ShowQueryHistory-BDN0tzHg.js +0 -190
  210. package/dist/ShowQueryHistory-BDN0tzHg.js.map +0 -1
  211. package/dist/SubMenu-B072oEGb.js +0 -191
  212. package/dist/SubMenu-B072oEGb.js.map +0 -1
  213. package/dist/TypeConfiguration-C3xoP2Nb.js +0 -117
  214. package/dist/TypeConfiguration-C3xoP2Nb.js.map +0 -1
  215. package/dist/dashboardLayoutUtils-D1xCAxp3.js.map +0 -1
  216. package/dist/index.lib-C3fwoM3y.js +0 -820
  217. package/dist/index.lib-C3fwoM3y.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"ManageTranslation-B4C9-lWD.js","sources":["../src/services/TranslationService.js","../src/views/Translation/Skeletons/ManageTranslationSkeleton.jsx","../src/views/Translation/ManageTranslation.jsx"],"sourcesContent":["import { api } from \"@/common/interceptors/AxiosInterceptor\";\nimport { execute } from \"@/common/services/GlobalApis\";\n\nexport const createLanguage = (languageDto) =>\n api.post(\"/translation/languages\", languageDto);\n\nexport const createOrUpdateLanguages = (languageList) =>\n api.post(\"/translation/languages\", languageList);\n\nexport const updateLanguage = (languageDto) =>\n api.put(\"/translation/languages\", languageDto);\n\nexport const getAllLanguages = () => api.get(\"/translation/languages\");\n\nexport const createApp = (appDto) => api.post(\"/translation/apps\", appDto);\n\nexport const updateApp = (appDto) => api.post(\"/translation/apps\", appDto);\n\nexport const getAllApps = () => api.get(\"/translation/apps\");\n\nexport const creatingLabel = (dtoList) =>\n api.post(\"/translation/labels\", dtoList);\n\nexport const translationMap = (dtoList) =>\n api.post(\"/translation/map\", dtoList);\n\nexport const addtranslationMap = (dtoList) =>\n api.post(\"/translation/mapUpdate\", dtoList);\n\nexport const getAppsById = (ids) =>\n api.get(\"/translation/apps-selected\", { params: { ids } });\n\nexport const getLanguagesById = (ids) =>\n api.get(\"/translation/languages-selected\", { params: { ids } });\n\nexport const toggleActive = (key, isActive, app) => {\n const params = new URLSearchParams({\n key,\n isActive,\n app,\n }).toString();\n return api.put(`/translation/toggleActive?${params}`, { key, isActive, app });\n};\n\nexport const getAvailableLanguages = () =>\n api.get(\"/translation/languages-available\");\n\nexport const translateText = (targetLangs, englishText) =>\n api.get(\"/translation/translate\", { params: { targetLangs, englishText } });\n\nexport const getTranslation = async (preferredLanguage) => {\n try {\n const { data: languages } = await getAllLanguages();\n const preferredLanguageId = languages.find(\n (lang) =>\n lang.active &&\n preferredLanguage !== \"en\" &&\n lang.languageKey === preferredLanguage\n )?.id;\n\n const { data: response } = await execute({\n code: \"translation_from_language_key\",\n parameters: {\n languageId: Number(preferredLanguageId),\n appId: 2,\n },\n });\n\n const translations = response.result.reduce((acc, translation) => {\n acc[translation.key] = translation.value;\n return acc;\n }, {});\n\n return translations;\n } catch (error) {\n console.error(\"API call failed:\", error);\n throw error;\n }\n};\n\nexport const getTranslationByKey = (formCode) =>\n api.get(\"/translation/getTranslationsByFormcode\", { params: { formCode } });\n","import PropTypes from \"prop-types\";\nimport React from \"react\";\n\nimport { useSelector } from \"react-redux\";\nimport { getUseSkeleton } from \"@/store/reducers/SkeletonReducer\";\nexport const ManageTranslationSkeleton = ({ children, isLoading }) => {\n const useSkeleton = useSelector(getUseSkeleton);\n if (!useSkeleton) {\n return children;\n }\n if (!isLoading) {\n return children;\n }\n\n return (\n <div className=\"flex flex-col mt-6 gap-2 w-full\">\n <div className=\"flex w-full items-center justify-between space-x-2\">\n <div className=\"flex space-x-2\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-40 h-10\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-40 h-10\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-60 h-10\"></div>\n </div>\n <div className=\"flex space-x-2\">\n <div className=\"bg-gray-300 rounded-sm animate-pulse w-40 h-10\"></div>\n <div className=\"bg-gray-300 rounded-sm animate-pulse w-20 h-10\"></div>\n <div className=\"bg-gray-300 rounded-sm animate-pulse w-20 h-10\"></div>\n <div className=\"bg-gray-300 rounded-sm animate-pulse w-20 h-10\"></div>\n </div>\n </div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-full h-100\"></div>\n </div>\n );\n};\n\nManageTranslationSkeleton.propTypes = {\n children: PropTypes.any,\n isLoading: PropTypes.any,\n};\n\nexport const AddLabelSkeleton = ({ children, isLoading = true }) => {\n const useSkeleton = useSelector(getUseSkeleton);\n if (!useSkeleton) {\n return children;\n }\n if (!isLoading) {\n return children;\n }\n\n return (\n <div className=\"flex flex-col absolute top-10 left-1/2 -translate-x-1/2 w-[95%] sm:w-[600px] md:w-[700px] lg:w-[800px] bg-white shadow-2xl border border-gray-300 rounded-sm h-[60vh]\">\n <div className=\"h-15 w-full bg-gray-200 rounded mb-6\"></div>\n <div className=\"h-10 w-[90%] bg-gray-200 rounded m-4\"></div>\n <div className=\"h-10 w-[90%] bg-gray-200 rounded m-4\"></div>\n <div className=\"h-10 w-[90%] bg-gray-200 rounded m-4 \"></div>\n <div className=\"h-9 w-1/3 bg-gray-200 rounded mt-auto ml-auto mb-2 mr-3\"></div>\n </div>\n );\n};\n\nAddLabelSkeleton.propTypes = {\n children: PropTypes.any,\n isLoading: PropTypes.any,\n};\n\nexport const AppModalSkeleton = ({ children, isLoading = true }) => {\n const useSkeleton = useSelector(getUseSkeleton);\n if (!useSkeleton) {\n return children;\n }\n if (!isLoading) {\n return children;\n }\n\n return (\n <div className=\"w-full flex justify-end pb-[10px]\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm h-[32px] w-[100px]\"></div>\n </div>\n );\n};\n\nAppModalSkeleton.propTypes = {\n children: PropTypes.any,\n isLoading: PropTypes.any,\n};\n\nexport const LabelEditModalSkeleton = ({ children, isLoading = true }) => {\n const useSkeleton = useSelector(getUseSkeleton);\n if (!useSkeleton) {\n return children;\n }\n if (!isLoading) {\n return children;\n }\n\n return (\n <div className=\"flex justify-end w-full\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm h-[32px] w-[120px]\"></div>\n </div>\n );\n};\n\nLabelEditModalSkeleton.propTypes = {\n children: PropTypes.any,\n isLoading: PropTypes.any,\n};\n\nexport const LabelEditFormSkeleton = ({ children, isLoading = true }) => {\n const useSkeleton = useSelector(getUseSkeleton);\n if (!useSkeleton) {\n return children;\n }\n if (!isLoading) {\n return children;\n }\n\n return (\n <div className=\"w-full flex flex-col gap-2\">\n <div className=\"flex flex-col sm:flex-row justify-between gap-4 w-full\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[130px] h-[35px]\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-full sm:w-[350px] h-[35px]\"></div>\n </div>\n <div className=\"flex flex-col sm:flex-row gap-4 w-full\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[65px] h-[35px]\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[75px] h-[35px]\"></div>\n </div>\n </div>\n );\n};\n\nLabelEditFormSkeleton.propTypes = {\n children: PropTypes.any,\n isLoading: PropTypes.any,\n};","import React, {\n lazy,\n Suspense,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport {\n getAllApps,\n getAllLanguages,\n toggleActive,\n} from \"../../services/TranslationService\";\nimport { showToast } from \"@/common/toaster/toaster\";\nimport Grid from \"@mui/material/Grid2\";\nimport \"./Styles/ManageTranslation.scss\";\nimport { getAssignedFeatures } from \"@/utils/feature\";\nimport {\n MenuItem,\n FormControl,\n Select,\n Typography,\n TextField,\n Box,\n Card,\n Button,\n FormControlLabel,\n FormGroup,\n Checkbox,\n Chip,\n Autocomplete,\n} from \"@mui/material\";\nimport { executeQuery, execute } from \"@/common/services/GlobalApis\";\nimport usePagination from \"@/hooks/usePagination\";\nimport CustomConfirmationModal from \"@/views/custom-components/CustomConfirmationModal\";\nconst AppModal = lazy(() => import(\"./AppModal\"));\nconst LanguagesModal = lazy(() => import(\"./LanguagesModal\"));\nconst AddLabelModal = lazy(() => import(\"./AddLabelModal\"));\nimport GeneralUtil from \"@/common/services/util/GeneralUtil\";\n// const LabelEditModal = lazy(() => import('./LabelEditModal'));\nimport { useTranslateProvider } from \"@/common/languageTranslator/TranslationContext\";\nimport { ManageTranslationSkeleton } from \"./Skeletons/ManageTranslationSkeleton\";\nimport CustomizedTable from \"@/views/custom-components/CustomizedTable/CustomizedTableV2\";\nimport { faBars, faPen } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\n\n/**\n * @module ManageTranslation\n * @description This component handles the management of translations, including handling app selection, language management, label management, and toggling active states.\n */\n\nfunction ManageTranslation() {\n const { translate } = useTranslateProvider();\n const inputRef = useRef(null);\n const [apps, setApps] = useState([]);\n const isInitialPage = useRef(false);\n const [appList, setAppList] = useState([]);\n const [addAppFlag, setaddAppFlag] = useState(false);\n const [fieldsData, setFieldsData] = useState(null);\n const [loadingEditLabel, setLoadingEditLabel] = useState(false);\n\n const [tableData, setTableData] = useState([]);\n const [appModal, setAppModal] = useState(false);\n const [languageModal, setLanguageModal] = useState(false);\n\n const [hasMore, setHasMore] = useState(true);\n const [selectedApp, setSelectedApp] = useState(\"\");\n const [languages, setLanguages] = useState([]);\n\n const [addLabel, setAddLabel] = useState(false);\n const [editLabel, setEditLabel] = useState(null);\n // const [search, setSearch] = useState('');\n const [searchValue, setSearchValue] = useState(\"\");\n const [startsWith, setStartsWith] = useState(\"\");\n const [inactive, setInactive] = useState(false);\n const [rights, setRights] = useState(null);\n const rightsRef = useRef(rights);\n\n useEffect(() => {\n rightsRef.current = rights;\n }, [rights]);\n\n\n const [toggleOpen, setToggleOpen] = useState(false);\n\n const [isActiveLabel, setIsActiveLabel] = useState(\"\");\n const [isActiveDescription, setIsActiveDescription] = useState(\"\");\n const [clickedRow, setClickedRow] = useState({});\n\n const [labelEdit, setLabelEdit] = useState(false);\n const [labelKey, setLabelKey] = useState(null);\n const [isLoading, setIsLoading] = useState(false);\n const [addNameSpaceFlag, setaddNameSpaceFlag] = useState(false);\n const [isPageLoaded, setIsPageLoaded] = useState(false);\n const [loadingTable, setLoadingTable] = useState(false);\n\n const [namespaceslist, setNameSpaceList] = useState([]);\n const [selectedNameSpace, setSelectedNameSpace] = useState([]);\n\n const getnamespace = async () => {\n try {\n const res = await execute({\n code: \"get_distinct_namespce\",\n parameters: {},\n });\n setNameSpaceList(res?.data?.result);\n } catch (e) {\n console.error(e);\n }\n };\n\n useEffect(() => {\n init();\n getnamespace();\n }, []);\n\n /**\n * @method init\n * @description Initializes the translation management page by fetching necessary data, such as apps and languages, and setting user rights.\n */\n const init = async () => {\n try {\n await refresh();\n const { data: assignedFeatures } = await getAssignedFeatures(\n \"techo.manage.manageTranslation\",\n );\n setRights(JSON.parse(assignedFeatures));\n } catch (error) {\n console.error(error);\n showToast({ message: \"Error in manage Translation\", type: \"error\" });\n }\n };\n\n /**\n * @method refresh\n * @description Refreshes the list of apps and languages.\n */\n const refresh = async () => {\n try {\n let res = await getAllApps();\n const activeApps = res?.data?.filter((app) => {\n return app.isActive === true;\n });\n setApps(activeApps);\n\n res = await getAllLanguages();\n const activeLanguages = res?.data?.filter((lang) => {\n return lang.active === true;\n });\n setLanguages(activeLanguages);\n } catch (error) {\n console.error(error);\n showToast({ message: \"Error in manage Translation\", type: \"error\" });\n }\n };\n\n /**\n * @method handleAppChange\n * @description Handles the change in the selected app and fetches related data.\n * @param {object} event - The change event from the Select component.\n */\n const handleAppChange = (event) => {\n setSelectedApp(event?.target?.value);\n };\n\n const performSearch = useCallback((search) => {\n // If there is an unmatched '{', do not update searchValue\n const openBraces = (search.match(/{/g) || []).length;\n const closeBraces = (search.match(/}/g) || []).length;\n if (openBraces > closeBraces) return;\n setSearchValue(search);\n }, []);\n const debounce = (func, delay) => {\n let timeoutId;\n return (...args) => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => {\n func(...args);\n }, delay);\n };\n };\n\n const debouncedSearch = useMemo(\n () => debounce(performSearch, 300),\n [performSearch],\n );\n\n /**\n * @method handleSearch\n * @description Handles the search input change.\n * @param {object} e - The input event.\n */\n const handleSearch = (e) => {\n const { value: search } = e.target;\n // setSearch(search);\n debouncedSearch(search);\n };\n\n /**\n * @method handleLetterClick\n * @description Handles clicking on a letter to filter results that start with that letter.\n * @param {string} letter - The clicked letter.\n */\n const handleLetterClick = (letter) => {\n setStartsWith(letter);\n // searchTranslations(true); // Call your search function here\n };\n\n const cols = [\n { field: \"Sr. No.\", label: `Sr.No`, align: \"left\" },\n { field: \"Actions\", label: \"Actions\" },\n { field: \"app\", label: \"App\", align: \"left\" },\n { field: \"state\", label: \"State\", align: \"left\" },\n { field: \"key\", label: \"Key\", align: \"left\" },\n ];\n\n languages?.map((language) =>\n cols.push({\n field: language?.languageValue?.toLowerCase(),\n label: language?.languageValue,\n align: \"left\",\n }),\n );\n\n /**\n * @method handleToggleOption\n * @description Handles the toggling of the label state between active and inactive.\n * @param {object} data - The label data.\n */\n const handleToggleOption = (data) => {\n setIsActiveLabel(\n data?.state === \"Active\" ? \"Mark as Inactive\" : \"Mark as Active\",\n );\n setIsActiveDescription(\n data?.state === \"Active\"\n ? \"Are you sure you want to change the state from active to inactive?\"\n : \"Are you sure you want to change the state from inactive to active?\",\n );\n setClickedRow(data);\n };\n\n const handleToggle = () => {\n setToggleOpen((curr) => !curr);\n };\n\n /**\n * @method handleAddApp\n * @description Opens the modal for adding a new app to the label.\n */\n const handleAddNameSpace = async () => {\n try {\n setFieldsData({ key: clickedRow?.key });\n setaddNameSpaceFlag(true);\n setAddLabel((curr) => !curr);\n } catch (error) {\n console.error(error);\n showToast({ message: \"Error in opening Add App Modal\", type: \"error\" });\n }\n };\n\n const handleAddApp = async () => {\n try {\n let key = clickedRow?.key.replace(/'/g, \"''\");\n let dto = {\n code: \"labels_selected_apps_for_editing\",\n parameters: { key },\n };\n const res = await executeQuery(dto);\n let editApp = res?.data?.result;\n setEditLabel(res?.data?.result);\n let queryDto = {\n code: \"labels_app_data_for_prepopulating\",\n parameters: {\n key: clickedRow?.key,\n appValue: clickedRow?.app,\n },\n };\n\n let editAppIds = editApp.map((item) => {\n return item.app;\n });\n let appList = apps.filter((app) => {\n return editAppIds.indexOf(app.id) === -1;\n });\n\n if (appList.length > 0) {\n const result = await executeQuery(queryDto);\n setFieldsData(result?.data?.result);\n setAppList(appList);\n\n setaddAppFlag(true);\n setAddLabel((curr) => !curr);\n } else {\n showToast({\n message: \"Label already present in all apps\",\n type: \"info\",\n });\n }\n } catch (error) {\n console.error(error);\n showToast({ message: \"Error in opening Add App Modal\", type: \"error\" });\n }\n };\n\n const handleToggleState = async () => {\n try {\n let isActive = clickedRow?.state === \"Active\";\n await toggleActive(clickedRow?.key, !isActive, clickedRow?.appId);\n refetch();\n setToggleOpen((cur) => !cur);\n } catch (error) {\n console.error(error);\n showToast({ message: \"Error in Toggle State\", type: \"error\" });\n }\n };\n\n /**\n * @method handleEdit\n * @description Handles the edit action for a label.\n * @param {object} row - The row data for the label to be edited.\n */\n const handleEdit = async (row) => {\n try {\n setLoadingEditLabel(true);\n setAddLabel((curr) => !curr);\n setLabelEdit((curr) => !curr);\n let key = row?.key.replace(/'/g, \"''\");\n setLabelKey(key);\n let dto = {\n code: \"labels_selected_apps_for_editing\",\n parameters: { key },\n };\n const res = await executeQuery(dto);\n setEditLabel(res?.data?.result);\n setLoadingEditLabel(false);\n } catch (error) {\n console.error(error);\n showToast({ message: \"Error in Editing label\", type: \"error\" });\n setLoadingEditLabel(false);\n }\n };\n\n const handleInactive = (row) => {\n return row?.state !== \"Inactive\";\n };\n\n const actions = useMemo(() => {\n const list = [];\n if (GeneralUtil.hasCheckRights(rights?.['update.manage.manageTranslation'])) {\n list.push({\n label: \"\",\n icon: <FontAwesomeIcon icon={faPen} />,\n onClick: handleEdit,\n condition: handleInactive,\n dataTestId: \"manage-translation-edit-icon\",\n });\n }\n\n const currentMenuItems = [];\n if (GeneralUtil.hasCheckRights(rights?.['update.manage.manageTranslation'])) {\n currentMenuItems.push({ label: translate(isActiveLabel), onClick: handleToggle });\n }\n if (GeneralUtil.hasCheckRights(rights?.['create.manage.manageTranslation'])) {\n currentMenuItems.push({ label: translate(\"Add app\"), onClick: handleAddApp });\n currentMenuItems.push({ label: translate(\"Add Namespace\"), onClick: handleAddNameSpace });\n }\n\n if (currentMenuItems.length > 0) {\n list.push({\n label: \"\",\n icon: <FontAwesomeIcon icon={faBars} />,\n menuClick: handleToggleOption,\n dataTestId: \"manage-translation-menu-icon\",\n menuItems: currentMenuItems,\n });\n }\n\n return list;\n }, [rights, isActiveLabel, translate]);\n\n const manageApps = () => {\n setAppModal((cur) => !cur);\n };\n const manageLanguages = () => {\n setLanguageModal((curr) => !curr);\n };\n const addLabelTranslation = () => {\n setAddLabel((curr) => !curr);\n setAppList(apps);\n };\n\n const escapeSql = (val) => {\n if (val === null || val === undefined) return val;\n return val.replace(/'/g, \"''\");\n };\n\n const loadData = async (pageParam, isInitial) => {\n try {\n if (isInitial && !isPageLoaded) {\n isInitialPage.current = true;\n setIsLoading(true);\n } else if (isInitial && isPageLoaded) {\n // This is a refetch, not truly the first load\n setLoadingTable(true);\n }\n let queryDto = {\n code: \"fetch_labels_translation_translation_master\",\n parameters: {\n appId: selectedApp || null,\n searchString: escapeSql(searchValue || \"\"),\n startsWith: escapeSql(startsWith || \"\"),\n namespaceArray:\n selectedNameSpace.length > 0\n ? selectedNameSpace.map((v) => escapeSql(v)).join(\",\")\n : \"\",\n showInactive: inactive || false,\n limit: pageParam?.limit || 100,\n offset: pageParam?.offset || 0,\n },\n };\n const res = await executeQuery(queryDto);\n return res?.data?.result;\n } catch (error) {\n isInitialPage.current = false;\n console.error(error);\n setLoadingTable(false);\n setIsLoading(false);\n showToast({ message: \"Error in loading data\", type: \"error\" });\n }\n };\n\n // Place this inside your component, right before the return()\n const isClearDisabled = useMemo(() => {\n return (\n searchValue === \"\" &&\n startsWith === \"\" &&\n inactive === false &&\n selectedApp === \"\" &&\n selectedNameSpace.length === 0\n );\n }, [searchValue, startsWith, inactive, selectedApp, selectedNameSpace]);\n\n const stableKey = useMemo(\n () => [\n \"translation\",\n selectedApp,\n searchValue,\n startsWith,\n inactive,\n selectedNameSpace,\n ],\n [selectedApp, searchValue, startsWith, inactive, selectedNameSpace],\n );\n\n const {\n data: pageData,\n fetchNextPage,\n hasNextPage,\n refetch,\n } = usePagination({\n key: stableKey,\n queryFn: ({ pageParam }) => {\n const isFirstLoad = !isPageLoaded; // first time ever\n const isFirstPage = !pageParam?.offset || pageParam?.offset === 0;\n const isInitial = isFirstPage && isFirstLoad; // only first load is \"initial\"\n return loadData(pageParam, isInitial);\n },\n limit: 100,\n });\n\n useEffect(() => {\n if (pageData) {\n let actualData = pageData?.pages?.flat() || [];\n\n const groupedArray = Object.values(\n actualData?.reduce((acc, element) => {\n const combinedKey = element?.key + \"-\" + element?.app; // Create a unique key combining `key` and `app`\n if (!acc[combinedKey]) {\n acc[combinedKey] = {\n appId: element?.appid,\n key: element?.key,\n app: element?.app,\n state: element?.is_active ? \"Active\" : \"Inactive\",\n };\n }\n\n acc[combinedKey][element?.language.toLowerCase()] = element?.value; // Add the `value` to the group's `values` array\n if (element?.is_active) {\n acc[combinedKey].state = \"Active\";\n }\n return acc;\n }, {}),\n );\n setHasMore(hasNextPage);\n setTableData(groupedArray);\n if (isInitialPage.current) {\n if (!isPageLoaded) {\n setIsLoading(false); // explicitly stop\n setIsPageLoaded(true);\n } else {\n setLoadingTable(false); // explicitly stop\n }\n isInitialPage.current = false;\n }\n }\n }, [pageData]);\n\n const handleClearFilters = () => {\n setSearchValue(\"\");\n setStartsWith(\"\");\n setInactive(false);\n setSelectedApp(\"\");\n setSelectedNameSpace([]);\n inputRef.current.value = \"\";\n };\n\n return !isLoading && rights !== null && !GeneralUtil.hasCheckRights(rights?.[\"view.manage.manageTranslation\"]) ? (\n <Box className=\"flex justify-center items-center w-full h-[80vh]\">\n <Card\n className=\"h-80 w-150 flex justify-center items-center\"\n >\n <Typography variant=\"h5\" className=\"text-customBlue\">\n You dont have permission to view Manage Translation\n </Typography>\n </Card>\n </Box>\n ) : (\n <Grid container mt={3} spacing={2}>\n <Suspense>\n {appModal && (\n <AppModal\n open={appModal}\n handleClose={() => setAppModal((curr) => !curr)}\n languages={languages}\n refresh={refresh}\n refetch={refetch}\n selectedApp={selectedApp}\n setSelectedApp={setSelectedApp}\n />\n )}\n </Suspense>\n\n <Suspense>\n {languageModal && (\n <LanguagesModal\n open={languageModal}\n handleClose={() => {\n setLanguageModal((curr) => !curr);\n }}\n refresh={refresh}\n refetch={refetch}\n />\n )}\n </Suspense>\n\n <Suspense>\n {addLabel && (\n <AddLabelModal\n open={addLabel}\n handleClose={() => {\n setAddLabel((curr) => !curr);\n setaddAppFlag(false);\n setaddNameSpaceFlag(false);\n setEditLabel(null);\n setFieldsData(null);\n setLabelEdit(false);\n setLabelKey(null);\n }}\n apps={appList}\n addAppFlag={addAppFlag}\n addNameSpaceFlag={addNameSpaceFlag}\n languageList={languages}\n editLabel={editLabel}\n fieldsData={fieldsData}\n editLabelFlag={labelEdit}\n // editLabel={editLabel}\n labelKey={labelKey}\n refetch={refetch}\n isLoading={loadingEditLabel}\n />\n )}\n </Suspense>\n\n <Suspense>\n {/* {labelEdit && (\n <LabelEditModal\n open={labelEdit}\n handleClose={() => {\n setLabelEdit((curr) => !curr);\n setEditLabel(null);\n setLabelKey(null);\n }}\n editLabel={editLabel}\n labelKey={labelKey}\n refetch={refetch}\n />\n )} */}\n </Suspense>\n\n <CustomConfirmationModal\n description={isActiveDescription}\n title={\"CONFIRM ACTION\"}\n handleClick={handleToggleState}\n open={toggleOpen}\n handleClose={() => {\n setToggleOpen((cur) => !cur);\n }}\n data-testid=\"manageTranslation-modal-customconfirmation\"\n />\n <Grid container spacing={1} className=\"grow\">\n <ManageTranslationSkeleton isLoading={isLoading}>\n <Grid size={{ xs: 6, sm: 6, md: 3 }}>\n <FormControl variant=\"outlined\" fullWidth>\n <Typography className=\"pl-2\">\n <span>{translate(\"App\")}</span>\n </Typography>\n\n <Select\n value={selectedApp}\n onChange={handleAppChange}\n size=\"small\"\n displayEmpty\n sx={{\n bgcolor: \"background.paper\",\n color: selectedApp ? \"text.primary\" : \"text.disabled\", // gray when empty\n }}\n renderValue={(selected) =>\n selected\n ? apps.find((app) => app.id === selected)?.appValue\n : \"Select App\"\n }\n >\n {apps?.map((app) => (\n <MenuItem key={app?.id} value={app?.id}>\n {app?.appValue}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n </Grid>\n <Grid size={{ xs: 6, sm: 6, md: 3 }}>\n <FormControl variant=\"outlined\" fullWidth>\n <Typography className=\"\">\n <span>{translate(\"Name Spaces\")}</span>\n </Typography>\n <Autocomplete\n multiple\n options={namespaceslist ?? []}\n getOptionLabel={(option) => option?.label ?? \"\"}\n value={namespaceslist.filter((ns) =>\n selectedNameSpace.includes(ns.value),\n )}\n onChange={(e, newValue) => {\n setSelectedNameSpace(newValue.map((item) => item.value));\n }}\n filterSelectedOptions\n disableCloseOnSelect\n size=\"small\"\n renderTags={(value, getTagProps) =>\n value.map((option, index) => (\n <Chip\n variant=\"outlined\"\n size=\"small\"\n label={option.label}\n {...getTagProps({ index })}\n key={option.label}\n sx={{\n bgcolor: \"action.hover\",\n }}\n />\n ))\n }\n renderInput={(params) => (\n <TextField\n {...params}\n placeholder=\"Select Name Space\"\n sx={{ bgcolor: \"background.paper\" }}\n data-testid=\"autocomplete-namespace\"\n />\n )}\n />\n </FormControl>\n </Grid>\n <Grid size={{ xs: 6, sm: 6, md: 3 }}>\n <FormControl variant=\"outlined\" fullWidth>\n <Typography sx={{ pl: 1 }}>\n <span>{translate(\"Search For\")}:</span>\n </Typography>\n\n <TextField\n inputRef={inputRef}\n name=\"searchQuery\"\n id=\"searchQuery\"\n placeholder=\"Enter Search Value\"\n size=\"small\"\n // value={search}\n onChange={handleSearch}\n sx={{ bgcolor: \"background.paper\" }}\n data-testid=\"managetranslation-search-textfield\"\n />\n </FormControl>\n </Grid>\n <Grid\n size={{ xs: 12, sm: 12, md: 2 }}\n sx={{\n display: \"flex\",\n mt: 3,\n justifyContent: \"end\",\n alignItems: \"center\",\n }}\n >\n <Box>\n <Button\n variant=\"contained\"\n disabled={isClearDisabled}\n sx={{\n lineHeight: \"35px\",\n ml: 1,\n mt: 1,\n display: \"inline-block\",\n ...(isClearDisabled\n ? {}\n : {\n bgcolor: \"error.main\",\n color: \"error.contrastText\",\n \"&:hover\": { bgcolor: \"error.dark\" },\n }),\n }}\n onClick={handleClearFilters}\n >\n Clear All Filters\n </Button>\n </Box>\n </Grid>\n\n <Grid\n size={{ xs: 12, sm: 12, md: 6.5 }}\n sx={{\n pl: 1,\n display: \"flex\",\n justifyContent: \"start\",\n alignItems: \"center\",\n }}\n >\n <Box className=\"overflow-x-auto whitespace-nowrap\">\n <Typography className=\"pb-[7px]\">\n <span>{translate(\"Starts With\")}:</span>\n </Typography>\n\n {Array.from({ length: 26 }, (_, index) => {\n const letter = String.fromCharCode(65 + index);\n return (\n <Typography\n key={letter}\n component=\"span\"\n className={`${startsWith === letter ? \"selected-letter\" : \"letter-style\"} inline-block cursor-pointer`}\n onClick={() => handleLetterClick(letter)}\n >\n {letter}\n </Typography>\n );\n })}\n\n <Button\n variant=\"contained\"\n color=\"secondary\"\n disabled={startsWith.length === 0}\n className=\"x-button ml-2 inline-block\"\n onClick={() => handleLetterClick(\"\")}\n >\n ×\n </Button>\n </Box>\n </Grid>\n\n <Grid\n size={{ xs: 12, sm: 12, md: 5.5 }}\n display=\"flex\"\n alignItems=\"center\"\n >\n <Grid\n container\n justifyContent=\"flex-end\"\n alignItems=\"center\"\n spacing={1}\n >\n <Grid item=\"true\">\n <FormGroup>\n <FormControlLabel\n control={\n <Checkbox\n checked={inactive}\n onChange={(event) => setInactive(event.target.checked)}\n />\n }\n label={`${translate(\"Show Inactive\")}`}\n labelPlacement=\"end\"\n className=\"translation-inactive\"\n />\n </FormGroup>\n </Grid>\n <Grid item=\"true\">\n {GeneralUtil.hasCheckRights(rights?.['create.manage.manageTranslation'], rights?.canManage) && (\n <Button\n size=\"small\"\n variant=\"contained\"\n data-testid=\"manageTranslation-manage-apps-button\"\n color=\"primary\"\n onClick={manageApps}\n >\n {translate(\"Manage Apps\")}\n </Button>\n )}\n </Grid>\n\n <Grid item=\"true\">\n {GeneralUtil.hasCheckRights(rights?.['create.manage.manageTranslation'], rights?.canManage) && (\n <Button\n size=\"small\"\n variant=\"contained\"\n data-testid=\"managetranslation-manage-language-button\"\n onClick={manageLanguages}\n >\n {translate(\"Manage Language\")}\n </Button>\n )}\n </Grid>\n\n <Grid item=\"true\">\n {GeneralUtil.hasCheckRights(rights?.['create.manage.manageTranslation']) && (\n <Button\n size=\"small\"\n variant=\"contained\"\n data-testid=\"manageTranalation-add-label-button\"\n onClick={addLabelTranslation}\n >\n {translate(\"Add Label\")}\n </Button>\n )}\n </Grid>\n </Grid>\n </Grid>\n <Grid className=\"mt-2\" size={{ xs: 12 }}>\n <CustomizedTable\n columns={cols}\n tableData={tableData}\n actions={actions}\n paginationConfig={{\n pagination: true,\n paginationType: \"infinite-scroll\",\n loadMore: () =>\n hasMore && fetchNextPage({ cancelRefetch: false }),\n hasMore: hasMore,\n }}\n // rowsPerPageInTable={50}\n // handleSort={handleSort}\n // sortOrder={sortOrder}\n dataTestId=\"manageTranslation-table\"\n isLoading={tableData ? isLoading || loadingTable : false}\n styleConfig={{ tableStyle: { maxHeight: 120 } }}\n />\n </Grid>\n </ManageTranslationSkeleton>\n </Grid>\n </Grid>\n );\n}\n\nexport default ManageTranslation;\n"],"names":["createLanguage","languageDto","api","updateLanguage","getAllLanguages","createApp","appDto","updateApp","getAllApps","creatingLabel","dtoList","translationMap","addtranslationMap","toggleActive","key","isActive","app","params","translateText","targetLangs","englishText","ManageTranslationSkeleton","children","isLoading","useSelector","getUseSkeleton","jsxs","jsx","PropTypes","AddLabelSkeleton","AppModalSkeleton","LabelEditModalSkeleton","AppModal","lazy","LanguagesModal","AddLabelModal","ManageTranslation","translate","useTranslateProvider","inputRef","useRef","apps","setApps","useState","isInitialPage","appList","setAppList","addAppFlag","setaddAppFlag","fieldsData","setFieldsData","loadingEditLabel","setLoadingEditLabel","tableData","setTableData","appModal","setAppModal","languageModal","setLanguageModal","hasMore","setHasMore","selectedApp","setSelectedApp","languages","setLanguages","addLabel","setAddLabel","editLabel","setEditLabel","searchValue","setSearchValue","startsWith","setStartsWith","inactive","setInactive","rights","setRights","rightsRef","useEffect","toggleOpen","setToggleOpen","isActiveLabel","setIsActiveLabel","isActiveDescription","setIsActiveDescription","clickedRow","setClickedRow","labelEdit","setLabelEdit","labelKey","setLabelKey","setIsLoading","addNameSpaceFlag","setaddNameSpaceFlag","isPageLoaded","setIsPageLoaded","loadingTable","setLoadingTable","namespaceslist","setNameSpaceList","selectedNameSpace","setSelectedNameSpace","getnamespace","res","execute","_a","e","init","refresh","assignedFeatures","getAssignedFeatures","error","showToast","activeApps","activeLanguages","_b","lang","handleAppChange","event","performSearch","useCallback","search","openBraces","closeBraces","debounce","func","delay","timeoutId","args","debouncedSearch","useMemo","handleSearch","handleLetterClick","letter","cols","language","handleToggleOption","data","handleToggle","curr","handleAddNameSpace","handleAddApp","dto","executeQuery","editApp","queryDto","editAppIds","item","result","_c","handleToggleState","refetch","cur","handleEdit","row","handleInactive","actions","list","GeneralUtil","FontAwesomeIcon","faPen","currentMenuItems","faBars","manageApps","manageLanguages","addLabelTranslation","escapeSql","val","loadData","pageParam","isInitial","v","isClearDisabled","stableKey","pageData","fetchNextPage","hasNextPage","usePagination","isFirstLoad","actualData","groupedArray","acc","element","combinedKey","handleClearFilters","Box","Card","Typography","Grid","Suspense","CustomConfirmationModal","FormControl","Select","selected","MenuItem","Autocomplete","option","ns","newValue","value","getTagProps","index","createElement","Chip","TextField","Button","_","FormGroup","FormControlLabel","Checkbox","CustomizedTable"],"mappings":"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"}
@@ -1,108 +0,0 @@
1
- import { jsx as e, jsxs as s } from "react/jsx-runtime";
2
- import { api as v } from "@/common/interceptors/AxiosInterceptor";
3
- import { showToast as S } from "@/common/toaster/toaster";
4
- import { Typography as L, TextField as N, Button as T, TableContainer as w, Paper as k, Table as F, TableHead as I, TableRow as c, TableCell as r, TableBody as R, IconButton as P } from "@mui/material";
5
- import d from "@mui/material/Grid2";
6
- import { Box as j } from "@mui/system";
7
- import { useState as u, useEffect as J } from "react";
8
- import { useNavigate as W } from "react-router";
9
- import q from "@/common/fontAwesomeIcons/FontAwesomeIcons";
10
- import { c as B } from "./dashboardLayoutUtils-D1xCAxp3.js";
11
- const z = "/mobilemenu/v2", A = {
12
- getMobileMenuList: () => v.get(z + "/list")
13
- };
14
- function _() {
15
- const [h, g] = u([]), [b, p] = u(""), [l, m] = u([]), f = W(), x = (o, n, a) => {
16
- const i = `addMenuConfiguration?${new URLSearchParams({ id: o }).toString()}`;
17
- f(i, { state: { mobileMenuList: l[a], roleId: n } });
18
- };
19
- J(() => {
20
- (async () => await y())();
21
- }, []);
22
- const y = async () => {
23
- try {
24
- const a = ((await A.getMobileMenuList()).data || []).map((t) => {
25
- let i = {};
26
- try {
27
- i = typeof t.configJson == "string" ? JSON.parse(t.configJson) : t.configJson || {};
28
- } catch {
29
- i = {};
30
- }
31
- const M = B(i), C = [...new Set(M)].join(", ");
32
- return {
33
- id: t.id,
34
- roleId: t.roleId,
35
- name: t.roleName,
36
- features: C,
37
- configJson: i
38
- };
39
- });
40
- g(a), m(a);
41
- } catch (o) {
42
- S({ message: o, type: "error" });
43
- }
44
- };
45
- return /* @__PURE__ */ e(d, { children: /* @__PURE__ */ s(j, { sx: { p: 3, backgroundColor: "background.default" }, children: [
46
- /* @__PURE__ */ s(d, { container: !0, sx: { justifyContent: "space-between", alignItems: "center", mb: 2 }, children: [
47
- /* @__PURE__ */ e(L, { variant: "h5", sx: { mb: 2, fontWeight: "bold" }, children: "Mobile Menu Management" }),
48
- /* @__PURE__ */ e(
49
- N,
50
- {
51
- size: "small",
52
- placeholder: "Search Role",
53
- variant: "outlined",
54
- value: b,
55
- onChange: (o) => {
56
- const n = o.target.value.toLowerCase();
57
- p(n), m(h.filter((a) => a.name.toLowerCase().includes(n)));
58
- },
59
- sx: { mb: 2, backgroundColor: "var(--color-background2)", borderRadius: 1 }
60
- }
61
- )
62
- ] }),
63
- /* @__PURE__ */ e(d, { sx: { justifyContent: "center", alignItems: "center", mb: 2 }, children: /* @__PURE__ */ e(
64
- T,
65
- {
66
- sx: { float: "right", mb: 2 },
67
- size: "small",
68
- variant: "contained",
69
- color: "success",
70
- onClick: () => {
71
- f("addMenuConfiguration");
72
- },
73
- children: "Add configuration"
74
- }
75
- ) }),
76
- /* @__PURE__ */ e(w, { component: k, elevation: 1, sx: { borderRadius: 2, maxHeight: 700 }, children: /* @__PURE__ */ s(F, { children: [
77
- /* @__PURE__ */ e(I, { children: /* @__PURE__ */ s(c, { sx: { backgroundColor: "#f2f2f2" }, children: [
78
- /* @__PURE__ */ e(r, { sx: { fontWeight: "bold" }, children: "Sr. No." }),
79
- /* @__PURE__ */ e(r, { sx: { fontWeight: "bold" }, children: "Role Name" }),
80
- /* @__PURE__ */ e(r, { sx: { fontWeight: "bold" }, children: "Features" }),
81
- /* @__PURE__ */ e(r, { align: "center", sx: { fontWeight: "bold" }, children: "Actions" })
82
- ] }) }),
83
- /* @__PURE__ */ s(R, { children: [
84
- l.map((o, n) => /* @__PURE__ */ s(
85
- c,
86
- {
87
- sx: {
88
- backgroundColor: n % 2 === 0 ? "#fff" : "var(--color-gray4)",
89
- "&:hover": { backgroundColor: "#e9f3ff" }
90
- },
91
- children: [
92
- /* @__PURE__ */ e(r, { children: n + 1 }),
93
- /* @__PURE__ */ e(r, { children: o.name }),
94
- /* @__PURE__ */ e(r, { children: o.features }),
95
- /* @__PURE__ */ e(r, { align: "center", children: /* @__PURE__ */ e(P, { color: "primary", onClick: () => x(o.id, o.roleId, n), children: /* @__PURE__ */ e(q, { iconName: "faPen", size: "sm" }) }) })
96
- ]
97
- },
98
- n
99
- )),
100
- l.length === 0 && /* @__PURE__ */ e(c, { children: /* @__PURE__ */ e(r, { colSpan: 4, align: "center", sx: { py: 4, color: "gray" }, children: "No roles found." }) })
101
- ] })
102
- ] }) })
103
- ] }) });
104
- }
105
- export {
106
- _ as default
107
- };
108
- //# sourceMappingURL=MobileMenuManagement-Cf8IZlla.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MobileMenuManagement-Cf8IZlla.js","sources":["../src/services/MobileMenuService.js","../src/views/MobileMenuManagement/MobileMenuManagement.jsx"],"sourcesContent":["import { api } from '@/common/interceptors/AxiosInterceptor';\n\nconst basePath = '/mobilemenu/v2';\n\nexport const MobileMenuService = {\n getMobileMenuList: () => api.get(basePath + '/list'),\n};\n","/**\n * @author Sanya Srivastava <ssrivastava@argusoft.com>\n * @date 2025-03-24 (Monday)\n */\n\nimport { MobileMenuService } from '../../services/MobileMenuService';\nimport { showToast } from '@/common/toaster/toaster';\nimport {\n Button,\n IconButton,\n Paper,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n TextField,\n Typography,\n} from '@mui/material';\nimport Grid from '@mui/material/Grid2';\nimport { Box } from '@mui/system';\nimport React, { useEffect, useState } from 'react';\nimport { useNavigate } from 'react-router';\nimport FontAwesomeIcons from '@/common/fontAwesomeIcons/FontAwesomeIcons';\nimport { collectFeatureNamesFromLayout } from './dashboardLayoutUtils';\n\nexport default function MobileMenuManagement() {\n const [mobileMenuList, setMobileMenuList] = useState([]);\n const [searchText, setSearchText] = useState('');\n const [filteredList, setFilteredList] = useState([]);\n\n const navigate = useNavigate();\n\n const handleEdit = (id, roleId, index) => {\n const queryParams = new URLSearchParams({ id: id }).toString();\n const url = `addMenuConfiguration?${queryParams}`;\n navigate(url, { state: { mobileMenuList: filteredList[index], roleId: roleId } });\n };\n\n useEffect(() => {\n (async () => {\n await fetchMenuRelations();\n })();\n }, []);\n\n const fetchMenuRelations = async () => {\n try {\n const response = await MobileMenuService.getMobileMenuList();\n const menuData = response.data || [];\n const formattedData = menuData.map((item) => {\n let config = {};\n try {\n config =\n typeof item.configJson === 'string'\n ? JSON.parse(item.configJson)\n : item.configJson || {};\n } catch (e) {\n config = {};\n }\n\n const allFeatureNames = collectFeatureNamesFromLayout(config);\n const uniqueNames = [...new Set(allFeatureNames)];\n const featureSummary = uniqueNames.join(', ');\n\n return {\n id: item.id,\n roleId: item.roleId,\n name: item.roleName,\n features: featureSummary,\n configJson: config,\n };\n });\n setMobileMenuList(formattedData);\n setFilteredList(formattedData);\n } catch (error) {\n showToast({ message: error, type: 'error' });\n }\n };\n\n const handleSearch = (e) => {\n const value = e.target.value.toLowerCase();\n setSearchText(value);\n setFilteredList(mobileMenuList.filter((item) => item.name.toLowerCase().includes(value)));\n };\n\n return (\n <Grid>\n <Box sx={{ p: 3, backgroundColor: 'background.default' }}>\n <Grid container sx={{ justifyContent: 'space-between', alignItems: 'center', mb: 2 }}>\n <Typography variant=\"h5\" sx={{ mb: 2, fontWeight: 'bold' }}>\n Mobile Menu Management\n </Typography>\n <TextField\n size=\"small\"\n placeholder=\"Search Role\"\n variant=\"outlined\"\n value={searchText}\n onChange={handleSearch}\n sx={{ mb: 2, backgroundColor: 'var(--color-background2)', borderRadius: 1 }}\n />\n </Grid>\n\n <Grid sx={{ justifyContent: 'center', alignItems: 'center', mb: 2 }}>\n <Button\n sx={{ float: 'right', mb: 2 }}\n size=\"small\"\n variant=\"contained\"\n color=\"success\"\n onClick={() => {\n navigate('addMenuConfiguration');\n }}\n >\n Add configuration\n </Button>\n </Grid>\n\n <TableContainer component={Paper} elevation={1} sx={{ borderRadius: 2, maxHeight: 700 }}>\n <Table>\n <TableHead>\n <TableRow sx={{ backgroundColor: '#f2f2f2' }}>\n <TableCell sx={{ fontWeight: 'bold' }}>Sr. No.</TableCell>\n <TableCell sx={{ fontWeight: 'bold' }}>Role Name</TableCell>\n <TableCell sx={{ fontWeight: 'bold' }}>Features</TableCell>\n <TableCell align=\"center\" sx={{ fontWeight: 'bold' }}>\n Actions\n </TableCell>\n </TableRow>\n </TableHead>\n <TableBody>\n {filteredList.map((item, index) => (\n <TableRow\n key={index}\n sx={{\n backgroundColor: index % 2 === 0 ? '#fff' : 'var(--color-gray4)',\n '&:hover': { backgroundColor: '#e9f3ff' },\n }}\n >\n <TableCell>{index + 1}</TableCell>\n <TableCell>{item.name}</TableCell>\n <TableCell>{item.features}</TableCell>\n <TableCell align=\"center\">\n <IconButton color=\"primary\" onClick={() => handleEdit(item.id, item.roleId, index)}>\n <FontAwesomeIcons iconName=\"faPen\" size=\"sm\" />\n </IconButton>\n </TableCell>\n </TableRow>\n ))}\n {filteredList.length === 0 && (\n <TableRow>\n <TableCell colSpan={4} align=\"center\" sx={{ py: 4, color: 'gray' }}>\n No roles found.\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n </TableContainer>\n </Box>\n </Grid>\n );\n}\n"],"names":["basePath","MobileMenuService","api","MobileMenuManagement","mobileMenuList","setMobileMenuList","useState","searchText","setSearchText","filteredList","setFilteredList","navigate","useNavigate","handleEdit","id","roleId","index","url","useEffect","fetchMenuRelations","formattedData","item","config","allFeatureNames","collectFeatureNamesFromLayout","featureSummary","error","showToast","jsx","Grid","jsxs","Box","Typography","TextField","e","value","Button","TableContainer","Paper","Table","TableHead","TableRow","TableCell","TableBody","IconButton","FontAwesomeIcons"],"mappings":"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"}