@argusoft/medplat-core 1.0.28 → 1.0.29
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-Zm8Obm4N.js +1284 -0
- package/dist/AccessRights-Zm8Obm4N.js.map +1 -0
- package/dist/{AddFeatures-C0Z29oSd.js → AddFeatures-v3TmGQee.js} +2 -2
- package/dist/{AddFeatures-C0Z29oSd.js.map → AddFeatures-v3TmGQee.js.map} +1 -1
- package/dist/AddMenuConfiguration-Ce91MhnU.js +8547 -0
- package/dist/AddMenuConfiguration-Ce91MhnU.js.map +1 -0
- package/dist/{AddRoleDrawer-CQdzQZLb.js → AddRoleDrawer-0gqAK8N0.js} +62 -63
- package/dist/AddRoleDrawer-0gqAK8N0.js.map +1 -0
- package/dist/{ChangePasswordModalCore-CDxkeIIM.js → ChangePasswordModalCore-DutQAZOx.js} +2 -2
- package/dist/{ChangePasswordModalCore-CDxkeIIM.js.map → ChangePasswordModalCore-DutQAZOx.js.map} +1 -1
- package/dist/{ConditionConfig-DSsgGEXS.js → ConditionConfig-B4Ffpgj3.js} +2 -2
- package/dist/ConditionConfig-B4Ffpgj3.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/{EventConfigurations-kNtAj_WM.js → EventConfigurations-BJcURufo.js} +3 -3
- package/dist/{EventConfigurations-kNtAj_WM.js.map → EventConfigurations-BJcURufo.js.map} +1 -1
- package/dist/{EventsExceptionModal-D4Bf1ilS.js → EventsExceptionModal-BlZtBQoR.js} +2 -2
- package/dist/{EventsExceptionModal-D4Bf1ilS.js.map → EventsExceptionModal-BlZtBQoR.js.map} +1 -1
- package/dist/{EventsSkeleton-8iiETGcf.js → EventsSkeleton-DK6JDKAK.js} +26 -19
- package/dist/EventsSkeleton-DK6JDKAK.js.map +1 -0
- package/dist/{FeatureMenu-jl7-Tk6y.js → FeatureMenu-C3503UIX.js} +3 -3
- package/dist/{FeatureMenu-jl7-Tk6y.js.map → FeatureMenu-C3503UIX.js.map} +1 -1
- package/dist/Features-Dne21RWu.js +14 -0
- package/dist/Features-Dne21RWu.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/ImmunizationConfigurationBase-DLQVSNnt.js +5895 -0
- package/dist/ImmunizationConfigurationBase-DLQVSNnt.js.map +1 -0
- package/dist/ImmunizationConfigurationBase.css +1 -1
- package/dist/{ManageDynamicFeature-BhONvfC_.js → ManageDynamicFeature-dt096fyj.js} +2 -2
- package/dist/{ManageDynamicFeature-BhONvfC_.js.map → ManageDynamicFeature-dt096fyj.js.map} +1 -1
- package/dist/{ManageEventConfiguration-DV3I5POA.js → ManageEventConfiguration-BpSJszSX.js} +5 -5
- package/dist/{ManageEventConfiguration-DV3I5POA.js.map → ManageEventConfiguration-BpSJszSX.js.map} +1 -1
- package/dist/ManageNotification-CfhHlfxA.js +934 -0
- package/dist/ManageNotification-CfhHlfxA.js.map +1 -0
- package/dist/{ManageRole-CGYfglpo.js → ManageRole-4Y2PP4dQ.js} +32 -30
- package/dist/ManageRole-4Y2PP4dQ.js.map +1 -0
- package/dist/{ManageUser-AY1EUDLI.js → ManageUser-DDzyd9jm.js} +1728 -1592
- package/dist/ManageUser-DDzyd9jm.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-DUkUYACe.js} +2 -2
- package/dist/MobileTypeEventConfigModal-DUkUYACe.js.map +1 -0
- package/dist/{NotificationList-C3Vb_jKU.js → NotificationList-BMFpNUJG.js} +109 -110
- package/dist/NotificationList-BMFpNUJG.js.map +1 -0
- package/dist/{OtherTypeEventConfigModal-BeG1GrUi.js → OtherTypeEventConfigModal-CYBfr2XE.js} +570 -478
- package/dist/OtherTypeEventConfigModal-CYBfr2XE.js.map +1 -0
- package/dist/{RoleManagement-BPl2cE27.js → RoleManagement-DEiBNfT8.js} +100 -101
- package/dist/RoleManagement-DEiBNfT8.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/{SubMenu-DYxAPH2Z.js → SubMenu-B072oEGb.js} +3 -3
- package/dist/{SubMenu-DYxAPH2Z.js.map → SubMenu-B072oEGb.js.map} +1 -1
- 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/{TypeConfiguration-37wp-gsl.js → TypeConfiguration-C3xoP2Nb.js} +2 -2
- package/dist/{TypeConfiguration-37wp-gsl.js.map → TypeConfiguration-C3xoP2Nb.js.map} +1 -1
- 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/dashboardLayoutUtils-D1xCAxp3.js +405 -0
- package/dist/dashboardLayoutUtils-D1xCAxp3.js.map +1 -0
- package/dist/index.js +4 -752
- package/dist/index.js.map +1 -1
- package/dist/index.lib-C3fwoM3y.js +820 -0
- package/dist/index.lib-C3fwoM3y.js.map +1 -0
- package/package.json +2 -2
- package/dist/AccessRights-CHu27ZOw.js +0 -1262
- package/dist/AccessRights-CHu27ZOw.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/ConditionConfig-DSsgGEXS.js.map +0 -1
- package/dist/EventsSkeleton-8iiETGcf.js.map +0 -1
- package/dist/Features-CObdzJp_.js +0 -13
- package/dist/Features-CObdzJp_.js.map +0 -1
- package/dist/ImmunizationConfigurationBase-DZGqwda2.js +0 -5910
- package/dist/ImmunizationConfigurationBase-DZGqwda2.js.map +0 -1
- package/dist/ManageRole-CGYfglpo.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/NotificationList-C3Vb_jKU.js.map +0 -1
- package/dist/OtherTypeEventConfigModal-BeG1GrUi.js.map +0 -1
- package/dist/RoleManagement-BPl2cE27.js.map +0 -1
- package/dist/ServerSyncModal-D_oFpv3C.js.map +0 -1
- package/dist/TableDetails-Cf_YfnY2.js.map +0 -1
- package/dist/dashboardLayoutUtils-Bt5HA96J.js +0 -265
- package/dist/dashboardLayoutUtils-Bt5HA96J.js.map +0 -1
|
@@ -1,24 +1,23 @@
|
|
|
1
1
|
import { jsxs as l, jsx as t, Fragment as $ } from "react/jsx-runtime";
|
|
2
2
|
import g from "@/common/services/util/GeneralUtil";
|
|
3
|
-
import { useState as d, useEffect as
|
|
4
|
-
import
|
|
5
|
-
import { Box as
|
|
6
|
-
import { alpha as
|
|
7
|
-
import { useTranslateProvider as
|
|
8
|
-
import
|
|
9
|
-
import { api as f } from "@/common/interceptors/AxiosInterceptor";
|
|
3
|
+
import { useState as d, useEffect as me, Suspense as K, lazy as X } from "react";
|
|
4
|
+
import ue from "@/views/custom-components/CustomConfirmationModal";
|
|
5
|
+
import { Box as f, Card as I, Typography as m, Button as A, TextField as Q, Switch as fe, Chip as _ } from "@mui/material";
|
|
6
|
+
import { alpha as T } from "@mui/material/styles";
|
|
7
|
+
import { useTranslateProvider as he } from "@/common/languageTranslator/TranslationContext";
|
|
8
|
+
import { api as h } from "@/common/interceptors/AxiosInterceptor";
|
|
10
9
|
import { getRoleList as z } from "@/common/services/GlobalApis.js";
|
|
11
|
-
import { getAssignedFeatures as
|
|
10
|
+
import { getAssignedFeatures as pe } from "@/utils/feature.js";
|
|
12
11
|
import { showToast as x } from "@/common/toaster/toaster";
|
|
13
|
-
import { FontAwesomeIcon as
|
|
14
|
-
import { faTrash as
|
|
15
|
-
import
|
|
12
|
+
import { FontAwesomeIcon as ge } from "@fortawesome/react-fontawesome";
|
|
13
|
+
import { faTrash as xe } from "@fortawesome/free-solid-svg-icons";
|
|
14
|
+
import ve from "@/hooks/useTrackEvent";
|
|
16
15
|
import j from "prop-types";
|
|
17
|
-
import { useSelector as
|
|
16
|
+
import { useSelector as Z } from "react-redux";
|
|
18
17
|
import { getUseSkeleton as be } from "@/store/reducers/SkeletonReducer";
|
|
19
|
-
const V = () =>
|
|
20
|
-
...
|
|
21
|
-
}),
|
|
18
|
+
const V = () => h.get("/role"), ye = (i) => h.delete(`/menuconfig/usermenuitem?empMenuItemId=${i}`), we = (i) => h.get(`/role?id=${i}`), We = (i) => h.post("/role", { ...i }), Ye = (i) => h.put("/role", { ...i }), Ne = (i) => h.put(`role/?is_active=${i.state === "INACTIVE" ? "true" : "false"}`, {
|
|
19
|
+
...i
|
|
20
|
+
}), Pe = (i, n) => h.post(`/menuconfig/assignnewfeature?roleId=${n}`, { ...i }), ee = ({ children: i, isLoading: n = !0 }) => !Z(be) || !n ? i : /* @__PURE__ */ l("div", { className: "pt-6 relative h-[90vh]", children: [
|
|
22
21
|
/* @__PURE__ */ l("div", { className: "flex flex-row h-[80vh] ", children: [
|
|
23
22
|
/* @__PURE__ */ l("div", { className: "flex flex-col border border-gray-300 w-[20%] p-2 mr-3 rounded-md", children: [
|
|
24
23
|
" ",
|
|
@@ -40,77 +39,77 @@ const V = () => f.get("/role"), we = (n) => f.delete(O.api.useQueryParamStyle ?
|
|
|
40
39
|
] }),
|
|
41
40
|
/* @__PURE__ */ t("div", { className: "absolute bottom-20 right-[10px] ", children: /* @__PURE__ */ t("div", { className: "bg-gray-300 animate-pulse rounded-full w-[40px] h-[40px]" }) })
|
|
42
41
|
] });
|
|
43
|
-
|
|
42
|
+
ee.propTypes = {
|
|
44
43
|
children: j.any,
|
|
45
44
|
loading: j.any,
|
|
46
45
|
isLoading: j.any
|
|
47
46
|
};
|
|
48
|
-
const
|
|
47
|
+
const Ce = X(() => import("./AddFeatures-v3TmGQee.js")), Ie = X(() => import("./ManageRole-4Y2PP4dQ.js"));
|
|
49
48
|
function Ae() {
|
|
50
49
|
var H;
|
|
51
|
-
const { translate:
|
|
50
|
+
const { translate: i } = he(), [n, b] = d(""), [a, y] = d(n[0]), [k, te] = d(!1), [O, u] = d(!1), [D, B] = d(!1), [S, U] = d(0), [W, F] = d(""), [w, Y] = d(""), [c, ae] = d(null), [se, E] = d(!1), P = ve(), J = Z((e) => e.Authenticate.user.roleId), [R, re] = d([]), N = async (e = !1) => {
|
|
52
51
|
var s;
|
|
53
52
|
try {
|
|
54
53
|
u(!0);
|
|
55
|
-
const r =
|
|
56
|
-
let
|
|
54
|
+
const r = k ? V() : z();
|
|
55
|
+
let o, p = [];
|
|
57
56
|
if (J) {
|
|
58
57
|
const [{ data: v }, L] = await Promise.all([
|
|
59
58
|
r,
|
|
60
|
-
|
|
59
|
+
we(J)
|
|
61
60
|
]);
|
|
62
|
-
|
|
61
|
+
o = v, p = ((s = L == null ? void 0 : L.data) == null ? void 0 : s.roleIds) || [];
|
|
63
62
|
} else {
|
|
64
63
|
const { data: v } = await r;
|
|
65
|
-
|
|
64
|
+
o = v;
|
|
66
65
|
}
|
|
67
|
-
|
|
68
|
-
const M = p.length > 0 ?
|
|
69
|
-
|
|
66
|
+
re(p);
|
|
67
|
+
const M = p.length > 0 ? o.filter((v) => p.includes(v.id)) : o;
|
|
68
|
+
b(M), !e && M.length > 0 && y(M[0]);
|
|
70
69
|
} catch (r) {
|
|
71
70
|
console.error(r), x({ message: "Error in getting role data", type: "error" });
|
|
72
71
|
} finally {
|
|
73
72
|
u(!1);
|
|
74
73
|
}
|
|
75
74
|
};
|
|
76
|
-
|
|
75
|
+
me(function() {
|
|
77
76
|
(async () => {
|
|
78
|
-
const { data: s } = await
|
|
79
|
-
s &&
|
|
77
|
+
const { data: s } = await pe("techo.manage.role");
|
|
78
|
+
s && ae(JSON.parse(s));
|
|
80
79
|
})(), N();
|
|
81
80
|
}, []);
|
|
82
|
-
const
|
|
81
|
+
const le = async (e) => {
|
|
83
82
|
let s = e.target.checked;
|
|
84
|
-
|
|
83
|
+
te(e.target.checked);
|
|
85
84
|
try {
|
|
86
|
-
u((
|
|
85
|
+
u((o) => !o);
|
|
87
86
|
let r;
|
|
88
87
|
s ? { data: r } = await V() : { data: r } = await z(), R && R.length > 0 && (r = r.filter(
|
|
89
|
-
(
|
|
90
|
-
)),
|
|
88
|
+
(o) => R.includes(o.id)
|
|
89
|
+
)), b(r), y(r[0]), u((o) => !o), F("");
|
|
91
90
|
} catch (r) {
|
|
92
|
-
console.error(r), x({ message: "Error in getting role data", type: "error" }), u((
|
|
91
|
+
console.error(r), x({ message: "Error in getting role data", type: "error" }), u((o) => !o);
|
|
93
92
|
}
|
|
94
|
-
}, G =
|
|
93
|
+
}, G = n ? n == null ? void 0 : n.filter(
|
|
95
94
|
(e) => e.name.toLowerCase().includes(W.toLowerCase())
|
|
96
|
-
) : [],
|
|
95
|
+
) : [], ne = (e) => {
|
|
97
96
|
if (!e) return "";
|
|
98
|
-
const s = new Date(Number(e)), r = String(s.getDate()).padStart(2, "0"),
|
|
99
|
-
return `${r}/${
|
|
100
|
-
},
|
|
97
|
+
const s = new Date(Number(e)), r = String(s.getDate()).padStart(2, "0"), o = String(s.getMonth() + 1).padStart(2, "0"), p = s.getFullYear();
|
|
98
|
+
return `${r}/${o}/${p}`;
|
|
99
|
+
}, oe = async () => {
|
|
101
100
|
E(!1);
|
|
102
101
|
try {
|
|
103
|
-
const e =
|
|
104
|
-
await
|
|
102
|
+
const e = n == null ? void 0 : n.find((r) => r.id === a.id);
|
|
103
|
+
await Ne(e), x({
|
|
105
104
|
message: `State succesfully changed from ${(e == null ? void 0 : e.state) === "INACTIVE" ? "inactive" : "active"} to ${(e == null ? void 0 : e.state) === "INACTIVE" ? "active" : "inactive"}`,
|
|
106
105
|
type: "success"
|
|
107
106
|
});
|
|
108
107
|
let s;
|
|
109
|
-
u((r) => !r),
|
|
108
|
+
u((r) => !r), k ? s = await V() : s = await z(), b(s.data), y(s.data[0]), u((r) => !r);
|
|
110
109
|
} catch (e) {
|
|
111
110
|
console.error(e), x({ message: "Error in handle active", type: "error" }), u((s) => !s);
|
|
112
111
|
}
|
|
113
|
-
}, C =
|
|
112
|
+
}, C = n ? (H = n.find((e) => e.id === a.id)) == null ? void 0 : H.assignedFeatureList.filter(
|
|
114
113
|
(e) => {
|
|
115
114
|
var s;
|
|
116
115
|
return (s = e.featureName) == null ? void 0 : s.toLowerCase().includes(w == null ? void 0 : w.toLowerCase());
|
|
@@ -118,23 +117,23 @@ function Ae() {
|
|
|
118
117
|
).sort((e, s) => {
|
|
119
118
|
var r;
|
|
120
119
|
return (r = e.featureName) == null ? void 0 : r.localeCompare(s.featureName);
|
|
121
|
-
}) : [],
|
|
120
|
+
}) : [], ie = async (e) => {
|
|
122
121
|
try {
|
|
123
|
-
await
|
|
122
|
+
await ye(e.userMenuItemId), await N(!0), Y(""), x({ message: "Feature deleted successfully!", type: "success" });
|
|
124
123
|
} catch (s) {
|
|
125
124
|
x({ message: s, type: "error" });
|
|
126
125
|
}
|
|
127
126
|
}, q = (e) => {
|
|
128
|
-
U(e),
|
|
127
|
+
U(e), P("button_click", {
|
|
129
128
|
button_name: `${e === 1 ? "add" : "edit"} role modal button`,
|
|
130
129
|
button_type: "navigate",
|
|
131
130
|
button_id: `roles-${e === 1 ? "add" : "edit"}-button`
|
|
132
131
|
});
|
|
133
|
-
},
|
|
132
|
+
}, ce = () => {
|
|
134
133
|
N(), F("");
|
|
135
|
-
},
|
|
134
|
+
}, de = async () => {
|
|
136
135
|
try {
|
|
137
|
-
|
|
136
|
+
B(!0), await P("button_click", {
|
|
138
137
|
button_name: "add feature button",
|
|
139
138
|
button_type: "navigate",
|
|
140
139
|
button_id: "roles-addfeatures-button-add"
|
|
@@ -143,13 +142,13 @@ function Ae() {
|
|
|
143
142
|
console.error(e);
|
|
144
143
|
}
|
|
145
144
|
};
|
|
146
|
-
return !
|
|
145
|
+
return !O && c !== null && !g.hasCheckRights(c == null ? void 0 : c["view.manage.role"]) ? /* @__PURE__ */ t(f, { className: "flex justify-center items-center w-full h-[80vh]", children: /* @__PURE__ */ t(
|
|
147
146
|
I,
|
|
148
147
|
{
|
|
149
148
|
className: "h-80 w-150 flex justify-center items-center",
|
|
150
149
|
children: /* @__PURE__ */ t(m, { variant: "h5", className: "text-customBlue", children: "You dont have permission to view Roles" })
|
|
151
150
|
}
|
|
152
|
-
) }) : /* @__PURE__ */ t(
|
|
151
|
+
) }) : /* @__PURE__ */ t(ee, { isLoading: O, children: /* @__PURE__ */ l(f, { className: "flex flex-col gap-4 p-4 min-[900px]:flex-row min-[900px]:h-[calc(100vh-80px)]", children: [
|
|
153
152
|
/* @__PURE__ */ l(
|
|
154
153
|
I,
|
|
155
154
|
{
|
|
@@ -167,19 +166,19 @@ function Ae() {
|
|
|
167
166
|
}
|
|
168
167
|
),
|
|
169
168
|
g.hasCheckRights(c == null ? void 0 : c["create.manage.role"]) && /* @__PURE__ */ t(
|
|
170
|
-
|
|
169
|
+
A,
|
|
171
170
|
{
|
|
172
171
|
size: "small",
|
|
173
172
|
variant: "contained",
|
|
174
173
|
color: "primary",
|
|
175
174
|
onClick: () => q(1),
|
|
176
175
|
"data-testid": "managerole-add-button",
|
|
177
|
-
children:
|
|
176
|
+
children: i("+ Add Role")
|
|
178
177
|
}
|
|
179
178
|
)
|
|
180
179
|
] }),
|
|
181
180
|
/* @__PURE__ */ t(
|
|
182
|
-
|
|
181
|
+
Q,
|
|
183
182
|
{
|
|
184
183
|
size: "small",
|
|
185
184
|
variant: "outlined",
|
|
@@ -192,11 +191,11 @@ function Ae() {
|
|
|
192
191
|
),
|
|
193
192
|
/* @__PURE__ */ l("div", { className: "flex items-center gap-2 mt-3", children: [
|
|
194
193
|
/* @__PURE__ */ t(
|
|
195
|
-
|
|
194
|
+
fe,
|
|
196
195
|
{
|
|
197
196
|
size: "small",
|
|
198
|
-
checked:
|
|
199
|
-
onChange:
|
|
197
|
+
checked: k,
|
|
198
|
+
onChange: le
|
|
200
199
|
}
|
|
201
200
|
),
|
|
202
201
|
/* @__PURE__ */ t(m, { variant: "body2", children: "Include Inactive" })
|
|
@@ -205,11 +204,11 @@ function Ae() {
|
|
|
205
204
|
I,
|
|
206
205
|
{
|
|
207
206
|
variant: "outlined",
|
|
208
|
-
onClick: () =>
|
|
207
|
+
onClick: () => y(e),
|
|
209
208
|
className: `p-3 cursor-pointer transition
|
|
210
209
|
${a.id === e.id ? "border-b-2" : "border-b-2 border-0"}`,
|
|
211
210
|
sx: a.id === e.id ? {
|
|
212
|
-
bgcolor: (s) =>
|
|
211
|
+
bgcolor: (s) => T(s.palette.primary.main, 0.08)
|
|
213
212
|
} : {},
|
|
214
213
|
children: [
|
|
215
214
|
/* @__PURE__ */ l(m, { fontWeight: 600, children: [
|
|
@@ -257,14 +256,14 @@ function Ae() {
|
|
|
257
256
|
className: "mt-1",
|
|
258
257
|
children: [
|
|
259
258
|
"Created on ",
|
|
260
|
-
|
|
259
|
+
ne(a == null ? void 0 : a.createdOn)
|
|
261
260
|
]
|
|
262
261
|
}
|
|
263
262
|
)
|
|
264
263
|
] }),
|
|
265
264
|
/* @__PURE__ */ l("div", { className: "flex gap-2", children: [
|
|
266
265
|
g.hasCheckRights(c == null ? void 0 : c["update.manage.role.toggleActive"]) && /* @__PURE__ */ t(
|
|
267
|
-
|
|
266
|
+
A,
|
|
268
267
|
{
|
|
269
268
|
variant: "outlined",
|
|
270
269
|
size: "small",
|
|
@@ -273,7 +272,7 @@ function Ae() {
|
|
|
273
272
|
}
|
|
274
273
|
),
|
|
275
274
|
g.hasCheckRights(c == null ? void 0 : c["update.manage.role"]) && /* @__PURE__ */ t(
|
|
276
|
-
|
|
275
|
+
A,
|
|
277
276
|
{
|
|
278
277
|
variant: "contained",
|
|
279
278
|
size: "small",
|
|
@@ -286,17 +285,17 @@ function Ae() {
|
|
|
286
285
|
/* @__PURE__ */ l("div", { className: "mt-5 flex flex-col flex-1 overflow-hidden", children: [
|
|
287
286
|
/* @__PURE__ */ l("div", { className: "flex flex-col sm:flex-row justify-between items-start sm:items-center mb-4 gap-4", children: [
|
|
288
287
|
/* @__PURE__ */ l("div", { className: "flex flex-row items-center gap-2 w-full sm:w-auto", children: [
|
|
289
|
-
/* @__PURE__ */ t(m, { fontWeight: 600, children:
|
|
288
|
+
/* @__PURE__ */ t(m, { fontWeight: 600, children: i("Assigned Features") }),
|
|
290
289
|
/* @__PURE__ */ l(m, { variant: "body2", color: "text.secondary", children: [
|
|
291
290
|
"(",
|
|
292
291
|
C.length,
|
|
293
292
|
" ",
|
|
294
|
-
|
|
293
|
+
i("features active for this role"),
|
|
295
294
|
")"
|
|
296
295
|
] })
|
|
297
296
|
] }),
|
|
298
297
|
/* @__PURE__ */ t(
|
|
299
|
-
|
|
298
|
+
Q,
|
|
300
299
|
{
|
|
301
300
|
size: "small",
|
|
302
301
|
sx: { width: { xs: "100%", sm: "60%" } },
|
|
@@ -308,23 +307,23 @@ function Ae() {
|
|
|
308
307
|
}
|
|
309
308
|
)
|
|
310
309
|
] }),
|
|
311
|
-
/* @__PURE__ */ l(
|
|
310
|
+
/* @__PURE__ */ l(f, { className: "overflow-x-auto w-full", children: [
|
|
312
311
|
/* @__PURE__ */ l(
|
|
313
|
-
|
|
312
|
+
f,
|
|
314
313
|
{
|
|
315
314
|
className: "grid grid-cols-[minmax(340px,1.5fr)_120px] px-4 py-2 text-[15px] font-semibold border-b min-w-[500px]",
|
|
316
315
|
sx: {
|
|
317
316
|
color: "text.secondary",
|
|
318
|
-
bgcolor: (e) =>
|
|
317
|
+
bgcolor: (e) => T(e.palette.action.hover, 0.04)
|
|
319
318
|
},
|
|
320
319
|
children: [
|
|
321
|
-
/* @__PURE__ */ t("div", { children:
|
|
322
|
-
/* @__PURE__ */ t("div", { className: "text-center", children:
|
|
320
|
+
/* @__PURE__ */ t("div", { children: i("FEATURE NAME") }),
|
|
321
|
+
/* @__PURE__ */ t("div", { className: "text-center", children: i("ACTIONS") })
|
|
323
322
|
]
|
|
324
323
|
}
|
|
325
324
|
),
|
|
326
325
|
/* @__PURE__ */ l(
|
|
327
|
-
|
|
326
|
+
f,
|
|
328
327
|
{
|
|
329
328
|
className: "h-[calc(100vh-440px)] overflow-y-auto min-w-[500px]",
|
|
330
329
|
sx: {
|
|
@@ -332,22 +331,22 @@ function Ae() {
|
|
|
332
331
|
},
|
|
333
332
|
children: [
|
|
334
333
|
C.length > 0 && /* @__PURE__ */ t($, { children: C.map((e, s) => /* @__PURE__ */ l(
|
|
335
|
-
|
|
334
|
+
f,
|
|
336
335
|
{
|
|
337
336
|
className: "grid grid-cols-[minmax(340px,1.5fr)_120px] px-4 py-3 items-center border-b last:border-b-0 transition",
|
|
338
337
|
sx: {
|
|
339
338
|
"&:hover": {
|
|
340
|
-
bgcolor: (r) =>
|
|
339
|
+
bgcolor: (r) => T(r.palette.action.hover, 0.04)
|
|
341
340
|
}
|
|
342
341
|
},
|
|
343
342
|
children: [
|
|
344
343
|
/* @__PURE__ */ t("div", { className: "flex flex-col", children: /* @__PURE__ */ t(m, { sx: { fontSize: "13px", fontWeight: 600 }, children: e.featureName }) }),
|
|
345
344
|
/* @__PURE__ */ t("div", { className: "flex justify-center", children: g.hasCheckRights(c == null ? void 0 : c["view.manage.role.unassignFeature"]) && /* @__PURE__ */ t(
|
|
346
|
-
|
|
345
|
+
ge,
|
|
347
346
|
{
|
|
348
|
-
icon:
|
|
347
|
+
icon: xe,
|
|
349
348
|
onClick: () => {
|
|
350
|
-
|
|
349
|
+
ie(e);
|
|
351
350
|
},
|
|
352
351
|
color: "error",
|
|
353
352
|
className: "text-red-400 cursor-pointer",
|
|
@@ -372,65 +371,65 @@ function Ae() {
|
|
|
372
371
|
] })
|
|
373
372
|
] }),
|
|
374
373
|
/* @__PURE__ */ t(
|
|
375
|
-
|
|
374
|
+
f,
|
|
376
375
|
{
|
|
377
376
|
className: "border-t p-4",
|
|
378
377
|
sx: {
|
|
379
|
-
bgcolor: (e) =>
|
|
378
|
+
bgcolor: (e) => T(e.palette.primary.main, 0.06)
|
|
380
379
|
},
|
|
381
|
-
children: g.hasCheckRights(c == null ? void 0 : c["view.manage.role.assignFeature"]) && /* @__PURE__ */ t(
|
|
380
|
+
children: g.hasCheckRights(c == null ? void 0 : c["view.manage.role.assignFeature"]) && /* @__PURE__ */ t(A, { variant: "outlined", size: "small", onClick: de, children: "+ Add More Features" })
|
|
382
381
|
}
|
|
383
382
|
)
|
|
384
383
|
]
|
|
385
384
|
}
|
|
386
385
|
),
|
|
387
386
|
/* @__PURE__ */ t(
|
|
388
|
-
|
|
387
|
+
ue,
|
|
389
388
|
{
|
|
390
|
-
open:
|
|
389
|
+
open: se,
|
|
391
390
|
handleClose: () => E(!1),
|
|
392
|
-
handleClick:
|
|
391
|
+
handleClick: oe,
|
|
393
392
|
title: (a == null ? void 0 : a.state) === "ACTIVE" ? "Deactivate Role" : "Activate Role",
|
|
394
393
|
description: `Are you sure you want to ${(a == null ? void 0 : a.state) === "ACTIVE" ? "deactivate" : "activate"} the role "${a == null ? void 0 : a.name}"?`,
|
|
395
394
|
dataTestId: "toggle-role-confirm-modal"
|
|
396
395
|
}
|
|
397
396
|
),
|
|
398
397
|
/* @__PURE__ */ t(K, { children: /* @__PURE__ */ t(
|
|
399
|
-
|
|
398
|
+
Ie,
|
|
400
399
|
{
|
|
401
|
-
isUpdate:
|
|
402
|
-
selectedId:
|
|
400
|
+
isUpdate: S !== 1,
|
|
401
|
+
selectedId: S === 2 ? a.id : null,
|
|
403
402
|
"data-testid": "roles-managerole-add-button",
|
|
404
|
-
open:
|
|
403
|
+
open: S,
|
|
405
404
|
setOpen: U,
|
|
406
|
-
isRoleListModified:
|
|
405
|
+
isRoleListModified: ce
|
|
407
406
|
}
|
|
408
407
|
) }),
|
|
409
|
-
/* @__PURE__ */ t(K, { fallback: /* @__PURE__ */ t("div", { className: "animate-pulse w-80 h-20 " }), children:
|
|
410
|
-
|
|
408
|
+
/* @__PURE__ */ t(K, { fallback: /* @__PURE__ */ t("div", { className: "animate-pulse w-80 h-20 " }), children: D === !0 && /* @__PURE__ */ t(
|
|
409
|
+
Ce,
|
|
411
410
|
{
|
|
412
|
-
open:
|
|
413
|
-
setOpenModal:
|
|
411
|
+
open: D,
|
|
412
|
+
setOpenModal: B,
|
|
414
413
|
selectedId: a.id,
|
|
415
414
|
setData: () => N(!0),
|
|
416
|
-
assignedFeatureList:
|
|
415
|
+
assignedFeatureList: n ? (() => {
|
|
417
416
|
var e, s, r;
|
|
418
|
-
return (e =
|
|
417
|
+
return (e = n == null ? void 0 : n.find((o) => (o == null ? void 0 : o.id) === a.id)) != null && e.assignedFeatureList ? (s = n == null ? void 0 : n.find((o) => (o == null ? void 0 : o.id) === a.id)) == null ? void 0 : s.assignedFeatureList : (r = n[0]) == null ? void 0 : r.assignedFeatureList;
|
|
419
418
|
})() : [],
|
|
420
419
|
"data-testid": "roles-addfeatures-component"
|
|
421
420
|
}
|
|
422
421
|
) })
|
|
423
422
|
] }) });
|
|
424
423
|
}
|
|
425
|
-
const
|
|
424
|
+
const Je = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
426
425
|
__proto__: null,
|
|
427
426
|
default: Ae
|
|
428
427
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
429
428
|
export {
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
429
|
+
Je as R,
|
|
430
|
+
Ye as a,
|
|
431
|
+
We as b,
|
|
432
|
+
we as g,
|
|
433
|
+
Pe as p
|
|
435
434
|
};
|
|
436
|
-
//# sourceMappingURL=RoleManagement-
|
|
435
|
+
//# sourceMappingURL=RoleManagement-DEiBNfT8.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RoleManagement-DEiBNfT8.js","sources":["../src/services/Roles.js","../src/views/Roles/Skeletons/RoleManagementSkeleton.jsx","../src/views/Roles/RoleManagement.jsx"],"sourcesContent":["import { api } from \"@/common/interceptors/AxiosInterceptor\";\n\nexport const getAllRoleList = () => api.get(\"/role\");\n\nexport const deleteRoleFeature = (id) =>\n api.delete(`/menuconfig/usermenuitem?empMenuItemId=${id}`);\n\nexport const getRoleById = (id) => api.get(`/role?id=${id}`);\n\nexport const postRole = (params) => api.post(\"/role\", { ...params });\n\nexport const putRole = (params) => api.put(\"/role\", { ...params });\n\nexport const ToggleState = (params) =>\n api.put(`role/?is_active=${params.state === \"INACTIVE\" ? \"true\" : \"false\"}`, {\n ...params,\n });\nexport const postNewFeature = (params, id) =>\n api.post(`/menuconfig/assignnewfeature?roleId=${id}`, { ...params });\n","import PropTypes from \"prop-types\";\nimport React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { getUseSkeleton } from \"@/store/reducers/SkeletonReducer\";\n\nconst RoleManagementSkeleton = ({ children, isLoading = true }) => {\n const useSkeleton = useSelector(getUseSkeleton);\n if (!useSkeleton) {\n return children;\n }\n if (!isLoading) {\n return children;\n }\n\n return (\n <div className=\"pt-6 relative h-[90vh]\">\n {/* skleton for roles and add button */}\n\n <div className=\"flex flex-row h-[80vh] \">\n <div className=\"flex flex-col border border-gray-300 w-[20%] p-2 mr-3 rounded-md\">\n {\" \"}\n <div className=\"flex justify-between\">\n {/* skleton for list of roles and toogle roles */}\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-23 h-[40px] mr-3\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-40 h-[40px]\"></div>\n </div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm mt-2 w-full h-[50px]\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm mt-2 w-full h-full\"></div>\n </div>\n <div className=\"flex flex-col border border-gray-300 w-[80%] p-2 rounded-md\">\n <div className=\"flex justify-between\">\n {/* skleton for role name and options */}\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-24 h-[40px]\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-21 h-[40px]\"></div>\n </div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm mt-2 w-full h-[50px]\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm mt-2 w-full h-full\"></div>\n </div>\n </div>\n\n <div className=\"absolute bottom-20 right-[10px] \">\n <div className=\"bg-gray-300 animate-pulse rounded-full w-[40px] h-[40px]\"></div>\n </div>\n </div>\n );\n};\n\nRoleManagementSkeleton.propTypes = {\n children: PropTypes.any,\n loading: PropTypes.any,\n isLoading: PropTypes.any,\n};\n\nexport default RoleManagementSkeleton;\n","import GeneralUtil from \"@/common/services/util/GeneralUtil\";\nimport { Suspense, useEffect, useState, lazy } from \"react\";\nimport CustomConfirmationModal from \"@/views/custom-components/CustomConfirmationModal\";\nimport {\n Box,\n Card,\n Switch,\n TextField,\n Button,\n Chip,\n Typography,\n} from \"@mui/material\";\nimport { alpha } from \"@mui/material/styles\";\nimport { useTranslateProvider } from \"@/common/languageTranslator/TranslationContext\";\nimport {\n getAllRoleList,\n ToggleState,\n deleteRoleFeature,\n getRoleById,\n} from \"../../services/Roles.js\";\nimport { getRoleList } from \"@/common/services/GlobalApis.js\";\nimport { getAssignedFeatures } from \"@/utils/feature.js\";\nimport { showToast } from \"@/common/toaster/toaster\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faTrash } from \"@fortawesome/free-solid-svg-icons\";\nimport useTrackEvent from \"@/hooks/useTrackEvent\";\nimport RoleManagementSkeleton from \"./Skeletons/RoleManagementSkeleton.jsx\";\nimport { useSelector } from \"react-redux\";\nconst AddFeatures = lazy(() => import(\"./AddFeatures.jsx\"));\nconst ManageRole = lazy(() => import(\"./ManageRole.jsx\"));\n\nexport default function RoleManagement() {\n const { translate } = useTranslateProvider();\n const [Data, setData] = useState(\"\");\n const [selectedRole, setSelectedRole] = useState(Data[0]);\n const [includeInActive, setincludeInActive] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const [openModal, setOpenModal] = useState(false);\n const [openManageRole, setOpenManageRole] = useState(0);\n const [searchText, setSearchText] = useState(\"\");\n const [searchQuery, setSearchQuery] = useState(\"\");\n const [rights, setRights] = useState(null);\n const [confirmToggleOpen, setConfirmToggleOpen] = useState(false);\n const trackEvent = useTrackEvent();\n const currentLoogedInUserRoleId = useSelector((state) => state.Authenticate.user.roleId);\n const [allowedRoleIds, setallowedRoleIds] = useState([]);\n\n const getAllData = async (isPreserveRole = false) => {\n try {\n setIsLoading(true);\n const roleListPromise = includeInActive ? getAllRoleList() : getRoleList();\n let data, userRoleIds = [];\n if (currentLoogedInUserRoleId) {\n // Run both APIs in parallel\n const [{ data: roleData }, currRoleData] = await Promise.all([\n roleListPromise,\n getRoleById(currentLoogedInUserRoleId),\n ]);\n data = roleData;\n userRoleIds = currRoleData?.data?.roleIds || [];\n } else {\n // Only fetch role list\n const { data: roleData } = await roleListPromise;\n data = roleData;\n }\n setallowedRoleIds(userRoleIds);\n // ✅ Filter logic (keep only allowed roles)\n const filteredData =\n userRoleIds.length > 0\n ? data.filter((role) => userRoleIds.includes(role.id))\n : data; // fallback: show all if no roleIds\n setData(filteredData);\n if (!isPreserveRole && filteredData.length > 0) {\n setSelectedRole(filteredData[0]);\n }\n } catch (error) {\n console.error(error);\n showToast({ message: \"Error in getting role data\", type: \"error\" });\n } finally {\n setIsLoading(false);\n }\n };\n\n useEffect(function () {\n const fetchRights = async () => {\n const { data: featureJson } = await getAssignedFeatures(\"techo.manage.role\");\n if (featureJson) setRights(JSON.parse(featureJson));\n };\n fetchRights();\n getAllData();\n }, []);\n\n const handleCheckboxChange = async (event) => {\n let isChecked = event.target.checked;\n setincludeInActive(event.target.checked);\n try {\n setIsLoading((cur) => !cur);\n let data;\n if (isChecked) {\n ({ data } = await getAllRoleList());\n } else {\n ({ data } = await getRoleList());\n }\n if (allowedRoleIds && allowedRoleIds.length > 0) {\n data = data.filter(\n (role) => allowedRoleIds.includes(role.id)\n );\n }\n setData(data);\n setSelectedRole(data[0]);\n setIsLoading((cur) => !cur);\n setSearchText(\"\");\n } catch (error) {\n console.error(error);\n showToast({ message: \"Error in getting role data\", type: \"error\" });\n setIsLoading((cur) => !cur);\n }\n };\n\n const filterData = Data\n ? Data?.filter((feature) =>\n feature.name.toLowerCase().includes(searchText.toLowerCase())\n )\n : [];\n\n const formatDateDDMMYYYY = (timestamp) => {\n if (!timestamp) return \"\";\n const date = new Date(Number(timestamp));\n const day = String(date.getDate()).padStart(2, \"0\");\n const month = String(date.getMonth() + 1).padStart(2, \"0\");\n const year = date.getFullYear();\n return `${day}/${month}/${year}`;\n };\n\n const handleToggleState = async () => {\n setConfirmToggleOpen(false);\n try {\n const payload = Data?.find((data) => data.id === selectedRole.id);\n await ToggleState(payload);\n showToast({\n message: `State succesfully changed from ${payload?.state === \"INACTIVE\" ? \"inactive\" : \"active\"} to ${payload?.state === \"INACTIVE\" ? \"active\" : \"inactive\"}`,\n type: \"success\",\n });\n let res;\n setIsLoading((cur) => !cur);\n if (includeInActive) {\n res = await getAllRoleList();\n } else {\n res = await getRoleList();\n }\n\n setData(res.data);\n setSelectedRole(res.data[0]);\n setIsLoading((cur) => !cur);\n } catch (error) {\n console.error(error);\n showToast({ message: \"Error in handle active\", type: \"error\" });\n setIsLoading((cur) => !cur);\n }\n };\n\n const sortedFilteredFeatures = Data\n ? Data.find((obj) => obj.id === selectedRole.id)\n ?.assignedFeatureList.filter((feature) =>\n feature.featureName\n ?.toLowerCase()\n .includes(searchQuery?.toLowerCase())\n )\n .sort((a, b) => a.featureName?.localeCompare(b.featureName))\n : [];\n\n const handleDeleteRoleFeature = async (feature) => {\n try {\n await deleteRoleFeature(feature.userMenuItemId);\n await getAllData(true);\n setSearchQuery(\"\");\n showToast({ message: \"Feature deleted successfully!\", type: \"success\" });\n } catch (error) {\n showToast({ message: error, type: \"error\" });\n }\n };\n\n const handleManageRoleModel = (index) => {\n setOpenManageRole(index);\n trackEvent(\"button_click\", {\n button_name: `${index === 1 ? \"add\" : \"edit\"} role modal button`,\n button_type: \"navigate\",\n button_id: `roles-${index === 1 ? \"add\" : \"edit\"}-button`,\n });\n };\n\n const isRoleListModified = () => {\n getAllData();\n setSearchText(\"\");\n };\n\n const handleOpen = async () => {\n try {\n setOpenModal(true);\n await trackEvent(\"button_click\", {\n button_name: \"add feature button\",\n button_type: \"navigate\",\n button_id: \"roles-addfeatures-button-add\",\n });\n } catch (error) {\n console.error(error);\n }\n };\n\n return !isLoading && rights !== null && !GeneralUtil.hasCheckRights(rights?.[\"view.manage.role\"]) ? (\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 Roles\n </Typography>\n </Card>\n </Box>\n ) : (\n <RoleManagementSkeleton isLoading={isLoading}>\n <Box className=\"flex flex-col gap-4 p-4 min-[900px]:flex-row min-[900px]:h-[calc(100vh-80px)]\">\n <Card\n variant=\"outlined\"\n className=\"w-full min-[900px]:w-[300px] flex flex-col p-4\"\n >\n <div className=\"flex justify-between items-center mb-3\">\n <Typography\n variant=\"h6\"\n fontWeight={600}\n className=\"text-customBlue\"\n >\n User Roles\n </Typography>\n {GeneralUtil.hasCheckRights(rights?.['create.manage.role']) && (\n <Button\n size=\"small\"\n variant=\"contained\"\n color=\"primary\"\n onClick={() => handleManageRoleModel(1)}\n data-testid=\"managerole-add-button\"\n >\n {translate(\"+ Add Role\")}\n </Button>\n )}\n </div>\n <TextField\n size=\"small\"\n variant=\"outlined\"\n placeholder=\"Search roles...\"\n fullWidth\n value={searchText}\n onChange={(e) => setSearchText(e.target.value)}\n data-testid=\"listofroles-search-input\"\n />\n <div className=\"flex items-center gap-2 mt-3\">\n <Switch\n size=\"small\"\n checked={includeInActive}\n onChange={handleCheckboxChange}\n />\n <Typography variant=\"body2\">Include Inactive</Typography>\n </div>\n <div className=\"flex-1 overflow-y-auto mt-4\">\n {filterData.length > 0 && (\n <>\n {filterData.map((role) => (\n <Card\n key={role.id}\n variant=\"outlined\"\n onClick={() => setSelectedRole(role)}\n className={`p-3 cursor-pointer transition\n ${selectedRole.id === role.id\n ? \"border-b-2\"\n : \"border-b-2 border-0\"\n }`}\n sx={\n selectedRole.id === role.id\n ? {\n bgcolor: (t) => alpha(t.palette.primary.main, 0.08),\n }\n : {}\n }\n >\n <Typography fontWeight={600}>\n {role.name}\n \n {role?.state === \"INACTIVE\" && (\n <Chip label=\"INACTIVE\" color=\"disabled\" size=\"small\" />\n )}\n </Typography>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {role.assignedFeatureList.length} Features\n </Typography>\n </Card>\n ))}\n </>\n )}\n </div>\n </Card>\n <Card\n variant=\"outlined\"\n className=\"w-full min-[900px]:flex-1 flex flex-col p-5\"\n >\n <div className=\"flex flex-col sm:flex-row justify-between items-start border-b pb-4 gap-4\">\n <div className=\"flex flex-col gap-1 w-full sm:w-auto\">\n <div className=\"flex items-center gap-2\">\n <Typography\n variant=\"h5\"\n fontWeight={600}\n className=\"text-customBlue\"\n >\n {selectedRole?.name || \"Select Role\"}\n </Typography>\n {selectedRole?.state === \"ACTIVE\" && (\n <Chip label=\"ACTIVE\" color=\"success\" size=\"small\" />\n )}\n {selectedRole?.state === \"INACTIVE\" && (\n <Chip label=\"INACTIVE\" color=\"disabled\" size=\"small\" />\n )}\n </div>\n <Typography\n variant=\"body2\"\n color=\"text.secondary\"\n className=\"mt-1\"\n >\n Created on {formatDateDDMMYYYY(selectedRole?.createdOn)}\n </Typography>\n </div>\n <div className=\"flex gap-2\">\n {GeneralUtil.hasCheckRights(rights?.['update.manage.role.toggleActive']) && (\n <Button\n variant=\"outlined\"\n size=\"small\"\n onClick={() => setConfirmToggleOpen(true)}\n >\n {selectedRole?.state === \"ACTIVE\" ? \"Deactivate\" : \"Activate\"}\n </Button>\n )}\n {GeneralUtil.hasCheckRights(rights?.['update.manage.role']) && (\n <Button\n variant=\"contained\"\n size=\"small\"\n onClick={() => handleManageRoleModel(2)}\n >\n ✏️ Edit Role\n </Button>\n )}\n </div>\n </div>\n {/* ASSIGNED FEATURES */}\n <div className=\"mt-5 flex flex-col flex-1 overflow-hidden\">\n <div className=\"flex flex-col sm:flex-row justify-between items-start sm:items-center mb-4 gap-4\">\n <div className=\"flex flex-row items-center gap-2 w-full sm:w-auto\">\n <Typography fontWeight={600}>{translate(\"Assigned Features\")}</Typography>\n <Typography variant=\"body2\" color=\"text.secondary\">\n ({sortedFilteredFeatures.length} {translate(\"features active for this role\")})\n </Typography>\n </div>\n <TextField\n size=\"small\"\n sx={{ width: { xs: \"100%\", sm: \"60%\" } }}\n placeholder=\"Search Feature Name\"\n variant=\"outlined\"\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n data-testid=\"assignedfeatures-search-input\"\n />\n </div>\n <Box className=\"overflow-x-auto w-full\">\n <Box\n className=\"grid grid-cols-[minmax(340px,1.5fr)_120px] px-4 py-2 text-[15px] font-semibold border-b min-w-[500px]\"\n sx={{\n color: \"text.secondary\",\n bgcolor: (t) => alpha(t.palette.action.hover, 0.04),\n }}\n >\n <div>{translate(\"FEATURE NAME\")}</div>\n <div className=\"text-center\">{translate(\"ACTIONS\")}</div>\n </Box>\n <Box\n className=\"h-[calc(100vh-440px)] overflow-y-auto min-w-[500px]\"\n sx={{\n bgcolor: \"background.paper\",\n }}\n >\n {sortedFilteredFeatures.length > 0 && (\n <>\n {sortedFilteredFeatures.map((feature, index) => (\n <Box\n key={feature.id}\n className=\"grid grid-cols-[minmax(340px,1.5fr)_120px] px-4 py-3 items-center border-b last:border-b-0 transition\"\n sx={{\n \"&:hover\": {\n bgcolor: (t) => alpha(t.palette.action.hover, 0.04),\n },\n }}\n >\n <div className=\"flex flex-col\">\n <Typography sx={{ fontSize: \"13px\", fontWeight: 600 }}>\n {feature.featureName}\n </Typography>\n </div>\n <div className=\"flex justify-center\">\n {GeneralUtil.hasCheckRights(rights?.['view.manage.role.unassignFeature']) && (\n <FontAwesomeIcon\n icon={faTrash}\n onClick={() => {\n handleDeleteRoleFeature(feature);\n }}\n color=\"error\"\n className=\"text-red-400 cursor-pointer\"\n data-testid={`assignedfeatures-delete-icon-${index}`}\n />\n )}\n </div>\n </Box>\n ))}\n </>\n )}\n {sortedFilteredFeatures.length === 0 && (\n <>\n <Typography\n className=\"p-4\"\n sx={{ fontSize: \"13px\", fontStyle: \"italic\" }}\n >\n No Features assigned yet!\n </Typography>\n </>\n )}\n </Box>\n </Box>\n </div>\n <Box\n className=\"border-t p-4\"\n sx={{\n bgcolor: (t) => alpha(t.palette.primary.main, 0.06),\n }}\n >\n {GeneralUtil.hasCheckRights(rights?.['view.manage.role.assignFeature']) && (\n <Button variant=\"outlined\" size=\"small\" onClick={handleOpen}>\n + Add More Features\n </Button>\n )}\n </Box>\n </Card>\n <CustomConfirmationModal\n open={confirmToggleOpen}\n handleClose={() => setConfirmToggleOpen(false)}\n handleClick={handleToggleState}\n title={selectedRole?.state === \"ACTIVE\" ? \"Deactivate Role\" : \"Activate Role\"}\n description={`Are you sure you want to ${selectedRole?.state === \"ACTIVE\" ? \"deactivate\" : \"activate\"} the role \"${selectedRole?.name}\"?`}\n dataTestId=\"toggle-role-confirm-modal\"\n />\n <Suspense>\n <ManageRole\n isUpdate={openManageRole !== 1}\n selectedId={openManageRole === 2 ? selectedRole.id : null}\n data-testid=\"roles-managerole-add-button\"\n open={openManageRole}\n setOpen={setOpenManageRole}\n isRoleListModified={isRoleListModified}\n />\n </Suspense>\n <Suspense fallback={<div className=\"animate-pulse w-80 h-20 \"></div>}>\n {openModal === true && (\n <AddFeatures\n open={openModal}\n setOpenModal={setOpenModal}\n selectedId={selectedRole.id}\n setData={() => getAllData(true)}\n assignedFeatureList={\n Data\n ? (() =>\n Data?.find((data) => data?.id === selectedRole.id)\n ?.assignedFeatureList\n ? Data?.find((data) => data?.id === selectedRole.id)\n ?.assignedFeatureList\n : Data[0]?.assignedFeatureList)()\n : []\n }\n data-testid=\"roles-addfeatures-component\"\n />\n )}\n </Suspense>\n </Box>\n </RoleManagementSkeleton>\n );\n}\n"],"names":["getAllRoleList","api","deleteRoleFeature","id","getRoleById","postRole","params","putRole","ToggleState","postNewFeature","RoleManagementSkeleton","children","isLoading","useSelector","getUseSkeleton","jsxs","jsx","PropTypes","AddFeatures","lazy","ManageRole","RoleManagement","translate","useTranslateProvider","Data","setData","useState","selectedRole","setSelectedRole","includeInActive","setincludeInActive","setIsLoading","openModal","setOpenModal","openManageRole","setOpenManageRole","searchText","setSearchText","searchQuery","setSearchQuery","rights","setRights","confirmToggleOpen","setConfirmToggleOpen","trackEvent","useTrackEvent","currentLoogedInUserRoleId","state","allowedRoleIds","setallowedRoleIds","getAllData","isPreserveRole","roleListPromise","getRoleList","data","userRoleIds","roleData","currRoleData","_a","filteredData","role","error","showToast","useEffect","featureJson","getAssignedFeatures","handleCheckboxChange","event","isChecked","cur","filterData","feature","formatDateDDMMYYYY","timestamp","date","day","month","year","handleToggleState","payload","res","sortedFilteredFeatures","obj","a","b","handleDeleteRoleFeature","handleManageRoleModel","index","isRoleListModified","handleOpen","GeneralUtil","Box","Card","Typography","Button","TextField","Switch","Fragment","t","alpha","Chip","FontAwesomeIcon","faTrash","CustomConfirmationModal","Suspense","_b","_c"],"mappings":";;;;;;;;;;;;;;;;;AAEO,MAAMA,IAAiB,MAAMC,EAAI,IAAI,OAAO,GAEtCC,KAAoB,CAACC,MAChCF,EAAI,OAAO,0CAA0CE,CAAE,EAAE,GAE9CC,KAAc,CAACD,MAAOF,EAAI,IAAI,YAAYE,CAAE,EAAE,GAE9CE,KAAW,CAACC,MAAWL,EAAI,KAAK,SAAS,EAAE,GAAGK,EAAM,CAAE,GAEtDC,KAAU,CAACD,MAAWL,EAAI,IAAI,SAAS,EAAE,GAAGK,EAAM,CAAE,GAEpDE,KAAc,CAACF,MAC1BL,EAAI,IAAI,mBAAmBK,EAAO,UAAU,aAAa,SAAS,OAAO,IAAI;AAAA,EAC3E,GAAGA;AACP,CAAG,GACUG,KAAiB,CAACH,GAAQH,MACrCF,EAAI,KAAK,uCAAuCE,CAAE,IAAI,EAAE,GAAGG,EAAM,CAAE,GCb/DI,KAAyB,CAAC,EAAE,UAAAC,GAAU,WAAAC,IAAY,SAElD,CADgBC,EAAYC,EAAc,KAI1C,CAACF,IACID,IAIP,gBAAAI,EAAC,OAAA,EAAI,WAAU,0BAGb,UAAA;AAAA,EAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,4BACb,UAAA;AAAA,IAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,oEACZ,UAAA;AAAA,MAAA;AAAA,MACD,gBAAAA,EAAC,OAAA,EAAI,WAAU,wBAEb,UAAA;AAAA,QAAA,gBAAAC,EAAC,OAAA,EAAI,WAAU,0DAAA,CAA0D;AAAA,QACzE,gBAAAA,EAAC,OAAA,EAAI,WAAU,qDAAA,CAAqD;AAAA,MAAA,GACtE;AAAA,MACA,gBAAAA,EAAC,OAAA,EAAI,WAAU,4DAAA,CAA4D;AAAA,MAC3E,gBAAAA,EAAC,OAAA,EAAI,WAAU,0DAAA,CAA0D;AAAA,IAAA,GAC3E;AAAA,IACA,gBAAAD,EAAC,OAAA,EAAI,WAAU,+DACb,UAAA;AAAA,MAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,wBAEb,UAAA;AAAA,QAAA,gBAAAC,EAAC,OAAA,EAAI,WAAU,qDAAA,CAAqD;AAAA,QACpE,gBAAAA,EAAC,OAAA,EAAI,WAAU,qDAAA,CAAqD;AAAA,MAAA,GACtE;AAAA,MACA,gBAAAA,EAAC,OAAA,EAAI,WAAU,4DAAA,CAA4D;AAAA,MAC3E,gBAAAA,EAAC,OAAA,EAAI,WAAU,0DAAA,CAA0D;AAAA,IAAA,EAAA,CAC3E;AAAA,EAAA,GACF;AAAA,EAEA,gBAAAA,EAAC,SAAI,WAAU,oCACb,4BAAC,OAAA,EAAI,WAAU,4DAA2D,EAAA,CAC5E;AAAA,GACF;AAIJN,GAAuB,YAAY;AAAA,EACjC,UAAUO,EAAU;AAAA,EACpB,SAASA,EAAU;AAAA,EACnB,WAAWA,EAAU;AACvB;ACvBA,MAAMC,KAAcC,EAAK,MAAM,OAAO,2BAAmB,CAAC,GACpDC,KAAaD,EAAK,MAAM,OAAO,0BAAkB,CAAC;AAExD,SAAwBE,KAAiB;;AACvC,QAAM,EAAE,WAAAC,EAAA,IAAcC,GAAA,GAChB,CAACC,GAAMC,CAAO,IAAIC,EAAS,EAAE,GAC7B,CAACC,GAAcC,CAAe,IAAIF,EAASF,EAAK,CAAC,CAAC,GAClD,CAACK,GAAiBC,EAAkB,IAAIJ,EAAS,EAAK,GACtD,CAACd,GAAWmB,CAAY,IAAIL,EAAS,EAAK,GAC1C,CAACM,GAAWC,CAAY,IAAIP,EAAS,EAAK,GAC1C,CAACQ,GAAgBC,CAAiB,IAAIT,EAAS,CAAC,GAChD,CAACU,GAAYC,CAAa,IAAIX,EAAS,EAAE,GACzC,CAACY,GAAaC,CAAc,IAAIb,EAAS,EAAE,GAC3C,CAACc,GAAQC,EAAS,IAAIf,EAAS,IAAI,GACnC,CAACgB,IAAmBC,CAAoB,IAAIjB,EAAS,EAAK,GAC1DkB,IAAaC,GAAA,GACbC,IAA4BjC,EAAY,CAACkC,MAAUA,EAAM,aAAa,KAAK,MAAM,GACjF,CAACC,GAAgBC,EAAiB,IAAIvB,EAAS,CAAA,CAAE,GAEjDwB,IAAa,OAAOC,IAAiB,OAAU;;AACnD,QAAI;AACF,MAAApB,EAAa,EAAI;AACjB,YAAMqB,IAAkBvB,IAAkB7B,EAAA,IAAmBqD,EAAA;AAC7D,UAAIC,GAAMC,IAAc,CAAA;AACxB,UAAIT,GAA2B;AAE7B,cAAM,CAAC,EAAE,MAAMU,EAAA,GAAYC,CAAY,IAAI,MAAM,QAAQ,IAAI;AAAA,UAC3DL;AAAA,UACAhD,GAAY0C,CAAyB;AAAA,QAAA,CACtC;AACD,QAAAQ,IAAOE,GACPD,MAAcG,IAAAD,KAAA,gBAAAA,EAAc,SAAd,gBAAAC,EAAoB,YAAW,CAAA;AAAA,MAC/C,OAAO;AAEL,cAAM,EAAE,MAAMF,EAAA,IAAa,MAAMJ;AACjC,QAAAE,IAAOE;AAAA,MACT;AACA,MAAAP,GAAkBM,CAAW;AAE7B,YAAMI,IACJJ,EAAY,SAAS,IACjBD,EAAK,OAAO,CAACM,MAASL,EAAY,SAASK,EAAK,EAAE,CAAC,IACnDN;AACN,MAAA7B,EAAQkC,CAAY,GAChB,CAACR,KAAkBQ,EAAa,SAAS,KAC3C/B,EAAgB+B,EAAa,CAAC,CAAC;AAAA,IAEnC,SAASE,GAAO;AACd,cAAQ,MAAMA,CAAK,GACnBC,EAAU,EAAE,SAAS,8BAA8B,MAAM,SAAS;AAAA,IACpE,UAAA;AACE,MAAA/B,EAAa,EAAK;AAAA,IACpB;AAAA,EACF;AAEA,EAAAgC,GAAU,WAAY;AAKpB,KAJoB,YAAY;AAC9B,YAAM,EAAE,MAAMC,EAAA,IAAgB,MAAMC,GAAoB,mBAAmB;AAC3E,MAAID,KAAavB,GAAU,KAAK,MAAMuB,CAAW,CAAC;AAAA,IACpD,GACA,GACAd,EAAA;AAAA,EACF,GAAG,CAAA,CAAE;AAEL,QAAMgB,KAAuB,OAAOC,MAAU;AAC5C,QAAIC,IAAYD,EAAM,OAAO;AAC7B,IAAArC,GAAmBqC,EAAM,OAAO,OAAO;AACvC,QAAI;AACF,MAAApC,EAAa,CAACsC,MAAQ,CAACA,CAAG;AAC1B,UAAIf;AACJ,MAAIc,IACD,EAAE,MAAAd,MAAS,MAAMtD,EAAA,IAEjB,EAAE,MAAAsD,MAAS,MAAMD,EAAA,GAEhBL,KAAkBA,EAAe,SAAS,MAC5CM,IAAOA,EAAK;AAAA,QACV,CAACM,MAASZ,EAAe,SAASY,EAAK,EAAE;AAAA,MAAA,IAG7CnC,EAAQ6B,CAAI,GACZ1B,EAAgB0B,EAAK,CAAC,CAAC,GACvBvB,EAAa,CAACsC,MAAQ,CAACA,CAAG,GAC1BhC,EAAc,EAAE;AAAA,IAClB,SAASwB,GAAO;AACd,cAAQ,MAAMA,CAAK,GACnBC,EAAU,EAAE,SAAS,8BAA8B,MAAM,SAAS,GAClE/B,EAAa,CAACsC,MAAQ,CAACA,CAAG;AAAA,IAC5B;AAAA,EACF,GAEMC,IAAa9C,IACfA,KAAA,gBAAAA,EAAM;AAAA,IAAO,CAAC+C,MACdA,EAAQ,KAAK,cAAc,SAASnC,EAAW,YAAA,CAAa;AAAA,MAE5D,CAAA,GAEEoC,KAAqB,CAACC,MAAc;AACxC,QAAI,CAACA,EAAW,QAAO;AACvB,UAAMC,IAAO,IAAI,KAAK,OAAOD,CAAS,CAAC,GACjCE,IAAM,OAAOD,EAAK,QAAA,CAAS,EAAE,SAAS,GAAG,GAAG,GAC5CE,IAAQ,OAAOF,EAAK,SAAA,IAAa,CAAC,EAAE,SAAS,GAAG,GAAG,GACnDG,IAAOH,EAAK,YAAA;AAClB,WAAO,GAAGC,CAAG,IAAIC,CAAK,IAAIC,CAAI;AAAA,EAChC,GAEMC,KAAoB,YAAY;AACpC,IAAAnC,EAAqB,EAAK;AAC1B,QAAI;AACF,YAAMoC,IAAUvD,KAAA,gBAAAA,EAAM,KAAK,CAAC8B,MAASA,EAAK,OAAO3B,EAAa;AAC9D,YAAMnB,GAAYuE,CAAO,GACzBjB,EAAU;AAAA,QACR,SAAS,oCAAmCiB,KAAA,gBAAAA,EAAS,WAAU,aAAa,aAAa,QAAQ,QAAOA,KAAA,gBAAAA,EAAS,WAAU,aAAa,WAAW,UAAU;AAAA,QAC7J,MAAM;AAAA,MAAA,CACP;AACD,UAAIC;AACJ,MAAAjD,EAAa,CAACsC,MAAQ,CAACA,CAAG,GACtBxC,IACFmD,IAAM,MAAMhF,EAAA,IAEZgF,IAAM,MAAM3B,EAAA,GAGd5B,EAAQuD,EAAI,IAAI,GAChBpD,EAAgBoD,EAAI,KAAK,CAAC,CAAC,GAC3BjD,EAAa,CAACsC,MAAQ,CAACA,CAAG;AAAA,IAC5B,SAASR,GAAO;AACd,cAAQ,MAAMA,CAAK,GACnBC,EAAU,EAAE,SAAS,0BAA0B,MAAM,SAAS,GAC9D/B,EAAa,CAACsC,MAAQ,CAACA,CAAG;AAAA,IAC5B;AAAA,EACF,GAEMY,IAAyBzD,KAC3BkC,IAAAlC,EAAK,KAAK,CAAC0D,MAAQA,EAAI,OAAOvD,EAAa,EAAE,MAA7C,gBAAA+B,EACE,oBAAoB;AAAA,IAAO,CAACa;;AAC5B,cAAAb,IAAAa,EAAQ,gBAAR,gBAAAb,EACI,cACD,SAASpB,KAAA,gBAAAA,EAAa;AAAA;AAAA,IAE1B,KAAK,CAAC6C,GAAGC;;AAAM,YAAA1B,IAAAyB,EAAE,gBAAF,gBAAAzB,EAAe,cAAc0B,EAAE;AAAA,OAC/C,CAAA,GAEEC,KAA0B,OAAOd,MAAY;AACjD,QAAI;AACF,YAAMrE,GAAkBqE,EAAQ,cAAc,GAC9C,MAAMrB,EAAW,EAAI,GACrBX,EAAe,EAAE,GACjBuB,EAAU,EAAE,SAAS,iCAAiC,MAAM,WAAW;AAAA,IACzE,SAASD,GAAO;AACd,MAAAC,EAAU,EAAE,SAASD,GAAO,MAAM,SAAS;AAAA,IAC7C;AAAA,EACF,GAEMyB,IAAwB,CAACC,MAAU;AACvC,IAAApD,EAAkBoD,CAAK,GACvB3C,EAAW,gBAAgB;AAAA,MACzB,aAAa,GAAG2C,MAAU,IAAI,QAAQ,MAAM;AAAA,MAC5C,aAAa;AAAA,MACb,WAAW,SAASA,MAAU,IAAI,QAAQ,MAAM;AAAA,IAAA,CACjD;AAAA,EACH,GAEMC,KAAqB,MAAM;AAC/B,IAAAtC,EAAA,GACAb,EAAc,EAAE;AAAA,EAClB,GAEMoD,KAAa,YAAY;AAC7B,QAAI;AACF,MAAAxD,EAAa,EAAI,GACjB,MAAMW,EAAW,gBAAgB;AAAA,QAC/B,aAAa;AAAA,QACb,aAAa;AAAA,QACb,WAAW;AAAA,MAAA,CACZ;AAAA,IACH,SAASiB,GAAO;AACd,cAAQ,MAAMA,CAAK;AAAA,IACrB;AAAA,EACF;AAEA,SAAO,CAACjD,KAAa4B,MAAW,QAAQ,CAACkD,EAAY,eAAelD,KAAA,gBAAAA,EAAS,mBAAmB,IAC9F,gBAAAxB,EAAC2E,GAAA,EAAI,WAAU,oDACb,UAAA,gBAAA3E;AAAA,IAAC4E;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MAEV,4BAACC,GAAA,EAAW,SAAQ,MAAK,WAAU,mBAAkB,UAAA,yCAAA,CAErD;AAAA,IAAA;AAAA,EAAA,EACF,CACF,IAEA,gBAAA7E,EAACN,IAAA,EAAuB,WAAAE,GACtB,UAAA,gBAAAG,EAAC4E,GAAA,EAAI,WAAU,iFACb,UAAA;AAAA,IAAA,gBAAA5E;AAAA,MAAC6E;AAAA,MAAA;AAAA,QACC,SAAQ;AAAA,QACR,WAAU;AAAA,QAEV,UAAA;AAAA,UAAA,gBAAA7E,EAAC,OAAA,EAAI,WAAU,0CACb,UAAA;AAAA,YAAA,gBAAAC;AAAA,cAAC6E;AAAA,cAAA;AAAA,gBACC,SAAQ;AAAA,gBACR,YAAY;AAAA,gBACZ,WAAU;AAAA,gBACX,UAAA;AAAA,cAAA;AAAA,YAAA;AAAA,YAGAH,EAAY,eAAelD,KAAA,gBAAAA,EAAS,qBAAqB,KACxD,gBAAAxB;AAAA,cAAC8E;AAAA,cAAA;AAAA,gBACC,MAAK;AAAA,gBACL,SAAQ;AAAA,gBACR,OAAM;AAAA,gBACN,SAAS,MAAMR,EAAsB,CAAC;AAAA,gBACtC,eAAY;AAAA,gBAEX,YAAU,YAAY;AAAA,cAAA;AAAA,YAAA;AAAA,UACzB,GAEJ;AAAA,UACA,gBAAAtE;AAAA,YAAC+E;AAAA,YAAA;AAAA,cACC,MAAK;AAAA,cACL,SAAQ;AAAA,cACR,aAAY;AAAA,cACZ,WAAS;AAAA,cACT,OAAO3D;AAAA,cACP,UAAU,CAAC,MAAMC,EAAc,EAAE,OAAO,KAAK;AAAA,cAC7C,eAAY;AAAA,YAAA;AAAA,UAAA;AAAA,UAEd,gBAAAtB,EAAC,OAAA,EAAI,WAAU,gCACb,UAAA;AAAA,YAAA,gBAAAC;AAAA,cAACgF;AAAA,cAAA;AAAA,gBACC,MAAK;AAAA,gBACL,SAASnE;AAAA,gBACT,UAAUqC;AAAA,cAAA;AAAA,YAAA;AAAA,YAEZ,gBAAAlD,EAAC6E,GAAA,EAAW,SAAQ,SAAQ,UAAA,mBAAA,CAAgB;AAAA,UAAA,GAC9C;AAAA,UACA,gBAAA7E,EAAC,OAAA,EAAI,WAAU,+BACZ,UAAAsD,EAAW,SAAS,KACnB,gBAAAtD,EAAAiF,GAAA,EACG,UAAA3B,EAAW,IAAI,CAACV,MACf,gBAAA7C;AAAA,YAAC6E;AAAA,YAAA;AAAA,cAEC,SAAQ;AAAA,cACR,SAAS,MAAMhE,EAAgBgC,CAAI;AAAA,cACnC,WAAW;AAAA,oBACXjC,EAAa,OAAOiC,EAAK,KACnB,eACA,qBACJ;AAAA,cACF,IACEjC,EAAa,OAAOiC,EAAK,KACrB;AAAA,gBACA,SAAS,CAACsC,MAAMC,EAAMD,EAAE,QAAQ,QAAQ,MAAM,IAAI;AAAA,cAAA,IAElD,CAAA;AAAA,cAGN,UAAA;AAAA,gBAAA,gBAAAnF,EAAC8E,GAAA,EAAW,YAAY,KACrB,UAAA;AAAA,kBAAAjC,EAAK;AAAA,kBAAK;AAAA,mBAEVA,KAAA,gBAAAA,EAAM,WAAU,cACf,gBAAA5C,EAACoF,GAAA,EAAK,OAAM,YAAW,OAAM,YAAW,MAAK,QAAA,CAAQ;AAAA,gBAAA,GAEzD;AAAA,gBACA,gBAAArF,EAAC8E,GAAA,EAAW,SAAQ,SAAQ,OAAM,kBAC/B,UAAA;AAAA,kBAAAjC,EAAK,oBAAoB;AAAA,kBAAO;AAAA,gBAAA,EAAA,CACnC;AAAA,cAAA;AAAA,YAAA;AAAA,YAzBKA,EAAK;AAAA,UAAA,CA2Bb,GACH,EAAA,CAEJ;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IAEF,gBAAA7C;AAAA,MAAC6E;AAAA,MAAA;AAAA,QACC,SAAQ;AAAA,QACR,WAAU;AAAA,QAEV,UAAA;AAAA,UAAA,gBAAA7E,EAAC,OAAA,EAAI,WAAU,6EACb,UAAA;AAAA,YAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,wCACb,UAAA;AAAA,cAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,2BACb,UAAA;AAAA,gBAAA,gBAAAC;AAAA,kBAAC6E;AAAA,kBAAA;AAAA,oBACC,SAAQ;AAAA,oBACR,YAAY;AAAA,oBACZ,WAAU;AAAA,oBAET,kCAAc,SAAQ;AAAA,kBAAA;AAAA,gBAAA;AAAA,iBAExBlE,KAAA,gBAAAA,EAAc,WAAU,YACvB,gBAAAX,EAACoF,GAAA,EAAK,OAAM,UAAS,OAAM,WAAU,MAAK,QAAA,CAAQ;AAAA,iBAEnDzE,KAAA,gBAAAA,EAAc,WAAU,cACvB,gBAAAX,EAACoF,GAAA,EAAK,OAAM,YAAW,OAAM,YAAW,MAAK,QAAA,CAAQ;AAAA,cAAA,GAEzD;AAAA,cACA,gBAAArF;AAAA,gBAAC8E;AAAA,gBAAA;AAAA,kBACC,SAAQ;AAAA,kBACR,OAAM;AAAA,kBACN,WAAU;AAAA,kBACX,UAAA;AAAA,oBAAA;AAAA,oBACarB,GAAmB7C,KAAA,gBAAAA,EAAc,SAAS;AAAA,kBAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,YACxD,GACF;AAAA,YACA,gBAAAZ,EAAC,OAAA,EAAI,WAAU,cACZ,UAAA;AAAA,cAAA2E,EAAY,eAAelD,KAAA,gBAAAA,EAAS,kCAAkC,KACrE,gBAAAxB;AAAA,gBAAC8E;AAAA,gBAAA;AAAA,kBACC,SAAQ;AAAA,kBACR,MAAK;AAAA,kBACL,SAAS,MAAMnD,EAAqB,EAAI;AAAA,kBAEvC,WAAAhB,KAAA,gBAAAA,EAAc,WAAU,WAAW,eAAe;AAAA,gBAAA;AAAA,cAAA;AAAA,cAGtD+D,EAAY,eAAelD,KAAA,gBAAAA,EAAS,qBAAqB,KACxD,gBAAAxB;AAAA,gBAAC8E;AAAA,gBAAA;AAAA,kBACC,SAAQ;AAAA,kBACR,MAAK;AAAA,kBACL,SAAS,MAAMR,EAAsB,CAAC;AAAA,kBACvC,UAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,YAED,EAAA,CAEJ;AAAA,UAAA,GACF;AAAA,UAEA,gBAAAvE,EAAC,OAAA,EAAI,WAAU,6CACb,UAAA;AAAA,YAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,oFACb,UAAA;AAAA,cAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,qDACb,UAAA;AAAA,gBAAA,gBAAAC,EAAC6E,GAAA,EAAW,YAAY,KAAM,UAAAvE,EAAU,mBAAmB,GAAE;AAAA,gBAC7D,gBAAAP,EAAC8E,GAAA,EAAW,SAAQ,SAAQ,OAAM,kBAAiB,UAAA;AAAA,kBAAA;AAAA,kBAC/CZ,EAAuB;AAAA,kBAAO;AAAA,kBAAE3D,EAAU,+BAA+B;AAAA,kBAAE;AAAA,gBAAA,EAAA,CAC/E;AAAA,cAAA,GACF;AAAA,cACA,gBAAAN;AAAA,gBAAC+E;AAAA,gBAAA;AAAA,kBACC,MAAK;AAAA,kBACL,IAAI,EAAE,OAAO,EAAE,IAAI,QAAQ,IAAI,QAAM;AAAA,kBACrC,aAAY;AAAA,kBACZ,SAAQ;AAAA,kBACR,OAAOzD;AAAA,kBACP,UAAU,CAAC,MAAMC,EAAe,EAAE,OAAO,KAAK;AAAA,kBAC9C,eAAY;AAAA,gBAAA;AAAA,cAAA;AAAA,YACd,GACF;AAAA,YACA,gBAAAxB,EAAC4E,GAAA,EAAI,WAAU,0BACb,UAAA;AAAA,cAAA,gBAAA5E;AAAA,gBAAC4E;AAAA,gBAAA;AAAA,kBACC,WAAU;AAAA,kBACV,IAAI;AAAA,oBACF,OAAO;AAAA,oBACP,SAAS,CAACO,MAAMC,EAAMD,EAAE,QAAQ,OAAO,OAAO,IAAI;AAAA,kBAAA;AAAA,kBAGpD,UAAA;AAAA,oBAAA,gBAAAlF,EAAC,OAAA,EAAK,UAAAM,EAAU,cAAc,EAAA,CAAE;AAAA,sCAC/B,OAAA,EAAI,WAAU,eAAe,UAAAA,EAAU,SAAS,EAAA,CAAE;AAAA,kBAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,cAErD,gBAAAP;AAAA,gBAAC4E;AAAA,gBAAA;AAAA,kBACC,WAAU;AAAA,kBACV,IAAI;AAAA,oBACF,SAAS;AAAA,kBAAA;AAAA,kBAGV,UAAA;AAAA,oBAAAV,EAAuB,SAAS,KAC/B,gBAAAjE,EAAAiF,GAAA,EACG,YAAuB,IAAI,CAAC1B,GAASgB,MACpC,gBAAAxE;AAAA,sBAAC4E;AAAA,sBAAA;AAAA,wBAEC,WAAU;AAAA,wBACV,IAAI;AAAA,0BACF,WAAW;AAAA,4BACT,SAAS,CAACO,MAAMC,EAAMD,EAAE,QAAQ,OAAO,OAAO,IAAI;AAAA,0BAAA;AAAA,wBACpD;AAAA,wBAGF,UAAA;AAAA,0BAAA,gBAAAlF,EAAC,OAAA,EAAI,WAAU,iBACb,UAAA,gBAAAA,EAAC6E,KAAW,IAAI,EAAE,UAAU,QAAQ,YAAY,IAAA,GAC7C,UAAAtB,EAAQ,aACX,GACF;AAAA,0BACA,gBAAAvD,EAAC,SAAI,WAAU,uBACd,YAAY,eAAewB,KAAA,gBAAAA,EAAS,mCAAmC,KACpE,gBAAAxB;AAAA,4BAACqF;AAAA,4BAAA;AAAA,8BACC,MAAMC;AAAA,8BACN,SAAS,MAAM;AACb,gCAAAjB,GAAwBd,CAAO;AAAA,8BACjC;AAAA,8BACA,OAAM;AAAA,8BACN,WAAU;AAAA,8BACV,eAAa,gCAAgCgB,CAAK;AAAA,4BAAA;AAAA,0BAAA,EACpD,CAEJ;AAAA,wBAAA;AAAA,sBAAA;AAAA,sBAzBKhB,EAAQ;AAAA,oBAAA,CA2BhB,GACH;AAAA,oBAEDU,EAAuB,WAAW,KACjC,gBAAAjE,EAAAiF,GAAA,EACE,UAAA,gBAAAjF;AAAA,sBAAC6E;AAAA,sBAAA;AAAA,wBACC,WAAU;AAAA,wBACV,IAAI,EAAE,UAAU,QAAQ,WAAW,SAAA;AAAA,wBACpC,UAAA;AAAA,sBAAA;AAAA,oBAAA,EAED,CACF;AAAA,kBAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,YAEJ,EAAA,CACF;AAAA,UAAA,GACF;AAAA,UACA,gBAAA7E;AAAA,YAAC2E;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,IAAI;AAAA,gBACF,SAAS,CAACO,MAAMC,EAAMD,EAAE,QAAQ,QAAQ,MAAM,IAAI;AAAA,cAAA;AAAA,cAGnD,UAAAR,EAAY,eAAelD,KAAA,gBAAAA,EAAS,iCAAiC,KACpE,gBAAAxB,EAAC8E,GAAA,EAAO,SAAQ,YAAW,MAAK,SAAQ,SAASL,IAAY,UAAA,sBAAA,CAE7D;AAAA,YAAA;AAAA,UAAA;AAAA,QAEJ;AAAA,MAAA;AAAA,IAAA;AAAA,IAEF,gBAAAzE;AAAA,MAACuF;AAAA,MAAA;AAAA,QACC,MAAM7D;AAAA,QACN,aAAa,MAAMC,EAAqB,EAAK;AAAA,QAC7C,aAAamC;AAAA,QACb,QAAOnD,KAAA,gBAAAA,EAAc,WAAU,WAAW,oBAAoB;AAAA,QAC9D,aAAa,6BAA4BA,KAAA,gBAAAA,EAAc,WAAU,WAAW,eAAe,UAAU,cAAcA,KAAA,gBAAAA,EAAc,IAAI;AAAA,QACrI,YAAW;AAAA,MAAA;AAAA,IAAA;AAAA,sBAEZ6E,GAAA,EACC,UAAA,gBAAAxF;AAAA,MAACI;AAAA,MAAA;AAAA,QACC,UAAUc,MAAmB;AAAA,QAC7B,YAAYA,MAAmB,IAAIP,EAAa,KAAK;AAAA,QACrD,eAAY;AAAA,QACZ,MAAMO;AAAA,QACN,SAASC;AAAA,QACT,oBAAAqD;AAAA,MAAA;AAAA,IAAA,GAEJ;AAAA,IACA,gBAAAxE,EAACwF,KAAS,UAAU,gBAAAxF,EAAC,SAAI,WAAU,2BAAA,CAA2B,GAC3D,UAAAgB,MAAc,MACb,gBAAAhB;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,MAAMc;AAAA,QACN,cAAAC;AAAA,QACA,YAAYN,EAAa;AAAA,QACzB,SAAS,MAAMuB,EAAW,EAAI;AAAA,QAC9B,qBACE1B,KACK,MAAA;;AACD,kBAAAkC,IAAAlC,KAAA,gBAAAA,EAAM,KAAK,CAAC8B,OAASA,KAAA,gBAAAA,EAAM,QAAO3B,EAAa,QAA/C,QAAA+B,EACI,uBACA+C,IAAAjF,KAAA,gBAAAA,EAAM,KAAK,CAAC8B,OAASA,KAAA,gBAAAA,EAAM,QAAO3B,EAAa,QAA/C,gBAAA8E,EACE,uBACFC,IAAAlF,EAAK,CAAC,MAAN,gBAAAkF,EAAS;AAAA,WAAA,IACb,CAAA;AAAA,QAEN,eAAY;AAAA,MAAA;AAAA,IAAA,EACd,CAEJ;AAAA,EAAA,EAAA,CACF,EAAA,CACF;AAEJ;;;;;"}
|