@argusoft/medplat-core 1.0.27 → 1.0.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/dist/AccessRights-Zm8Obm4N.js +1284 -0
  2. package/dist/AccessRights-Zm8Obm4N.js.map +1 -0
  3. package/dist/{AddFeatures-C0Z29oSd.js → AddFeatures-v3TmGQee.js} +2 -2
  4. package/dist/{AddFeatures-C0Z29oSd.js.map → AddFeatures-v3TmGQee.js.map} +1 -1
  5. package/dist/AddMenuConfiguration-Ce91MhnU.js +8547 -0
  6. package/dist/AddMenuConfiguration-Ce91MhnU.js.map +1 -0
  7. package/dist/{AddRoleDrawer-CQdzQZLb.js → AddRoleDrawer-0gqAK8N0.js} +62 -63
  8. package/dist/AddRoleDrawer-0gqAK8N0.js.map +1 -0
  9. package/dist/{ChangePasswordModalCore-CDxkeIIM.js → ChangePasswordModalCore-DutQAZOx.js} +2 -2
  10. package/dist/{ChangePasswordModalCore-CDxkeIIM.js.map → ChangePasswordModalCore-DutQAZOx.js.map} +1 -1
  11. package/dist/{ConditionConfig-DSsgGEXS.js → ConditionConfig-B4Ffpgj3.js} +2 -2
  12. package/dist/ConditionConfig-B4Ffpgj3.js.map +1 -0
  13. package/dist/{EntityManagement-GaYsBTvf.js → EntityManagement-CPQL6qBj.js} +2 -2
  14. package/dist/{EntityManagement-GaYsBTvf.js.map → EntityManagement-CPQL6qBj.js.map} +1 -1
  15. package/dist/{EventConfigurations-kNtAj_WM.js → EventConfigurations-BJcURufo.js} +3 -3
  16. package/dist/{EventConfigurations-kNtAj_WM.js.map → EventConfigurations-BJcURufo.js.map} +1 -1
  17. package/dist/{EventsExceptionModal-D4Bf1ilS.js → EventsExceptionModal-BlZtBQoR.js} +2 -2
  18. package/dist/{EventsExceptionModal-D4Bf1ilS.js.map → EventsExceptionModal-BlZtBQoR.js.map} +1 -1
  19. package/dist/{EventsSkeleton-8iiETGcf.js → EventsSkeleton-DK6JDKAK.js} +26 -19
  20. package/dist/EventsSkeleton-DK6JDKAK.js.map +1 -0
  21. package/dist/{FeatureMenu-jl7-Tk6y.js → FeatureMenu-C3503UIX.js} +3 -3
  22. package/dist/{FeatureMenu-jl7-Tk6y.js.map → FeatureMenu-C3503UIX.js.map} +1 -1
  23. package/dist/Features-Dne21RWu.js +14 -0
  24. package/dist/Features-Dne21RWu.js.map +1 -0
  25. package/dist/FileSaver.min-CN9EpL2h.js.map +1 -1
  26. package/dist/{ManageNotification-CaBAOhji.js → Google-DQxMfbaL.js} +1725 -2652
  27. package/dist/Google-DQxMfbaL.js.map +1 -0
  28. package/dist/ImmunizationConfigurationBase-DLQVSNnt.js +5895 -0
  29. package/dist/ImmunizationConfigurationBase-DLQVSNnt.js.map +1 -0
  30. package/dist/ImmunizationConfigurationBase.css +1 -1
  31. package/dist/ImmunizationSkeleton-D2tdv5k-.js.map +1 -1
  32. package/dist/{ManageDynamicFeature-BhONvfC_.js → ManageDynamicFeature-dt096fyj.js} +2 -2
  33. package/dist/{ManageDynamicFeature-BhONvfC_.js.map → ManageDynamicFeature-dt096fyj.js.map} +1 -1
  34. package/dist/{ManageEventConfiguration-DV3I5POA.js → ManageEventConfiguration-BpSJszSX.js} +5 -5
  35. package/dist/{ManageEventConfiguration-DV3I5POA.js.map → ManageEventConfiguration-BpSJszSX.js.map} +1 -1
  36. package/dist/ManageNotification-CfhHlfxA.js +934 -0
  37. package/dist/ManageNotification-CfhHlfxA.js.map +1 -0
  38. package/dist/{ManageRole-CGYfglpo.js → ManageRole-4Y2PP4dQ.js} +32 -30
  39. package/dist/ManageRole-4Y2PP4dQ.js.map +1 -0
  40. package/dist/{ManageUser-AY1EUDLI.js → ManageUser-DDzyd9jm.js} +1728 -1592
  41. package/dist/ManageUser-DDzyd9jm.js.map +1 -0
  42. package/dist/MobileMenuManagement-Cf8IZlla.js +108 -0
  43. package/dist/MobileMenuManagement-Cf8IZlla.js.map +1 -0
  44. package/dist/{MobileTypeEventConfigModal-BxLympIO.js → MobileTypeEventConfigModal-DUkUYACe.js} +2 -2
  45. package/dist/MobileTypeEventConfigModal-DUkUYACe.js.map +1 -0
  46. package/dist/{NotificationList-C3Vb_jKU.js → NotificationList-BMFpNUJG.js} +109 -110
  47. package/dist/NotificationList-BMFpNUJG.js.map +1 -0
  48. package/dist/{OtherTypeEventConfigModal-BeG1GrUi.js → OtherTypeEventConfigModal-CYBfr2XE.js} +570 -478
  49. package/dist/OtherTypeEventConfigModal-CYBfr2XE.js.map +1 -0
  50. package/dist/{RoleManagement-BPl2cE27.js → RoleManagement-DEiBNfT8.js} +100 -101
  51. package/dist/RoleManagement-DEiBNfT8.js.map +1 -0
  52. package/dist/{ServerSyncModal-D_oFpv3C.js → ServerSyncModal-92U3xtqI.js} +84 -85
  53. package/dist/ServerSyncModal-92U3xtqI.js.map +1 -0
  54. package/dist/{SubMenu-DYxAPH2Z.js → SubMenu-B072oEGb.js} +3 -3
  55. package/dist/{SubMenu-DYxAPH2Z.js.map → SubMenu-B072oEGb.js.map} +1 -1
  56. package/dist/{TableDetails-Cf_YfnY2.js → TableDetails-BtafRxXb.js} +1069 -831
  57. package/dist/TableDetails-BtafRxXb.js.map +1 -0
  58. package/dist/{TableList-D6jnIbnz.js → TableList-Dpo6dO7S.js} +2 -2
  59. package/dist/{TableList-D6jnIbnz.js.map → TableList-Dpo6dO7S.js.map} +1 -1
  60. package/dist/{TypeConfiguration-37wp-gsl.js → TypeConfiguration-C3xoP2Nb.js} +2 -2
  61. package/dist/{TypeConfiguration-37wp-gsl.js.map → TypeConfiguration-C3xoP2Nb.js.map} +1 -1
  62. package/dist/{WidgetList-Dw_FmbbE.js → WidgetList-D7YuWfDD.js} +2 -2
  63. package/dist/{WidgetList-Dw_FmbbE.js.map → WidgetList-D7YuWfDD.js.map} +1 -1
  64. package/dist/dashboardLayoutUtils-D1xCAxp3.js +405 -0
  65. package/dist/dashboardLayoutUtils-D1xCAxp3.js.map +1 -0
  66. package/dist/i18next-CTOWN_jH.js.map +1 -1
  67. package/dist/index.css +1 -1
  68. package/dist/index.js +4 -752
  69. package/dist/index.js.map +1 -1
  70. package/dist/index.lib-C3fwoM3y.js +820 -0
  71. package/dist/index.lib-C3fwoM3y.js.map +1 -0
  72. package/dist/xlsx.min-D1LFqt_b.js.map +1 -1
  73. package/package.json +2 -2
  74. package/dist/AccessRights-CHu27ZOw.js +0 -1262
  75. package/dist/AccessRights-CHu27ZOw.js.map +0 -1
  76. package/dist/AddMenuConfiguration-BSQLl88V.js +0 -6570
  77. package/dist/AddMenuConfiguration-BSQLl88V.js.map +0 -1
  78. package/dist/AddRoleDrawer-CQdzQZLb.js.map +0 -1
  79. package/dist/ConditionConfig-DSsgGEXS.js.map +0 -1
  80. package/dist/EventsSkeleton-8iiETGcf.js.map +0 -1
  81. package/dist/Features-CObdzJp_.js +0 -13
  82. package/dist/Features-CObdzJp_.js.map +0 -1
  83. package/dist/ImmunizationConfigurationBase-BevKZx_l.js +0 -5910
  84. package/dist/ImmunizationConfigurationBase-BevKZx_l.js.map +0 -1
  85. package/dist/ManageNotification-CaBAOhji.js.map +0 -1
  86. package/dist/ManageRole-CGYfglpo.js.map +0 -1
  87. package/dist/ManageUser-AY1EUDLI.js.map +0 -1
  88. package/dist/MobileMenuManagement-CVAKyKDa.js +0 -112
  89. package/dist/MobileMenuManagement-CVAKyKDa.js.map +0 -1
  90. package/dist/MobileTypeEventConfigModal-BxLympIO.js.map +0 -1
  91. package/dist/NotificationList-C3Vb_jKU.js.map +0 -1
  92. package/dist/OtherTypeEventConfigModal-BeG1GrUi.js.map +0 -1
  93. package/dist/RoleManagement-BPl2cE27.js.map +0 -1
  94. package/dist/ServerSyncModal-D_oFpv3C.js.map +0 -1
  95. package/dist/TableDetails-Cf_YfnY2.js.map +0 -1
  96. package/dist/dashboardLayoutUtils-Bt5HA96J.js +0 -265
  97. package/dist/dashboardLayoutUtils-Bt5HA96J.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"FeatureMenu-jl7-Tk6y.js","sources":["../src/views/Features/Skeletons/FeatureSkeletons.jsx","../src/views/Features/FeatureMenu.jsx"],"sourcesContent":["import PropTypes from \"prop-types\";\nimport React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { getUseSkeleton } from \"@/store/reducers/SkeletonReducer\";\n\nexport const FeatureMenuSkeleton = ({ children, isLoading }) => {\n const useSkeleton = useSelector(getUseSkeleton);\n if (!useSkeleton) {\n return children;\n }\n if (!isLoading) return children;\n return (\n <div className=\"flex flex-col mt-6\">\n <div className=\"w-full justify-between flex-wrap flex flex-row\">\n <div className=\"flex-wrap flex flex-row\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm h-[45px] w-[85px] mr-2 mb-2\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm h-[45px] w-[85px] mr-2 mb-2\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm h-[45px] w-[85px] mr-2 mb-2\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm h-[45px] w-[85px] mr-2 mb-2\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm h-[45px] w-[85px] mr-2 mb-2\"></div>\n </div>\n\n <div className=\"flex\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm h-[32px] w-[120px] m-0.5\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm h-[32px] w-[130px] m-0.5\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm h-[32px] w-[100px] m-0.5\"></div>\n </div>\n </div>\n </div>\n );\n};\n\nFeatureMenuSkeleton.propTypes = {\n children: PropTypes.any,\n isLoading: PropTypes.any,\n};\n\nexport const ManageFeatureSkeleton = ({ children, isLoading }) => {\n const useSkeleton = useSelector(getUseSkeleton);\n if (!useSkeleton) {\n return children;\n }\n if (!isLoading) return children;\n\n return (\n <div className=\"mt-8 ml-4\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[150px] h-[35px]\"></div>\n <div className=\"flex flex-col gap-4 my-3\">\n <div className=\"flex justify-between w-[870px]\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[130px] h-[40px]\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[520px] h-[40px]\"></div>\n </div>\n <div className=\"flex justify-between w-[870px]\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[130px] h-[40px]\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[520px] h-[40px]\"></div>\n </div>\n <div className=\"flex justify-between w-[870px]\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[200px] h-[40px]\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[30px] h-[40px]\"></div>\n </div>\n <div className=\"flex justify-between w-[870px]\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[130px] h-[40px]\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[520px] h-[40px] ml-8\"></div>\n </div>\n </div>\n <div className=\"flex justify-end gap-5 m-7\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[64px] h-[40px]\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[64px] h-[40px]\"></div>\n </div>\n </div>\n );\n};\n\nManageFeatureSkeleton.propTypes = {\n children: PropTypes.any,\n isLoading: PropTypes.any,\n};\n\nexport const SubMenuSkeleton = ({ children, isLoading }) => {\n const useSkeleton = useSelector(getUseSkeleton);\n if (!useSkeleton) {\n return children;\n }\n if (!isLoading) return children;\n\n return (\n <div className=\"w-full p-2\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm h-[40px] w-full mb-2\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm h-[60px] w-full mb-2\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm h-[280px] w-full\"></div>\n </div>\n );\n};\n\nSubMenuSkeleton.propTypes = {\n children: PropTypes.any,\n isLoading: PropTypes.any,\n};\n","import React, {\n lazy,\n Suspense,\n useEffect,\n useMemo,\n useState,\n startTransition,\n useCallback,\n} from \"react\";\nimport { useTranslateProvider } from \"@/common/languageTranslator/TranslationContext\";\nimport { getFeatureName } from \"../../services/Features\";\nimport { showToast } from \"@/common/toaster/toaster\";\nimport useTrackEvent from \"@/hooks/useTrackEvent\";\nconst AccessRights = lazy(() => import(\"./AccessRights\"));\nconst SubMenu = lazy(() => import(\"./SubMenu\"));\nimport { Button, Card, Tab, Tabs, Typography, useTheme } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid2\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useNavigate } from \"react-router-dom\";\nimport { Box } from \"@mui/system\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faGear } from \"@fortawesome/free-solid-svg-icons\";\nimport { FeatureMenuSkeleton } from \"./Skeletons/FeatureSkeletons\";\nimport {\n setSubMenuId,\n setSubMenuGroupName,\n setSubMenuFeatureVal,\n} from \"@/store/reducers/FeatureReducer\";\nimport { getUseSkeleton } from \"@/store/reducers/SkeletonReducer\";\nimport { getAssignedFeatures } from \"@/utils/feature\";\nimport GeneralUtil from \"@/common/services/util/GeneralUtil\";\n\n/**\n * The `FeatureMenu` component renders a menu or list of features in the application.\n * @module FeatureMenu\n * @returns {JSX.Element} The rendered `FeatureMenu` component.\n */\n\nexport default function FeatureMenu() {\n const useSkeleton = useSelector(getUseSkeleton);\n const theme = useTheme();\n const dispatch = useDispatch();\n const [Data, setData] = useState([]);\n const [selectedId, setSelectedId] = useState(0);\n const subMenuId = useSelector((state) => {\n return state?.FeatureReducer?.subMenuId;\n });\n const subMenuGroupName = useSelector(\n (state) => state?.FeatureReducer?.subMenuGroupName,\n );\n const subMenuFeatureVal = useSelector(\n (state) => state?.FeatureReducer?.subMenuFeatureVal,\n );\n const navigate = useNavigate();\n const { user } = useSelector((state) => state.Authenticate);\n const { translate } = useTranslateProvider();\n const [isLoading, setIsLoading] = useState(false);\n const trackEvent = useTrackEvent();\n const [isNewAPI, setIsNewAPI] = useState({});\n const [rights, setRights] = useState(null);\n const features = user?.features || {};\n const featureNames = useMemo(\n () => Object.keys(features).filter((key) => key !== \"mch\"),\n [features],\n );\n const panelBorderColor =\n theme.palette.mode === \"dark\" ? theme.palette.divider : theme.palette.grey[200];\n\n // 🧠 handle tab switch\n const handleTabChange = useCallback((e, newValue) => {\n setSelectedId(newValue);\n }, []);\n\n /**\n * Navigates to the '/ui/addfeature' route when called.\n * @function handleClick\n * @returns {void} This function does not return a value.\n */\n\n const handleFeature = useCallback(() => {\n trackEvent(\"button_click\", {\n button_name: \"featuremenu-add-button\",\n button_type: \"navigate\",\n button_id: \"featuremenu-add-button\",\n });\n navigate(\"addDynamicFeature\");\n }, [navigate, trackEvent]);\n\n // 📦 fetch feature data\n /**\n * Effect hook that runs when `selectedId` changes to load and set initial feature data.\n * @effect\n * @returns {void} This effect does not return a value.\n */\n useEffect(() => {\n async function getFeatures() {\n const { data } = await getAssignedFeatures(\"techo.manage.menu\");\n const parsedRights = JSON.parse(data);\n setRights(parsedRights);\n }\n getFeatures();\n }, []);\n\n useEffect(() => {\n const loadInitialData = async () => {\n if (!featureNames.length || selectedId >= featureNames.length) return;\n\n try {\n setIsLoading(true);\n const { data } = await getFeatureName(featureNames[selectedId]);\n const filterData = data.sort((a, b) => a.name?.localeCompare(b.name));\n startTransition(() => {\n setData(filterData);\n if (filterData.length > 0) {\n // prohibiting the feature to be selected if it is not available\n // dispatch(setSubMenuId(filterData[0].id));\n // dispatch(setSubMenuFeatureVal(filterData[0].isNewFeature));\n }\n setIsLoading(false);\n });\n } catch (error) {\n showToast({\n message: `Error : ${error?.response?.data?.message}`,\n type: \"error\",\n });\n setIsLoading(false);\n }\n };\n\n loadInitialData();\n }, [selectedId, featureNames]);\n\n // 🧠 Memoized SubMenu\n const SubMenuContent = useMemo(\n () => (\n <Suspense fallback={<FeatureMenuSkeleton />}>\n <SubMenu\n data-testid=\"featuremenu-submenu\"\n data={Data}\n subMenuId={subMenuId}\n setSubMenuId={(id) => {\n dispatch(setSubMenuId(id));\n }}\n setSubMenuGroupName={(name) => {\n dispatch(setSubMenuGroupName(name));\n }}\n setSubMenuFeatureVal={(val) => {\n dispatch(setSubMenuFeatureVal(val));\n }}\n type={featureNames[selectedId]}\n isLoading={isLoading}\n isNewAPI={isNewAPI}\n subMenuGroupName={subMenuGroupName}\n rights={rights}\n />\n </Suspense>\n ),\n [Data, subMenuId, selectedId, isLoading, featureNames, isNewAPI, rights],\n );\n\n // 🧠 Memoized AccessRights\n const AccessRightsContent = useMemo(\n () => (\n <Suspense\n fallback={\n <div className=\"p-2 text-sm text-gray-500\">\n Loading Access Rights...\n </div>\n }\n >\n <AccessRights\n data-testid=\"featuremenu-access-rights\"\n subMenuId={subMenuId}\n subMenuGroupName={subMenuGroupName}\n subMenuFeatureVal={subMenuFeatureVal}\n selectedTab={featureNames[selectedId]}\n parentLoading={isLoading}\n onNewAPIChange={setIsNewAPI}\n rights={rights}\n />\n </Suspense>\n ),\n [subMenuId, isLoading, rights],\n );\n\n return !isLoading && rights !== null && !GeneralUtil.hasCheckRights(rights?.[\"view.manage.featurelist\"]) ? (\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 Features\n </Typography>\n </Card>\n </Box>\n ) : (\n <Card variant=\"elevation\" className=\"p-3 mt-6 flex flex-col shadow-2xl\">\n <FeatureMenuSkeleton isLoading={isLoading}>\n <Grid className=\"w-full justify-between flex-wrap flex flex-row\">\n <Grid className=\"flex-wrap flex flex-row\">\n <Tabs\n value={selectedId}\n onChange={handleTabChange}\n variant=\"scrollable\"\n scrollButtons=\"auto\"\n >\n {featureNames.map((feat, index) => (\n <Tab\n key={feat}\n label={feat.toUpperCase()}\n data-testid={`featuremenu-button-${index}`}\n id={`feature-tab-${index}`}\n />\n ))}\n </Tabs>\n </Grid>\n <Grid className=\"flex gap-2 items-center ml-auto\">\n {GeneralUtil.hasCheckRights(rights?.['update.manage.featurelist']) && (\n <Button\n size=\"small\"\n className=\"mb-1 ml-0.5\"\n variant=\"contained\"\n onClick={() => navigate(\"/ui/medplat/report/all/groups\")}\n sx={{\n mt: { xs: \"15px\", md: \"0px\" },\n }}\n >\n {translate(\"Manage\")} {translate(\"Menu\")} {translate(\"Group\")}\n </Button>\n )}\n {GeneralUtil.hasCheckRights(rights?.['create.manage.featurelist']) && (\n <Button\n size=\"small\"\n data-testid=\"featuremenu-add-button\"\n className=\"mb-1 ml-0.5\"\n variant=\"contained\"\n onClick={handleFeature}\n sx={{\n mt: { xs: \"15px\", md: \"0px\" },\n }}\n >\n {translate(\"Add\")} {translate(\"Feature\")}\n </Button>\n )}\n </Grid>\n </Grid>\n </FeatureMenuSkeleton>\n\n <Grid container spacing={2} className=\"w-full py-3 rounded-sm\">\n <Grid\n size={{ xs: 12, sm: 12, md: 3 }}\n className=\"flex\"\n sx={{ border: `1px solid ${panelBorderColor}` }}\n >\n {SubMenuContent}\n </Grid>\n\n <Grid\n size={{ xs: 12, sm: 12, md: 9 }}\n className=\"flex flex-col\"\n sx={{ border: `1px solid ${panelBorderColor}` }}\n >\n {isLoading && useSkeleton ? (\n <div className=\"flex flex-col p-2\">\n <div className=\"bg-slate-200 dark:bg-slate-800 animate-pulse rounded-sm h-[30px] w-[180px]\" />\n </div>\n ) : (\n <Box className=\"flex items-center p-2\">\n <FontAwesomeIcon icon={faGear} size=\"lg\" className=\"mr-2\" />\n <Typography variant=\"body2\" className=\"font-bold font-sans pt-1\">\n {translate(\"Access Rights\")}\n </Typography>\n </Box>\n )}\n {subMenuId && AccessRightsContent}\n {!subMenuId && (\n <>\n <Typography\n variant=\"body2\"\n className=\"p-2\"\n data-testid=\"featuremenu-no-feature-selected\"\n sx={{\n textAlign: \"center\",\n position: \"relative\",\n top: \"10%\",\n fontSize: \"25px\",\n color: \"grey\",\n }}\n >\n Please select a feature!\n </Typography>\n </>\n )}\n </Grid>\n </Grid>\n </Card>\n );\n}\n"],"names":["FeatureMenuSkeleton","children","isLoading","useSelector","getUseSkeleton","jsxs","jsx","PropTypes","SubMenuSkeleton","AccessRights","lazy","SubMenu","FeatureMenu","useSkeleton","theme","useTheme","dispatch","useDispatch","Data","setData","useState","selectedId","setSelectedId","subMenuId","state","_a","subMenuGroupName","subMenuFeatureVal","navigate","useNavigate","user","translate","useTranslateProvider","setIsLoading","trackEvent","useTrackEvent","isNewAPI","setIsNewAPI","rights","setRights","features","featureNames","useMemo","key","panelBorderColor","handleTabChange","useCallback","e","newValue","handleFeature","useEffect","getFeatures","data","getAssignedFeatures","parsedRights","getFeatureName","filterData","a","b","startTransition","error","showToast","_b","SubMenuContent","Suspense","id","setSubMenuId","name","setSubMenuGroupName","val","setSubMenuFeatureVal","AccessRightsContent","GeneralUtil","Box","Card","Typography","Grid","Tabs","feat","index","Tab","Button","FontAwesomeIcon","faGear","Fragment"],"mappings":";;;;;;;;;;;;;;;;;;AAKO,MAAMA,IAAsB,CAAC,EAAE,UAAAC,GAAU,WAAAC,QAE1C,CADgBC,EAAYC,CAAc,KAI1C,CAACF,IAAkBD,sBAEpB,OAAA,EAAI,WAAU,sBACb,UAAA,gBAAAI,EAAC,OAAA,EAAI,WAAU,kDACb,UAAA;AAAA,EAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,2BACb,UAAA;AAAA,IAAA,gBAAAC,EAAC,OAAA,EAAI,WAAU,mEAAA,CAAmE;AAAA,IAClF,gBAAAA,EAAC,OAAA,EAAI,WAAU,mEAAA,CAAmE;AAAA,IAClF,gBAAAA,EAAC,OAAA,EAAI,WAAU,mEAAA,CAAmE;AAAA,IAClF,gBAAAA,EAAC,OAAA,EAAI,WAAU,mEAAA,CAAmE;AAAA,IAClF,gBAAAA,EAAC,OAAA,EAAI,WAAU,mEAAA,CAAmE;AAAA,EAAA,GACpF;AAAA,EAEA,gBAAAD,EAAC,OAAA,EAAI,WAAU,QACb,UAAA;AAAA,IAAA,gBAAAC,EAAC,OAAA,EAAI,WAAU,gEAAA,CAAgE;AAAA,IAC/E,gBAAAA,EAAC,OAAA,EAAI,WAAU,gEAAA,CAAgE;AAAA,IAC/E,gBAAAA,EAAC,OAAA,EAAI,WAAU,gEAAA,CAAgE;AAAA,EAAA,EAAA,CACjF;AAAA,EAAA,CACF,EAAA,CACF;AAIJN,EAAoB,YAAY;AAAA,EAC9B,UAAUO,EAAU;AAAA,EACpB,WAAWA,EAAU;AACvB;AAuCYA,EAAU,KACTA,EAAU;AAGhB,MAAMC,KAAkB,CAAC,EAAE,UAAAP,GAAU,WAAAC,QAEtC,CADgBC,EAAYC,CAAc,KAI1C,CAACF,IAAkBD,IAGrB,gBAAAI,EAAC,OAAA,EAAI,WAAU,cACb,UAAA;AAAA,EAAA,gBAAAC,EAAC,OAAA,EAAI,WAAU,4DAAA,CAA4D;AAAA,EAC3E,gBAAAA,EAAC,OAAA,EAAI,WAAU,4DAAA,CAA4D;AAAA,EAC3E,gBAAAA,EAAC,OAAA,EAAI,WAAU,wDAAA,CAAwD;AAAA,GACzE;AAIJE,GAAgB,YAAY;AAAA,EAC1B,UAAUD,EAAU;AAAA,EACpB,WAAWA,EAAU;AACvB;ACpFA,MAAME,KAAeC,EAAK,MAAM,OAAO,4BAAgB,CAAC,GAClDC,KAAUD,EAAK,MAAM,OAAO,uBAAW,CAAC;AAwB9C,SAAwBE,KAAc;AACpC,QAAMC,IAAcV,EAAYC,CAAc,GACxCU,IAAQC,GAAA,GACRC,IAAWC,GAAA,GACX,CAACC,GAAMC,CAAO,IAAIC,EAAS,CAAA,CAAE,GAC7B,CAACC,GAAYC,CAAa,IAAIF,EAAS,CAAC,GACxCG,IAAYpB,EAAY,CAACqB,MAAU;;AACvC,YAAOC,IAAAD,KAAA,gBAAAA,EAAO,mBAAP,gBAAAC,EAAuB;AAAA,EAChC,CAAC,GACKC,IAAmBvB;AAAA,IACvB,CAACqB,MAAA;;AAAU,cAAAC,IAAAD,KAAA,gBAAAA,EAAO,mBAAP,gBAAAC,EAAuB;AAAA;AAAA,EAAA,GAE9BE,IAAoBxB;AAAA,IACxB,CAACqB,MAAA;;AAAU,cAAAC,IAAAD,KAAA,gBAAAA,EAAO,mBAAP,gBAAAC,EAAuB;AAAA;AAAA,EAAA,GAE9BG,IAAWC,GAAA,GACX,EAAE,MAAAC,EAAA,IAAS3B,EAAY,CAACqB,MAAUA,EAAM,YAAY,GACpD,EAAE,WAAAO,EAAA,IAAcC,GAAA,GAChB,CAAC9B,GAAW+B,CAAY,IAAIb,EAAS,EAAK,GAC1Cc,IAAaC,GAAA,GACb,CAACC,GAAUC,CAAW,IAAIjB,EAAS,CAAA,CAAE,GACrC,CAACkB,GAAQC,CAAS,IAAInB,EAAS,IAAI,GACnCoB,KAAWV,KAAA,gBAAAA,EAAM,aAAY,CAAA,GAC7BW,IAAeC;AAAA,IACnB,MAAM,OAAO,KAAKF,CAAQ,EAAE,OAAO,CAACG,MAAQA,MAAQ,KAAK;AAAA,IACzD,CAACH,CAAQ;AAAA,EAAA,GAELI,IACJ9B,EAAM,QAAQ,SAAS,SAASA,EAAM,QAAQ,UAAUA,EAAM,QAAQ,KAAK,GAAG,GAG1E+B,IAAkBC,EAAY,CAACC,GAAGC,MAAa;AACnD,IAAA1B,EAAc0B,CAAQ;AAAA,EACxB,GAAG,CAAA,CAAE,GAQCC,IAAgBH,EAAY,MAAM;AACtC,IAAAZ,EAAW,gBAAgB;AAAA,MACzB,aAAa;AAAA,MACb,aAAa;AAAA,MACb,WAAW;AAAA,IAAA,CACZ,GACDN,EAAS,mBAAmB;AAAA,EAC9B,GAAG,CAACA,GAAUM,CAAU,CAAC;AAQzB,EAAAgB,EAAU,MAAM;AACd,mBAAeC,IAAc;AACzB,YAAM,EAAE,MAAAC,EAAA,IAAS,MAAMC,GAAoB,mBAAmB,GACxDC,IAAe,KAAK,MAAMF,CAAI;AACpC,MAAAb,EAAUe,CAAY;AAAA,IAC1B;AACA,IAAAH,EAAA;AAAA,EACF,GAAG,CAAA,CAAE,GAELD,EAAU,MAAM;AA0Bd,KAzBwB,YAAY;;AAClC,UAAI,GAACT,EAAa,UAAUpB,KAAcoB,EAAa;AAEvD,YAAI;AACF,UAAAR,EAAa,EAAI;AACjB,gBAAM,EAAE,MAAAmB,EAAA,IAAS,MAAMG,GAAed,EAAapB,CAAU,CAAC,GACxDmC,IAAaJ,EAAK,KAAK,CAACK,GAAGC;;AAAM,oBAAAjC,IAAAgC,EAAE,SAAF,gBAAAhC,EAAQ,cAAciC,EAAE;AAAA,WAAK;AACpE,UAAAC,GAAgB,MAAM;AACpB,YAAAxC,EAAQqC,CAAU,GACdA,EAAW,SAAS,GAKxBvB,EAAa,EAAK;AAAA,UACpB,CAAC;AAAA,QACH,SAAS2B,GAAO;AACd,UAAAC,GAAU;AAAA,YACR,SAAS,YAAWC,KAAArC,IAAAmC,KAAA,gBAAAA,EAAO,aAAP,gBAAAnC,EAAiB,SAAjB,gBAAAqC,EAAuB,OAAO;AAAA,YAClD,MAAM;AAAA,UAAA,CACP,GACD7B,EAAa,EAAK;AAAA,QACpB;AAAA,IACF,GAEA;AAAA,EACF,GAAG,CAACZ,GAAYoB,CAAY,CAAC;AAG7B,QAAMsB,IAAiBrB;AAAA,IACrB,MACE,gBAAApC,EAAC0D,GAAA,EAAS,UAAU,gBAAA1D,EAACN,KAAoB,GACvC,UAAA,gBAAAM;AAAA,MAACK;AAAA,MAAA;AAAA,QACC,eAAY;AAAA,QACZ,MAAMO;AAAA,QACN,WAAAK;AAAA,QACA,cAAc,CAAC0C,MAAO;AACpB,UAAAjD,EAASkD,GAAaD,CAAE,CAAC;AAAA,QAC3B;AAAA,QACA,qBAAqB,CAACE,MAAS;AAC7B,UAAAnD,EAASoD,GAAoBD,CAAI,CAAC;AAAA,QACpC;AAAA,QACA,sBAAsB,CAACE,MAAQ;AAC7B,UAAArD,EAASsD,GAAqBD,CAAG,CAAC;AAAA,QACpC;AAAA,QACA,MAAM5B,EAAapB,CAAU;AAAA,QAC7B,WAAAnB;AAAA,QACA,UAAAkC;AAAA,QACA,kBAAAV;AAAA,QACA,QAAAY;AAAA,MAAA;AAAA,IAAA,GAEJ;AAAA,IAEF,CAACpB,GAAMK,GAAWF,GAAYnB,GAAWuC,GAAcL,GAAUE,CAAM;AAAA,EAAA,GAInEiC,IAAsB7B;AAAA,IAC1B,MACE,gBAAApC;AAAA,MAAC0D;AAAA,MAAA;AAAA,QACC,UACE,gBAAA1D,EAAC,OAAA,EAAI,WAAU,6BAA4B,UAAA,4BAE3C;AAAA,QAGF,UAAA,gBAAAA;AAAA,UAACG;AAAA,UAAA;AAAA,YACC,eAAY;AAAA,YACZ,WAAAc;AAAA,YACA,kBAAAG;AAAA,YACA,mBAAAC;AAAA,YACA,aAAac,EAAapB,CAAU;AAAA,YACpC,eAAenB;AAAA,YACf,gBAAgBmC;AAAA,YAChB,QAAAC;AAAA,UAAA;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,IAGJ,CAACf,GAAWrB,GAAWoC,CAAM;AAAA,EAAA;AAG/B,SAAO,CAACpC,KAAaoC,MAAW,QAAQ,CAACkC,EAAY,eAAelC,KAAA,gBAAAA,EAAS,0BAA0B,IACnG,gBAAAhC,EAACmE,GAAA,EAAI,WAAU,oDACb,UAAA,gBAAAnE;AAAA,IAACoE;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MAEV,4BAACC,GAAA,EAAW,SAAQ,MAAK,WAAU,mBAAkB,UAAA,4CAAA,CAErD;AAAA,IAAA;AAAA,EAAA,GAEJ,IAEF,gBAAAtE,EAACqE,KAAK,SAAQ,aAAY,WAAU,qCAClC,UAAA;AAAA,IAAA,gBAAApE,EAACN,GAAA,EAAoB,WAAAE,GACnB,UAAA,gBAAAG,EAACuE,GAAA,EAAK,WAAU,kDACd,UAAA;AAAA,MAAA,gBAAAtE,EAACsE,GAAA,EAAK,WAAU,2BACd,UAAA,gBAAAtE;AAAA,QAACuE;AAAA,QAAA;AAAA,UACC,OAAOxD;AAAA,UACP,UAAUwB;AAAA,UACV,SAAQ;AAAA,UACR,eAAc;AAAA,UAEb,UAAAJ,EAAa,IAAI,CAACqC,GAAMC,MACvB,gBAAAzE;AAAA,YAAC0E;AAAA,YAAA;AAAA,cAEC,OAAOF,EAAK,YAAA;AAAA,cACZ,eAAa,sBAAsBC,CAAK;AAAA,cACxC,IAAI,eAAeA,CAAK;AAAA,YAAA;AAAA,YAHnBD;AAAA,UAAA,CAKR;AAAA,QAAA;AAAA,MAAA,GAEL;AAAA,MACA,gBAAAzE,EAACuE,GAAA,EAAK,WAAU,mCACb,UAAA;AAAA,QAAAJ,EAAY,eAAelC,KAAA,gBAAAA,EAAS,4BAA4B,KAC/D,gBAAAjC;AAAA,UAAC4E;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,WAAU;AAAA,YACV,SAAQ;AAAA,YACR,SAAS,MAAMrD,EAAS,+BAA+B;AAAA,YACvD,IAAI;AAAA,cACF,IAAI,EAAE,IAAI,QAAQ,IAAI,MAAA;AAAA,YAAM;AAAA,YAG7B,UAAA;AAAA,cAAAG,EAAU,QAAQ;AAAA,cAAE;AAAA,cAAEA,EAAU,MAAM;AAAA,cAAE;AAAA,cAAEA,EAAU,OAAO;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAG/DyC,EAAY,eAAelC,KAAA,gBAAAA,EAAS,4BAA4B,KAC/D,gBAAAjC;AAAA,UAAC4E;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,eAAY;AAAA,YACZ,WAAU;AAAA,YACV,SAAQ;AAAA,YACR,SAAShC;AAAA,YACT,IAAI;AAAA,cACF,IAAI,EAAE,IAAI,QAAQ,IAAI,MAAA;AAAA,YAAM;AAAA,YAG7B,UAAA;AAAA,cAAAlB,EAAU,KAAK;AAAA,cAAE;AAAA,cAAEA,EAAU,SAAS;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACzC,EAAA,CAEJ;AAAA,IAAA,EAAA,CACF,EAAA,CACF;AAAA,sBAEC6C,GAAA,EAAK,WAAS,IAAC,SAAS,GAAG,WAAU,0BACpC,UAAA;AAAA,MAAA,gBAAAtE;AAAA,QAACsE;AAAA,QAAA;AAAA,UACC,MAAM,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,EAAA;AAAA,UAC5B,WAAU;AAAA,UACV,IAAI,EAAE,QAAQ,aAAahC,CAAgB,GAAA;AAAA,UAE1C,UAAAmB;AAAA,QAAA;AAAA,MAAA;AAAA,MAGH,gBAAA1D;AAAA,QAACuE;AAAA,QAAA;AAAA,UACC,MAAM,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,EAAA;AAAA,UAC5B,WAAU;AAAA,UACV,IAAI,EAAE,QAAQ,aAAahC,CAAgB,GAAA;AAAA,UAE1C,UAAA;AAAA,YAAA1C,KAAaW,IACZ,gBAAAP,EAAC,OAAA,EAAI,WAAU,qBACb,UAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,6EAAA,CAA6E,EAAA,CAC9F,IAEA,gBAAAD,EAACoE,GAAA,EAAI,WAAU,yBACb,UAAA;AAAA,cAAA,gBAAAnE,EAAC4E,MAAgB,MAAMC,IAAQ,MAAK,MAAK,WAAU,QAAO;AAAA,cAC1D,gBAAA7E,EAACqE,KAAW,SAAQ,SAAQ,WAAU,4BACnC,UAAA5C,EAAU,eAAe,EAAA,CAC5B;AAAA,YAAA,GACF;AAAA,YAEDR,KAAagD;AAAA,YACb,CAAChD,KACA,gBAAAjB,EAAA8E,GAAA,EACE,UAAA,gBAAA9E;AAAA,cAACqE;AAAA,cAAA;AAAA,gBACC,SAAQ;AAAA,gBACR,WAAU;AAAA,gBACV,eAAY;AAAA,gBACZ,IAAI;AAAA,kBACF,WAAW;AAAA,kBACX,UAAU;AAAA,kBACV,KAAK;AAAA,kBACL,UAAU;AAAA,kBACV,OAAO;AAAA,gBAAA;AAAA,gBAEV,UAAA;AAAA,cAAA;AAAA,YAAA,EAED,CACF;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAEJ,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;;;;;"}
