@argusoft/medplat-core 1.0.25 → 1.0.27
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-CupmTG3T.js → AccessRights-CHu27ZOw.js} +220 -217
- package/dist/AccessRights-CHu27ZOw.js.map +1 -0
- package/dist/{AddEditQueryBuilder-C8ZSkOF0.js → AddEditQueryBuilder-Brdnm6rQ.js} +2 -2
- package/dist/{AddEditQueryBuilder-C8ZSkOF0.js.map → AddEditQueryBuilder-Brdnm6rQ.js.map} +1 -1
- package/dist/{AddFeatures-CqE3v0BN.js → AddFeatures-C0Z29oSd.js} +2 -2
- package/dist/{AddFeatures-CqE3v0BN.js.map → AddFeatures-C0Z29oSd.js.map} +1 -1
- package/dist/{AddLabelModal-CB8E8cYG.js → AddLabelModal-DFllBVcd.js} +2 -2
- package/dist/{AddLabelModal-CB8E8cYG.js.map → AddLabelModal-DFllBVcd.js.map} +1 -1
- package/dist/{AppModal-BKgIwe1h.js → AppModal-CtG2GjD_.js} +2 -2
- package/dist/{AppModal-BKgIwe1h.js.map → AppModal-CtG2GjD_.js.map} +1 -1
- package/dist/{ChangePasswordModalCore-DTYWRTa-.js → ChangePasswordModalCore-CDxkeIIM.js} +2 -2
- package/dist/{ChangePasswordModalCore-DTYWRTa-.js.map → ChangePasswordModalCore-CDxkeIIM.js.map} +1 -1
- package/dist/{EventConfigurations-lPcZGpLi.js → EventConfigurations-kNtAj_WM.js} +76 -76
- package/dist/EventConfigurations-kNtAj_WM.js.map +1 -0
- package/dist/{FeatureMenu-DUZL32RI.js → FeatureMenu-jl7-Tk6y.js} +49 -49
- package/dist/FeatureMenu-jl7-Tk6y.js.map +1 -0
- package/dist/FileSaver.min-CN9EpL2h.js.map +1 -1
- package/dist/{ImmunizationConfigurationsList-K2ddBpPJ.js → ImmunizationConfigurationsList-DdSZicTP.js} +72 -73
- package/dist/{ImmunizationConfigurationsList-K2ddBpPJ.js.map → ImmunizationConfigurationsList-DdSZicTP.js.map} +1 -1
- package/dist/ImmunizationSkeleton-D2tdv5k-.js.map +1 -1
- package/dist/{LanguagesModal-CX3oS8rk.js → LanguagesModal-D6VfaGrl.js} +2 -2
- package/dist/{LanguagesModal-CX3oS8rk.js.map → LanguagesModal-D6VfaGrl.js.map} +1 -1
- package/dist/{ManageNotification-CSl02Wq7.js → ManageNotification-CaBAOhji.js} +2 -2
- package/dist/ManageNotification-CaBAOhji.js.map +1 -0
- package/dist/{ManageRole-B9bs_T00.js → ManageRole-CGYfglpo.js} +2 -2
- package/dist/{ManageRole-B9bs_T00.js.map → ManageRole-CGYfglpo.js.map} +1 -1
- package/dist/{ManageTranslation-D9IScGhk.js → ManageTranslation-B4C9-lWD.js} +74 -74
- package/dist/ManageTranslation-B4C9-lWD.js.map +1 -0
- package/dist/{ManageUser-AB3_Vfp_.js → ManageUser-AY1EUDLI.js} +600 -601
- package/dist/ManageUser-AY1EUDLI.js.map +1 -0
- package/dist/{NotificationList-D1U1LYnz.js → NotificationList-C3Vb_jKU.js} +73 -73
- package/dist/NotificationList-C3Vb_jKU.js.map +1 -0
- package/dist/OtherTypeEventConfigModal-BeG1GrUi.js.map +1 -1
- package/dist/{QueryBuilder-DI0wCJbz.js → QueryBuilder-z7eqfd7D.js} +117 -119
- package/dist/QueryBuilder-z7eqfd7D.js.map +1 -0
- package/dist/{QueryManagement-CRykYGum.js → QueryManagement-BIhEDKuA.js} +114 -114
- package/dist/QueryManagement-BIhEDKuA.js.map +1 -0
- package/dist/{RoleManagement-BIiW9uTq.js → RoleManagement-BPl2cE27.js} +99 -99
- package/dist/RoleManagement-BPl2cE27.js.map +1 -0
- package/dist/{SubMenu-CM_4wNCR.js → SubMenu-DYxAPH2Z.js} +34 -34
- package/dist/SubMenu-DYxAPH2Z.js.map +1 -0
- package/dist/{UserList-2gGuDgNa.js → UserList-Bc8gYxRL.js} +397 -400
- package/dist/UserList-Bc8gYxRL.js.map +1 -0
- package/dist/{WidgetList-B7X8Awkg.js → WidgetList-Dw_FmbbE.js} +26 -26
- package/dist/WidgetList-Dw_FmbbE.js.map +1 -0
- package/dist/i18next-CTOWN_jH.js.map +1 -1
- package/dist/index.css +1 -1
- package/dist/index.js +10 -10
- package/dist/xlsx.min-D1LFqt_b.js.map +1 -1
- package/package.json +1 -1
- package/dist/AccessRights-CupmTG3T.js.map +0 -1
- package/dist/EventConfigurations-lPcZGpLi.js.map +0 -1
- package/dist/FeatureMenu-DUZL32RI.js.map +0 -1
- package/dist/ManageNotification-CSl02Wq7.js.map +0 -1
- package/dist/ManageTranslation-D9IScGhk.js.map +0 -1
- package/dist/ManageUser-AB3_Vfp_.js.map +0 -1
- package/dist/NotificationList-D1U1LYnz.js.map +0 -1
- package/dist/QueryBuilder-DI0wCJbz.js.map +0 -1
- package/dist/QueryManagement-CRykYGum.js.map +0 -1
- package/dist/RoleManagement-BIiW9uTq.js.map +0 -1
- package/dist/SubMenu-CM_4wNCR.js.map +0 -1
- package/dist/UserList-2gGuDgNa.js.map +0 -1
- package/dist/WidgetList-B7X8Awkg.js.map +0 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { jsx as o, jsxs as
|
|
2
|
-
import { useState as
|
|
3
|
-
import
|
|
4
|
-
import { showToast as
|
|
5
|
-
import { r as
|
|
6
|
-
import
|
|
7
|
-
import { Box as
|
|
1
|
+
import { jsx as o, jsxs as h, Fragment as Re } from "react/jsx-runtime";
|
|
2
|
+
import { useState as a, useCallback as De, useMemo as S, useEffect as D, Suspense as V, lazy as ee } from "react";
|
|
3
|
+
import Fe from "moment";
|
|
4
|
+
import { showToast as N } from "@/common/toaster/toaster";
|
|
5
|
+
import { r as Me, E as Be, t as _e, a as Qe } from "./EventsSkeleton-8iiETGcf.js";
|
|
6
|
+
import C from "@/common/services/util/GeneralUtil";
|
|
7
|
+
import { Box as p, Card as ze, Typography as X, alpha as x, FormControl as Pe, Select as Ue, MenuItem as $e, Button as K, TextField as je } from "@mui/material";
|
|
8
8
|
import Z from "@mui/material/Grid2";
|
|
9
9
|
import Ye from "@/views/custom-components/CustomConfirmationModal";
|
|
10
10
|
import qe from "@/common/syncWithServer/SyncWithServerDialog";
|
|
@@ -14,22 +14,22 @@ import Ge from "@/hooks/useTrackEvent";
|
|
|
14
14
|
import { useTranslateProvider as Ve } from "@/common/languageTranslator/TranslationContext";
|
|
15
15
|
import Xe from "@/views/custom-components/CustomizedTable/CustomizedTableV2";
|
|
16
16
|
import { faRotateRight as Ke, faPen as Ze, faBars as et } from "@fortawesome/free-solid-svg-icons";
|
|
17
|
-
import { FontAwesomeIcon as
|
|
17
|
+
import { FontAwesomeIcon as F } from "@fortawesome/react-fontawesome";
|
|
18
18
|
import './EventConfigurations.css';const tt = ee(() => import("./ShowFlywayQuery-DVRCd384.js")), nt = ee(() => import("./EventsExceptionModal-D4Bf1ilS.js"));
|
|
19
|
-
function
|
|
20
|
-
const
|
|
19
|
+
function xt() {
|
|
20
|
+
const M = Je(), A = Ge(), [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 } = Ve(), [R, E] = a(!1), [i, ge] = a({}), m = "#1976d2", w = "#666666", v = "#e0e0e0", ye = async () => {
|
|
21
21
|
A("button_click", {
|
|
22
22
|
button_name: "refresh-events-button",
|
|
23
23
|
button_type: "reload",
|
|
24
24
|
button_id: "eventconfiguration-refresh-button"
|
|
25
|
-
}),
|
|
26
|
-
}, Y =
|
|
25
|
+
}), T(c);
|
|
26
|
+
}, Y = De(
|
|
27
27
|
(e) => {
|
|
28
28
|
const n = d == null ? void 0 : d.filter(
|
|
29
29
|
(t) => t.name.toLowerCase().includes(e.toLowerCase())
|
|
30
30
|
).map((t) => ({
|
|
31
31
|
...t,
|
|
32
|
-
completionTime: t.completionTime ?
|
|
32
|
+
completionTime: t.completionTime ? Fe(t.completionTime).format("DD-MM-YYYY HH:mm") : "NA"
|
|
33
33
|
}));
|
|
34
34
|
B(n), A("search_tracking", {
|
|
35
35
|
searchTerm: e,
|
|
@@ -48,12 +48,12 @@ function Ct() {
|
|
|
48
48
|
}, q = S(
|
|
49
49
|
() => ve(Y, 500),
|
|
50
50
|
[Y]
|
|
51
|
-
),
|
|
51
|
+
), Ce = (e) => {
|
|
52
52
|
const { value: n } = e.target;
|
|
53
|
-
|
|
53
|
+
ie(n), q(n);
|
|
54
54
|
}, H = async () => {
|
|
55
|
-
|
|
56
|
-
},
|
|
55
|
+
k(!0), b((e) => !e);
|
|
56
|
+
}, xe = [
|
|
57
57
|
{
|
|
58
58
|
field: "name",
|
|
59
59
|
label: "Name",
|
|
@@ -101,27 +101,27 @@ function Ct() {
|
|
|
101
101
|
fe(n[0]);
|
|
102
102
|
}, Ee = () => {
|
|
103
103
|
L(!0), b(!0);
|
|
104
|
-
},
|
|
104
|
+
}, we = () => {
|
|
105
105
|
j((e) => !e);
|
|
106
|
-
},
|
|
106
|
+
}, Te = async () => {
|
|
107
107
|
try {
|
|
108
|
-
Q ? (b(!1), E(!0),
|
|
108
|
+
Q ? (b(!1), E(!0), k(!1), await _e(u), N({
|
|
109
109
|
message: "Event configured status changed",
|
|
110
110
|
type: "success"
|
|
111
|
-
}), await
|
|
111
|
+
}), await T(c)) : z && (b(!1), L(!1), k(!1), E(!0), await Qe(u == null ? void 0 : u.uuid), N({ message: "Event configured for run now", type: "success" }), await T(c));
|
|
112
112
|
} catch {
|
|
113
|
-
|
|
113
|
+
N({ message: "Error in toggle state", type: "error" });
|
|
114
114
|
}
|
|
115
115
|
}, J = () => {
|
|
116
|
-
|
|
116
|
+
pe(u), P(!0);
|
|
117
117
|
}, Se = () => W(() => null), G = () => {
|
|
118
118
|
W(u == null ? void 0 : u.uuid);
|
|
119
|
-
}, Ne = (e) => {
|
|
120
|
-
R(`/ui/medplat/views/config/${e == null ? void 0 : e.uuid}`);
|
|
121
119
|
}, ke = (e) => {
|
|
120
|
+
M(`/ui/medplat/views/config/${e == null ? void 0 : e.uuid}`);
|
|
121
|
+
}, Ne = (e) => {
|
|
122
122
|
let n = [], t = (e == null ? void 0 : e.state) === "ACTIVE" ? "Mark as Inactive" : "Mark as Active";
|
|
123
123
|
return (e == null ? void 0 : e.eventType) === "TIMMER_BASED" || (e == null ? void 0 : e.eventType) === "RECURSION" ? n = [
|
|
124
|
-
|
|
124
|
+
C.hasCheckRights(i == null ? void 0 : i["update.manage.event"]) && {
|
|
125
125
|
label: l(t),
|
|
126
126
|
onClick: H
|
|
127
127
|
},
|
|
@@ -129,20 +129,20 @@ function Ct() {
|
|
|
129
129
|
label: l("Sync With Server"),
|
|
130
130
|
onClick: G
|
|
131
131
|
},
|
|
132
|
-
|
|
132
|
+
C.hasCheckRights(i == null ? void 0 : i["view.manage.event.runNow"]) && {
|
|
133
133
|
label: l("Run Event Now"),
|
|
134
134
|
onClick: Ee
|
|
135
135
|
},
|
|
136
136
|
{
|
|
137
137
|
label: l("Show Exceptions"),
|
|
138
|
-
onClick:
|
|
138
|
+
onClick: we
|
|
139
139
|
},
|
|
140
140
|
{
|
|
141
141
|
label: l("Show Flyway Query"),
|
|
142
142
|
onClick: J
|
|
143
143
|
}
|
|
144
144
|
].filter(Boolean) : n = [
|
|
145
|
-
|
|
145
|
+
C.hasCheckRights(i == null ? void 0 : i["update.manage.event"]) && {
|
|
146
146
|
label: t,
|
|
147
147
|
onClick: H
|
|
148
148
|
},
|
|
@@ -155,21 +155,21 @@ function Ct() {
|
|
|
155
155
|
onClick: J
|
|
156
156
|
}
|
|
157
157
|
].filter(Boolean), [
|
|
158
|
-
|
|
158
|
+
C.hasCheckRights(i == null ? void 0 : i["update.manage.event"]) && {
|
|
159
159
|
label: "",
|
|
160
160
|
icon: /* @__PURE__ */ o(
|
|
161
|
-
|
|
161
|
+
F,
|
|
162
162
|
{
|
|
163
163
|
icon: Ze,
|
|
164
164
|
"data-testid": "event-configuration-edit-button"
|
|
165
165
|
}
|
|
166
166
|
),
|
|
167
|
-
onClick:
|
|
167
|
+
onClick: ke
|
|
168
168
|
},
|
|
169
169
|
{
|
|
170
170
|
label: "",
|
|
171
171
|
icon: /* @__PURE__ */ o(
|
|
172
|
-
|
|
172
|
+
F,
|
|
173
173
|
{
|
|
174
174
|
icon: et,
|
|
175
175
|
"data-testid": "event-configuration-menu-button"
|
|
@@ -180,11 +180,11 @@ function Ct() {
|
|
|
180
180
|
}
|
|
181
181
|
].filter(Boolean);
|
|
182
182
|
};
|
|
183
|
-
|
|
183
|
+
D(() => {
|
|
184
184
|
(async () => {
|
|
185
185
|
const { data: n } = await He("techo.notification.all");
|
|
186
186
|
n && ge(JSON.parse(n));
|
|
187
|
-
})(),
|
|
187
|
+
})(), T(!0);
|
|
188
188
|
}, []);
|
|
189
189
|
const Ae = (e) => {
|
|
190
190
|
e.sort((t, r) => t.trigerWhen === null && r.trigerWhen !== null ? -1 : r.trigerWhen === null && t.trigerWhen !== null ? 1 : r.trigerWhen < t.trigerWhen ? -1 : r.trigerWhen > t.trigerWhen ? 1 : t.day === null && r.day !== null ? -1 : r.day === null && t.day !== null || r.day < t.day ? 1 : r.day > t.day || t.hour === null && r.hour !== null ? -1 : r.hour === null && t.hour !== null || r.hour < t.hour ? 1 : r.hour > t.hour || t.minute === null && r.minute !== null ? -1 : r.minute === null && t.minute !== null || r.minute < t.minute ? 1 : r.minute > t.minute ? -1 : 0);
|
|
@@ -193,18 +193,18 @@ function Ct() {
|
|
|
193
193
|
return t.trigerWhen && (r += t.trigerWhen + " "), t.day && (r += `<strong>Day:${t.day} </strong>`), t.hour && (r += `<strong>Hour:${t.hour} </strong>`), t.minute && (r += `<strong>Minute:${t.minute}</strong>`), t.trigerWhen = r, t;
|
|
194
194
|
});
|
|
195
195
|
!O && B(n), ne(n);
|
|
196
|
-
},
|
|
196
|
+
}, T = async (e) => {
|
|
197
197
|
try {
|
|
198
198
|
E(!0);
|
|
199
|
-
const n = await
|
|
199
|
+
const n = await Me(e), t = JSON.parse(JSON.stringify(n == null ? void 0 : n.data));
|
|
200
200
|
te(n == null ? void 0 : n.data), Ae(t), E(!1);
|
|
201
201
|
} catch {
|
|
202
|
-
|
|
202
|
+
N({ message: "Error in event loading", type: "error" }), E(!1);
|
|
203
203
|
}
|
|
204
204
|
};
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
}, [c]),
|
|
205
|
+
D(() => {
|
|
206
|
+
T(c);
|
|
207
|
+
}, [c]), D(() => {
|
|
208
208
|
q(O);
|
|
209
209
|
}, [d]);
|
|
210
210
|
const Ie = S(() => f ? f.filter((e) => s !== "ALL" && e.eventType !== s ? !1 : e.status === "EXCEPTION").length : 0, [f, s]), Oe = S(() => f ? f.filter((e) => s !== "ALL" && e.eventType !== s ? !1 : e.status !== "COMPLETED").length : 0, [f, s]), Le = S(() => {
|
|
@@ -212,13 +212,13 @@ function Ct() {
|
|
|
212
212
|
const e = d.map((n) => n.eventType).filter(Boolean);
|
|
213
213
|
return ["ALL", ...new Set(e)];
|
|
214
214
|
}, [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
|
-
return
|
|
215
|
+
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
216
|
ze,
|
|
217
217
|
{
|
|
218
218
|
className: "h-80 w-150 flex justify-center items-center",
|
|
219
219
|
children: /* @__PURE__ */ o(X, { variant: "h5", className: "text-customBlue", children: "You dont have permission to view Events" })
|
|
220
220
|
}
|
|
221
|
-
) }) : /* @__PURE__ */
|
|
221
|
+
) }) : /* @__PURE__ */ h(Z, { className: "event-configuration w-[99%] my-4", children: [
|
|
222
222
|
U && /* @__PURE__ */ o(
|
|
223
223
|
qe,
|
|
224
224
|
{
|
|
@@ -241,7 +241,7 @@ function Ct() {
|
|
|
241
241
|
/* @__PURE__ */ o(V, { children: /* @__PURE__ */ o(
|
|
242
242
|
tt,
|
|
243
243
|
{
|
|
244
|
-
configuredQuery:
|
|
244
|
+
configuredQuery: he,
|
|
245
245
|
open: me,
|
|
246
246
|
onClose: () => {
|
|
247
247
|
P(!1);
|
|
@@ -254,15 +254,15 @@ function Ct() {
|
|
|
254
254
|
{
|
|
255
255
|
description: Q ? le : z ? ce : null,
|
|
256
256
|
title: "CONFIRM ACTION",
|
|
257
|
-
handleClick:
|
|
257
|
+
handleClick: Te,
|
|
258
258
|
open: de,
|
|
259
259
|
handleClose: () => {
|
|
260
|
-
b((e) => !e),
|
|
260
|
+
b((e) => !e), k(!1), L(!1);
|
|
261
261
|
},
|
|
262
262
|
dataTestId: "eventconfiguration-modal-customconfirmation"
|
|
263
263
|
}
|
|
264
264
|
),
|
|
265
|
-
|
|
265
|
+
R ? /* @__PURE__ */ o(Be, {}) : /* @__PURE__ */ h(Re, { children: [
|
|
266
266
|
/* @__PURE__ */ o(
|
|
267
267
|
Z,
|
|
268
268
|
{
|
|
@@ -270,7 +270,7 @@ function Ct() {
|
|
|
270
270
|
justifyContent: "space-between",
|
|
271
271
|
alignItems: "center",
|
|
272
272
|
className: "mb-2",
|
|
273
|
-
children: /* @__PURE__ */ o(
|
|
273
|
+
children: /* @__PURE__ */ o(p, { className: "flex flex-col md:flex-row md:items-center gap-2 md:space-x-2 w-full", children: /* @__PURE__ */ h(p, { sx: { display: "flex", alignItems: "center", gap: 1.2, flexWrap: "wrap", width: "100%" }, children: [
|
|
274
274
|
/* @__PURE__ */ o(
|
|
275
275
|
X,
|
|
276
276
|
{
|
|
@@ -280,12 +280,12 @@ function Ct() {
|
|
|
280
280
|
children: l("Filters:")
|
|
281
281
|
}
|
|
282
282
|
),
|
|
283
|
-
/* @__PURE__ */
|
|
284
|
-
|
|
283
|
+
/* @__PURE__ */ h(
|
|
284
|
+
p,
|
|
285
285
|
{
|
|
286
286
|
sx: {
|
|
287
287
|
display: "flex",
|
|
288
|
-
backgroundColor:
|
|
288
|
+
backgroundColor: x(v, 0.4),
|
|
289
289
|
padding: "3px",
|
|
290
290
|
borderRadius: "12px",
|
|
291
291
|
border: `1px solid ${v}`
|
|
@@ -298,7 +298,7 @@ function Ct() {
|
|
|
298
298
|
className: "cursor-pointer px-4 py-1.5 rounded-lg transition-all text-sm font-extrabold border-0",
|
|
299
299
|
style: {
|
|
300
300
|
background: c ? "#2e7d32" : "transparent",
|
|
301
|
-
color: c ? "#ffffff" :
|
|
301
|
+
color: c ? "#ffffff" : w,
|
|
302
302
|
boxShadow: c ? "0px 2px 4px rgba(0,0,0,0.1)" : "none"
|
|
303
303
|
},
|
|
304
304
|
children: l("Active")
|
|
@@ -311,7 +311,7 @@ function Ct() {
|
|
|
311
311
|
className: "cursor-pointer px-4 py-1.5 rounded-lg transition-all text-sm font-extrabold border-0",
|
|
312
312
|
style: {
|
|
313
313
|
background: c ? "transparent" : "#d32f2f",
|
|
314
|
-
color: c ?
|
|
314
|
+
color: c ? w : "#ffffff",
|
|
315
315
|
boxShadow: c ? "none" : "0px 2px 4px rgba(0,0,0,0.1)"
|
|
316
316
|
},
|
|
317
317
|
children: l("Inactive")
|
|
@@ -320,16 +320,16 @@ function Ct() {
|
|
|
320
320
|
]
|
|
321
321
|
}
|
|
322
322
|
),
|
|
323
|
-
/* @__PURE__ */ o(
|
|
324
|
-
/* @__PURE__ */
|
|
323
|
+
/* @__PURE__ */ o(p, { sx: { width: "1px", height: "25px", backgroundColor: v, mx: 0.5 } }),
|
|
324
|
+
/* @__PURE__ */ h(
|
|
325
325
|
"button",
|
|
326
326
|
{
|
|
327
327
|
onClick: () => oe(!g),
|
|
328
328
|
className: "cursor-pointer px-3.5 py-1.5 rounded-xl transition-all text-sm font-bold border",
|
|
329
329
|
style: {
|
|
330
|
-
background: g ?
|
|
331
|
-
color: g ? m :
|
|
332
|
-
borderColor: g ? m :
|
|
330
|
+
background: g ? x(m, 0.12) : "transparent",
|
|
331
|
+
color: g ? m : w,
|
|
332
|
+
borderColor: g ? m : x(v, 0.6)
|
|
333
333
|
},
|
|
334
334
|
"data-testid": "eventconfiguration-Exception-checkbox",
|
|
335
335
|
children: [
|
|
@@ -340,15 +340,15 @@ function Ct() {
|
|
|
340
340
|
]
|
|
341
341
|
}
|
|
342
342
|
),
|
|
343
|
-
/* @__PURE__ */
|
|
343
|
+
/* @__PURE__ */ h(
|
|
344
344
|
"button",
|
|
345
345
|
{
|
|
346
346
|
onClick: () => re(!y),
|
|
347
347
|
className: "cursor-pointer px-3.5 py-1.5 rounded-xl transition-all text-sm font-bold border",
|
|
348
348
|
style: {
|
|
349
|
-
background: y ?
|
|
350
|
-
color: y ? m :
|
|
351
|
-
borderColor: y ? m :
|
|
349
|
+
background: y ? x(m, 0.12) : "transparent",
|
|
350
|
+
color: y ? m : w,
|
|
351
|
+
borderColor: y ? m : x(v, 0.6)
|
|
352
352
|
},
|
|
353
353
|
children: [
|
|
354
354
|
l("Not Completed"),
|
|
@@ -362,23 +362,23 @@ function Ct() {
|
|
|
362
362
|
Ue,
|
|
363
363
|
{
|
|
364
364
|
value: s,
|
|
365
|
-
onChange: (e) =>
|
|
365
|
+
onChange: (e) => ae(e.target.value),
|
|
366
366
|
displayEmpty: !0,
|
|
367
367
|
sx: {
|
|
368
368
|
borderRadius: "12px",
|
|
369
369
|
backgroundColor: "white",
|
|
370
370
|
fontSize: "0.875rem",
|
|
371
371
|
fontWeight: 700,
|
|
372
|
-
color: s !== "ALL" ? m :
|
|
372
|
+
color: s !== "ALL" ? m : w,
|
|
373
373
|
".MuiOutlinedInput-notchedOutline": {
|
|
374
|
-
borderColor: s !== "ALL" ? m :
|
|
374
|
+
borderColor: s !== "ALL" ? m : x(v, 0.6)
|
|
375
375
|
}
|
|
376
376
|
},
|
|
377
377
|
children: Le.map((e) => /* @__PURE__ */ o($e, { value: e, sx: { fontSize: "0.875rem", fontWeight: 600 }, children: e === "ALL" ? l("All Event Types") : e }, e))
|
|
378
378
|
}
|
|
379
379
|
) }),
|
|
380
|
-
/* @__PURE__ */ o(
|
|
381
|
-
/* @__PURE__ */ p
|
|
380
|
+
/* @__PURE__ */ o(p, { sx: { flexGrow: 1 } }),
|
|
381
|
+
/* @__PURE__ */ h(p, { className: "flex items-center gap-2 w-full md:w-auto", children: [
|
|
382
382
|
/* @__PURE__ */ o(
|
|
383
383
|
K,
|
|
384
384
|
{
|
|
@@ -388,7 +388,7 @@ function Ct() {
|
|
|
388
388
|
color: "primary",
|
|
389
389
|
onClick: ye,
|
|
390
390
|
className: "text-xl h-9 min-w-[50px]",
|
|
391
|
-
children: /* @__PURE__ */ o(
|
|
391
|
+
children: /* @__PURE__ */ o(F, { icon: Ke })
|
|
392
392
|
}
|
|
393
393
|
),
|
|
394
394
|
/* @__PURE__ */ o(
|
|
@@ -399,7 +399,7 @@ function Ct() {
|
|
|
399
399
|
placeholder: "Search",
|
|
400
400
|
size: "small",
|
|
401
401
|
value: O,
|
|
402
|
-
onChange:
|
|
402
|
+
onChange: Ce,
|
|
403
403
|
sx: {
|
|
404
404
|
width: "100%",
|
|
405
405
|
backgroundColor: "white"
|
|
@@ -408,7 +408,7 @@ function Ct() {
|
|
|
408
408
|
}
|
|
409
409
|
)
|
|
410
410
|
] }),
|
|
411
|
-
|
|
411
|
+
C.hasCheckRights(i == null ? void 0 : i["create.manage.event"]) && /* @__PURE__ */ o(
|
|
412
412
|
K,
|
|
413
413
|
{
|
|
414
414
|
size: "small",
|
|
@@ -420,7 +420,7 @@ function Ct() {
|
|
|
420
420
|
button_name: "configure-new-event-button",
|
|
421
421
|
button_type: "navigate",
|
|
422
422
|
button_id: "eventconfiguration-configurenew-button"
|
|
423
|
-
}),
|
|
423
|
+
}), M("/ui/medplat/views/config");
|
|
424
424
|
},
|
|
425
425
|
children: l("Configure New")
|
|
426
426
|
}
|
|
@@ -431,12 +431,12 @@ function Ct() {
|
|
|
431
431
|
/* @__PURE__ */ o(
|
|
432
432
|
Xe,
|
|
433
433
|
{
|
|
434
|
-
columns:
|
|
434
|
+
columns: xe,
|
|
435
435
|
tableData: We,
|
|
436
|
-
actions:
|
|
436
|
+
actions: Ne,
|
|
437
437
|
paginationConfig: { pagination: !1 },
|
|
438
438
|
dataTestId: "eventconfiguration-table-configuredevents",
|
|
439
|
-
isLoading:
|
|
439
|
+
isLoading: R,
|
|
440
440
|
customHeight: 10
|
|
441
441
|
}
|
|
442
442
|
)
|
|
@@ -444,6 +444,6 @@ function Ct() {
|
|
|
444
444
|
] });
|
|
445
445
|
}
|
|
446
446
|
export {
|
|
447
|
-
|
|
447
|
+
xt as default
|
|
448
448
|
};
|
|
449
|
-
//# sourceMappingURL=EventConfigurations-
|
|
449
|
+
//# sourceMappingURL=EventConfigurations-kNtAj_WM.js.map
|
|
@@ -0,0 +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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"}
|