{"version":3,"sources":["context/Permissions/index.js","context/Counts/index.js","context/RefreshFilters/index.js","components/Navigation/iconUser.svg","components/Navigation/brandMark.svg","serviceWorker.js","components/Navigation/index.js","containers/Layout/index.js","components/PrivateRoute/index.js","containers/App/index.js","index.js"],"names":["PermissionsContext","createContext","CountsContext","updateExceptionsCount","updateDeferralsCount","updateEscalationsCount","RefreshFiltersContext","timeStamp","moment","format","func","alert","module","exports","Boolean","window","location","hostname","match","Navigation","props","classes","useStyles","brandMarkLink","appName","links","counts","firstName","lastName","logOutPath","useState","open","setOpen","handleDrawerClose","className","navigationContainer","Paper","id","square","elevation","appHeader","headerLeft","branding","to","logoContainer","src","BrandMark","alt","width","Typography","component","variant","Hidden","smDown","menu","length","sort","a","b","order","map","link","key","title","Badge","badge","badgeContent","color","max","menuLink","href","headerRight","AppPicker","IsCompact","UserIcon","userIcon","userName","sessionStorage","getItem","Button","onClick","logOut","mdUp","aria-label","aria-controls","edge","clsx","menuButton","hide","Drawer","drawer","anchor","onClose","paper","drawerPaper","drawerHeader","mobileBadge","count","mobileMenuLink","mobileLogOut","makeStyles","theme","flex","height","background","display","justifyContent","spacing","position","zIndex","alignItems","textDecoration","backgroundColor","palette","primary","main","padding","fill","stroke","margin","fontSize","fontWeight","borderRadius","borderBottom","marginRight","paddingRight","marginLeft","textTransform","textAlign","top","right","contentContainer","withRouter","currentPermissions","setCurrentPermissions","error","setError","loading","setLoading","setFirstName","setLastName","setLinks","setCounts","sessionModalOpen","setSessionModalOpen","updateCountsCallbacks","updateExceptions","exceptionsApi","fetchExceptionsCount","fetchDeferralsCount","CONFIG","APP_API_URL","fetchEscalationsCount","updateDeferrals","deferralsApi","updateEscalations","escalationsApi","useCallback","api","userIsAuthenticated","accessIsAllowed","fetchApi","then","response","status","0","data","catch","1","2","refreshFilters","useEffect","COMMON_API_URL","setItem","fetchUserName","permissionsUrl","AUTH_API_URL","Error","history","listen","pathname","children","Permissions","Provider","value","RefreshFilters","Counts","AUTH_UI_URL","sessionTime","sessionCallback","counter","timeOutFunction","handleModalAction","PrivateRoute","Component","rest","temporary","render","authPath","loadingComponent","Exceptions","lazy","Deferrals","Escalations","History","App","createResponseInterceptor","process","REACT_APP_CLIENT_ID","REACT_APP_CLIENT_SECRET","fallback","exact","path","require","navigator","serviceWorker","ready","registration","unregister","createMuiTheme","light","secondary","contrastText","typography","fontFamily","join","MuiButtonBase","disableRipple","overrides","MuiButton","root","text","contained","boxShadow","containedSecondary","MuiAppBar","flexDirection","colorDefault","MuiDialogTitle","MuiTab","flexShrink","minWidth","PrivateTabIndicator","bottom","MuiFormControl","marginNormal","marginTop","marginBottom","MuiTypography","h1","h2","body2","MuiOutlinedInput","input","MuiInputLabel","outlined","transform","MuiTable","border","MuiTableCell","borderLeft","sizeSmall","MuiTableHead","MuiTableFooter","borderTop","MuiTablePagination","spacer","MuiAutocomplete","tag","ThemeProvider","document","getElementById"],"mappings":"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","file":"static/js/main.610a5cec.chunk.js","sourcesContent":["import { createContext } from \"react\";\r\n\r\nexport const PermissionsContext = createContext([]);\r\n","import { createContext } from \"react\";\r\n\r\nexport const CountsContext = createContext({\r\n updateExceptionsCount: () => {},\r\n updateDeferralsCount: () => {},\r\n updateEscalationsCount: () => {}\r\n});\r\n","import { createContext } from \"react\";\r\nimport moment from \"moment\";\r\n\r\nexport const RefreshFiltersContext = createContext({\r\n timeStamp: moment().format(\"MM/DD hh:mm A\"),\r\n func: () => {\r\n alert(\"Refresh\");\r\n }\r\n});\r\n","module.exports = __webpack_public_path__ + \"static/media/iconUser.5cf1af57.svg\";","module.exports = __webpack_public_path__ + \"static/media/brandMark.a9dd08a0.svg\";","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import React, { Fragment, useState } from \"react\";\r\nimport { NavLink } from \"react-router-dom\";\r\nimport clsx from \"clsx\";\r\n// Material-UI imports\r\nimport {\r\n Typography,\r\n Button,\r\n Paper,\r\n Hidden,\r\n Drawer,\r\n Badge,\r\n} from \"@material-ui/core\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport ChevronLeftOutlinedIcon from \"@material-ui/icons/ChevronLeftOutlined\";\r\nimport MenuOutlinedIcon from \"@material-ui/icons/MenuOutlined\";\r\n// Custom imports\r\nimport { logOut } from \"@globalholdings/ui-common-functions\";\r\nimport UserIcon from \"./iconUser.svg\";\r\nimport BrandMark from \"./brandMark.svg\";\r\nimport AppPicker from \"@globalholdings/ui-common-components/src/components/AppPicker\";\r\n\r\nexport default function Navigation(props) {\r\n const classes = useStyles();\r\n const {\r\n brandMarkLink,\r\n appName,\r\n links,\r\n counts,\r\n firstName,\r\n lastName,\r\n logOutPath,\r\n } = props;\r\n\r\n const [open, setOpen] = useState(false);\r\n\r\n const handleDrawerClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const handleDrawer = () => {\r\n if (open) {\r\n setOpen(false);\r\n } else {\r\n setOpen(true);\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n
\r\n \"Global\r\n
\r\n \r\n {appName}\r\n \r\n
\r\n \r\n
\r\n {links.length > 0 &&\r\n links\r\n .sort((a, b) => {\r\n return a.order > b.order ? 1 : -1;\r\n })\r\n .map((link) => {\r\n return (\r\n \r\n \r\n \r\n {link.title}\r\n \r\n \r\n \r\n );\r\n })}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {sessionStorage.getItem(\"firstName\") || firstName}{\" \"}\r\n {sessionStorage.getItem(\"lastName\") || lastName}\r\n \r\n {\r\n logOut(logOutPath);\r\n }}\r\n color=\"primary\"\r\n className={classes.logOut}\r\n >\r\n Logout\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n {links.length > 0 &&\r\n links\r\n .sort((a, b) => (a.order > b.order ? 1 : -1))\r\n .map((link) => {\r\n return (\r\n
\r\n \r\n \r\n {link.title}\r\n \r\n \r\n
\r\n );\r\n })}\r\n {\r\n logOut(logOutPath);\r\n }}\r\n color=\"primary\"\r\n className={classes.mobileLogOut}\r\n >\r\n Logout\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n navigationContainer: {\r\n flex: \"0 0 100%\",\r\n height: \"80px\",\r\n },\r\n appHeader: {\r\n background: \"#fff\",\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n width: \"100%\",\r\n height: theme.spacing(10),\r\n position: \"fixed\",\r\n zIndex: 999,\r\n },\r\n headerLeft: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n width: \"fit-content\",\r\n },\r\n branding: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n textDecoration: \"none\",\r\n },\r\n logoContainer: {\r\n display: \"flex\",\r\n height: theme.spacing(10),\r\n alignItems: \"center\",\r\n backgroundColor: theme.palette.primary.main,\r\n \"& img\": {\r\n width: theme.spacing(4),\r\n padding: theme.spacing(2, 3),\r\n \"& .st0\": {\r\n fill: \"#fff !important\",\r\n stroke: \"#fff !important\",\r\n },\r\n },\r\n },\r\n appName: {\r\n margin: theme.spacing(0, 4, 0, 2),\r\n height: 40,\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n color: \"#333\",\r\n fontSize: \"1rem\",\r\n fontWeight: 400,\r\n \"@media (min-width:720px)\": {\r\n fontSize: \"1.6rem\",\r\n },\r\n },\r\n menu: {\r\n display: \"flex\",\r\n },\r\n menuLink: {\r\n borderRadius: 0,\r\n padding: theme.spacing(1, 3),\r\n height: theme.spacing(7.5),\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n textDecoration: \"none\",\r\n color: \"#333\",\r\n fontSize: \"1rem\",\r\n fontWeight: \"normal\",\r\n borderBottom: `${theme.spacing(0.5)}px solid transparent`,\r\n \"&.active\": {\r\n color: theme.palette.primary.main,\r\n borderBottom: `${theme.spacing(0.5)}px solid ${\r\n theme.palette.primary.main\r\n }`,\r\n },\r\n },\r\n mobileMenuLink: {\r\n width: \"100%\",\r\n },\r\n headerRight: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n marginRight: theme.spacing(2),\r\n paddingRight: theme.spacing(2),\r\n width: \"fit-content\",\r\n },\r\n userIcon: {\r\n marginRight: theme.spacing(1),\r\n },\r\n userName: {\r\n display: \"none\",\r\n \"@media (min-width: 720px)\": {\r\n display: \"flex\",\r\n },\r\n },\r\n logOut: {\r\n marginLeft: theme.spacing(2),\r\n fontSize: \"1rem\",\r\n textTransform: \"none\",\r\n },\r\n mobileLogOut: {\r\n width: \"100%\",\r\n fontSize: \"1rem\",\r\n textTransform: \"none\",\r\n textAlign: \"center\",\r\n },\r\n drawer: {\r\n width: 200,\r\n },\r\n drawerHeader: {\r\n borderBottom: \"1px solid #eee\",\r\n },\r\n drawerPaper: {\r\n width: 280,\r\n },\r\n badge: {\r\n \"& span\": {\r\n top: theme.spacing(3),\r\n right: theme.spacing(1),\r\n },\r\n },\r\n mobileBadge: {\r\n width: \"100%\",\r\n \"& .MuiBadge-badge\": {\r\n top: theme.spacing(2),\r\n right: theme.spacing(4),\r\n },\r\n },\r\n}));\r\n","import React, { Fragment, useState, useEffect, useCallback } from \"react\";\r\nimport { withRouter } from \"react-router-dom\";\r\n// Material-UI imports\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport moment from \"moment\";\r\n// Custom imports\r\nimport {\r\n userIsAuthenticated,\r\n fetchApi,\r\n accessIsAllowed,\r\n logOut\r\n} from \"@globalholdings/ui-common-functions\";\r\nimport {\r\n Error,\r\n SessionModal,\r\n SessionTimer\r\n //Navigation\r\n} from \"@globalholdings/ui-common-components\";\r\nimport Navigation from \"../../components/Navigation\";\r\nimport { PermissionsContext } from \"../../context/Permissions\";\r\nimport { RefreshFiltersContext } from \"../../context/RefreshFilters\";\r\nimport { CountsContext } from \"../../context/Counts\";\r\n\r\nconst Layout = props => {\r\n const classes = useStyles();\r\n const [currentPermissions, setCurrentPermissions] = useState([]);\r\n const [error, setError] = useState(false);\r\n const [loading, setLoading] = useState(true);\r\n const [firstName, setFirstName] = useState(\r\n sessionStorage.getItem(\"firstName\")\r\n );\r\n const [lastName, setLastName] = useState(sessionStorage.getItem(\"lastName\"));\r\n const [links, setLinks] = useState([]);\r\n const [counts, setCounts] = useState({});\r\n const [sessionModalOpen, setSessionModalOpen] = useState(false);\r\n\r\n const updateCountsCallbacks = {\r\n updateExceptions: exceptionsApi => {\r\n fetchExceptionsCount(exceptionsApi);\r\n fetchDeferralsCount(\r\n `${window.CONFIG.APP_API_URL}/phonepay/exceptionresponses/Deferred/Count`\r\n );\r\n fetchEscalationsCount(\r\n `${window.CONFIG.APP_API_URL}/phonepay/exceptionresponses/Escalated/Count`\r\n );\r\n },\r\n updateDeferrals: deferralsApi => {\r\n fetchDeferralsCount(deferralsApi);\r\n fetchExceptionsCount(\r\n `${window.CONFIG.APP_API_URL}/phonepay/exceptionresponses/Next/Count`\r\n );\r\n fetchEscalationsCount(\r\n `${window.CONFIG.APP_API_URL}/phonepay/exceptionresponses/Escalated/Count`\r\n );\r\n },\r\n updateEscalations: escalationsApi => {\r\n fetchEscalationsCount(escalationsApi);\r\n fetchDeferralsCount(\r\n `${window.CONFIG.APP_API_URL}/phonepay/exceptionresponses/Deferred/Count`\r\n );\r\n fetchExceptionsCount(\r\n `${window.CONFIG.APP_API_URL}/phonepay/exceptionresponses/Next/Count`\r\n );\r\n }\r\n };\r\n\r\n const handleOpenSessionModal = () => {\r\n setSessionModalOpen(true);\r\n };\r\n\r\n const handleCloseSessionModal = () => {\r\n setSessionModalOpen(false);\r\n };\r\n\r\n const fetchExceptionsCount = useCallback(\r\n api => {\r\n if (\r\n userIsAuthenticated() &&\r\n accessIsAllowed(currentPermissions, \"ERMA.UI\", \"R\")\r\n ) {\r\n fetchApi(\"GET\", api, {}, false)\r\n .then(response => {\r\n if (response.status === 200) {\r\n setCounts(counts => {\r\n return {\r\n ...counts,\r\n 0: response.data\r\n };\r\n });\r\n } else {\r\n setCounts(counts => {\r\n return {\r\n ...counts,\r\n 0: 0\r\n };\r\n });\r\n }\r\n })\r\n .catch(() => {\r\n setCounts(counts => {\r\n return {\r\n ...counts,\r\n 0: 0\r\n };\r\n });\r\n });\r\n }\r\n },\r\n [currentPermissions]\r\n );\r\n\r\n const fetchDeferralsCount = useCallback(\r\n api => {\r\n if (\r\n userIsAuthenticated() &&\r\n accessIsAllowed(currentPermissions, \"ERMA.UI\", \"R\")\r\n ) {\r\n fetchApi(\"GET\", api, {}, false)\r\n .then(response => {\r\n if (response.status === 200) {\r\n setCounts(counts => {\r\n return {\r\n ...counts,\r\n 1: response.data\r\n };\r\n });\r\n } else {\r\n setCounts(counts => {\r\n return {\r\n ...counts,\r\n 1: 0\r\n };\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n setCounts(counts => {\r\n return {\r\n ...counts,\r\n 1: 0\r\n };\r\n });\r\n });\r\n }\r\n },\r\n [currentPermissions]\r\n );\r\n\r\n const fetchEscalationsCount = useCallback(\r\n api => {\r\n if (\r\n userIsAuthenticated() &&\r\n accessIsAllowed(currentPermissions, \"ERMA.UI.Escalations\", \"R\")\r\n ) {\r\n fetchApi(\"GET\", api, {}, false)\r\n .then(response => {\r\n if (response.status === 200) {\r\n setCounts(counts => {\r\n return {\r\n ...counts,\r\n 2: response.data\r\n };\r\n });\r\n } else {\r\n setCounts(counts => {\r\n return {\r\n ...counts,\r\n 2: 0\r\n };\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n setCounts(counts => {\r\n return {\r\n ...counts,\r\n 2: 0\r\n };\r\n });\r\n });\r\n }\r\n },\r\n [currentPermissions]\r\n );\r\n\r\n const refreshFilters = {\r\n timeStamp: moment().format(\"MM/DD hh:mm A\"),\r\n func: () => {\r\n fetchExceptionsCount(\r\n `${window.CONFIG.APP_API_URL}/phonepay/exceptionresponses/Next/Count`\r\n );\r\n fetchDeferralsCount(\r\n `${window.CONFIG.APP_API_URL}/phonepay/exceptionresponses/Deferred/Count`\r\n );\r\n fetchEscalationsCount(\r\n `${window.CONFIG.APP_API_URL}/phonepay/exceptionresponses/Escalated/Count`\r\n );\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (userIsAuthenticated()) {\r\n const fetchUserName = () => {\r\n const api = `\r\n ${window.CONFIG.COMMON_API_URL}/users/user`;\r\n fetchApi(\"GET\", api).then(response => {\r\n if (response.status === 200) {\r\n sessionStorage.setItem(\"firstName\", response.data.firstName);\r\n sessionStorage.setItem(\"lastName\", response.data.lastName);\r\n setFirstName(sessionStorage.firstName);\r\n setLastName(sessionStorage.lastName);\r\n setLoading(false);\r\n } else {\r\n setFirstName(\"\");\r\n setLastName(\"\");\r\n }\r\n });\r\n };\r\n if (\r\n !sessionStorage.getItem(\"firstName\") &&\r\n !sessionStorage.getItem(\"lastName\")\r\n ) {\r\n fetchUserName();\r\n }\r\n }\r\n }, [firstName, lastName]);\r\n\r\n useEffect(() => {\r\n if (currentPermissions.length === 0 && userIsAuthenticated()) {\r\n const permissionsUrl = `${window.CONFIG.AUTH_API_URL}/auth/securedcomponents`;\r\n fetchApi(\"GET\", permissionsUrl)\r\n .then(response => {\r\n if (response.status === 200) {\r\n setCurrentPermissions(response.data);\r\n } else {\r\n throw new Error(`Error Code ${response.status}`);\r\n }\r\n })\r\n .catch(error => {\r\n setError(true);\r\n });\r\n }\r\n }, [currentPermissions.length]);\r\n\r\n useEffect(() => {\r\n fetchExceptionsCount(\r\n `${window.CONFIG.APP_API_URL}/phonepay/exceptionresponses/Next/Count`\r\n );\r\n fetchDeferralsCount(\r\n `${window.CONFIG.APP_API_URL}/phonepay/exceptionresponses/Deferred/Count`\r\n );\r\n fetchEscalationsCount(\r\n `${window.CONFIG.APP_API_URL}/phonepay/exceptionresponses/Escalated/Count`\r\n );\r\n }, [fetchDeferralsCount, fetchEscalationsCount, fetchExceptionsCount]);\r\n\r\n useEffect(() => {\r\n if (\r\n accessIsAllowed(currentPermissions, \"ERMA.UI\", \"R\") &&\r\n accessIsAllowed(currentPermissions, \"ERMA.UI.Escalations\", \"R\")\r\n ) {\r\n setLinks([\r\n {\r\n order: 0,\r\n title: \"Exceptions\",\r\n href: \"/exceptions\"\r\n },\r\n {\r\n order: 1,\r\n title: \"Deferrals\",\r\n href: \"/deferrals\"\r\n },\r\n {\r\n order: 2,\r\n title: \"Escalations\",\r\n href: \"/escalations\"\r\n },\r\n { order: 3, title: \"History\", href: \"/history\" }\r\n ]);\r\n } else {\r\n setLinks([\r\n {\r\n order: 0,\r\n title: \"Exceptions\",\r\n href: \"/exceptions\"\r\n },\r\n {\r\n order: 1,\r\n title: \"Deferrals\",\r\n href: \"/deferrals\"\r\n },\r\n { order: 3, title: \"History\", href: \"/history\" }\r\n ]);\r\n }\r\n }, [currentPermissions]);\r\n\r\n useEffect(() => {\r\n props.history.listen(() => {\r\n fetchExceptionsCount(\r\n `${window.CONFIG.APP_API_URL}/phonepay/exceptionresponses/Next/Count`\r\n );\r\n fetchDeferralsCount(\r\n `${window.CONFIG.APP_API_URL}/phonepay/exceptionresponses/Deferred/Count`\r\n );\r\n fetchEscalationsCount(\r\n `${window.CONFIG.APP_API_URL}/phonepay/exceptionresponses/Escalated/Count`\r\n );\r\n });\r\n }, [\r\n currentPermissions,\r\n fetchDeferralsCount,\r\n fetchEscalationsCount,\r\n fetchExceptionsCount,\r\n props.history\r\n ]);\r\n\r\n useEffect(() => {\r\n if (links.length > 2) {\r\n setLoading(false);\r\n }\r\n }, [links.length]);\r\n\r\n if (\r\n !loading &&\r\n !error &&\r\n userIsAuthenticated() &&\r\n window.location.pathname !== \"/\"\r\n ) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {\r\n logOut(`${window.CONFIG.AUTH_UI_URL}/?referrer=UI.PhonePay`);\r\n }}\r\n handleModalAction={handleCloseSessionModal}\r\n />\r\n
{props.children}
\r\n
\r\n
\r\n
\r\n );\r\n } else {\r\n return {props.children};\r\n }\r\n};\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n contentContainer: {\r\n margin: theme.spacing(1.5, 2)\r\n }\r\n}));\r\n\r\nexport default withRouter(Layout);\r\n","import React from \"react\";\r\nimport { Route } from \"react-router-dom\";\r\n// Custom imports\r\nimport { userIsAuthenticated } from \"@globalholdings/ui-common-functions\";\r\nimport { Loading, LoginRedirect } from \"@globalholdings/ui-common-components\";\r\n\r\nexport default function PrivateRoute(props) {\r\n const { component: Component, temporary: Temporary, ...rest } = props;\r\n\r\n return (\r\n \r\n userIsAuthenticated() ? (\r\n \r\n ) : (\r\n }\r\n />\r\n )\r\n }\r\n />\r\n );\r\n}\r\n","import React, { Suspense, lazy } from \"react\";\r\nimport {\r\n BrowserRouter as Router,\r\n Switch,\r\n Route,\r\n Redirect\r\n} from \"react-router-dom\";\r\n// Custom imports\r\nimport { createResponseInterceptor } from \"@globalholdings/ui-common-functions\";\r\nimport { Loading, LoginRedirect } from \"@globalholdings/ui-common-components\";\r\nimport Layout from \"../../containers/Layout\";\r\nimport PrivateRoute from \"../../components/PrivateRoute\";\r\n\r\nconst Exceptions = lazy(() => import(\"../Exceptions\"));\r\nconst Deferrals = lazy(() => import(\"../Deferrals\"));\r\nconst Escalations = lazy(() => import(\"../Escalations\"));\r\nconst History = lazy(() => import(\"../History\"));\r\n\r\nexport default function App() {\r\n createResponseInterceptor(\r\n process.env.REACT_APP_CLIENT_ID,\r\n process.env.REACT_APP_CLIENT_SECRET\r\n );\r\n return (\r\n }>\r\n \r\n \r\n \r\n }\r\n />\r\n }\r\n />\r\n }\r\n />\r\n } />\r\n (\r\n }\r\n />\r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import \"react-app-polyfill/ie9\";\r\nimport \"react-app-polyfill/stable\";\r\nimport React from \"react\";\r\nimport { render } from \"react-dom\";\r\nimport { createMuiTheme } from \"@material-ui/core/styles\";\r\nimport { ThemeProvider } from \"@material-ui/styles\";\r\nimport { unregister } from \"./serviceWorker\";\r\nimport App from \"./containers/App\";\r\nimport \"./styles.css\";\r\nrequire(\"typeface-poppins\");\r\n\r\nunregister();\r\n\r\nconst theme = createMuiTheme({\r\n palette: {\r\n primary: {\r\n main: \"#1373e6\",\r\n light: \"#fff\"\r\n },\r\n secondary: {\r\n main: \"#fff\",\r\n contrastText: \"#1373e6\"\r\n }\r\n },\r\n typography: {\r\n fontFamily: [\r\n \"Poppins\",\r\n \"-apple-system\",\r\n \"BlinkMacSystemFont\",\r\n '\"Segoe UI\"',\r\n \"Roboto\",\r\n '\"Helvetica Neue\"',\r\n \"Arial\",\r\n \"sans-serif\",\r\n '\"Apple Color Emoji\"',\r\n '\"Segoe UI Emoji\"',\r\n '\"Segoe UI Symbol\"'\r\n ].join(\",\")\r\n },\r\n props: {\r\n MuiButtonBase: {\r\n disableRipple: true\r\n }\r\n },\r\n\r\n overrides: {\r\n MuiButton: {\r\n root: {\r\n textTransform: \"none\",\r\n padding: \"6px 32px\",\r\n borderRadius: \"24px\"\r\n },\r\n text: {\r\n textTransform: \"none\"\r\n },\r\n contained: {\r\n boxShadow: \"none\",\r\n \"&:hover\": {\r\n boxShadow:\r\n \"0px 0px 0px -1px rgba(0,0,0,0.2), 0px 1px 2px 0px rgba(0,0,0,0.14), 0px 0px 3px 0px rgba(0,0,0,0.12)\"\r\n }\r\n },\r\n containedSecondary: {\r\n \"&:hover\": {\r\n backgroundColor: \"#eee\"\r\n }\r\n }\r\n },\r\n MuiAppBar: {\r\n root: {\r\n flexDirection: \"row\",\r\n justifyContent: \"space-between\",\r\n alignItems: \"center\",\r\n padding: \"0 16px\",\r\n height: 60\r\n },\r\n colorDefault: {\r\n backgroundColor: \"#ffffff\"\r\n }\r\n },\r\n MuiDialogTitle: {\r\n root: {\r\n padding: \"16px 40px\",\r\n borderBottom: \"1px solid #eee\"\r\n }\r\n },\r\n MuiTab: {\r\n root: {\r\n flexShrink: 1,\r\n textTransform: \"none\",\r\n \"@media (min-width: 600px)\": {\r\n minWidth: \"80px\"\r\n }\r\n }\r\n },\r\n PrivateTabIndicator: {\r\n root: {\r\n bottom: \"10px\",\r\n height: \"3px\"\r\n }\r\n },\r\n MuiFormControl: {\r\n marginNormal: {\r\n marginTop: 8,\r\n marginBottom: 8\r\n }\r\n },\r\n MuiTypography: {\r\n h1: {\r\n fontSize: \"1.15rem\",\r\n fontWeight: \"600\",\r\n color: \"#888\"\r\n },\r\n h2: {\r\n fontSize: \"1rem\",\r\n fontWeight: \"600\"\r\n },\r\n body2: {\r\n fontSize: \"0.75rem\"\r\n }\r\n },\r\n MuiOutlinedInput: {\r\n input: {\r\n padding: \"12px 14px\"\r\n }\r\n },\r\n MuiInputLabel: {\r\n outlined: {\r\n transform: \"translate(14px, 12px) scale(1)\"\r\n }\r\n },\r\n MuiTable: {\r\n root: {\r\n border: \"1px solid #ddd\"\r\n }\r\n },\r\n MuiTableCell: {\r\n root: {\r\n borderLeft: \"1px solid #ddd\",\r\n borderBottom: \"none\"\r\n },\r\n sizeSmall: {\r\n padding: \"4px 8px\"\r\n }\r\n },\r\n MuiTableHead: {\r\n root: {\r\n borderBottom: \"1px solid #ddd\"\r\n }\r\n },\r\n MuiTableFooter: {\r\n root: {\r\n borderTop: \"1px solid #ddd\"\r\n }\r\n },\r\n MuiTablePagination: {\r\n spacer: {\r\n display: \"none\"\r\n }\r\n },\r\n MuiAutocomplete: {\r\n tag: {\r\n height: \"24px\"\r\n }\r\n }\r\n }\r\n});\r\nrender(\r\n \r\n \r\n ,\r\n document.getElementById(\"root\")\r\n);\r\n"],"sourceRoot":""}