@argusoft/medplat-core 1.0.28 → 1.0.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AccessRights-xrday-L1.js +1023 -0
- package/dist/AccessRights-xrday-L1.js.map +1 -0
- package/dist/AddEditQueryBuilder-D-iQiVIe.js +365 -0
- package/dist/AddEditQueryBuilder-D-iQiVIe.js.map +1 -0
- package/dist/{AddFeatures-C0Z29oSd.js → AddFeatures-D1sU8RjY.js} +2 -2
- package/dist/{AddFeatures-C0Z29oSd.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-e5BVXhmw.js +8547 -0
- package/dist/AddMenuConfiguration-e5BVXhmw.js.map +1 -0
- package/dist/{AddRoleDrawer-CQdzQZLb.js → AddRoleDrawer-0gqAK8N0.js} +62 -63
- package/dist/AddRoleDrawer-0gqAK8N0.js.map +1 -0
- package/dist/AppModal-CCtrQ5Tr.js +394 -0
- package/dist/AppModal-CCtrQ5Tr.js.map +1 -0
- package/dist/BrandsPage-DmRW5bhm-Bk1szrjI.js +387 -0
- package/dist/BrandsPage-DmRW5bhm-Bk1szrjI.js.map +1 -0
- package/dist/CategoriesPage-BsS5IQh3-B03lWRY5.js +391 -0
- package/dist/CategoriesPage-BsS5IQh3-B03lWRY5.js.map +1 -0
- package/dist/{ChangePasswordModalCore-CDxkeIIM.js → ChangePasswordModalCore-BPsJquTS.js} +1606 -1611
- package/dist/ChangePasswordModalCore-BPsJquTS.js.map +1 -0
- package/dist/{ConditionConfig-DSsgGEXS.js → ConditionConfig-Ddz9halE.js} +2 -2
- package/dist/ConditionConfig-Ddz9halE.js.map +1 -0
- package/dist/DashboardPage-C3bKc5na-sBd9Yqbi.js +435 -0
- package/dist/DashboardPage-C3bKc5na-sBd9Yqbi.js.map +1 -0
- package/dist/{EntityManagement-GaYsBTvf.js → EntityManagement-CPQL6qBj.js} +2 -2
- package/dist/{EntityManagement-GaYsBTvf.js.map → EntityManagement-CPQL6qBj.js.map} +1 -1
- package/dist/EventConfig-BmLemzX3.js +26 -0
- package/dist/EventConfig-BmLemzX3.js.map +1 -0
- package/dist/{EventConfigurations-kNtAj_WM.js → EventConfigurations-Bzh1qWXU.js} +31 -30
- package/dist/{EventConfigurations-kNtAj_WM.js.map → EventConfigurations-Bzh1qWXU.js.map} +1 -1
- package/dist/{EventsExceptionModal-D4Bf1ilS.js → EventsExceptionModal-B2SRrnB1.js} +2 -2
- package/dist/{EventsExceptionModal-D4Bf1ilS.js.map → EventsExceptionModal-B2SRrnB1.js.map} +1 -1
- package/dist/EventsSkeleton-BIcPks4T.js +61 -0
- package/dist/EventsSkeleton-BIcPks4T.js.map +1 -0
- package/dist/FacilityPicker-BiZeupmP-CyPHmj6b.js +79 -0
- package/dist/FacilityPicker-BiZeupmP-CyPHmj6b.js.map +1 -0
- package/dist/FeatureMenu-DYJmDt7q.js +521 -0
- package/dist/FeatureMenu-DYJmDt7q.js.map +1 -0
- package/dist/Features-Dne21RWu.js +14 -0
- package/dist/Features-Dne21RWu.js.map +1 -0
- package/dist/{FhirServerList-Dkq7Kbes.js → FhirServerList-DuTwnngN.js} +19 -19
- package/dist/{FhirServerList-Dkq7Kbes.js.map → FhirServerList-DuTwnngN.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/{ManageNotification-CaBAOhji.js → Google-DQxMfbaL.js} +1725 -2652
- package/dist/{ManageNotification-CaBAOhji.js.map → Google-DQxMfbaL.js.map} +1 -1
- package/dist/GrantPermissionModal-BDN66Atn.js +236 -0
- package/dist/GrantPermissionModal-BDN66Atn.js.map +1 -0
- package/dist/ImmunizationConfigurationBase-Di1KO3oW.js +7639 -0
- package/dist/ImmunizationConfigurationBase-Di1KO3oW.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-C_AxSy7A-QLvlL4rE.js +665 -0
- package/dist/InventoryPage-C_AxSy7A-QLvlL4rE.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-DV3I5POA.js → ManageEventConfiguration-CoYcpjR9.js} +465 -397
- package/dist/ManageEventConfiguration-CoYcpjR9.js.map +1 -0
- package/dist/ManageNotification-C5MhV77Q.js +934 -0
- package/dist/ManageNotification-C5MhV77Q.js.map +1 -0
- package/dist/{ManageRole-CGYfglpo.js → ManageRole-CNZBRKGU.js} +32 -30
- package/dist/ManageRole-CNZBRKGU.js.map +1 -0
- package/dist/ManageTranslation-vRiptUAP.js +833 -0
- package/dist/ManageTranslation-vRiptUAP.js.map +1 -0
- package/dist/ManageTranslation.css +1 -1
- package/dist/{ManageUser-AY1EUDLI.js → ManageUser-DCFkUMV9.js} +1722 -1586
- package/dist/ManageUser-DCFkUMV9.js.map +1 -0
- package/dist/MemberProfileCard-BdUNgHRB-VywqQdFF.js +272 -0
- package/dist/MemberProfileCard-BdUNgHRB-VywqQdFF.js.map +1 -0
- package/dist/MobileAnalytics-pQoE8cG1.js +16888 -0
- package/dist/MobileAnalytics-pQoE8cG1.js.map +1 -0
- package/dist/MobileMenuManagement-Cf8IZlla.js +108 -0
- package/dist/MobileMenuManagement-Cf8IZlla.js.map +1 -0
- package/dist/{MobileTypeEventConfigModal-BxLympIO.js → MobileTypeEventConfigModal-BeveaX0C.js} +2 -2
- package/dist/MobileTypeEventConfigModal-BeveaX0C.js.map +1 -0
- package/dist/NotificationFlywayQuery-BAHVjf6N.js +247 -0
- package/dist/NotificationFlywayQuery-BAHVjf6N.js.map +1 -0
- package/dist/{NotificationList-C3Vb_jKU.js → NotificationList-DEyRZEuM.js} +109 -110
- package/dist/NotificationList-DEyRZEuM.js.map +1 -0
- package/dist/{OtherTypeEventConfigModal-BeG1GrUi.js → OtherTypeEventConfigModal-CM6VkdmY.js} +570 -478
- package/dist/OtherTypeEventConfigModal-CM6VkdmY.js.map +1 -0
- package/dist/PaymentCreatePage-CIVe0P0p-25BQVpOX.js +482 -0
- package/dist/PaymentCreatePage-CIVe0P0p-25BQVpOX.js.map +1 -0
- package/dist/PaymentsPage-BvPe5Q9F-D2gfziwW.js +157 -0
- package/dist/PaymentsPage-BvPe5Q9F-D2gfziwW.js.map +1 -0
- package/dist/PermissionsModal-CCYkcKlC.js +151 -0
- package/dist/PermissionsModal-CCYkcKlC.js.map +1 -0
- package/dist/PickupBatchLinesEditor-DHmcAG23-DL2p6IKJ.js +119 -0
- package/dist/PickupBatchLinesEditor-DHmcAG23-DL2p6IKJ.js.map +1 -0
- package/dist/PickupCreatePage-CB0Sl0Hb-Mmj7zESG.js +783 -0
- package/dist/PickupCreatePage-CB0Sl0Hb-Mmj7zESG.js.map +1 -0
- package/dist/PickupsPage-Ctpghavs-CUp4uIZq.js +818 -0
- package/dist/PickupsPage-Ctpghavs-CUp4uIZq.js.map +1 -0
- package/dist/PmGuard-b10TGXEi-G3N0G_Wg.js +599 -0
- package/dist/PmGuard-b10TGXEi-G3N0G_Wg.js.map +1 -0
- package/dist/ProductEditPage-C1thoKHu-URQaZ6st.js +1302 -0
- package/dist/ProductEditPage-C1thoKHu-URQaZ6st.js.map +1 -0
- package/dist/ProductsPage-CupVmOD4-D45a_hf-.js +252 -0
- package/dist/ProductsPage-CupVmOD4-D45a_hf-.js.map +1 -0
- package/dist/PurchaseCreatePage-YD3NmhPQ-2j4etSjM.js +648 -0
- package/dist/PurchaseCreatePage-YD3NmhPQ-2j4etSjM.js.map +1 -0
- package/dist/PurchaseRequestDetailPage-Dg_MRY_N-D1bgTEAn.js +1577 -0
- package/dist/PurchaseRequestDetailPage-Dg_MRY_N-D1bgTEAn.js.map +1 -0
- package/dist/PurchaseRequestsPage-DPAPzpmm-mDH2IrTl.js +279 -0
- package/dist/PurchaseRequestsPage-DPAPzpmm-mDH2IrTl.js.map +1 -0
- package/dist/PurchasesPage-It1GHiXl-eH4IsF_U.js +293 -0
- package/dist/PurchasesPage-It1GHiXl-eH4IsF_U.js.map +1 -0
- package/dist/QueryBuilder-CXaBe6sr.js +478 -0
- package/dist/QueryBuilder-CXaBe6sr.js.map +1 -0
- package/dist/{RoleManagement-BPl2cE27.js → RoleManagement-s8iNx2Mu.js} +131 -142
- 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-C9kFmTvm-B3Y0o4CX.js +544 -0
- package/dist/SaleCreatePage-C9kFmTvm-B3Y0o4CX.js.map +1 -0
- package/dist/SalesPage-D18DCseD-BxktGDRQ.js +315 -0
- package/dist/SalesPage-D18DCseD-BxktGDRQ.js.map +1 -0
- package/dist/{ServerSyncModal-D_oFpv3C.js → ServerSyncModal-92U3xtqI.js} +84 -85
- package/dist/ServerSyncModal-92U3xtqI.js.map +1 -0
- package/dist/SettingsPage-VsxI-ano-DcmtUUEj.js +747 -0
- package/dist/SettingsPage-VsxI-ano-DcmtUUEj.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-D1y_4A1u.js} +161 -121
- package/dist/ShowFlywayQuery-D1y_4A1u.js.map +1 -0
- package/dist/ShowQueryHistory-DRBKYDKk.js +313 -0
- package/dist/ShowQueryHistory-DRBKYDKk.js.map +1 -0
- package/dist/StorageUnitsPage-7EqwuMOI-BwUso1Th.js +721 -0
- package/dist/StorageUnitsPage-7EqwuMOI-BwUso1Th.js.map +1 -0
- package/dist/SubMenu-eEDhZUvh.js +317 -0
- package/dist/SubMenu-eEDhZUvh.js.map +1 -0
- package/dist/{TableDetails-Cf_YfnY2.js → TableDetails-BtafRxXb.js} +1069 -831
- package/dist/TableDetails-BtafRxXb.js.map +1 -0
- package/dist/{TableList-D6jnIbnz.js → TableList-Dpo6dO7S.js} +2 -2
- package/dist/{TableList-D6jnIbnz.js.map → TableList-Dpo6dO7S.js.map} +1 -1
- package/dist/TransactionsPage-DrH53pVS-BkhIGB6C.js +746 -0
- package/dist/TransactionsPage-DrH53pVS-BkhIGB6C.js.map +1 -0
- package/dist/TransferCreatePage-CuvoMrYH-DTTfHjz-.js +315 -0
- package/dist/TransferCreatePage-CuvoMrYH-DTTfHjz-.js.map +1 -0
- package/dist/TransfersPage-Cf701t8s-BBbN7cBf.js +476 -0
- package/dist/TransfersPage-Cf701t8s-BBbN7cBf.js.map +1 -0
- package/dist/{TypeConfiguration-37wp-gsl.js → TypeConfiguration-3O6ABrK-.js} +2 -2
- package/dist/{TypeConfiguration-37wp-gsl.js.map → TypeConfiguration-3O6ABrK-.js.map} +1 -1
- package/dist/{UserList-Bc8gYxRL.js → UserList-DgPxsnj2.js} +253 -236
- package/dist/{UserList-Bc8gYxRL.js.map → UserList-DgPxsnj2.js.map} +1 -1
- package/dist/Users-Bpc4Sazd.js +41 -0
- package/dist/Users-Bpc4Sazd.js.map +1 -0
- package/dist/VialsPage-8oAc1yFv-Cl3FUXBJ.js +321 -0
- package/dist/VialsPage-8oAc1yFv-Cl3FUXBJ.js.map +1 -0
- package/dist/{WidgetList-Dw_FmbbE.js → WidgetList-D7YuWfDD.js} +2 -2
- package/dist/{WidgetList-Dw_FmbbE.js.map → WidgetList-D7YuWfDD.js.map} +1 -1
- package/dist/constants-ClZJY2x1-MkSWn6TZ.js +434 -0
- package/dist/constants-ClZJY2x1-MkSWn6TZ.js.map +1 -0
- package/dist/dashboardLayoutUtils-D1xCAxp3.js +405 -0
- package/dist/dashboardLayoutUtils-D1xCAxp3.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 +4 -752
- package/dist/index.js.map +1 -1
- package/dist/index.lib-Dn8PMkeD.js +862 -0
- package/dist/index.lib-Dn8PMkeD.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 +5 -4
- package/dist/AccessRights-CHu27ZOw.js +0 -1262
- package/dist/AccessRights-CHu27ZOw.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-BSQLl88V.js +0 -6570
- package/dist/AddMenuConfiguration-BSQLl88V.js.map +0 -1
- package/dist/AddRoleDrawer-CQdzQZLb.js.map +0 -1
- package/dist/AppModal-CtG2GjD_.js +0 -428
- package/dist/AppModal-CtG2GjD_.js.map +0 -1
- package/dist/ChangePasswordModalCore-CDxkeIIM.js.map +0 -1
- package/dist/ConditionConfig-DSsgGEXS.js.map +0 -1
- package/dist/EventsSkeleton-8iiETGcf.js +0 -76
- package/dist/EventsSkeleton-8iiETGcf.js.map +0 -1
- package/dist/FeatureMenu-jl7-Tk6y.js +0 -265
- package/dist/FeatureMenu-jl7-Tk6y.js.map +0 -1
- package/dist/Features-CObdzJp_.js +0 -13
- package/dist/Features-CObdzJp_.js.map +0 -1
- package/dist/FlywayQuery-Cx2sly6g.js +0 -169
- package/dist/FlywayQuery-Cx2sly6g.js.map +0 -1
- package/dist/ImmunizationConfigurationBase-DZGqwda2.js +0 -5910
- package/dist/ImmunizationConfigurationBase-DZGqwda2.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-BhONvfC_.js +0 -4189
- package/dist/ManageDynamicFeature-BhONvfC_.js.map +0 -1
- package/dist/ManageEventConfiguration-DV3I5POA.js.map +0 -1
- package/dist/ManageRole-CGYfglpo.js.map +0 -1
- package/dist/ManageTranslation-B4C9-lWD.js +0 -625
- package/dist/ManageTranslation-B4C9-lWD.js.map +0 -1
- package/dist/ManageUser-AY1EUDLI.js.map +0 -1
- package/dist/MobileMenuManagement-CVAKyKDa.js +0 -112
- package/dist/MobileMenuManagement-CVAKyKDa.js.map +0 -1
- package/dist/MobileTypeEventConfigModal-BxLympIO.js.map +0 -1
- package/dist/NotificationFlywayQuery-BY8Zzml_.js +0 -244
- package/dist/NotificationFlywayQuery-BY8Zzml_.js.map +0 -1
- package/dist/NotificationList-C3Vb_jKU.js.map +0 -1
- package/dist/OtherTypeEventConfigModal-BeG1GrUi.js.map +0 -1
- package/dist/QueryBuilder-z7eqfd7D.js +0 -383
- package/dist/QueryBuilder-z7eqfd7D.js.map +0 -1
- package/dist/RoleManagement-BPl2cE27.js.map +0 -1
- package/dist/ServerSyncModal-D_oFpv3C.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-DYxAPH2Z.js +0 -191
- package/dist/SubMenu-DYxAPH2Z.js.map +0 -1
- package/dist/TableDetails-Cf_YfnY2.js.map +0 -1
- package/dist/Users-CsJ08Kjm.js +0 -40
- package/dist/Users-CsJ08Kjm.js.map +0 -1
- package/dist/dashboardLayoutUtils-Bt5HA96J.js +0 -265
- package/dist/dashboardLayoutUtils-Bt5HA96J.js.map +0 -1
|
@@ -2,22 +2,23 @@ import { jsx as o, jsxs as h, Fragment as Re } from "react/jsx-runtime";
|
|
|
2
2
|
import { useState as a, useCallback as De, useMemo as S, useEffect as D, Suspense as V, lazy as ee } from "react";
|
|
3
3
|
import Fe from "moment";
|
|
4
4
|
import { showToast as N } from "@/common/toaster/toaster";
|
|
5
|
-
import { r as Me,
|
|
5
|
+
import { r as Me, t as Be, a as _e } from "./EventConfig-BmLemzX3.js";
|
|
6
6
|
import C from "@/common/services/util/GeneralUtil";
|
|
7
|
-
import { Box as p, Card as
|
|
7
|
+
import { Box as p, Card as Qe, Typography as X, alpha as x, FormControl as ze, Select as Pe, MenuItem as Ue, Button as K, TextField as $e } from "@mui/material";
|
|
8
8
|
import Z from "@mui/material/Grid2";
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import { getAssignedFeatures as
|
|
12
|
-
import { useNavigate as
|
|
13
|
-
import
|
|
14
|
-
import { useTranslateProvider as
|
|
15
|
-
import
|
|
16
|
-
import { faRotateRight as
|
|
9
|
+
import je from "@/views/custom-components/CustomConfirmationModal";
|
|
10
|
+
import Ye from "@/common/syncWithServer/SyncWithServerDialog";
|
|
11
|
+
import { getAssignedFeatures as qe } from "@/utils/feature.js";
|
|
12
|
+
import { useNavigate as He } from "react-router";
|
|
13
|
+
import Je from "@/hooks/useTrackEvent";
|
|
14
|
+
import { useTranslateProvider as Ge } from "@/common/languageTranslator/TranslationContext";
|
|
15
|
+
import Ve from "@/views/custom-components/CustomizedTable/CustomizedTableV2";
|
|
16
|
+
import { faRotateRight as Xe, faPen as Ke, faBars as Ze } from "@fortawesome/free-solid-svg-icons";
|
|
17
17
|
import { FontAwesomeIcon as F } from "@fortawesome/react-fontawesome";
|
|
18
|
-
import
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
import { E as et } from "./EventsSkeleton-BIcPks4T.js";
|
|
19
|
+
import './EventConfigurations.css';const tt = ee(() => import("./ShowFlywayQuery-D1y_4A1u.js")), nt = ee(() => import("./EventsExceptionModal-B2SRrnB1.js"));
|
|
20
|
+
function bt() {
|
|
21
|
+
const M = He(), A = Je(), [f, B] = a(null), [I, te] = a(null), [d, ne] = a(null), [c, _] = a(!0), [g, oe] = a(!1), [y, re] = a(!1), [s, ae] = a("ALL"), [O, ie] = a(""), [Q, k] = a(!1), [le, se] = a(""), [z, L] = a(!1), [ce, ue] = a(""), [u, fe] = a({}), [de, b] = a(!1), [me, P] = a(!1), [he, pe] = a(""), [U, W] = a(null), [$, j] = a(!1), { translate: l } = Ge(), [R, E] = a(!1), [i, ge] = a({}), m = "#1976d2", w = "#666666", v = "#e0e0e0", ye = async () => {
|
|
21
22
|
A("button_click", {
|
|
22
23
|
button_name: "refresh-events-button",
|
|
23
24
|
button_type: "reload",
|
|
@@ -105,10 +106,10 @@ function xt() {
|
|
|
105
106
|
j((e) => !e);
|
|
106
107
|
}, Te = async () => {
|
|
107
108
|
try {
|
|
108
|
-
Q ? (b(!1), E(!0), k(!1), await
|
|
109
|
+
Q ? (b(!1), E(!0), k(!1), await Be(u), N({
|
|
109
110
|
message: "Event configured status changed",
|
|
110
111
|
type: "success"
|
|
111
|
-
}), await T(c)) : z && (b(!1), L(!1), k(!1), E(!0), await
|
|
112
|
+
}), await T(c)) : z && (b(!1), L(!1), k(!1), E(!0), await _e(u == null ? void 0 : u.uuid), N({ message: "Event configured for run now", type: "success" }), await T(c));
|
|
112
113
|
} catch {
|
|
113
114
|
N({ message: "Error in toggle state", type: "error" });
|
|
114
115
|
}
|
|
@@ -160,7 +161,7 @@ function xt() {
|
|
|
160
161
|
icon: /* @__PURE__ */ o(
|
|
161
162
|
F,
|
|
162
163
|
{
|
|
163
|
-
icon:
|
|
164
|
+
icon: Ke,
|
|
164
165
|
"data-testid": "event-configuration-edit-button"
|
|
165
166
|
}
|
|
166
167
|
),
|
|
@@ -171,7 +172,7 @@ function xt() {
|
|
|
171
172
|
icon: /* @__PURE__ */ o(
|
|
172
173
|
F,
|
|
173
174
|
{
|
|
174
|
-
icon:
|
|
175
|
+
icon: Ze,
|
|
175
176
|
"data-testid": "event-configuration-menu-button"
|
|
176
177
|
}
|
|
177
178
|
),
|
|
@@ -182,7 +183,7 @@ function xt() {
|
|
|
182
183
|
};
|
|
183
184
|
D(() => {
|
|
184
185
|
(async () => {
|
|
185
|
-
const { data: n } = await
|
|
186
|
+
const { data: n } = await qe("techo.notification.all");
|
|
186
187
|
n && ge(JSON.parse(n));
|
|
187
188
|
})(), T(!0);
|
|
188
189
|
}, []);
|
|
@@ -213,14 +214,14 @@ function xt() {
|
|
|
213
214
|
return ["ALL", ...new Set(e)];
|
|
214
215
|
}, [d]), We = S(() => f ? f.filter((e) => !(g && e.status !== "EXCEPTION" || y && e.status === "COMPLETED" || s !== "ALL" && e.eventType !== s)) : [], [f, g, y, s]);
|
|
215
216
|
return !R && i !== null && !C.hasCheckRights(i == null ? void 0 : i["view.manage.event"]) ? /* @__PURE__ */ o(p, { className: "flex justify-center items-center w-full h-[80vh]", children: /* @__PURE__ */ o(
|
|
216
|
-
|
|
217
|
+
Qe,
|
|
217
218
|
{
|
|
218
219
|
className: "h-80 w-150 flex justify-center items-center",
|
|
219
220
|
children: /* @__PURE__ */ o(X, { variant: "h5", className: "text-customBlue", children: "You dont have permission to view Events" })
|
|
220
221
|
}
|
|
221
222
|
) }) : /* @__PURE__ */ h(Z, { className: "event-configuration w-[99%] my-4", children: [
|
|
222
223
|
U && /* @__PURE__ */ o(
|
|
223
|
-
|
|
224
|
+
Ye,
|
|
224
225
|
{
|
|
225
226
|
isOpen: !!W,
|
|
226
227
|
handleClose: Se,
|
|
@@ -250,7 +251,7 @@ function xt() {
|
|
|
250
251
|
}
|
|
251
252
|
) }),
|
|
252
253
|
/* @__PURE__ */ o(
|
|
253
|
-
|
|
254
|
+
je,
|
|
254
255
|
{
|
|
255
256
|
description: Q ? le : z ? ce : null,
|
|
256
257
|
title: "CONFIRM ACTION",
|
|
@@ -262,7 +263,7 @@ function xt() {
|
|
|
262
263
|
dataTestId: "eventconfiguration-modal-customconfirmation"
|
|
263
264
|
}
|
|
264
265
|
),
|
|
265
|
-
R ? /* @__PURE__ */ o(
|
|
266
|
+
R ? /* @__PURE__ */ o(et, {}) : /* @__PURE__ */ h(Re, { children: [
|
|
266
267
|
/* @__PURE__ */ o(
|
|
267
268
|
Z,
|
|
268
269
|
{
|
|
@@ -358,8 +359,8 @@ function xt() {
|
|
|
358
359
|
]
|
|
359
360
|
}
|
|
360
361
|
),
|
|
361
|
-
/* @__PURE__ */ o(
|
|
362
|
-
|
|
362
|
+
/* @__PURE__ */ o(ze, { size: "small", sx: { minWidth: 140 }, children: /* @__PURE__ */ o(
|
|
363
|
+
Pe,
|
|
363
364
|
{
|
|
364
365
|
value: s,
|
|
365
366
|
onChange: (e) => ae(e.target.value),
|
|
@@ -374,7 +375,7 @@ function xt() {
|
|
|
374
375
|
borderColor: s !== "ALL" ? m : x(v, 0.6)
|
|
375
376
|
}
|
|
376
377
|
},
|
|
377
|
-
children: Le.map((e) => /* @__PURE__ */ o(
|
|
378
|
+
children: Le.map((e) => /* @__PURE__ */ o(Ue, { value: e, sx: { fontSize: "0.875rem", fontWeight: 600 }, children: e === "ALL" ? l("All Event Types") : e }, e))
|
|
378
379
|
}
|
|
379
380
|
) }),
|
|
380
381
|
/* @__PURE__ */ o(p, { sx: { flexGrow: 1 } }),
|
|
@@ -388,11 +389,11 @@ function xt() {
|
|
|
388
389
|
color: "primary",
|
|
389
390
|
onClick: ye,
|
|
390
391
|
className: "text-xl h-9 min-w-[50px]",
|
|
391
|
-
children: /* @__PURE__ */ o(F, { icon:
|
|
392
|
+
children: /* @__PURE__ */ o(F, { icon: Xe })
|
|
392
393
|
}
|
|
393
394
|
),
|
|
394
395
|
/* @__PURE__ */ o(
|
|
395
|
-
|
|
396
|
+
$e,
|
|
396
397
|
{
|
|
397
398
|
name: "searchQuery",
|
|
398
399
|
id: "searchQuery",
|
|
@@ -429,7 +430,7 @@ function xt() {
|
|
|
429
430
|
}
|
|
430
431
|
),
|
|
431
432
|
/* @__PURE__ */ o(
|
|
432
|
-
|
|
433
|
+
Ve,
|
|
433
434
|
{
|
|
434
435
|
columns: xe,
|
|
435
436
|
tableData: We,
|
|
@@ -444,6 +445,6 @@ function xt() {
|
|
|
444
445
|
] });
|
|
445
446
|
}
|
|
446
447
|
export {
|
|
447
|
-
|
|
448
|
+
bt as default
|
|
448
449
|
};
|
|
449
|
-
//# sourceMappingURL=EventConfigurations-
|
|
450
|
+
//# sourceMappingURL=EventConfigurations-Bzh1qWXU.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventConfigurations-kNtAj_WM.js","sources":["../src/views/Events/EventConfigurations.jsx"],"sourcesContent":["import React, {\n useEffect,\n useState,\n useCallback,\n useMemo,\n lazy,\n Suspense,\n} from \"react\";\nimport moment from \"moment\";\nimport { showToast } from \"@/common/toaster/toaster\";\nimport { retrieveAll, runEvent, toggleState } from \"../../services/EventConfig\";\nimport GeneralUtil from \"@/common/services/util/GeneralUtil\";\nimport {\n Button,\n TextField,\n Typography,\n Box,\n Card,\n alpha,\n MenuItem,\n Select,\n FormControl\n} from \"@mui/material\";\nimport \"./Styles/EventConfiguration.scss\";\nimport Grid from \"@mui/material/Grid2\";\nimport CustomConfirmationModal from \"@/views/custom-components/CustomConfirmationModal\";\nimport SyncWithServerDialog from \"@/common/syncWithServer/SyncWithServerDialog\";\nimport { getAssignedFeatures } from \"@/utils/feature.js\";\nconst ShowFlywayQuery = lazy(() => import(\"./ShowFlywayQuery\"));\nconst EventsExceptionModal = lazy(() => import(\"./EventsExceptionModal\"));\nimport { useNavigate } from \"react-router\";\n\nimport useTrackEvent from \"@/hooks/useTrackEvent\";\nimport { useTranslateProvider } from \"@/common/languageTranslator/TranslationContext\";\nimport CustomizedTable from \"@/views/custom-components/CustomizedTable/CustomizedTableV2\";\nimport {\n faBars,\n faPen,\n faRotateRight,\n} from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { EventConfigurationSkeleton } from \"./Skeletons/EventsSkeleton\";\n/**\n * EventConfigurations component for managing and displaying configured events.\n *\n * @module EventConfigurations\n * @function\n */\nfunction EventConfigurations() {\n const navigate = useNavigate();\n const trackEvent = useTrackEvent();\n const [configuredEvents, setConfiguredEvents] = useState(null);\n const [originalConfiguredEvent, setOriginalConfiguredEvent] = useState(null);\n const [filterConfiguredEvents, setfilterConfiguredEvents] = useState(null);\n \n const [fetchActiveOnly, setFetchActiveOnly] = useState(true);\n const [showExceptionOnly, setShowExceptionOnly] = useState(false);\n \n const [showNonCompletedOnly, setShowNonCompletedOnly] = useState(false);\n const [selectedEventType, setSelectedEventType] = useState(\"ALL\");\n \n const [search, setSearch] = useState(\"\");\n const [isActive, setIsActive] = useState(false);\n const [isActiveDescription, setIsActiveDescription] = useState(\"\");\n const [isRunEvent, setIsRunEvent] = useState(false);\n const [runEventDescription, setRunEventDescription] = useState(\"\");\n const [clickedRow, setClickedRow] = useState({});\n const [toggleOpen, setToggleOpen] = useState(false);\n const [openFlywayQuery, setOpenFlywayQuery] = useState(false);\n const [configuredQuery, setConfiguredQuery] = useState(\"\");\n const [featureUuid, setFeatureUuid] = useState(null);\n const [showException, setShowException] = useState(false);\n const { translate } = useTranslateProvider();\n const [isLoading, setIsLoading] = useState(false);\n const [rights, setRights] = useState({});\n\n const accentColor = \"#1976d2\"; \n const mutedTextColor = \"#666666\";\n const shellBorder = \"#e0e0e0\";\n /**\n * Refreshes the event configurations based on the current checkbox state.\n *\n * @async\n * @function onRefresh\n */\n const onRefresh = async () => {\n trackEvent(\"button_click\", {\n button_name: \"refresh-events-button\",\n button_type: \"reload\",\n button_id: \"eventconfiguration-refresh-button\",\n });\n loadInitialData(fetchActiveOnly);\n };\n\n /**\n * Filters the configured events based on the search term.\n *\n * @function performSearch\n * @param {string} search - The search term to filter events.\n */\n const performSearch = useCallback(\n (search) => {\n const filterEvents = filterConfiguredEvents\n ?.filter((event) =>\n event.name.toLowerCase().includes(search.toLowerCase())\n )\n .map((event) => ({\n ...event,\n completionTime: event.completionTime\n ? moment(event.completionTime).format(\"DD-MM-YYYY HH:mm\")\n : \"NA\",\n }));\n setConfiguredEvents(filterEvents);\n trackEvent(\"search_tracking\", {\n searchTerm: search,\n results_count: filterEvents?.length,\n search_type: \"Page Search\",\n });\n },\n [filterConfiguredEvents]\n );\n\n /**\n * Debounces a function call.\n *\n * @function debounce\n * @param {function} func - The function to debounce.\n * @param {number} delay - The delay in milliseconds.\n * @returns {function} - A debounced version of the input function.\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, 500),\n [performSearch]\n );\n\n /**\n * Handles the search input and triggers the debounced search.\n *\n * @function handleSearch\n * @param {Event} e - The input change event.\n */\n const handleSearch = (e) => {\n const { value: search } = e.target;\n setSearch(search);\n debouncedSearch(search);\n };\n\n /**\n * Toggles the active state and opens/closes the toggle menu.\n *\n * @function handleToggle\n */\n const handleToggle = async () => {\n setIsActive(true);\n setToggleOpen((cur) => !cur);\n };\n const headers = [\n {\n field: \"name\",\n label: \"Name\",\n align: \"left\",\n },\n {\n field: \"eventType\",\n label: \"Event Type\",\n align: \"left\",\n },\n {\n field: \"trigerWhen\",\n label: \"Trigger When\",\n align: \"left\",\n },\n {\n field: \"state\",\n label: \"State\",\n align: \"left\",\n },\n {\n field: \"status\",\n label: \"Current Status\",\n align: \"left\",\n },\n {\n field: \"completionTime\",\n label: \"Completed On\",\n align: \"left\",\n },\n {\n field: \"Actions\",\n label: \"Actions\",\n align: \"left\",\n },\n ];\n\n /**\n * Prepares options for the toggle menu based on the clicked row.\n *\n * @function handleToggleOption\n * @param {Object} data - The data for the clicked row.\n */\n const handleToggleOption = (data) => {\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 setRunEventDescription(\n `Are you sure you want to run ${data?.name} event config now?`\n );\n const toggledData = originalConfiguredEvent?.filter(\n (item) => item.uuid === data.uuid\n );\n\n setClickedRow(toggledData[0]);\n };\n\n /**\n * @function handleRunEvent\n * Toggles the run event state and opens the toggle menu.\n */\n const handleRunEvent = () => {\n setIsRunEvent(true);\n setToggleOpen(true);\n };\n\n /**\n * @function handleShowExceptions\n * Toggles the visibility of exceptions.\n */\n const handleShowExceptions = () => {\n setShowException((cur) => !cur);\n };\n\n /**\n * @function handleToggleState\n * Toggles the state of the clicked row, either activating it or running the event.\n *\n * @returns {Promise<void>}\n */\n const handleToggleState = async () => {\n try {\n if (isActive) {\n setToggleOpen(false);\n setIsLoading(true);\n setIsActive(false);\n await toggleState(clickedRow);\n showToast({\n message: \"Event configured status changed\",\n type: \"success\",\n });\n await loadInitialData(fetchActiveOnly);\n } else if (isRunEvent) {\n setToggleOpen(false);\n setIsRunEvent(false);\n setIsActive(false);\n setIsLoading(true);\n await runEvent(clickedRow?.uuid);\n showToast({ message: \"Event configured for run now\", type: \"success\" });\n await loadInitialData(fetchActiveOnly);\n }\n } catch {\n showToast({ message: \"Error in toggle state\", type: \"error\" });\n }\n };\n\n /**\n * @function showFlywayQuery\n * Toggles the display of the Flyway query based on the clicked row.\n */\n const showFlywayQuery = () => {\n setConfiguredQuery(clickedRow);\n setOpenFlywayQuery(true);\n };\n\n const handleSyncClose = () => setFeatureUuid(() => null);\n\n /**\n * @function syncWithServer\n * Initiates synchronization with the server using the clicked row's UUID.\n */\n const syncWithServer = () => {\n setFeatureUuid(clickedRow?.uuid);\n };\n\n /**\n * @function handleEdit\n * Navigates to the edit page for the selected row.\n *\n * @param {Object} row - The selected row to edit.\n */\n const handleEdit = (row) => {\n navigate(`/ui/medplat/views/config/${row?.uuid}`);\n };\n const actions = (row) => {\n let menu = [];\n let isActiveLabel =\n row?.state === \"ACTIVE\" ? \"Mark as Inactive\" : \"Mark as Active\";\n if (row?.eventType === \"TIMMER_BASED\" || row?.eventType === \"RECURSION\") {\n menu = [\n GeneralUtil.hasCheckRights(rights?.['update.manage.event']) && {\n label: translate(isActiveLabel),\n onClick: handleToggle,\n },\n\n {\n label: translate(\"Sync With Server\"),\n onClick: syncWithServer,\n },\n GeneralUtil.hasCheckRights(rights?.['view.manage.event.runNow']) && {\n label: translate(\"Run Event Now\"),\n onClick: handleRunEvent,\n },\n {\n label: translate(\"Show Exceptions\"),\n onClick: handleShowExceptions,\n },\n {\n label: translate(\"Show Flyway Query\"),\n onClick: showFlywayQuery,\n },\n ].filter(Boolean);\n } else {\n menu = [\n GeneralUtil.hasCheckRights(rights?.['update.manage.event']) && {\n label: isActiveLabel,\n onClick: handleToggle,\n },\n\n {\n label: translate(\"Sync With Server\"),\n onClick: syncWithServer,\n },\n\n {\n label: translate(\"Show Flyway Query\"),\n onClick: showFlywayQuery,\n },\n ].filter(Boolean);\n }\n return [\n GeneralUtil.hasCheckRights(rights?.['update.manage.event']) && {\n label: \"\",\n icon: (\n <FontAwesomeIcon\n icon={faPen}\n data-testid=\"event-configuration-edit-button\"\n />\n ),\n onClick: handleEdit,\n },\n {\n label: \"\",\n icon: (\n <FontAwesomeIcon\n icon={faBars}\n data-testid=\"event-configuration-menu-button\"\n />\n ),\n menuClick: handleToggleOption,\n menuItems: menu,\n },\n ].filter(Boolean);\n };\n\n useEffect(() => {\n const fetchRights = async () => {\n const { data: featureJson } = await getAssignedFeatures(\"techo.notification.all\");\n if (featureJson) setRights(JSON.parse(featureJson));\n };\n fetchRights();\n loadInitialData(true);\n }, []);\n\n /**\n * @function tableData\n * Processes and sorts the data for displaying configured events.\n *\n * @param {Array} data - The array of event data to be processed.\n */\n const tableData = (data) => {\n data.sort((a, b) => {\n // Place null values first for trigerWhen\n if (a.trigerWhen === null && b.trigerWhen !== null) return -1;\n if (b.trigerWhen === null && a.trigerWhen !== null) return 1;\n\n // Sort by trigerWhen (descending)\n if (b.trigerWhen < a.trigerWhen) return -1;\n if (b.trigerWhen > a.trigerWhen) return 1;\n\n // Place null values first for day\n if (a.day === null && b.day !== null) return -1;\n if (b.day === null && a.day !== null) return 1;\n\n // Sort by day (descending)\n if (b.day < a.day) return 1;\n if (b.day > a.day) return -1;\n\n // Place null values first for hour\n if (a.hour === null && b.hour !== null) return -1;\n if (b.hour === null && a.hour !== null) return 1;\n\n // Sort by hour (descending)\n if (b.hour < a.hour) return 1;\n if (b.hour > a.hour) return -1;\n\n // Place null values first for minute\n if (a.minute === null && b.minute !== null) return -1;\n if (b.minute === null && a.minute !== null) return 1;\n\n // Sort by minute (descending)\n if (b.minute < a.minute) return 1;\n if (b.minute > a.minute) return -1;\n\n return 0; // They are equal\n });\n\n let newData = data?.map((field) => {\n let str = \"\";\n if (field.trigerWhen) {\n str += field.trigerWhen + \" \";\n }\n if (field.day) {\n str += `<strong>Day:${field.day} </strong>`;\n }\n if (field.hour) {\n str += `<strong>Hour:${field.hour} </strong>`;\n }\n if (field.minute) {\n str += `<strong>Minute:${field.minute}</strong>`;\n }\n\n field.trigerWhen = str;\n return field;\n });\n !search && setConfiguredEvents(newData);\n setfilterConfiguredEvents(newData);\n };\n\n /**\n * @function loadInitialData\n * Loads the initial data for the configured events based on the active status.\n *\n * @param {boolean} isActive - Indicates whether to load active events or not.\n */\n const loadInitialData = async (isActive) => {\n try {\n setIsLoading(true);\n const response = await retrieveAll(isActive);\n const dataCopy = JSON.parse(JSON.stringify(response?.data));\n\n setOriginalConfiguredEvent(response?.data); // Store the original data\n tableData(dataCopy);\n setIsLoading(false);\n } catch {\n showToast({ message: \"Error in event loading\", type: \"error\" });\n setIsLoading(false);\n }\n };\n\n useEffect(() => {\n loadInitialData(fetchActiveOnly);\n }, [fetchActiveOnly]);\n\n useEffect(() => {\n debouncedSearch(search);\n }, [filterConfiguredEvents]);\n\n const exceptionCount = useMemo(() => {\n if (!configuredEvents) return 0;\n return configuredEvents.filter(e => {\n if (selectedEventType !== \"ALL\" && e.eventType !== selectedEventType) return false;\n return e.status === \"EXCEPTION\";\n }).length;\n }, [configuredEvents, selectedEventType]);\n\n const nonCompletedCount = useMemo(() => {\n if (!configuredEvents) return 0;\n return configuredEvents.filter(e => {\n if (selectedEventType !== \"ALL\" && e.eventType !== selectedEventType) return false;\n return e.status !== \"COMPLETED\";\n }).length;\n }, [configuredEvents, selectedEventType]);\n\n const uniqueEventTypes = useMemo(() => {\n if (!filterConfiguredEvents) return [];\n const types = filterConfiguredEvents.map(e => e.eventType).filter(Boolean);\n return [\"ALL\", ...new Set(types)];\n }, [filterConfiguredEvents]);\n\n const visibleTableEvents = useMemo(() => {\n if (!configuredEvents) return [];\n return configuredEvents.filter((event) => {\n if (showExceptionOnly && event.status !== \"EXCEPTION\") return false;\n if (showNonCompletedOnly && event.status === \"COMPLETED\") return false;\n if (selectedEventType !== \"ALL\" && event.eventType !== selectedEventType) return false;\n return true;\n });\n }, [configuredEvents, showExceptionOnly, showNonCompletedOnly, selectedEventType]);\n\n return !isLoading && rights !== null && !GeneralUtil.hasCheckRights(rights?.[\"view.manage.event\"]) ? (\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 Events\n </Typography>\n </Card>\n </Box>\n ) : (\n <Grid className=\"event-configuration w-[99%] my-4\">\n {featureUuid && (\n <SyncWithServerDialog\n isOpen={Boolean(setFeatureUuid)}\n handleClose={handleSyncClose}\n featureUUID={featureUuid}\n dataTestId=\"eventconfiguration-dialog-syncwithserver\"\n />\n )}\n <Suspense>\n {showException && (\n <EventsExceptionModal\n id={clickedRow?.id}\n title={\"VIEW EXCEPTION\"}\n open={showException}\n handleClose={() => setShowException(false)}\n dataTestId=\"eventconfiguration-modal-viewexception\"\n />\n )}\n </Suspense>\n <Suspense>\n <ShowFlywayQuery\n configuredQuery={configuredQuery}\n open={openFlywayQuery}\n onClose={() => {\n setOpenFlywayQuery(false);\n }}\n dataTestId=\"eventconfiguration-query-showflywayquery\"\n />\n </Suspense>\n <CustomConfirmationModal\n description={\n isActive\n ? isActiveDescription\n : (() => {\n const value = isRunEvent ? runEventDescription : null;\n return value;\n })()\n }\n title={\"CONFIRM ACTION\"}\n handleClick={handleToggleState}\n open={toggleOpen}\n handleClose={() => {\n setToggleOpen((cur) => !cur);\n setIsActive(false);\n setIsRunEvent(false);\n }}\n dataTestId=\"eventconfiguration-modal-customconfirmation\"\n />\n {isLoading ? (\n <EventConfigurationSkeleton />\n ) : (\n <>\n <Grid\n container\n justifyContent=\"space-between\"\n alignItems=\"center\"\n className=\"mb-2\"\n >\n <Box className=\"flex flex-col md:flex-row md:items-center gap-2 md:space-x-2 w-full\">\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1.2, flexWrap: 'wrap', width: '100%' }}>\n <Typography\n variant=\"body2\"\n className=\"font-bold font-sans text-sm text-customBlue uppercase mr-1\"\n data-testid=\"notification-list-typography-title\"\n >\n {translate(\"Filters:\")}\n </Typography>\n\n <Box \n sx={{ \n display: 'flex', \n backgroundColor: alpha(shellBorder, 0.4), \n padding: '3px', \n borderRadius: '12px',\n border: `1px solid ${shellBorder}`\n }}\n >\n <button\n onClick={() => setFetchActiveOnly(true)}\n className=\"cursor-pointer px-4 py-1.5 rounded-lg transition-all text-sm font-extrabold border-0\"\n style={{\n background: fetchActiveOnly ? \"#2e7d32\" : \"transparent\",\n color: fetchActiveOnly ? \"#ffffff\" : mutedTextColor,\n boxShadow: fetchActiveOnly ? \"0px 2px 4px rgba(0,0,0,0.1)\" : \"none\"\n }}\n >\n {translate(\"Active\")}\n </button>\n <button\n onClick={() => setFetchActiveOnly(false)}\n className=\"cursor-pointer px-4 py-1.5 rounded-lg transition-all text-sm font-extrabold border-0\"\n style={{\n background: !fetchActiveOnly ? \"#d32f2f\" : \"transparent\",\n color: !fetchActiveOnly ? \"#ffffff\" : mutedTextColor,\n boxShadow: !fetchActiveOnly ? \"0px 2px 4px rgba(0,0,0,0.1)\" : \"none\"\n }}\n >\n {translate(\"Inactive\")}\n </button>\n </Box>\n\n <Box sx={{ width: '1px', height: '25px', backgroundColor: shellBorder, mx: 0.5 }} />\n\n <button\n onClick={() => setShowExceptionOnly(!showExceptionOnly)}\n className=\"cursor-pointer px-3.5 py-1.5 rounded-xl transition-all text-sm font-bold border\"\n style={{\n background: showExceptionOnly ? alpha(accentColor, 0.12) : 'transparent',\n color: showExceptionOnly ? accentColor : mutedTextColor,\n borderColor: showExceptionOnly ? accentColor : alpha(shellBorder, 0.6),\n }}\n data-testid=\"eventconfiguration-Exception-checkbox\"\n >\n {translate(\"Exception\")} ({exceptionCount})\n </button>\n\n <button\n onClick={() => setShowNonCompletedOnly(!showNonCompletedOnly)}\n className=\"cursor-pointer px-3.5 py-1.5 rounded-xl transition-all text-sm font-bold border\"\n style={{\n background: showNonCompletedOnly ? alpha(accentColor, 0.12) : 'transparent',\n color: showNonCompletedOnly ? accentColor : mutedTextColor,\n borderColor: showNonCompletedOnly ? accentColor : alpha(shellBorder, 0.6),\n }}\n >\n {translate(\"Not Completed\")} ({nonCompletedCount})\n </button>\n\n <FormControl size=\"small\" sx={{ minWidth: 140 }}>\n <Select\n value={selectedEventType}\n onChange={(e) => setSelectedEventType(e.target.value)}\n displayEmpty\n sx={{ \n borderRadius: '12px', \n backgroundColor: 'white',\n fontSize: '0.875rem',\n fontWeight: 700,\n color: selectedEventType !== \"ALL\" ? accentColor : mutedTextColor,\n '.MuiOutlinedInput-notchedOutline': {\n borderColor: selectedEventType !== \"ALL\" ? accentColor : alpha(shellBorder, 0.6),\n }\n }}\n >\n {uniqueEventTypes.map((type) => (\n <MenuItem key={type} value={type} sx={{ fontSize: '0.875rem', fontWeight: 600 }}>\n {type === \"ALL\" ? translate(\"All Event Types\") : type}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n\n <Box sx={{ flexGrow: 1 }} />\n\n <Box className=\"flex items-center gap-2 w-full md:w-auto\">\n <Button\n size=\"small\"\n variant=\"contained\"\n data-testid=\"eventconfiguration-refresh-button\"\n color=\"primary\"\n onClick={onRefresh}\n className=\"text-xl h-9 min-w-[50px]\"\n >\n <FontAwesomeIcon icon={faRotateRight} />\n </Button>\n <TextField\n name=\"searchQuery\"\n id=\"searchQuery\"\n placeholder=\"Search\"\n size=\"small\"\n value={search}\n onChange={handleSearch}\n sx={{\n width: '100%',\n backgroundColor: \"white\",\n }}\n data-testid=\"eventconfiguration-textfield-searchquery\"\n />\n </Box>\n {GeneralUtil.hasCheckRights(rights?.['create.manage.event']) && (\n <Button\n size=\"small\"\n variant=\"contained\"\n className=\"w-full md:w-auto whitespace-nowrap\"\n data-testid=\"eventconfiguration-configurenew-button\"\n onClick={() => {\n trackEvent(\"button_click\", {\n button_name: \"configure-new-event-button\",\n button_type: \"navigate\",\n button_id: \"eventconfiguration-configurenew-button\",\n });\n navigate(\"/ui/medplat/views/config\");\n }}\n >\n {translate(\"Configure New\")}\n </Button>\n )}\n </Box>\n </Box>\n </Grid>\n <CustomizedTable\n columns={headers}\n tableData={visibleTableEvents}\n actions={actions}\n paginationConfig={{ pagination: false }}\n dataTestId=\"eventconfiguration-table-configuredevents\"\n isLoading={isLoading}\n customHeight={10}\n />\n </>\n )}\n </Grid>\n );\n}\n\nexport default EventConfigurations;"],"names":["ShowFlywayQuery","lazy","EventsExceptionModal","EventConfigurations","navigate","useNavigate","trackEvent","useTrackEvent","configuredEvents","setConfiguredEvents","useState","originalConfiguredEvent","setOriginalConfiguredEvent","filterConfiguredEvents","setfilterConfiguredEvents","fetchActiveOnly","setFetchActiveOnly","showExceptionOnly","setShowExceptionOnly","showNonCompletedOnly","setShowNonCompletedOnly","selectedEventType","setSelectedEventType","search","setSearch","isActive","setIsActive","isActiveDescription","setIsActiveDescription","isRunEvent","setIsRunEvent","runEventDescription","setRunEventDescription","clickedRow","setClickedRow","toggleOpen","setToggleOpen","openFlywayQuery","setOpenFlywayQuery","configuredQuery","setConfiguredQuery","featureUuid","setFeatureUuid","showException","setShowException","translate","useTranslateProvider","isLoading","setIsLoading","rights","setRights","accentColor","mutedTextColor","shellBorder","onRefresh","loadInitialData","performSearch","useCallback","filterEvents","event","moment","debounce","func","delay","timeoutId","args","debouncedSearch","useMemo","handleSearch","handleToggle","cur","headers","handleToggleOption","data","toggledData","item","handleRunEvent","handleShowExceptions","handleToggleState","toggleState","showToast","runEvent","showFlywayQuery","handleSyncClose","syncWithServer","handleEdit","row","actions","menu","isActiveLabel","GeneralUtil","jsx","FontAwesomeIcon","faPen","faBars","useEffect","featureJson","getAssignedFeatures","tableData","a","b","newData","field","str","response","retrieveAll","dataCopy","exceptionCount","nonCompletedCount","uniqueEventTypes","types","e","visibleTableEvents","Box","Card","Typography","jsxs","Grid","SyncWithServerDialog","Suspense","CustomConfirmationModal","EventConfigurationSkeleton","Fragment","alpha","FormControl","Select","type","MenuItem","Button","faRotateRight","TextField","CustomizedTable"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EventConfigurations-Bzh1qWXU.js","sources":["../src/views/Events/EventConfigurations.jsx"],"sourcesContent":["import React, {\n useEffect,\n useState,\n useCallback,\n useMemo,\n lazy,\n Suspense,\n} from \"react\";\nimport moment from \"moment\";\nimport { showToast } from \"@/common/toaster/toaster\";\nimport { retrieveAll, runEvent, toggleState } from \"../../services/EventConfig\";\nimport GeneralUtil from \"@/common/services/util/GeneralUtil\";\nimport {\n Button,\n TextField,\n Typography,\n Box,\n Card,\n alpha,\n MenuItem,\n Select,\n FormControl\n} from \"@mui/material\";\nimport \"./Styles/EventConfiguration.scss\";\nimport Grid from \"@mui/material/Grid2\";\nimport CustomConfirmationModal from \"@/views/custom-components/CustomConfirmationModal\";\nimport SyncWithServerDialog from \"@/common/syncWithServer/SyncWithServerDialog\";\nimport { getAssignedFeatures } from \"@/utils/feature.js\";\nconst ShowFlywayQuery = lazy(() => import(\"./ShowFlywayQuery\"));\nconst EventsExceptionModal = lazy(() => import(\"./EventsExceptionModal\"));\nimport { useNavigate } from \"react-router\";\n\nimport useTrackEvent from \"@/hooks/useTrackEvent\";\nimport { useTranslateProvider } from \"@/common/languageTranslator/TranslationContext\";\nimport CustomizedTable from \"@/views/custom-components/CustomizedTable/CustomizedTableV2\";\nimport {\n faBars,\n faPen,\n faRotateRight,\n} from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { EventConfigurationSkeleton } from \"./Skeletons/EventsSkeleton\";\n/**\n * EventConfigurations component for managing and displaying configured events.\n *\n * @module EventConfigurations\n * @function\n */\nfunction EventConfigurations() {\n const navigate = useNavigate();\n const trackEvent = useTrackEvent();\n const [configuredEvents, setConfiguredEvents] = useState(null);\n const [originalConfiguredEvent, setOriginalConfiguredEvent] = useState(null);\n const [filterConfiguredEvents, setfilterConfiguredEvents] = useState(null);\n \n const [fetchActiveOnly, setFetchActiveOnly] = useState(true);\n const [showExceptionOnly, setShowExceptionOnly] = useState(false);\n \n const [showNonCompletedOnly, setShowNonCompletedOnly] = useState(false);\n const [selectedEventType, setSelectedEventType] = useState(\"ALL\");\n \n const [search, setSearch] = useState(\"\");\n const [isActive, setIsActive] = useState(false);\n const [isActiveDescription, setIsActiveDescription] = useState(\"\");\n const [isRunEvent, setIsRunEvent] = useState(false);\n const [runEventDescription, setRunEventDescription] = useState(\"\");\n const [clickedRow, setClickedRow] = useState({});\n const [toggleOpen, setToggleOpen] = useState(false);\n const [openFlywayQuery, setOpenFlywayQuery] = useState(false);\n const [configuredQuery, setConfiguredQuery] = useState(\"\");\n const [featureUuid, setFeatureUuid] = useState(null);\n const [showException, setShowException] = useState(false);\n const { translate } = useTranslateProvider();\n const [isLoading, setIsLoading] = useState(false);\n const [rights, setRights] = useState({});\n\n const accentColor = \"#1976d2\"; \n const mutedTextColor = \"#666666\";\n const shellBorder = \"#e0e0e0\";\n /**\n * Refreshes the event configurations based on the current checkbox state.\n *\n * @async\n * @function onRefresh\n */\n const onRefresh = async () => {\n trackEvent(\"button_click\", {\n button_name: \"refresh-events-button\",\n button_type: \"reload\",\n button_id: \"eventconfiguration-refresh-button\",\n });\n loadInitialData(fetchActiveOnly);\n };\n\n /**\n * Filters the configured events based on the search term.\n *\n * @function performSearch\n * @param {string} search - The search term to filter events.\n */\n const performSearch = useCallback(\n (search) => {\n const filterEvents = filterConfiguredEvents\n ?.filter((event) =>\n event.name.toLowerCase().includes(search.toLowerCase())\n )\n .map((event) => ({\n ...event,\n completionTime: event.completionTime\n ? moment(event.completionTime).format(\"DD-MM-YYYY HH:mm\")\n : \"NA\",\n }));\n setConfiguredEvents(filterEvents);\n trackEvent(\"search_tracking\", {\n searchTerm: search,\n results_count: filterEvents?.length,\n search_type: \"Page Search\",\n });\n },\n [filterConfiguredEvents]\n );\n\n /**\n * Debounces a function call.\n *\n * @function debounce\n * @param {function} func - The function to debounce.\n * @param {number} delay - The delay in milliseconds.\n * @returns {function} - A debounced version of the input function.\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, 500),\n [performSearch]\n );\n\n /**\n * Handles the search input and triggers the debounced search.\n *\n * @function handleSearch\n * @param {Event} e - The input change event.\n */\n const handleSearch = (e) => {\n const { value: search } = e.target;\n setSearch(search);\n debouncedSearch(search);\n };\n\n /**\n * Toggles the active state and opens/closes the toggle menu.\n *\n * @function handleToggle\n */\n const handleToggle = async () => {\n setIsActive(true);\n setToggleOpen((cur) => !cur);\n };\n const headers = [\n {\n field: \"name\",\n label: \"Name\",\n align: \"left\",\n },\n {\n field: \"eventType\",\n label: \"Event Type\",\n align: \"left\",\n },\n {\n field: \"trigerWhen\",\n label: \"Trigger When\",\n align: \"left\",\n },\n {\n field: \"state\",\n label: \"State\",\n align: \"left\",\n },\n {\n field: \"status\",\n label: \"Current Status\",\n align: \"left\",\n },\n {\n field: \"completionTime\",\n label: \"Completed On\",\n align: \"left\",\n },\n {\n field: \"Actions\",\n label: \"Actions\",\n align: \"left\",\n },\n ];\n\n /**\n * Prepares options for the toggle menu based on the clicked row.\n *\n * @function handleToggleOption\n * @param {Object} data - The data for the clicked row.\n */\n const handleToggleOption = (data) => {\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 setRunEventDescription(\n `Are you sure you want to run ${data?.name} event config now?`\n );\n const toggledData = originalConfiguredEvent?.filter(\n (item) => item.uuid === data.uuid\n );\n\n setClickedRow(toggledData[0]);\n };\n\n /**\n * @function handleRunEvent\n * Toggles the run event state and opens the toggle menu.\n */\n const handleRunEvent = () => {\n setIsRunEvent(true);\n setToggleOpen(true);\n };\n\n /**\n * @function handleShowExceptions\n * Toggles the visibility of exceptions.\n */\n const handleShowExceptions = () => {\n setShowException((cur) => !cur);\n };\n\n /**\n * @function handleToggleState\n * Toggles the state of the clicked row, either activating it or running the event.\n *\n * @returns {Promise<void>}\n */\n const handleToggleState = async () => {\n try {\n if (isActive) {\n setToggleOpen(false);\n setIsLoading(true);\n setIsActive(false);\n await toggleState(clickedRow);\n showToast({\n message: \"Event configured status changed\",\n type: \"success\",\n });\n await loadInitialData(fetchActiveOnly);\n } else if (isRunEvent) {\n setToggleOpen(false);\n setIsRunEvent(false);\n setIsActive(false);\n setIsLoading(true);\n await runEvent(clickedRow?.uuid);\n showToast({ message: \"Event configured for run now\", type: \"success\" });\n await loadInitialData(fetchActiveOnly);\n }\n } catch {\n showToast({ message: \"Error in toggle state\", type: \"error\" });\n }\n };\n\n /**\n * @function showFlywayQuery\n * Toggles the display of the Flyway query based on the clicked row.\n */\n const showFlywayQuery = () => {\n setConfiguredQuery(clickedRow);\n setOpenFlywayQuery(true);\n };\n\n const handleSyncClose = () => setFeatureUuid(() => null);\n\n /**\n * @function syncWithServer\n * Initiates synchronization with the server using the clicked row's UUID.\n */\n const syncWithServer = () => {\n setFeatureUuid(clickedRow?.uuid);\n };\n\n /**\n * @function handleEdit\n * Navigates to the edit page for the selected row.\n *\n * @param {Object} row - The selected row to edit.\n */\n const handleEdit = (row) => {\n navigate(`/ui/medplat/views/config/${row?.uuid}`);\n };\n const actions = (row) => {\n let menu = [];\n let isActiveLabel =\n row?.state === \"ACTIVE\" ? \"Mark as Inactive\" : \"Mark as Active\";\n if (row?.eventType === \"TIMMER_BASED\" || row?.eventType === \"RECURSION\") {\n menu = [\n GeneralUtil.hasCheckRights(rights?.['update.manage.event']) && {\n label: translate(isActiveLabel),\n onClick: handleToggle,\n },\n\n {\n label: translate(\"Sync With Server\"),\n onClick: syncWithServer,\n },\n GeneralUtil.hasCheckRights(rights?.['view.manage.event.runNow']) && {\n label: translate(\"Run Event Now\"),\n onClick: handleRunEvent,\n },\n {\n label: translate(\"Show Exceptions\"),\n onClick: handleShowExceptions,\n },\n {\n label: translate(\"Show Flyway Query\"),\n onClick: showFlywayQuery,\n },\n ].filter(Boolean);\n } else {\n menu = [\n GeneralUtil.hasCheckRights(rights?.['update.manage.event']) && {\n label: isActiveLabel,\n onClick: handleToggle,\n },\n\n {\n label: translate(\"Sync With Server\"),\n onClick: syncWithServer,\n },\n\n {\n label: translate(\"Show Flyway Query\"),\n onClick: showFlywayQuery,\n },\n ].filter(Boolean);\n }\n return [\n GeneralUtil.hasCheckRights(rights?.['update.manage.event']) && {\n label: \"\",\n icon: (\n <FontAwesomeIcon\n icon={faPen}\n data-testid=\"event-configuration-edit-button\"\n />\n ),\n onClick: handleEdit,\n },\n {\n label: \"\",\n icon: (\n <FontAwesomeIcon\n icon={faBars}\n data-testid=\"event-configuration-menu-button\"\n />\n ),\n menuClick: handleToggleOption,\n menuItems: menu,\n },\n ].filter(Boolean);\n };\n\n useEffect(() => {\n const fetchRights = async () => {\n const { data: featureJson } = await getAssignedFeatures(\"techo.notification.all\");\n if (featureJson) setRights(JSON.parse(featureJson));\n };\n fetchRights();\n loadInitialData(true);\n }, []);\n\n /**\n * @function tableData\n * Processes and sorts the data for displaying configured events.\n *\n * @param {Array} data - The array of event data to be processed.\n */\n const tableData = (data) => {\n data.sort((a, b) => {\n // Place null values first for trigerWhen\n if (a.trigerWhen === null && b.trigerWhen !== null) return -1;\n if (b.trigerWhen === null && a.trigerWhen !== null) return 1;\n\n // Sort by trigerWhen (descending)\n if (b.trigerWhen < a.trigerWhen) return -1;\n if (b.trigerWhen > a.trigerWhen) return 1;\n\n // Place null values first for day\n if (a.day === null && b.day !== null) return -1;\n if (b.day === null && a.day !== null) return 1;\n\n // Sort by day (descending)\n if (b.day < a.day) return 1;\n if (b.day > a.day) return -1;\n\n // Place null values first for hour\n if (a.hour === null && b.hour !== null) return -1;\n if (b.hour === null && a.hour !== null) return 1;\n\n // Sort by hour (descending)\n if (b.hour < a.hour) return 1;\n if (b.hour > a.hour) return -1;\n\n // Place null values first for minute\n if (a.minute === null && b.minute !== null) return -1;\n if (b.minute === null && a.minute !== null) return 1;\n\n // Sort by minute (descending)\n if (b.minute < a.minute) return 1;\n if (b.minute > a.minute) return -1;\n\n return 0; // They are equal\n });\n\n let newData = data?.map((field) => {\n let str = \"\";\n if (field.trigerWhen) {\n str += field.trigerWhen + \" \";\n }\n if (field.day) {\n str += `<strong>Day:${field.day} </strong>`;\n }\n if (field.hour) {\n str += `<strong>Hour:${field.hour} </strong>`;\n }\n if (field.minute) {\n str += `<strong>Minute:${field.minute}</strong>`;\n }\n\n field.trigerWhen = str;\n return field;\n });\n !search && setConfiguredEvents(newData);\n setfilterConfiguredEvents(newData);\n };\n\n /**\n * @function loadInitialData\n * Loads the initial data for the configured events based on the active status.\n *\n * @param {boolean} isActive - Indicates whether to load active events or not.\n */\n const loadInitialData = async (isActive) => {\n try {\n setIsLoading(true);\n const response = await retrieveAll(isActive);\n const dataCopy = JSON.parse(JSON.stringify(response?.data));\n\n setOriginalConfiguredEvent(response?.data); // Store the original data\n tableData(dataCopy);\n setIsLoading(false);\n } catch {\n showToast({ message: \"Error in event loading\", type: \"error\" });\n setIsLoading(false);\n }\n };\n\n useEffect(() => {\n loadInitialData(fetchActiveOnly);\n }, [fetchActiveOnly]);\n\n useEffect(() => {\n debouncedSearch(search);\n }, [filterConfiguredEvents]);\n\n const exceptionCount = useMemo(() => {\n if (!configuredEvents) return 0;\n return configuredEvents.filter(e => {\n if (selectedEventType !== \"ALL\" && e.eventType !== selectedEventType) return false;\n return e.status === \"EXCEPTION\";\n }).length;\n }, [configuredEvents, selectedEventType]);\n\n const nonCompletedCount = useMemo(() => {\n if (!configuredEvents) return 0;\n return configuredEvents.filter(e => {\n if (selectedEventType !== \"ALL\" && e.eventType !== selectedEventType) return false;\n return e.status !== \"COMPLETED\";\n }).length;\n }, [configuredEvents, selectedEventType]);\n\n const uniqueEventTypes = useMemo(() => {\n if (!filterConfiguredEvents) return [];\n const types = filterConfiguredEvents.map(e => e.eventType).filter(Boolean);\n return [\"ALL\", ...new Set(types)];\n }, [filterConfiguredEvents]);\n\n const visibleTableEvents = useMemo(() => {\n if (!configuredEvents) return [];\n return configuredEvents.filter((event) => {\n if (showExceptionOnly && event.status !== \"EXCEPTION\") return false;\n if (showNonCompletedOnly && event.status === \"COMPLETED\") return false;\n if (selectedEventType !== \"ALL\" && event.eventType !== selectedEventType) return false;\n return true;\n });\n }, [configuredEvents, showExceptionOnly, showNonCompletedOnly, selectedEventType]);\n\n return !isLoading && rights !== null && !GeneralUtil.hasCheckRights(rights?.[\"view.manage.event\"]) ? (\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 Events\n </Typography>\n </Card>\n </Box>\n ) : (\n <Grid className=\"event-configuration w-[99%] my-4\">\n {featureUuid && (\n <SyncWithServerDialog\n isOpen={Boolean(setFeatureUuid)}\n handleClose={handleSyncClose}\n featureUUID={featureUuid}\n dataTestId=\"eventconfiguration-dialog-syncwithserver\"\n />\n )}\n <Suspense>\n {showException && (\n <EventsExceptionModal\n id={clickedRow?.id}\n title={\"VIEW EXCEPTION\"}\n open={showException}\n handleClose={() => setShowException(false)}\n dataTestId=\"eventconfiguration-modal-viewexception\"\n />\n )}\n </Suspense>\n <Suspense>\n <ShowFlywayQuery\n configuredQuery={configuredQuery}\n open={openFlywayQuery}\n onClose={() => {\n setOpenFlywayQuery(false);\n }}\n dataTestId=\"eventconfiguration-query-showflywayquery\"\n />\n </Suspense>\n <CustomConfirmationModal\n description={\n isActive\n ? isActiveDescription\n : (() => {\n const value = isRunEvent ? runEventDescription : null;\n return value;\n })()\n }\n title={\"CONFIRM ACTION\"}\n handleClick={handleToggleState}\n open={toggleOpen}\n handleClose={() => {\n setToggleOpen((cur) => !cur);\n setIsActive(false);\n setIsRunEvent(false);\n }}\n dataTestId=\"eventconfiguration-modal-customconfirmation\"\n />\n {isLoading ? (\n <EventConfigurationSkeleton />\n ) : (\n <>\n <Grid\n container\n justifyContent=\"space-between\"\n alignItems=\"center\"\n className=\"mb-2\"\n >\n <Box className=\"flex flex-col md:flex-row md:items-center gap-2 md:space-x-2 w-full\">\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1.2, flexWrap: 'wrap', width: '100%' }}>\n <Typography\n variant=\"body2\"\n className=\"font-bold font-sans text-sm text-customBlue uppercase mr-1\"\n data-testid=\"notification-list-typography-title\"\n >\n {translate(\"Filters:\")}\n </Typography>\n\n <Box \n sx={{ \n display: 'flex', \n backgroundColor: alpha(shellBorder, 0.4), \n padding: '3px', \n borderRadius: '12px',\n border: `1px solid ${shellBorder}`\n }}\n >\n <button\n onClick={() => setFetchActiveOnly(true)}\n className=\"cursor-pointer px-4 py-1.5 rounded-lg transition-all text-sm font-extrabold border-0\"\n style={{\n background: fetchActiveOnly ? \"#2e7d32\" : \"transparent\",\n color: fetchActiveOnly ? \"#ffffff\" : mutedTextColor,\n boxShadow: fetchActiveOnly ? \"0px 2px 4px rgba(0,0,0,0.1)\" : \"none\"\n }}\n >\n {translate(\"Active\")}\n </button>\n <button\n onClick={() => setFetchActiveOnly(false)}\n className=\"cursor-pointer px-4 py-1.5 rounded-lg transition-all text-sm font-extrabold border-0\"\n style={{\n background: !fetchActiveOnly ? \"#d32f2f\" : \"transparent\",\n color: !fetchActiveOnly ? \"#ffffff\" : mutedTextColor,\n boxShadow: !fetchActiveOnly ? \"0px 2px 4px rgba(0,0,0,0.1)\" : \"none\"\n }}\n >\n {translate(\"Inactive\")}\n </button>\n </Box>\n\n <Box sx={{ width: '1px', height: '25px', backgroundColor: shellBorder, mx: 0.5 }} />\n\n <button\n onClick={() => setShowExceptionOnly(!showExceptionOnly)}\n className=\"cursor-pointer px-3.5 py-1.5 rounded-xl transition-all text-sm font-bold border\"\n style={{\n background: showExceptionOnly ? alpha(accentColor, 0.12) : 'transparent',\n color: showExceptionOnly ? accentColor : mutedTextColor,\n borderColor: showExceptionOnly ? accentColor : alpha(shellBorder, 0.6),\n }}\n data-testid=\"eventconfiguration-Exception-checkbox\"\n >\n {translate(\"Exception\")} ({exceptionCount})\n </button>\n\n <button\n onClick={() => setShowNonCompletedOnly(!showNonCompletedOnly)}\n className=\"cursor-pointer px-3.5 py-1.5 rounded-xl transition-all text-sm font-bold border\"\n style={{\n background: showNonCompletedOnly ? alpha(accentColor, 0.12) : 'transparent',\n color: showNonCompletedOnly ? accentColor : mutedTextColor,\n borderColor: showNonCompletedOnly ? accentColor : alpha(shellBorder, 0.6),\n }}\n >\n {translate(\"Not Completed\")} ({nonCompletedCount})\n </button>\n\n <FormControl size=\"small\" sx={{ minWidth: 140 }}>\n <Select\n value={selectedEventType}\n onChange={(e) => setSelectedEventType(e.target.value)}\n displayEmpty\n sx={{ \n borderRadius: '12px', \n backgroundColor: 'white',\n fontSize: '0.875rem',\n fontWeight: 700,\n color: selectedEventType !== \"ALL\" ? accentColor : mutedTextColor,\n '.MuiOutlinedInput-notchedOutline': {\n borderColor: selectedEventType !== \"ALL\" ? accentColor : alpha(shellBorder, 0.6),\n }\n }}\n >\n {uniqueEventTypes.map((type) => (\n <MenuItem key={type} value={type} sx={{ fontSize: '0.875rem', fontWeight: 600 }}>\n {type === \"ALL\" ? translate(\"All Event Types\") : type}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n\n <Box sx={{ flexGrow: 1 }} />\n\n <Box className=\"flex items-center gap-2 w-full md:w-auto\">\n <Button\n size=\"small\"\n variant=\"contained\"\n data-testid=\"eventconfiguration-refresh-button\"\n color=\"primary\"\n onClick={onRefresh}\n className=\"text-xl h-9 min-w-[50px]\"\n >\n <FontAwesomeIcon icon={faRotateRight} />\n </Button>\n <TextField\n name=\"searchQuery\"\n id=\"searchQuery\"\n placeholder=\"Search\"\n size=\"small\"\n value={search}\n onChange={handleSearch}\n sx={{\n width: '100%',\n backgroundColor: \"white\",\n }}\n data-testid=\"eventconfiguration-textfield-searchquery\"\n />\n </Box>\n {GeneralUtil.hasCheckRights(rights?.['create.manage.event']) && (\n <Button\n size=\"small\"\n variant=\"contained\"\n className=\"w-full md:w-auto whitespace-nowrap\"\n data-testid=\"eventconfiguration-configurenew-button\"\n onClick={() => {\n trackEvent(\"button_click\", {\n button_name: \"configure-new-event-button\",\n button_type: \"navigate\",\n button_id: \"eventconfiguration-configurenew-button\",\n });\n navigate(\"/ui/medplat/views/config\");\n }}\n >\n {translate(\"Configure New\")}\n </Button>\n )}\n </Box>\n </Box>\n </Grid>\n <CustomizedTable\n columns={headers}\n tableData={visibleTableEvents}\n actions={actions}\n paginationConfig={{ pagination: false }}\n dataTestId=\"eventconfiguration-table-configuredevents\"\n isLoading={isLoading}\n customHeight={10}\n />\n </>\n )}\n </Grid>\n );\n}\n\nexport default EventConfigurations;"],"names":["ShowFlywayQuery","lazy","EventsExceptionModal","EventConfigurations","navigate","useNavigate","trackEvent","useTrackEvent","configuredEvents","setConfiguredEvents","useState","originalConfiguredEvent","setOriginalConfiguredEvent","filterConfiguredEvents","setfilterConfiguredEvents","fetchActiveOnly","setFetchActiveOnly","showExceptionOnly","setShowExceptionOnly","showNonCompletedOnly","setShowNonCompletedOnly","selectedEventType","setSelectedEventType","search","setSearch","isActive","setIsActive","isActiveDescription","setIsActiveDescription","isRunEvent","setIsRunEvent","runEventDescription","setRunEventDescription","clickedRow","setClickedRow","toggleOpen","setToggleOpen","openFlywayQuery","setOpenFlywayQuery","configuredQuery","setConfiguredQuery","featureUuid","setFeatureUuid","showException","setShowException","translate","useTranslateProvider","isLoading","setIsLoading","rights","setRights","accentColor","mutedTextColor","shellBorder","onRefresh","loadInitialData","performSearch","useCallback","filterEvents","event","moment","debounce","func","delay","timeoutId","args","debouncedSearch","useMemo","handleSearch","handleToggle","cur","headers","handleToggleOption","data","toggledData","item","handleRunEvent","handleShowExceptions","handleToggleState","toggleState","showToast","runEvent","showFlywayQuery","handleSyncClose","syncWithServer","handleEdit","row","actions","menu","isActiveLabel","GeneralUtil","jsx","FontAwesomeIcon","faPen","faBars","useEffect","featureJson","getAssignedFeatures","tableData","a","b","newData","field","str","response","retrieveAll","dataCopy","exceptionCount","nonCompletedCount","uniqueEventTypes","types","e","visibleTableEvents","Box","Card","Typography","jsxs","Grid","SyncWithServerDialog","Suspense","CustomConfirmationModal","EventConfigurationSkeleton","Fragment","alpha","FormControl","Select","type","MenuItem","Button","faRotateRight","TextField","CustomizedTable"],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ import { showToast as _ } from "@/common/toaster/toaster";
|
|
|
8
8
|
import { useTranslateProvider as B } from "@/common/languageTranslator/TranslationContext";
|
|
9
9
|
import { FontAwesomeIcon as C } from "@fortawesome/react-fontawesome";
|
|
10
10
|
import { faXmark as L } from "@fortawesome/free-solid-svg-icons";
|
|
11
|
-
import {
|
|
11
|
+
import { a as j } from "./EventsSkeleton-BIcPks4T.js";
|
|
12
12
|
function M({ id: d, title: u, open: x, handleClose: c, dataTestId: y }) {
|
|
13
13
|
const { translate: r } = B(), [e, p] = h(null), [l, f] = h(!1);
|
|
14
14
|
N(() => {
|
|
@@ -197,4 +197,4 @@ M.propTypes = {
|
|
|
197
197
|
export {
|
|
198
198
|
M as default
|
|
199
199
|
};
|
|
200
|
-
//# sourceMappingURL=EventsExceptionModal-
|
|
200
|
+
//# sourceMappingURL=EventsExceptionModal-B2SRrnB1.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventsExceptionModal-D4Bf1ilS.js","sources":["../src/views/Events/EventsExceptionModal.jsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Button, IconButton, Modal, Stack, Typography } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid2\";\nimport { execute } from \"@/common/services/GlobalApis\";\nimport { showToast } from \"@/common/toaster/toaster\";\nimport { useTranslateProvider } from \"@/common/languageTranslator/TranslationContext\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faXmark } from \"@fortawesome/free-solid-svg-icons\";\nimport { EventExceptionModalSkeleton } from \"./Skeletons/EventsSkeleton\";\n\n/**\n * Modal component for displaying event exceptions.\n *\n * @module EventsExceptionModal\n * @function\n *\n * @param {Object} props - The component props.\n * @param {number} props.id - The identifier for the event configuration.\n * @param {string} props.title - The title of the modal.\n * @param {boolean} props.open - A flag indicating if the modal is open.\n * @param {function} props.handleClose - Callback function to close the modal.\n */\nfunction EventsExceptionModal({ id, title, open, handleClose, dataTestId }) {\n const { translate } = useTranslateProvider();\n\n const [eventException, setEventException] = useState(null);\n const [isLoading, setIsLoading] = useState(false);\n useEffect(() => {\n if (id) {\n loadInitialData(id);\n }\n }, [id]);\n\n /**\n * Loads initial event exception data based on the provided ID.\n *\n * @async\n * @function loadInitialData\n * @param {number} id - The ID of the event configuration to retrieve exceptions for.\n * @throws Will show a toast message on error.\n */\n const loadInitialData = async (id) => {\n try {\n setIsLoading(true);\n const resposne = await execute(\n {\n code: \"event_config_retrieve_exceptions_by_config_id\",\n parameters: {\n configId: Number(id),\n },\n },\n { showLoader: false }\n );\n setIsLoading(false);\n const result = resposne?.data?.result;\n if (result?.length > 0) {\n setEventException(result[0]);\n } else {\n setEventException(null);\n }\n } catch {\n showToast({ message: \"Error in Showing Exception\", type: \"error\" });\n }\n };\n return (\n <Modal\n open={open}\n onClose={handleClose}\n sx={{\n \"& .MuiBackdrop-root\": {\n backgroundColor: \"rgba(0, 0, 0, 0.1)\", // Set the modal overlay background color to transparent\n },\n }}\n data-testid={dataTestId}\n >\n <Grid\n container\n className=\"absolute top-[5%] left-[11%] w-[80%] bg-white shadow-md max-h-[80vh] overflow-y-auto\"\n data-testid=\"eventsexceptionmodal-grid-container\"\n >\n <Grid\n className=\"manageeventconfiguration-modal-header p-2.5 px-5 flex justify-between border-b w-full\"\n data-testid=\"eventsexceptionmodal-header\"\n >\n <Typography\n variant=\"body1\"\n className=\"font-medium text-lg text-customBlue\"\n data-testid=\"eventsexceptionmodal-title\"\n >\n {title}\n </Typography>\n <IconButton\n size=\"small\"\n onClick={handleClose}\n data-testid=\"eventsexceptionmodal-close-button\"\n >\n <FontAwesomeIcon icon={faXmark} />\n </IconButton>\n </Grid>\n <Grid\n item\n className=\"border-b border-gray-300 w-full p-2.5\"\n data-testid=\"eventsexceptionmodal-content\"\n >\n <EventExceptionModalSkeleton isLoading={isLoading}>\n {eventException && !isLoading && (\n <>\n <Typography\n variant=\"h6\"\n data-testid=\"eventsexceptionmodal-exception-header\"\n className=\"text-customBlue\">\n <strong>{translate(\"Exception\")}:</strong>\n </Typography>\n <pre\n className=\"whitespace-pre-wrap break-words m-0\"\n data-testid=\"eventsexceptionmodal-exception-string\"\n >\n {eventException?.exceptionString}\n </pre>\n\n {eventException?.systemTriggerOn && (\n <Typography\n variant=\"body1\"\n className=\"mt-2\"\n data-testid=\"eventsexceptionmodal-triggered-on\"\n >\n <strong>{translate(\"Triggered On\")}:</strong>{\" \"}\n {new Date(eventException?.systemTriggerOn).toLocaleString()}\n </Typography>\n )}\n\n {eventException?.processedOn && (\n <Typography\n variant=\"body1\"\n data-testid=\"eventsexceptionmodal-processed-on\"\n >\n <strong>{translate(\"Processed On\")}:</strong>{\" \"}\n {new Date(eventException?.processedOn).toLocaleString()}\n </Typography>\n )}\n </>\n )}\n {!eventException && !isLoading && (\n <Typography\n variant=\"body1\"\n className=\"m-1\"\n data-testid=\"eventsexceptionmodal-no-exception\"\n >\n {translate(\"No Exception Occurred\")}\n </Typography>\n )}\n </EventExceptionModalSkeleton>\n </Grid>\n <Grid\n item\n className=\"border-b border-gray-300 pb-[1px] pr-2.5 w-full\"\n data-testid=\"eventsexceptionmodal-footer\"\n >\n <Stack\n direction=\"row\"\n spacing={2}\n justifyContent=\"flex-end\"\n mt={1}\n mb={1}\n >\n <Grid>\n <Button\n variant=\"contained\"\n color=\"secondary\"\n className=\"ml-2\"\n onClick={handleClose}\n data-testid=\"eventsexceptionmodal-close-button-action\"\n >\n <Typography variant=\"body2\">{translate(\"Close\")}</Typography>\n </Button>\n </Grid>\n </Stack>\n </Grid>\n </Grid>\n </Modal>\n );\n}\n\nexport default EventsExceptionModal;\n\nEventsExceptionModal.propTypes = {\n open: PropTypes.any,\n handleClose: PropTypes.any,\n id: PropTypes.any,\n title: PropTypes.any,\n dataTestId: PropTypes.any,\n};\n"],"names":["EventsExceptionModal","id","title","open","handleClose","dataTestId","translate","useTranslateProvider","eventException","setEventException","useState","isLoading","setIsLoading","useEffect","loadInitialData","resposne","execute","result","_a","showToast","jsx","Modal","jsxs","Grid","Typography","IconButton","FontAwesomeIcon","faXmark","EventExceptionModalSkeleton","Fragment","Stack","Button","PropTypes"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EventsExceptionModal-B2SRrnB1.js","sources":["../src/views/Events/EventsExceptionModal.jsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Button, IconButton, Modal, Stack, Typography } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid2\";\nimport { execute } from \"@/common/services/GlobalApis\";\nimport { showToast } from \"@/common/toaster/toaster\";\nimport { useTranslateProvider } from \"@/common/languageTranslator/TranslationContext\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faXmark } from \"@fortawesome/free-solid-svg-icons\";\nimport { EventExceptionModalSkeleton } from \"./Skeletons/EventsSkeleton\";\n\n/**\n * Modal component for displaying event exceptions.\n *\n * @module EventsExceptionModal\n * @function\n *\n * @param {Object} props - The component props.\n * @param {number} props.id - The identifier for the event configuration.\n * @param {string} props.title - The title of the modal.\n * @param {boolean} props.open - A flag indicating if the modal is open.\n * @param {function} props.handleClose - Callback function to close the modal.\n */\nfunction EventsExceptionModal({ id, title, open, handleClose, dataTestId }) {\n const { translate } = useTranslateProvider();\n\n const [eventException, setEventException] = useState(null);\n const [isLoading, setIsLoading] = useState(false);\n useEffect(() => {\n if (id) {\n loadInitialData(id);\n }\n }, [id]);\n\n /**\n * Loads initial event exception data based on the provided ID.\n *\n * @async\n * @function loadInitialData\n * @param {number} id - The ID of the event configuration to retrieve exceptions for.\n * @throws Will show a toast message on error.\n */\n const loadInitialData = async (id) => {\n try {\n setIsLoading(true);\n const resposne = await execute(\n {\n code: \"event_config_retrieve_exceptions_by_config_id\",\n parameters: {\n configId: Number(id),\n },\n },\n { showLoader: false }\n );\n setIsLoading(false);\n const result = resposne?.data?.result;\n if (result?.length > 0) {\n setEventException(result[0]);\n } else {\n setEventException(null);\n }\n } catch {\n showToast({ message: \"Error in Showing Exception\", type: \"error\" });\n }\n };\n return (\n <Modal\n open={open}\n onClose={handleClose}\n sx={{\n \"& .MuiBackdrop-root\": {\n backgroundColor: \"rgba(0, 0, 0, 0.1)\", // Set the modal overlay background color to transparent\n },\n }}\n data-testid={dataTestId}\n >\n <Grid\n container\n className=\"absolute top-[5%] left-[11%] w-[80%] bg-white shadow-md max-h-[80vh] overflow-y-auto\"\n data-testid=\"eventsexceptionmodal-grid-container\"\n >\n <Grid\n className=\"manageeventconfiguration-modal-header p-2.5 px-5 flex justify-between border-b w-full\"\n data-testid=\"eventsexceptionmodal-header\"\n >\n <Typography\n variant=\"body1\"\n className=\"font-medium text-lg text-customBlue\"\n data-testid=\"eventsexceptionmodal-title\"\n >\n {title}\n </Typography>\n <IconButton\n size=\"small\"\n onClick={handleClose}\n data-testid=\"eventsexceptionmodal-close-button\"\n >\n <FontAwesomeIcon icon={faXmark} />\n </IconButton>\n </Grid>\n <Grid\n item\n className=\"border-b border-gray-300 w-full p-2.5\"\n data-testid=\"eventsexceptionmodal-content\"\n >\n <EventExceptionModalSkeleton isLoading={isLoading}>\n {eventException && !isLoading && (\n <>\n <Typography\n variant=\"h6\"\n data-testid=\"eventsexceptionmodal-exception-header\"\n className=\"text-customBlue\">\n <strong>{translate(\"Exception\")}:</strong>\n </Typography>\n <pre\n className=\"whitespace-pre-wrap break-words m-0\"\n data-testid=\"eventsexceptionmodal-exception-string\"\n >\n {eventException?.exceptionString}\n </pre>\n\n {eventException?.systemTriggerOn && (\n <Typography\n variant=\"body1\"\n className=\"mt-2\"\n data-testid=\"eventsexceptionmodal-triggered-on\"\n >\n <strong>{translate(\"Triggered On\")}:</strong>{\" \"}\n {new Date(eventException?.systemTriggerOn).toLocaleString()}\n </Typography>\n )}\n\n {eventException?.processedOn && (\n <Typography\n variant=\"body1\"\n data-testid=\"eventsexceptionmodal-processed-on\"\n >\n <strong>{translate(\"Processed On\")}:</strong>{\" \"}\n {new Date(eventException?.processedOn).toLocaleString()}\n </Typography>\n )}\n </>\n )}\n {!eventException && !isLoading && (\n <Typography\n variant=\"body1\"\n className=\"m-1\"\n data-testid=\"eventsexceptionmodal-no-exception\"\n >\n {translate(\"No Exception Occurred\")}\n </Typography>\n )}\n </EventExceptionModalSkeleton>\n </Grid>\n <Grid\n item\n className=\"border-b border-gray-300 pb-[1px] pr-2.5 w-full\"\n data-testid=\"eventsexceptionmodal-footer\"\n >\n <Stack\n direction=\"row\"\n spacing={2}\n justifyContent=\"flex-end\"\n mt={1}\n mb={1}\n >\n <Grid>\n <Button\n variant=\"contained\"\n color=\"secondary\"\n className=\"ml-2\"\n onClick={handleClose}\n data-testid=\"eventsexceptionmodal-close-button-action\"\n >\n <Typography variant=\"body2\">{translate(\"Close\")}</Typography>\n </Button>\n </Grid>\n </Stack>\n </Grid>\n </Grid>\n </Modal>\n );\n}\n\nexport default EventsExceptionModal;\n\nEventsExceptionModal.propTypes = {\n open: PropTypes.any,\n handleClose: PropTypes.any,\n id: PropTypes.any,\n title: PropTypes.any,\n dataTestId: PropTypes.any,\n};\n"],"names":["EventsExceptionModal","id","title","open","handleClose","dataTestId","translate","useTranslateProvider","eventException","setEventException","useState","isLoading","setIsLoading","useEffect","loadInitialData","resposne","execute","result","_a","showToast","jsx","Modal","jsxs","Grid","Typography","IconButton","FontAwesomeIcon","faXmark","EventExceptionModalSkeleton","Fragment","Stack","Button","PropTypes"],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { jsxs as a, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import l from "prop-types";
|
|
3
|
+
import "react";
|
|
4
|
+
import { useSelector as d } from "react-redux";
|
|
5
|
+
import { getUseSkeleton as r } from "@/store/reducers/SkeletonReducer";
|
|
6
|
+
const g = () => d(r) ? /* @__PURE__ */ a("div", { className: "flex flex-col gap-2", children: [
|
|
7
|
+
/* @__PURE__ */ a("div", { className: "flex justify-between gap-2 mb-[10px]", children: [
|
|
8
|
+
/* @__PURE__ */ e("div", { className: "bg-gray-300 animate-pulse rounded-sm w-[130px] h-[40px]" }),
|
|
9
|
+
/* @__PURE__ */ a("div", { className: "flex space-x-2", children: [
|
|
10
|
+
/* @__PURE__ */ e("div", { className: "bg-gray-300 animate-pulse rounded-sm w-[130px] h-[40px]" }),
|
|
11
|
+
/* @__PURE__ */ e("div", { className: "bg-gray-300 animate-pulse rounded-sm w-[130px] h-[40px]" }),
|
|
12
|
+
/* @__PURE__ */ e("div", { className: "bg-gray-300 animate-pulse rounded-sm w-[130px] h-[40px]" }),
|
|
13
|
+
/* @__PURE__ */ e("div", { className: "bg-gray-300 animate-pulse rounded-sm w-[130px] h-[40px]" })
|
|
14
|
+
] })
|
|
15
|
+
] }),
|
|
16
|
+
/* @__PURE__ */ e("div", { className: "bg-gray-300 animate-pulse rounded-sm w-full h-100" })
|
|
17
|
+
] }) : null, i = ({ children: s, isLoading: n }) => !d(r) || !n ? s : /* @__PURE__ */ a("div", { className: "my-6", children: [
|
|
18
|
+
/* @__PURE__ */ e("div", { className: "bg-gray-300 animate-pulse rounded-sm w-[250px] h-[40px] ml-5" }),
|
|
19
|
+
/* @__PURE__ */ a("div", { className: "flex gap-10 flex-wrap p-5", children: [
|
|
20
|
+
/* @__PURE__ */ e("div", { className: "bg-gray-300 animate-pulse rounded-sm w-[45%] h-[40px]" }),
|
|
21
|
+
/* @__PURE__ */ e("div", { className: "bg-gray-300 animate-pulse rounded-sm w-[45%] h-[120px]" }),
|
|
22
|
+
/* @__PURE__ */ e("div", { className: "bg-gray-300 animate-pulse rounded-sm w-[45%] h-[40px]" })
|
|
23
|
+
] }),
|
|
24
|
+
/* @__PURE__ */ a("div", { className: "flex flex-col p-5", children: [
|
|
25
|
+
/* @__PURE__ */ a("div", { className: "flex justify-between", children: [
|
|
26
|
+
/* @__PURE__ */ e("div", { className: "bg-gray-300 animate-pulse rounded-sm w-[150px] h-[40px]" }),
|
|
27
|
+
/* @__PURE__ */ e("div", { className: "bg-gray-300 animate-pulse rounded-sm w-[90px] h-[40px]" })
|
|
28
|
+
] }),
|
|
29
|
+
/* @__PURE__ */ e("div", { className: "bg-gray-300 animate-pulse rounded-sm h-[40px] mt-10" })
|
|
30
|
+
] }),
|
|
31
|
+
/* @__PURE__ */ a("div", { className: "flex justify-end gap-5 pr-5", children: [
|
|
32
|
+
/* @__PURE__ */ e("div", { className: "bg-gray-300 animate-pulse rounded-sm w-[90px] h-[40px]" }),
|
|
33
|
+
/* @__PURE__ */ e("div", { className: "bg-gray-300 animate-pulse rounded-sm w-[90px] h-[40px]" })
|
|
34
|
+
] })
|
|
35
|
+
] });
|
|
36
|
+
i.propTypes = {
|
|
37
|
+
children: l.any,
|
|
38
|
+
isLoading: l.any
|
|
39
|
+
};
|
|
40
|
+
const p = ({ children: s, isLoading: n }) => !d(r) || !n ? s : /* @__PURE__ */ a("div", { className: "w-full h-[220px] flex flex-col justify-between animate-pulse", children: [
|
|
41
|
+
/* @__PURE__ */ e("div", { className: "bg-gray-300 rounded-sm h-[28px] w-[180px] mb-4" }),
|
|
42
|
+
/* @__PURE__ */ e("div", { className: "bg-gray-300 rounded-sm h-[80px] w-full mb-4" }),
|
|
43
|
+
/* @__PURE__ */ a("div", { className: "flex flex-row space-x-4 mb-2", children: [
|
|
44
|
+
/* @__PURE__ */ e("div", { className: "bg-gray-300 rounded-sm h-[20px] w-[140px]" }),
|
|
45
|
+
/* @__PURE__ */ e("div", { className: "bg-gray-300 rounded-sm h-[20px] w-[180px]" })
|
|
46
|
+
] }),
|
|
47
|
+
/* @__PURE__ */ a("div", { className: "flex flex-row space-x-4", children: [
|
|
48
|
+
/* @__PURE__ */ e("div", { className: "bg-gray-300 rounded-sm h-[20px] w-[140px]" }),
|
|
49
|
+
/* @__PURE__ */ e("div", { className: "bg-gray-300 rounded-sm h-[20px] w-[180px]" })
|
|
50
|
+
] })
|
|
51
|
+
] });
|
|
52
|
+
p.propTypes = {
|
|
53
|
+
children: l.any,
|
|
54
|
+
isLoading: l.any
|
|
55
|
+
};
|
|
56
|
+
export {
|
|
57
|
+
g as E,
|
|
58
|
+
i as M,
|
|
59
|
+
p as a
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=EventsSkeleton-BIcPks4T.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventsSkeleton-BIcPks4T.js","sources":["../src/views/Events/Skeletons/EventsSkeleton.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 EventConfigurationSkeleton = () => {\n const useSkeleton = useSelector(getUseSkeleton);\n if (!useSkeleton) {\n return null;\n }\n return (\n <div className=\"flex flex-col gap-2\">\n <div className=\"flex justify-between gap-2 mb-[10px]\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[130px] h-[40px]\"></div>\n <div className=\"flex space-x-2\">\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-[130px] h-[40px]\"></div>\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-[130px] h-[40px]\"></div>\n </div>\n </div>\n\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-full h-100\"></div>\n </div>\n );\n};\n\nexport const ManageEventConfigurationSkeleton = ({ 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=\"my-6\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[250px] h-[40px] ml-5\"></div>\n <div className=\"flex gap-10 flex-wrap p-5\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[45%] h-[40px]\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[45%] h-[120px]\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[45%] h-[40px]\"></div>\n </div>\n <div className=\"flex flex-col p-5\">\n <div className=\"flex justify-between\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[150px] h-[40px]\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[90px] h-[40px]\"></div>\n </div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm h-[40px] mt-10\"></div>\n </div>\n <div className=\"flex justify-end gap-5 pr-5\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[90px] h-[40px]\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[90px] h-[40px]\"></div>\n </div>\n </div>\n );\n};\n\nManageEventConfigurationSkeleton.propTypes = {\n children: PropTypes.any,\n isLoading: PropTypes.any,\n};\n\nexport const EventExceptionModalSkeleton = ({ 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 h-[220px] flex flex-col justify-between animate-pulse\">\n <div className=\"bg-gray-300 rounded-sm h-[28px] w-[180px] mb-4\"></div>\n <div className=\"bg-gray-300 rounded-sm h-[80px] w-full mb-4\"></div>\n <div className=\"flex flex-row space-x-4 mb-2\">\n <div className=\"bg-gray-300 rounded-sm h-[20px] w-[140px]\"></div>\n <div className=\"bg-gray-300 rounded-sm h-[20px] w-[180px]\"></div>\n </div>\n <div className=\"flex flex-row space-x-4\">\n <div className=\"bg-gray-300 rounded-sm h-[20px] w-[140px]\"></div>\n <div className=\"bg-gray-300 rounded-sm h-[20px] w-[180px]\"></div>\n </div>\n </div>\n );\n};\n\nEventExceptionModalSkeleton.propTypes = {\n children: PropTypes.any,\n isLoading: PropTypes.any,\n};\n"],"names":["EventConfigurationSkeleton","useSelector","getUseSkeleton","jsxs","jsx","ManageEventConfigurationSkeleton","children","isLoading","PropTypes","EventExceptionModalSkeleton"],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { S as P, x as q } from "./ImmunizationConfigurationBase-Di1KO3oW.js";
|
|
2
|
+
import { useState as i, useEffect as g, useMemo as z } from "react";
|
|
3
|
+
import { jsx as p, jsxs as E, Fragment as F } from "react/jsx-runtime";
|
|
4
|
+
import { Autocomplete as S, TextField as j, CircularProgress as v } from "@mui/material";
|
|
5
|
+
function $({ value: t, onChange: s, label: y = "Facility", required: x = !1, disabled: T = !1, error: O = !1, helperText: b = "", onBlur: C, size: w = "small", fullWidth: A = !0 }) {
|
|
6
|
+
let [u, c] = i(!1), [n, m] = i([]), [d, h] = i(!1), [f, I] = i(!1), [l, o] = i(null);
|
|
7
|
+
return g(() => {
|
|
8
|
+
if (!t) {
|
|
9
|
+
o(null);
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
if ((l == null ? void 0 : l.id) === t) return;
|
|
13
|
+
let e = n.find((a) => a.id === t);
|
|
14
|
+
if (e) {
|
|
15
|
+
o(e);
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
let r = !1;
|
|
19
|
+
return (async () => {
|
|
20
|
+
try {
|
|
21
|
+
let a = await P([t]);
|
|
22
|
+
!r && a[0] && o(a[0]);
|
|
23
|
+
} catch {
|
|
24
|
+
}
|
|
25
|
+
})(), () => {
|
|
26
|
+
r = !0;
|
|
27
|
+
};
|
|
28
|
+
}, [t]), g(() => {
|
|
29
|
+
if (!u || f) return;
|
|
30
|
+
let e = !1;
|
|
31
|
+
return h(!0), (async () => {
|
|
32
|
+
try {
|
|
33
|
+
let r = await q();
|
|
34
|
+
e || m(r);
|
|
35
|
+
} catch {
|
|
36
|
+
e || m([]);
|
|
37
|
+
} finally {
|
|
38
|
+
e || (h(!1), I(!0));
|
|
39
|
+
}
|
|
40
|
+
})(), () => {
|
|
41
|
+
e = !0;
|
|
42
|
+
};
|
|
43
|
+
}, [u, f]), /* @__PURE__ */ p(S, {
|
|
44
|
+
size: w,
|
|
45
|
+
fullWidth: A,
|
|
46
|
+
disabled: T,
|
|
47
|
+
open: u,
|
|
48
|
+
onOpen: () => c(!0),
|
|
49
|
+
onClose: () => c(!1),
|
|
50
|
+
value: l,
|
|
51
|
+
isOptionEqualToValue: (e, r) => (e == null ? void 0 : e.id) === (r == null ? void 0 : r.id),
|
|
52
|
+
getOptionLabel: (e) => (e == null ? void 0 : e.name) ?? "",
|
|
53
|
+
options: z(() => !l || n.some((e) => e.id === l.id) ? n : [l, ...n], [n, l]),
|
|
54
|
+
loading: d,
|
|
55
|
+
onChange: (e, r) => {
|
|
56
|
+
o(r ?? null), s == null || s((r == null ? void 0 : r.id) ?? "");
|
|
57
|
+
},
|
|
58
|
+
noOptionsText: d ? "Loading…" : f && n.length === 0 ? "No facilities assigned to your account" : "No matches",
|
|
59
|
+
renderInput: (e) => /* @__PURE__ */ p(j, {
|
|
60
|
+
...e,
|
|
61
|
+
required: x,
|
|
62
|
+
label: y,
|
|
63
|
+
error: O,
|
|
64
|
+
helperText: b || "Only facilities assigned to your account are shown. Type to filter.",
|
|
65
|
+
onBlur: C,
|
|
66
|
+
InputProps: {
|
|
67
|
+
...e.InputProps,
|
|
68
|
+
endAdornment: /* @__PURE__ */ E(F, { children: [d ? /* @__PURE__ */ p(v, {
|
|
69
|
+
color: "inherit",
|
|
70
|
+
size: 16
|
|
71
|
+
}) : null, e.InputProps.endAdornment] })
|
|
72
|
+
}
|
|
73
|
+
})
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
export {
|
|
77
|
+
$ as d
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=FacilityPicker-BiZeupmP-CyPHmj6b.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FacilityPicker-BiZeupmP-CyPHmj6b.js","sources":["../../productManagement/dist/FacilityPicker-BiZeupmP.js"],"sourcesContent":["import { P as e, v as t } from \"./settingsStore-BifOsjlB.js\";\nimport { useEffect as n, useMemo as r, useState as i } from \"react\";\nimport { Fragment as a, jsx as o, jsxs as s } from \"react/jsx-runtime\";\nimport { Autocomplete as c, CircularProgress as l, TextField as u } from \"@mui/material\";\n//#region src/components/FacilityPicker.jsx\nfunction d({ value: d, onChange: f, label: p = \"Facility\", required: m = !1, disabled: h = !1, error: g = !1, helperText: _ = \"\", onBlur: v, size: y = \"small\", fullWidth: b = !0 }) {\n\tlet [x, S] = i(!1), [C, w] = i([]), [T, E] = i(!1), [D, O] = i(!1), [k, A] = i(null);\n\treturn n(() => {\n\t\tif (!d) {\n\t\t\tA(null);\n\t\t\treturn;\n\t\t}\n\t\tif (k?.id === d) return;\n\t\tlet e = C.find((e) => e.id === d);\n\t\tif (e) {\n\t\t\tA(e);\n\t\t\treturn;\n\t\t}\n\t\tlet n = !1;\n\t\treturn (async () => {\n\t\t\ttry {\n\t\t\t\tlet e = await t([d]);\n\t\t\t\t!n && e[0] && A(e[0]);\n\t\t\t} catch {}\n\t\t})(), () => {\n\t\t\tn = !0;\n\t\t};\n\t}, [d]), n(() => {\n\t\tif (!x || D) return;\n\t\tlet t = !1;\n\t\treturn E(!0), (async () => {\n\t\t\ttry {\n\t\t\t\tlet n = await e();\n\t\t\t\tt || w(n);\n\t\t\t} catch {\n\t\t\t\tt || w([]);\n\t\t\t} finally {\n\t\t\t\tt || (E(!1), O(!0));\n\t\t\t}\n\t\t})(), () => {\n\t\t\tt = !0;\n\t\t};\n\t}, [x, D]), /* @__PURE__ */ o(c, {\n\t\tsize: y,\n\t\tfullWidth: b,\n\t\tdisabled: h,\n\t\topen: x,\n\t\tonOpen: () => S(!0),\n\t\tonClose: () => S(!1),\n\t\tvalue: k,\n\t\tisOptionEqualToValue: (e, t) => e?.id === t?.id,\n\t\tgetOptionLabel: (e) => e?.name ?? \"\",\n\t\toptions: r(() => !k || C.some((e) => e.id === k.id) ? C : [k, ...C], [C, k]),\n\t\tloading: T,\n\t\tonChange: (e, t) => {\n\t\t\tA(t ?? null), f?.(t?.id ?? \"\");\n\t\t},\n\t\tnoOptionsText: T ? \"Loading…\" : D && C.length === 0 ? \"No facilities assigned to your account\" : \"No matches\",\n\t\trenderInput: (e) => /* @__PURE__ */ o(u, {\n\t\t\t...e,\n\t\t\trequired: m,\n\t\t\tlabel: p,\n\t\t\terror: g,\n\t\t\thelperText: _ || \"Only facilities assigned to your account are shown. Type to filter.\",\n\t\t\tonBlur: v,\n\t\t\tInputProps: {\n\t\t\t\t...e.InputProps,\n\t\t\t\tendAdornment: /* @__PURE__ */ s(a, { children: [T ? /* @__PURE__ */ o(l, {\n\t\t\t\t\tcolor: \"inherit\",\n\t\t\t\t\tsize: 16\n\t\t\t\t}) : null, e.InputProps.endAdornment] })\n\t\t\t}\n\t\t})\n\t});\n}\n//#endregion\nexport { d as t };\n\n//# sourceMappingURL=FacilityPicker-BiZeupmP.js.map"],"names":["d","f","p","m","h","g","_","v","y","b","x","S","i","C","w","T","E","D","O","k","A","n","e","t","o","c","r","u","s","a","l"],"mappings":"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"}
|