@argusoft/medplat-core 1.0.25 → 1.0.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{AccessRights-CupmTG3T.js → AccessRights-CHu27ZOw.js} +220 -217
- package/dist/AccessRights-CHu27ZOw.js.map +1 -0
- package/dist/{AddEditQueryBuilder-C8ZSkOF0.js → AddEditQueryBuilder-Brdnm6rQ.js} +2 -2
- package/dist/{AddEditQueryBuilder-C8ZSkOF0.js.map → AddEditQueryBuilder-Brdnm6rQ.js.map} +1 -1
- package/dist/{AddFeatures-CqE3v0BN.js → AddFeatures-C0Z29oSd.js} +2 -2
- package/dist/{AddFeatures-CqE3v0BN.js.map → AddFeatures-C0Z29oSd.js.map} +1 -1
- package/dist/{AddLabelModal-CB8E8cYG.js → AddLabelModal-DFllBVcd.js} +2 -2
- package/dist/{AddLabelModal-CB8E8cYG.js.map → AddLabelModal-DFllBVcd.js.map} +1 -1
- package/dist/{AppModal-BKgIwe1h.js → AppModal-CtG2GjD_.js} +2 -2
- package/dist/{AppModal-BKgIwe1h.js.map → AppModal-CtG2GjD_.js.map} +1 -1
- package/dist/{ChangePasswordModalCore-DTYWRTa-.js → ChangePasswordModalCore-CDxkeIIM.js} +2 -2
- package/dist/{ChangePasswordModalCore-DTYWRTa-.js.map → ChangePasswordModalCore-CDxkeIIM.js.map} +1 -1
- package/dist/{EventConfigurations-lPcZGpLi.js → EventConfigurations-kNtAj_WM.js} +76 -76
- package/dist/EventConfigurations-kNtAj_WM.js.map +1 -0
- package/dist/{FeatureMenu-DUZL32RI.js → FeatureMenu-jl7-Tk6y.js} +49 -49
- package/dist/FeatureMenu-jl7-Tk6y.js.map +1 -0
- package/dist/FileSaver.min-CN9EpL2h.js.map +1 -1
- package/dist/{ImmunizationConfigurationsList-K2ddBpPJ.js → ImmunizationConfigurationsList-DdSZicTP.js} +72 -73
- package/dist/{ImmunizationConfigurationsList-K2ddBpPJ.js.map → ImmunizationConfigurationsList-DdSZicTP.js.map} +1 -1
- package/dist/ImmunizationSkeleton-D2tdv5k-.js.map +1 -1
- package/dist/{LanguagesModal-CX3oS8rk.js → LanguagesModal-D6VfaGrl.js} +2 -2
- package/dist/{LanguagesModal-CX3oS8rk.js.map → LanguagesModal-D6VfaGrl.js.map} +1 -1
- package/dist/{ManageNotification-CSl02Wq7.js → ManageNotification-CaBAOhji.js} +2 -2
- package/dist/ManageNotification-CaBAOhji.js.map +1 -0
- package/dist/{ManageRole-B9bs_T00.js → ManageRole-CGYfglpo.js} +2 -2
- package/dist/{ManageRole-B9bs_T00.js.map → ManageRole-CGYfglpo.js.map} +1 -1
- package/dist/{ManageTranslation-D9IScGhk.js → ManageTranslation-B4C9-lWD.js} +74 -74
- package/dist/ManageTranslation-B4C9-lWD.js.map +1 -0
- package/dist/{ManageUser-AB3_Vfp_.js → ManageUser-AY1EUDLI.js} +600 -601
- package/dist/ManageUser-AY1EUDLI.js.map +1 -0
- package/dist/{NotificationList-D1U1LYnz.js → NotificationList-C3Vb_jKU.js} +73 -73
- package/dist/NotificationList-C3Vb_jKU.js.map +1 -0
- package/dist/OtherTypeEventConfigModal-BeG1GrUi.js.map +1 -1
- package/dist/{QueryBuilder-DI0wCJbz.js → QueryBuilder-z7eqfd7D.js} +117 -119
- package/dist/QueryBuilder-z7eqfd7D.js.map +1 -0
- package/dist/{QueryManagement-CRykYGum.js → QueryManagement-BIhEDKuA.js} +114 -114
- package/dist/QueryManagement-BIhEDKuA.js.map +1 -0
- package/dist/{RoleManagement-BIiW9uTq.js → RoleManagement-BPl2cE27.js} +99 -99
- package/dist/RoleManagement-BPl2cE27.js.map +1 -0
- package/dist/{SubMenu-CM_4wNCR.js → SubMenu-DYxAPH2Z.js} +34 -34
- package/dist/SubMenu-DYxAPH2Z.js.map +1 -0
- package/dist/{UserList-2gGuDgNa.js → UserList-Bc8gYxRL.js} +397 -400
- package/dist/UserList-Bc8gYxRL.js.map +1 -0
- package/dist/{WidgetList-B7X8Awkg.js → WidgetList-Dw_FmbbE.js} +26 -26
- package/dist/WidgetList-Dw_FmbbE.js.map +1 -0
- package/dist/i18next-CTOWN_jH.js.map +1 -1
- package/dist/index.css +1 -1
- package/dist/index.js +10 -10
- package/dist/xlsx.min-D1LFqt_b.js.map +1 -1
- package/package.json +1 -1
- package/dist/AccessRights-CupmTG3T.js.map +0 -1
- package/dist/EventConfigurations-lPcZGpLi.js.map +0 -1
- package/dist/FeatureMenu-DUZL32RI.js.map +0 -1
- package/dist/ManageNotification-CSl02Wq7.js.map +0 -1
- package/dist/ManageTranslation-D9IScGhk.js.map +0 -1
- package/dist/ManageUser-AB3_Vfp_.js.map +0 -1
- package/dist/NotificationList-D1U1LYnz.js.map +0 -1
- package/dist/QueryBuilder-DI0wCJbz.js.map +0 -1
- package/dist/QueryManagement-CRykYGum.js.map +0 -1
- package/dist/RoleManagement-BIiW9uTq.js.map +0 -1
- package/dist/SubMenu-CM_4wNCR.js.map +0 -1
- package/dist/UserList-2gGuDgNa.js.map +0 -1
- package/dist/WidgetList-B7X8Awkg.js.map +0 -1
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
import { jsxs as m, jsx as a } from "react/jsx-runtime";
|
|
2
|
-
import { useRef as
|
|
3
|
-
import { api as
|
|
2
|
+
import { useRef as J, useState as o, useEffect as Y, useCallback as va, useMemo as E, Suspense as z, createElement as xa, lazy as P } from "react";
|
|
3
|
+
import { api as h } from "@/common/interceptors/AxiosInterceptor";
|
|
4
4
|
import { execute as Aa, executeQuery as j } from "@/common/services/GlobalApis";
|
|
5
5
|
import { showToast as b } from "@/common/toaster/toaster";
|
|
6
6
|
import p from "@mui/material/Grid2";
|
|
7
|
-
import { getAssignedFeatures as
|
|
8
|
-
import { Box as
|
|
7
|
+
import { getAssignedFeatures as Ca } from "@/utils/feature";
|
|
8
|
+
import { Box as X, Card as Sa, Typography as L, FormControl as Z, Select as La, MenuItem as Na, Autocomplete as ka, TextField as Se, Chip as Ta, Button as M, FormGroup as wa, FormControlLabel as Ma, Checkbox as Ia } from "@mui/material";
|
|
9
9
|
import _a from "@/hooks/usePagination";
|
|
10
10
|
import Fa from "@/views/custom-components/CustomConfirmationModal";
|
|
11
|
-
import
|
|
11
|
+
import C from "@/common/services/util/GeneralUtil";
|
|
12
12
|
import { useTranslateProvider as Ea } from "@/common/languageTranslator/TranslationContext";
|
|
13
|
-
import
|
|
13
|
+
import f from "prop-types";
|
|
14
14
|
import { useSelector as O } from "react-redux";
|
|
15
15
|
import { getUseSkeleton as V } from "@/store/reducers/SkeletonReducer";
|
|
16
16
|
import za from "@/views/custom-components/CustomizedTable/CustomizedTableV2";
|
|
17
17
|
import { faPen as ja, faBars as Oa } from "@fortawesome/free-solid-svg-icons";
|
|
18
18
|
import { FontAwesomeIcon as Le } from "@fortawesome/react-fontawesome";
|
|
19
|
-
import './ManageTranslation.css';const ut = (s) =>
|
|
19
|
+
import './ManageTranslation.css';const ut = (s) => h.post("/translation/languages", s), pt = (s) => h.put("/translation/languages", s), Va = () => h.get("/translation/languages"), mt = (s) => h.post("/translation/apps", s), gt = (s) => h.post("/translation/apps", s), Da = () => h.get("/translation/apps"), ht = (s) => h.post("/translation/labels", s), ft = (s) => h.post("/translation/map", s), yt = (s) => h.post("/translation/mapUpdate", s), Wa = (s, u, g) => {
|
|
20
20
|
const D = new URLSearchParams({
|
|
21
21
|
key: s,
|
|
22
22
|
isActive: u,
|
|
23
23
|
app: g
|
|
24
24
|
}).toString();
|
|
25
|
-
return
|
|
26
|
-
}, bt = (s, u) =>
|
|
25
|
+
return h.put(`/translation/toggleActive?${D}`, { key: s, isActive: u, app: g });
|
|
26
|
+
}, bt = (s, u) => h.get("/translation/translate", { params: { targetLangs: s, englishText: u } }), Ne = ({ children: s, isLoading: u }) => !O(V) || !u ? s : /* @__PURE__ */ m("div", { className: "flex flex-col mt-6 gap-2 w-full", children: [
|
|
27
27
|
/* @__PURE__ */ m("div", { className: "flex w-full items-center justify-between space-x-2", children: [
|
|
28
28
|
/* @__PURE__ */ m("div", { className: "flex space-x-2", children: [
|
|
29
29
|
/* @__PURE__ */ a("div", { className: "bg-gray-300 animate-pulse rounded-sm w-40 h-10" }),
|
|
@@ -40,8 +40,8 @@ import './ManageTranslation.css';const ut = (s) => f.post("/translation/language
|
|
|
40
40
|
/* @__PURE__ */ a("div", { className: "bg-gray-300 animate-pulse rounded-sm w-full h-100" })
|
|
41
41
|
] });
|
|
42
42
|
Ne.propTypes = {
|
|
43
|
-
children:
|
|
44
|
-
isLoading:
|
|
43
|
+
children: f.any,
|
|
44
|
+
isLoading: f.any
|
|
45
45
|
};
|
|
46
46
|
const Ba = ({ children: s, isLoading: u = !0 }) => !O(V) || !u ? s : /* @__PURE__ */ m("div", { className: "flex flex-col absolute top-10 left-1/2 -translate-x-1/2 w-[95%] sm:w-[600px] md:w-[700px] lg:w-[800px] bg-white shadow-2xl border border-gray-300 rounded-sm h-[60vh]", children: [
|
|
47
47
|
/* @__PURE__ */ a("div", { className: "h-15 w-full bg-gray-200 rounded mb-6" }),
|
|
@@ -51,27 +51,27 @@ const Ba = ({ children: s, isLoading: u = !0 }) => !O(V) || !u ? s : /* @__PURE_
|
|
|
51
51
|
/* @__PURE__ */ a("div", { className: "h-9 w-1/3 bg-gray-200 rounded mt-auto ml-auto mb-2 mr-3" })
|
|
52
52
|
] });
|
|
53
53
|
Ba.propTypes = {
|
|
54
|
-
children:
|
|
55
|
-
isLoading:
|
|
54
|
+
children: f.any,
|
|
55
|
+
isLoading: f.any
|
|
56
56
|
};
|
|
57
57
|
const Ka = ({ children: s, isLoading: u = !0 }) => !O(V) || !u ? s : /* @__PURE__ */ a("div", { className: "w-full flex justify-end pb-[10px]", children: /* @__PURE__ */ a("div", { className: "bg-gray-300 animate-pulse rounded-sm h-[32px] w-[100px]" }) });
|
|
58
58
|
Ka.propTypes = {
|
|
59
|
-
children:
|
|
60
|
-
isLoading:
|
|
59
|
+
children: f.any,
|
|
60
|
+
isLoading: f.any
|
|
61
61
|
};
|
|
62
62
|
const qa = ({ children: s, isLoading: u = !0 }) => !O(V) || !u ? s : /* @__PURE__ */ a("div", { className: "flex justify-end w-full", children: /* @__PURE__ */ a("div", { className: "bg-gray-300 animate-pulse rounded-sm h-[32px] w-[120px]" }) });
|
|
63
63
|
qa.propTypes = {
|
|
64
|
-
children:
|
|
65
|
-
isLoading:
|
|
64
|
+
children: f.any,
|
|
65
|
+
isLoading: f.any
|
|
66
66
|
};
|
|
67
|
-
|
|
68
|
-
const Ua =
|
|
67
|
+
f.any, f.any;
|
|
68
|
+
const Ua = P(() => import("./AppModal-CtG2GjD_.js")), $a = P(() => import("./LanguagesModal-D6VfaGrl.js")), Ga = P(() => import("./AddLabelModal-DFllBVcd.js"));
|
|
69
69
|
function Ha() {
|
|
70
|
-
const { translate: s } = Ea(), u =
|
|
71
|
-
|
|
70
|
+
const { translate: s } = Ea(), u = J(null), [g, D] = o([]), I = J(!1), [ke, ee] = o([]), [Te, ae] = o(!1), [we, W] = o(null), [Me, B] = o(!1), [te, Ie] = o([]), [se, ne] = o(!1), [le, re] = o(!1), [oe, _e] = o(!0), [y, K] = o(""), [N, Fe] = o([]), [ie, k] = o(!1), [Ee, q] = o(null), [T, ce] = o(""), [v, de] = o(""), [S, ue] = o(!1), [r, ze] = o(null), je = J(r);
|
|
71
|
+
Y(() => {
|
|
72
72
|
je.current = r;
|
|
73
73
|
}, [r]);
|
|
74
|
-
const [Oe, U] = o(!1), [pe, Ve] = o(""), [De, We] = o(""), [i, Be] = o({}), [Ke, me] = o(!1), [qe, ge] = o(null), [$, G] = o(!1), [Ue,
|
|
74
|
+
const [Oe, U] = o(!1), [pe, Ve] = o(""), [De, We] = o(""), [i, Be] = o({}), [Ke, me] = o(!1), [qe, ge] = o(null), [$, G] = o(!1), [Ue, he] = o(!1), [_, $e] = o(!1), [Ge, H] = o(!1), [fe, He] = o([]), [x, ye] = o([]), Qe = async () => {
|
|
75
75
|
var e;
|
|
76
76
|
try {
|
|
77
77
|
const t = await Aa({
|
|
@@ -83,13 +83,13 @@ function Ha() {
|
|
|
83
83
|
console.error(t);
|
|
84
84
|
}
|
|
85
85
|
};
|
|
86
|
-
|
|
87
|
-
|
|
86
|
+
Y(() => {
|
|
87
|
+
Re(), Qe();
|
|
88
88
|
}, []);
|
|
89
|
-
const
|
|
89
|
+
const Re = async () => {
|
|
90
90
|
try {
|
|
91
91
|
await Q();
|
|
92
|
-
const { data: e } = await
|
|
92
|
+
const { data: e } = await Ca(
|
|
93
93
|
"techo.manage.manageTranslation"
|
|
94
94
|
);
|
|
95
95
|
ze(JSON.parse(e));
|
|
@@ -107,25 +107,25 @@ function Ha() {
|
|
|
107
107
|
} catch (n) {
|
|
108
108
|
console.error(n), b({ message: "Error in manage Translation", type: "error" });
|
|
109
109
|
}
|
|
110
|
-
},
|
|
110
|
+
}, Je = (e) => {
|
|
111
111
|
var t;
|
|
112
112
|
K((t = e == null ? void 0 : e.target) == null ? void 0 : t.value);
|
|
113
113
|
}, be = va((e) => {
|
|
114
114
|
const t = (e.match(/{/g) || []).length, n = (e.match(/}/g) || []).length;
|
|
115
115
|
t > n || ce(e);
|
|
116
|
-
}, []),
|
|
116
|
+
}, []), Ye = (e, t) => {
|
|
117
117
|
let n;
|
|
118
118
|
return (...c) => {
|
|
119
119
|
n && clearTimeout(n), n = setTimeout(() => {
|
|
120
120
|
e(...c);
|
|
121
121
|
}, t);
|
|
122
122
|
};
|
|
123
|
-
},
|
|
124
|
-
() =>
|
|
123
|
+
}, Xe = E(
|
|
124
|
+
() => Ye(be, 300),
|
|
125
125
|
[be]
|
|
126
|
-
),
|
|
126
|
+
), Ze = (e) => {
|
|
127
127
|
const { value: t } = e.target;
|
|
128
|
-
|
|
128
|
+
Xe(t);
|
|
129
129
|
}, ve = (e) => {
|
|
130
130
|
de(e);
|
|
131
131
|
}, xe = [
|
|
@@ -145,7 +145,7 @@ function Ha() {
|
|
|
145
145
|
});
|
|
146
146
|
}
|
|
147
147
|
);
|
|
148
|
-
const
|
|
148
|
+
const Pe = (e) => {
|
|
149
149
|
Ve(
|
|
150
150
|
(e == null ? void 0 : e.state) === "Active" ? "Mark as Inactive" : "Mark as Active"
|
|
151
151
|
), We(
|
|
@@ -155,7 +155,7 @@ function Ha() {
|
|
|
155
155
|
U((e) => !e);
|
|
156
156
|
}, aa = async () => {
|
|
157
157
|
try {
|
|
158
|
-
W({ key: i == null ? void 0 : i.key }),
|
|
158
|
+
W({ key: i == null ? void 0 : i.key }), he(!0), k((e) => !e);
|
|
159
159
|
} catch (e) {
|
|
160
160
|
console.error(e), b({ message: "Error in opening Add App Modal", type: "error" });
|
|
161
161
|
}
|
|
@@ -167,18 +167,18 @@ function Ha() {
|
|
|
167
167
|
parameters: { key: i == null ? void 0 : i.key.replace(/'/g, "''") }
|
|
168
168
|
};
|
|
169
169
|
const d = await j(l);
|
|
170
|
-
let
|
|
170
|
+
let ha = (e = d == null ? void 0 : d.data) == null ? void 0 : e.result;
|
|
171
171
|
q((t = d == null ? void 0 : d.data) == null ? void 0 : t.result);
|
|
172
|
-
let
|
|
172
|
+
let fa = {
|
|
173
173
|
code: "labels_app_data_for_prepopulating",
|
|
174
174
|
parameters: {
|
|
175
175
|
key: i == null ? void 0 : i.key,
|
|
176
176
|
appValue: i == null ? void 0 : i.app
|
|
177
177
|
}
|
|
178
|
-
}, ya =
|
|
179
|
-
if (
|
|
180
|
-
const A = await j(
|
|
181
|
-
W((n = A == null ? void 0 : A.data) == null ? void 0 : n.result), ee(
|
|
178
|
+
}, ya = ha.map((A) => A.app), Ce = g.filter((A) => ya.indexOf(A.id) === -1);
|
|
179
|
+
if (Ce.length > 0) {
|
|
180
|
+
const A = await j(fa);
|
|
181
|
+
W((n = A == null ? void 0 : A.data) == null ? void 0 : n.result), ee(Ce), ae(!0), k((ba) => !ba);
|
|
182
182
|
} else
|
|
183
183
|
b({
|
|
184
184
|
message: "Label already present in all apps",
|
|
@@ -197,7 +197,7 @@ function Ha() {
|
|
|
197
197
|
}, na = async (e) => {
|
|
198
198
|
var t;
|
|
199
199
|
try {
|
|
200
|
-
B(!0),
|
|
200
|
+
B(!0), k((d) => !d), me((d) => !d);
|
|
201
201
|
let n = e == null ? void 0 : e.key.replace(/'/g, "''");
|
|
202
202
|
ge(n);
|
|
203
203
|
const l = await j({
|
|
@@ -210,7 +210,7 @@ function Ha() {
|
|
|
210
210
|
}
|
|
211
211
|
}, la = (e) => (e == null ? void 0 : e.state) !== "Inactive", ra = E(() => {
|
|
212
212
|
const e = [];
|
|
213
|
-
(
|
|
213
|
+
C.hasCheckRights(r == null ? void 0 : r["update.manage.manageTranslation"]) && e.push({
|
|
214
214
|
label: "",
|
|
215
215
|
icon: /* @__PURE__ */ a(Le, { icon: ja }),
|
|
216
216
|
onClick: na,
|
|
@@ -218,10 +218,10 @@ function Ha() {
|
|
|
218
218
|
dataTestId: "manage-translation-edit-icon"
|
|
219
219
|
});
|
|
220
220
|
const t = [];
|
|
221
|
-
return (
|
|
221
|
+
return C.hasCheckRights(r == null ? void 0 : r["update.manage.manageTranslation"]) && t.push({ label: s(pe), onClick: ea }), C.hasCheckRights(r == null ? void 0 : r["create.manage.manageTranslation"]) && (t.push({ label: s("Add app"), onClick: ta }), t.push({ label: s("Add Namespace"), onClick: aa })), t.length > 0 && e.push({
|
|
222
222
|
label: "",
|
|
223
223
|
icon: /* @__PURE__ */ a(Le, { icon: Oa }),
|
|
224
|
-
menuClick:
|
|
224
|
+
menuClick: Pe,
|
|
225
225
|
dataTestId: "manage-translation-menu-icon",
|
|
226
226
|
menuItems: t
|
|
227
227
|
}), e;
|
|
@@ -230,8 +230,8 @@ function Ha() {
|
|
|
230
230
|
}, ia = () => {
|
|
231
231
|
re((e) => !e);
|
|
232
232
|
}, ca = () => {
|
|
233
|
-
|
|
234
|
-
},
|
|
233
|
+
k((e) => !e), ee(g);
|
|
234
|
+
}, R = (e) => e == null ? e : e.replace(/'/g, "''"), da = async (e, t) => {
|
|
235
235
|
var n;
|
|
236
236
|
try {
|
|
237
237
|
t && !_ ? (I.current = !0, G(!0)) : t && _ && H(!0);
|
|
@@ -239,9 +239,9 @@ function Ha() {
|
|
|
239
239
|
code: "fetch_labels_translation_translation_master",
|
|
240
240
|
parameters: {
|
|
241
241
|
appId: y || null,
|
|
242
|
-
searchString:
|
|
243
|
-
startsWith:
|
|
244
|
-
namespaceArray: x.length > 0 ? x.map((d) =>
|
|
242
|
+
searchString: R(T || ""),
|
|
243
|
+
startsWith: R(v || ""),
|
|
244
|
+
namespaceArray: x.length > 0 ? x.map((d) => R(d)).join(",") : "",
|
|
245
245
|
showInactive: S || !1,
|
|
246
246
|
limit: (e == null ? void 0 : e.limit) || 100,
|
|
247
247
|
offset: (e == null ? void 0 : e.offset) || 0
|
|
@@ -252,16 +252,16 @@ function Ha() {
|
|
|
252
252
|
} catch (c) {
|
|
253
253
|
I.current = !1, console.error(c), H(!1), G(!1), b({ message: "Error in loading data", type: "error" });
|
|
254
254
|
}
|
|
255
|
-
}, Ae = E(() =>
|
|
255
|
+
}, Ae = E(() => T === "" && v === "" && S === !1 && y === "" && x.length === 0, [T, v, S, y, x]), ua = E(
|
|
256
256
|
() => [
|
|
257
257
|
"translation",
|
|
258
258
|
y,
|
|
259
|
-
|
|
259
|
+
T,
|
|
260
260
|
v,
|
|
261
261
|
S,
|
|
262
262
|
x
|
|
263
263
|
],
|
|
264
|
-
[y,
|
|
264
|
+
[y, T, v, S, x]
|
|
265
265
|
), {
|
|
266
266
|
data: w,
|
|
267
267
|
fetchNextPage: pa,
|
|
@@ -275,7 +275,7 @@ function Ha() {
|
|
|
275
275
|
},
|
|
276
276
|
limit: 100
|
|
277
277
|
});
|
|
278
|
-
|
|
278
|
+
Y(() => {
|
|
279
279
|
var e;
|
|
280
280
|
if (w) {
|
|
281
281
|
let t = ((e = w == null ? void 0 : w.pages) == null ? void 0 : e.flat()) || [];
|
|
@@ -296,7 +296,7 @@ function Ha() {
|
|
|
296
296
|
const ga = () => {
|
|
297
297
|
ce(""), de(""), ue(!1), K(""), ye([]), u.current.value = "";
|
|
298
298
|
};
|
|
299
|
-
return
|
|
299
|
+
return !$ && r !== null && !C.hasCheckRights(r == null ? void 0 : r["view.manage.manageTranslation"]) ? /* @__PURE__ */ a(X, { className: "flex justify-center items-center w-full h-[80vh]", children: /* @__PURE__ */ a(
|
|
300
300
|
Sa,
|
|
301
301
|
{
|
|
302
302
|
className: "h-80 w-150 flex justify-center items-center",
|
|
@@ -331,10 +331,10 @@ function Ha() {
|
|
|
331
331
|
{
|
|
332
332
|
open: ie,
|
|
333
333
|
handleClose: () => {
|
|
334
|
-
|
|
334
|
+
k((e) => !e), ae(!1), he(!1), q(null), W(null), me(!1), ge(null);
|
|
335
335
|
},
|
|
336
|
-
apps:
|
|
337
|
-
addAppFlag:
|
|
336
|
+
apps: ke,
|
|
337
|
+
addAppFlag: Te,
|
|
338
338
|
addNameSpaceFlag: Ue,
|
|
339
339
|
languageList: N,
|
|
340
340
|
editLabel: Ee,
|
|
@@ -360,13 +360,13 @@ function Ha() {
|
|
|
360
360
|
}
|
|
361
361
|
),
|
|
362
362
|
/* @__PURE__ */ a(p, { container: !0, spacing: 1, className: "grow", children: /* @__PURE__ */ m(Ne, { isLoading: $, children: [
|
|
363
|
-
/* @__PURE__ */ a(p, { size: { xs: 6, sm: 6, md: 3 }, children: /* @__PURE__ */ m(
|
|
363
|
+
/* @__PURE__ */ a(p, { size: { xs: 6, sm: 6, md: 3 }, children: /* @__PURE__ */ m(Z, { variant: "outlined", fullWidth: !0, children: [
|
|
364
364
|
/* @__PURE__ */ a(L, { className: "pl-2", children: /* @__PURE__ */ a("span", { children: s("App") }) }),
|
|
365
365
|
/* @__PURE__ */ a(
|
|
366
366
|
La,
|
|
367
367
|
{
|
|
368
368
|
value: y,
|
|
369
|
-
onChange:
|
|
369
|
+
onChange: Je,
|
|
370
370
|
size: "small",
|
|
371
371
|
displayEmpty: !0,
|
|
372
372
|
sx: {
|
|
@@ -382,15 +382,15 @@ function Ha() {
|
|
|
382
382
|
}
|
|
383
383
|
)
|
|
384
384
|
] }) }),
|
|
385
|
-
/* @__PURE__ */ a(p, { size: { xs: 6, sm: 6, md: 3 }, children: /* @__PURE__ */ m(
|
|
385
|
+
/* @__PURE__ */ a(p, { size: { xs: 6, sm: 6, md: 3 }, children: /* @__PURE__ */ m(Z, { variant: "outlined", fullWidth: !0, children: [
|
|
386
386
|
/* @__PURE__ */ a(L, { className: "", children: /* @__PURE__ */ a("span", { children: s("Name Spaces") }) }),
|
|
387
387
|
/* @__PURE__ */ a(
|
|
388
|
-
|
|
388
|
+
ka,
|
|
389
389
|
{
|
|
390
390
|
multiple: !0,
|
|
391
|
-
options:
|
|
391
|
+
options: fe ?? [],
|
|
392
392
|
getOptionLabel: (e) => (e == null ? void 0 : e.label) ?? "",
|
|
393
|
-
value:
|
|
393
|
+
value: fe.filter(
|
|
394
394
|
(e) => x.includes(e.value)
|
|
395
395
|
),
|
|
396
396
|
onChange: (e, t) => {
|
|
@@ -400,7 +400,7 @@ function Ha() {
|
|
|
400
400
|
disableCloseOnSelect: !0,
|
|
401
401
|
size: "small",
|
|
402
402
|
renderTags: (e, t) => e.map((n, c) => /* @__PURE__ */ xa(
|
|
403
|
-
|
|
403
|
+
Ta,
|
|
404
404
|
{
|
|
405
405
|
variant: "outlined",
|
|
406
406
|
size: "small",
|
|
@@ -424,7 +424,7 @@ function Ha() {
|
|
|
424
424
|
}
|
|
425
425
|
)
|
|
426
426
|
] }) }),
|
|
427
|
-
/* @__PURE__ */ a(p, { size: { xs: 6, sm: 6, md: 3 }, children: /* @__PURE__ */ m(
|
|
427
|
+
/* @__PURE__ */ a(p, { size: { xs: 6, sm: 6, md: 3 }, children: /* @__PURE__ */ m(Z, { variant: "outlined", fullWidth: !0, children: [
|
|
428
428
|
/* @__PURE__ */ a(L, { sx: { pl: 1 }, children: /* @__PURE__ */ m("span", { children: [
|
|
429
429
|
s("Search For"),
|
|
430
430
|
":"
|
|
@@ -437,7 +437,7 @@ function Ha() {
|
|
|
437
437
|
id: "searchQuery",
|
|
438
438
|
placeholder: "Enter Search Value",
|
|
439
439
|
size: "small",
|
|
440
|
-
onChange:
|
|
440
|
+
onChange: Ze,
|
|
441
441
|
sx: { bgcolor: "background.paper" },
|
|
442
442
|
"data-testid": "managetranslation-search-textfield"
|
|
443
443
|
}
|
|
@@ -453,7 +453,7 @@ function Ha() {
|
|
|
453
453
|
justifyContent: "end",
|
|
454
454
|
alignItems: "center"
|
|
455
455
|
},
|
|
456
|
-
children: /* @__PURE__ */ a(
|
|
456
|
+
children: /* @__PURE__ */ a(X, { children: /* @__PURE__ */ a(
|
|
457
457
|
M,
|
|
458
458
|
{
|
|
459
459
|
variant: "contained",
|
|
@@ -485,7 +485,7 @@ function Ha() {
|
|
|
485
485
|
justifyContent: "start",
|
|
486
486
|
alignItems: "center"
|
|
487
487
|
},
|
|
488
|
-
children: /* @__PURE__ */ m(
|
|
488
|
+
children: /* @__PURE__ */ m(X, { className: "overflow-x-auto whitespace-nowrap", children: [
|
|
489
489
|
/* @__PURE__ */ a(L, { className: "pb-[7px]", children: /* @__PURE__ */ m("span", { children: [
|
|
490
490
|
s("Starts With"),
|
|
491
491
|
":"
|
|
@@ -546,7 +546,7 @@ function Ha() {
|
|
|
546
546
|
className: "translation-inactive"
|
|
547
547
|
}
|
|
548
548
|
) }) }),
|
|
549
|
-
/* @__PURE__ */ a(p, { item: "true", children: (
|
|
549
|
+
/* @__PURE__ */ a(p, { item: "true", children: C.hasCheckRights(r == null ? void 0 : r["create.manage.manageTranslation"], r == null ? void 0 : r.canManage) && /* @__PURE__ */ a(
|
|
550
550
|
M,
|
|
551
551
|
{
|
|
552
552
|
size: "small",
|
|
@@ -557,7 +557,7 @@ function Ha() {
|
|
|
557
557
|
children: s("Manage Apps")
|
|
558
558
|
}
|
|
559
559
|
) }),
|
|
560
|
-
/* @__PURE__ */ a(p, { item: "true", children: (
|
|
560
|
+
/* @__PURE__ */ a(p, { item: "true", children: C.hasCheckRights(r == null ? void 0 : r["create.manage.manageTranslation"], r == null ? void 0 : r.canManage) && /* @__PURE__ */ a(
|
|
561
561
|
M,
|
|
562
562
|
{
|
|
563
563
|
size: "small",
|
|
@@ -567,7 +567,7 @@ function Ha() {
|
|
|
567
567
|
children: s("Manage Language")
|
|
568
568
|
}
|
|
569
569
|
) }),
|
|
570
|
-
/* @__PURE__ */ a(p, { item: "true", children:
|
|
570
|
+
/* @__PURE__ */ a(p, { item: "true", children: C.hasCheckRights(r == null ? void 0 : r["create.manage.manageTranslation"]) && /* @__PURE__ */ a(
|
|
571
571
|
M,
|
|
572
572
|
{
|
|
573
573
|
size: "small",
|
|
@@ -615,11 +615,11 @@ export {
|
|
|
615
615
|
mt as c,
|
|
616
616
|
ut as d,
|
|
617
617
|
Ba as e,
|
|
618
|
-
|
|
618
|
+
ht as f,
|
|
619
619
|
Da as g,
|
|
620
|
-
|
|
620
|
+
ft as h,
|
|
621
621
|
yt as i,
|
|
622
622
|
bt as t,
|
|
623
623
|
gt as u
|
|
624
624
|
};
|
|
625
|
-
//# sourceMappingURL=ManageTranslation-
|
|
625
|
+
//# sourceMappingURL=ManageTranslation-B4C9-lWD.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ManageTranslation-B4C9-lWD.js","sources":["../src/services/TranslationService.js","../src/views/Translation/Skeletons/ManageTranslationSkeleton.jsx","../src/views/Translation/ManageTranslation.jsx"],"sourcesContent":["import { api } from \"@/common/interceptors/AxiosInterceptor\";\nimport { execute } from \"@/common/services/GlobalApis\";\n\nexport const createLanguage = (languageDto) =>\n api.post(\"/translation/languages\", languageDto);\n\nexport const createOrUpdateLanguages = (languageList) =>\n api.post(\"/translation/languages\", languageList);\n\nexport const updateLanguage = (languageDto) =>\n api.put(\"/translation/languages\", languageDto);\n\nexport const getAllLanguages = () => api.get(\"/translation/languages\");\n\nexport const createApp = (appDto) => api.post(\"/translation/apps\", appDto);\n\nexport const updateApp = (appDto) => api.post(\"/translation/apps\", appDto);\n\nexport const getAllApps = () => api.get(\"/translation/apps\");\n\nexport const creatingLabel = (dtoList) =>\n api.post(\"/translation/labels\", dtoList);\n\nexport const translationMap = (dtoList) =>\n api.post(\"/translation/map\", dtoList);\n\nexport const addtranslationMap = (dtoList) =>\n api.post(\"/translation/mapUpdate\", dtoList);\n\nexport const getAppsById = (ids) =>\n api.get(\"/translation/apps-selected\", { params: { ids } });\n\nexport const getLanguagesById = (ids) =>\n api.get(\"/translation/languages-selected\", { params: { ids } });\n\nexport const toggleActive = (key, isActive, app) => {\n const params = new URLSearchParams({\n key,\n isActive,\n app,\n }).toString();\n return api.put(`/translation/toggleActive?${params}`, { key, isActive, app });\n};\n\nexport const getAvailableLanguages = () =>\n api.get(\"/translation/languages-available\");\n\nexport const translateText = (targetLangs, englishText) =>\n api.get(\"/translation/translate\", { params: { targetLangs, englishText } });\n\nexport const getTranslation = async (preferredLanguage) => {\n try {\n const { data: languages } = await getAllLanguages();\n const preferredLanguageId = languages.find(\n (lang) =>\n lang.active &&\n preferredLanguage !== \"en\" &&\n lang.languageKey === preferredLanguage\n )?.id;\n\n const { data: response } = await execute({\n code: \"translation_from_language_key\",\n parameters: {\n languageId: Number(preferredLanguageId),\n appId: 2,\n },\n });\n\n const translations = response.result.reduce((acc, translation) => {\n acc[translation.key] = translation.value;\n return acc;\n }, {});\n\n return translations;\n } catch (error) {\n console.error(\"API call failed:\", error);\n throw error;\n }\n};\n\nexport const getTranslationByKey = (formCode) =>\n api.get(\"/translation/getTranslationsByFormcode\", { params: { formCode } });\n","import PropTypes from \"prop-types\";\nimport React from \"react\";\n\nimport { useSelector } from \"react-redux\";\nimport { getUseSkeleton } from \"@/store/reducers/SkeletonReducer\";\nexport const ManageTranslationSkeleton = ({ children, isLoading }) => {\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=\"flex flex-col mt-6 gap-2 w-full\">\n <div className=\"flex w-full items-center justify-between space-x-2\">\n <div className=\"flex space-x-2\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-40 h-10\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-40 h-10\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-60 h-10\"></div>\n </div>\n <div className=\"flex space-x-2\">\n <div className=\"bg-gray-300 rounded-sm animate-pulse w-40 h-10\"></div>\n <div className=\"bg-gray-300 rounded-sm animate-pulse w-20 h-10\"></div>\n <div className=\"bg-gray-300 rounded-sm animate-pulse w-20 h-10\"></div>\n <div className=\"bg-gray-300 rounded-sm animate-pulse w-20 h-10\"></div>\n </div>\n </div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-full h-100\"></div>\n </div>\n );\n};\n\nManageTranslationSkeleton.propTypes = {\n children: PropTypes.any,\n isLoading: PropTypes.any,\n};\n\nexport const AddLabelSkeleton = ({ 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=\"flex flex-col absolute top-10 left-1/2 -translate-x-1/2 w-[95%] sm:w-[600px] md:w-[700px] lg:w-[800px] bg-white shadow-2xl border border-gray-300 rounded-sm h-[60vh]\">\n <div className=\"h-15 w-full bg-gray-200 rounded mb-6\"></div>\n <div className=\"h-10 w-[90%] bg-gray-200 rounded m-4\"></div>\n <div className=\"h-10 w-[90%] bg-gray-200 rounded m-4\"></div>\n <div className=\"h-10 w-[90%] bg-gray-200 rounded m-4 \"></div>\n <div className=\"h-9 w-1/3 bg-gray-200 rounded mt-auto ml-auto mb-2 mr-3\"></div>\n </div>\n );\n};\n\nAddLabelSkeleton.propTypes = {\n children: PropTypes.any,\n isLoading: PropTypes.any,\n};\n\nexport const AppModalSkeleton = ({ 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=\"w-full flex justify-end pb-[10px]\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm h-[32px] w-[100px]\"></div>\n </div>\n );\n};\n\nAppModalSkeleton.propTypes = {\n children: PropTypes.any,\n isLoading: PropTypes.any,\n};\n\nexport const LabelEditModalSkeleton = ({ 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=\"flex justify-end w-full\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm h-[32px] w-[120px]\"></div>\n </div>\n );\n};\n\nLabelEditModalSkeleton.propTypes = {\n children: PropTypes.any,\n isLoading: PropTypes.any,\n};\n\nexport const LabelEditFormSkeleton = ({ 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=\"w-full flex flex-col gap-2\">\n <div className=\"flex flex-col sm:flex-row justify-between gap-4 w-full\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[130px] h-[35px]\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-full sm:w-[350px] h-[35px]\"></div>\n </div>\n <div className=\"flex flex-col sm:flex-row gap-4 w-full\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[65px] h-[35px]\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[75px] h-[35px]\"></div>\n </div>\n </div>\n );\n};\n\nLabelEditFormSkeleton.propTypes = {\n children: PropTypes.any,\n isLoading: PropTypes.any,\n};","import React, {\n lazy,\n Suspense,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport {\n getAllApps,\n getAllLanguages,\n toggleActive,\n} from \"../../services/TranslationService\";\nimport { showToast } from \"@/common/toaster/toaster\";\nimport Grid from \"@mui/material/Grid2\";\nimport \"./Styles/ManageTranslation.scss\";\nimport { getAssignedFeatures } from \"@/utils/feature\";\nimport {\n MenuItem,\n FormControl,\n Select,\n Typography,\n TextField,\n Box,\n Card,\n Button,\n FormControlLabel,\n FormGroup,\n Checkbox,\n Chip,\n Autocomplete,\n} from \"@mui/material\";\nimport { executeQuery, execute } from \"@/common/services/GlobalApis\";\nimport usePagination from \"@/hooks/usePagination\";\nimport CustomConfirmationModal from \"@/views/custom-components/CustomConfirmationModal\";\nconst AppModal = lazy(() => import(\"./AppModal\"));\nconst LanguagesModal = lazy(() => import(\"./LanguagesModal\"));\nconst AddLabelModal = lazy(() => import(\"./AddLabelModal\"));\nimport GeneralUtil from \"@/common/services/util/GeneralUtil\";\n// const LabelEditModal = lazy(() => import('./LabelEditModal'));\nimport { useTranslateProvider } from \"@/common/languageTranslator/TranslationContext\";\nimport { ManageTranslationSkeleton } from \"./Skeletons/ManageTranslationSkeleton\";\nimport CustomizedTable from \"@/views/custom-components/CustomizedTable/CustomizedTableV2\";\nimport { faBars, faPen } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\n\n/**\n * @module ManageTranslation\n * @description This component handles the management of translations, including handling app selection, language management, label management, and toggling active states.\n */\n\nfunction ManageTranslation() {\n const { translate } = useTranslateProvider();\n const inputRef = useRef(null);\n const [apps, setApps] = useState([]);\n const isInitialPage = useRef(false);\n const [appList, setAppList] = useState([]);\n const [addAppFlag, setaddAppFlag] = useState(false);\n const [fieldsData, setFieldsData] = useState(null);\n const [loadingEditLabel, setLoadingEditLabel] = useState(false);\n\n const [tableData, setTableData] = useState([]);\n const [appModal, setAppModal] = useState(false);\n const [languageModal, setLanguageModal] = useState(false);\n\n const [hasMore, setHasMore] = useState(true);\n const [selectedApp, setSelectedApp] = useState(\"\");\n const [languages, setLanguages] = useState([]);\n\n const [addLabel, setAddLabel] = useState(false);\n const [editLabel, setEditLabel] = useState(null);\n // const [search, setSearch] = useState('');\n const [searchValue, setSearchValue] = useState(\"\");\n const [startsWith, setStartsWith] = useState(\"\");\n const [inactive, setInactive] = useState(false);\n const [rights, setRights] = useState(null);\n const rightsRef = useRef(rights);\n\n useEffect(() => {\n rightsRef.current = rights;\n }, [rights]);\n\n\n const [toggleOpen, setToggleOpen] = useState(false);\n\n const [isActiveLabel, setIsActiveLabel] = useState(\"\");\n const [isActiveDescription, setIsActiveDescription] = useState(\"\");\n const [clickedRow, setClickedRow] = useState({});\n\n const [labelEdit, setLabelEdit] = useState(false);\n const [labelKey, setLabelKey] = useState(null);\n const [isLoading, setIsLoading] = useState(false);\n const [addNameSpaceFlag, setaddNameSpaceFlag] = useState(false);\n const [isPageLoaded, setIsPageLoaded] = useState(false);\n const [loadingTable, setLoadingTable] = useState(false);\n\n const [namespaceslist, setNameSpaceList] = useState([]);\n const [selectedNameSpace, setSelectedNameSpace] = useState([]);\n\n const getnamespace = async () => {\n try {\n const res = await execute({\n code: \"get_distinct_namespce\",\n parameters: {},\n });\n setNameSpaceList(res?.data?.result);\n } catch (e) {\n console.error(e);\n }\n };\n\n useEffect(() => {\n init();\n getnamespace();\n }, []);\n\n /**\n * @method init\n * @description Initializes the translation management page by fetching necessary data, such as apps and languages, and setting user rights.\n */\n const init = async () => {\n try {\n await refresh();\n const { data: assignedFeatures } = await getAssignedFeatures(\n \"techo.manage.manageTranslation\",\n );\n setRights(JSON.parse(assignedFeatures));\n } catch (error) {\n console.error(error);\n showToast({ message: \"Error in manage Translation\", type: \"error\" });\n }\n };\n\n /**\n * @method refresh\n * @description Refreshes the list of apps and languages.\n */\n const refresh = async () => {\n try {\n let res = await getAllApps();\n const activeApps = res?.data?.filter((app) => {\n return app.isActive === true;\n });\n setApps(activeApps);\n\n res = await getAllLanguages();\n const activeLanguages = res?.data?.filter((lang) => {\n return lang.active === true;\n });\n setLanguages(activeLanguages);\n } catch (error) {\n console.error(error);\n showToast({ message: \"Error in manage Translation\", type: \"error\" });\n }\n };\n\n /**\n * @method handleAppChange\n * @description Handles the change in the selected app and fetches related data.\n * @param {object} event - The change event from the Select component.\n */\n const handleAppChange = (event) => {\n setSelectedApp(event?.target?.value);\n };\n\n const performSearch = useCallback((search) => {\n // If there is an unmatched '{', do not update searchValue\n const openBraces = (search.match(/{/g) || []).length;\n const closeBraces = (search.match(/}/g) || []).length;\n if (openBraces > closeBraces) return;\n setSearchValue(search);\n }, []);\n const debounce = (func, delay) => {\n let timeoutId;\n return (...args) => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => {\n func(...args);\n }, delay);\n };\n };\n\n const debouncedSearch = useMemo(\n () => debounce(performSearch, 300),\n [performSearch],\n );\n\n /**\n * @method handleSearch\n * @description Handles the search input change.\n * @param {object} e - The input event.\n */\n const handleSearch = (e) => {\n const { value: search } = e.target;\n // setSearch(search);\n debouncedSearch(search);\n };\n\n /**\n * @method handleLetterClick\n * @description Handles clicking on a letter to filter results that start with that letter.\n * @param {string} letter - The clicked letter.\n */\n const handleLetterClick = (letter) => {\n setStartsWith(letter);\n // searchTranslations(true); // Call your search function here\n };\n\n const cols = [\n { field: \"Sr. No.\", label: `Sr.No`, align: \"left\" },\n { field: \"Actions\", label: \"Actions\" },\n { field: \"app\", label: \"App\", align: \"left\" },\n { field: \"state\", label: \"State\", align: \"left\" },\n { field: \"key\", label: \"Key\", align: \"left\" },\n ];\n\n languages?.map((language) =>\n cols.push({\n field: language?.languageValue?.toLowerCase(),\n label: language?.languageValue,\n align: \"left\",\n }),\n );\n\n /**\n * @method handleToggleOption\n * @description Handles the toggling of the label state between active and inactive.\n * @param {object} data - The label data.\n */\n const handleToggleOption = (data) => {\n setIsActiveLabel(\n data?.state === \"Active\" ? \"Mark as Inactive\" : \"Mark as Active\",\n );\n setIsActiveDescription(\n data?.state === \"Active\"\n ? \"Are you sure you want to change the state from active to inactive?\"\n : \"Are you sure you want to change the state from inactive to active?\",\n );\n setClickedRow(data);\n };\n\n const handleToggle = () => {\n setToggleOpen((curr) => !curr);\n };\n\n /**\n * @method handleAddApp\n * @description Opens the modal for adding a new app to the label.\n */\n const handleAddNameSpace = async () => {\n try {\n setFieldsData({ key: clickedRow?.key });\n setaddNameSpaceFlag(true);\n setAddLabel((curr) => !curr);\n } catch (error) {\n console.error(error);\n showToast({ message: \"Error in opening Add App Modal\", type: \"error\" });\n }\n };\n\n const handleAddApp = async () => {\n try {\n let key = clickedRow?.key.replace(/'/g, \"''\");\n let dto = {\n code: \"labels_selected_apps_for_editing\",\n parameters: { key },\n };\n const res = await executeQuery(dto);\n let editApp = res?.data?.result;\n setEditLabel(res?.data?.result);\n let queryDto = {\n code: \"labels_app_data_for_prepopulating\",\n parameters: {\n key: clickedRow?.key,\n appValue: clickedRow?.app,\n },\n };\n\n let editAppIds = editApp.map((item) => {\n return item.app;\n });\n let appList = apps.filter((app) => {\n return editAppIds.indexOf(app.id) === -1;\n });\n\n if (appList.length > 0) {\n const result = await executeQuery(queryDto);\n setFieldsData(result?.data?.result);\n setAppList(appList);\n\n setaddAppFlag(true);\n setAddLabel((curr) => !curr);\n } else {\n showToast({\n message: \"Label already present in all apps\",\n type: \"info\",\n });\n }\n } catch (error) {\n console.error(error);\n showToast({ message: \"Error in opening Add App Modal\", type: \"error\" });\n }\n };\n\n const handleToggleState = async () => {\n try {\n let isActive = clickedRow?.state === \"Active\";\n await toggleActive(clickedRow?.key, !isActive, clickedRow?.appId);\n refetch();\n setToggleOpen((cur) => !cur);\n } catch (error) {\n console.error(error);\n showToast({ message: \"Error in Toggle State\", type: \"error\" });\n }\n };\n\n /**\n * @method handleEdit\n * @description Handles the edit action for a label.\n * @param {object} row - The row data for the label to be edited.\n */\n const handleEdit = async (row) => {\n try {\n setLoadingEditLabel(true);\n setAddLabel((curr) => !curr);\n setLabelEdit((curr) => !curr);\n let key = row?.key.replace(/'/g, \"''\");\n setLabelKey(key);\n let dto = {\n code: \"labels_selected_apps_for_editing\",\n parameters: { key },\n };\n const res = await executeQuery(dto);\n setEditLabel(res?.data?.result);\n setLoadingEditLabel(false);\n } catch (error) {\n console.error(error);\n showToast({ message: \"Error in Editing label\", type: \"error\" });\n setLoadingEditLabel(false);\n }\n };\n\n const handleInactive = (row) => {\n return row?.state !== \"Inactive\";\n };\n\n const actions = useMemo(() => {\n const list = [];\n if (GeneralUtil.hasCheckRights(rights?.['update.manage.manageTranslation'])) {\n list.push({\n label: \"\",\n icon: <FontAwesomeIcon icon={faPen} />,\n onClick: handleEdit,\n condition: handleInactive,\n dataTestId: \"manage-translation-edit-icon\",\n });\n }\n\n const currentMenuItems = [];\n if (GeneralUtil.hasCheckRights(rights?.['update.manage.manageTranslation'])) {\n currentMenuItems.push({ label: translate(isActiveLabel), onClick: handleToggle });\n }\n if (GeneralUtil.hasCheckRights(rights?.['create.manage.manageTranslation'])) {\n currentMenuItems.push({ label: translate(\"Add app\"), onClick: handleAddApp });\n currentMenuItems.push({ label: translate(\"Add Namespace\"), onClick: handleAddNameSpace });\n }\n\n if (currentMenuItems.length > 0) {\n list.push({\n label: \"\",\n icon: <FontAwesomeIcon icon={faBars} />,\n menuClick: handleToggleOption,\n dataTestId: \"manage-translation-menu-icon\",\n menuItems: currentMenuItems,\n });\n }\n\n return list;\n }, [rights, isActiveLabel, translate]);\n\n const manageApps = () => {\n setAppModal((cur) => !cur);\n };\n const manageLanguages = () => {\n setLanguageModal((curr) => !curr);\n };\n const addLabelTranslation = () => {\n setAddLabel((curr) => !curr);\n setAppList(apps);\n };\n\n const escapeSql = (val) => {\n if (val === null || val === undefined) return val;\n return val.replace(/'/g, \"''\");\n };\n\n const loadData = async (pageParam, isInitial) => {\n try {\n if (isInitial && !isPageLoaded) {\n isInitialPage.current = true;\n setIsLoading(true);\n } else if (isInitial && isPageLoaded) {\n // This is a refetch, not truly the first load\n setLoadingTable(true);\n }\n let queryDto = {\n code: \"fetch_labels_translation_translation_master\",\n parameters: {\n appId: selectedApp || null,\n searchString: escapeSql(searchValue || \"\"),\n startsWith: escapeSql(startsWith || \"\"),\n namespaceArray:\n selectedNameSpace.length > 0\n ? selectedNameSpace.map((v) => escapeSql(v)).join(\",\")\n : \"\",\n showInactive: inactive || false,\n limit: pageParam?.limit || 100,\n offset: pageParam?.offset || 0,\n },\n };\n const res = await executeQuery(queryDto);\n return res?.data?.result;\n } catch (error) {\n isInitialPage.current = false;\n console.error(error);\n setLoadingTable(false);\n setIsLoading(false);\n showToast({ message: \"Error in loading data\", type: \"error\" });\n }\n };\n\n // Place this inside your component, right before the return()\n const isClearDisabled = useMemo(() => {\n return (\n searchValue === \"\" &&\n startsWith === \"\" &&\n inactive === false &&\n selectedApp === \"\" &&\n selectedNameSpace.length === 0\n );\n }, [searchValue, startsWith, inactive, selectedApp, selectedNameSpace]);\n\n const stableKey = useMemo(\n () => [\n \"translation\",\n selectedApp,\n searchValue,\n startsWith,\n inactive,\n selectedNameSpace,\n ],\n [selectedApp, searchValue, startsWith, inactive, selectedNameSpace],\n );\n\n const {\n data: pageData,\n fetchNextPage,\n hasNextPage,\n refetch,\n } = usePagination({\n key: stableKey,\n queryFn: ({ pageParam }) => {\n const isFirstLoad = !isPageLoaded; // first time ever\n const isFirstPage = !pageParam?.offset || pageParam?.offset === 0;\n const isInitial = isFirstPage && isFirstLoad; // only first load is \"initial\"\n return loadData(pageParam, isInitial);\n },\n limit: 100,\n });\n\n useEffect(() => {\n if (pageData) {\n let actualData = pageData?.pages?.flat() || [];\n\n const groupedArray = Object.values(\n actualData?.reduce((acc, element) => {\n const combinedKey = element?.key + \"-\" + element?.app; // Create a unique key combining `key` and `app`\n if (!acc[combinedKey]) {\n acc[combinedKey] = {\n appId: element?.appid,\n key: element?.key,\n app: element?.app,\n state: element?.is_active ? \"Active\" : \"Inactive\",\n };\n }\n\n acc[combinedKey][element?.language.toLowerCase()] = element?.value; // Add the `value` to the group's `values` array\n if (element?.is_active) {\n acc[combinedKey].state = \"Active\";\n }\n return acc;\n }, {}),\n );\n setHasMore(hasNextPage);\n setTableData(groupedArray);\n if (isInitialPage.current) {\n if (!isPageLoaded) {\n setIsLoading(false); // explicitly stop\n setIsPageLoaded(true);\n } else {\n setLoadingTable(false); // explicitly stop\n }\n isInitialPage.current = false;\n }\n }\n }, [pageData]);\n\n const handleClearFilters = () => {\n setSearchValue(\"\");\n setStartsWith(\"\");\n setInactive(false);\n setSelectedApp(\"\");\n setSelectedNameSpace([]);\n inputRef.current.value = \"\";\n };\n\n return !isLoading && rights !== null && !GeneralUtil.hasCheckRights(rights?.[\"view.manage.manageTranslation\"]) ? (\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 Manage Translation\n </Typography>\n </Card>\n </Box>\n ) : (\n <Grid container mt={3} spacing={2}>\n <Suspense>\n {appModal && (\n <AppModal\n open={appModal}\n handleClose={() => setAppModal((curr) => !curr)}\n languages={languages}\n refresh={refresh}\n refetch={refetch}\n selectedApp={selectedApp}\n setSelectedApp={setSelectedApp}\n />\n )}\n </Suspense>\n\n <Suspense>\n {languageModal && (\n <LanguagesModal\n open={languageModal}\n handleClose={() => {\n setLanguageModal((curr) => !curr);\n }}\n refresh={refresh}\n refetch={refetch}\n />\n )}\n </Suspense>\n\n <Suspense>\n {addLabel && (\n <AddLabelModal\n open={addLabel}\n handleClose={() => {\n setAddLabel((curr) => !curr);\n setaddAppFlag(false);\n setaddNameSpaceFlag(false);\n setEditLabel(null);\n setFieldsData(null);\n setLabelEdit(false);\n setLabelKey(null);\n }}\n apps={appList}\n addAppFlag={addAppFlag}\n addNameSpaceFlag={addNameSpaceFlag}\n languageList={languages}\n editLabel={editLabel}\n fieldsData={fieldsData}\n editLabelFlag={labelEdit}\n // editLabel={editLabel}\n labelKey={labelKey}\n refetch={refetch}\n isLoading={loadingEditLabel}\n />\n )}\n </Suspense>\n\n <Suspense>\n {/* {labelEdit && (\n <LabelEditModal\n open={labelEdit}\n handleClose={() => {\n setLabelEdit((curr) => !curr);\n setEditLabel(null);\n setLabelKey(null);\n }}\n editLabel={editLabel}\n labelKey={labelKey}\n refetch={refetch}\n />\n )} */}\n </Suspense>\n\n <CustomConfirmationModal\n description={isActiveDescription}\n title={\"CONFIRM ACTION\"}\n handleClick={handleToggleState}\n open={toggleOpen}\n handleClose={() => {\n setToggleOpen((cur) => !cur);\n }}\n data-testid=\"manageTranslation-modal-customconfirmation\"\n />\n <Grid container spacing={1} className=\"grow\">\n <ManageTranslationSkeleton isLoading={isLoading}>\n <Grid size={{ xs: 6, sm: 6, md: 3 }}>\n <FormControl variant=\"outlined\" fullWidth>\n <Typography className=\"pl-2\">\n <span>{translate(\"App\")}</span>\n </Typography>\n\n <Select\n value={selectedApp}\n onChange={handleAppChange}\n size=\"small\"\n displayEmpty\n sx={{\n bgcolor: \"background.paper\",\n color: selectedApp ? \"text.primary\" : \"text.disabled\", // gray when empty\n }}\n renderValue={(selected) =>\n selected\n ? apps.find((app) => app.id === selected)?.appValue\n : \"Select App\"\n }\n >\n {apps?.map((app) => (\n <MenuItem key={app?.id} value={app?.id}>\n {app?.appValue}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n </Grid>\n <Grid size={{ xs: 6, sm: 6, md: 3 }}>\n <FormControl variant=\"outlined\" fullWidth>\n <Typography className=\"\">\n <span>{translate(\"Name Spaces\")}</span>\n </Typography>\n <Autocomplete\n multiple\n options={namespaceslist ?? []}\n getOptionLabel={(option) => option?.label ?? \"\"}\n value={namespaceslist.filter((ns) =>\n selectedNameSpace.includes(ns.value),\n )}\n onChange={(e, newValue) => {\n setSelectedNameSpace(newValue.map((item) => item.value));\n }}\n filterSelectedOptions\n disableCloseOnSelect\n size=\"small\"\n renderTags={(value, getTagProps) =>\n value.map((option, index) => (\n <Chip\n variant=\"outlined\"\n size=\"small\"\n label={option.label}\n {...getTagProps({ index })}\n key={option.label}\n sx={{\n bgcolor: \"action.hover\",\n }}\n />\n ))\n }\n renderInput={(params) => (\n <TextField\n {...params}\n placeholder=\"Select Name Space\"\n sx={{ bgcolor: \"background.paper\" }}\n data-testid=\"autocomplete-namespace\"\n />\n )}\n />\n </FormControl>\n </Grid>\n <Grid size={{ xs: 6, sm: 6, md: 3 }}>\n <FormControl variant=\"outlined\" fullWidth>\n <Typography sx={{ pl: 1 }}>\n <span>{translate(\"Search For\")}:</span>\n </Typography>\n\n <TextField\n inputRef={inputRef}\n name=\"searchQuery\"\n id=\"searchQuery\"\n placeholder=\"Enter Search Value\"\n size=\"small\"\n // value={search}\n onChange={handleSearch}\n sx={{ bgcolor: \"background.paper\" }}\n data-testid=\"managetranslation-search-textfield\"\n />\n </FormControl>\n </Grid>\n <Grid\n size={{ xs: 12, sm: 12, md: 2 }}\n sx={{\n display: \"flex\",\n mt: 3,\n justifyContent: \"end\",\n alignItems: \"center\",\n }}\n >\n <Box>\n <Button\n variant=\"contained\"\n disabled={isClearDisabled}\n sx={{\n lineHeight: \"35px\",\n ml: 1,\n mt: 1,\n display: \"inline-block\",\n ...(isClearDisabled\n ? {}\n : {\n bgcolor: \"error.main\",\n color: \"error.contrastText\",\n \"&:hover\": { bgcolor: \"error.dark\" },\n }),\n }}\n onClick={handleClearFilters}\n >\n Clear All Filters\n </Button>\n </Box>\n </Grid>\n\n <Grid\n size={{ xs: 12, sm: 12, md: 6.5 }}\n sx={{\n pl: 1,\n display: \"flex\",\n justifyContent: \"start\",\n alignItems: \"center\",\n }}\n >\n <Box className=\"overflow-x-auto whitespace-nowrap\">\n <Typography className=\"pb-[7px]\">\n <span>{translate(\"Starts With\")}:</span>\n </Typography>\n\n {Array.from({ length: 26 }, (_, index) => {\n const letter = String.fromCharCode(65 + index);\n return (\n <Typography\n key={letter}\n component=\"span\"\n className={`${startsWith === letter ? \"selected-letter\" : \"letter-style\"} inline-block cursor-pointer`}\n onClick={() => handleLetterClick(letter)}\n >\n {letter}\n </Typography>\n );\n })}\n\n <Button\n variant=\"contained\"\n color=\"secondary\"\n disabled={startsWith.length === 0}\n className=\"x-button ml-2 inline-block\"\n onClick={() => handleLetterClick(\"\")}\n >\n ×\n </Button>\n </Box>\n </Grid>\n\n <Grid\n size={{ xs: 12, sm: 12, md: 5.5 }}\n display=\"flex\"\n alignItems=\"center\"\n >\n <Grid\n container\n justifyContent=\"flex-end\"\n alignItems=\"center\"\n spacing={1}\n >\n <Grid item=\"true\">\n <FormGroup>\n <FormControlLabel\n control={\n <Checkbox\n checked={inactive}\n onChange={(event) => setInactive(event.target.checked)}\n />\n }\n label={`${translate(\"Show Inactive\")}`}\n labelPlacement=\"end\"\n className=\"translation-inactive\"\n />\n </FormGroup>\n </Grid>\n <Grid item=\"true\">\n {GeneralUtil.hasCheckRights(rights?.['create.manage.manageTranslation'], rights?.canManage) && (\n <Button\n size=\"small\"\n variant=\"contained\"\n data-testid=\"manageTranslation-manage-apps-button\"\n color=\"primary\"\n onClick={manageApps}\n >\n {translate(\"Manage Apps\")}\n </Button>\n )}\n </Grid>\n\n <Grid item=\"true\">\n {GeneralUtil.hasCheckRights(rights?.['create.manage.manageTranslation'], rights?.canManage) && (\n <Button\n size=\"small\"\n variant=\"contained\"\n data-testid=\"managetranslation-manage-language-button\"\n onClick={manageLanguages}\n >\n {translate(\"Manage Language\")}\n </Button>\n )}\n </Grid>\n\n <Grid item=\"true\">\n {GeneralUtil.hasCheckRights(rights?.['create.manage.manageTranslation']) && (\n <Button\n size=\"small\"\n variant=\"contained\"\n data-testid=\"manageTranalation-add-label-button\"\n onClick={addLabelTranslation}\n >\n {translate(\"Add Label\")}\n </Button>\n )}\n </Grid>\n </Grid>\n </Grid>\n <Grid className=\"mt-2\" size={{ xs: 12 }}>\n <CustomizedTable\n columns={cols}\n tableData={tableData}\n actions={actions}\n paginationConfig={{\n pagination: true,\n paginationType: \"infinite-scroll\",\n loadMore: () =>\n hasMore && fetchNextPage({ cancelRefetch: false }),\n hasMore: hasMore,\n }}\n // rowsPerPageInTable={50}\n // handleSort={handleSort}\n // sortOrder={sortOrder}\n dataTestId=\"manageTranslation-table\"\n isLoading={tableData ? isLoading || loadingTable : false}\n styleConfig={{ tableStyle: { maxHeight: 120 } }}\n />\n </Grid>\n </ManageTranslationSkeleton>\n </Grid>\n </Grid>\n );\n}\n\nexport default ManageTranslation;\n"],"names":["createLanguage","languageDto","api","updateLanguage","getAllLanguages","createApp","appDto","updateApp","getAllApps","creatingLabel","dtoList","translationMap","addtranslationMap","toggleActive","key","isActive","app","params","translateText","targetLangs","englishText","ManageTranslationSkeleton","children","isLoading","useSelector","getUseSkeleton","jsxs","jsx","PropTypes","AddLabelSkeleton","AppModalSkeleton","LabelEditModalSkeleton","AppModal","lazy","LanguagesModal","AddLabelModal","ManageTranslation","translate","useTranslateProvider","inputRef","useRef","apps","setApps","useState","isInitialPage","appList","setAppList","addAppFlag","setaddAppFlag","fieldsData","setFieldsData","loadingEditLabel","setLoadingEditLabel","tableData","setTableData","appModal","setAppModal","languageModal","setLanguageModal","hasMore","setHasMore","selectedApp","setSelectedApp","languages","setLanguages","addLabel","setAddLabel","editLabel","setEditLabel","searchValue","setSearchValue","startsWith","setStartsWith","inactive","setInactive","rights","setRights","rightsRef","useEffect","toggleOpen","setToggleOpen","isActiveLabel","setIsActiveLabel","isActiveDescription","setIsActiveDescription","clickedRow","setClickedRow","labelEdit","setLabelEdit","labelKey","setLabelKey","setIsLoading","addNameSpaceFlag","setaddNameSpaceFlag","isPageLoaded","setIsPageLoaded","loadingTable","setLoadingTable","namespaceslist","setNameSpaceList","selectedNameSpace","setSelectedNameSpace","getnamespace","res","execute","_a","e","init","refresh","assignedFeatures","getAssignedFeatures","error","showToast","activeApps","activeLanguages","_b","lang","handleAppChange","event","performSearch","useCallback","search","openBraces","closeBraces","debounce","func","delay","timeoutId","args","debouncedSearch","useMemo","handleSearch","handleLetterClick","letter","cols","language","handleToggleOption","data","handleToggle","curr","handleAddNameSpace","handleAddApp","dto","executeQuery","editApp","queryDto","editAppIds","item","result","_c","handleToggleState","refetch","cur","handleEdit","row","handleInactive","actions","list","GeneralUtil","FontAwesomeIcon","faPen","currentMenuItems","faBars","manageApps","manageLanguages","addLabelTranslation","escapeSql","val","loadData","pageParam","isInitial","v","isClearDisabled","stableKey","pageData","fetchNextPage","hasNextPage","usePagination","isFirstLoad","actualData","groupedArray","acc","element","combinedKey","handleClearFilters","Box","Card","Typography","Grid","Suspense","CustomConfirmationModal","FormControl","Select","selected","MenuItem","Autocomplete","option","ns","newValue","value","getTagProps","index","createElement","Chip","TextField","Button","_","FormGroup","FormControlLabel","Checkbox","CustomizedTable"],"mappings":"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"}
|