@argusoft/medplat-core 1.0.29 → 1.0.31
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-DUgY6ewy.js +1031 -0
- package/dist/AccessRights-DUgY6ewy.js.map +1 -0
- package/dist/AddEditQueryBuilder-D-iQiVIe.js +365 -0
- package/dist/AddEditQueryBuilder-D-iQiVIe.js.map +1 -0
- package/dist/{AddFeatures-v3TmGQee.js → AddFeatures-D1sU8RjY.js} +2 -2
- package/dist/{AddFeatures-v3TmGQee.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-c6ZKiN0i.js +8898 -0
- package/dist/AddMenuConfiguration-c6ZKiN0i.js.map +1 -0
- package/dist/AppModal-CCtrQ5Tr.js +394 -0
- package/dist/AppModal-CCtrQ5Tr.js.map +1 -0
- package/dist/BrandsPage-DMw2vT0u-BVhvhc6J.js +387 -0
- package/dist/BrandsPage-DMw2vT0u-BVhvhc6J.js.map +1 -0
- package/dist/CategoriesPage-D3ihx9Gi-CT58g0ry.js +398 -0
- package/dist/CategoriesPage-D3ihx9Gi-CT58g0ry.js.map +1 -0
- package/dist/{ChangePasswordModalCore-DutQAZOx.js → ChangePasswordModalCore-lQ9GamH1.js} +1605 -1610
- package/dist/ChangePasswordModalCore-lQ9GamH1.js.map +1 -0
- package/dist/ConditionConfig-BQBmBHaM.js +408 -0
- package/dist/ConditionConfig-BQBmBHaM.js.map +1 -0
- package/dist/DashboardPage-asr2XDRu-uOOlX9Vq.js +435 -0
- package/dist/DashboardPage-asr2XDRu-uOOlX9Vq.js.map +1 -0
- package/dist/EventConfig-BY2cgGyx.js +27 -0
- package/dist/EventConfig-BY2cgGyx.js.map +1 -0
- package/dist/EventConfigurations-CUPEN5BV.js +544 -0
- package/dist/EventConfigurations-CUPEN5BV.js.map +1 -0
- package/dist/EventConfigurations.css +1 -1
- package/dist/EventsExceptionModal-BX-ArkBE.js +188 -0
- package/dist/EventsExceptionModal-BX-ArkBE.js.map +1 -0
- package/dist/EventsUi-D6O9S7BK.js +258 -0
- package/dist/EventsUi-D6O9S7BK.js.map +1 -0
- package/dist/FacilityPicker-DYl_PDyt-Cbwo2tAY.js +79 -0
- package/dist/FacilityPicker-DYl_PDyt-Cbwo2tAY.js.map +1 -0
- package/dist/FeatureMenu-CHsBbw3W.js +525 -0
- package/dist/FeatureMenu-CHsBbw3W.js.map +1 -0
- package/dist/{FhirServerList-Dkq7Kbes.js → FhirServerList-iXBPkRVF.js} +22 -22
- package/dist/{FhirServerList-Dkq7Kbes.js.map → FhirServerList-iXBPkRVF.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/GrantPermissionModal-D7iNZd0M.js +239 -0
- package/dist/GrantPermissionModal-D7iNZd0M.js.map +1 -0
- package/dist/ImmunizationConfigurationBase-aUtx0JEe.js +8019 -0
- package/dist/ImmunizationConfigurationBase-aUtx0JEe.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-DOotGZrj-CoPjOJEI.js +665 -0
- package/dist/InventoryPage-DOotGZrj-CoPjOJEI.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-DqW3krT6.js +1216 -0
- package/dist/ManageEventConfiguration-DqW3krT6.js.map +1 -0
- package/dist/ManageEventConfiguration.css +1 -1
- package/dist/{ManageNotification-CfhHlfxA.js → ManageNotification-C5MhV77Q.js} +2 -2
- package/dist/{ManageNotification-CfhHlfxA.js.map → ManageNotification-C5MhV77Q.js.map} +1 -1
- package/dist/{ManageRole-4Y2PP4dQ.js → ManageRole-CNZBRKGU.js} +2 -2
- package/dist/{ManageRole-4Y2PP4dQ.js.map → ManageRole-CNZBRKGU.js.map} +1 -1
- package/dist/ManageTranslation-vRiptUAP.js +833 -0
- package/dist/ManageTranslation-vRiptUAP.js.map +1 -0
- package/dist/ManageTranslation.css +1 -1
- package/dist/{ManageUser-DDzyd9jm.js → ManageUser-DZltBina.js} +224 -224
- package/dist/{ManageUser-DDzyd9jm.js.map → ManageUser-DZltBina.js.map} +1 -1
- package/dist/MemberProfileCard-D5CgkTdJ-D2NgDJl3.js +272 -0
- package/dist/MemberProfileCard-D5CgkTdJ-D2NgDJl3.js.map +1 -0
- package/dist/MobileAnalytics-BLOionG_.js +17301 -0
- package/dist/MobileAnalytics-BLOionG_.js.map +1 -0
- package/dist/MobileMenuManagement-68Wijb0X.js +220 -0
- package/dist/MobileMenuManagement-68Wijb0X.js.map +1 -0
- package/dist/MobileTypeEventConfigModal-CMcj7Ozp.js +752 -0
- package/dist/MobileTypeEventConfigModal-CMcj7Ozp.js.map +1 -0
- package/dist/NotificationFlywayQuery-BAHVjf6N.js +247 -0
- package/dist/NotificationFlywayQuery-BAHVjf6N.js.map +1 -0
- package/dist/{NotificationList-BMFpNUJG.js → NotificationList-DEyRZEuM.js} +2 -2
- package/dist/{NotificationList-BMFpNUJG.js.map → NotificationList-DEyRZEuM.js.map} +1 -1
- package/dist/OtherTypeEventConfigModal-stNmuSv_.js +1812 -0
- package/dist/OtherTypeEventConfigModal-stNmuSv_.js.map +1 -0
- package/dist/PaymentCreatePage-DfvSZ-kB-CckogYoe.js +482 -0
- package/dist/PaymentCreatePage-DfvSZ-kB-CckogYoe.js.map +1 -0
- package/dist/PaymentsPage-DMNjYWAJ-ChO9IXmk.js +157 -0
- package/dist/PaymentsPage-DMNjYWAJ-ChO9IXmk.js.map +1 -0
- package/dist/PermissionsModal-CCYkcKlC.js +151 -0
- package/dist/PermissionsModal-CCYkcKlC.js.map +1 -0
- package/dist/PickupBatchLinesEditor-CE2RuyJT-BPceiJr8.js +119 -0
- package/dist/PickupBatchLinesEditor-CE2RuyJT-BPceiJr8.js.map +1 -0
- package/dist/PickupCreatePage-B4O_-vE5-DoOo9nJO.js +783 -0
- package/dist/PickupCreatePage-B4O_-vE5-DoOo9nJO.js.map +1 -0
- package/dist/PickupsPage-D7zyioJB-bHKnARYw.js +818 -0
- package/dist/PickupsPage-D7zyioJB-bHKnARYw.js.map +1 -0
- package/dist/PmGuard-BZE-y4In-D_pUm5MP.js +599 -0
- package/dist/PmGuard-BZE-y4In-D_pUm5MP.js.map +1 -0
- package/dist/ProductEditPage-BVlVUCtD-BR-tJ5Wb.js +1305 -0
- package/dist/ProductEditPage-BVlVUCtD-BR-tJ5Wb.js.map +1 -0
- package/dist/ProductsPage-DvNHIeZt-BoOOJJtk.js +253 -0
- package/dist/ProductsPage-DvNHIeZt-BoOOJJtk.js.map +1 -0
- package/dist/PurchaseCreatePage-Cq_i9snz-DRtHHFWw.js +675 -0
- package/dist/PurchaseCreatePage-Cq_i9snz-DRtHHFWw.js.map +1 -0
- package/dist/PurchaseRequestDetailPage-CA9KFOfE-CtjG4Gx6.js +1577 -0
- package/dist/PurchaseRequestDetailPage-CA9KFOfE-CtjG4Gx6.js.map +1 -0
- package/dist/PurchaseRequestsPage-DS9i4o0--TpoxA5Kd.js +279 -0
- package/dist/PurchaseRequestsPage-DS9i4o0--TpoxA5Kd.js.map +1 -0
- package/dist/PurchasesPage-DgL5T6BY-DePUuE9l.js +293 -0
- package/dist/PurchasesPage-DgL5T6BY-DePUuE9l.js.map +1 -0
- package/dist/QueryBuilder-CXaBe6sr.js +478 -0
- package/dist/QueryBuilder-CXaBe6sr.js.map +1 -0
- package/dist/{RoleManagement-DEiBNfT8.js → RoleManagement-s8iNx2Mu.js} +145 -155
- 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-CZnIOydv-DKBw-qp7.js +544 -0
- package/dist/SaleCreatePage-CZnIOydv-DKBw-qp7.js.map +1 -0
- package/dist/SalesPage-DPIRrC_O-M8rqnK7z.js +315 -0
- package/dist/SalesPage-DPIRrC_O-M8rqnK7z.js.map +1 -0
- package/dist/SettingsPage-BC_R6Z-Q-CKNt9zRu.js +676 -0
- package/dist/SettingsPage-BC_R6Z-Q-CKNt9zRu.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-DIOUdYfG.js} +170 -123
- package/dist/ShowFlywayQuery-DIOUdYfG.js.map +1 -0
- package/dist/ShowQueryHistory-DRBKYDKk.js +313 -0
- package/dist/ShowQueryHistory-DRBKYDKk.js.map +1 -0
- package/dist/StorageUnitsPage-BDRkdCjW-UF64rf7q.js +728 -0
- package/dist/StorageUnitsPage-BDRkdCjW-UF64rf7q.js.map +1 -0
- package/dist/SubMenu-BdMTYtC1.js +319 -0
- package/dist/SubMenu-BdMTYtC1.js.map +1 -0
- package/dist/TransactionsPage-CqWTMNU8-Df6eGFDW.js +746 -0
- package/dist/TransactionsPage-CqWTMNU8-Df6eGFDW.js.map +1 -0
- package/dist/TransferCreatePage-DF7FZaTJ-CL79V3aR.js +315 -0
- package/dist/TransferCreatePage-DF7FZaTJ-CL79V3aR.js.map +1 -0
- package/dist/TransfersPage-CGrRFaBF-cTwBUv0o.js +476 -0
- package/dist/TransfersPage-CGrRFaBF-cTwBUv0o.js.map +1 -0
- package/dist/TypeConfiguration-JbRCN6GR.js +114 -0
- package/dist/TypeConfiguration-JbRCN6GR.js.map +1 -0
- package/dist/{UserList-Bc8gYxRL.js → UserList-L41Xw0Q6.js} +253 -236
- package/dist/{UserList-Bc8gYxRL.js.map → UserList-L41Xw0Q6.js.map} +1 -1
- package/dist/Users-CsJ08Kjm.js.map +1 -1
- package/dist/VialsPage-rvvXjgZG-Oqo1v6kQ.js +321 -0
- package/dist/VialsPage-rvvXjgZG-Oqo1v6kQ.js.map +1 -0
- package/dist/constants-DpXnLsAB-D6lN5cjK.js +445 -0
- package/dist/constants-DpXnLsAB-D6lN5cjK.js.map +1 -0
- package/dist/{dashboardLayoutUtils-D1xCAxp3.js → dashboardLayoutUtils-CJivzaU1.js} +95 -92
- package/dist/dashboardLayoutUtils-CJivzaU1.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 +1 -1
- package/dist/index.lib-ETRQOzvE.js +894 -0
- package/dist/index.lib-ETRQOzvE.js.map +1 -0
- package/dist/listValueStore-BFQtDYIR-Bj0yX145.js +36 -0
- package/dist/listValueStore-BFQtDYIR-Bj0yX145.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 +4 -3
- package/dist/AccessRights-Zm8Obm4N.js +0 -1284
- package/dist/AccessRights-Zm8Obm4N.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-Ce91MhnU.js +0 -8547
- package/dist/AddMenuConfiguration-Ce91MhnU.js.map +0 -1
- package/dist/AppModal-CtG2GjD_.js +0 -428
- package/dist/AppModal-CtG2GjD_.js.map +0 -1
- package/dist/ChangePasswordModalCore-DutQAZOx.js.map +0 -1
- package/dist/ConditionConfig-B4Ffpgj3.js +0 -395
- package/dist/ConditionConfig-B4Ffpgj3.js.map +0 -1
- package/dist/ConditionConfig.css +0 -1
- package/dist/EventConfigurations-BJcURufo.js +0 -449
- package/dist/EventConfigurations-BJcURufo.js.map +0 -1
- package/dist/EventsExceptionModal-BlZtBQoR.js +0 -200
- package/dist/EventsExceptionModal-BlZtBQoR.js.map +0 -1
- package/dist/EventsSkeleton-DK6JDKAK.js +0 -83
- package/dist/EventsSkeleton-DK6JDKAK.js.map +0 -1
- package/dist/FeatureMenu-C3503UIX.js +0 -265
- package/dist/FeatureMenu-C3503UIX.js.map +0 -1
- package/dist/FlywayQuery-Cx2sly6g.js +0 -169
- package/dist/FlywayQuery-Cx2sly6g.js.map +0 -1
- package/dist/ImmunizationConfigurationBase-DLQVSNnt.js +0 -5895
- package/dist/ImmunizationConfigurationBase-DLQVSNnt.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-dt096fyj.js +0 -4189
- package/dist/ManageDynamicFeature-dt096fyj.js.map +0 -1
- package/dist/ManageEventConfiguration-BpSJszSX.js +0 -1017
- package/dist/ManageEventConfiguration-BpSJszSX.js.map +0 -1
- package/dist/ManageTranslation-B4C9-lWD.js +0 -625
- package/dist/ManageTranslation-B4C9-lWD.js.map +0 -1
- package/dist/MobileMenuManagement-Cf8IZlla.js +0 -108
- package/dist/MobileMenuManagement-Cf8IZlla.js.map +0 -1
- package/dist/MobileTypeEventConfigModal-DUkUYACe.js +0 -783
- package/dist/MobileTypeEventConfigModal-DUkUYACe.js.map +0 -1
- package/dist/NotificationFlywayQuery-BY8Zzml_.js +0 -244
- package/dist/NotificationFlywayQuery-BY8Zzml_.js.map +0 -1
- package/dist/OtherTypeEventConfigModal-CYBfr2XE.js +0 -2046
- package/dist/OtherTypeEventConfigModal-CYBfr2XE.js.map +0 -1
- package/dist/QueryBuilder-z7eqfd7D.js +0 -383
- package/dist/QueryBuilder-z7eqfd7D.js.map +0 -1
- package/dist/RoleManagement-DEiBNfT8.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-B072oEGb.js +0 -191
- package/dist/SubMenu-B072oEGb.js.map +0 -1
- package/dist/TypeConfiguration-C3xoP2Nb.js +0 -117
- package/dist/TypeConfiguration-C3xoP2Nb.js.map +0 -1
- package/dist/dashboardLayoutUtils-D1xCAxp3.js.map +0 -1
- package/dist/index.lib-C3fwoM3y.js +0 -820
- package/dist/index.lib-C3fwoM3y.js.map +0 -1
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
import { jsx as e, jsxs as u } from "react/jsx-runtime";
|
|
2
|
+
import { api as z } from "@/common/interceptors/AxiosInterceptor";
|
|
3
|
+
import { showToast as A } from "@/common/toaster/toaster";
|
|
4
|
+
import { Paper as W, Box as o, Typography as p, InputAdornment as S, IconButton as D, Button as N } from "@mui/material";
|
|
5
|
+
import F from "@mui/material/Grid2";
|
|
6
|
+
import d from "prop-types";
|
|
7
|
+
import { useState as b, useEffect as R, useMemo as B } from "react";
|
|
8
|
+
import { useNavigate as j } from "react-router";
|
|
9
|
+
import f from "@/common/fontAwesomeIcons/FontAwesomeIcons";
|
|
10
|
+
import { useTranslateProvider as J } from "@/common/languageTranslator/TranslationContext";
|
|
11
|
+
import q from "@/views/custom-components/CustomizedTable/CustomizedTableV2";
|
|
12
|
+
import E from "@/views/custom-components/DebouncedSearchInput";
|
|
13
|
+
import { c as $ } from "./dashboardLayoutUtils-CJivzaU1.js";
|
|
14
|
+
const G = "/mobilemenu/v2", H = {
|
|
15
|
+
getMobileMenuList: () => z.get(G + "/list")
|
|
16
|
+
}, x = ({ icon: i, title: g, body: a, action: l, dataTestId: m }) => /* @__PURE__ */ u(
|
|
17
|
+
o,
|
|
18
|
+
{
|
|
19
|
+
"data-testid": m,
|
|
20
|
+
sx: {
|
|
21
|
+
display: "flex",
|
|
22
|
+
flexDirection: "column",
|
|
23
|
+
alignItems: "center",
|
|
24
|
+
justifyContent: "center",
|
|
25
|
+
textAlign: "center",
|
|
26
|
+
gap: 1,
|
|
27
|
+
px: 3,
|
|
28
|
+
py: 8
|
|
29
|
+
},
|
|
30
|
+
children: [
|
|
31
|
+
/* @__PURE__ */ e(o, { sx: { color: "text.disabled" }, children: /* @__PURE__ */ e(f, { iconName: i, size: "2x" }) }),
|
|
32
|
+
/* @__PURE__ */ e(p, { variant: "subtitle1", sx: { fontWeight: 700 }, children: g }),
|
|
33
|
+
a && /* @__PURE__ */ e(p, { variant: "body2", color: "text.secondary", sx: { maxWidth: 440 }, children: a }),
|
|
34
|
+
l
|
|
35
|
+
]
|
|
36
|
+
}
|
|
37
|
+
);
|
|
38
|
+
x.propTypes = {
|
|
39
|
+
icon: d.string,
|
|
40
|
+
title: d.node,
|
|
41
|
+
body: d.node,
|
|
42
|
+
action: d.node,
|
|
43
|
+
dataTestId: d.string
|
|
44
|
+
};
|
|
45
|
+
function ie() {
|
|
46
|
+
const [i, g] = b([]), [a, l] = b(""), [m, y] = b(!0), M = j(), { translate: n } = J(), L = [
|
|
47
|
+
{ field: "Sr. No.", label: "#", align: "left" },
|
|
48
|
+
{ field: "name", label: n("Role Name"), align: "left", minWidth: 220, isBold: !0 },
|
|
49
|
+
{ field: "features", label: n("Features"), align: "left", minWidth: 340 },
|
|
50
|
+
{ field: "Actions", label: n("Actions"), align: "left", minWidth: 110 }
|
|
51
|
+
], T = (t) => {
|
|
52
|
+
const s = `addMenuConfiguration?${new URLSearchParams({ id: t.id }).toString()}`;
|
|
53
|
+
M(s, { state: { mobileMenuList: t, roleId: t.roleId } });
|
|
54
|
+
}, v = (t) => [
|
|
55
|
+
{
|
|
56
|
+
icon: /* @__PURE__ */ e(f, { iconName: "faPen" }),
|
|
57
|
+
ariaLabel: `${n("Edit menu configuration for")} ${(t == null ? void 0 : t.name) ?? ""}`,
|
|
58
|
+
onClick: T,
|
|
59
|
+
dataTestId: "mobilemenumanagement-edit-action"
|
|
60
|
+
}
|
|
61
|
+
];
|
|
62
|
+
R(() => {
|
|
63
|
+
(async () => await P())();
|
|
64
|
+
}, []);
|
|
65
|
+
const P = async () => {
|
|
66
|
+
try {
|
|
67
|
+
y(!0);
|
|
68
|
+
const s = ((await H.getMobileMenuList()).data || []).map((r) => {
|
|
69
|
+
let h = {};
|
|
70
|
+
try {
|
|
71
|
+
h = typeof r.configJson == "string" ? JSON.parse(r.configJson) : r.configJson || {};
|
|
72
|
+
} catch {
|
|
73
|
+
h = {};
|
|
74
|
+
}
|
|
75
|
+
const k = $(h), w = [...new Set(k)].join(", ");
|
|
76
|
+
return {
|
|
77
|
+
id: r.id,
|
|
78
|
+
roleId: r.roleId,
|
|
79
|
+
name: r.roleName,
|
|
80
|
+
features: w,
|
|
81
|
+
configJson: h
|
|
82
|
+
};
|
|
83
|
+
});
|
|
84
|
+
g(s);
|
|
85
|
+
} catch (t) {
|
|
86
|
+
A({
|
|
87
|
+
message: n("Could not load the mobile menu configurations. Try again in a moment."),
|
|
88
|
+
type: "error"
|
|
89
|
+
}), console.error(t);
|
|
90
|
+
} finally {
|
|
91
|
+
y(!1);
|
|
92
|
+
}
|
|
93
|
+
}, C = B(() => {
|
|
94
|
+
const t = a.trim().toLowerCase();
|
|
95
|
+
return t ? i.filter((c) => {
|
|
96
|
+
var s;
|
|
97
|
+
return (s = c.name) == null ? void 0 : s.toLowerCase().includes(t);
|
|
98
|
+
}) : i;
|
|
99
|
+
}, [i, a]), I = (t, c = "contained") => /* @__PURE__ */ e(
|
|
100
|
+
N,
|
|
101
|
+
{
|
|
102
|
+
size: "small",
|
|
103
|
+
variant: c,
|
|
104
|
+
onClick: () => M("addMenuConfiguration"),
|
|
105
|
+
startIcon: /* @__PURE__ */ e(f, { iconName: "faPlus" }),
|
|
106
|
+
"data-testid": t,
|
|
107
|
+
children: n("Add configuration")
|
|
108
|
+
}
|
|
109
|
+
);
|
|
110
|
+
return /* @__PURE__ */ e(F, { "data-testid": "mobilemenumanagement-container", children: /* @__PURE__ */ e(
|
|
111
|
+
W,
|
|
112
|
+
{
|
|
113
|
+
elevation: 0,
|
|
114
|
+
sx: {
|
|
115
|
+
p: { xs: 2.5, md: 3 },
|
|
116
|
+
mt: 2,
|
|
117
|
+
mb: 3,
|
|
118
|
+
border: "1px solid",
|
|
119
|
+
borderColor: "divider",
|
|
120
|
+
borderRadius: (t) => `${t.shape.cardRadius}px`,
|
|
121
|
+
backgroundColor: "background.paper"
|
|
122
|
+
},
|
|
123
|
+
children: /* @__PURE__ */ u(o, { sx: { display: "flex", flexDirection: "column", gap: 3 }, children: [
|
|
124
|
+
/* @__PURE__ */ u(
|
|
125
|
+
o,
|
|
126
|
+
{
|
|
127
|
+
sx: {
|
|
128
|
+
display: "flex",
|
|
129
|
+
justifyContent: "space-between",
|
|
130
|
+
alignItems: "flex-start",
|
|
131
|
+
flexWrap: "wrap",
|
|
132
|
+
gap: 2
|
|
133
|
+
},
|
|
134
|
+
children: [
|
|
135
|
+
/* @__PURE__ */ u(o, { sx: { minWidth: { xs: "100%", lg: "40%" } }, children: [
|
|
136
|
+
/* @__PURE__ */ e(
|
|
137
|
+
p,
|
|
138
|
+
{
|
|
139
|
+
variant: "h5",
|
|
140
|
+
component: "h1",
|
|
141
|
+
sx: { fontWeight: 800, color: "text.primary", mb: 0.5 },
|
|
142
|
+
children: n("Mobile Menu Management")
|
|
143
|
+
}
|
|
144
|
+
),
|
|
145
|
+
/* @__PURE__ */ e(p, { variant: "body2", color: "text.secondary", children: n(
|
|
146
|
+
"Decide what each role sees on the mobile home screen: menu blocks, dashboards and shortcuts."
|
|
147
|
+
) })
|
|
148
|
+
] }),
|
|
149
|
+
/* @__PURE__ */ u(o, { sx: { display: "flex", alignItems: "center", gap: 1.5, flexWrap: "wrap" }, children: [
|
|
150
|
+
/* @__PURE__ */ e(
|
|
151
|
+
E,
|
|
152
|
+
{
|
|
153
|
+
value: a,
|
|
154
|
+
onChange: l,
|
|
155
|
+
placeholder: n("Search Role"),
|
|
156
|
+
autoFocus: !1,
|
|
157
|
+
size: "small",
|
|
158
|
+
"data-testid": "mobilemenumanagement-search-textfield",
|
|
159
|
+
sx: { width: { xs: "100%", sm: 240 } },
|
|
160
|
+
slotProps: { htmlInput: { "aria-label": n("Search Role") } },
|
|
161
|
+
inputProps: {
|
|
162
|
+
startAdornment: /* @__PURE__ */ e(S, { position: "start", children: /* @__PURE__ */ e(o, { sx: { color: "text.disabled", display: "flex" }, children: /* @__PURE__ */ e(f, { iconName: "faMagnifyingGlass", size: "sm" }) }) }),
|
|
163
|
+
endAdornment: a ? /* @__PURE__ */ e(S, { position: "end", children: /* @__PURE__ */ e(
|
|
164
|
+
D,
|
|
165
|
+
{
|
|
166
|
+
size: "small",
|
|
167
|
+
"aria-label": n("Clear search"),
|
|
168
|
+
onClick: () => l(""),
|
|
169
|
+
children: /* @__PURE__ */ e(f, { iconName: "faXmark", size: "sm" })
|
|
170
|
+
}
|
|
171
|
+
) }) : null
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
),
|
|
175
|
+
I("mobilemenumanagement-add-button")
|
|
176
|
+
] })
|
|
177
|
+
]
|
|
178
|
+
}
|
|
179
|
+
),
|
|
180
|
+
!m && C.length === 0 && a ? /* @__PURE__ */ e(
|
|
181
|
+
x,
|
|
182
|
+
{
|
|
183
|
+
icon: "faMagnifyingGlass",
|
|
184
|
+
title: n("No roles match your search"),
|
|
185
|
+
body: n("Search matches the role name. Check the spelling, or try a shorter term."),
|
|
186
|
+
action: /* @__PURE__ */ e(N, { variant: "text", size: "small", onClick: () => l(""), children: n("Clear search") }),
|
|
187
|
+
dataTestId: "mobilemenumanagement-no-results"
|
|
188
|
+
}
|
|
189
|
+
) : !m && i.length === 0 ? /* @__PURE__ */ e(
|
|
190
|
+
x,
|
|
191
|
+
{
|
|
192
|
+
icon: "faMobileScreenButton",
|
|
193
|
+
title: n("No mobile menus configured yet"),
|
|
194
|
+
body: n(
|
|
195
|
+
"Add a configuration to choose which blocks a role sees when it opens the mobile app."
|
|
196
|
+
),
|
|
197
|
+
action: I("mobilemenumanagement-empty-add-button", "text"),
|
|
198
|
+
dataTestId: "mobilemenumanagement-empty"
|
|
199
|
+
}
|
|
200
|
+
) : /* @__PURE__ */ e(
|
|
201
|
+
q,
|
|
202
|
+
{
|
|
203
|
+
columns: L,
|
|
204
|
+
tableData: C,
|
|
205
|
+
actions: v,
|
|
206
|
+
isLoading: m,
|
|
207
|
+
disableHtml: !0,
|
|
208
|
+
showFullContent: !1,
|
|
209
|
+
styleConfig: { tableStyle: { maxHeight: 65 }, cellStyle: { maxLines: 2 } },
|
|
210
|
+
dataTestId: "mobilemenumanagement-customizedtable"
|
|
211
|
+
}
|
|
212
|
+
)
|
|
213
|
+
] })
|
|
214
|
+
}
|
|
215
|
+
) });
|
|
216
|
+
}
|
|
217
|
+
export {
|
|
218
|
+
ie as default
|
|
219
|
+
};
|
|
220
|
+
//# sourceMappingURL=MobileMenuManagement-68Wijb0X.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MobileMenuManagement-68Wijb0X.js","sources":["../src/services/MobileMenuService.js","../src/views/MobileMenuManagement/MobileMenuManagement.jsx"],"sourcesContent":["import { api } from '@/common/interceptors/AxiosInterceptor';\n\nconst basePath = '/mobilemenu/v2';\n\nexport const MobileMenuService = {\n getMobileMenuList: () => api.get(basePath + '/list'),\n};\n","/**\n * @author Sanya Srivastava <ssrivastava@argusoft.com>\n * @date 2025-03-24 (Monday)\n */\n\nimport { MobileMenuService } from '../../services/MobileMenuService';\nimport { showToast } from '@/common/toaster/toaster';\nimport { Box, Button, IconButton, InputAdornment, Paper, Typography } from '@mui/material';\nimport Grid from '@mui/material/Grid2';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useMemo, useState } from 'react';\nimport { useNavigate } from 'react-router';\nimport FontAwesomeIcons from '@/common/fontAwesomeIcons/FontAwesomeIcons';\nimport { useTranslateProvider } from '@/common/languageTranslator/TranslationContext';\nimport CustomizedTable from '@/views/custom-components/CustomizedTable/CustomizedTableV2';\nimport DebouncedSearchInput from '@/views/custom-components/DebouncedSearchInput';\nimport { collectFeatureNamesFromLayout } from './dashboardLayoutUtils';\n\n/**\n * Centred message block used for every zero-content state on this screen, so\n * \"nothing configured yet\" and \"no matches\" read as one family rather than two\n * unrelated layouts.\n *\n * @param {Object} props\n * @param {string} props.icon - FontAwesome export name.\n * @returns {JSX.Element}\n */\nconst EmptyState = ({ icon, title, body, action, dataTestId }) => (\n <Box\n data-testid={dataTestId}\n sx={{\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n textAlign: 'center',\n gap: 1,\n px: 3,\n py: 8,\n }}\n >\n <Box sx={{ color: 'text.disabled' }}>\n <FontAwesomeIcons iconName={icon} size=\"2x\" />\n </Box>\n <Typography variant=\"subtitle1\" sx={{ fontWeight: 700 }}>\n {title}\n </Typography>\n {body && (\n <Typography variant=\"body2\" color=\"text.secondary\" sx={{ maxWidth: 440 }}>\n {body}\n </Typography>\n )}\n {action}\n </Box>\n);\n\nEmptyState.propTypes = {\n icon: PropTypes.string,\n title: PropTypes.node,\n body: PropTypes.node,\n action: PropTypes.node,\n dataTestId: PropTypes.string,\n};\n\nexport default function MobileMenuManagement() {\n const [mobileMenuList, setMobileMenuList] = useState([]);\n const [searchText, setSearchText] = useState('');\n const [isLoading, setIsLoading] = useState(true);\n\n const navigate = useNavigate();\n const { translate } = useTranslateProvider();\n\n const columns = [\n { field: 'Sr. No.', label: '#', align: 'left' },\n { field: 'name', label: translate('Role Name'), align: 'left', minWidth: 220, isBold: true },\n { field: 'features', label: translate('Features'), align: 'left', minWidth: 340 },\n { field: 'Actions', label: translate('Actions'), align: 'left', minWidth: 110 },\n ];\n\n /** Row comes from the action's own argument, never from parent state. */\n const handleEdit = (row) => {\n const queryParams = new URLSearchParams({ id: row.id }).toString();\n const url = `addMenuConfiguration?${queryParams}`;\n navigate(url, { state: { mobileMenuList: row, roleId: row.roleId } });\n };\n\n const actions = (row) => [\n {\n icon: <FontAwesomeIcons iconName=\"faPen\" />,\n ariaLabel: `${translate('Edit menu configuration for')} ${row?.name ?? ''}`,\n onClick: handleEdit,\n dataTestId: 'mobilemenumanagement-edit-action',\n },\n ];\n\n useEffect(() => {\n (async () => {\n await fetchMenuRelations();\n })();\n }, []);\n\n const fetchMenuRelations = async () => {\n try {\n setIsLoading(true);\n const response = await MobileMenuService.getMobileMenuList();\n const menuData = response.data || [];\n const formattedData = menuData.map((item) => {\n let config = {};\n try {\n config =\n typeof item.configJson === 'string'\n ? JSON.parse(item.configJson)\n : item.configJson || {};\n } catch {\n config = {};\n }\n\n const allFeatureNames = collectFeatureNamesFromLayout(config);\n const uniqueNames = [...new Set(allFeatureNames)];\n const featureSummary = uniqueNames.join(', ');\n\n return {\n id: item.id,\n roleId: item.roleId,\n name: item.roleName,\n features: featureSummary,\n configJson: config,\n };\n });\n setMobileMenuList(formattedData);\n } catch (error) {\n showToast({\n message: translate('Could not load the mobile menu configurations. Try again in a moment.'),\n type: 'error',\n });\n console.error(error);\n } finally {\n setIsLoading(false);\n }\n };\n\n const filteredList = useMemo(() => {\n const term = searchText.trim().toLowerCase();\n if (!term) return mobileMenuList;\n return mobileMenuList.filter((item) => item.name?.toLowerCase().includes(term));\n }, [mobileMenuList, searchText]);\n\n const addConfigurationButton = (dataTestId, variant = 'contained') => (\n <Button\n size=\"small\"\n variant={variant}\n onClick={() => navigate('addMenuConfiguration')}\n startIcon={<FontAwesomeIcons iconName=\"faPlus\" />}\n data-testid={dataTestId}\n >\n {translate('Add configuration')}\n </Button>\n );\n\n return (\n <Grid data-testid=\"mobilemenumanagement-container\">\n <Paper\n elevation={0}\n sx={{\n p: { xs: 2.5, md: 3 },\n mt: 2,\n mb: 3,\n border: '1px solid',\n borderColor: 'divider',\n borderRadius: (t) => `${t.shape.cardRadius}px`,\n backgroundColor: 'background.paper',\n }}\n >\n <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>\n {/* ── Header: title block (left) + actions (right) ── */}\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'flex-start',\n flexWrap: 'wrap',\n gap: 2,\n }}\n >\n <Box sx={{ minWidth: { xs: '100%', lg: '40%' } }}>\n <Typography\n variant=\"h5\"\n component=\"h1\"\n sx={{ fontWeight: 800, color: 'text.primary', mb: 0.5 }}\n >\n {translate('Mobile Menu Management')}\n </Typography>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {translate(\n 'Decide what each role sees on the mobile home screen: menu blocks, dashboards and shortcuts.',\n )}\n </Typography>\n </Box>\n\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1.5, flexWrap: 'wrap' }}>\n <DebouncedSearchInput\n value={searchText}\n onChange={setSearchText}\n placeholder={translate('Search Role')}\n autoFocus={false}\n size=\"small\"\n data-testid=\"mobilemenumanagement-search-textfield\"\n sx={{ width: { xs: '100%', sm: 240 } }}\n slotProps={{ htmlInput: { 'aria-label': translate('Search Role') } }}\n inputProps={{\n startAdornment: (\n <InputAdornment position=\"start\">\n <Box sx={{ color: 'text.disabled', display: 'flex' }}>\n <FontAwesomeIcons iconName=\"faMagnifyingGlass\" size=\"sm\" />\n </Box>\n </InputAdornment>\n ),\n endAdornment: searchText ? (\n <InputAdornment position=\"end\">\n <IconButton\n size=\"small\"\n aria-label={translate('Clear search')}\n onClick={() => setSearchText('')}\n >\n <FontAwesomeIcons iconName=\"faXmark\" size=\"sm\" />\n </IconButton>\n </InputAdornment>\n ) : null,\n }}\n />\n {addConfigurationButton('mobilemenumanagement-add-button')}\n </Box>\n </Box>\n\n {!isLoading && filteredList.length === 0 && searchText ? (\n <EmptyState\n icon=\"faMagnifyingGlass\"\n title={translate('No roles match your search')}\n body={translate('Search matches the role name. Check the spelling, or try a shorter term.')}\n action={\n <Button variant=\"text\" size=\"small\" onClick={() => setSearchText('')}>\n {translate('Clear search')}\n </Button>\n }\n dataTestId=\"mobilemenumanagement-no-results\"\n />\n ) : !isLoading && mobileMenuList.length === 0 ? (\n <EmptyState\n icon=\"faMobileScreenButton\"\n title={translate('No mobile menus configured yet')}\n body={translate(\n 'Add a configuration to choose which blocks a role sees when it opens the mobile app.',\n )}\n action={addConfigurationButton('mobilemenumanagement-empty-add-button', 'text')}\n dataTestId=\"mobilemenumanagement-empty\"\n />\n ) : (\n <CustomizedTable\n columns={columns}\n tableData={filteredList}\n actions={actions}\n isLoading={isLoading}\n disableHtml\n showFullContent={false}\n styleConfig={{ tableStyle: { maxHeight: 65 }, cellStyle: { maxLines: 2 } }}\n dataTestId=\"mobilemenumanagement-customizedtable\"\n />\n )}\n </Box>\n </Paper>\n </Grid>\n );\n}\n"],"names":["basePath","MobileMenuService","api","EmptyState","icon","title","body","action","dataTestId","jsxs","Box","jsx","FontAwesomeIcons","Typography","PropTypes","MobileMenuManagement","mobileMenuList","setMobileMenuList","useState","searchText","setSearchText","isLoading","setIsLoading","navigate","useNavigate","translate","useTranslateProvider","columns","handleEdit","row","url","actions","useEffect","fetchMenuRelations","formattedData","item","config","allFeatureNames","collectFeatureNamesFromLayout","featureSummary","error","showToast","filteredList","useMemo","term","_a","addConfigurationButton","variant","Button","Grid","Paper","DebouncedSearchInput","InputAdornment","IconButton","CustomizedTable"],"mappings":"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"}
|