@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.
Files changed (91) hide show
  1. package/dist/AccessRights-Zm8Obm4N.js +1284 -0
  2. package/dist/AccessRights-Zm8Obm4N.js.map +1 -0
  3. package/dist/{AddFeatures-C0Z29oSd.js → AddFeatures-v3TmGQee.js} +2 -2
  4. package/dist/{AddFeatures-C0Z29oSd.js.map → AddFeatures-v3TmGQee.js.map} +1 -1
  5. package/dist/AddMenuConfiguration-Ce91MhnU.js +8547 -0
  6. package/dist/AddMenuConfiguration-Ce91MhnU.js.map +1 -0
  7. package/dist/{AddRoleDrawer-CQdzQZLb.js → AddRoleDrawer-0gqAK8N0.js} +62 -63
  8. package/dist/AddRoleDrawer-0gqAK8N0.js.map +1 -0
  9. package/dist/{ChangePasswordModalCore-CDxkeIIM.js → ChangePasswordModalCore-DutQAZOx.js} +2 -2
  10. package/dist/{ChangePasswordModalCore-CDxkeIIM.js.map → ChangePasswordModalCore-DutQAZOx.js.map} +1 -1
  11. package/dist/{ConditionConfig-DSsgGEXS.js → ConditionConfig-B4Ffpgj3.js} +2 -2
  12. package/dist/ConditionConfig-B4Ffpgj3.js.map +1 -0
  13. package/dist/{EntityManagement-GaYsBTvf.js → EntityManagement-CPQL6qBj.js} +2 -2
  14. package/dist/{EntityManagement-GaYsBTvf.js.map → EntityManagement-CPQL6qBj.js.map} +1 -1
  15. package/dist/{EventConfigurations-kNtAj_WM.js → EventConfigurations-BJcURufo.js} +3 -3
  16. package/dist/{EventConfigurations-kNtAj_WM.js.map → EventConfigurations-BJcURufo.js.map} +1 -1
  17. package/dist/{EventsExceptionModal-D4Bf1ilS.js → EventsExceptionModal-BlZtBQoR.js} +2 -2
  18. package/dist/{EventsExceptionModal-D4Bf1ilS.js.map → EventsExceptionModal-BlZtBQoR.js.map} +1 -1
  19. package/dist/{EventsSkeleton-8iiETGcf.js → EventsSkeleton-DK6JDKAK.js} +26 -19
  20. package/dist/EventsSkeleton-DK6JDKAK.js.map +1 -0
  21. package/dist/{FeatureMenu-jl7-Tk6y.js → FeatureMenu-C3503UIX.js} +3 -3
  22. package/dist/{FeatureMenu-jl7-Tk6y.js.map → FeatureMenu-C3503UIX.js.map} +1 -1
  23. package/dist/Features-Dne21RWu.js +14 -0
  24. package/dist/Features-Dne21RWu.js.map +1 -0
  25. package/dist/{ManageNotification-CaBAOhji.js → Google-DQxMfbaL.js} +1725 -2652
  26. package/dist/{ManageNotification-CaBAOhji.js.map → Google-DQxMfbaL.js.map} +1 -1
  27. package/dist/ImmunizationConfigurationBase-DLQVSNnt.js +5895 -0
  28. package/dist/ImmunizationConfigurationBase-DLQVSNnt.js.map +1 -0
  29. package/dist/ImmunizationConfigurationBase.css +1 -1
  30. package/dist/{ManageDynamicFeature-BhONvfC_.js → ManageDynamicFeature-dt096fyj.js} +2 -2
  31. package/dist/{ManageDynamicFeature-BhONvfC_.js.map → ManageDynamicFeature-dt096fyj.js.map} +1 -1
  32. package/dist/{ManageEventConfiguration-DV3I5POA.js → ManageEventConfiguration-BpSJszSX.js} +5 -5
  33. package/dist/{ManageEventConfiguration-DV3I5POA.js.map → ManageEventConfiguration-BpSJszSX.js.map} +1 -1
  34. package/dist/ManageNotification-CfhHlfxA.js +934 -0
  35. package/dist/ManageNotification-CfhHlfxA.js.map +1 -0
  36. package/dist/{ManageRole-CGYfglpo.js → ManageRole-4Y2PP4dQ.js} +32 -30
  37. package/dist/ManageRole-4Y2PP4dQ.js.map +1 -0
  38. package/dist/{ManageUser-AY1EUDLI.js → ManageUser-DDzyd9jm.js} +1728 -1592
  39. package/dist/ManageUser-DDzyd9jm.js.map +1 -0
  40. package/dist/MobileMenuManagement-Cf8IZlla.js +108 -0
  41. package/dist/MobileMenuManagement-Cf8IZlla.js.map +1 -0
  42. package/dist/{MobileTypeEventConfigModal-BxLympIO.js → MobileTypeEventConfigModal-DUkUYACe.js} +2 -2
  43. package/dist/MobileTypeEventConfigModal-DUkUYACe.js.map +1 -0
  44. package/dist/{NotificationList-C3Vb_jKU.js → NotificationList-BMFpNUJG.js} +109 -110
  45. package/dist/NotificationList-BMFpNUJG.js.map +1 -0
  46. package/dist/{OtherTypeEventConfigModal-BeG1GrUi.js → OtherTypeEventConfigModal-CYBfr2XE.js} +570 -478
  47. package/dist/OtherTypeEventConfigModal-CYBfr2XE.js.map +1 -0
  48. package/dist/{RoleManagement-BPl2cE27.js → RoleManagement-DEiBNfT8.js} +100 -101
  49. package/dist/RoleManagement-DEiBNfT8.js.map +1 -0
  50. package/dist/{ServerSyncModal-D_oFpv3C.js → ServerSyncModal-92U3xtqI.js} +84 -85
  51. package/dist/ServerSyncModal-92U3xtqI.js.map +1 -0
  52. package/dist/{SubMenu-DYxAPH2Z.js → SubMenu-B072oEGb.js} +3 -3
  53. package/dist/{SubMenu-DYxAPH2Z.js.map → SubMenu-B072oEGb.js.map} +1 -1
  54. package/dist/{TableDetails-Cf_YfnY2.js → TableDetails-BtafRxXb.js} +1069 -831
  55. package/dist/TableDetails-BtafRxXb.js.map +1 -0
  56. package/dist/{TableList-D6jnIbnz.js → TableList-Dpo6dO7S.js} +2 -2
  57. package/dist/{TableList-D6jnIbnz.js.map → TableList-Dpo6dO7S.js.map} +1 -1
  58. package/dist/{TypeConfiguration-37wp-gsl.js → TypeConfiguration-C3xoP2Nb.js} +2 -2
  59. package/dist/{TypeConfiguration-37wp-gsl.js.map → TypeConfiguration-C3xoP2Nb.js.map} +1 -1
  60. package/dist/{WidgetList-Dw_FmbbE.js → WidgetList-D7YuWfDD.js} +2 -2
  61. package/dist/{WidgetList-Dw_FmbbE.js.map → WidgetList-D7YuWfDD.js.map} +1 -1
  62. package/dist/dashboardLayoutUtils-D1xCAxp3.js +405 -0
  63. package/dist/dashboardLayoutUtils-D1xCAxp3.js.map +1 -0
  64. package/dist/index.js +4 -752
  65. package/dist/index.js.map +1 -1
  66. package/dist/index.lib-C3fwoM3y.js +820 -0
  67. package/dist/index.lib-C3fwoM3y.js.map +1 -0
  68. package/package.json +2 -2
  69. package/dist/AccessRights-CHu27ZOw.js +0 -1262
  70. package/dist/AccessRights-CHu27ZOw.js.map +0 -1
  71. package/dist/AddMenuConfiguration-BSQLl88V.js +0 -6570
  72. package/dist/AddMenuConfiguration-BSQLl88V.js.map +0 -1
  73. package/dist/AddRoleDrawer-CQdzQZLb.js.map +0 -1
  74. package/dist/ConditionConfig-DSsgGEXS.js.map +0 -1
  75. package/dist/EventsSkeleton-8iiETGcf.js.map +0 -1
  76. package/dist/Features-CObdzJp_.js +0 -13
  77. package/dist/Features-CObdzJp_.js.map +0 -1
  78. package/dist/ImmunizationConfigurationBase-DZGqwda2.js +0 -5910
  79. package/dist/ImmunizationConfigurationBase-DZGqwda2.js.map +0 -1
  80. package/dist/ManageRole-CGYfglpo.js.map +0 -1
  81. package/dist/ManageUser-AY1EUDLI.js.map +0 -1
  82. package/dist/MobileMenuManagement-CVAKyKDa.js +0 -112
  83. package/dist/MobileMenuManagement-CVAKyKDa.js.map +0 -1
  84. package/dist/MobileTypeEventConfigModal-BxLympIO.js.map +0 -1
  85. package/dist/NotificationList-C3Vb_jKU.js.map +0 -1
  86. package/dist/OtherTypeEventConfigModal-BeG1GrUi.js.map +0 -1
  87. package/dist/RoleManagement-BPl2cE27.js.map +0 -1
  88. package/dist/ServerSyncModal-D_oFpv3C.js.map +0 -1
  89. package/dist/TableDetails-Cf_YfnY2.js.map +0 -1
  90. package/dist/dashboardLayoutUtils-Bt5HA96J.js +0 -265
  91. 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 ue, Suspense as K, lazy as Z } from "react";
