@argusoft/medplat-core 1.0.28 → 1.0.30
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-xrday-L1.js +1023 -0
- package/dist/AccessRights-xrday-L1.js.map +1 -0
- package/dist/AddEditQueryBuilder-D-iQiVIe.js +365 -0
- package/dist/AddEditQueryBuilder-D-iQiVIe.js.map +1 -0
- package/dist/{AddFeatures-C0Z29oSd.js → AddFeatures-D1sU8RjY.js} +2 -2
- package/dist/{AddFeatures-C0Z29oSd.js.map → AddFeatures-D1sU8RjY.js.map} +1 -1
- package/dist/AddLabelModal-Bq-wRqv9.js +631 -0
- package/dist/AddLabelModal-Bq-wRqv9.js.map +1 -0
- package/dist/AddMenuConfiguration-e5BVXhmw.js +8547 -0
- package/dist/AddMenuConfiguration-e5BVXhmw.js.map +1 -0
- package/dist/{AddRoleDrawer-CQdzQZLb.js → AddRoleDrawer-0gqAK8N0.js} +62 -63
- package/dist/AddRoleDrawer-0gqAK8N0.js.map +1 -0
- package/dist/AppModal-CCtrQ5Tr.js +394 -0
- package/dist/AppModal-CCtrQ5Tr.js.map +1 -0
- package/dist/BrandsPage-DmRW5bhm-Bk1szrjI.js +387 -0
- package/dist/BrandsPage-DmRW5bhm-Bk1szrjI.js.map +1 -0
- package/dist/CategoriesPage-BsS5IQh3-B03lWRY5.js +391 -0
- package/dist/CategoriesPage-BsS5IQh3-B03lWRY5.js.map +1 -0
- package/dist/{ChangePasswordModalCore-CDxkeIIM.js → ChangePasswordModalCore-BPsJquTS.js} +1606 -1611
- package/dist/ChangePasswordModalCore-BPsJquTS.js.map +1 -0
- package/dist/{ConditionConfig-DSsgGEXS.js → ConditionConfig-Ddz9halE.js} +2 -2
- package/dist/ConditionConfig-Ddz9halE.js.map +1 -0
- package/dist/DashboardPage-C3bKc5na-sBd9Yqbi.js +435 -0
- package/dist/DashboardPage-C3bKc5na-sBd9Yqbi.js.map +1 -0
- package/dist/{EntityManagement-GaYsBTvf.js → EntityManagement-CPQL6qBj.js} +2 -2
- package/dist/{EntityManagement-GaYsBTvf.js.map → EntityManagement-CPQL6qBj.js.map} +1 -1
- package/dist/EventConfig-BmLemzX3.js +26 -0
- package/dist/EventConfig-BmLemzX3.js.map +1 -0
- package/dist/{EventConfigurations-kNtAj_WM.js → EventConfigurations-Bzh1qWXU.js} +31 -30
- package/dist/{EventConfigurations-kNtAj_WM.js.map → EventConfigurations-Bzh1qWXU.js.map} +1 -1
- package/dist/{EventsExceptionModal-D4Bf1ilS.js → EventsExceptionModal-B2SRrnB1.js} +2 -2
- package/dist/{EventsExceptionModal-D4Bf1ilS.js.map → EventsExceptionModal-B2SRrnB1.js.map} +1 -1
- package/dist/EventsSkeleton-BIcPks4T.js +61 -0
- package/dist/EventsSkeleton-BIcPks4T.js.map +1 -0
- package/dist/FacilityPicker-BiZeupmP-CyPHmj6b.js +79 -0
- package/dist/FacilityPicker-BiZeupmP-CyPHmj6b.js.map +1 -0
- package/dist/FeatureMenu-DYJmDt7q.js +521 -0
- package/dist/FeatureMenu-DYJmDt7q.js.map +1 -0
- package/dist/Features-Dne21RWu.js +14 -0
- package/dist/Features-Dne21RWu.js.map +1 -0
- package/dist/{FhirServerList-Dkq7Kbes.js → FhirServerList-DuTwnngN.js} +19 -19
- package/dist/{FhirServerList-Dkq7Kbes.js.map → FhirServerList-DuTwnngN.js.map} +1 -1
- package/dist/{FhirServerWizard-Db6Hm4bQ.js → FhirServerWizard-DZI8Olku.js} +15 -15
- package/dist/{FhirServerWizard-Db6Hm4bQ.js.map → FhirServerWizard-DZI8Olku.js.map} +1 -1
- package/dist/FlywayQuery-CQygj51V.js +179 -0
- package/dist/FlywayQuery-CQygj51V.js.map +1 -0
- package/dist/{ManageNotification-CaBAOhji.js → Google-DQxMfbaL.js} +1725 -2652
- package/dist/{ManageNotification-CaBAOhji.js.map → Google-DQxMfbaL.js.map} +1 -1
- package/dist/GrantPermissionModal-BDN66Atn.js +236 -0
- package/dist/GrantPermissionModal-BDN66Atn.js.map +1 -0
- package/dist/ImmunizationConfigurationBase-Di1KO3oW.js +7639 -0
- package/dist/ImmunizationConfigurationBase-Di1KO3oW.js.map +1 -0
- package/dist/ImmunizationConfigurationBase.css +1 -1
- package/dist/ImmunizationConfigurationsList-TZcLDEci.js +369 -0
- package/dist/ImmunizationConfigurationsList-TZcLDEci.js.map +1 -0
- package/dist/InventoryPage-C_AxSy7A-QLvlL4rE.js +665 -0
- package/dist/InventoryPage-C_AxSy7A-QLvlL4rE.js.map +1 -0
- package/dist/LanguagesModal-B3NTebYT.js +352 -0
- package/dist/LanguagesModal-B3NTebYT.js.map +1 -0
- package/dist/ManageDynamicFeature-BU0I45dd.js +4475 -0
- package/dist/ManageDynamicFeature-BU0I45dd.js.map +1 -0
- package/dist/{ManageEventConfiguration-DV3I5POA.js → ManageEventConfiguration-CoYcpjR9.js} +465 -397
- package/dist/ManageEventConfiguration-CoYcpjR9.js.map +1 -0
- package/dist/ManageNotification-C5MhV77Q.js +934 -0
- package/dist/ManageNotification-C5MhV77Q.js.map +1 -0
- package/dist/{ManageRole-CGYfglpo.js → ManageRole-CNZBRKGU.js} +32 -30
- package/dist/ManageRole-CNZBRKGU.js.map +1 -0
- package/dist/ManageTranslation-vRiptUAP.js +833 -0
- package/dist/ManageTranslation-vRiptUAP.js.map +1 -0
- package/dist/ManageTranslation.css +1 -1
- package/dist/{ManageUser-AY1EUDLI.js → ManageUser-DCFkUMV9.js} +1722 -1586
- package/dist/ManageUser-DCFkUMV9.js.map +1 -0
- package/dist/MemberProfileCard-BdUNgHRB-VywqQdFF.js +272 -0
- package/dist/MemberProfileCard-BdUNgHRB-VywqQdFF.js.map +1 -0
- package/dist/MobileAnalytics-pQoE8cG1.js +16888 -0
- package/dist/MobileAnalytics-pQoE8cG1.js.map +1 -0
- package/dist/MobileMenuManagement-Cf8IZlla.js +108 -0
- package/dist/MobileMenuManagement-Cf8IZlla.js.map +1 -0
- package/dist/{MobileTypeEventConfigModal-BxLympIO.js → MobileTypeEventConfigModal-BeveaX0C.js} +2 -2
- package/dist/MobileTypeEventConfigModal-BeveaX0C.js.map +1 -0
- package/dist/NotificationFlywayQuery-BAHVjf6N.js +247 -0
- package/dist/NotificationFlywayQuery-BAHVjf6N.js.map +1 -0
- package/dist/{NotificationList-C3Vb_jKU.js → NotificationList-DEyRZEuM.js} +109 -110
- package/dist/NotificationList-DEyRZEuM.js.map +1 -0
- package/dist/{OtherTypeEventConfigModal-BeG1GrUi.js → OtherTypeEventConfigModal-CM6VkdmY.js} +570 -478
- package/dist/OtherTypeEventConfigModal-CM6VkdmY.js.map +1 -0
- package/dist/PaymentCreatePage-CIVe0P0p-25BQVpOX.js +482 -0
- package/dist/PaymentCreatePage-CIVe0P0p-25BQVpOX.js.map +1 -0
- package/dist/PaymentsPage-BvPe5Q9F-D2gfziwW.js +157 -0
- package/dist/PaymentsPage-BvPe5Q9F-D2gfziwW.js.map +1 -0
- package/dist/PermissionsModal-CCYkcKlC.js +151 -0
- package/dist/PermissionsModal-CCYkcKlC.js.map +1 -0
- package/dist/PickupBatchLinesEditor-DHmcAG23-DL2p6IKJ.js +119 -0
- package/dist/PickupBatchLinesEditor-DHmcAG23-DL2p6IKJ.js.map +1 -0
- package/dist/PickupCreatePage-CB0Sl0Hb-Mmj7zESG.js +783 -0
- package/dist/PickupCreatePage-CB0Sl0Hb-Mmj7zESG.js.map +1 -0
- package/dist/PickupsPage-Ctpghavs-CUp4uIZq.js +818 -0
- package/dist/PickupsPage-Ctpghavs-CUp4uIZq.js.map +1 -0
- package/dist/PmGuard-b10TGXEi-G3N0G_Wg.js +599 -0
- package/dist/PmGuard-b10TGXEi-G3N0G_Wg.js.map +1 -0
- package/dist/ProductEditPage-C1thoKHu-URQaZ6st.js +1302 -0
- package/dist/ProductEditPage-C1thoKHu-URQaZ6st.js.map +1 -0
- package/dist/ProductsPage-CupVmOD4-D45a_hf-.js +252 -0
- package/dist/ProductsPage-CupVmOD4-D45a_hf-.js.map +1 -0
- package/dist/PurchaseCreatePage-YD3NmhPQ-2j4etSjM.js +648 -0
- package/dist/PurchaseCreatePage-YD3NmhPQ-2j4etSjM.js.map +1 -0
- package/dist/PurchaseRequestDetailPage-Dg_MRY_N-D1bgTEAn.js +1577 -0
- package/dist/PurchaseRequestDetailPage-Dg_MRY_N-D1bgTEAn.js.map +1 -0
- package/dist/PurchaseRequestsPage-DPAPzpmm-mDH2IrTl.js +279 -0
- package/dist/PurchaseRequestsPage-DPAPzpmm-mDH2IrTl.js.map +1 -0
- package/dist/PurchasesPage-It1GHiXl-eH4IsF_U.js +293 -0
- package/dist/PurchasesPage-It1GHiXl-eH4IsF_U.js.map +1 -0
- package/dist/QueryBuilder-CXaBe6sr.js +478 -0
- package/dist/QueryBuilder-CXaBe6sr.js.map +1 -0
- package/dist/{RoleManagement-BPl2cE27.js → RoleManagement-s8iNx2Mu.js} +131 -142
- package/dist/RoleManagement-s8iNx2Mu.js.map +1 -0
- package/dist/Roles-BIyiic67.js +14 -0
- package/dist/Roles-BIyiic67.js.map +1 -0
- package/dist/SaleCreatePage-C9kFmTvm-B3Y0o4CX.js +544 -0
- package/dist/SaleCreatePage-C9kFmTvm-B3Y0o4CX.js.map +1 -0
- package/dist/SalesPage-D18DCseD-BxktGDRQ.js +315 -0
- package/dist/SalesPage-D18DCseD-BxktGDRQ.js.map +1 -0
- package/dist/{ServerSyncModal-D_oFpv3C.js → ServerSyncModal-92U3xtqI.js} +84 -85
- package/dist/ServerSyncModal-92U3xtqI.js.map +1 -0
- package/dist/SettingsPage-VsxI-ano-DcmtUUEj.js +747 -0
- package/dist/SettingsPage-VsxI-ano-DcmtUUEj.js.map +1 -0
- package/dist/ShowFlywayQuery-D10Olk5Z.js +154 -0
- package/dist/ShowFlywayQuery-D10Olk5Z.js.map +1 -0
- package/dist/{ShowFlywayQuery-DVRCd384.js → ShowFlywayQuery-D1y_4A1u.js} +161 -121
- package/dist/ShowFlywayQuery-D1y_4A1u.js.map +1 -0
- package/dist/ShowQueryHistory-DRBKYDKk.js +313 -0
- package/dist/ShowQueryHistory-DRBKYDKk.js.map +1 -0
- package/dist/StorageUnitsPage-7EqwuMOI-BwUso1Th.js +721 -0
- package/dist/StorageUnitsPage-7EqwuMOI-BwUso1Th.js.map +1 -0
- package/dist/SubMenu-eEDhZUvh.js +317 -0
- package/dist/SubMenu-eEDhZUvh.js.map +1 -0
- package/dist/{TableDetails-Cf_YfnY2.js → TableDetails-BtafRxXb.js} +1069 -831
- package/dist/TableDetails-BtafRxXb.js.map +1 -0
- package/dist/{TableList-D6jnIbnz.js → TableList-Dpo6dO7S.js} +2 -2
- package/dist/{TableList-D6jnIbnz.js.map → TableList-Dpo6dO7S.js.map} +1 -1
- package/dist/TransactionsPage-DrH53pVS-BkhIGB6C.js +746 -0
- package/dist/TransactionsPage-DrH53pVS-BkhIGB6C.js.map +1 -0
- package/dist/TransferCreatePage-CuvoMrYH-DTTfHjz-.js +315 -0
- package/dist/TransferCreatePage-CuvoMrYH-DTTfHjz-.js.map +1 -0
- package/dist/TransfersPage-Cf701t8s-BBbN7cBf.js +476 -0
- package/dist/TransfersPage-Cf701t8s-BBbN7cBf.js.map +1 -0
- package/dist/{TypeConfiguration-37wp-gsl.js → TypeConfiguration-3O6ABrK-.js} +2 -2
- package/dist/{TypeConfiguration-37wp-gsl.js.map → TypeConfiguration-3O6ABrK-.js.map} +1 -1
- package/dist/{UserList-Bc8gYxRL.js → UserList-DgPxsnj2.js} +253 -236
- package/dist/{UserList-Bc8gYxRL.js.map → UserList-DgPxsnj2.js.map} +1 -1
- package/dist/Users-Bpc4Sazd.js +41 -0
- package/dist/Users-Bpc4Sazd.js.map +1 -0
- package/dist/VialsPage-8oAc1yFv-Cl3FUXBJ.js +321 -0
- package/dist/VialsPage-8oAc1yFv-Cl3FUXBJ.js.map +1 -0
- package/dist/{WidgetList-Dw_FmbbE.js → WidgetList-D7YuWfDD.js} +2 -2
- package/dist/{WidgetList-Dw_FmbbE.js.map → WidgetList-D7YuWfDD.js.map} +1 -1
- package/dist/constants-ClZJY2x1-MkSWn6TZ.js +434 -0
- package/dist/constants-ClZJY2x1-MkSWn6TZ.js.map +1 -0
- package/dist/dashboardLayoutUtils-D1xCAxp3.js +405 -0
- package/dist/dashboardLayoutUtils-D1xCAxp3.js.map +1 -0
- package/dist/format-UOyOu75i-D0GyylyQ.js +63 -0
- package/dist/format-UOyOu75i-D0GyylyQ.js.map +1 -0
- package/dist/index.css +1 -1
- package/dist/index.js +4 -752
- package/dist/index.js.map +1 -1
- package/dist/index.lib-Dn8PMkeD.js +862 -0
- package/dist/index.lib-Dn8PMkeD.js.map +1 -0
- package/dist/useFieldErrors-hDG8ox_x-DbSAzrGo.js +28 -0
- package/dist/useFieldErrors-hDG8ox_x-DbSAzrGo.js.map +1 -0
- package/dist/validation-BzlHnL-r-CCJm2utQ.js +125 -0
- package/dist/validation-BzlHnL-r-CCJm2utQ.js.map +1 -0
- package/package.json +5 -4
- package/dist/AccessRights-CHu27ZOw.js +0 -1262
- package/dist/AccessRights-CHu27ZOw.js.map +0 -1
- package/dist/AddEditQueryBuilder-Brdnm6rQ.js +0 -313
- package/dist/AddEditQueryBuilder-Brdnm6rQ.js.map +0 -1
- package/dist/AddLabelModal-DFllBVcd.js +0 -734
- package/dist/AddLabelModal-DFllBVcd.js.map +0 -1
- package/dist/AddMenuConfiguration-BSQLl88V.js +0 -6570
- package/dist/AddMenuConfiguration-BSQLl88V.js.map +0 -1
- package/dist/AddRoleDrawer-CQdzQZLb.js.map +0 -1
- package/dist/AppModal-CtG2GjD_.js +0 -428
- package/dist/AppModal-CtG2GjD_.js.map +0 -1
- package/dist/ChangePasswordModalCore-CDxkeIIM.js.map +0 -1
- package/dist/ConditionConfig-DSsgGEXS.js.map +0 -1
- package/dist/EventsSkeleton-8iiETGcf.js +0 -76
- package/dist/EventsSkeleton-8iiETGcf.js.map +0 -1
- package/dist/FeatureMenu-jl7-Tk6y.js +0 -265
- package/dist/FeatureMenu-jl7-Tk6y.js.map +0 -1
- package/dist/Features-CObdzJp_.js +0 -13
- package/dist/Features-CObdzJp_.js.map +0 -1
- package/dist/FlywayQuery-Cx2sly6g.js +0 -169
- package/dist/FlywayQuery-Cx2sly6g.js.map +0 -1
- package/dist/ImmunizationConfigurationBase-DZGqwda2.js +0 -5910
- package/dist/ImmunizationConfigurationBase-DZGqwda2.js.map +0 -1
- package/dist/ImmunizationConfigurationsList-DdSZicTP.js +0 -344
- package/dist/ImmunizationConfigurationsList-DdSZicTP.js.map +0 -1
- package/dist/LanguagesModal-D6VfaGrl.js +0 -394
- package/dist/LanguagesModal-D6VfaGrl.js.map +0 -1
- package/dist/ManageDynamicFeature-BhONvfC_.js +0 -4189
- package/dist/ManageDynamicFeature-BhONvfC_.js.map +0 -1
- package/dist/ManageEventConfiguration-DV3I5POA.js.map +0 -1
- package/dist/ManageRole-CGYfglpo.js.map +0 -1
- package/dist/ManageTranslation-B4C9-lWD.js +0 -625
- package/dist/ManageTranslation-B4C9-lWD.js.map +0 -1
- package/dist/ManageUser-AY1EUDLI.js.map +0 -1
- package/dist/MobileMenuManagement-CVAKyKDa.js +0 -112
- package/dist/MobileMenuManagement-CVAKyKDa.js.map +0 -1
- package/dist/MobileTypeEventConfigModal-BxLympIO.js.map +0 -1
- package/dist/NotificationFlywayQuery-BY8Zzml_.js +0 -244
- package/dist/NotificationFlywayQuery-BY8Zzml_.js.map +0 -1
- package/dist/NotificationList-C3Vb_jKU.js.map +0 -1
- package/dist/OtherTypeEventConfigModal-BeG1GrUi.js.map +0 -1
- package/dist/QueryBuilder-z7eqfd7D.js +0 -383
- package/dist/QueryBuilder-z7eqfd7D.js.map +0 -1
- package/dist/RoleManagement-BPl2cE27.js.map +0 -1
- package/dist/ServerSyncModal-D_oFpv3C.js.map +0 -1
- package/dist/ShowFlywayQuery-DVRCd384.js.map +0 -1
- package/dist/ShowFlywayQuery-tj42YQAS.js +0 -130
- package/dist/ShowFlywayQuery-tj42YQAS.js.map +0 -1
- package/dist/ShowQueryHistory-BDN0tzHg.js +0 -190
- package/dist/ShowQueryHistory-BDN0tzHg.js.map +0 -1
- package/dist/SubMenu-DYxAPH2Z.js +0 -191
- package/dist/SubMenu-DYxAPH2Z.js.map +0 -1
- package/dist/TableDetails-Cf_YfnY2.js.map +0 -1
- package/dist/Users-CsJ08Kjm.js +0 -40
- package/dist/Users-CsJ08Kjm.js.map +0 -1
- package/dist/dashboardLayoutUtils-Bt5HA96J.js +0 -265
- package/dist/dashboardLayoutUtils-Bt5HA96J.js.map +0 -1
|
@@ -0,0 +1,394 @@
|
|
|
1
|
+
import { jsx as t, jsxs as l } from "react/jsx-runtime";
|
|
2
|
+
import { useRef as ue, useState as i, useEffect as K } from "react";
|
|
3
|
+
import n from "prop-types";
|
|
4
|
+
import { useForm as me } from "react-hook-form";
|
|
5
|
+
import { yupResolver as fe } from "@hookform/resolvers/yup";
|
|
6
|
+
import * as S from "yup";
|
|
7
|
+
import { Dialog as he, DialogTitle as be, Box as p, Typography as T, IconButton as ye, DialogContent as ge, Button as h, DialogActions as ve } from "@mui/material";
|
|
8
|
+
import R from "@/views/custom-components/CustomTextField";
|
|
9
|
+
import { showToast as r } from "@/common/toaster/toaster";
|
|
10
|
+
import { S as Ae, g as Ce, A as xe, M as B, E as ke, u as $, c as Se } from "./ManageTranslation-vRiptUAP.js";
|
|
11
|
+
import Te from "@/views/custom-components/CustomConfirmationModal";
|
|
12
|
+
import Ve from "@/hooks/useTrackEvent";
|
|
13
|
+
import { useTranslateProvider as Me } from "@/common/languageTranslator/TranslationContext";
|
|
14
|
+
import b from "@/common/fontAwesomeIcons/FontAwesomeIcons";
|
|
15
|
+
import Ee from "@/views/custom-components/CustomizedTable/CustomizedTableV2";
|
|
16
|
+
const Ie = ({
|
|
17
|
+
open: q,
|
|
18
|
+
handleClose: W,
|
|
19
|
+
languages: y,
|
|
20
|
+
refresh: V,
|
|
21
|
+
refetch: M,
|
|
22
|
+
selectedApp: O,
|
|
23
|
+
setSelectedApp: H
|
|
24
|
+
}) => {
|
|
25
|
+
const g = ue(null), v = Ve(), [c, w] = i([]), [d, G] = i([]), [E, u] = i(!1), [I, N] = i(!1), { translate: a } = Me(), [X, A] = i(!1), [D, Y] = i(""), [J, Q] = i(""), [o, L] = i({}), [C, z] = i(!0), [U, Z] = i(!1), ee = S.object().shape({
|
|
26
|
+
appValue: S.string().required("Select App Value"),
|
|
27
|
+
appKey: S.string().required("Enter App key")
|
|
28
|
+
}), {
|
|
29
|
+
control: _,
|
|
30
|
+
handleSubmit: ae,
|
|
31
|
+
reset: P,
|
|
32
|
+
setValue: m,
|
|
33
|
+
formState: { errors: j, isSubmitting: te }
|
|
34
|
+
} = me({
|
|
35
|
+
defaultValues: {},
|
|
36
|
+
resolver: fe(ee),
|
|
37
|
+
mode: "onChange"
|
|
38
|
+
}), se = [
|
|
39
|
+
{ field: "Sr. No.", label: "Sr.No", align: "left", minWidth: 80 },
|
|
40
|
+
{ field: "Actions", label: a("Actions") },
|
|
41
|
+
{ field: "appValue", label: a("App"), align: "left" },
|
|
42
|
+
{
|
|
43
|
+
field: "stateValue",
|
|
44
|
+
label: a("State"),
|
|
45
|
+
align: "left",
|
|
46
|
+
render: (e) => /* @__PURE__ */ t(Ae, { state: e == null ? void 0 : e.stateValue, translate: a })
|
|
47
|
+
}
|
|
48
|
+
], ie = (e) => {
|
|
49
|
+
m("appKey", e == null ? void 0 : e.appKey), m("appValue", e == null ? void 0 : e.appValue), m("id", e == null ? void 0 : e.id), m("isActive", e == null ? void 0 : e.isActive), N(!0), u(!0);
|
|
50
|
+
}, oe = (e) => {
|
|
51
|
+
const s = (e == null ? void 0 : e.stateValue) === "Active";
|
|
52
|
+
Y(s ? "Mark as Inactive" : "Mark as Active"), Q(
|
|
53
|
+
s ? `${e == null ? void 0 : e.appValue} will stop appearing as a translation target, and its labels will be hidden from this screen. You can turn it back on here.` : `${e == null ? void 0 : e.appValue} will appear as a translation target again, and its labels will be listed on this screen.`
|
|
54
|
+
), L(e);
|
|
55
|
+
}, le = (e) => {
|
|
56
|
+
e && L(e), A((s) => !s);
|
|
57
|
+
}, ne = async () => {
|
|
58
|
+
try {
|
|
59
|
+
o.isActive = !o.isActive, await $(o), x(), O === (o == null ? void 0 : o.id) && H(null), await V(), M(), A((e) => !e), r({
|
|
60
|
+
message: o.isActive ? "App marked active" : "App marked inactive",
|
|
61
|
+
type: "success"
|
|
62
|
+
});
|
|
63
|
+
} catch (e) {
|
|
64
|
+
console.error(e), r({
|
|
65
|
+
message: "Could not change the app state. Please try again.",
|
|
66
|
+
type: "error"
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}, pe = [
|
|
70
|
+
{ label: a(D), onClick: le }
|
|
71
|
+
], re = [
|
|
72
|
+
{
|
|
73
|
+
label: "",
|
|
74
|
+
icon: /* @__PURE__ */ t(b, { iconName: "faPen" }),
|
|
75
|
+
onClick: ie,
|
|
76
|
+
ariaLabel: a("Edit app"),
|
|
77
|
+
dataTestId: "app-modal-edit-icon"
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
label: "",
|
|
81
|
+
icon: /* @__PURE__ */ t(b, { iconName: "faBars" }),
|
|
82
|
+
menuClick: oe,
|
|
83
|
+
menuItems: pe,
|
|
84
|
+
ariaLabel: a("More app actions"),
|
|
85
|
+
dataTestId: "app-modal-menu-icon"
|
|
86
|
+
}
|
|
87
|
+
], de = () => {
|
|
88
|
+
P(), N(!1), u(!0);
|
|
89
|
+
};
|
|
90
|
+
K(() => {
|
|
91
|
+
if (d) {
|
|
92
|
+
const e = [];
|
|
93
|
+
d == null || d.forEach((s) => {
|
|
94
|
+
let f = { ...s };
|
|
95
|
+
s != null && s.isActive ? f.stateValue = "Active" : f.stateValue = "Inactive", y == null || y.forEach((F) => {
|
|
96
|
+
s.language === F.id && (f.languagevalue = F.languageValue);
|
|
97
|
+
}), e.push(f);
|
|
98
|
+
}), w(e);
|
|
99
|
+
}
|
|
100
|
+
}, [d]), K(() => {
|
|
101
|
+
x();
|
|
102
|
+
}, []);
|
|
103
|
+
const x = async () => {
|
|
104
|
+
z(!0);
|
|
105
|
+
try {
|
|
106
|
+
const e = await Ce();
|
|
107
|
+
G(e == null ? void 0 : e.data);
|
|
108
|
+
} catch (e) {
|
|
109
|
+
console.error(e), r({
|
|
110
|
+
message: "Could not load apps. Please try again.",
|
|
111
|
+
type: "error"
|
|
112
|
+
});
|
|
113
|
+
} finally {
|
|
114
|
+
z(!1), Z(!0);
|
|
115
|
+
}
|
|
116
|
+
}, k = () => {
|
|
117
|
+
W();
|
|
118
|
+
}, ce = async (e) => {
|
|
119
|
+
try {
|
|
120
|
+
v("button_click", {
|
|
121
|
+
button_name: "add-app-add-button",
|
|
122
|
+
button_type: "submit",
|
|
123
|
+
button_id: "add-app-submit-button"
|
|
124
|
+
});
|
|
125
|
+
let s = { ...e };
|
|
126
|
+
I ? (await $(s), r({ message: "App updated successfully", type: "success" })) : (s.isActive = !0, await Se(s), r({ message: "App added successfully", type: "success" })), v("conversion_event", {
|
|
127
|
+
form: g.current,
|
|
128
|
+
form_name: "Add app Configuration",
|
|
129
|
+
submit: !0
|
|
130
|
+
}), x(), await V(), M(), u(!1);
|
|
131
|
+
} catch (s) {
|
|
132
|
+
console.error(s), r({
|
|
133
|
+
message: "Could not save this app. Please try again.",
|
|
134
|
+
type: "error"
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
return /* @__PURE__ */ l(
|
|
139
|
+
he,
|
|
140
|
+
{
|
|
141
|
+
"data-testid": "appModal-modal",
|
|
142
|
+
open: q,
|
|
143
|
+
onClose: () => {
|
|
144
|
+
k(), P();
|
|
145
|
+
},
|
|
146
|
+
fullWidth: !0,
|
|
147
|
+
maxWidth: "md",
|
|
148
|
+
className: "translation-modal",
|
|
149
|
+
children: [
|
|
150
|
+
/* @__PURE__ */ t(
|
|
151
|
+
Te,
|
|
152
|
+
{
|
|
153
|
+
description: J,
|
|
154
|
+
title: a(D) || a("Change app state"),
|
|
155
|
+
handleClick: ne,
|
|
156
|
+
open: X,
|
|
157
|
+
handleClose: () => {
|
|
158
|
+
A((e) => !e);
|
|
159
|
+
},
|
|
160
|
+
"data-testid": "app-modal-customconfirmation"
|
|
161
|
+
}
|
|
162
|
+
),
|
|
163
|
+
/* @__PURE__ */ l(
|
|
164
|
+
be,
|
|
165
|
+
{
|
|
166
|
+
sx: {
|
|
167
|
+
display: "flex",
|
|
168
|
+
alignItems: "flex-start",
|
|
169
|
+
justifyContent: "space-between",
|
|
170
|
+
gap: 2,
|
|
171
|
+
pt: 2,
|
|
172
|
+
pb: 3,
|
|
173
|
+
borderBottom: "1px solid",
|
|
174
|
+
borderColor: "divider"
|
|
175
|
+
},
|
|
176
|
+
"data-testid": "appModal-header",
|
|
177
|
+
children: [
|
|
178
|
+
/* @__PURE__ */ l(p, { children: [
|
|
179
|
+
/* @__PURE__ */ t(
|
|
180
|
+
T,
|
|
181
|
+
{
|
|
182
|
+
variant: "subtitle1",
|
|
183
|
+
component: "span",
|
|
184
|
+
sx: { fontWeight: 700, display: "block" },
|
|
185
|
+
children: a("Manage Apps")
|
|
186
|
+
}
|
|
187
|
+
),
|
|
188
|
+
/* @__PURE__ */ t(T, { variant: "body2", color: "text.secondary", children: a(
|
|
189
|
+
"Apps are the products that show translated labels. Add an app here before adding labels to it."
|
|
190
|
+
) })
|
|
191
|
+
] }),
|
|
192
|
+
/* @__PURE__ */ t(
|
|
193
|
+
ye,
|
|
194
|
+
{
|
|
195
|
+
size: "small",
|
|
196
|
+
onClick: () => {
|
|
197
|
+
k();
|
|
198
|
+
},
|
|
199
|
+
"aria-label": a("Close"),
|
|
200
|
+
"data-testid": "appModal-close-button",
|
|
201
|
+
children: /* @__PURE__ */ t(b, { iconName: "faXmark" })
|
|
202
|
+
}
|
|
203
|
+
)
|
|
204
|
+
]
|
|
205
|
+
}
|
|
206
|
+
),
|
|
207
|
+
/* @__PURE__ */ l(
|
|
208
|
+
ge,
|
|
209
|
+
{
|
|
210
|
+
sx: { "&.MuiDialogContent-root": { pt: 3 } },
|
|
211
|
+
children: [
|
|
212
|
+
!E && /* @__PURE__ */ t(
|
|
213
|
+
p,
|
|
214
|
+
{
|
|
215
|
+
sx: {
|
|
216
|
+
display: "flex",
|
|
217
|
+
justifyContent: "flex-end",
|
|
218
|
+
pb: 1.5
|
|
219
|
+
},
|
|
220
|
+
children: /* @__PURE__ */ t(xe, { isLoading: C, children: /* @__PURE__ */ l(
|
|
221
|
+
h,
|
|
222
|
+
{
|
|
223
|
+
size: "small",
|
|
224
|
+
variant: "contained",
|
|
225
|
+
"data-testid": "add-app-button",
|
|
226
|
+
color: "primary",
|
|
227
|
+
startIcon: /* @__PURE__ */ t(b, { iconName: "faPlus" }),
|
|
228
|
+
onClick: de,
|
|
229
|
+
children: [
|
|
230
|
+
a("Add"),
|
|
231
|
+
" ",
|
|
232
|
+
a("App")
|
|
233
|
+
]
|
|
234
|
+
}
|
|
235
|
+
) })
|
|
236
|
+
}
|
|
237
|
+
),
|
|
238
|
+
E && /* @__PURE__ */ l(
|
|
239
|
+
p,
|
|
240
|
+
{
|
|
241
|
+
component: "form",
|
|
242
|
+
onSubmit: ae(ce),
|
|
243
|
+
ref: g,
|
|
244
|
+
sx: {
|
|
245
|
+
display: "flex",
|
|
246
|
+
flexDirection: "column",
|
|
247
|
+
gap: 2,
|
|
248
|
+
p: 2,
|
|
249
|
+
mb: 2,
|
|
250
|
+
border: "1px solid",
|
|
251
|
+
borderColor: "divider",
|
|
252
|
+
borderRadius: (e) => `${e.shape.cardRadius}px`
|
|
253
|
+
},
|
|
254
|
+
children: [
|
|
255
|
+
/* @__PURE__ */ t(T, { variant: "overline", color: "text.secondary", children: a(I ? "Edit app" : "New app") }),
|
|
256
|
+
/* @__PURE__ */ t(p, { "data-testid": "app-value-field", children: /* @__PURE__ */ t(B, { label: a("App"), required: !0, children: /* @__PURE__ */ t(
|
|
257
|
+
R,
|
|
258
|
+
{
|
|
259
|
+
control: _,
|
|
260
|
+
id: "appValue",
|
|
261
|
+
name: "appValue",
|
|
262
|
+
errors: j,
|
|
263
|
+
label: "",
|
|
264
|
+
placeholder: a("Name shown to users"),
|
|
265
|
+
size: "small",
|
|
266
|
+
className: "w-full",
|
|
267
|
+
"data-testid": "app-value-input"
|
|
268
|
+
}
|
|
269
|
+
) }) }),
|
|
270
|
+
/* @__PURE__ */ t(p, { "data-testid": "app-key-field", children: /* @__PURE__ */ t(
|
|
271
|
+
B,
|
|
272
|
+
{
|
|
273
|
+
label: `${a("App")} ${a("Key")}`,
|
|
274
|
+
required: !0,
|
|
275
|
+
hint: a("Short code the apps send when asking for labels"),
|
|
276
|
+
children: /* @__PURE__ */ t(
|
|
277
|
+
R,
|
|
278
|
+
{
|
|
279
|
+
control: _,
|
|
280
|
+
id: "appKey",
|
|
281
|
+
name: "appKey",
|
|
282
|
+
errors: j,
|
|
283
|
+
label: "",
|
|
284
|
+
size: "small",
|
|
285
|
+
className: "w-full",
|
|
286
|
+
"data-testid": "app-key-input"
|
|
287
|
+
}
|
|
288
|
+
)
|
|
289
|
+
}
|
|
290
|
+
) }),
|
|
291
|
+
/* @__PURE__ */ l(
|
|
292
|
+
p,
|
|
293
|
+
{
|
|
294
|
+
sx: {
|
|
295
|
+
display: "flex",
|
|
296
|
+
flexDirection: { xs: "column", sm: "row" },
|
|
297
|
+
gap: 1,
|
|
298
|
+
justifyContent: "flex-end"
|
|
299
|
+
},
|
|
300
|
+
children: [
|
|
301
|
+
/* @__PURE__ */ t(
|
|
302
|
+
h,
|
|
303
|
+
{
|
|
304
|
+
size: "small",
|
|
305
|
+
variant: "outlined",
|
|
306
|
+
color: "inherit",
|
|
307
|
+
"data-testid": "add-app-cancel",
|
|
308
|
+
onClick: () => {
|
|
309
|
+
u(!1), v("conversion_event", {
|
|
310
|
+
form: g.current,
|
|
311
|
+
form_name: "Add App Configuration",
|
|
312
|
+
submit: !1
|
|
313
|
+
});
|
|
314
|
+
},
|
|
315
|
+
children: a("Cancel")
|
|
316
|
+
}
|
|
317
|
+
),
|
|
318
|
+
/* @__PURE__ */ t(
|
|
319
|
+
h,
|
|
320
|
+
{
|
|
321
|
+
type: "submit",
|
|
322
|
+
size: "small",
|
|
323
|
+
variant: "contained",
|
|
324
|
+
"data-testid": "add-app-save",
|
|
325
|
+
color: "primary",
|
|
326
|
+
disabled: te,
|
|
327
|
+
children: a("Save")
|
|
328
|
+
}
|
|
329
|
+
)
|
|
330
|
+
]
|
|
331
|
+
}
|
|
332
|
+
)
|
|
333
|
+
]
|
|
334
|
+
}
|
|
335
|
+
),
|
|
336
|
+
U && !C && (c == null ? void 0 : c.length) === 0 ? /* @__PURE__ */ t(
|
|
337
|
+
ke,
|
|
338
|
+
{
|
|
339
|
+
icon: "faLayerGroup",
|
|
340
|
+
title: a("No apps yet"),
|
|
341
|
+
body: a(
|
|
342
|
+
"Add the first app so labels have somewhere to live."
|
|
343
|
+
),
|
|
344
|
+
dataTestId: "appModal-empty"
|
|
345
|
+
}
|
|
346
|
+
) : /* @__PURE__ */ t(
|
|
347
|
+
Ee,
|
|
348
|
+
{
|
|
349
|
+
columns: se,
|
|
350
|
+
tableData: c,
|
|
351
|
+
actions: re,
|
|
352
|
+
paginationConfig: { pagination: !1 },
|
|
353
|
+
styleConfig: { tableStyle: { maxHeight: 320 } },
|
|
354
|
+
dataTestId: "appModal-table",
|
|
355
|
+
isLoading: C
|
|
356
|
+
}
|
|
357
|
+
)
|
|
358
|
+
]
|
|
359
|
+
}
|
|
360
|
+
),
|
|
361
|
+
/* @__PURE__ */ t(
|
|
362
|
+
ve,
|
|
363
|
+
{
|
|
364
|
+
sx: { px: 3, py: 2, borderTop: "1px solid", borderColor: "divider" },
|
|
365
|
+
children: /* @__PURE__ */ t(
|
|
366
|
+
h,
|
|
367
|
+
{
|
|
368
|
+
variant: "outlined",
|
|
369
|
+
color: "inherit",
|
|
370
|
+
size: "small",
|
|
371
|
+
onClick: () => k(),
|
|
372
|
+
"data-testid": "appModal-footer-close",
|
|
373
|
+
children: a("Close")
|
|
374
|
+
}
|
|
375
|
+
)
|
|
376
|
+
}
|
|
377
|
+
)
|
|
378
|
+
]
|
|
379
|
+
}
|
|
380
|
+
);
|
|
381
|
+
};
|
|
382
|
+
Ie.propTypes = {
|
|
383
|
+
open: n.any,
|
|
384
|
+
handleClose: n.any,
|
|
385
|
+
languages: n.any,
|
|
386
|
+
refresh: n.any,
|
|
387
|
+
refetch: n.any,
|
|
388
|
+
selectedApp: n.any,
|
|
389
|
+
setSelectedApp: n.any
|
|
390
|
+
};
|
|
391
|
+
export {
|
|
392
|
+
Ie as default
|
|
393
|
+
};
|
|
394
|
+
//# sourceMappingURL=AppModal-CCtrQ5Tr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AppModal-CCtrQ5Tr.js","sources":["../src/views/Translation/AppModal.jsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { useForm } from \"react-hook-form\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport * as Yup from \"yup\";\nimport {\n Button,\n IconButton,\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n Box,\n Typography,\n} from \"@mui/material\";\nimport CustomTextField from \"@/views/custom-components/CustomTextField\";\nimport { showToast } from \"@/common/toaster/toaster\";\nimport {\n createApp,\n getAllApps,\n updateApp,\n} from \"../../services/TranslationService\";\nimport CustomConfirmationModal from \"@/views/custom-components/CustomConfirmationModal\";\nimport useTrackEvent from \"@/hooks/useTrackEvent\";\nimport { useTranslateProvider } from \"@/common/languageTranslator/TranslationContext\";\nimport FontAwesomeIcons from \"@/common/fontAwesomeIcons/FontAwesomeIcons\";\nimport CustomizedTable from \"@/views/custom-components/CustomizedTable/CustomizedTableV2\";\nimport { AppModalSkeleton } from \"./Skeletons/ManageTranslationSkeleton\";\nimport { EmptyState, ModalFieldRow, StateChip } from \"./components/TranslationUi\";\n\n/**\n * Modal component for managing the apps that translation labels belong to.\n * @module appModal\n * @param {Object} props - The props for the component.\n * @param {boolean} props.open - Whether the modal is open or not.\n * @param {Function} props.handleClose - Function to close the modal.\n * @param {Array} props.languages - List of language objects for language-specific data.\n *\n * @returns {JSX.Element} The rendered modal component.\n *\n */\nconst AppModal = ({\n open,\n handleClose,\n languages,\n refresh,\n refetch,\n selectedApp,\n setSelectedApp,\n}) => {\n const formRef = useRef(null);\n const trackEvent = useTrackEvent();\n const [tableData, setTableData] = useState([]);\n const [apps, setApps] = useState([]);\n const [showForm, setShowForm] = useState(false);\n const [isEdit, setIsEdit] = useState(false);\n const { translate } = useTranslateProvider();\n\n const [toggleOpen, setToggleOpen] = useState(false);\n\n const [isActiveLabel, setIsActiveLabel] = useState(\"\");\n const [isActiveDescription, setIsActiveDescription] = useState(\"\");\n const [clickedRow, setClickedRow] = useState({});\n const [loading, setLoading] = useState(true);\n const [hasLoaded, setHasLoaded] = useState(false);\n\n const validationSchema = Yup.object().shape({\n appValue: Yup.string().required(\"Select App Value\"),\n appKey: Yup.string().required(\"Enter App key\"),\n });\n\n const {\n control,\n handleSubmit,\n reset,\n setValue,\n formState: { errors, isSubmitting },\n } = useForm({\n defaultValues: {},\n resolver: yupResolver(validationSchema),\n mode: \"onChange\",\n });\n\n const cols = [\n { field: \"Sr. No.\", label: `Sr.No`, align: \"left\", minWidth: 80 },\n { field: \"Actions\", label: translate(\"Actions\") },\n { field: \"appValue\", label: translate(\"App\"), align: \"left\" },\n {\n field: \"stateValue\",\n label: translate(\"State\"),\n align: \"left\",\n render: (row) => <StateChip state={row?.stateValue} translate={translate} />,\n },\n ];\n\n /**\n * Handles editing an existing app.\n * @method handleEdit\n * @param {Object} row - The row object containing app data to be edited.\n */\n const handleEdit = (row) => {\n setValue(\"appKey\", row?.appKey);\n setValue(\"appValue\", row?.appValue);\n setValue(\"id\", row?.id);\n setValue(\"isActive\", row?.isActive);\n setIsEdit(true);\n setShowForm(true);\n };\n\n /**\n * Toggles the state option for an app.\n * @method handleToggleOption\n * @param {Object} data - The data related to the app state.\n */\n const handleToggleOption = (data) => {\n const isActive = data?.stateValue === \"Active\";\n setIsActiveLabel(isActive ? \"Mark as Inactive\" : \"Mark as Active\");\n setIsActiveDescription(\n isActive\n ? `${data?.appValue} will stop appearing as a translation target, and its labels will be hidden from this screen. You can turn it back on here.`\n : `${data?.appValue} will appear as a translation target again, and its labels will be listed on this screen.`,\n );\n setClickedRow(data);\n };\n\n /**\n * Toggles the visibility of the state change confirmation modal.\n * @method handleToggle\n */\n const handleToggle = (row) => {\n // The row travels with the click rather than being read back from state,\n // so the handler can never act on a stale selection.\n if (row) setClickedRow(row);\n setToggleOpen((curr) => !curr);\n };\n\n /**\n * Handles the toggling of the app state (active/inactive).\n * @method handleToggleState\n */\n const handleToggleState = async () => {\n try {\n clickedRow.isActive = !clickedRow.isActive;\n await updateApp(clickedRow);\n init();\n if (selectedApp === clickedRow?.id) {\n setSelectedApp(null);\n }\n await refresh();\n refetch();\n\n setToggleOpen((cur) => !cur);\n showToast({\n message: clickedRow.isActive\n ? \"App marked active\"\n : \"App marked inactive\",\n type: \"success\",\n });\n } catch (error) {\n console.error(error);\n showToast({\n message: \"Could not change the app state. Please try again.\",\n type: \"error\",\n });\n }\n };\n\n const menuItems = [\n { label: translate(isActiveLabel), onClick: handleToggle },\n ];\n\n const actions = [\n {\n label: \"\",\n icon: <FontAwesomeIcons iconName=\"faPen\" />,\n onClick: handleEdit,\n ariaLabel: translate(\"Edit app\"),\n dataTestId: \"app-modal-edit-icon\",\n },\n {\n label: \"\",\n icon: <FontAwesomeIcons iconName=\"faBars\" />,\n menuClick: handleToggleOption,\n menuItems: menuItems,\n ariaLabel: translate(\"More app actions\"),\n dataTestId: \"app-modal-menu-icon\",\n },\n ];\n\n /**\n * Opens an empty form for a new app.\n * @method addApp\n */\n const addApp = () => {\n reset();\n setIsEdit(false);\n setShowForm(true);\n };\n\n useEffect(() => {\n if (apps) {\n const data = [];\n apps?.forEach((element) => {\n let newElement = { ...element };\n if (element?.isActive) {\n newElement.stateValue = \"Active\";\n } else {\n newElement.stateValue = \"Inactive\";\n }\n languages?.forEach((lang) => {\n if (element.language === lang.id) {\n newElement.languagevalue = lang.languageValue;\n }\n });\n\n data.push(newElement);\n });\n setTableData(data);\n }\n }, [apps]);\n\n useEffect(() => {\n init();\n }, []);\n const init = async () => {\n setLoading(true);\n try {\n const res = await getAllApps();\n setApps(res?.data);\n } catch (error) {\n console.error(error);\n showToast({\n message: \"Could not load apps. Please try again.\",\n type: \"error\",\n });\n } finally {\n setLoading(false);\n setHasLoaded(true);\n }\n };\n const close = () => {\n handleClose();\n };\n const onSubmit = async (data) => {\n try {\n trackEvent(\"button_click\", {\n button_name: \"add-app-add-button\",\n button_type: \"submit\",\n button_id: \"add-app-submit-button\",\n });\n let appDto = { ...data };\n if (isEdit) {\n await updateApp(appDto);\n showToast({ message: \"App updated successfully\", type: \"success\" });\n } else {\n appDto.isActive = true;\n await createApp(appDto);\n showToast({ message: \"App added successfully\", type: \"success\" });\n }\n\n trackEvent(\"conversion_event\", {\n form: formRef.current,\n form_name: \"Add app Configuration\",\n submit: true,\n });\n\n init();\n\n await refresh();\n refetch();\n setShowForm(false);\n } catch (error) {\n console.error(error);\n showToast({\n message: \"Could not save this app. Please try again.\",\n type: \"error\",\n });\n }\n };\n\n return (\n <Dialog\n data-testid=\"appModal-modal\"\n open={open}\n onClose={() => {\n close();\n reset();\n }}\n fullWidth\n maxWidth=\"md\"\n className=\"translation-modal\"\n >\n <CustomConfirmationModal\n description={isActiveDescription}\n title={translate(isActiveLabel) || translate(\"Change app state\")}\n handleClick={handleToggleState}\n open={toggleOpen}\n handleClose={() => {\n setToggleOpen((cur) => !cur);\n }}\n data-testid=\"app-modal-customconfirmation\"\n />\n\n <DialogTitle\n sx={{\n display: \"flex\",\n alignItems: \"flex-start\",\n justifyContent: \"space-between\",\n gap: 2,\n pt: 2,\n pb: 3,\n borderBottom: \"1px solid\",\n borderColor: \"divider\",\n }}\n data-testid=\"appModal-header\"\n >\n <Box>\n <Typography\n variant=\"subtitle1\"\n component=\"span\"\n sx={{ fontWeight: 700, display: \"block\" }}\n >\n {translate(\"Manage Apps\")}\n </Typography>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {translate(\n \"Apps are the products that show translated labels. Add an app here before adding labels to it.\",\n )}\n </Typography>\n </Box>\n <IconButton\n size=\"small\"\n onClick={() => {\n close();\n }}\n aria-label={translate(\"Close\")}\n data-testid=\"appModal-close-button\"\n >\n <FontAwesomeIcons iconName=\"faXmark\" />\n </IconButton>\n </DialogTitle>\n\n <DialogContent\n // MUI zeroes a DialogContent's top padding when it directly follows\n // a DialogTitle; this selector has the specificity to put it back.\n sx={{ \"&.MuiDialogContent-root\": { pt: 3 } }}\n >\n {!showForm && (\n <Box\n sx={{\n display: \"flex\",\n justifyContent: \"flex-end\",\n pb: 1.5,\n }}\n >\n <AppModalSkeleton isLoading={loading}>\n <Button\n size=\"small\"\n variant=\"contained\"\n data-testid=\"add-app-button\"\n color=\"primary\"\n startIcon={<FontAwesomeIcons iconName=\"faPlus\" />}\n onClick={addApp}\n >\n {translate(\"Add\")} {translate(\"App\")}\n </Button>\n </AppModalSkeleton>\n </Box>\n )}\n\n {showForm && (\n <Box\n component=\"form\"\n onSubmit={handleSubmit(onSubmit)}\n ref={formRef}\n sx={{\n display: \"flex\",\n flexDirection: \"column\",\n gap: 2,\n p: 2,\n mb: 2,\n border: \"1px solid\",\n borderColor: \"divider\",\n borderRadius: (t) => `${t.shape.cardRadius}px`,\n }}\n >\n <Typography variant=\"overline\" color=\"text.secondary\">\n {isEdit ? translate(\"Edit app\") : translate(\"New app\")}\n </Typography>\n\n <Box data-testid=\"app-value-field\">\n <ModalFieldRow label={translate(\"App\")} required>\n <CustomTextField\n control={control}\n id=\"appValue\"\n name=\"appValue\"\n errors={errors}\n label=\"\"\n placeholder={translate(\"Name shown to users\")}\n size=\"small\"\n className=\"w-full\"\n data-testid=\"app-value-input\"\n />\n </ModalFieldRow>\n </Box>\n\n <Box data-testid=\"app-key-field\">\n <ModalFieldRow\n label={`${translate(\"App\")} ${translate(\"Key\")}`}\n required\n hint={translate(\"Short code the apps send when asking for labels\")}\n >\n <CustomTextField\n control={control}\n id=\"appKey\"\n name=\"appKey\"\n errors={errors}\n label=\"\"\n size=\"small\"\n className=\"w-full\"\n data-testid=\"app-key-input\"\n />\n </ModalFieldRow>\n </Box>\n\n <Box\n sx={{\n display: \"flex\",\n flexDirection: { xs: \"column\", sm: \"row\" },\n gap: 1,\n justifyContent: \"flex-end\",\n }}\n >\n <Button\n size=\"small\"\n variant=\"outlined\"\n color=\"inherit\"\n data-testid=\"add-app-cancel\"\n onClick={() => {\n setShowForm(false);\n trackEvent(\"conversion_event\", {\n form: formRef.current,\n form_name: \"Add App Configuration\",\n submit: false,\n });\n }}\n >\n {translate(\"Cancel\")}\n </Button>\n <Button\n type=\"submit\"\n size=\"small\"\n variant=\"contained\"\n data-testid=\"add-app-save\"\n color=\"primary\"\n disabled={isSubmitting}\n >\n {translate(\"Save\")}\n </Button>\n </Box>\n </Box>\n )}\n\n {hasLoaded && !loading && tableData?.length === 0 ? (\n <EmptyState\n icon=\"faLayerGroup\"\n title={translate(\"No apps yet\")}\n body={translate(\n \"Add the first app so labels have somewhere to live.\",\n )}\n dataTestId=\"appModal-empty\"\n />\n ) : (\n <CustomizedTable\n columns={cols}\n tableData={tableData}\n actions={actions}\n paginationConfig={{ pagination: false }}\n styleConfig={{ tableStyle: { maxHeight: 320 } }}\n dataTestId=\"appModal-table\"\n isLoading={loading}\n />\n )}\n </DialogContent>\n\n <DialogActions\n sx={{ px: 3, py: 2, borderTop: \"1px solid\", borderColor: \"divider\" }}\n >\n <Button\n variant=\"outlined\"\n color=\"inherit\"\n size=\"small\"\n onClick={() => close()}\n data-testid=\"appModal-footer-close\"\n >\n {translate(\"Close\")}\n </Button>\n </DialogActions>\n </Dialog>\n );\n};\n\nAppModal.propTypes = {\n open: PropTypes.any,\n handleClose: PropTypes.any,\n languages: PropTypes.any,\n refresh: PropTypes.any,\n refetch: PropTypes.any,\n selectedApp: PropTypes.any,\n setSelectedApp: PropTypes.any,\n};\n\nexport default AppModal;\n"],"names":["AppModal","open","handleClose","languages","refresh","refetch","selectedApp","setSelectedApp","formRef","useRef","trackEvent","useTrackEvent","tableData","setTableData","useState","apps","setApps","showForm","setShowForm","isEdit","setIsEdit","translate","useTranslateProvider","toggleOpen","setToggleOpen","isActiveLabel","setIsActiveLabel","isActiveDescription","setIsActiveDescription","clickedRow","setClickedRow","loading","setLoading","hasLoaded","setHasLoaded","validationSchema","Yup","control","handleSubmit","reset","setValue","errors","isSubmitting","useForm","yupResolver","cols","row","jsx","StateChip","handleEdit","handleToggleOption","data","isActive","handleToggle","curr","handleToggleState","updateApp","init","cur","showToast","error","menuItems","actions","FontAwesomeIcons","addApp","useEffect","element","newElement","lang","res","getAllApps","close","onSubmit","appDto","createApp","jsxs","Dialog","CustomConfirmationModal","DialogTitle","Box","Typography","IconButton","DialogContent","AppModalSkeleton","Button","t","ModalFieldRow","CustomTextField","EmptyState","CustomizedTable","DialogActions","PropTypes"],"mappings":"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"}
|