@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.
- package/dist/AccessRights-DUgY6ewy.js +1031 -0
- package/dist/AccessRights-DUgY6ewy.js.map +1 -0
- package/dist/AddEditQueryBuilder-D-iQiVIe.js +365 -0
- package/dist/AddEditQueryBuilder-D-iQiVIe.js.map +1 -0
- package/dist/{AddFeatures-v3TmGQee.js → AddFeatures-D1sU8RjY.js} +2 -2
- package/dist/{AddFeatures-v3TmGQee.js.map → AddFeatures-D1sU8RjY.js.map} +1 -1
- package/dist/AddLabelModal-Bq-wRqv9.js +631 -0
- package/dist/AddLabelModal-Bq-wRqv9.js.map +1 -0
- package/dist/AddMenuConfiguration-c6ZKiN0i.js +8898 -0
- package/dist/AddMenuConfiguration-c6ZKiN0i.js.map +1 -0
- package/dist/AppModal-CCtrQ5Tr.js +394 -0
- package/dist/AppModal-CCtrQ5Tr.js.map +1 -0
- package/dist/BrandsPage-DMw2vT0u-BVhvhc6J.js +387 -0
- package/dist/BrandsPage-DMw2vT0u-BVhvhc6J.js.map +1 -0
- package/dist/CategoriesPage-D3ihx9Gi-CT58g0ry.js +398 -0
- package/dist/CategoriesPage-D3ihx9Gi-CT58g0ry.js.map +1 -0
- package/dist/{ChangePasswordModalCore-DutQAZOx.js → ChangePasswordModalCore-lQ9GamH1.js} +1605 -1610
- package/dist/ChangePasswordModalCore-lQ9GamH1.js.map +1 -0
- package/dist/ConditionConfig-BQBmBHaM.js +408 -0
- package/dist/ConditionConfig-BQBmBHaM.js.map +1 -0
- package/dist/DashboardPage-asr2XDRu-uOOlX9Vq.js +435 -0
- package/dist/DashboardPage-asr2XDRu-uOOlX9Vq.js.map +1 -0
- package/dist/EventConfig-BY2cgGyx.js +27 -0
- package/dist/EventConfig-BY2cgGyx.js.map +1 -0
- package/dist/EventConfigurations-CUPEN5BV.js +544 -0
- package/dist/EventConfigurations-CUPEN5BV.js.map +1 -0
- package/dist/EventConfigurations.css +1 -1
- package/dist/EventsExceptionModal-BX-ArkBE.js +188 -0
- package/dist/EventsExceptionModal-BX-ArkBE.js.map +1 -0
- package/dist/EventsUi-D6O9S7BK.js +258 -0
- package/dist/EventsUi-D6O9S7BK.js.map +1 -0
- package/dist/FacilityPicker-DYl_PDyt-Cbwo2tAY.js +79 -0
- package/dist/FacilityPicker-DYl_PDyt-Cbwo2tAY.js.map +1 -0
- package/dist/FeatureMenu-CHsBbw3W.js +525 -0
- package/dist/FeatureMenu-CHsBbw3W.js.map +1 -0
- package/dist/{FhirServerList-Dkq7Kbes.js → FhirServerList-iXBPkRVF.js} +22 -22
- package/dist/{FhirServerList-Dkq7Kbes.js.map → FhirServerList-iXBPkRVF.js.map} +1 -1
- package/dist/{FhirServerWizard-Db6Hm4bQ.js → FhirServerWizard-DZI8Olku.js} +15 -15
- package/dist/{FhirServerWizard-Db6Hm4bQ.js.map → FhirServerWizard-DZI8Olku.js.map} +1 -1
- package/dist/FlywayQuery-CQygj51V.js +179 -0
- package/dist/FlywayQuery-CQygj51V.js.map +1 -0
- package/dist/GrantPermissionModal-D7iNZd0M.js +239 -0
- package/dist/GrantPermissionModal-D7iNZd0M.js.map +1 -0
- package/dist/ImmunizationConfigurationBase-aUtx0JEe.js +8019 -0
- package/dist/ImmunizationConfigurationBase-aUtx0JEe.js.map +1 -0
- package/dist/ImmunizationConfigurationBase.css +1 -1
- package/dist/ImmunizationConfigurationsList-TZcLDEci.js +369 -0
- package/dist/ImmunizationConfigurationsList-TZcLDEci.js.map +1 -0
- package/dist/InventoryPage-DOotGZrj-CoPjOJEI.js +665 -0
- package/dist/InventoryPage-DOotGZrj-CoPjOJEI.js.map +1 -0
- package/dist/LanguagesModal-B3NTebYT.js +352 -0
- package/dist/LanguagesModal-B3NTebYT.js.map +1 -0
- package/dist/ManageDynamicFeature-BU0I45dd.js +4475 -0
- package/dist/ManageDynamicFeature-BU0I45dd.js.map +1 -0
- package/dist/ManageEventConfiguration-DqW3krT6.js +1216 -0
- package/dist/ManageEventConfiguration-DqW3krT6.js.map +1 -0
- package/dist/ManageEventConfiguration.css +1 -1
- package/dist/{ManageNotification-CfhHlfxA.js → ManageNotification-C5MhV77Q.js} +2 -2
- package/dist/{ManageNotification-CfhHlfxA.js.map → ManageNotification-C5MhV77Q.js.map} +1 -1
- package/dist/{ManageRole-4Y2PP4dQ.js → ManageRole-CNZBRKGU.js} +2 -2
- package/dist/{ManageRole-4Y2PP4dQ.js.map → ManageRole-CNZBRKGU.js.map} +1 -1
- package/dist/ManageTranslation-vRiptUAP.js +833 -0
- package/dist/ManageTranslation-vRiptUAP.js.map +1 -0
- package/dist/ManageTranslation.css +1 -1
- package/dist/{ManageUser-DDzyd9jm.js → ManageUser-DZltBina.js} +224 -224
- package/dist/{ManageUser-DDzyd9jm.js.map → ManageUser-DZltBina.js.map} +1 -1
- package/dist/MemberProfileCard-D5CgkTdJ-D2NgDJl3.js +272 -0
- package/dist/MemberProfileCard-D5CgkTdJ-D2NgDJl3.js.map +1 -0
- package/dist/MobileAnalytics-BLOionG_.js +17301 -0
- package/dist/MobileAnalytics-BLOionG_.js.map +1 -0
- package/dist/MobileMenuManagement-68Wijb0X.js +220 -0
- package/dist/MobileMenuManagement-68Wijb0X.js.map +1 -0
- package/dist/MobileTypeEventConfigModal-CMcj7Ozp.js +752 -0
- package/dist/MobileTypeEventConfigModal-CMcj7Ozp.js.map +1 -0
- package/dist/NotificationFlywayQuery-BAHVjf6N.js +247 -0
- package/dist/NotificationFlywayQuery-BAHVjf6N.js.map +1 -0
- package/dist/{NotificationList-BMFpNUJG.js → NotificationList-DEyRZEuM.js} +2 -2
- package/dist/{NotificationList-BMFpNUJG.js.map → NotificationList-DEyRZEuM.js.map} +1 -1
- package/dist/OtherTypeEventConfigModal-stNmuSv_.js +1812 -0
- package/dist/OtherTypeEventConfigModal-stNmuSv_.js.map +1 -0
- package/dist/PaymentCreatePage-DfvSZ-kB-CckogYoe.js +482 -0
- package/dist/PaymentCreatePage-DfvSZ-kB-CckogYoe.js.map +1 -0
- package/dist/PaymentsPage-DMNjYWAJ-ChO9IXmk.js +157 -0
- package/dist/PaymentsPage-DMNjYWAJ-ChO9IXmk.js.map +1 -0
- package/dist/PermissionsModal-CCYkcKlC.js +151 -0
- package/dist/PermissionsModal-CCYkcKlC.js.map +1 -0
- package/dist/PickupBatchLinesEditor-CE2RuyJT-BPceiJr8.js +119 -0
- package/dist/PickupBatchLinesEditor-CE2RuyJT-BPceiJr8.js.map +1 -0
- package/dist/PickupCreatePage-B4O_-vE5-DoOo9nJO.js +783 -0
- package/dist/PickupCreatePage-B4O_-vE5-DoOo9nJO.js.map +1 -0
- package/dist/PickupsPage-D7zyioJB-bHKnARYw.js +818 -0
- package/dist/PickupsPage-D7zyioJB-bHKnARYw.js.map +1 -0
- package/dist/PmGuard-BZE-y4In-D_pUm5MP.js +599 -0
- package/dist/PmGuard-BZE-y4In-D_pUm5MP.js.map +1 -0
- package/dist/ProductEditPage-BVlVUCtD-BR-tJ5Wb.js +1305 -0
- package/dist/ProductEditPage-BVlVUCtD-BR-tJ5Wb.js.map +1 -0
- package/dist/ProductsPage-DvNHIeZt-BoOOJJtk.js +253 -0
- package/dist/ProductsPage-DvNHIeZt-BoOOJJtk.js.map +1 -0
- package/dist/PurchaseCreatePage-Cq_i9snz-DRtHHFWw.js +675 -0
- package/dist/PurchaseCreatePage-Cq_i9snz-DRtHHFWw.js.map +1 -0
- package/dist/PurchaseRequestDetailPage-CA9KFOfE-CtjG4Gx6.js +1577 -0
- package/dist/PurchaseRequestDetailPage-CA9KFOfE-CtjG4Gx6.js.map +1 -0
- package/dist/PurchaseRequestsPage-DS9i4o0--TpoxA5Kd.js +279 -0
- package/dist/PurchaseRequestsPage-DS9i4o0--TpoxA5Kd.js.map +1 -0
- package/dist/PurchasesPage-DgL5T6BY-DePUuE9l.js +293 -0
- package/dist/PurchasesPage-DgL5T6BY-DePUuE9l.js.map +1 -0
- package/dist/QueryBuilder-CXaBe6sr.js +478 -0
- package/dist/QueryBuilder-CXaBe6sr.js.map +1 -0
- package/dist/{RoleManagement-DEiBNfT8.js → RoleManagement-s8iNx2Mu.js} +145 -155
- package/dist/RoleManagement-s8iNx2Mu.js.map +1 -0
- package/dist/Roles-BIyiic67.js +14 -0
- package/dist/Roles-BIyiic67.js.map +1 -0
- package/dist/SaleCreatePage-CZnIOydv-DKBw-qp7.js +544 -0
- package/dist/SaleCreatePage-CZnIOydv-DKBw-qp7.js.map +1 -0
- package/dist/SalesPage-DPIRrC_O-M8rqnK7z.js +315 -0
- package/dist/SalesPage-DPIRrC_O-M8rqnK7z.js.map +1 -0
- package/dist/SettingsPage-BC_R6Z-Q-CKNt9zRu.js +676 -0
- package/dist/SettingsPage-BC_R6Z-Q-CKNt9zRu.js.map +1 -0
- package/dist/ShowFlywayQuery-D10Olk5Z.js +154 -0
- package/dist/ShowFlywayQuery-D10Olk5Z.js.map +1 -0
- package/dist/{ShowFlywayQuery-DVRCd384.js → ShowFlywayQuery-DIOUdYfG.js} +170 -123
- package/dist/ShowFlywayQuery-DIOUdYfG.js.map +1 -0
- package/dist/ShowQueryHistory-DRBKYDKk.js +313 -0
- package/dist/ShowQueryHistory-DRBKYDKk.js.map +1 -0
- package/dist/StorageUnitsPage-BDRkdCjW-UF64rf7q.js +728 -0
- package/dist/StorageUnitsPage-BDRkdCjW-UF64rf7q.js.map +1 -0
- package/dist/SubMenu-BdMTYtC1.js +319 -0
- package/dist/SubMenu-BdMTYtC1.js.map +1 -0
- package/dist/TransactionsPage-CqWTMNU8-Df6eGFDW.js +746 -0
- package/dist/TransactionsPage-CqWTMNU8-Df6eGFDW.js.map +1 -0
- package/dist/TransferCreatePage-DF7FZaTJ-CL79V3aR.js +315 -0
- package/dist/TransferCreatePage-DF7FZaTJ-CL79V3aR.js.map +1 -0
- package/dist/TransfersPage-CGrRFaBF-cTwBUv0o.js +476 -0
- package/dist/TransfersPage-CGrRFaBF-cTwBUv0o.js.map +1 -0
- package/dist/TypeConfiguration-JbRCN6GR.js +114 -0
- package/dist/TypeConfiguration-JbRCN6GR.js.map +1 -0
- package/dist/{UserList-Bc8gYxRL.js → UserList-L41Xw0Q6.js} +253 -236
- package/dist/{UserList-Bc8gYxRL.js.map → UserList-L41Xw0Q6.js.map} +1 -1
- package/dist/Users-CsJ08Kjm.js.map +1 -1
- package/dist/VialsPage-rvvXjgZG-Oqo1v6kQ.js +321 -0
- package/dist/VialsPage-rvvXjgZG-Oqo1v6kQ.js.map +1 -0
- package/dist/constants-DpXnLsAB-D6lN5cjK.js +445 -0
- package/dist/constants-DpXnLsAB-D6lN5cjK.js.map +1 -0
- package/dist/{dashboardLayoutUtils-D1xCAxp3.js → dashboardLayoutUtils-CJivzaU1.js} +95 -92
- package/dist/dashboardLayoutUtils-CJivzaU1.js.map +1 -0
- package/dist/format-UOyOu75i-D0GyylyQ.js +63 -0
- package/dist/format-UOyOu75i-D0GyylyQ.js.map +1 -0
- package/dist/index.css +1 -1
- package/dist/index.js +1 -1
- package/dist/index.lib-ETRQOzvE.js +894 -0
- package/dist/index.lib-ETRQOzvE.js.map +1 -0
- package/dist/listValueStore-BFQtDYIR-Bj0yX145.js +36 -0
- package/dist/listValueStore-BFQtDYIR-Bj0yX145.js.map +1 -0
- package/dist/useFieldErrors-hDG8ox_x-DbSAzrGo.js +28 -0
- package/dist/useFieldErrors-hDG8ox_x-DbSAzrGo.js.map +1 -0
- package/dist/validation-BzlHnL-r-CCJm2utQ.js +125 -0
- package/dist/validation-BzlHnL-r-CCJm2utQ.js.map +1 -0
- package/package.json +4 -3
- package/dist/AccessRights-Zm8Obm4N.js +0 -1284
- package/dist/AccessRights-Zm8Obm4N.js.map +0 -1
- package/dist/AddEditQueryBuilder-Brdnm6rQ.js +0 -313
- package/dist/AddEditQueryBuilder-Brdnm6rQ.js.map +0 -1
- package/dist/AddLabelModal-DFllBVcd.js +0 -734
- package/dist/AddLabelModal-DFllBVcd.js.map +0 -1
- package/dist/AddMenuConfiguration-Ce91MhnU.js +0 -8547
- package/dist/AddMenuConfiguration-Ce91MhnU.js.map +0 -1
- package/dist/AppModal-CtG2GjD_.js +0 -428
- package/dist/AppModal-CtG2GjD_.js.map +0 -1
- package/dist/ChangePasswordModalCore-DutQAZOx.js.map +0 -1
- package/dist/ConditionConfig-B4Ffpgj3.js +0 -395
- package/dist/ConditionConfig-B4Ffpgj3.js.map +0 -1
- package/dist/ConditionConfig.css +0 -1
- package/dist/EventConfigurations-BJcURufo.js +0 -449
- package/dist/EventConfigurations-BJcURufo.js.map +0 -1
- package/dist/EventsExceptionModal-BlZtBQoR.js +0 -200
- package/dist/EventsExceptionModal-BlZtBQoR.js.map +0 -1
- package/dist/EventsSkeleton-DK6JDKAK.js +0 -83
- package/dist/EventsSkeleton-DK6JDKAK.js.map +0 -1
- package/dist/FeatureMenu-C3503UIX.js +0 -265
- package/dist/FeatureMenu-C3503UIX.js.map +0 -1
- package/dist/FlywayQuery-Cx2sly6g.js +0 -169
- package/dist/FlywayQuery-Cx2sly6g.js.map +0 -1
- package/dist/ImmunizationConfigurationBase-DLQVSNnt.js +0 -5895
- package/dist/ImmunizationConfigurationBase-DLQVSNnt.js.map +0 -1
- package/dist/ImmunizationConfigurationsList-DdSZicTP.js +0 -344
- package/dist/ImmunizationConfigurationsList-DdSZicTP.js.map +0 -1
- package/dist/LanguagesModal-D6VfaGrl.js +0 -394
- package/dist/LanguagesModal-D6VfaGrl.js.map +0 -1
- package/dist/ManageDynamicFeature-dt096fyj.js +0 -4189
- package/dist/ManageDynamicFeature-dt096fyj.js.map +0 -1
- package/dist/ManageEventConfiguration-BpSJszSX.js +0 -1017
- package/dist/ManageEventConfiguration-BpSJszSX.js.map +0 -1
- package/dist/ManageTranslation-B4C9-lWD.js +0 -625
- package/dist/ManageTranslation-B4C9-lWD.js.map +0 -1
- package/dist/MobileMenuManagement-Cf8IZlla.js +0 -108
- package/dist/MobileMenuManagement-Cf8IZlla.js.map +0 -1
- package/dist/MobileTypeEventConfigModal-DUkUYACe.js +0 -783
- package/dist/MobileTypeEventConfigModal-DUkUYACe.js.map +0 -1
- package/dist/NotificationFlywayQuery-BY8Zzml_.js +0 -244
- package/dist/NotificationFlywayQuery-BY8Zzml_.js.map +0 -1
- package/dist/OtherTypeEventConfigModal-CYBfr2XE.js +0 -2046
- package/dist/OtherTypeEventConfigModal-CYBfr2XE.js.map +0 -1
- package/dist/QueryBuilder-z7eqfd7D.js +0 -383
- package/dist/QueryBuilder-z7eqfd7D.js.map +0 -1
- package/dist/RoleManagement-DEiBNfT8.js.map +0 -1
- package/dist/ShowFlywayQuery-DVRCd384.js.map +0 -1
- package/dist/ShowFlywayQuery-tj42YQAS.js +0 -130
- package/dist/ShowFlywayQuery-tj42YQAS.js.map +0 -1
- package/dist/ShowQueryHistory-BDN0tzHg.js +0 -190
- package/dist/ShowQueryHistory-BDN0tzHg.js.map +0 -1
- package/dist/SubMenu-B072oEGb.js +0 -191
- package/dist/SubMenu-B072oEGb.js.map +0 -1
- package/dist/TypeConfiguration-C3xoP2Nb.js +0 -117
- package/dist/TypeConfiguration-C3xoP2Nb.js.map +0 -1
- package/dist/dashboardLayoutUtils-D1xCAxp3.js.map +0 -1
- package/dist/index.lib-C3fwoM3y.js +0 -820
- 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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"}
|