4
- import fe from "@/views/custom-components/CustomConfirmationModal";
5
- import { Box as h, Card as I, Typography as m, Button as S, TextField as X, Switch as he, Chip as _ } from "@mui/material";
6
- import { alpha as A } from "@mui/material/styles";
7
- import { useTranslateProvider as pe } from "@/common/languageTranslator/TranslationContext";
8
- import O from "@/common/config/implementationConfig";
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 ge } from "@/utils/feature.js";
10
+ import { getAssignedFeatures as pe } from "@/utils/feature.js";
12
11
  import { showToast as x } from "@/common/toaster/toaster";
13
- import { FontAwesomeIcon as xe } from "@fortawesome/react-fontawesome";
14
- import { faTrash as ve } from "@fortawesome/free-solid-svg-icons";
15
- import ye from "@/hooks/useTrackEvent";
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 ee } from "react-redux";
16
+ import { useSelector as Z } from "react-redux";
18
17
  import { getUseSkeleton as be } from "@/store/reducers/SkeletonReducer";
19
- const V = () => f.get("/role"), we = (n) => f.delete(O.api.useQueryParamStyle ? `/menuconfig/usermenuitem/delete?empMenuItemId=${n}` : `/menuconfig/usermenuitem/${n}`), Ne = (n) => f.get(O.api.useQueryParamStyle ? `/role/retrieveById?id=${n}` : `/role/${n}`), Ye = (n) => f.post("/role", { ...n }), Qe = (n) => O.api.useQueryParamStyle ? f.put("/role/update", { ...n }) : f.post("/role", { ...n }), Ce = (n) => f.put(`role/?is_active=${n.state === "INACTIVE" ? "true" : "false"}`, {
20
- ...n
21
- }), Je = (n, o) => f.post(`/menuconfig/assignnewfeature?roleId=${o}`, { ...n }), te = ({ children: n, isLoading: o = !0 }) => !ee(be) || !o ? n : /* @__PURE__ */ l("div", { className: "pt-6 relative h-[90vh]", children: [
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
- te.propTypes = {
42
+ ee.propTypes = {
44
43
  children: j.any,
45
44
  loading: j.any,
46
45
  isLoading: j.any
47
46
  };
48
- const Ie = Z(() => import("./AddFeatures-C0Z29oSd.js")), Se = Z(() => import("./ManageRole-CGYfglpo.js"));
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: n } = pe(), [o, y] = d(""), [a, b] = d(o[0]), [T, ae] = d(!1), [P, u] = d(!1), [B, D] = d(!1), [k, U] = d(0), [W, F] = d(""), [w, Y] = d(""), [c, se] = d(null), [re, E] = d(!1), Q = ye(), J = ee((e) => e.Authenticate.user.roleId), [R, le] = d([]), N = async (e = !1) => {
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 = T ? V() : z();
56
- let i, p = [];
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
- Ne(J)
59
+ we(J)
61
60
  ]);
62
- i = v, p = ((s = L == null ? void 0 : L.data) == null ? void 0 : s.roleIds) || [];
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
- i = v;
64
+ o = v;
66
65
  }
67
- le(p);
68
- const M = p.length > 0 ? i.filter((v) => p.includes(v.id)) : i;
69
- y(M), !e && M.length > 0 && b(M[0]);
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
- ue(function() {
75
+ me(function() {
77
76
  (async () => {
78
- const { data: s } = await ge("techo.manage.role");
79
- s && se(JSON.parse(s));
77
+ const { data: s } = await pe("techo.manage.role");
78
+ s && ae(JSON.parse(s));
80
79
  })(), N();
81
80
  }, []);
82
- const ne = async (e) => {
81
+ const le = async (e) => {
83
82
  let s = e.target.checked;
84
- ae(e.target.checked);
83
+ te(e.target.checked);
85
84
  try {
86
- u((i) => !i);
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
- (i) => R.includes(i.id)
90
- )), y(r), b(r[0]), u((i) => !i), F("");
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((i) => !i);
91
+ console.error(r), x({ message: "Error in getting role data", type: "error" }), u((o) => !o);
93
92
  }
94
- }, G = o ? o == null ? void 0 : o.filter(
93
+ }, G = n ? n == null ? void 0 : n.filter(
95
94
  (e) => e.name.toLowerCase().includes(W.toLowerCase())
96
- ) : [], oe = (e) => {
95
+ ) : [], ne = (e) => {
97
96
  if (!e) return "";
98
- const s = new Date(Number(e)), r = String(s.getDate()).padStart(2, "0"), i = String(s.getMonth() + 1).padStart(2, "0"), p = s.getFullYear();
99
- return `${r}/${i}/${p}`;
100
- }, ie = async () => {
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 = o == null ? void 0 : o.find((r) => r.id === a.id);
104
- await Ce(e), x({
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), T ? s = await V() : s = await z(), y(s.data), b(s.data[0]), 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 = o ? (H = o.find((e) => e.id === a.id)) == null ? void 0 : H.assignedFeatureList.filter(
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
- }) : [], ce = async (e) => {
120
+ }) : [], ie = async (e) => {
122
121
  try {
123
- await we(e.userMenuItemId), await N(!0), Y(""), x({ message: "Feature deleted successfully!", type: "success" });
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), Q("button_click", {
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
- }, de = () => {
132
+ }, ce = () => {
134
133
  N(), F("");
135
- }, me = async () => {
134
+ }, de = async () => {
136
135
  try {
137
- D(!0), await Q("button_click", {
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 !P && c !== null && !g.hasCheckRights(c == null ? void 0 : c["view.manage.role"]) ? /* @__PURE__ */ t(h, { className: "flex justify-center items-center w-full h-[80vh]", children: /* @__PURE__ */ t(
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(te, { isLoading: P, children: /* @__PURE__ */ l(h, { className: "flex flex-col gap-4 p-4 min-[900px]:flex-row min-[900px]:h-[calc(100vh-80px)]", children: [
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
- S,
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: n("+ Add Role")
176
+ children: i("+ Add Role")
178
177
  }
179
178
  )
180
179
  ] }),
181
180
  /* @__PURE__ */ t(
182
- X,
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
- he,
194
+ fe,
196
195
  {
197
196
  size: "small",
198
- checked: T,
199
- onChange: ne
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: () => b(e),
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) => A(s.palette.primary.main, 0.08)
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
- oe(a == null ? void 0 : a.createdOn)
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
- S,
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
- S,
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: n("Assigned Features") }),
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
- n("features active for this role"),
293
+ i("features active for this role"),
295
294
  ")"
296
295
  ] })
297
296
  ] }),
298
297
  /* @__PURE__ */ t(
299
- X,
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(h, { className: "overflow-x-auto w-full", children: [
310
+ /* @__PURE__ */ l(f, { className: "overflow-x-auto w-full", children: [
312
311
  /* @__PURE__ */ l(
313
- h,
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) => A(e.palette.action.hover, 0.04)
317
+ bgcolor: (e) => T(e.palette.action.hover, 0.04)
319
318
  },
320
319
  children: [
321
- /* @__PURE__ */ t("div", { children: n("FEATURE NAME") }),
322
- /* @__PURE__ */ t("div", { className: "text-center", children: n("ACTIONS") })
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
- h,
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
- h,
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) => A(r.palette.action.hover, 0.04)
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
- xe,
345
+ ge,
347
346
  {
348
- icon: ve,
347
+ icon: xe,
349
348
  onClick: () => {
350
- ce(e);
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
- h,
374
+ f,
376
375
  {
377
376
  className: "border-t p-4",
378
377
  sx: {
379
- bgcolor: (e) => A(e.palette.primary.main, 0.06)
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(S, { variant: "outlined", size: "small", onClick: me, children: "+ Add More Features" })
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
- fe,
387
+ ue,
389
388
  {
390
- open: re,
389
+ open: se,
391
390
  handleClose: () => E(!1),
392
- handleClick: ie,
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
- Se,
398
+ Ie,
400
399
  {
401
- isUpdate: k !== 1,
402
- selectedId: k === 2 ? a.id : null,
400
+ isUpdate: S !== 1,
401
+ selectedId: S === 2 ? a.id : null,
403
402
  "data-testid": "roles-managerole-add-button",
404
- open: k,
403
+ open: S,
405
404
  setOpen: U,
406
- isRoleListModified: de
405
+ isRoleListModified: ce
407
406
  }
408
407
  ) }),
409
- /* @__PURE__ */ t(K, { fallback: /* @__PURE__ */ t("div", { className: "animate-pulse w-80 h-20 " }), children: B === !0 && /* @__PURE__ */ t(
410
- Ie,
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: B,
413
- setOpenModal: D,
411
+ open: D,
412
+ setOpenModal: B,
414
413
  selectedId: a.id,
415
414
  setData: () => N(!0),
416
- assignedFeatureList: o ? (() => {
415
+ assignedFeatureList: n ? (() => {
417
416
  var e, s, r;
418
- return (e = o == null ? void 0 : o.find((i) => (i == null ? void 0 : i.id) === a.id)) != null && e.assignedFeatureList ? (s = o == null ? void 0 : o.find((i) => (i == null ? void 0 : i.id) === a.id)) == null ? void 0 : s.assignedFeatureList : (r = o[0]) == null ? void 0 : r.assignedFeatureList;
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 Ge = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
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
- Ge as R,
431
- Qe as a,
432
- Ye as b,
433
- Ne as g,
434
- Je as p
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-BPl2cE27.js.map
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 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\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":"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"}