1
+ {"version":3,"file":"FeatureMenu-C3503UIX.js","sources":["../src/views/Features/Skeletons/FeatureSkeletons.jsx","../src/views/Features/FeatureMenu.jsx"],"sourcesContent":["import PropTypes from \"prop-types\";\nimport React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { getUseSkeleton } from \"@/store/reducers/SkeletonReducer\";\n\nexport const FeatureMenuSkeleton = ({ children, isLoading }) => {\n const useSkeleton = useSelector(getUseSkeleton);\n if (!useSkeleton) {\n return children;\n }\n if (!isLoading) return children;\n return (\n <div className=\"flex flex-col mt-6\">\n <div className=\"w-full justify-between flex-wrap flex flex-row\">\n <div className=\"flex-wrap flex flex-row\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm h-[45px] w-[85px] mr-2 mb-2\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm h-[45px] w-[85px] mr-2 mb-2\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm h-[45px] w-[85px] mr-2 mb-2\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm h-[45px] w-[85px] mr-2 mb-2\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm h-[45px] w-[85px] mr-2 mb-2\"></div>\n </div>\n\n <div className=\"flex\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm h-[32px] w-[120px] m-0.5\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm h-[32px] w-[130px] m-0.5\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm h-[32px] w-[100px] m-0.5\"></div>\n </div>\n </div>\n </div>\n );\n};\n\nFeatureMenuSkeleton.propTypes = {\n children: PropTypes.any,\n isLoading: PropTypes.any,\n};\n\nexport const ManageFeatureSkeleton = ({ children, isLoading }) => {\n const useSkeleton = useSelector(getUseSkeleton);\n if (!useSkeleton) {\n return children;\n }\n if (!isLoading) return children;\n\n return (\n <div className=\"mt-8 ml-4\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[150px] h-[35px]\"></div>\n <div className=\"flex flex-col gap-4 my-3\">\n <div className=\"flex justify-between w-[870px]\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[130px] h-[40px]\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[520px] h-[40px]\"></div>\n </div>\n <div className=\"flex justify-between w-[870px]\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[130px] h-[40px]\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[520px] h-[40px]\"></div>\n </div>\n <div className=\"flex justify-between w-[870px]\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[200px] h-[40px]\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[30px] h-[40px]\"></div>\n </div>\n <div className=\"flex justify-between w-[870px]\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[130px] h-[40px]\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[520px] h-[40px] ml-8\"></div>\n </div>\n </div>\n <div className=\"flex justify-end gap-5 m-7\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[64px] h-[40px]\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm w-[64px] h-[40px]\"></div>\n </div>\n </div>\n );\n};\n\nManageFeatureSkeleton.propTypes = {\n children: PropTypes.any,\n isLoading: PropTypes.any,\n};\n\nexport const SubMenuSkeleton = ({ children, isLoading }) => {\n const useSkeleton = useSelector(getUseSkeleton);\n if (!useSkeleton) {\n return children;\n }\n if (!isLoading) return children;\n\n return (\n <div className=\"w-full p-2\">\n <div className=\"bg-gray-300 animate-pulse rounded-sm h-[40px] w-full mb-2\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm h-[60px] w-full mb-2\"></div>\n <div className=\"bg-gray-300 animate-pulse rounded-sm h-[280px] w-full\"></div>\n </div>\n );\n};\n\nSubMenuSkeleton.propTypes = {\n children: PropTypes.any,\n isLoading: PropTypes.any,\n};\n","import React, {\n lazy,\n Suspense,\n useEffect,\n useMemo,\n useState,\n startTransition,\n useCallback,\n} from \"react\";\nimport { useTranslateProvider } from \"@/common/languageTranslator/TranslationContext\";\nimport { getFeatureName } from \"../../services/Features\";\nimport { showToast } from \"@/common/toaster/toaster\";\nimport useTrackEvent from \"@/hooks/useTrackEvent\";\nconst AccessRights = lazy(() => import(\"./AccessRights\"));\nconst SubMenu = lazy(() => import(\"./SubMenu\"));\nimport { Button, Card, Tab, Tabs, Typography, useTheme } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid2\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useNavigate } from \"react-router-dom\";\nimport { Box } from \"@mui/system\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faGear } from \"@fortawesome/free-solid-svg-icons\";\nimport { FeatureMenuSkeleton } from \"./Skeletons/FeatureSkeletons\";\nimport {\n setSubMenuId,\n setSubMenuGroupName,\n setSubMenuFeatureVal,\n} from \"@/store/reducers/FeatureReducer\";\nimport { getUseSkeleton } from \"@/store/reducers/SkeletonReducer\";\nimport { getAssignedFeatures } from \"@/utils/feature\";\nimport GeneralUtil from \"@/common/services/util/GeneralUtil\";\n\n/**\n * The `FeatureMenu` component renders a menu or list of features in the application.\n * @module FeatureMenu\n * @returns {JSX.Element} The rendered `FeatureMenu` component.\n */\n\nexport default function FeatureMenu() {\n const useSkeleton = useSelector(getUseSkeleton);\n const theme = useTheme();\n const dispatch = useDispatch();\n const [Data, setData] = useState([]);\n const [selectedId, setSelectedId] = useState(0);\n const subMenuId = useSelector((state) => {\n return state?.FeatureReducer?.subMenuId;\n });\n const subMenuGroupName = useSelector(\n (state) => state?.FeatureReducer?.subMenuGroupName,\n );\n const subMenuFeatureVal = useSelector(\n (state) => state?.FeatureReducer?.subMenuFeatureVal,\n );\n const navigate = useNavigate();\n const { user } = useSelector((state) => state.Authenticate);\n const { translate } = useTranslateProvider();\n const [isLoading, setIsLoading] = useState(false);\n const trackEvent = useTrackEvent();\n const [isNewAPI, setIsNewAPI] = useState({});\n const [rights, setRights] = useState(null);\n const features = user?.features || {};\n const featureNames = useMemo(\n () => Object.keys(features).filter((key) => key !== \"mch\"),\n [features],\n );\n const panelBorderColor =\n theme.palette.mode === \"dark\" ? theme.palette.divider : theme.palette.grey[200];\n\n // 🧠 handle tab switch\n const handleTabChange = useCallback((e, newValue) => {\n setSelectedId(newValue);\n }, []);\n\n /**\n * Navigates to the '/ui/addfeature' route when called.\n * @function handleClick\n * @returns {void} This function does not return a value.\n */\n\n const handleFeature = useCallback(() => {\n trackEvent(\"button_click\", {\n button_name: \"featuremenu-add-button\",\n button_type: \"navigate\",\n button_id: \"featuremenu-add-button\",\n });\n navigate(\"addDynamicFeature\");\n }, [navigate, trackEvent]);\n\n // 📦 fetch feature data\n /**\n * Effect hook that runs when `selectedId` changes to load and set initial feature data.\n * @effect\n * @returns {void} This effect does not return a value.\n */\n useEffect(() => {\n async function getFeatures() {\n const { data } = await getAssignedFeatures(\"techo.manage.menu\");\n const parsedRights = JSON.parse(data);\n setRights(parsedRights);\n }\n getFeatures();\n }, []);\n\n useEffect(() => {\n const loadInitialData = async () => {\n if (!featureNames.length || selectedId >= featureNames.length) return;\n\n try {\n setIsLoading(true);\n const { data } = await getFeatureName(featureNames[selectedId]);\n const filterData = data.sort((a, b) => a.name?.localeCompare(b.name));\n startTransition(() => {\n setData(filterData);\n if (filterData.length > 0) {\n // prohibiting the feature to be selected if it is not available\n // dispatch(setSubMenuId(filterData[0].id));\n // dispatch(setSubMenuFeatureVal(filterData[0].isNewFeature));\n }\n setIsLoading(false);\n });\n } catch (error) {\n showToast({\n message: `Error : ${error?.response?.data?.message}`,\n type: \"error\",\n });\n setIsLoading(false);\n }\n };\n\n loadInitialData();\n }, [selectedId, featureNames]);\n\n // 🧠 Memoized SubMenu\n const SubMenuContent = useMemo(\n () => (\n <Suspense fallback={<FeatureMenuSkeleton />}>\n <SubMenu\n data-testid=\"featuremenu-submenu\"\n data={Data}\n subMenuId={subMenuId}\n setSubMenuId={(id) => {\n dispatch(setSubMenuId(id));\n }}\n setSubMenuGroupName={(name) => {\n dispatch(setSubMenuGroupName(name));\n }}\n setSubMenuFeatureVal={(val) => {\n dispatch(setSubMenuFeatureVal(val));\n }}\n type={featureNames[selectedId]}\n isLoading={isLoading}\n isNewAPI={isNewAPI}\n subMenuGroupName={subMenuGroupName}\n rights={rights}\n />\n </Suspense>\n ),\n [Data, subMenuId, selectedId, isLoading, featureNames, isNewAPI, rights],\n );\n\n // 🧠 Memoized AccessRights\n const AccessRightsContent = useMemo(\n () => (\n <Suspense\n fallback={\n <div className=\"p-2 text-sm text-gray-500\">\n Loading Access Rights...\n </div>\n }\n >\n <AccessRights\n data-testid=\"featuremenu-access-rights\"\n subMenuId={subMenuId}\n subMenuGroupName={subMenuGroupName}\n subMenuFeatureVal={subMenuFeatureVal}\n selectedTab={featureNames[selectedId]}\n parentLoading={isLoading}\n onNewAPIChange={setIsNewAPI}\n rights={rights}\n />\n </Suspense>\n ),\n [subMenuId, isLoading, rights],\n );\n\n return !isLoading && rights !== null && !GeneralUtil.hasCheckRights(rights?.[\"view.manage.featurelist\"]) ? (\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 Features\n </Typography>\n </Card>\n </Box>\n ) : (\n <Card variant=\"elevation\" className=\"p-3 mt-6 flex flex-col shadow-2xl\">\n <FeatureMenuSkeleton isLoading={isLoading}>\n <Grid className=\"w-full justify-between flex-wrap flex flex-row\">\n <Grid className=\"flex-wrap flex flex-row\">\n <Tabs\n value={selectedId}\n onChange={handleTabChange}\n variant=\"scrollable\"\n scrollButtons=\"auto\"\n >\n {featureNames.map((feat, index) => (\n <Tab\n key={feat}\n label={feat.toUpperCase()}\n data-testid={`featuremenu-button-${index}`}\n id={`feature-tab-${index}`}\n />\n ))}\n </Tabs>\n </Grid>\n <Grid className=\"flex gap-2 items-center ml-auto\">\n {GeneralUtil.hasCheckRights(rights?.['update.manage.featurelist']) && (\n <Button\n size=\"small\"\n className=\"mb-1 ml-0.5\"\n variant=\"contained\"\n onClick={() => navigate(\"/ui/medplat/report/all/groups\")}\n sx={{\n mt: { xs: \"15px\", md: \"0px\" },\n }}\n >\n {translate(\"Manage\")} {translate(\"Menu\")} {translate(\"Group\")}\n </Button>\n )}\n {GeneralUtil.hasCheckRights(rights?.['create.manage.featurelist']) && (\n <Button\n size=\"small\"\n data-testid=\"featuremenu-add-button\"\n className=\"mb-1 ml-0.5\"\n variant=\"contained\"\n onClick={handleFeature}\n sx={{\n mt: { xs: \"15px\", md: \"0px\" },\n }}\n >\n {translate(\"Add\")} {translate(\"Feature\")}\n </Button>\n )}\n </Grid>\n </Grid>\n </FeatureMenuSkeleton>\n\n <Grid container spacing={2} className=\"w-full py-3 rounded-sm\">\n <Grid\n size={{ xs: 12, sm: 12, md: 3 }}\n className=\"flex\"\n sx={{ border: `1px solid ${panelBorderColor}` }}\n >\n {SubMenuContent}\n </Grid>\n\n <Grid\n size={{ xs: 12, sm: 12, md: 9 }}\n className=\"flex flex-col\"\n sx={{ border: `1px solid ${panelBorderColor}` }}\n >\n {isLoading && useSkeleton ? (\n <div className=\"flex flex-col p-2\">\n <div className=\"bg-slate-200 dark:bg-slate-800 animate-pulse rounded-sm h-[30px] w-[180px]\" />\n </div>\n ) : (\n <Box className=\"flex items-center p-2\">\n <FontAwesomeIcon icon={faGear} size=\"lg\" className=\"mr-2\" />\n <Typography variant=\"body2\" className=\"font-bold font-sans pt-1\">\n {translate(\"Access Rights\")}\n </Typography>\n </Box>\n )}\n {subMenuId && AccessRightsContent}\n {!subMenuId && (\n <>\n <Typography\n variant=\"body2\"\n className=\"p-2\"\n data-testid=\"featuremenu-no-feature-selected\"\n sx={{\n textAlign: \"center\",\n position: \"relative\",\n top: \"10%\",\n fontSize: \"25px\",\n color: \"grey\",\n }}\n >\n Please select a feature!\n </Typography>\n </>\n )}\n </Grid>\n </Grid>\n </Card>\n );\n}\n"],"names":["FeatureMenuSkeleton","children","isLoading","useSelector","getUseSkeleton","jsxs","jsx","PropTypes","SubMenuSkeleton","AccessRights","lazy","SubMenu","FeatureMenu","useSkeleton","theme","useTheme","dispatch","useDispatch","Data","setData","useState","selectedId","setSelectedId","subMenuId","state","_a","subMenuGroupName","subMenuFeatureVal","navigate","useNavigate","user","translate","useTranslateProvider","setIsLoading","trackEvent","useTrackEvent","isNewAPI","setIsNewAPI","rights","setRights","features","featureNames","useMemo","key","panelBorderColor","handleTabChange","useCallback","e","newValue","handleFeature","useEffect","getFeatures","data","getAssignedFeatures","parsedRights","getFeatureName","filterData","a","b","startTransition","error","showToast","_b","SubMenuContent","Suspense","id","setSubMenuId","name","setSubMenuGroupName","val","setSubMenuFeatureVal","AccessRightsContent","GeneralUtil","Box","Card","Typography","Grid","Tabs","feat","index","Tab","Button","FontAwesomeIcon","faGear","Fragment"],"mappings":";;;;;;;;;;;;;;;;;;AAKO,MAAMA,IAAsB,CAAC,EAAE,UAAAC,GAAU,WAAAC,QAE1C,CADgBC,EAAYC,CAAc,KAI1C,CAACF,IAAkBD,sBAEpB,OAAA,EAAI,WAAU,sBACb,UAAA,gBAAAI,EAAC,OAAA,EAAI,WAAU,kDACb,UAAA;AAAA,EAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,2BACb,UAAA;AAAA,IAAA,gBAAAC,EAAC,OAAA,EAAI,WAAU,mEAAA,CAAmE;AAAA,IAClF,gBAAAA,EAAC,OAAA,EAAI,WAAU,mEAAA,CAAmE;AAAA,IAClF,gBAAAA,EAAC,OAAA,EAAI,WAAU,mEAAA,CAAmE;AAAA,IAClF,gBAAAA,EAAC,OAAA,EAAI,WAAU,mEAAA,CAAmE;AAAA,IAClF,gBAAAA,EAAC,OAAA,EAAI,WAAU,mEAAA,CAAmE;AAAA,EAAA,GACpF;AAAA,EAEA,gBAAAD,EAAC,OAAA,EAAI,WAAU,QACb,UAAA;AAAA,IAAA,gBAAAC,EAAC,OAAA,EAAI,WAAU,gEAAA,CAAgE;AAAA,IAC/E,gBAAAA,EAAC,OAAA,EAAI,WAAU,gEAAA,CAAgE;AAAA,IAC/E,gBAAAA,EAAC,OAAA,EAAI,WAAU,gEAAA,CAAgE;AAAA,EAAA,EAAA,CACjF;AAAA,EAAA,CACF,EAAA,CACF;AAIJN,EAAoB,YAAY;AAAA,EAC9B,UAAUO,EAAU;AAAA,EACpB,WAAWA,EAAU;AACvB;AAuCYA,EAAU,KACTA,EAAU;AAGhB,MAAMC,KAAkB,CAAC,EAAE,UAAAP,GAAU,WAAAC,QAEtC,CADgBC,EAAYC,CAAc,KAI1C,CAACF,IAAkBD,IAGrB,gBAAAI,EAAC,OAAA,EAAI,WAAU,cACb,UAAA;AAAA,EAAA,gBAAAC,EAAC,OAAA,EAAI,WAAU,4DAAA,CAA4D;AAAA,EAC3E,gBAAAA,EAAC,OAAA,EAAI,WAAU,4DAAA,CAA4D;AAAA,EAC3E,gBAAAA,EAAC,OAAA,EAAI,WAAU,wDAAA,CAAwD;AAAA,GACzE;AAIJE,GAAgB,YAAY;AAAA,EAC1B,UAAUD,EAAU;AAAA,EACpB,WAAWA,EAAU;AACvB;ACpFA,MAAME,KAAeC,EAAK,MAAM,OAAO,4BAAgB,CAAC,GAClDC,KAAUD,EAAK,MAAM,OAAO,uBAAW,CAAC;AAwB9C,SAAwBE,KAAc;AACpC,QAAMC,IAAcV,EAAYC,CAAc,GACxCU,IAAQC,GAAA,GACRC,IAAWC,GAAA,GACX,CAACC,GAAMC,CAAO,IAAIC,EAAS,CAAA,CAAE,GAC7B,CAACC,GAAYC,CAAa,IAAIF,EAAS,CAAC,GACxCG,IAAYpB,EAAY,CAACqB,MAAU;;AACvC,YAAOC,IAAAD,KAAA,gBAAAA,EAAO,mBAAP,gBAAAC,EAAuB;AAAA,EAChC,CAAC,GACKC,IAAmBvB;AAAA,IACvB,CAACqB,MAAA;;AAAU,cAAAC,IAAAD,KAAA,gBAAAA,EAAO,mBAAP,gBAAAC,EAAuB;AAAA;AAAA,EAAA,GAE9BE,IAAoBxB;AAAA,IACxB,CAACqB,MAAA;;AAAU,cAAAC,IAAAD,KAAA,gBAAAA,EAAO,mBAAP,gBAAAC,EAAuB;AAAA;AAAA,EAAA,GAE9BG,IAAWC,GAAA,GACX,EAAE,MAAAC,EAAA,IAAS3B,EAAY,CAACqB,MAAUA,EAAM,YAAY,GACpD,EAAE,WAAAO,EAAA,IAAcC,GAAA,GAChB,CAAC9B,GAAW+B,CAAY,IAAIb,EAAS,EAAK,GAC1Cc,IAAaC,GAAA,GACb,CAACC,GAAUC,CAAW,IAAIjB,EAAS,CAAA,CAAE,GACrC,CAACkB,GAAQC,CAAS,IAAInB,EAAS,IAAI,GACnCoB,KAAWV,KAAA,gBAAAA,EAAM,aAAY,CAAA,GAC7BW,IAAeC;AAAA,IACnB,MAAM,OAAO,KAAKF,CAAQ,EAAE,OAAO,CAACG,MAAQA,MAAQ,KAAK;AAAA,IACzD,CAACH,CAAQ;AAAA,EAAA,GAELI,IACJ9B,EAAM,QAAQ,SAAS,SAASA,EAAM,QAAQ,UAAUA,EAAM,QAAQ,KAAK,GAAG,GAG1E+B,IAAkBC,EAAY,CAACC,GAAGC,MAAa;AACnD,IAAA1B,EAAc0B,CAAQ;AAAA,EACxB,GAAG,CAAA,CAAE,GAQCC,IAAgBH,EAAY,MAAM;AACtC,IAAAZ,EAAW,gBAAgB;AAAA,MACzB,aAAa;AAAA,MACb,aAAa;AAAA,MACb,WAAW;AAAA,IAAA,CACZ,GACDN,EAAS,mBAAmB;AAAA,EAC9B,GAAG,CAACA,GAAUM,CAAU,CAAC;AAQzB,EAAAgB,EAAU,MAAM;AACd,mBAAeC,IAAc;AACzB,YAAM,EAAE,MAAAC,EAAA,IAAS,MAAMC,GAAoB,mBAAmB,GACxDC,IAAe,KAAK,MAAMF,CAAI;AACpC,MAAAb,EAAUe,CAAY;AAAA,IAC1B;AACA,IAAAH,EAAA;AAAA,EACF,GAAG,CAAA,CAAE,GAELD,EAAU,MAAM;AA0Bd,KAzBwB,YAAY;;AAClC,UAAI,GAACT,EAAa,UAAUpB,KAAcoB,EAAa;AAEvD,YAAI;AACF,UAAAR,EAAa,EAAI;AACjB,gBAAM,EAAE,MAAAmB,EAAA,IAAS,MAAMG,GAAed,EAAapB,CAAU,CAAC,GACxDmC,IAAaJ,EAAK,KAAK,CAACK,GAAGC;;AAAM,oBAAAjC,IAAAgC,EAAE,SAAF,gBAAAhC,EAAQ,cAAciC,EAAE;AAAA,WAAK;AACpE,UAAAC,GAAgB,MAAM;AACpB,YAAAxC,EAAQqC,CAAU,GACdA,EAAW,SAAS,GAKxBvB,EAAa,EAAK;AAAA,UACpB,CAAC;AAAA,QACH,SAAS2B,GAAO;AACd,UAAAC,GAAU;AAAA,YACR,SAAS,YAAWC,KAAArC,IAAAmC,KAAA,gBAAAA,EAAO,aAAP,gBAAAnC,EAAiB,SAAjB,gBAAAqC,EAAuB,OAAO;AAAA,YAClD,MAAM;AAAA,UAAA,CACP,GACD7B,EAAa,EAAK;AAAA,QACpB;AAAA,IACF,GAEA;AAAA,EACF,GAAG,CAACZ,GAAYoB,CAAY,CAAC;AAG7B,QAAMsB,IAAiBrB;AAAA,IACrB,MACE,gBAAApC,EAAC0D,GAAA,EAAS,UAAU,gBAAA1D,EAACN,KAAoB,GACvC,UAAA,gBAAAM;AAAA,MAACK;AAAA,MAAA;AAAA,QACC,eAAY;AAAA,QACZ,MAAMO;AAAA,QACN,WAAAK;AAAA,QACA,cAAc,CAAC0C,MAAO;AACpB,UAAAjD,EAASkD,GAAaD,CAAE,CAAC;AAAA,QAC3B;AAAA,QACA,qBAAqB,CAACE,MAAS;AAC7B,UAAAnD,EAASoD,GAAoBD,CAAI,CAAC;AAAA,QACpC;AAAA,QACA,sBAAsB,CAACE,MAAQ;AAC7B,UAAArD,EAASsD,GAAqBD,CAAG,CAAC;AAAA,QACpC;AAAA,QACA,MAAM5B,EAAapB,CAAU;AAAA,QAC7B,WAAAnB;AAAA,QACA,UAAAkC;AAAA,QACA,kBAAAV;AAAA,QACA,QAAAY;AAAA,MAAA;AAAA,IAAA,GAEJ;AAAA,IAEF,CAACpB,GAAMK,GAAWF,GAAYnB,GAAWuC,GAAcL,GAAUE,CAAM;AAAA,EAAA,GAInEiC,IAAsB7B;AAAA,IAC1B,MACE,gBAAApC;AAAA,MAAC0D;AAAA,MAAA;AAAA,QACC,UACE,gBAAA1D,EAAC,OAAA,EAAI,WAAU,6BAA4B,UAAA,4BAE3C;AAAA,QAGF,UAAA,gBAAAA;AAAA,UAACG;AAAA,UAAA;AAAA,YACC,eAAY;AAAA,YACZ,WAAAc;AAAA,YACA,kBAAAG;AAAA,YACA,mBAAAC;AAAA,YACA,aAAac,EAAapB,CAAU;AAAA,YACpC,eAAenB;AAAA,YACf,gBAAgBmC;AAAA,YAChB,QAAAC;AAAA,UAAA;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,IAGJ,CAACf,GAAWrB,GAAWoC,CAAM;AAAA,EAAA;AAG/B,SAAO,CAACpC,KAAaoC,MAAW,QAAQ,CAACkC,EAAY,eAAelC,KAAA,gBAAAA,EAAS,0BAA0B,IACnG,gBAAAhC,EAACmE,GAAA,EAAI,WAAU,oDACb,UAAA,gBAAAnE;AAAA,IAACoE;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MAEV,4BAACC,GAAA,EAAW,SAAQ,MAAK,WAAU,mBAAkB,UAAA,4CAAA,CAErD;AAAA,IAAA;AAAA,EAAA,GAEJ,IAEF,gBAAAtE,EAACqE,KAAK,SAAQ,aAAY,WAAU,qCAClC,UAAA;AAAA,IAAA,gBAAApE,EAACN,GAAA,EAAoB,WAAAE,GACnB,UAAA,gBAAAG,EAACuE,GAAA,EAAK,WAAU,kDACd,UAAA;AAAA,MAAA,gBAAAtE,EAACsE,GAAA,EAAK,WAAU,2BACd,UAAA,gBAAAtE;AAAA,QAACuE;AAAA,QAAA;AAAA,UACC,OAAOxD;AAAA,UACP,UAAUwB;AAAA,UACV,SAAQ;AAAA,UACR,eAAc;AAAA,UAEb,UAAAJ,EAAa,IAAI,CAACqC,GAAMC,MACvB,gBAAAzE;AAAA,YAAC0E;AAAA,YAAA;AAAA,cAEC,OAAOF,EAAK,YAAA;AAAA,cACZ,eAAa,sBAAsBC,CAAK;AAAA,cACxC,IAAI,eAAeA,CAAK;AAAA,YAAA;AAAA,YAHnBD;AAAA,UAAA,CAKR;AAAA,QAAA;AAAA,MAAA,GAEL;AAAA,MACA,gBAAAzE,EAACuE,GAAA,EAAK,WAAU,mCACb,UAAA;AAAA,QAAAJ,EAAY,eAAelC,KAAA,gBAAAA,EAAS,4BAA4B,KAC/D,gBAAAjC;AAAA,UAAC4E;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,WAAU;AAAA,YACV,SAAQ;AAAA,YACR,SAAS,MAAMrD,EAAS,+BAA+B;AAAA,YACvD,IAAI;AAAA,cACF,IAAI,EAAE,IAAI,QAAQ,IAAI,MAAA;AAAA,YAAM;AAAA,YAG7B,UAAA;AAAA,cAAAG,EAAU,QAAQ;AAAA,cAAE;AAAA,cAAEA,EAAU,MAAM;AAAA,cAAE;AAAA,cAAEA,EAAU,OAAO;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAG/DyC,EAAY,eAAelC,KAAA,gBAAAA,EAAS,4BAA4B,KAC/D,gBAAAjC;AAAA,UAAC4E;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,eAAY;AAAA,YACZ,WAAU;AAAA,YACV,SAAQ;AAAA,YACR,SAAShC;AAAA,YACT,IAAI;AAAA,cACF,IAAI,EAAE,IAAI,QAAQ,IAAI,MAAA;AAAA,YAAM;AAAA,YAG7B,UAAA;AAAA,cAAAlB,EAAU,KAAK;AAAA,cAAE;AAAA,cAAEA,EAAU,SAAS;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACzC,EAAA,CAEJ;AAAA,IAAA,EAAA,CACF,EAAA,CACF;AAAA,sBAEC6C,GAAA,EAAK,WAAS,IAAC,SAAS,GAAG,WAAU,0BACpC,UAAA;AAAA,MAAA,gBAAAtE;AAAA,QAACsE;AAAA,QAAA;AAAA,UACC,MAAM,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,EAAA;AAAA,UAC5B,WAAU;AAAA,UACV,IAAI,EAAE,QAAQ,aAAahC,CAAgB,GAAA;AAAA,UAE1C,UAAAmB;AAAA,QAAA;AAAA,MAAA;AAAA,MAGH,gBAAA1D;AAAA,QAACuE;AAAA,QAAA;AAAA,UACC,MAAM,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,EAAA;AAAA,UAC5B,WAAU;AAAA,UACV,IAAI,EAAE,QAAQ,aAAahC,CAAgB,GAAA;AAAA,UAE1C,UAAA;AAAA,YAAA1C,KAAaW,IACZ,gBAAAP,EAAC,OAAA,EAAI,WAAU,qBACb,UAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,6EAAA,CAA6E,EAAA,CAC9F,IAEA,gBAAAD,EAACoE,GAAA,EAAI,WAAU,yBACb,UAAA;AAAA,cAAA,gBAAAnE,EAAC4E,MAAgB,MAAMC,IAAQ,MAAK,MAAK,WAAU,QAAO;AAAA,cAC1D,gBAAA7E,EAACqE,KAAW,SAAQ,SAAQ,WAAU,4BACnC,UAAA5C,EAAU,eAAe,EAAA,CAC5B;AAAA,YAAA,GACF;AAAA,YAEDR,KAAagD;AAAA,YACb,CAAChD,KACA,gBAAAjB,EAAA8E,GAAA,EACE,UAAA,gBAAA9E;AAAA,cAACqE;AAAA,cAAA;AAAA,gBACC,SAAQ;AAAA,gBACR,WAAU;AAAA,gBACV,eAAY;AAAA,gBACZ,IAAI;AAAA,kBACF,WAAW;AAAA,kBACX,UAAU;AAAA,kBACV,KAAK;AAAA,kBACL,UAAU;AAAA,kBACV,OAAO;AAAA,gBAAA;AAAA,gBAEV,UAAA;AAAA,cAAA;AAAA,YAAA,EAED,CACF;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAEJ,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;;;;;"}
@@ -0,0 +1,14 @@
1
+ import { api as t } from "@/common/interceptors/AxiosInterceptor";
2
+ const m = (e) => t.get(`menuconfig/configtypes?id=${e}`), u = (e) => t.get(`menuconfig/configtypesV2?id=${e}`), a = (e) => t.get(`menuconfig/configtypesV2/summary?id=${e}`), i = (e, { userId: n, roleId: s }) => t.get("menuconfig/configtypesV2/permissions", { params: { id: e, userId: n, roleId: s } }), g = (e) => t.get(`/menuconfig/type?type=${e}`), c = (e) => t.delete(`/menuconfig/usermenuitem?empMenuItemId=${e}`), p = (e) => t.post("/menuconfig/updateusermenuitem", { ...e, showLoader: !1 }), r = (e, n) => t.post(`/menuconfig/updateusermenuitems?menuConfigId=${e}`, n), f = (e, n) => t.post(`/menuconfig/menuitem?menuConfigId=${e}`, { ...n });
3
+ export {
4
+ u as a,
5
+ m as b,
6
+ p as c,
7
+ c as d,
8
+ a as e,
9
+ i as f,
10
+ g,
11
+ f as p,
12
+ r as u
13
+ };
14
+ //# sourceMappingURL=Features-Dne21RWu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Features-Dne21RWu.js","sources":["../src/services/Features.js"],"sourcesContent":["import { api } from \"@/common/interceptors/AxiosInterceptor\";\n\nexport const getFeatureData = (id) => api.get(`menuconfig/configtypes?id=${id}`);\n\nexport const getFeatureDataV2 = (id) =>\n api.get(`menuconfig/configtypesV2?id=${id}`);\n\n// Lightweight companion to getFeatureDataV2: permission tree + assigned names only,\n// without each assignee's individual permission grants.\nexport const getFeatureAccessSummaryV2 = (id) =>\n api.get(`menuconfig/configtypesV2/summary?id=${id}`);\n\n// Permission grants for one specific user or role on one menu, fetched on demand.\nexport const getFeaturePermissionsForIdentity = (id, { userId, roleId }) =>\n api.get(`menuconfig/configtypesV2/permissions`, { params: { id, userId, roleId } });\n\nexport const postFeature = (params) =>\n api.post(\"/resource/getdata\", { ...params });\n\nexport const getFeatureName = (params) => api.get(`/menuconfig/type?type=${params}`);\n\nexport const deleteUserMenuItem = (id) =>\n api.delete(`/menuconfig/usermenuitem?empMenuItemId=${id}`);\n\nexport const updateUserMenuItem = (params) =>\n api.post(`/menuconfig/updateusermenuitem`, { ...params, showLoader: false });\n\nexport const updateUserMenuItems = (id, params) =>\n api.post(`/menuconfig/updateusermenuitems?menuConfigId=${id}`, params);\n\nexport const postMenuItem = (id, params) =>\n api.post(`/menuconfig/menuitem?menuConfigId=${id}`, { ...params });\n"],"names":["getFeatureData","id","api","getFeatureDataV2","getFeatureAccessSummaryV2","getFeaturePermissionsForIdentity","userId","roleId","getFeatureName","params","deleteUserMenuItem","updateUserMenuItem","updateUserMenuItems","postMenuItem"],"mappings":";AAEY,MAACA,IAAiB,CAACC,MAAOC,EAAI,IAAI,6BAA6BD,CAAE,EAAE,GAElEE,IAAmB,CAACF,MAC/BC,EAAI,IAAI,+BAA+BD,CAAE,EAAE,GAIhCG,IAA4B,CAACH,MACxCC,EAAI,IAAI,uCAAuCD,CAAE,EAAE,GAGxCI,IAAmC,CAACJ,GAAI,EAAE,QAAAK,GAAQ,QAAAC,EAAM,MACnEL,EAAI,IAAI,wCAAwC,EAAE,QAAQ,EAAE,IAAAD,GAAI,QAAAK,GAAQ,QAAAC,IAAQ,CAAE,GAKvEC,IAAiB,CAACC,MAAWP,EAAI,IAAI,yBAAyBO,CAAM,EAAE,GAEtEC,IAAqB,CAACT,MACjCC,EAAI,OAAO,0CAA0CD,CAAE,EAAE,GAE9CU,IAAqB,CAACF,MACjCP,EAAI,KAAK,kCAAkC,EAAE,GAAGO,GAAQ,YAAY,GAAK,CAAE,GAEhEG,IAAsB,CAACX,GAAIQ,MACtCP,EAAI,KAAK,gDAAgDD,CAAE,IAAIQ,CAAM,GAE1DI,IAAe,CAACZ,GAAIQ,MAC/BP,EAAI,KAAK,qCAAqCD,CAAE,IAAI,EAAE,GAAGQ,EAAM,CAAE;"}
@@ -1 +1 @@
1
- {"version":3,"file":"FileSaver.min-CN9EpL2h.js","sources":["../node_modules/file-saver/dist/FileSaver.min.js"],"sourcesContent":["(function(a,b){if(\"function\"==typeof define&&define.amd)define([],b);else if(\"undefined\"!=typeof exports)b();else{b(),a.FileSaver={exports:{}}.exports}})(this,function(){\"use strict\";function b(a,b){return\"undefined\"==typeof b?b={autoBom:!1}:\"object\"!=typeof b&&(console.warn(\"Deprecated: Expected third argument to be a object\"),b={autoBom:!b}),b.autoBom&&/^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(a.type)?new Blob([\"\\uFEFF\",a],{type:a.type}):a}function c(a,b,c){var d=new XMLHttpRequest;d.open(\"GET\",a),d.responseType=\"blob\",d.onload=function(){g(d.response,b,c)},d.onerror=function(){console.error(\"could not download file\")},d.send()}function d(a){var b=new XMLHttpRequest;b.open(\"HEAD\",a,!1);try{b.send()}catch(a){}return 200<=b.status&&299>=b.status}function e(a){try{a.dispatchEvent(new MouseEvent(\"click\"))}catch(c){var b=document.createEvent(\"MouseEvents\");b.initMouseEvent(\"click\",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),a.dispatchEvent(b)}}var f=\"object\"==typeof window&&window.window===window?window:\"object\"==typeof self&&self.self===self?self:\"object\"==typeof global&&global.global===global?global:void 0,a=f.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),g=f.saveAs||(\"object\"!=typeof window||window!==f?function(){}:\"download\"in HTMLAnchorElement.prototype&&!a?function(b,g,h){var i=f.URL||f.webkitURL,j=document.createElement(\"a\");g=g||b.name||\"download\",j.download=g,j.rel=\"noopener\",\"string\"==typeof b?(j.href=b,j.origin===location.origin?e(j):d(j.href)?c(b,g,h):e(j,j.target=\"_blank\")):(j.href=i.createObjectURL(b),setTimeout(function(){i.revokeObjectURL(j.href)},4E4),setTimeout(function(){e(j)},0))}:\"msSaveOrOpenBlob\"in navigator?function(f,g,h){if(g=g||f.name||\"download\",\"string\"!=typeof f)navigator.msSaveOrOpenBlob(b(f,h),g);else if(d(f))c(f,g,h);else{var i=document.createElement(\"a\");i.href=f,i.target=\"_blank\",setTimeout(function(){e(i)})}}:function(b,d,e,g){if(g=g||open(\"\",\"_blank\"),g&&(g.document.title=g.document.body.innerText=\"downloading...\"),\"string\"==typeof b)return c(b,d,e);var h=\"application/octet-stream\"===b.type,i=/constructor/i.test(f.HTMLElement)||f.safari,j=/CriOS\\/[\\d]+/.test(navigator.userAgent);if((j||h&&i||a)&&\"undefined\"!=typeof FileReader){var k=new FileReader;k.onloadend=function(){var a=k.result;a=j?a:a.replace(/^data:[^;]*;/,\"data:attachment/file;\"),g?g.location.href=a:location=a,g=null},k.readAsDataURL(b)}else{var l=f.URL||f.webkitURL,m=l.createObjectURL(b);g?g.location=m:location.href=m,g=null,setTimeout(function(){l.revokeObjectURL(m)},4E4)}});f.saveAs=g.saveAs=g,\"undefined\"!=typeof module&&(module.exports=g)});\n\n//# sourceMappingURL=FileSaver.min.js.map"],"names":["a","b","this","c","d","g","e","f","global","h","i","j","k","l","m","module"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"FileSaver.min-CN9EpL2h.js","sources":["../../node_modules/file-saver/dist/FileSaver.min.js"],"sourcesContent":["(function(a,b){if(\"function\"==typeof define&&define.amd)define([],b);else if(\"undefined\"!=typeof exports)b();else{b(),a.FileSaver={exports:{}}.exports}})(this,function(){\"use strict\";function b(a,b){return\"undefined\"==typeof b?b={autoBom:!1}:\"object\"!=typeof b&&(console.warn(\"Deprecated: Expected third argument to be a object\"),b={autoBom:!b}),b.autoBom&&/^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(a.type)?new Blob([\"\\uFEFF\",a],{type:a.type}):a}function c(a,b,c){var d=new XMLHttpRequest;d.open(\"GET\",a),d.responseType=\"blob\",d.onload=function(){g(d.response,b,c)},d.onerror=function(){console.error(\"could not download file\")},d.send()}function d(a){var b=new XMLHttpRequest;b.open(\"HEAD\",a,!1);try{b.send()}catch(a){}return 200<=b.status&&299>=b.status}function e(a){try{a.dispatchEvent(new MouseEvent(\"click\"))}catch(c){var b=document.createEvent(\"MouseEvents\");b.initMouseEvent(\"click\",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),a.dispatchEvent(b)}}var f=\"object\"==typeof window&&window.window===window?window:\"object\"==typeof self&&self.self===self?self:\"object\"==typeof global&&global.global===global?global:void 0,a=f.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),g=f.saveAs||(\"object\"!=typeof window||window!==f?function(){}:\"download\"in HTMLAnchorElement.prototype&&!a?function(b,g,h){var i=f.URL||f.webkitURL,j=document.createElement(\"a\");g=g||b.name||\"download\",j.download=g,j.rel=\"noopener\",\"string\"==typeof b?(j.href=b,j.origin===location.origin?e(j):d(j.href)?c(b,g,h):e(j,j.target=\"_blank\")):(j.href=i.createObjectURL(b),setTimeout(function(){i.revokeObjectURL(j.href)},4E4),setTimeout(function(){e(j)},0))}:\"msSaveOrOpenBlob\"in navigator?function(f,g,h){if(g=g||f.name||\"download\",\"string\"!=typeof f)navigator.msSaveOrOpenBlob(b(f,h),g);else if(d(f))c(f,g,h);else{var i=document.createElement(\"a\");i.href=f,i.target=\"_blank\",setTimeout(function(){e(i)})}}:function(b,d,e,g){if(g=g||open(\"\",\"_blank\"),g&&(g.document.title=g.document.body.innerText=\"downloading...\"),\"string\"==typeof b)return c(b,d,e);var h=\"application/octet-stream\"===b.type,i=/constructor/i.test(f.HTMLElement)||f.safari,j=/CriOS\\/[\\d]+/.test(navigator.userAgent);if((j||h&&i||a)&&\"undefined\"!=typeof FileReader){var k=new FileReader;k.onloadend=function(){var a=k.result;a=j?a:a.replace(/^data:[^;]*;/,\"data:attachment/file;\"),g?g.location.href=a:location=a,g=null},k.readAsDataURL(b)}else{var l=f.URL||f.webkitURL,m=l.createObjectURL(b);g?g.location=m:location.href=m,g=null,setTimeout(function(){l.revokeObjectURL(m)},4E4)}});f.saveAs=g.saveAs=g,\"undefined\"!=typeof module&&(module.exports=g)});\n\n//# sourceMappingURL=FileSaver.min.js.map"],"names":["a","b","this","c","d","g","e","f","global","h","i","j","k","l","m","module"],"mappings":"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","x_google_ignoreList":[0]}