@argusoft/medplat-core 1.0.0
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-sgIhYR30.js +1238 -0
- package/dist/AccessRights-sgIhYR30.js.map +1 -0
- package/dist/AddEditQueryBuilder-BaZxS2Cm.js +289 -0
- package/dist/AddEditQueryBuilder-BaZxS2Cm.js.map +1 -0
- package/dist/AddEditQueryBuilder.css +1 -0
- package/dist/AddFeatures-BxXCC6ex.js +212 -0
- package/dist/AddFeatures-BxXCC6ex.js.map +1 -0
- package/dist/AddLabelModal-DE3ploGD.js +734 -0
- package/dist/AddLabelModal-DE3ploGD.js.map +1 -0
- package/dist/AddMenuConfiguration-QWfpcnuP.js +2237 -0
- package/dist/AddMenuConfiguration-QWfpcnuP.js.map +1 -0
- package/dist/AddMenuConfiguration.css +1 -0
- package/dist/AddRoleDrawer-ZK1eejxI.js +453 -0
- package/dist/AddRoleDrawer-ZK1eejxI.js.map +1 -0
- package/dist/AppModal-BgZyfrd-.js +428 -0
- package/dist/AppModal-BgZyfrd-.js.map +1 -0
- package/dist/ChangePasswordModal-MV7g8tkA.js +176 -0
- package/dist/ChangePasswordModal-MV7g8tkA.js.map +1 -0
- package/dist/ConditionConfig-BqWe0NKO.js +395 -0
- package/dist/ConditionConfig-BqWe0NKO.js.map +1 -0
- package/dist/ConditionConfig.css +1 -0
- package/dist/EntityManagement-D-x6Qzal.js +50 -0
- package/dist/EntityManagement-D-x6Qzal.js.map +1 -0
- package/dist/EventConfigurations-jGCJ4LqP.js +384 -0
- package/dist/EventConfigurations-jGCJ4LqP.js.map +1 -0
- package/dist/EventConfigurations.css +1 -0
- package/dist/EventsExceptionModal-BF6E1Np7.js +200 -0
- package/dist/EventsExceptionModal-BF6E1Np7.js.map +1 -0
- package/dist/EventsSkeleton-BN7_0IGs.js +74 -0
- package/dist/EventsSkeleton-BN7_0IGs.js.map +1 -0
- package/dist/FeatureMenu-BYSRoNm0.js +249 -0
- package/dist/FeatureMenu-BYSRoNm0.js.map +1 -0
- package/dist/Features-CKMmuqcs.js +11 -0
- package/dist/Features-CKMmuqcs.js.map +1 -0
- package/dist/FlywayQuery-Cx2sly6g.js +169 -0
- package/dist/FlywayQuery-Cx2sly6g.js.map +1 -0
- package/dist/ImmunizationConfigurationBase-CdCgDaAl.js +5299 -0
- package/dist/ImmunizationConfigurationBase-CdCgDaAl.js.map +1 -0
- package/dist/ImmunizationConfigurationBase.css +1 -0
- package/dist/ImmunizationConfigurationsList-CQnxWa09.js +335 -0
- package/dist/ImmunizationConfigurationsList-CQnxWa09.js.map +1 -0
- package/dist/ImmunizationSkeleton-D2tdv5k-.js +186 -0
- package/dist/ImmunizationSkeleton-D2tdv5k-.js.map +1 -0
- package/dist/LanguagesModal-rk6IGQwY.js +394 -0
- package/dist/LanguagesModal-rk6IGQwY.js.map +1 -0
- package/dist/ManageDynamicFeature-CeeqiS3K.js +4189 -0
- package/dist/ManageDynamicFeature-CeeqiS3K.js.map +1 -0
- package/dist/ManageEventConfiguration-BRXh51fc.js +1017 -0
- package/dist/ManageEventConfiguration-BRXh51fc.js.map +1 -0
- package/dist/ManageEventConfiguration.css +1 -0
- package/dist/ManageNotification-B4prX-9Z.js +6819 -0
- package/dist/ManageNotification-B4prX-9Z.js.map +1 -0
- package/dist/ManageRole-ByqBmjuc.js +699 -0
- package/dist/ManageRole-ByqBmjuc.js.map +1 -0
- package/dist/ManageTranslation-BTxvSYKb.js +616 -0
- package/dist/ManageTranslation-BTxvSYKb.js.map +1 -0
- package/dist/ManageTranslation.css +1 -0
- package/dist/ManageUser-PHiTNyF8.js +2160 -0
- package/dist/ManageUser-PHiTNyF8.js.map +1 -0
- package/dist/ManageUser.css +1 -0
- package/dist/MobileMenuManagement-DmQU5TTo.js +108 -0
- package/dist/MobileMenuManagement-DmQU5TTo.js.map +1 -0
- package/dist/MobileTypeEventConfigModal-BCp-SF4-.js +783 -0
- package/dist/MobileTypeEventConfigModal-BCp-SF4-.js.map +1 -0
- package/dist/NewServerManagement-5YcAtF-g.js +1002 -0
- package/dist/NewServerManagement-5YcAtF-g.js.map +1 -0
- package/dist/NotificationFlywayQuery-BY8Zzml_.js +244 -0
- package/dist/NotificationFlywayQuery-BY8Zzml_.js.map +1 -0
- package/dist/NotificationList-BkpOrCpM.js +400 -0
- package/dist/NotificationList-BkpOrCpM.js.map +1 -0
- package/dist/OtherTypeEventConfigModal-DPB8IYzj.js +2001 -0
- package/dist/OtherTypeEventConfigModal-DPB8IYzj.js.map +1 -0
- package/dist/QueryBuilder-Cus_mRwZ.js +378 -0
- package/dist/QueryBuilder-Cus_mRwZ.js.map +1 -0
- package/dist/QueryBuilder.css +1 -0
- package/dist/QueryManagement-DXA73N2j.js +671 -0
- package/dist/QueryManagement-DXA73N2j.js.map +1 -0
- package/dist/QueryManagement.css +1 -0
- package/dist/RoleManagement-CLaEJ90J.js +410 -0
- package/dist/RoleManagement-CLaEJ90J.js.map +1 -0
- package/dist/ServerSyncModal-uNjGCQJz.js +869 -0
- package/dist/ServerSyncModal-uNjGCQJz.js.map +1 -0
- package/dist/ShowFlywayQuery-DMsAbtOW.js +130 -0
- package/dist/ShowFlywayQuery-DMsAbtOW.js.map +1 -0
- package/dist/ShowFlywayQuery-DVRCd384.js +259 -0
- package/dist/ShowFlywayQuery-DVRCd384.js.map +1 -0
- package/dist/ShowQueryHistory-BDN0tzHg.js +190 -0
- package/dist/ShowQueryHistory-BDN0tzHg.js.map +1 -0
- package/dist/SubMenu-BHcSNSUF.js +187 -0
- package/dist/SubMenu-BHcSNSUF.js.map +1 -0
- package/dist/TableDetails-DzREeJkm.js +1508 -0
- package/dist/TableDetails-DzREeJkm.js.map +1 -0
- package/dist/TableList-B9hr05Hs.js +428 -0
- package/dist/TableList-B9hr05Hs.js.map +1 -0
- package/dist/TypeConfiguration-BYM8PjV9.js +117 -0
- package/dist/TypeConfiguration-BYM8PjV9.js.map +1 -0
- package/dist/UserList-BxB1tCwM.js +13042 -0
- package/dist/UserList-BxB1tCwM.js.map +1 -0
- package/dist/UserList.css +1 -0
- package/dist/UserListSkeleton-cglK2SaU.js +184 -0
- package/dist/UserListSkeleton-cglK2SaU.js.map +1 -0
- package/dist/WidgetList-BSApErov.js +188 -0
- package/dist/WidgetList-BSApErov.js.map +1 -0
- package/dist/_commonjsHelpers-BItOPCY9.js +29 -0
- package/dist/_commonjsHelpers-BItOPCY9.js.map +1 -0
- package/dist/i18next-CTOWN_jH.js +1394 -0
- package/dist/i18next-CTOWN_jH.js.map +1 -0
- package/dist/index.js +481 -0
- package/dist/index.js.map +1 -0
- package/dist/manageImmunization-B4swS745.js +1204 -0
- package/dist/manageImmunization-B4swS745.js.map +1 -0
- package/dist/manageImmunization.css +1 -0
- package/package.json +79 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.add-edit-header{border-bottom:1px solid var(--color-gray1);width:100%;padding:2!important}
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
import { jsx as t, jsxs as n } from "react/jsx-runtime";
|
|
2
|
+
import { p as M } from "./RoleManagement-CLaEJ90J.js";
|
|
3
|
+
import { yupResolver as O } from "@hookform/resolvers/yup";
|
|
4
|
+
import { Modal as V, Box as x, Typography as p, List as $, ListItem as z, Stack as W, Button as v } from "@mui/material";
|
|
5
|
+
import i from "@mui/material/Grid2";
|
|
6
|
+
import c from "prop-types";
|
|
7
|
+
import { useRef as g, useState as q, useEffect as H } from "react";
|
|
8
|
+
import { useForm as J } from "react-hook-form";
|
|
9
|
+
import * as w from "yup";
|
|
10
|
+
import { showToast as f } from "@/common/toaster/toaster";
|
|
11
|
+
import { useTranslateProvider as K } from "@/common/languageTranslator/TranslationContext";
|
|
12
|
+
import Q from "@/hooks/useTrackEvent";
|
|
13
|
+
import U from "@/views/custom-components/CustomAutoComplete";
|
|
14
|
+
import { getFeaturesV2 as X } from "@/common/services/AuthenticateService";
|
|
15
|
+
function Y({
|
|
16
|
+
assignedFeatureList: l,
|
|
17
|
+
selectedId: C,
|
|
18
|
+
setData: _,
|
|
19
|
+
open: k,
|
|
20
|
+
setOpenModal: N
|
|
21
|
+
}) {
|
|
22
|
+
const F = g(null), h = g(!1), { translate: m } = K(), [I, E] = q([]), T = w.object().shape({
|
|
23
|
+
values: w.array().min(1, "Please select at least one feature.")
|
|
24
|
+
}), {
|
|
25
|
+
formState: { errors: j },
|
|
26
|
+
handleSubmit: A,
|
|
27
|
+
reset: S,
|
|
28
|
+
control: B,
|
|
29
|
+
watch: R
|
|
30
|
+
} = J({
|
|
31
|
+
defaultValues: {
|
|
32
|
+
values: []
|
|
33
|
+
},
|
|
34
|
+
resolver: O(T),
|
|
35
|
+
mode: "onChange"
|
|
36
|
+
}), b = R("values");
|
|
37
|
+
function G(e) {
|
|
38
|
+
const o = [];
|
|
39
|
+
for (const s in e)
|
|
40
|
+
e[s].forEach((a) => {
|
|
41
|
+
a.subGroups ? a.subGroups.forEach((r) => o.push(r)) : o.push(a);
|
|
42
|
+
});
|
|
43
|
+
return o;
|
|
44
|
+
}
|
|
45
|
+
const d = Q();
|
|
46
|
+
function u() {
|
|
47
|
+
S(), N(!1), d("conversion_event", {
|
|
48
|
+
form: F.current,
|
|
49
|
+
form_name: "Add Feature",
|
|
50
|
+
submit: h.current
|
|
51
|
+
}), d("button_click", {
|
|
52
|
+
button_name: "add feature cancel button",
|
|
53
|
+
button_type: "cancel",
|
|
54
|
+
button_id: "assignfeatures-button-cancel"
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
const P = async (e) => {
|
|
58
|
+
try {
|
|
59
|
+
d("button_click", {
|
|
60
|
+
button_name: "add feature save button",
|
|
61
|
+
button_type: "submit",
|
|
62
|
+
button_id: "assignfeatures-button-save"
|
|
63
|
+
});
|
|
64
|
+
const s = {
|
|
65
|
+
featureId: e.values.map((a) => a.id).join(",")
|
|
66
|
+
};
|
|
67
|
+
await M(s, C), f({
|
|
68
|
+
message: "Feature successfully assigned to selected role",
|
|
69
|
+
type: "success"
|
|
70
|
+
}), await _(), h.current = !0, u();
|
|
71
|
+
} catch (o) {
|
|
72
|
+
f({
|
|
73
|
+
message: `Error : ${o == null ? void 0 : o.message}`,
|
|
74
|
+
type: "error"
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
}, D = async () => {
|
|
78
|
+
try {
|
|
79
|
+
const { data: e } = await X(), s = G(e).sort(
|
|
80
|
+
(a, r) => {
|
|
81
|
+
var y;
|
|
82
|
+
return (y = a.name) == null ? void 0 : y.localeCompare(r.name);
|
|
83
|
+
}
|
|
84
|
+
).filter(
|
|
85
|
+
(a) => !(l != null && l.some(
|
|
86
|
+
(r) => r.featureId === a.id
|
|
87
|
+
))
|
|
88
|
+
);
|
|
89
|
+
E(s);
|
|
90
|
+
} catch (e) {
|
|
91
|
+
f({
|
|
92
|
+
message: `Error : ${e == null ? void 0 : e.message}`,
|
|
93
|
+
type: "error"
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
return H(() => {
|
|
98
|
+
D();
|
|
99
|
+
}, [l]), /* @__PURE__ */ t(i, { children: /* @__PURE__ */ t(
|
|
100
|
+
V,
|
|
101
|
+
{
|
|
102
|
+
open: k,
|
|
103
|
+
onClose: u,
|
|
104
|
+
"data-testid": "assignfeatures-modal",
|
|
105
|
+
children: /* @__PURE__ */ t(
|
|
106
|
+
i,
|
|
107
|
+
{
|
|
108
|
+
container: !0,
|
|
109
|
+
className: "absolute top-[10%] left-[50%] transform -translate-x-1/2 w-[95%] sm:w-[37.5rem] shadow-2xl rounded-md border flex flex-col h-auto max-h-[80vh] overflow-y-auto",
|
|
110
|
+
sx: { bgcolor: "background.paper" },
|
|
111
|
+
children: /* @__PURE__ */ n(i, { className: "flex flex-col gap-2", children: [
|
|
112
|
+
/* @__PURE__ */ t(
|
|
113
|
+
x,
|
|
114
|
+
{
|
|
115
|
+
className: "p-2.5 px-5 flex w-full justify-start",
|
|
116
|
+
sx: { borderBottom: 1, borderColor: "divider" },
|
|
117
|
+
children: /* @__PURE__ */ t(
|
|
118
|
+
p,
|
|
119
|
+
{
|
|
120
|
+
className: "font-medium text-lg text-customBlue",
|
|
121
|
+
sx: { color: "text.primary" },
|
|
122
|
+
children: m("Assign New Feature")
|
|
123
|
+
}
|
|
124
|
+
)
|
|
125
|
+
}
|
|
126
|
+
),
|
|
127
|
+
/* @__PURE__ */ n(
|
|
128
|
+
x,
|
|
129
|
+
{
|
|
130
|
+
className: "p-2.5 max-h-100 overflow-auto",
|
|
131
|
+
sx: { borderBottom: 1, borderColor: "divider" },
|
|
132
|
+
children: [
|
|
133
|
+
/* @__PURE__ */ t(
|
|
134
|
+
U,
|
|
135
|
+
{
|
|
136
|
+
options: I,
|
|
137
|
+
getOptionLabel: (e) => e.name,
|
|
138
|
+
control: B,
|
|
139
|
+
name: "values",
|
|
140
|
+
errors: j,
|
|
141
|
+
dataTestId: "assignfeatures-autocomplete"
|
|
142
|
+
}
|
|
143
|
+
),
|
|
144
|
+
b.length > 0 && /* @__PURE__ */ t(i, { className: "overflow-y-auto flex flex-col max-h-40 h-auto", children: /* @__PURE__ */ t($, { children: b.filter((e) => e.description).map((e) => /* @__PURE__ */ t(z, { children: /* @__PURE__ */ n(p, { children: [
|
|
145
|
+
/* @__PURE__ */ n("strong", { children: [
|
|
146
|
+
e == null ? void 0 : e.name,
|
|
147
|
+
":"
|
|
148
|
+
] }),
|
|
149
|
+
" ",
|
|
150
|
+
e == null ? void 0 : e.description
|
|
151
|
+
] }) }, e == null ? void 0 : e.id)) }) })
|
|
152
|
+
]
|
|
153
|
+
}
|
|
154
|
+
),
|
|
155
|
+
/* @__PURE__ */ n(
|
|
156
|
+
W,
|
|
157
|
+
{
|
|
158
|
+
direction: "row",
|
|
159
|
+
spacing: 2,
|
|
160
|
+
justifyContent: "flex-end",
|
|
161
|
+
mt: 2,
|
|
162
|
+
mb: 1,
|
|
163
|
+
className: "px-4",
|
|
164
|
+
children: [
|
|
165
|
+
/* @__PURE__ */ t(
|
|
166
|
+
v,
|
|
167
|
+
{
|
|
168
|
+
variant: "contained",
|
|
169
|
+
color: "secondary",
|
|
170
|
+
onClick: u,
|
|
171
|
+
"data-testid": "assignfeatures-button-cancel",
|
|
172
|
+
children: /* @__PURE__ */ t(
|
|
173
|
+
p,
|
|
174
|
+
{
|
|
175
|
+
variant: "caption",
|
|
176
|
+
"data-testid": "assignfeatures-typography-cancel",
|
|
177
|
+
children: m("Cancel")
|
|
178
|
+
}
|
|
179
|
+
)
|
|
180
|
+
}
|
|
181
|
+
),
|
|
182
|
+
/* @__PURE__ */ t(
|
|
183
|
+
v,
|
|
184
|
+
{
|
|
185
|
+
size: "small",
|
|
186
|
+
variant: "contained",
|
|
187
|
+
color: "primary",
|
|
188
|
+
onClick: A(P),
|
|
189
|
+
"data-testid": "assignfeatures-button-save",
|
|
190
|
+
children: m("Add")
|
|
191
|
+
}
|
|
192
|
+
)
|
|
193
|
+
]
|
|
194
|
+
}
|
|
195
|
+
)
|
|
196
|
+
] })
|
|
197
|
+
}
|
|
198
|
+
)
|
|
199
|
+
}
|
|
200
|
+
) });
|
|
201
|
+
}
|
|
202
|
+
Y.propTypes = {
|
|
203
|
+
assignedFeatureList: c.any,
|
|
204
|
+
selectedId: c.any,
|
|
205
|
+
open: c.any,
|
|
206
|
+
setOpenModal: c.any,
|
|
207
|
+
setData: c.any
|
|
208
|
+
};
|
|
209
|
+
export {
|
|
210
|
+
Y as default
|
|
211
|
+
};
|
|
212
|
+
//# sourceMappingURL=AddFeatures-BxXCC6ex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AddFeatures-BxXCC6ex.js","sources":["../src/views/Roles/AddFeatures.jsx"],"sourcesContent":["import { postNewFeature } from \"../../services/Roles\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport {\n Box,\n Button,\n List,\n ListItem,\n Modal,\n Stack,\n Typography,\n} from \"@mui/material\";\nimport Grid from \"@mui/material/Grid2\";\nimport PropTypes from \"prop-types\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport * as Yup from \"yup\";\nimport { showToast } from \"@/common/toaster/toaster\";\nimport { useTranslateProvider } from \"@/common/languageTranslator/TranslationContext\";\nimport useTrackEvent from \"@/hooks/useTrackEvent\";\nimport CustomAutocomplete from \"@/views/custom-components/CustomAutoComplete\";\nimport { getFeaturesV2 } from \"@/common/services/AuthenticateService\";\n// import { getFeatures } from \"@/common/services/AuthenticateService\";\n\nexport default function AddFeatures({\n assignedFeatureList,\n selectedId,\n setData,\n open,\n setOpenModal,\n}) {\n const formRef = useRef(null);\n const submitRef = useRef(false);\n const { translate } = useTranslateProvider();\n const [features, setFeatures] = useState([]);\n\n const validationSchema = Yup.object().shape({\n values: Yup.array().min(1, \"Please select at least one feature.\"),\n });\n\n const {\n formState: { errors },\n handleSubmit,\n reset,\n control,\n watch,\n } = useForm({\n defaultValues: {\n values: [],\n },\n resolver: yupResolver(validationSchema),\n mode: \"onChange\",\n });\n\n const featuresWatcher = watch(\"values\");\n\n function extractFeatures(data) {\n const features = [];\n for (const key in data) {\n data[key].forEach((item) => {\n if (item.subGroups) {\n item.subGroups.forEach((subGroup) => features.push(subGroup));\n } else {\n features.push(item);\n }\n });\n }\n return features;\n }\n\n const trackEvent = useTrackEvent();\n\n function handleClose() {\n reset();\n setOpenModal(false);\n trackEvent(\"conversion_event\", {\n form: formRef.current,\n form_name: \"Add Feature\",\n submit: submitRef.current,\n });\n trackEvent(\"button_click\", {\n button_name: \"add feature cancel button\",\n button_type: \"cancel\",\n button_id: \"assignfeatures-button-cancel\",\n });\n }\n\n const onSubmit = async (value) => {\n try {\n trackEvent(\"button_click\", {\n button_name: \"add feature save button\",\n button_type: \"submit\",\n button_id: \"assignfeatures-button-save\",\n });\n const selectedFeatureIds = value.values\n .map((feature) => feature.id)\n .join(\",\");\n const featureIds = {\n featureId: selectedFeatureIds,\n };\n\n await postNewFeature(featureIds, selectedId);\n showToast({\n message: \"Feature successfully assigned to selected role\",\n type: \"success\",\n });\n await setData();\n\n submitRef.current = true;\n handleClose();\n } catch (error) {\n showToast({\n message: `Error : ${error?.message}`,\n type: \"error\",\n });\n }\n };\n const loadData = async () => {\n try {\n const { data: features } = await getFeaturesV2();\n\n const data = extractFeatures(features).sort((a, b) =>\n a.name?.localeCompare(b.name),\n );\n\n const AvailableFeatures = data.filter(\n (feature) =>\n !assignedFeatureList?.some(\n (availableFeature) => availableFeature.featureId === feature.id,\n ),\n );\n setFeatures(AvailableFeatures);\n } catch (error) {\n showToast({\n message: `Error : ${error?.message}`,\n type: \"error\",\n });\n }\n };\n\n useEffect(() => {\n loadData();\n }, [assignedFeatureList]);\n\n return (\n <Grid>\n <Modal\n open={open}\n onClose={handleClose}\n data-testid=\"assignfeatures-modal\"\n >\n <Grid\n container\n className=\"absolute top-[10%] left-[50%] transform -translate-x-1/2 w-[95%] sm:w-[37.5rem] shadow-2xl rounded-md border flex flex-col h-auto max-h-[80vh] overflow-y-auto\"\n sx={{ bgcolor: \"background.paper\" }}\n >\n <Grid className=\"flex flex-col gap-2\">\n <Box\n className=\"p-2.5 px-5 flex w-full justify-start\"\n sx={{ borderBottom: 1, borderColor: \"divider\" }}\n >\n <Typography\n className=\"font-medium text-lg text-customBlue\"\n sx={{ color: \"text.primary\" }}\n >\n {translate(\"Assign New Feature\")}\n </Typography>\n </Box>\n <Box\n className=\"p-2.5 max-h-100 overflow-auto\"\n sx={{ borderBottom: 1, borderColor: \"divider\" }}\n >\n <CustomAutocomplete\n options={features}\n getOptionLabel={(option) => option.name}\n control={control}\n name={\"values\"}\n errors={errors}\n dataTestId={\"assignfeatures-autocomplete\"}\n />\n {featuresWatcher.length > 0 && (\n <Grid className=\"overflow-y-auto flex flex-col max-h-40 h-auto\">\n <List>\n {featuresWatcher\n .filter((feature) => feature.description)\n .map((feature) => (\n <ListItem key={feature?.id}>\n <Typography>\n <strong>{feature?.name}:</strong>{\" \"}\n {feature?.description}\n </Typography>\n </ListItem>\n ))}\n </List>\n </Grid>\n )}\n </Box>\n\n <Stack\n direction=\"row\"\n spacing={2}\n justifyContent=\"flex-end\"\n mt={2}\n mb={1}\n className=\"px-4\"\n >\n <Button\n variant=\"contained\"\n color=\"secondary\"\n onClick={handleClose}\n data-testid=\"assignfeatures-button-cancel\"\n >\n <Typography\n variant=\"caption\"\n data-testid=\"assignfeatures-typography-cancel\"\n >\n {translate(\"Cancel\")}\n </Typography>\n </Button>\n <Button\n size=\"small\"\n variant=\"contained\"\n color=\"primary\"\n onClick={handleSubmit(onSubmit)}\n data-testid=\"assignfeatures-button-save\"\n >\n {translate(\"Add\")}\n </Button>\n </Stack>\n </Grid>\n </Grid>\n </Modal>\n </Grid>\n );\n}\n\nAddFeatures.propTypes = {\n assignedFeatureList: PropTypes.any,\n selectedId: PropTypes.any,\n open: PropTypes.any,\n setOpenModal: PropTypes.any,\n setData: PropTypes.any,\n};\n"],"names":["AddFeatures","assignedFeatureList","selectedId","setData","open","setOpenModal","formRef","useRef","submitRef","translate","useTranslateProvider","features","setFeatures","useState","validationSchema","Yup","errors","handleSubmit","reset","control","watch","useForm","yupResolver","featuresWatcher","extractFeatures","data","key","item","subGroup","trackEvent","useTrackEvent","handleClose","onSubmit","value","featureIds","feature","postNewFeature","showToast","error","loadData","getFeaturesV2","AvailableFeatures","b","_a","availableFeature","useEffect","Grid","jsx","Modal","jsxs","Box","Typography","CustomAutocomplete","option","List","ListItem","Stack","Button","PropTypes"],"mappings":"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"}
|