@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":"FeatureMenu-C3503UIX.js","sources":["../src/views/Features/Skeletons/FeatureSkeletons.jsx","../src/views/Features/FeatureMenu.jsx"],"sourcesContent":["import PropTypes from \"prop-types\";\nimport React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { getUseSkeleton } from \"@/store/reducers/SkeletonReducer\";\n\nexport const FeatureMenuSkeleton = ({ children, isLoading }) => {\n const useSkeleton = useSelector(getUseSkeleton);\n if (!useSkeleton) {\n return children;\n }\n if (!isLoading) return children;\n return (\n <div className=\"flex flex-col mt-6\">\n <div className=\"w-full justify-between flex-wrap flex flex-row\">\n <div className=\"flex-wrap flex flex-row\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm h-[45px] w-[85px] mr-2 mb-2\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm h-[45px] w-[85px] mr-2 mb-2\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm h-[45px] w-[85px] mr-2 mb-2\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm h-[45px] w-[85px] mr-2 mb-2\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm h-[45px] w-[85px] mr-2 mb-2\"></div>\n </div>\n\n <div className=\"flex\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm h-[32px] w-[120px] m-0.5\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm h-[32px] w-[130px] m-0.5\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm h-[32px] w-[100px] m-0.5\"></div>\n </div>\n </div>\n </div>\n );\n};\n\nFeatureMenuSkeleton.propTypes = {\n children: PropTypes.any,\n isLoading: PropTypes.any,\n};\n\nexport const ManageFeatureSkeleton = ({ children, isLoading }) => {\n const useSkeleton = useSelector(getUseSkeleton);\n if (!useSkeleton) {\n return children;\n }\n if (!isLoading) return children;\n\n return (\n <div className=\"mt-8 ml-4\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[150px] h-[35px]\"></div>\n <div className=\"flex flex-col gap-4 my-3\">\n <div className=\"flex justify-between w-[870px]\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[130px] h-[40px]\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[520px] h-[40px]\"></div>\n </div>\n <div className=\"flex justify-between w-[870px]\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[130px] h-[40px]\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[520px] h-[40px]\"></div>\n </div>\n <div className=\"flex justify-between w-[870px]\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[200px] h-[40px]\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[30px] h-[40px]\"></div>\n </div>\n <div className=\"flex justify-between w-[870px]\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[130px] h-[40px]\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[520px] h-[40px] ml-8\"></div>\n </div>\n </div>\n <div className=\"flex justify-end gap-5 m-7\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[64px] h-[40px]\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[64px] h-[40px]\"></div>\n </div>\n </div>\n );\n};\n\nManageFeatureSkeleton.propTypes = {\n children: PropTypes.any,\n isLoading: PropTypes.any,\n};\n\nexport const SubMenuSkeleton = ({ children, isLoading }) => {\n const useSkeleton = useSelector(getUseSkeleton);\n if (!useSkeleton) {\n return children;\n }\n if (!isLoading) return children;\n\n return (\n <div className=\"w-full p-2\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm h-[40px] w-full mb-2\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm h-[60px] w-full mb-2\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm h-[280px] w-full\"></div>\n </div>\n );\n};\n\nSubMenuSkeleton.propTypes = {\n children: PropTypes.any,\n isLoading: PropTypes.any,\n};\n","import React, {\n lazy,\n Suspense,\n useEffect,\n useMemo,\n useState,\n startTransition,\n useCallback,\n} from \"react\";\nimport { useTranslateProvider } from \"@/common/languageTranslator/TranslationContext\";\nimport { getFeatureName } from \"../../services/Features\";\nimport { showToast } from \"@/common/toaster/toaster\";\nimport useTrackEvent from \"@/hooks/useTrackEvent\";\nconst AccessRights = lazy(() => import(\"./AccessRights\"));\nconst SubMenu = lazy(() => import(\"./SubMenu\"));\nimport { Button, Card, Tab, Tabs, Typography, useTheme } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid2\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useNavigate } from \"react-router-dom\";\nimport { Box } from \"@mui/system\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faGear } from \"@fortawesome/free-solid-svg-icons\";\nimport { FeatureMenuSkeleton } from \"./Skeletons/FeatureSkeletons\";\nimport {\n setSubMenuId,\n setSubMenuGroupName,\n setSubMenuFeatureVal,\n} from \"@/store/reducers/FeatureReducer\";\nimport { getUseSkeleton } from \"@/store/reducers/SkeletonReducer\";\nimport { getAssignedFeatures } from \"@/utils/feature\";\nimport GeneralUtil from \"@/common/services/util/GeneralUtil\";\n\n/**\n * The `FeatureMenu` component renders a menu or list of features in the application.\n * @module FeatureMenu\n * @returns {JSX.Element} The rendered `FeatureMenu` component.\n */\n\nexport default function FeatureMenu() {\n const useSkeleton = useSelector(getUseSkeleton);\n const theme = useTheme();\n const dispatch = useDispatch();\n const [Data, setData] = useState([]);\n const [selectedId, setSelectedId] = useState(0);\n const subMenuId = useSelector((state) => {\n return state?.FeatureReducer?.subMenuId;\n });\n const subMenuGroupName = useSelector(\n (state) => state?.FeatureReducer?.subMenuGroupName,\n );\n const subMenuFeatureVal = useSelector(\n (state) => state?.FeatureReducer?.subMenuFeatureVal,\n );\n const navigate = useNavigate();\n const { user } = useSelector((state) => state.Authenticate);\n const { translate } = useTranslateProvider();\n const [isLoading, setIsLoading] = useState(false);\n const trackEvent = useTrackEvent();\n const [isNewAPI, setIsNewAPI] = useState({});\n const [rights, setRights] = useState(null);\n const features = user?.features || {};\n const featureNames = useMemo(\n () => Object.keys(features).filter((key) => key !== \"mch\"),\n [features],\n );\n const panelBorderColor =\n theme.palette.mode === \"dark\" ? theme.palette.divider : theme.palette.grey[200];\n\n // 🧠 handle tab switch\n const handleTabChange = useCallback((e, newValue) => {\n setSelectedId(newValue);\n }, []);\n\n /**\n * Navigates to the '/ui/addfeature' route when called.\n * @function handleClick\n * @returns {void} This function does not return a value.\n */\n\n const handleFeature = useCallback(() => {\n trackEvent(\"button_click\", {\n button_name: \"featuremenu-add-button\",\n button_type: \"navigate\",\n button_id: \"featuremenu-add-button\",\n });\n navigate(\"addDynamicFeature\");\n }, [navigate, trackEvent]);\n\n // 📦 fetch feature data\n /**\n * Effect hook that runs when `selectedId` changes to load and set initial feature data.\n * @effect\n * @returns {void} This effect does not return a value.\n */\n useEffect(() => {\n async function getFeatures() {\n const { data } = await getAssignedFeatures(\"techo.manage.menu\");\n const parsedRights = JSON.parse(data);\n setRights(parsedRights);\n }\n getFeatures();\n }, []);\n\n useEffect(() => {\n const loadInitialData = async () => {\n if (!featureNames.length || selectedId >= featureNames.length) return;\n\n try {\n setIsLoading(true);\n const { data } = await getFeatureName(featureNames[selectedId]);\n const filterData = data.sort((a, b) => a.name?.localeCompare(b.name));\n startTransition(() => {\n setData(filterData);\n if (filterData.length > 0) {\n // prohibiting the feature to be selected if it is not available\n // dispatch(setSubMenuId(filterData[0].id));\n // dispatch(setSubMenuFeatureVal(filterData[0].isNewFeature));\n }\n setIsLoading(false);\n });\n } catch (error) {\n showToast({\n message: `Error : ${error?.response?.data?.message}`,\n type: \"error\",\n });\n setIsLoading(false);\n }\n };\n\n loadInitialData();\n }, [selectedId, featureNames]);\n\n // 🧠 Memoized SubMenu\n const SubMenuContent = useMemo(\n () => (\n <Suspense fallback={<FeatureMenuSkeleton />}>\n <SubMenu\n data-testid=\"featuremenu-submenu\"\n data={Data}\n subMenuId={subMenuId}\n setSubMenuId={(id) => {\n dispatch(setSubMenuId(id));\n }}\n setSubMenuGroupName={(name) => {\n dispatch(setSubMenuGroupName(name));\n }}\n setSubMenuFeatureVal={(val) => {\n dispatch(setSubMenuFeatureVal(val));\n }}\n type={featureNames[selectedId]}\n isLoading={isLoading}\n isNewAPI={isNewAPI}\n subMenuGroupName={subMenuGroupName}\n rights={rights}\n />\n </Suspense>\n ),\n [Data, subMenuId, selectedId, isLoading, featureNames, isNewAPI, rights],\n );\n\n // 🧠 Memoized AccessRights\n const AccessRightsContent = useMemo(\n () => (\n <Suspense\n fallback={\n <div className=\"p-2 text-sm text-gray-500\">\n Loading Access Rights...\n </div>\n }\n >\n <AccessRights\n data-testid=\"featuremenu-access-rights\"\n subMenuId={subMenuId}\n subMenuGroupName={subMenuGroupName}\n subMenuFeatureVal={subMenuFeatureVal}\n selectedTab={featureNames[selectedId]}\n parentLoading={isLoading}\n onNewAPIChange={setIsNewAPI}\n rights={rights}\n />\n </Suspense>\n ),\n [subMenuId, isLoading, rights],\n );\n\n return !isLoading && rights !== null && !GeneralUtil.hasCheckRights(rights?.[\"view.manage.featurelist\"]) ? (\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 Features\n </Typography>\n </Card>\n </Box>\n ) : (\n <Card variant=\"elevation\" className=\"p-3 mt-6 flex flex-col shadow-2xl\">\n <FeatureMenuSkeleton isLoading={isLoading}>\n <Grid className=\"w-full justify-between flex-wrap flex flex-row\">\n <Grid className=\"flex-wrap flex flex-row\">\n <Tabs\n value={selectedId}\n onChange={handleTabChange}\n variant=\"scrollable\"\n scrollButtons=\"auto\"\n >\n {featureNames.map((feat, index) => (\n <Tab\n key={feat}\n label={feat.toUpperCase()}\n data-testid={`featuremenu-button-${index}`}\n id={`feature-tab-${index}`}\n />\n ))}\n </Tabs>\n </Grid>\n <Grid className=\"flex gap-2 items-center ml-auto\">\n {GeneralUtil.hasCheckRights(rights?.['update.manage.featurelist']) && (\n <Button\n size=\"small\"\n className=\"mb-1 ml-0.5\"\n variant=\"contained\"\n onClick={() => navigate(\"/ui/medplat/report/all/groups\")}\n sx={{\n mt: { xs: \"15px\", md: \"0px\" },\n }}\n >\n {translate(\"Manage\")} {translate(\"Menu\")} {translate(\"Group\")}\n </Button>\n )}\n {GeneralUtil.hasCheckRights(rights?.['create.manage.featurelist']) && (\n <Button\n size=\"small\"\n data-testid=\"featuremenu-add-button\"\n className=\"mb-1 ml-0.5\"\n variant=\"contained\"\n onClick={handleFeature}\n sx={{\n mt: { xs: \"15px\", md: \"0px\" },\n }}\n >\n {translate(\"Add\")} {translate(\"Feature\")}\n </Button>\n )}\n </Grid>\n </Grid>\n </FeatureMenuSkeleton>\n\n <Grid container spacing={2} className=\"w-full py-3 rounded-sm\">\n <Grid\n size={{ xs: 12, sm: 12, md: 3 }}\n className=\"flex\"\n sx={{ border: `1px solid ${panelBorderColor}` }}\n >\n {SubMenuContent}\n </Grid>\n\n <Grid\n size={{ xs: 12, sm: 12, md: 9 }}\n className=\"flex flex-col\"\n sx={{ border: `1px solid ${panelBorderColor}` }}\n >\n {isLoading && useSkeleton ? (\n <div className=\"flex flex-col p-2\">\n <div className=\"bg-slate-200 dark:bg-slate-800 animate-pulse rounded-sm h-[30px] w-[180px]\" />\n </div>\n ) : (\n <Box className=\"flex items-center p-2\">\n <FontAwesomeIcon icon={faGear} size=\"lg\" className=\"mr-2\" />\n <Typography variant=\"body2\" className=\"font-bold font-sans pt-1\">\n {translate(\"Access Rights\")}\n </Typography>\n </Box>\n )}\n {subMenuId && AccessRightsContent}\n {!subMenuId && (\n <>\n <Typography\n variant=\"body2\"\n className=\"p-2\"\n data-testid=\"featuremenu-no-feature-selected\"\n sx={{\n textAlign: \"center\",\n position: \"relative\",\n top: \"10%\",\n fontSize: \"25px\",\n color: \"grey\",\n }}\n >\n Please select a feature!\n </Typography>\n </>\n )}\n </Grid>\n </Grid>\n </Card>\n );\n}\n"],"names":["FeatureMenuSkeleton","children","isLoading","useSelector","getUseSkeleton","jsxs","jsx","PropTypes","SubMenuSkeleton","AccessRights","lazy","SubMenu","FeatureMenu","useSkeleton","theme","useTheme","dispatch","useDispatch","Data","setData","useState","selectedId","setSelectedId","subMenuId","state","_a","subMenuGroupName","subMenuFeatureVal","navigate","useNavigate","user","translate","useTranslateProvider","setIsLoading","trackEvent","useTrackEvent","isNewAPI","setIsNewAPI","rights","setRights","features","featureNames","useMemo","key","panelBorderColor","handleTabChange","useCallback","e","newValue","handleFeature","useEffect","getFeatures","data","getAssignedFeatures","parsedRights","getFeatureName","filterData","a","b","startTransition","error","showToast","_b","SubMenuContent","Suspense","id","setSubMenuId","name","setSubMenuGroupName","val","setSubMenuFeatureVal","AccessRightsContent","GeneralUtil","Box","Card","Typography","Grid","Tabs","feat","index","Tab","Button","FontAwesomeIcon","faGear","Fragment"],"mappings":"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"}
|
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
import { jsx as r, jsxs as s } from "react/jsx-runtime";
|
|
2
|
-
import { useTranslateProvider as h } from "@/common/languageTranslator/TranslationContext";
|
|
3
|
-
import { showToast as v } from "@/common/toaster/toaster";
|
|
4
|
-
import U from "@/hooks/useTrackEvent";
|
|
5
|
-
import { generateUUID as k } from "@/utils/UUIDgenerator";
|
|
6
|
-
import { faXmark as T } from "@fortawesome/free-solid-svg-icons";
|
|
7
|
-
import { FontAwesomeIcon as N } from "@fortawesome/react-fontawesome";
|
|
8
|
-
import { Modal as I, Typography as x, IconButton as q, TextField as C, Stack as D, Button as c } from "@mui/material";
|
|
9
|
-
import a from "@mui/material/Grid2";
|
|
10
|
-
import m from "prop-types";
|
|
11
|
-
import { useState as S, useEffect as E } from "react";
|
|
12
|
-
function j({ open: f, handleClose: l, data: t, type: d }) {
|
|
13
|
-
const [n, b] = S({}), p = k(), { translate: i } = h(), g = U();
|
|
14
|
-
E(() => {
|
|
15
|
-
let e = {};
|
|
16
|
-
t != null && t.featureJson && (t == null ? void 0 : t.featureJson) != null ? e.featureJson = t == null ? void 0 : t.featureJson : e.featureJson = null;
|
|
17
|
-
let u = "";
|
|
18
|
-
e.groupName = t == null ? void 0 : t.groupName, e.menuName = t == null ? void 0 : t.name, e.subgroupName = t == null ? void 0 : t.subgroupName, e.navigationState = t == null ? void 0 : t.navigationState, e.menuType = d, e.uuid = p, e.groupName && e.groupName != null ? (u = "select id from menu_group mg where group_name = '" + e.groupName + "'", e.groupUUID = p) : (u = null, e.groupUUID = null);
|
|
19
|
-
let o;
|
|
20
|
-
e.subgroupName && e.subgroupName != null ? (o = "select sub_group_id from menu_config mc where menu_name = '" + e.subgroupName + "'", e.subgroupUUID = p) : (o = null, e.subgroupUUID = null), e.text = "insert into menu_config (feature_json, group_id, active, is_dynamic_report, menu_name, navigation_state, sub_group_id,", e.text += `
|
|
21
|
-
`, e.text += 'menu_type,"uuid", group_name_uuid, sub_group_uuid)', e.text += `
|
|
22
|
-
`, e.text += "values(", e.featureJson != null ? e.text += "'" + e.featureJson + "'" : e.text += "null", e.text += `
|
|
23
|
-
`, e.text += ",", u != null ? e.text += "(" + u + ")" : e.text += "null", e.text += ",", e.text += "true, false,", e.text += "'" + e.menuName + "'", e.text += ",", e.text += `
|
|
24
|
-
`, e.text += "'" + e.navigationState + "'", e.text += ",", o != null ? e.text += "(" + o + ")" : e.text += "null", e.text += ",", e.text += "'" + e.menuType + "'", e.text += ",", e.text += "'" + e.uuid + "'", e.text += ",", e.groupUUID != null ? e.text += "'" + e.groupUUID + "'" : e.text += "null", e.text += ",", e.subgroupUUID != null ? e.text += "'" + e.subgroupUUID + "'" : e.text += "null", e.text += ")", e.text += `
|
|
25
|
-
`, e.text += "on conflict(navigation_state,active) do update", e.text += `
|
|
26
|
-
`, e.text += "SET feature_json = excluded.feature_json,", e.text += `
|
|
27
|
-
`, e.text += " group_id= excluded.group_id,", e.text += `
|
|
28
|
-
`, e.text += " menu_name = excluded.menu_name,", e.text += `
|
|
29
|
-
`, e.text += " sub_group_id= excluded.sub_group_id,", e.text += `
|
|
30
|
-
`, e.text += " menu_type= excluded.menu_type;", b((w) => ({ ...w, queryText: e.text }));
|
|
31
|
-
}, []);
|
|
32
|
-
const y = () => {
|
|
33
|
-
const e = new Blob([n == null ? void 0 : n.queryText], { type: "text/plain" }), u = (e.size / 1024).toFixed(2), o = document.createElement("a");
|
|
34
|
-
o.href = URL.createObjectURL(e), o.download = "V" + (/* @__PURE__ */ new Date()).getTime() + "__CREATED_OR_UPDATED_feature_" + d + ".sql", document.body.appendChild(o), o.click(), document.body.removeChild(o), g("file_download", {
|
|
35
|
-
file_type: "sql",
|
|
36
|
-
file_name: o.download,
|
|
37
|
-
file_size: `${u} KB`,
|
|
38
|
-
download_status: "success"
|
|
39
|
-
}), l();
|
|
40
|
-
}, _ = () => {
|
|
41
|
-
navigator.clipboard.writeText(n == null ? void 0 : n.queryText).then(
|
|
42
|
-
() => {
|
|
43
|
-
v({
|
|
44
|
-
message: "Query copied",
|
|
45
|
-
type: "success"
|
|
46
|
-
});
|
|
47
|
-
},
|
|
48
|
-
(e) => {
|
|
49
|
-
console.error("Could not copy text: ", e);
|
|
50
|
-
}
|
|
51
|
-
), l();
|
|
52
|
-
};
|
|
53
|
-
return /* @__PURE__ */ r(
|
|
54
|
-
I,
|
|
55
|
-
{
|
|
56
|
-
"data-testid": "flywayquery-modal",
|
|
57
|
-
open: f,
|
|
58
|
-
onClose: l,
|
|
59
|
-
sx: {
|
|
60
|
-
"& .MuiBackdrop-root": {
|
|
61
|
-
backgroundColor: "rgba(0, 0, 0, 0.1)"
|
|
62
|
-
}
|
|
63
|
-
},
|
|
64
|
-
children: /* @__PURE__ */ s(
|
|
65
|
-
a,
|
|
66
|
-
{
|
|
67
|
-
container: !0,
|
|
68
|
-
className: "flex flex-col absolute top-[5%] left-1/2 transform -translate-x-1/2 w-[99%] max-w-full sm:max-w-[600px] md:max-w-[750px] lg:max-w-[900px] bg-[var(--color-background2)] shadow-md border border-slate-300 dark:border-slate-700 overflow-y-auto max-h-[90vh]",
|
|
69
|
-
children: [
|
|
70
|
-
/* @__PURE__ */ s(a, { className: "flex justify-between items-center p-[5px_10px] bg-slate-200 dark:bg-slate-800 border-b border-slate-300 dark:border-slate-700", children: [
|
|
71
|
-
/* @__PURE__ */ r(x, { variant: "body1", className: "font-bold text-customBlue", children: i("FLYWAY QUERY") }),
|
|
72
|
-
/* @__PURE__ */ r(
|
|
73
|
-
q,
|
|
74
|
-
{
|
|
75
|
-
size: "small",
|
|
76
|
-
onClick: l,
|
|
77
|
-
"data-testid": "flywayquery-close-button",
|
|
78
|
-
children: /* @__PURE__ */ r(N, { icon: T })
|
|
79
|
-
}
|
|
80
|
-
)
|
|
81
|
-
] }),
|
|
82
|
-
/* @__PURE__ */ r(a, { className: "border-b border-slate-200 dark:border-slate-800 p-2.5 ", children: /* @__PURE__ */ r(
|
|
83
|
-
C,
|
|
84
|
-
{
|
|
85
|
-
multiline: !0,
|
|
86
|
-
rows: 10,
|
|
87
|
-
variant: "outlined",
|
|
88
|
-
fullWidth: !0,
|
|
89
|
-
value: n == null ? void 0 : n.queryText,
|
|
90
|
-
sx: {
|
|
91
|
-
"& .MuiInputBase-input": {
|
|
92
|
-
fontSize: "14px"
|
|
93
|
-
},
|
|
94
|
-
"& .MuiOutlinedInput-root": {
|
|
95
|
-
borderRadius: "5px"
|
|
96
|
-
}
|
|
97
|
-
},
|
|
98
|
-
slotProps: {
|
|
99
|
-
input: {
|
|
100
|
-
readOnly: !0
|
|
101
|
-
}
|
|
102
|
-
},
|
|
103
|
-
"data-testid": "flywayquery-textfield-query-display"
|
|
104
|
-
}
|
|
105
|
-
) }),
|
|
106
|
-
/* @__PURE__ */ r(a, { className: "border-b border-slate-200 dark:border-slate-800 pb-[1px] pr-2.5 ", children: /* @__PURE__ */ s(
|
|
107
|
-
D,
|
|
108
|
-
{
|
|
109
|
-
direction: "row",
|
|
110
|
-
spacing: 2,
|
|
111
|
-
justifyContent: "flex-end",
|
|
112
|
-
mt: 1,
|
|
113
|
-
mb: 1,
|
|
114
|
-
children: [
|
|
115
|
-
/* @__PURE__ */ r(
|
|
116
|
-
c,
|
|
117
|
-
{
|
|
118
|
-
"data-testid": "flywayquery-download-button",
|
|
119
|
-
variant: "contained",
|
|
120
|
-
color: "primary",
|
|
121
|
-
size: "small",
|
|
122
|
-
onClick: y,
|
|
123
|
-
children: i("Download")
|
|
124
|
-
}
|
|
125
|
-
),
|
|
126
|
-
/* @__PURE__ */ r(
|
|
127
|
-
c,
|
|
128
|
-
{
|
|
129
|
-
"data-testid": "flywayquery-copy-button",
|
|
130
|
-
variant: "contained",
|
|
131
|
-
size: "small",
|
|
132
|
-
color: "primary",
|
|
133
|
-
onClick: _,
|
|
134
|
-
children: i("Copy")
|
|
135
|
-
}
|
|
136
|
-
),
|
|
137
|
-
/* @__PURE__ */ r(
|
|
138
|
-
c,
|
|
139
|
-
{
|
|
140
|
-
"data-testid": "flywayquery-close-button-action",
|
|
141
|
-
variant: "contained",
|
|
142
|
-
size: "small",
|
|
143
|
-
color: "secondary",
|
|
144
|
-
onClick: l,
|
|
145
|
-
children: /* @__PURE__ */ s(x, { variant: "body2", children: [
|
|
146
|
-
i("Close"),
|
|
147
|
-
" "
|
|
148
|
-
] })
|
|
149
|
-
}
|
|
150
|
-
)
|
|
151
|
-
]
|
|
152
|
-
}
|
|
153
|
-
) })
|
|
154
|
-
]
|
|
155
|
-
}
|
|
156
|
-
)
|
|
157
|
-
}
|
|
158
|
-
);
|
|
159
|
-
}
|
|
160
|
-
j.propTypes = {
|
|
161
|
-
open: m.any,
|
|
162
|
-
handleClose: m.any,
|
|
163
|
-
data: m.any,
|
|
164
|
-
type: m.any
|
|
165
|
-
};
|
|
166
|
-
export {
|
|
167
|
-
j as default
|
|
168
|
-
};
|
|
169
|
-
//# sourceMappingURL=FlywayQuery-Cx2sly6g.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FlywayQuery-Cx2sly6g.js","sources":["../src/views/Features/FlywayQuery.jsx"],"sourcesContent":["import { useTranslateProvider } from \"@/common/languageTranslator/TranslationContext\";\nimport { showToast } from \"@/common/toaster/toaster\";\nimport useTrackEvent from \"@/hooks/useTrackEvent\";\nimport { generateUUID } from \"@/utils/UUIDgenerator\";\nimport { faXmark } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport {\n Button,\n IconButton,\n Modal,\n Stack,\n TextField,\n Typography,\n} from \"@mui/material\";\nimport Grid from \"@mui/material/Grid2\";\nimport PropTypes from \"prop-types\";\nimport React, { useEffect, useState } from \"react\";\n\n/**\n * A functional component that renders a Flyway query interface.\n * @module FlywayQuery\n * @param {Object} props - The props object.\n * @param {boolean} props.open - Controls the visibility of the component.\n * @param {Function} props.handleClose - Callback function to handle closing the component.\n * @param {Object} props.data - Data to be used or displayed within the component.\n * @param {string} props.type - Determines the type of query or functionality.\n * @returns {JSX.Element} The rendered component.\n */\nexport default function FlywayQuery({ open, handleClose, data, type }) {\n const [flywayData, setFlywayData] = useState({});\n\n const uuid = generateUUID();\n const { translate } = useTranslateProvider();\n const trackEvent = useTrackEvent();\n\n useEffect(() => {\n let temp = {};\n if (data?.featureJson && data?.featureJson != null) {\n temp.featureJson = data?.featureJson;\n } else {\n temp.featureJson = null;\n }\n let groupIdString = \"\";\n temp.groupName = data?.groupName;\n temp.menuName = data?.name;\n temp.subgroupName = data?.subgroupName;\n temp.navigationState = data?.navigationState;\n temp.menuType = type;\n temp.uuid = uuid;\n temp.groupUUID;\n temp.subgroupUUID;\n\n if (temp.groupName && temp.groupName != null) {\n groupIdString =\n \"select id from menu_group mg where group_name = '\" +\n temp.groupName +\n \"'\";\n temp.groupUUID = uuid;\n } else {\n groupIdString = null;\n temp.groupUUID = null;\n }\n let subgroupIdString;\n if (temp.subgroupName && temp.subgroupName != null) {\n subgroupIdString =\n \"select sub_group_id from menu_config mc where menu_name = '\" +\n temp.subgroupName +\n \"'\";\n temp.subgroupUUID = uuid;\n } else {\n subgroupIdString = null;\n temp.subgroupUUID = null;\n }\n\n temp.text =\n \"insert into menu_config (feature_json, group_id, active, is_dynamic_report, menu_name, navigation_state, sub_group_id,\";\n temp.text += \"\\n\";\n temp.text += 'menu_type,\"uuid\", group_name_uuid, sub_group_uuid)';\n temp.text += \"\\n\";\n temp.text += \"values(\";\n if (temp.featureJson != null) {\n temp.text += \"'\" + temp.featureJson + \"'\";\n } else {\n temp.text += \"null\";\n }\n temp.text += \"\\n\";\n temp.text += \",\";\n if (groupIdString != null) {\n temp.text += \"(\" + groupIdString + \")\";\n } else {\n temp.text += \"null\";\n }\n temp.text += \",\";\n temp.text += \"true, false,\";\n temp.text += \"'\" + temp.menuName + \"'\";\n temp.text += \",\";\n temp.text += \"\\n\";\n temp.text += \"'\" + temp.navigationState + \"'\";\n temp.text += \",\";\n if (subgroupIdString != null) {\n temp.text += \"(\" + subgroupIdString + \")\";\n } else {\n temp.text += \"null\";\n }\n temp.text += \",\";\n temp.text += \"'\" + temp.menuType + \"'\";\n temp.text += \",\";\n temp.text += \"'\" + temp.uuid + \"'\";\n temp.text += \",\";\n if (temp.groupUUID != null) {\n temp.text += \"'\" + temp.groupUUID + \"'\";\n } else {\n temp.text += \"null\";\n }\n temp.text += \",\";\n if (temp.subgroupUUID != null) {\n temp.text += \"'\" + temp.subgroupUUID + \"'\";\n } else {\n temp.text += \"null\";\n }\n temp.text += \")\";\n temp.text += \"\\n\";\n temp.text += \"on conflict(navigation_state,active) do update\";\n temp.text += \"\\n\";\n temp.text += \"SET feature_json = excluded.feature_json,\";\n temp.text += \"\\n\";\n temp.text += \"\tgroup_id= excluded.group_id,\";\n temp.text += \"\\n\";\n temp.text += \" \tmenu_name = excluded.menu_name,\";\n temp.text += \"\\n\";\n temp.text += \"\tsub_group_id= excluded.sub_group_id,\";\n temp.text += \"\\n\";\n temp.text += \" \tmenu_type= excluded.menu_type;\";\n\n setFlywayData((prev) => ({ ...prev, queryText: temp.text }));\n }, []);\n\n /**\n * Handles the download of a SQL file with the query text.\n * @function handleDownload\n * @returns {void}\n */\n\n const handleDownload = () => {\n const blob = new Blob([flywayData?.queryText], { type: \"text/plain\" });\n const blobSizeInKB = (blob.size / 1024).toFixed(2);\n const link = document.createElement(\"a\");\n link.href = URL.createObjectURL(blob);\n link.download =\n \"V\" +\n new Date().getTime() +\n \"__CREATED_OR_UPDATED_feature_\" +\n type +\n \".sql\";\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n trackEvent(\"file_download\", {\n file_type: \"sql\",\n file_name: link.download,\n file_size: `${blobSizeInKB} KB`,\n download_status: \"success\",\n });\n handleClose();\n };\n\n /**\n * Copies the query text to the clipboard and displays a success message.\n * @function handleCopy\n * @returns {void}\n */\n\n const handleCopy = () => {\n navigator.clipboard.writeText(flywayData?.queryText).then(\n () => {\n showToast({\n message: \"Query copied\",\n type: \"success\",\n });\n },\n (err) => {\n console.error(\"Could not copy text: \", err);\n },\n );\n handleClose();\n };\n\n return (\n <Modal\n data-testid=\"flywayquery-modal\"\n open={open}\n onClose={handleClose}\n sx={{\n \"& .MuiBackdrop-root\": {\n backgroundColor: \"rgba(0, 0, 0, 0.1)\",\n },\n }}\n >\n <Grid\n container\n className=\"flex flex-col absolute top-[5%] left-1/2 transform -translate-x-1/2 w-[99%] max-w-full sm:max-w-[600px] md:max-w-[750px] lg:max-w-[900px] bg-[var(--color-background2)] shadow-md border border-slate-300 dark:border-slate-700 overflow-y-auto max-h-[90vh]\"\n >\n <Grid className=\"flex justify-between items-center p-[5px_10px] bg-slate-200 dark:bg-slate-800 border-b border-slate-300 dark:border-slate-700\">\n <Typography variant=\"body1\" className=\"font-bold text-customBlue\">\n {translate(\"FLYWAY QUERY\")}\n </Typography>\n <IconButton\n size=\"small\"\n onClick={handleClose}\n data-testid=\"flywayquery-close-button\"\n >\n <FontAwesomeIcon icon={faXmark} />\n </IconButton>\n </Grid>\n <Grid className=\"border-b border-slate-200 dark:border-slate-800 p-2.5 \">\n <TextField\n multiline\n rows={10}\n variant=\"outlined\"\n fullWidth\n value={flywayData?.queryText}\n sx={{\n \"& .MuiInputBase-input\": {\n fontSize: \"14px\",\n },\n \"& .MuiOutlinedInput-root\": {\n borderRadius: \"5px\",\n },\n }}\n slotProps={{\n input: {\n readOnly: true,\n },\n }}\n data-testid=\"flywayquery-textfield-query-display\"\n />\n </Grid>\n <Grid className=\"border-b border-slate-200 dark:border-slate-800 pb-[1px] pr-2.5 \">\n <Stack\n direction=\"row\"\n spacing={2}\n justifyContent=\"flex-end\"\n mt={1}\n mb={1}\n >\n <Button\n data-testid=\"flywayquery-download-button\"\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n onClick={handleDownload}\n >\n {translate(\"Download\")}\n </Button>\n <Button\n data-testid=\"flywayquery-copy-button\"\n variant=\"contained\"\n size=\"small\"\n color=\"primary\"\n onClick={handleCopy}\n >\n {translate(\"Copy\")}\n </Button>\n <Button\n data-testid=\"flywayquery-close-button-action\"\n variant=\"contained\"\n size=\"small\"\n color=\"secondary\"\n onClick={handleClose}\n >\n <Typography variant=\"body2\">{translate(\"Close\")} </Typography>\n </Button>\n </Stack>\n </Grid>\n </Grid>\n </Modal>\n );\n}\n\nFlywayQuery.propTypes = {\n open: PropTypes.any,\n handleClose: PropTypes.any,\n data: PropTypes.any,\n type: PropTypes.any,\n};\n"],"names":["FlywayQuery","open","handleClose","data","type","flywayData","setFlywayData","useState","uuid","generateUUID","translate","useTranslateProvider","trackEvent","useTrackEvent","useEffect","temp","groupIdString","subgroupIdString","prev","handleDownload","blob","blobSizeInKB","link","handleCopy","showToast","err","jsx","Modal","jsxs","Grid","Typography","IconButton","FontAwesomeIcon","faXmark","TextField","Stack","Button","PropTypes"],"mappings":"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"}
|