@argusoft/medplat-core 1.0.18 → 1.0.20
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-Bvd5Bm5K.js → AccessRights-CupmTG3T.js} +2 -2
- package/dist/{AccessRights-Bvd5Bm5K.js.map → AccessRights-CupmTG3T.js.map} +1 -1
- package/dist/{AddEditQueryBuilder-Bcjl5mXE.js → AddEditQueryBuilder-C8ZSkOF0.js} +60 -60
- package/dist/AddEditQueryBuilder-C8ZSkOF0.js.map +1 -0
- package/dist/{AddFeatures-CE5rBxEG.js → AddFeatures-CiZZZ0GL.js} +2 -2
- package/dist/{AddFeatures-CE5rBxEG.js.map → AddFeatures-CiZZZ0GL.js.map} +1 -1
- package/dist/{AddMenuConfiguration-QWfpcnuP.js → AddMenuConfiguration-DsnY0Rws.js} +544 -544
- package/dist/AddMenuConfiguration-DsnY0Rws.js.map +1 -0
- package/dist/{AddRoleDrawer-SvntLdRu.js → AddRoleDrawer-CQdzQZLb.js} +39 -39
- package/dist/AddRoleDrawer-CQdzQZLb.js.map +1 -0
- package/dist/ChangePasswordModalCore-50EzprTk.js +5495 -0
- package/dist/ChangePasswordModalCore-50EzprTk.js.map +1 -0
- package/dist/{ConditionConfig-DB0FqwgG.js → ConditionConfig-C3rF2wXU.js} +2 -2
- package/dist/{ConditionConfig-DB0FqwgG.js.map → ConditionConfig-C3rF2wXU.js.map} +1 -1
- package/dist/{EntityManagement-DQKXnEzz.js → EntityManagement-D4nG7wUX.js} +2 -2
- package/dist/{EntityManagement-DQKXnEzz.js.map → EntityManagement-D4nG7wUX.js.map} +1 -1
- package/dist/{EventConfigurations-D8juDb29.js → EventConfigurations-BGffjVC7.js} +3 -3
- package/dist/{EventConfigurations-D8juDb29.js.map → EventConfigurations-BGffjVC7.js.map} +1 -1
- package/dist/{EventsExceptionModal-DsvngLi8.js → EventsExceptionModal-D4Bf1ilS.js} +2 -2
- package/dist/{EventsExceptionModal-DsvngLi8.js.map → EventsExceptionModal-D4Bf1ilS.js.map} +1 -1
- package/dist/EventsSkeleton-8iiETGcf.js +76 -0
- package/dist/EventsSkeleton-8iiETGcf.js.map +1 -0
- package/dist/{FeatureMenu-CLX8VNZ-.js → FeatureMenu-DUZL32RI.js} +3 -3
- package/dist/{FeatureMenu-CLX8VNZ-.js.map → FeatureMenu-DUZL32RI.js.map} +1 -1
- package/dist/Features-CObdzJp_.js +13 -0
- package/dist/Features-CObdzJp_.js.map +1 -0
- package/dist/ImmunizationConfigurationBase-C5wnjI_-.js +5706 -0
- package/dist/ImmunizationConfigurationBase-C5wnjI_-.js.map +1 -0
- package/dist/ImmunizationConfigurationBase.css +1 -1
- package/dist/{ManageDynamicFeature-CsIett5x.js → ManageDynamicFeature-BhONvfC_.js} +3 -3
- package/dist/{ManageDynamicFeature-CsIett5x.js.map → ManageDynamicFeature-BhONvfC_.js.map} +1 -1
- package/dist/{ManageEventConfiguration-0YBDaxOI.js → ManageEventConfiguration-BntUc_YI.js} +93 -93
- package/dist/ManageEventConfiguration-BntUc_YI.js.map +1 -0
- package/dist/{ManageNotification-BUAvg5Ge.js → ManageNotification-CSl02Wq7.js} +2 -2
- package/dist/{ManageNotification-BUAvg5Ge.js.map → ManageNotification-CSl02Wq7.js.map} +1 -1
- package/dist/{ManageRole-Cbs9dUhc.js → ManageRole-tdzAiCOE.js} +222 -229
- package/dist/ManageRole-tdzAiCOE.js.map +1 -0
- package/dist/{ManageUser-eBS0yC5k.js → ManageUser-C6dlK-Mr.js} +3 -4
- package/dist/{ManageUser-eBS0yC5k.js.map → ManageUser-C6dlK-Mr.js.map} +1 -1
- package/dist/{MobileMenuManagement-BmrO-7MN.js → MobileMenuManagement-CV6QCeos.js} +15 -15
- package/dist/MobileMenuManagement-CV6QCeos.js.map +1 -0
- package/dist/{MobileTypeEventConfigModal-Ltm529jG.js → MobileTypeEventConfigModal-BNjZ8pnq.js} +2 -2
- package/dist/{MobileTypeEventConfigModal-Ltm529jG.js.map → MobileTypeEventConfigModal-BNjZ8pnq.js.map} +1 -1
- package/dist/{NewServerManagement-5YcAtF-g.js → NewServerManagement-Cxe0dV0O.js} +5 -5
- package/dist/NewServerManagement-Cxe0dV0O.js.map +1 -0
- package/dist/{NotificationList-CUZSWp2J.js → NotificationList-D1U1LYnz.js} +140 -139
- package/dist/NotificationList-D1U1LYnz.js.map +1 -0
- package/dist/{OtherTypeEventConfigModal-dXt2qDg_.js → OtherTypeEventConfigModal-DiVhWDpG.js} +43 -43
- package/dist/{OtherTypeEventConfigModal-dXt2qDg_.js.map → OtherTypeEventConfigModal-DiVhWDpG.js.map} +1 -1
- package/dist/{QueryBuilder-DXexUIe8.js → QueryBuilder-DI0wCJbz.js} +85 -84
- package/dist/QueryBuilder-DI0wCJbz.js.map +1 -0
- package/dist/{QueryManagement-DGHV_-d5.js → QueryManagement-CRykYGum.js} +3 -3
- package/dist/QueryManagement-CRykYGum.js.map +1 -0
- package/dist/{RoleManagement-BThAL5LO.js → RoleManagement-Cg8-EiVr.js} +83 -82
- package/dist/RoleManagement-Cg8-EiVr.js.map +1 -0
- package/dist/SecurityAuditLogList-Dod711KT.js +874 -0
- package/dist/SecurityAuditLogList-Dod711KT.js.map +1 -0
- package/dist/{ShowFlywayQuery-BkyA6QaA.js → ShowFlywayQuery-tj42YQAS.js} +33 -33
- package/dist/ShowFlywayQuery-tj42YQAS.js.map +1 -0
- package/dist/{SubMenu-BGznOP2a.js → SubMenu-CM_4wNCR.js} +2 -2
- package/dist/{SubMenu-BGznOP2a.js.map → SubMenu-CM_4wNCR.js.map} +1 -1
- package/dist/{TableDetails-DztbjsIA.js → TableDetails-Cf_YfnY2.js} +235 -235
- package/dist/TableDetails-Cf_YfnY2.js.map +1 -0
- package/dist/{TableList-DYwotUDO.js → TableList-HGbEN4bv.js} +28 -28
- package/dist/TableList-HGbEN4bv.js.map +1 -0
- package/dist/{TypeConfiguration-DYbBG_hZ.js → TypeConfiguration-CupQxH9Y.js} +28 -28
- package/dist/TypeConfiguration-CupQxH9Y.js.map +1 -0
- package/dist/{UserList-BAeAFeXZ.js → UserList-BzHsbYel.js} +423 -423
- package/dist/UserList-BzHsbYel.js.map +1 -0
- package/dist/{WidgetList-D-fIf3N2.js → WidgetList-B7X8Awkg.js} +2 -2
- package/dist/{WidgetList-D-fIf3N2.js.map → WidgetList-B7X8Awkg.js.map} +1 -1
- package/dist/index-D9YNFPn9.js +1439 -0
- package/dist/index-D9YNFPn9.js.map +1 -0
- package/dist/index.css +1 -1
- package/dist/index.js +102 -100
- package/dist/index.js.map +1 -1
- package/dist/{index-BFznsakV.js → pdfmake-Cf-381ou.js} +13951 -15385
- package/dist/pdfmake-Cf-381ou.js.map +1 -0
- package/package.json +1 -1
- package/dist/AddEditQueryBuilder-Bcjl5mXE.js.map +0 -1
- package/dist/AddMenuConfiguration-QWfpcnuP.js.map +0 -1
- package/dist/AddRoleDrawer-SvntLdRu.js.map +0 -1
- package/dist/ChangePasswordModalCore-ClND1mel.js +0 -181
- package/dist/ChangePasswordModalCore-ClND1mel.js.map +0 -1
- package/dist/EventsSkeleton-DCXwwPbb.js +0 -76
- package/dist/EventsSkeleton-DCXwwPbb.js.map +0 -1
- package/dist/Features-Cpf1PDx0.js +0 -13
- package/dist/Features-Cpf1PDx0.js.map +0 -1
- package/dist/ImmunizationConfigurationBase-BqPTExSk.js +0 -5653
- package/dist/ImmunizationConfigurationBase-BqPTExSk.js.map +0 -1
- package/dist/ManageEventConfiguration-0YBDaxOI.js.map +0 -1
- package/dist/ManageRole-Cbs9dUhc.js.map +0 -1
- package/dist/MobileMenuManagement-BmrO-7MN.js.map +0 -1
- package/dist/NewServerManagement-5YcAtF-g.js.map +0 -1
- package/dist/NotificationList-CUZSWp2J.js.map +0 -1
- package/dist/QueryBuilder-DXexUIe8.js.map +0 -1
- package/dist/QueryManagement-DGHV_-d5.js.map +0 -1
- package/dist/RoleManagement-BThAL5LO.js.map +0 -1
- package/dist/SecurityAuditLogList-DHTcOtbx.js +0 -748
- package/dist/SecurityAuditLogList-DHTcOtbx.js.map +0 -1
- package/dist/ShowFlywayQuery-BkyA6QaA.js.map +0 -1
- package/dist/TableDetails-DztbjsIA.js.map +0 -1
- package/dist/TableList-DYwotUDO.js.map +0 -1
- package/dist/TypeConfiguration-DYbBG_hZ.js.map +0 -1
- package/dist/UserList-BAeAFeXZ.js.map +0 -1
- package/dist/index-BFznsakV.js.map +0 -1
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
import { jsx as e, jsxs as l } from "react/jsx-runtime";
|
|
2
|
-
import { Drawer as he, Typography as m, Button as
|
|
2
|
+
import { Drawer as he, Typography as m, Button as S, Table as L, TableHead as z, TableRow as N, TableCell as i, TableBody as j, Divider as be } from "@mui/material";
|
|
3
3
|
import { Grid as h, Box as ye, Stack as ge } from "@mui/system";
|
|
4
|
-
import
|
|
5
|
-
import
|
|
4
|
+
import _ from "prop-types";
|
|
5
|
+
import K from "@/views/custom-components/CustomTextField";
|
|
6
6
|
import { useForm as we } from "react-hook-form";
|
|
7
7
|
import * as X from "yup";
|
|
8
8
|
import { yupResolver as ve } from "@hookform/resolvers/yup";
|
|
9
|
-
import Ne, { useRef as Y, useState as
|
|
9
|
+
import Ne, { useRef as Y, useState as x, useEffect as B } from "react";
|
|
10
10
|
import Z from "@/views/custom-components/CustomConfirmationModal";
|
|
11
11
|
import { showToast as W } from "@/common/toaster/toaster";
|
|
12
12
|
import Ce from "@/views/custom-components/CustomCheckBox";
|
|
13
13
|
import { api as Ae } from "@/common/interceptors/AxiosInterceptor";
|
|
14
|
-
import Te from "@/common/
|
|
15
|
-
import
|
|
14
|
+
import Te from "@/common/config/implementationConfig";
|
|
15
|
+
import Pe from "@/hooks/useTrackEvent";
|
|
16
16
|
import D from "@/views/custom-components/CustomAutoComplete";
|
|
17
|
-
import { useTranslateProvider as
|
|
17
|
+
import { useTranslateProvider as Re } from "@/common/languageTranslator/TranslationContext";
|
|
18
18
|
import { faTrash as ee } from "@fortawesome/free-solid-svg-icons";
|
|
19
19
|
import { FontAwesomeIcon as re } from "@fortawesome/react-fontawesome";
|
|
20
|
-
const Ie = (
|
|
21
|
-
function ke({ open:
|
|
22
|
-
var
|
|
23
|
-
const
|
|
20
|
+
const Ie = (P) => Ae.post(Te.api.useQueryParamStyle ? "/notificationtype/update" : "/notificationtype", P);
|
|
21
|
+
function ke({ open: P, handleClose: E, data: f, roleData: y }) {
|
|
22
|
+
var G, H;
|
|
23
|
+
const R = Y(null), F = Y(!1), [O, $] = x([]), [g, U] = x(null), [q, v] = x(0), [oe, te] = x(null), { translate: n } = Re(), ae = X.object().shape({
|
|
24
24
|
name: X.string().required("Enter Name")
|
|
25
25
|
});
|
|
26
26
|
B(() => {
|
|
27
|
-
if (
|
|
28
|
-
let o =
|
|
27
|
+
if (R.current) {
|
|
28
|
+
let o = R.current;
|
|
29
29
|
return () => {
|
|
30
30
|
M("conversion_event", {
|
|
31
31
|
form: o,
|
|
@@ -34,7 +34,7 @@ function ke({ open: R, handleClose: _, data: f, roleData: y }) {
|
|
|
34
34
|
});
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
|
-
}, [
|
|
37
|
+
}, [R.current]);
|
|
38
38
|
const {
|
|
39
39
|
control: C,
|
|
40
40
|
formState: { errors: I },
|
|
@@ -54,7 +54,7 @@ function ke({ open: R, handleClose: _, data: f, roleData: y }) {
|
|
|
54
54
|
"roles",
|
|
55
55
|
f.roles ? f.roles.map((r) => y == null ? void 0 : y.find((t) => t.name === r)).filter((r) => r !== void 0) : []
|
|
56
56
|
), f.escalationLevels || (f.escalationLevels = []), p("escalationLevels", f.escalationLevels);
|
|
57
|
-
}, [
|
|
57
|
+
}, [P]);
|
|
58
58
|
const ne = (o, r) => {
|
|
59
59
|
const t = o == null ? void 0 : o.map((a) => a.id);
|
|
60
60
|
p(`selectedPerformer[${r}].roles`, t);
|
|
@@ -117,7 +117,7 @@ function ke({ open: R, handleClose: _, data: f, roleData: y }) {
|
|
|
117
117
|
} catch (t) {
|
|
118
118
|
W({ message: t, type: "error" });
|
|
119
119
|
}
|
|
120
|
-
}, M =
|
|
120
|
+
}, M = Pe(), fe = async (o) => {
|
|
121
121
|
try {
|
|
122
122
|
M("button_click", {
|
|
123
123
|
button_name: f ? "update widget button" : "add widget button",
|
|
@@ -127,7 +127,7 @@ function ke({ open: R, handleClose: _, data: f, roleData: y }) {
|
|
|
127
127
|
const { roles: r = [], escalationLevels: t } = o, a = r.map((u) => u.id), d = { ...f, escalationLevels: t, roles: a };
|
|
128
128
|
await Ie(d).catch((u) => {
|
|
129
129
|
console.error("error in updating notification", u);
|
|
130
|
-
}), W({ message: "Widget Updated Successfully", type: "success" }), F.current = !0,
|
|
130
|
+
}), W({ message: "Widget Updated Successfully", type: "success" }), F.current = !0, E(!0);
|
|
131
131
|
} catch (r) {
|
|
132
132
|
console.error(r);
|
|
133
133
|
}
|
|
@@ -135,9 +135,9 @@ function ke({ open: R, handleClose: _, data: f, roleData: y }) {
|
|
|
135
135
|
return /* @__PURE__ */ e(
|
|
136
136
|
he,
|
|
137
137
|
{
|
|
138
|
-
open:
|
|
138
|
+
open: P,
|
|
139
139
|
anchor: "right",
|
|
140
|
-
onClose:
|
|
140
|
+
onClose: E,
|
|
141
141
|
className: "z-[1300]",
|
|
142
142
|
"data-testid": "addroledrawer-drawer-container",
|
|
143
143
|
children: /* @__PURE__ */ l(
|
|
@@ -145,7 +145,7 @@ function ke({ open: R, handleClose: _, data: f, roleData: y }) {
|
|
|
145
145
|
{
|
|
146
146
|
container: !0,
|
|
147
147
|
className: "flex flex-col w-full md:w-[600px] ",
|
|
148
|
-
ref:
|
|
148
|
+
ref: R,
|
|
149
149
|
children: [
|
|
150
150
|
/* @__PURE__ */ e(
|
|
151
151
|
h,
|
|
@@ -172,7 +172,7 @@ function ke({ open: R, handleClose: _, data: f, roleData: y }) {
|
|
|
172
172
|
/* @__PURE__ */ e("span", { className: "text-red-500 ml-1", children: "*" })
|
|
173
173
|
] }),
|
|
174
174
|
/* @__PURE__ */ e(
|
|
175
|
-
|
|
175
|
+
K,
|
|
176
176
|
{
|
|
177
177
|
id: "name",
|
|
178
178
|
control: C,
|
|
@@ -202,7 +202,7 @@ function ke({ open: R, handleClose: _, data: f, roleData: y }) {
|
|
|
202
202
|
}
|
|
203
203
|
) }),
|
|
204
204
|
/* @__PURE__ */ e(h, { className: "pt-2", children: /* @__PURE__ */ e(
|
|
205
|
-
|
|
205
|
+
S,
|
|
206
206
|
{
|
|
207
207
|
variant: "contained",
|
|
208
208
|
size: "small",
|
|
@@ -224,7 +224,7 @@ function ke({ open: R, handleClose: _, data: f, roleData: y }) {
|
|
|
224
224
|
/* @__PURE__ */ e(i, { className: "border-r border-gray-300 p-2", children: /* @__PURE__ */ e(m, { variant: "body2", className: "font-bold", children: `${n("Role")}${n("name")} (${n("Assigned to")})` }) }),
|
|
225
225
|
/* @__PURE__ */ e(i, { className: "p-2", children: /* @__PURE__ */ e(m, { variant: "body2", className: "font-bold", children: n("Delete") }) })
|
|
226
226
|
] }) }),
|
|
227
|
-
/* @__PURE__ */ e(j, { children: (
|
|
227
|
+
/* @__PURE__ */ e(j, { children: (G = c == null ? void 0 : c.roles) == null ? void 0 : G.map((o, r) => /* @__PURE__ */ l(
|
|
228
228
|
N,
|
|
229
229
|
{
|
|
230
230
|
"data-testid": "addroledrawer-tablerow-roles",
|
|
@@ -245,7 +245,7 @@ function ke({ open: R, handleClose: _, data: f, roleData: y }) {
|
|
|
245
245
|
/* @__PURE__ */ e(
|
|
246
246
|
Z,
|
|
247
247
|
{
|
|
248
|
-
open:
|
|
248
|
+
open: q === 1 && g === o.id,
|
|
249
249
|
handleClose: () => v(0),
|
|
250
250
|
handleClick: (t) => pe(),
|
|
251
251
|
title: "CONFIRM ACTION",
|
|
@@ -262,7 +262,7 @@ function ke({ open: R, handleClose: _, data: f, roleData: y }) {
|
|
|
262
262
|
}
|
|
263
263
|
) }),
|
|
264
264
|
(H = c.escalationLevels) == null ? void 0 : H.map((o, r) => {
|
|
265
|
-
var t, a, d, u, A, k, V,
|
|
265
|
+
var t, a, d, u, A, k, V, Q;
|
|
266
266
|
return /* @__PURE__ */ l(Ne.Fragment, { children: [
|
|
267
267
|
/* @__PURE__ */ e(h, { "data-testid": "addroledrawer-grid-escalationlevel", children: /* @__PURE__ */ l(L, { className: "border border-gray-300", children: [
|
|
268
268
|
/* @__PURE__ */ e(z, { children: /* @__PURE__ */ l(N, { children: [
|
|
@@ -272,7 +272,7 @@ function ke({ open: R, handleClose: _, data: f, roleData: y }) {
|
|
|
272
272
|
] }) }),
|
|
273
273
|
/* @__PURE__ */ e(j, { children: /* @__PURE__ */ l(N, { "data-testid": "addroledrawer-tablerow-escalationperformer", children: [
|
|
274
274
|
/* @__PURE__ */ e(i, { className: "border-r border-gray-300 p-2", children: /* @__PURE__ */ e(
|
|
275
|
-
|
|
275
|
+
K,
|
|
276
276
|
{
|
|
277
277
|
id: "escalationLevel",
|
|
278
278
|
control: C,
|
|
@@ -301,7 +301,7 @@ function ke({ open: R, handleClose: _, data: f, roleData: y }) {
|
|
|
301
301
|
}
|
|
302
302
|
) }),
|
|
303
303
|
/* @__PURE__ */ e(i, { children: /* @__PURE__ */ e(
|
|
304
|
-
|
|
304
|
+
S,
|
|
305
305
|
{
|
|
306
306
|
variant: "contained",
|
|
307
307
|
size: "small",
|
|
@@ -324,10 +324,10 @@ function ke({ open: R, handleClose: _, data: f, roleData: y }) {
|
|
|
324
324
|
/* @__PURE__ */ e(i, { className: "border border-gray-300 p-2", children: /* @__PURE__ */ e(m, { variant: "body2", className: "font-bold", children: n("Roles with perform action") }) }),
|
|
325
325
|
/* @__PURE__ */ e(i, { className: "p-2", children: /* @__PURE__ */ e(m, { variant: "body2", className: "font-bold", children: n("Delete") }) })
|
|
326
326
|
] }) }),
|
|
327
|
-
/* @__PURE__ */ e(j, { children: (
|
|
327
|
+
/* @__PURE__ */ e(j, { children: (Q = o.roles) == null ? void 0 : Q.filter(
|
|
328
328
|
(s) => y.find((b) => b.id === s)
|
|
329
329
|
).map((s, b) => {
|
|
330
|
-
var
|
|
330
|
+
var J;
|
|
331
331
|
return /* @__PURE__ */ l(
|
|
332
332
|
N,
|
|
333
333
|
{
|
|
@@ -353,7 +353,7 @@ function ke({ open: R, handleClose: _, data: f, roleData: y }) {
|
|
|
353
353
|
"data-testid": "addroledrawer-checkbox-performaction"
|
|
354
354
|
}
|
|
355
355
|
),
|
|
356
|
-
/* @__PURE__ */ e(m, { variant: "caption", children: (
|
|
356
|
+
/* @__PURE__ */ e(m, { variant: "caption", children: (J = y.find((T) => T.id === s)) == null ? void 0 : J.name })
|
|
357
357
|
] }) }),
|
|
358
358
|
/* @__PURE__ */ l(i, { className: "border border-gray-300 p-2", children: [
|
|
359
359
|
/* @__PURE__ */ e(
|
|
@@ -370,7 +370,7 @@ function ke({ open: R, handleClose: _, data: f, roleData: y }) {
|
|
|
370
370
|
/* @__PURE__ */ e(
|
|
371
371
|
Z,
|
|
372
372
|
{
|
|
373
|
-
open:
|
|
373
|
+
open: q === 2 && g === s && oe === r,
|
|
374
374
|
handleClose: () => v(0),
|
|
375
375
|
handleClick: (T) => {
|
|
376
376
|
ue(T, r);
|
|
@@ -405,7 +405,7 @@ function ke({ open: R, handleClose: _, data: f, roleData: y }) {
|
|
|
405
405
|
mb: 1.5,
|
|
406
406
|
children: [
|
|
407
407
|
/* @__PURE__ */ e(
|
|
408
|
-
|
|
408
|
+
S,
|
|
409
409
|
{
|
|
410
410
|
variant: "contained",
|
|
411
411
|
color: "secondary",
|
|
@@ -415,14 +415,14 @@ function ke({ open: R, handleClose: _, data: f, roleData: y }) {
|
|
|
415
415
|
button_name: "cancel widget button",
|
|
416
416
|
button_type: "cancel",
|
|
417
417
|
button_id: "addroledrawer-button-close"
|
|
418
|
-
}), se(), $([]),
|
|
418
|
+
}), se(), $([]), E();
|
|
419
419
|
},
|
|
420
420
|
"data-testid": "addroledrawer-button-close",
|
|
421
421
|
children: /* @__PURE__ */ e(m, { variant: "caption", children: `${n("Close")}` })
|
|
422
422
|
}
|
|
423
423
|
),
|
|
424
424
|
/* @__PURE__ */ e(
|
|
425
|
-
|
|
425
|
+
S,
|
|
426
426
|
{
|
|
427
427
|
variant: "contained",
|
|
428
428
|
color: "primary",
|
|
@@ -443,12 +443,12 @@ function ke({ open: R, handleClose: _, data: f, roleData: y }) {
|
|
|
443
443
|
);
|
|
444
444
|
}
|
|
445
445
|
ke.propTypes = {
|
|
446
|
-
open:
|
|
447
|
-
handleClose:
|
|
448
|
-
data:
|
|
449
|
-
roleData:
|
|
446
|
+
open: _.any,
|
|
447
|
+
handleClose: _.func,
|
|
448
|
+
data: _.any,
|
|
449
|
+
roleData: _.any
|
|
450
450
|
};
|
|
451
451
|
export {
|
|
452
452
|
ke as default
|
|
453
453
|
};
|
|
454
|
-
//# sourceMappingURL=AddRoleDrawer-
|
|
454
|
+
//# sourceMappingURL=AddRoleDrawer-CQdzQZLb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AddRoleDrawer-CQdzQZLb.js","sources":["../src/services/Widgets.js","../src/views/Widgets/AddRoleDrawer.jsx"],"sourcesContent":["import { api } from \"@/common/interceptors/AxiosInterceptor\";\nimport implementationConfig from \"@/common/config/implementationConfig\";\n\nexport const retrieveAllNotifications = (isActive) =>\n api.get(`/notificationtype`, { is_active: isActive });\n\nexport const updateNotification = (data) => api.post(implementationConfig.api.useQueryParamStyle ? \"/notificationtype/update\" : \"/notificationtype\", data);\n","import {\n Button,\n Divider,\n Drawer,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n Typography,\n} from \"@mui/material\";\nimport { Box, Grid, Stack } from \"@mui/system\";\nimport PropTypes from \"prop-types\";\nimport CustomTextField from \"@/views/custom-components/CustomTextField\";\nimport { useForm } from \"react-hook-form\";\nimport * as yup from \"yup\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport React, { useEffect, useState, useRef } from \"react\";\nimport CustomConfirmationModal from \"@/views/custom-components/CustomConfirmationModal\";\nimport { showToast } from \"@/common/toaster/toaster\";\nimport CustomCheckBox from \"@/views/custom-components/CustomCheckBox\";\nimport { updateNotification } from \"../../services/Widgets\";\nimport useTrackEvent from \"@/hooks/useTrackEvent\";\nimport CustomAutocomplete from \"@/views/custom-components/CustomAutoComplete\";\nimport { useTranslateProvider } from \"@/common/languageTranslator/TranslationContext\";\nimport { faTrash } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\n\nexport default function AddRoleDrawer({ open, handleClose, data, roleData }) {\n const formRef = useRef(null);\n const submitRef = useRef(false);\n const [selectedData, setSelectedData] = useState([]);\n const [deleteId, setDeleteId] = useState(null);\n const [openModal, setOpenModal] = useState(0);\n const [DOMIndex, setDOMIndex] = useState(null);\n const { translate } = useTranslateProvider();\n\n const validationSchema = yup.object().shape({\n name: yup.string().required(\"Enter Name\"),\n });\n useEffect(() => {\n if (formRef.current) {\n let form = formRef.current;\n\n return () => {\n trackEvent(\"conversion_event\", {\n form,\n form_name: \"Add Widget Role\",\n submit: submitRef.current,\n }); // Use the current ref value\n };\n }\n }, [formRef.current]);\n const {\n control,\n formState: { errors },\n handleSubmit,\n setValue,\n getValues,\n watch,\n reset,\n } = useForm({\n defaultValues: { selectedPerformer: [] },\n mode: \"onChange\",\n resolver: yupResolver(validationSchema),\n });\n\n const watchFields = watch();\n\n useEffect(() => {\n setValue(\"name\", data.notificationName);\n data?.roles?.length &&\n setValue(\n \"roles\",\n data.roles\n ? data.roles\n .map((role) => roleData?.find((cur) => cur.name === role))\n .filter((role) => role !== undefined)\n : []\n );\n if (!data.escalationLevels) data.escalationLevels = [];\n setValue(\"escalationLevels\", data.escalationLevels);\n }, [open]);\n\n /**\n * Adds a role to the selected performer at the specified index.\n * @param {Object} val - The role object to be added, containing at least an `id` property.\n * @param {number} index - The index of the performer in the `selectedPerformer` array to which the role should be added.\n *\n * @returns {void}\n */\n\n const addPerformer = (values, index) => {\n const ids = values?.map((value) => value.id);\n setValue(`selectedPerformer[${index}].roles`, ids);\n };\n\n /**\n * Handles the perform action change for a specific role in the escalation levels.\n *\n * @param {boolean} e - The new value indicating whether the action is performed (checked state of the checkbox).\n * @param {number} index - The index of the escalation level in the escalation levels array.\n * @param {number} roleId - The ID of the role whose action status is being updated.\n *\n * @returns {void}\n */\n\n const handlePerformAction = (e, index, roleId) => {\n const previousEscalationValues = getValues(\"escalationLevels\");\n previousEscalationValues[index].performAction[roleId] = e;\n setValue(\"escalationLevels\", previousEscalationValues);\n };\n\n /**\n * Handles adding selected roles to the existing roles table.\n *\n * @description This function checks if the selected roles already exist in the current roles. If they do not exist, it adds them to the roles array and updates the form value. It also clears the `selectedData` after adding the roles.\n *\n * @returns {void}\n */\n const handleAddTable = () => {\n const previousRoleValues = watchFields.roles || [];\n const updatedRoles = [...previousRoleValues];\n selectedData.forEach((role) => {\n const exists = previousRoleValues.some((item) => item.id === role.id);\n if (!exists) {\n updatedRoles.push(role);\n }\n });\n\n setValue(\"roles\", updatedRoles);\n setSelectedData([]);\n };\n\n useEffect(() => {\n const currentSelected = getValues(\"selectedPerformer\");\n const validRoles = watchFields?.roles || [];\n\n const updatedSelected = currentSelected.map((performer) => {\n const filteredRoles = (performer?.roles || []).filter((roleId) =>\n validRoles.some((role) => role.id === roleId)\n );\n\n return { ...performer, roles: filteredRoles };\n });\n\n setValue(\"selectedPerformer\", updatedSelected, { shouldValidate: true });\n }, [watchFields.roles]);\n\n /**\n * Handles adding selected roles to the escalation levels for a specified performer.\n *\n * @description This function retrieves the current escalation levels and the selected performers.\n * It updates the roles of the performer at the given index by merging the selected roles with the\n * existing roles.\n * @param {Event} e - The event object representing the triggering event (e.g., a button click).\n * @param {number} index - The index of the performer whose roles are being updated in the escalation levels table.\n *\n * @returns {void}\n */\n\n const addPerformerInTable = (e, index) => {\n const previousEscalationValues = getValues(\"escalationLevels\");\n const selectedPerformer = getValues(\"selectedPerformer\");\n previousEscalationValues[index].roles = [\n ...new Set([\n ...previousEscalationValues[index].roles,\n ...selectedPerformer[index].roles,\n ]),\n ];\n\n selectedPerformer[index].roles.forEach((role) => {\n previousEscalationValues[index].performAction[role] =\n previousEscalationValues[index].performAction[role] || false;\n });\n selectedPerformer[index].roles = [];\n\n setValue(\"escalationLevels\", previousEscalationValues);\n setValue(\"selectedPerformer\", selectedPerformer);\n };\n\n /**\n * Handles the deletion of a role feature from the roles and escalation levels.\n *\n * @returns {void}\n */\n\n const handleDeleteRoleFeature = () => {\n try {\n const prevValue = getValues(\"roles\");\n const updatedValue = prevValue.filter((role) => role.id !== deleteId);\n setValue(\"roles\", [...updatedValue]);\n\n const previousEscalationValues = getValues(\"escalationLevels\");\n\n const updatedEscalationValues = previousEscalationValues.map(\n (escalationLevel) => {\n // Remove the role from the roles array\n const updatedRoles = escalationLevel.roles.filter(\n (roleId) => roleId !== deleteId\n );\n // Remove the role from the performAction object\n // eslint-disable-next-line no-unused-vars\n const { [deleteId]: _, ...updatedPerformAction } =\n escalationLevel.performAction;\n\n return {\n ...escalationLevel,\n roles: updatedRoles,\n performAction: updatedPerformAction,\n };\n }\n );\n\n setValue(\"escalationLevels\", updatedEscalationValues);\n setOpenModal(0);\n } catch (error) {\n showToast({ message: error, type: \"error\" });\n }\n };\n\n /**\n * Deletes a role from the escalation levels at the specified index.\n * @param {string} value - The value associated with the role being deleted (not currently used in the function).\n * @param {number} index - The index of the escalation level from which the role should be deleted.\n *\n * @returns {void}\n */\n const DeleteRolesWithActions = (value, index) => {\n try {\n const prevValue = getValues(\"escalationLevels\");\n prevValue[index].roles = prevValue[index].roles.filter(\n (role) => role !== deleteId\n );\n\n // eslint-disable-next-line no-unused-vars\n const { [deleteId]: _, ...updatedPerformAction } =\n prevValue[index].performAction;\n prevValue[index].performAction = updatedPerformAction;\n setValue(\"escalationValues\", [...prevValue]);\n\n setOpenModal(0);\n } catch (error) {\n showToast({ message: error, type: \"error\" });\n }\n };\n\n /**\n * Handles the form submission by updating notification data with the provided values.\n * @param {Object} values - The submitted form values.\n * @param {Array} values.roles - The list of roles, each containing an `id`.\n * @param {Array} values.escalationLevels - The updated escalation levels.\n *\n * @returns {Promise<void>} - A promise that resolves when the submission is complete.\n */\n const trackEvent = useTrackEvent();\n\n const onSubmit = async (values) => {\n try {\n trackEvent(\"button_click\", {\n button_name: data ? \"update widget button\" : \"add widget button\",\n button_type: \"submit\",\n button_id: \"addroledrawer-button-submit\",\n });\n\n const { roles = [], escalationLevels } = values;\n const roleIds = roles.map((role) => role.id);\n const updatedData = { ...data, escalationLevels, roles: roleIds };\n await updateNotification(updatedData).catch((e) => {\n console.error(\"error in updating notification\", e);\n });\n showToast({ message: \"Widget Updated Successfully\", type: \"success\" });\n submitRef.current = true;\n handleClose(true);\n } catch (error) {\n console.error(error);\n }\n };\n\n return (\n <Drawer\n open={open}\n anchor=\"right\"\n onClose={handleClose}\n className=\"z-[1300]\"\n data-testid=\"addroledrawer-drawer-container\"\n >\n <Grid\n container\n className=\"flex flex-col w-full md:w-[600px] \"\n ref={formRef}\n >\n <Grid\n p={1}\n alignContent={\"flex-start\"}\n className=\"p-2.5 px-5 flex border-b font-medium text-lg\"\n data-testid=\"addroledrawer-grid-header uppercase\"\n >\n {translate(\"Assign Role\")}\n </Grid>\n <Grid\n container\n display={\"flex\"}\n flexDirection={\"column\"}\n p={1}\n data-testid=\"addroledrawer-grid-content\"\n >\n <Grid data-testid=\"addroledrawer-grid-name\">\n <Typography variant=\"body2\">\n {translate(\"Name\")}\n <span className=\"text-red-500 ml-1\">*</span>\n </Typography>\n <CustomTextField\n id={\"name\"}\n control={control}\n name={\"name\"}\n errors={errors}\n InputProps={{\n readOnly: true,\n }}\n dataTestId=\"addroledrawer-textfield-name\"\n />\n </Grid>\n <Grid data-testid=\"addroledrawer-grid-actionby\">\n <Typography variant=\"body2\" mt={1}>\n {translate(\"Select Role\")}\n </Typography>\n <Grid container display={\"flex\"} flexDirection={\"row\"}>\n <Grid width={\"70%\"} mr={2}>\n <CustomAutocomplete\n name=\"role\"\n control={control}\n value={selectedData}\n options={roleData}\n getOptionLabel={(option) => option.name}\n errors={errors}\n dataTestId=\"addroledrawer-select-roles\"\n onChange={(e, val) => setSelectedData(val)}\n />\n </Grid>\n <Grid className=\"pt-2\">\n <Button\n variant=\"contained\"\n size=\"small\"\n disabled={!selectedData.length}\n onClick={handleAddTable}\n data-testid=\"addroledrawer-button-add\"\n >\n {translate(\"Assign\")}\n </Button>\n </Grid>\n </Grid>\n </Grid>\n <Grid data-testid=\"addroledrawer-grid-table\">\n <Table\n data-testid=\"addroledrawer-table\"\n className=\"border border-gray-300\"\n >\n <TableHead>\n <TableRow>\n <TableCell className=\"border-r border-gray-300 p-2\">\n <Typography variant=\"body2\" className=\"font-bold\">\n {`${translate(\"Role\")}${translate(\"name\")} (${translate(\"Assigned to\")})`}\n </Typography>\n </TableCell>\n <TableCell className=\"p-2\">\n <Typography variant=\"body2\" className=\"font-bold\">\n {translate(\"Delete\")}\n </Typography>\n </TableCell>\n </TableRow>\n </TableHead>\n <TableBody>\n {watchFields?.roles?.map((item, index) => (\n <TableRow\n key={item.id}\n data-testid=\"addroledrawer-tablerow-roles\"\n >\n <TableCell className=\"border border-gray-300 p-2\">\n <Typography variant=\"caption\">{item.name}</Typography>\n </TableCell>\n <TableCell className=\"p-2\">\n <FontAwesomeIcon\n icon={faTrash}\n className=\"text-[18px] text-[var(--color-error)]\"\n onClick={() => {\n setOpenModal(1);\n setDeleteId(item.id);\n }}\n data-testid=\"addroledrawer-icon-delete\"\n />\n <CustomConfirmationModal\n open={openModal === 1 && deleteId === item.id}\n handleClose={() => setOpenModal(0)}\n handleClick={(e) => handleDeleteRoleFeature(e, index)}\n title={\"CONFIRM ACTION\"}\n description={\n \"Are you sure you want to delete this role? It will also delete role from each escalation level.\"\n }\n dataTestId=\"addroledrawer-modal-confirmdelete\"\n />\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </Grid>\n {watchFields.escalationLevels?.map((escalationLevelData, index) => (\n <React.Fragment key={escalationLevelData.id}>\n <Grid data-testid=\"addroledrawer-grid-escalationlevel\">\n <Table className=\"border border-gray-300\">\n <TableHead>\n <TableRow>\n <TableCell className=\"border-r border-gray-300 p-2 w-80\">\n <Typography variant=\"body2\" className=\"font-bold\">\n {translate(\"Escalation Level\")}\n </Typography>\n </TableCell>\n <TableCell className=\"border-r border-gray-300 p-2 w-60\">\n <Typography variant=\"body2\" className=\"font-bold\">\n {translate(\"Performer\")}\n </Typography>\n </TableCell>\n <TableCell className=\"p-2 w-40 \">\n <Typography variant=\"body2\" className=\"font-bold\">\n {translate(\"Action\")}\n </Typography>\n </TableCell>\n </TableRow>\n </TableHead>\n <TableBody>\n <TableRow data-testid=\"addroledrawer-tablerow-escalationperformer\">\n <TableCell className=\"border-r border-gray-300 p-2\">\n <CustomTextField\n id={\"escalationLevel\"}\n control={control}\n name={`escalationLevelData[${index}].name`}\n defaultValue={escalationLevelData?.name}\n errors={errors}\n disabled={true}\n dataTestId=\"addroledrawer-textfield-escalationlevel\"\n />\n </TableCell>\n <TableCell className=\"border-r border-gray-300 p-2\">\n <CustomAutocomplete\n control={control}\n value={\n watchFields.selectedPerformer?.[index]?.roles\n ? watchFields.selectedPerformer[\n index\n ]?.roles?.map((role) =>\n roleData.find((item) => item.id === role)\n )\n : []\n }\n name={`selectedPerformer[${index}].roles`}\n options={watchFields?.roles?.map((role) =>\n roleData.find((item) => item.id === role.id)\n )}\n getOptionLabel={(option) => option?.name}\n onChange={(e, val) => addPerformer(val, index)}\n dataTestId=\"addroledrawer-select-performer\"\n errors={errors}\n />\n </TableCell>\n <TableCell>\n <Button\n variant=\"contained\"\n size=\"small\"\n disabled={\n !watchFields.selectedPerformer[index]?.roles?.length\n }\n onClick={(e) => addPerformerInTable(e, index)}\n data-testid=\"addroledrawer-button-addperformer\"\n >\n {translate(\"Add\")}\n </Button>\n </TableCell>\n </TableRow>\n </TableBody>\n </Table>\n </Grid>\n <Grid>\n {escalationLevelData.roles.length ? (\n <Table\n className=\"border border-gray-300\"\n data-testid=\"addroledrawer-table-performactionroles\"\n >\n <TableHead>\n <TableRow>\n <TableCell className=\"border border-gray-300 p-2\">\n <Typography variant=\"body2\" className=\"font-bold\">\n {translate(\"Name\")}\n </Typography>\n </TableCell>\n <TableCell className=\"border border-gray-300 p-2\">\n <Typography variant=\"body2\" className=\"font-bold\">\n {translate(\"Roles with perform action\")}\n </Typography>\n </TableCell>\n <TableCell className=\"p-2\">\n <Typography variant=\"body2\" className=\"font-bold\">\n {translate(\"Delete\")}\n </Typography>\n </TableCell>\n </TableRow>\n </TableHead>\n <TableBody>\n {escalationLevelData.roles\n ?.filter((item) =>\n roleData.find((role) => role.id === item)\n ) // Filter first\n .map((item, roleIndex) => (\n <TableRow\n key={item}\n data-testid=\"addroledrawer-tablerow-roleactions\"\n >\n {roleIndex === 0 && (\n <TableCell\n className=\"border border-gray-300 p-2\"\n rowSpan={escalationLevelData.roles.length}\n >\n {escalationLevelData.name}\n </TableCell>\n )}\n <TableCell className=\"border border-gray-300 p-2\">\n <Box className=\"flex items-center\">\n <CustomCheckBox\n name={`${index}-${roleIndex}`}\n control={control}\n isFullWidth={false}\n checked={\n escalationLevelData.performAction[item]\n }\n onChange={(e) =>\n handlePerformAction(e, index, item)\n }\n data-testid=\"addroledrawer-checkbox-performaction\"\n />\n <Typography variant=\"caption\">\n {\n roleData.find((role) => role.id === item)\n ?.name\n }\n </Typography>\n </Box>\n </TableCell>\n <TableCell className=\"border border-gray-300 p-2\">\n <FontAwesomeIcon\n icon={faTrash}\n className=\"text-[18px] text-[var(--color-error)]\"\n onClick={() => {\n setOpenModal(2);\n setDeleteId(item);\n setDOMIndex(index);\n }}\n data-testid=\"addroledrawer-icon-deleterole\"\n />\n <CustomConfirmationModal\n open={\n openModal === 2 &&\n deleteId === item &&\n DOMIndex === index\n }\n handleClose={() => setOpenModal(0)}\n handleClick={(e) => {\n DeleteRolesWithActions(e, index);\n }}\n title={\"CONFIRM ACTION\"}\n description={\n \"Are you sure you want to delete this role?\"\n }\n dataTestId=\"addroledrawer-modal-confirmdeleterole\"\n />\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n ) : null}\n </Grid>\n </React.Fragment>\n ))}\n </Grid>\n <Divider data-testid=\"addroledrawer-divider\" />\n <Stack\n direction=\"row\"\n spacing={2}\n justifyContent=\"flex-end\"\n mt={2}\n mb={1.5}\n >\n <Button\n variant=\"contained\"\n color=\"secondary\"\n size=\"small\"\n onClick={() => {\n trackEvent(\"button_click\", {\n button_name: \"cancel widget button\",\n button_type: \"cancel\",\n button_id: \"addroledrawer-button-close\",\n });\n reset();\n setSelectedData([]);\n handleClose();\n }}\n data-testid=\"addroledrawer-button-close\"\n >\n <Typography variant=\"caption\">{`${translate(\"Close\")}`}</Typography>\n </Button>\n <Button\n variant=\"contained\"\n color=\"primary\"\n className=\"mr-2\"\n size=\"small\"\n onClick={handleSubmit(onSubmit)}\n data-testid=\"addroledrawer-button-submit\"\n >\n {translate(\"Update\")}\n </Button>\n </Stack>\n </Grid>\n </Drawer>\n );\n}\nAddRoleDrawer.propTypes = {\n open: PropTypes.any,\n handleClose: PropTypes.func,\n data: PropTypes.any,\n roleData: PropTypes.any,\n};\n"],"names":["updateNotification","data","api","implementationConfig","AddRoleDrawer","open","handleClose","roleData","formRef","useRef","submitRef","selectedData","setSelectedData","useState","deleteId","setDeleteId","openModal","setOpenModal","DOMIndex","setDOMIndex","translate","useTranslateProvider","validationSchema","yup","useEffect","form","trackEvent","control","errors","handleSubmit","setValue","getValues","watch","reset","useForm","yupResolver","watchFields","_a","role","cur","addPerformer","values","index","ids","value","handlePerformAction","e","roleId","previousEscalationValues","handleAddTable","previousRoleValues","updatedRoles","item","currentSelected","validRoles","updatedSelected","performer","filteredRoles","addPerformerInTable","selectedPerformer","handleDeleteRoleFeature","updatedValue","updatedEscalationValues","escalationLevel","_","updatedPerformAction","error","showToast","DeleteRolesWithActions","prevValue","useTrackEvent","onSubmit","roles","escalationLevels","roleIds","updatedData","jsx","Drawer","jsxs","Grid","Typography","CustomTextField","CustomAutocomplete","option","val","Button","Table","TableHead","TableRow","TableCell","TableBody","FontAwesomeIcon","faTrash","CustomConfirmationModal","_b","escalationLevelData","React","_d","_c","_e","_g","_f","_h","roleIndex","Box","CustomCheckBox","Divider","Stack","PropTypes"],"mappings":"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"}
|