{"version":3,"sources":["Config.js","lib/storageUtil.js","components/menu.js","pages/Dashboard.js","pages/Login.js","lib/httpUtil.js","actions/menuActions.js","actions/authenticationActions.js","App.js","registerServiceWorker.js","index.js"],"names":["getBaseUri","a","fetch","method","response","json","getMsalConfig","getScopes","getToken","window","localStorage","getItem","removeToken","removeItem","openLink","event","link","tipoAcceso","marketURL","marketURL_IOS","link_IOS","link_Android","preventDefault","open","userAgent","navigator","vendor","opera","test","openMobile","MSStream","market","fallbackToStore","location","replace","openApp","setTimeout","renderNavMenuItem","name","menuImage","key","href","onClick","src","alt","renderMainMenuItem","dashboardImage","className","orderByPrioridad","b","prioridad","menuItems","getUserData","menu","logoutAction","getMenuAction","useState","showMenu","setShowMenu","lastName","roles","user","setUser","useEffect","userData","loadUserData","loadMenu","id","width","height","viewBox","fill","xmlns","fillRule","clipRule","d","join","filter","m","isMobile","sort","map","x","y","rx","transform","showInHome","renderMainMenu","media","srcSet","loading","loginAction","type","getHttpHeaders","token","Authorization","executeSecureGet","targetUrl","baseUri","mode","headers","status","ok","result","data","executeGetMenu","trackPromise","executeGetUserData","setMenu","useMsal","instance","accounts","isLoggedIn","length","acquireToken","scopes","account","acquireTokenSilent","accessToken","setItem","menuData","Dashboard","logoutPopup","Login","loginRedirect","prompt","isLocalhost","Boolean","hostname","match","register","URL","process","origin","addEventListener","swUrl","then","get","indexOf","serviceWorker","ready","registration","unregister","reload","registerValidSW","catch","console","log","checkValidServiceWorker","onupdatefound","installingWorker","installing","onstatechange","state","controller","error","configuration","pca","PublicClientApplication","AppProvider","App","IndexApp","promiseInProgress","usePromiseTracker","active","spinner","ReactDOM","render","document","getElementById","registerServiceWorker"],"mappings":"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","file":"static/js/main.3e3d1e9a.chunk.js","sourcesContent":["export const tokenStorageKey = \"mi-austral-jwt\";\r\n\r\nexport const getBaseUri = async () => {\r\n const response = await fetch(`assets/config/config.json`, {\r\n method: \"GET\",\r\n });\r\n\r\n var json = await response.json();\r\n\r\n return json[\"api_url\"];\r\n};\r\n\r\nexport const getMsalConfig = async () => {\r\n const response = await fetch(`assets/config/config.json`, {\r\n method: \"GET\",\r\n });\r\n\r\n var json = await response.json();\r\n\r\n return json[\"msal_config\"];\r\n};\r\n\r\nexport const getScopes = async () => {\r\n const response = await fetch(`assets/config/config.json`, {\r\n method: \"GET\",\r\n });\r\n\r\n var json = await response.json();\r\n\r\n return json[\"scopes\"];\r\n};\r\n","import { tokenStorageKey } from '../Config';\r\n\r\nexport const setToken = token => window.localStorage.setItem(tokenStorageKey, token);\r\nexport const getToken = () => window.localStorage.getItem(tokenStorageKey);\r\nexport const removeToken = () => window.localStorage.removeItem(tokenStorageKey);","import React from \"react\";\r\nimport { getToken } from \"../lib/storageUtil\";\r\nimport { isMobile } from 'react-device-detect';\r\n\r\nconst openLink = async (event, link, tipoAcceso, marketURL, marketURL_IOS, link_IOS, link_Android) => {\r\n event.preventDefault();\r\n if (tipoAcceso === \"SSO\") {\r\n window.open(`${link}?t=${getToken()}`);\r\n } else if (tipoAcceso === \"APP_MOBILE\") {\r\n\r\n var userAgent = navigator.userAgent || navigator.vendor || window.opera;\r\n\r\n if (/android/i.test(userAgent)) {\r\n openMobile(marketURL, link_Android);\r\n }\r\n\r\n if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) {\r\n openMobile(marketURL_IOS, link_IOS);\r\n }\r\n\r\n } else {\r\n window.open(link);\r\n }\r\n};\r\n\r\nconst openMobile = async (market, link) => {\r\n\r\n var fallbackToStore = function () {\r\n window.location.replace(market);\r\n };\r\n\r\n var openApp = function () {\r\n window.location.replace(link);\r\n };\r\n\r\n openApp();\r\n\r\n setTimeout(fallbackToStore, 250);\r\n\r\n};\r\n\r\nconst renderNavMenuItem = ({ name, link, menuImage, tipoAcceso, marketURL, marketURL_IOS, link_IOS, link_Android }) => {\r\n return (\r\n openLink(event, link, tipoAcceso, marketURL, marketURL_IOS, link_IOS, link_Android)}\r\n >\r\n {name}\r\n {name}\r\n \r\n );\r\n};\r\n\r\nconst renderMainMenuItem = ({ name, link, dashboardImage, tipoAcceso, marketURL, marketURL_IOS, link_IOS, link_Android }) => {\r\n return (\r\n
\r\n openLink(event, link, tipoAcceso, marketURL, marketURL_IOS, link_IOS, link_Android)}\r\n >\r\n {name}\r\n

{name}

\r\n \r\n
\r\n );\r\n};\r\n\r\nconst orderByPrioridad = (a, b) => b.prioridad - a.prioridad;\r\n\r\nexport const renderMainMenu = (menuItems) => {\r\n return (\r\n menuItems &&\r\n menuItems\r\n .filter((m) => (m.showInHome && (m.tipoAcceso != \"APP_MOBILE\" || (isMobile && m.tipoAcceso === \"APP_MOBILE\"))))\r\n .sort(orderByPrioridad)\r\n .map(renderMainMenuItem)\r\n );\r\n};\r\n\r\nexport const renderNavMenu = (menuItems) => {\r\n return menuItems && menuItems\r\n .filter((m) => (m.tipoAcceso != \"APP_MOBILE\" || (isMobile && m.tipoAcceso === \"APP_MOBILE\")))\r\n .sort(orderByPrioridad)\r\n .map(renderNavMenuItem);\r\n};\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { renderMainMenu, renderNavMenu } from \"../components/menu\";\r\n\r\nexport default ({ getUserData, menu, logoutAction, getMenuAction }) => {\r\n const [showMenu, setShowMenu] = useState(false);\r\n const [user, setUser] = useState({\r\n name: \"\",\r\n lastName: \"\",\r\n roles: [],\r\n });\r\n\r\n\r\n useEffect(() => {\r\n async function loadMenu() {\r\n await getMenuAction();\r\n }\r\n\r\n async function loadUserData() {\r\n const userData = await getUserData();\r\n setUser(userData);\r\n }\r\n\r\n loadUserData();\r\n loadMenu();\r\n }, []);\r\n\r\n return (\r\n
\r\n
\r\n
\r\n setShowMenu(true)}\r\n >\r\n \r\n \r\n \r\n
\r\n

Mi Austral

\r\n
\r\n
\r\n \r\n
\r\n setShowMenu(false)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n {renderMainMenu(menu)}\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 from \"react\";\r\n\r\nexport default ({ loginAction }) => {\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","import { getBaseUri } from \"../Config\";\r\nimport { getToken, removeToken } from \"./storageUtil\";\r\n\r\nconst getHttpHeaders = () => {\r\n const token = getToken();\r\n return token\r\n ? {\r\n Authorization: `Bearer ${token}`,\r\n \"content-type\": \"application/json\",\r\n }\r\n : {\r\n \"content-type\": \"application/json\",\r\n };\r\n};\r\n\r\nexport const executeSecureGet = async (targetUrl) => {\r\n var baseUri = await getBaseUri();\r\n const response = await fetch(`${baseUri}/${targetUrl}`, {\r\n method: \"GET\",\r\n mode: \"cors\",\r\n headers: getHttpHeaders(),\r\n });\r\n\r\n if (response.status === 401) {\r\n removeToken();\r\n window.location.href = \"/\";\r\n }\r\n\r\n if (response.ok) {\r\n const result = await response.json();\r\n return result.data;\r\n }\r\n\r\n return null;\r\n};\r\n","import { executeSecureGet } from \"../lib/httpUtil\";\r\nimport { trackPromise } from 'react-promise-tracker';\r\n\r\nexport const executeGetMenu = async () => {\r\n return await trackPromise(executeSecureGet(\"api/v1/menu\"));\r\n};\r\n","import jwt_decode from \"jwt-decode\";\r\nimport { getToken, removeToken } from \"../lib/storageUtil\";\r\nimport { executeSecureGet } from \"../lib/httpUtil\";\r\n\r\nconst cleanKey = (key) => (key.includes(\"/\") ? key.split(\"/\").pop() : key);\r\n\r\nconst extractTokenData = (token) =>\r\n Object.entries(token).reduce(\r\n (acum, [key, value]) => ({ ...acum, [cleanKey(key)]: value }),\r\n {}\r\n );\r\n\r\nexport const executeRestoreSession = () => {\r\n const existingToken = getToken();\r\n if (existingToken) {\r\n return extractTokenData(jwt_decode(existingToken));\r\n }\r\n return null;\r\n};\r\n\r\nexport const executeLogout = () => {\r\n removeToken();\r\n window.location.href = \"/\";\r\n};\r\n\r\nexport const executeGetUserData = async () => {\r\n return await executeSecureGet(\"api/v1/user\");\r\n};\r\n","import React, { useState } from \"react\";\r\nimport { getScopes } from \"./Config\";\r\nimport Dashboard from \"./pages/Dashboard\";\r\nimport Login from \"./pages/Login\";\r\nimport { executeGetMenu } from \"./actions/menuActions\";\r\nimport { executeGetUserData } from \"./actions/authenticationActions\";\r\nimport { setToken } from \"./lib/storageUtil\";\r\nimport { useMsal } from \"@azure/msal-react\";\r\n\r\nexport default () => {\r\n const [menu, setMenu] = useState(null);\r\n\r\n const { instance, accounts } = useMsal();\r\n\r\n const isLoggedIn = accounts.length > 0;\r\n\r\n const logoutAction = () => {\r\n instance.logoutPopup();\r\n };\r\n\r\n const loginAction = () => {\r\n instance.loginRedirect({\r\n prompt: \"select_account\",\r\n });\r\n };\r\n\r\n const acquireToken = async () => {\r\n const scopes = await getScopes();\r\n const account = accounts[0];\r\n const response = await instance.acquireTokenSilent({\r\n scopes: scopes,\r\n account: account,\r\n });\r\n if (response) {\r\n setToken(response.accessToken);\r\n }\r\n };\r\n\r\n const getMenuAction = async () => {\r\n await acquireToken();\r\n const menuData = await executeGetMenu();\r\n setMenu(menuData);\r\n };\r\n\r\n const getUserData = async () => {\r\n await acquireToken();\r\n const userData = await executeGetUserData();\r\n return userData;\r\n };\r\n\r\n if (isLoggedIn) {\r\n return (\r\n \r\n );\r\n } else {\r\n return (\r\n \r\n );\r\n }\r\n};\r\n","// In production, we register a service worker to serve assets from local cache.\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 the \"N+1\" visit to a page, since previously\r\n// cached resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\r\n// This link also includes instructions on opting out of this behavior.\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 default function register () {\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);\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/facebookincubator/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. Lets check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl);\r\n } else {\r\n // Is not local host. Just register service worker\r\n registerValidSW(swUrl);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW (swUrl) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the old content will have been purged and\r\n // the fresh content will have been added to the cache.\r\n // It's the perfect time to display a \"New content is\r\n // available; please refresh.\" message in your web app.\r\n console.log('New content is available; please refresh.');\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 }\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) {\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 if (\r\n response.status === 404 ||\r\n response.headers.get('content-type').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);\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 from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport App from \"./App\";\r\nimport registerServiceWorker from \"./registerServiceWorker\";\r\nimport { MsalProvider } from \"@azure/msal-react\";\r\nimport { PublicClientApplication } from \"@azure/msal-browser\";\r\nimport { getMsalConfig } from \"./Config\";\r\nimport { usePromiseTracker } from \"react-promise-tracker\";\r\nimport LoadingOverlay from \"react-loading-overlay\";\r\n\r\ngetMsalConfig().then((configuration) => {\r\n const pca = new PublicClientApplication(configuration);\r\n\r\n const AppProvider = () => (\r\n \r\n \r\n \r\n );\r\n\r\n const IndexApp = () => {\r\n const { promiseInProgress } = usePromiseTracker();\r\n return (\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n ReactDOM.render(, document.getElementById(\"root\"));\r\n\r\n registerServiceWorker();\r\n});\r\n"],"sourceRoot":""}