{"version":3,"sources":["constants/text/utils.ts","components/appHeader/lang.ts","components/appHeader/styled.ts","components/appHeader/index.tsx","components/authentication/logout.tsx","components/authentication/logoutCallback.tsx","components/privateRoute/privateRoute.tsx","components/authentication/callback.tsx","components/authentication/silentRenew.tsx","pages/login/redirect.tsx","components/authentication/style/styled.ts","components/Icons/LandingPageIcon.tsx","components/authentication/lang.tsx","components/authentication/login.tsx","pages/login/style.ts","pages/login/index.tsx","routes/index.ts","App.tsx","containers/appAuth/index.tsx","hooks/useInterval.ts","containers/appWrapper/styled.ts","containers/appWrapper/index.tsx","index.tsx","client/config.ts","client/configuration/index.ts","client/constants.ts","components/TaskView/CancelModal/lang.ts","components/TaskView/CancelModal/index.tsx","AppContext.tsx","client/auth/index.ts","services/authService.ts","services/customerAuthService.ts"],"names":["__webpack_require__","d","__webpack_exports__","getAuthTranslatedKey","getDashboardTranslatedKey","getAddTicketTranslatedKey","getTicketTranslatedKey","getTaskTranslatedKey","getWarningModalTranslatedKey","getStatusTranslatedKey","getTicketTypeTranslatedKey","react__WEBPACK_IMPORTED_MODULE_0__","_AppContext__WEBPACK_IMPORTED_MODULE_1__","_auth_json__WEBPACK_IMPORTED_MODULE_3__","_dashboard_json__WEBPACK_IMPORTED_MODULE_4__","_addTicket_json__WEBPACK_IMPORTED_MODULE_5__","_task_json__WEBPACK_IMPORTED_MODULE_6__","_ticket_json__WEBPACK_IMPORTED_MODULE_7__","_warningModal_json__WEBPACK_IMPORTED_MODULE_8__","_status_json__WEBPACK_IMPORTED_MODULE_9__","_tickeType_json__WEBPACK_IMPORTED_MODULE_10__","key","language","useContext","LanguageContext","authTexts","dashboardTexts","addTicketTexts","ticketTexts","taskTexts","warningModalTexts","statusTexts","ticketTypeTexts","useConstLang","logoutButtonText","siteTitle","cancelWarning","styled","StyledHeader","div","withConfig","displayName","componentId","LinksContainer","ul","AppHeader","userDisplayName","AppContext","T","_useState","useState","_useState2","Object","slicedToArray","isCancelModalOpen","triggerCancelModal","goToDashboard","window","location","href","react_default","a","createElement","CancelModal","isModalOpen","goBackHandler","triggerModal","text","header","appTitle","userName","headerLink","form_button","onClick","appearance","isDismiss","menu","react_router_dom","exact","to","activeStyle","borderBottom","e","preventDefault","pathname","match","Logout","userManager","useEffect","_ref","asyncToGenerator","regenerator_default","mark","_callee","wrap","_context","prev","next","logout","stop","apply","this","arguments","logoutUser","Fragment","LogoutCallback","signoutRedirectCallback","PrivateRoute","Component","component","rest","objectWithoutProperties","_excluded","isUserAuthenticated","isAuthenticated","history","useHistory","react_router","assign","render","props","push","Callback","signinRedirectCallback","SilentRenew","signinSilentCallback","LoginRedirect","objectDestructuringEmpty","redirect","_ref2","setTimeout","LoginWrapper","LoginOverlay","LoginFooter","LoginBody","LoginForm","LoginContent","style_styled","ActionsWrapper","PageContainer","LandingPageFooter","section","LandingPage","xmlns","width","height","viewBox","id","colorInterpolationFilters","in","values","fill","fillRule","transform","filter","signInBody","loginButton","legend","loaderText","LoginComponent","waitingForContentLoad","doLoginHandler","split","className","LandingPageIcon","typography","style","color","margin","tag","map","str","index","length","loader","isFull","logo","composition_link","size","primary","alternative","target","LoginPageContainer","LoginPage","setWaitingForContentLoad","loginFetch","redirectLoginHandlerWithCustomer","_ref3","_callee2","loginCustomer","_context2","signinRedirect","_x","_useState3","_useState4","hasDiscoveryKeys","setHasDiscoveryKeys","useLayoutEffect","getDiscoveryConfig","then","getDiscoveryKeys","login_LoginComponent","event","toaster","DashboardTaskList","lazy","Promise","all","bind","routes","privateRoutes","path","App","react","fallback","value","defaultAppContext","ROUTES","routeProps","privateRoute_PrivateRoute","callback_Callback","login","login_redirect","logout_Logout","logoutCallback_LogoutCallback","silentRenew_SilentRenew","AppAuth","_useContext","sessionExpires","_React$useState","React","_React$useState2","isPaused","setPaused","count","setCount","delay","setDelay","_useState5","isADFSLogged","sessionisExpired","exp","Date","now","callback","intervalRef","useRef","callbackRef","current","setInterval","clearInterval","useInterval","console","log","appWrapper_styled","ContainerStyle","AppWrapper","userAuthLoggedInStatus","setUserAuthLoggedInStatus","sent","abrupt","getAuthStatus","status","wrapper","setHeader","appHeader","setMain","mainLayout","isFluid","children","src_App","setFooter","appAuth","rootElement","document","getElementById","ReactDOM","StrictMode","styled_components_browser_esm","theme","mode","core","toasterSystem","appWrapper_AppWrapper","BASE_URL","axiosConfig","defaultHost","_configuration__WEBPACK_IMPORTED_MODULE_0__","HOST","concat","protocol","hostname","config","localStorage","getItem","JSON","parse","serviceOrderApi","headers","Content-Type","Accept","Access-Control-Allow-Origin","Cache-Control","_web_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__","_web_node_modules_babel_preset_react_app_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default","apiUrl","res","data","host","axios","get","setItem","stringify","error","code","t0","message","response","StatusCode","AUTH_LOGIN_URI","SERVICE_ORDER","TASK_EDIT","TASK_STATUS_EDIT","SERVICE_ORDER_ALL","SERVICE_ORDER_TEMPLATE","TASK_DETAILS","TASK_LIST","_config__WEBPACK_IMPORTED_MODULE_0__","TASK","title","cancelEditingButton","closeButton","modal","isOpen","handleClickOutside","hasHeaderButton","minWidth","maxWidth","actions","whiteSpace","configureUserManager","createContext","setLanguage","lang","authenticated","role","userEmail","setLang","setUserRole","setUserDisplayName","setUserEmail","setSessionExpires","AppContextProvider","_web_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_3__","setRole","setDisplayName","_useState6","_useState7","_useState8","getUser","userData","_JSON$parse","roleData","displayNameData","userEmailData","email","isCanceled","_web_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__","_web_node_modules_babel_preset_react_app_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default","getUserData","asyncFn","provider","_web_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__","react__WEBPACK_IMPORTED_MODULE_4___default","Provider","Consumer","getRefreshToken","_ref4","token","refreshToken","post","_x2","getUserInfo","_ref5","_callee3","_context3","keys","IDENTITY","identityUrl","AUTHCLIENT","authClientId","authority","client_id","redirect_uri","origin","post_logout_redirect_uri","silent_redirect_uri","response_type","scope","loadUserInfo","SaveTokens","RequireHttpsMetadata","GetClaimsFromUserInfoEndpoint","automaticSilentRenew","UserManager","objectSpread2","userStore","WebStorageStateStore","store","events","addUserLoaded","user","indexOf","navigateToScreen","addSilentRenewError","addAccessTokenExpired","METADATA_OIDC","issuer","jwks_uri","authorization_endpoint","token_endpoint","userinfo_endpoint","end_session_endpoint","metadata","metadataUrl","customerAccess","undefined","unparsedCustomerAuthToken","getExpirationDate","jwToken","jwt","atob","getCustomerUser","userInfoResponse","isExpired","getToken","refreshTokenResponse","clear","setToken","removeItem","createCustomerTokenProvider","sessionUser","oidcStorage","access_token","setupAxiosInterceptor","storedKeys","catch","err","replace","settings","signingKeys","getUserManager","_localStorage$getItem","_localStorage$getItem2","clearStaleState","_callee4","_context4","signoutRedirect","id_token_hint","id_token","removeUser","_callee5","_context5","profile","name","expires_at","_x3","_ref6","_callee6","_context6","_x4","getIdToken","_ref7","_callee7","_context7","_x5","_ref9","_callee11","customerManager","_context11","interceptors","request","use","_ref10","_callee9","access_Token","_context9","Authorization","defaults","common","_x9","_ref11","_callee10","originalRequest","_context10","_retry","reject","_x10","_x7","_x8"],"mappings":"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","file":"static/js/main.748c7887.chunk.js","sourcesContent":["import { useContext } from 'react';\nimport { LanguageContext } from '../../AppContext';\nimport constantsTexts from './constants.json';\nimport authTexts from './auth.json';\nimport dashboardTexts from './dashboard.json';\nimport addTicketTexts from './addTicket.json';\nimport taskTexts from './task.json';\nimport ticketTexts from './ticket.json';\nimport warningModalTexts from './warningModal.json';\nimport statusTexts from './status.json';\nimport ticketTypeTexts from './tickeType.json';\n\nimport * as I from './interfaces';\n\nexport const getConstantsTranslatedKey = (\n key: keyof I.ConstantsTextKeys\n): string[] => {\n const { language } = useContext(LanguageContext);\n return constantsTexts[language][key];\n};\n\nexport const getAuthTranslatedKey = (\n key: keyof I.AuthTextKeys\n): string => {\n const { language } = useContext(LanguageContext);\n return authTexts[language][key];\n};\n\nexport const getDashboardTranslatedKey = (\n key: keyof I.DashboardTextKeys\n): string => {\n const { language } = useContext(LanguageContext);\n return dashboardTexts[language][key];\n};\n\nexport const getAddTicketTranslatedKey = (\n key: keyof I.AddTicketTextKeys\n): string => {\n const { language } = useContext(LanguageContext);\n return addTicketTexts[language][key];\n};\n\nexport const getTicketTranslatedKey = (\n key: keyof I.TicketTextKeys\n): string => {\n const { language } = useContext(LanguageContext);\n return ticketTexts[language][key];\n};\n\nexport const getTaskTranslatedKey = (\n key: keyof I.TaskTextKeys\n): string => {\n const { language } = useContext(LanguageContext);\n return taskTexts[language][key];\n};\n\nexport const getWarningModalTranslatedKey = (\n key: keyof I.WarningModalTextKeys\n): string => {\n const { language } = useContext(LanguageContext);\n return warningModalTexts[language][key];\n};\n\nexport const getStatusTranslatedKey = (\n key: keyof I.StatusTextKeys\n): string => {\n const { language } = useContext(LanguageContext);\n return statusTexts[language][key];\n};\n\nexport const getTicketTypeTranslatedKey = (\n key: keyof I.TicketTypeTextKeys\n): string => {\n const { language } = useContext(LanguageContext);\n return ticketTypeTexts[language][key];\n};\n","import { getAuthTranslatedKey, getTaskTranslatedKey } from '../../constants/text/utils';\n\nconst useConstLang = () => {\n const logoutButtonText = getAuthTranslatedKey('logoutButtonText');\n const siteTitle = getAuthTranslatedKey('siteTitle');\n const cancelWarning = getTaskTranslatedKey('cancelWarning');\n\n return {\n logoutButtonText,\n siteTitle,\n cancelWarning\n };\n};\n\nexport default useConstLang;","import styled from 'styled-components';\n\nconst StyledHeader = styled.div`\n > div {\n > div + div {\n > div + div {\n > div {\n padding: 0;\n\n > div {\n > div > div {\n align-items: flex-start;\n > div {\n z-index: 100;\n }\n }\n }\n\n + span {\n display: none;\n }\n\n > a {\n min-width: 53px;\n }\n }\n\n > span {\n background-color: var(--grey10);\n }\n }\n }\n \n label {\n font-size: 14px;\n font-weight: normal;\n }\n }\n`;\n\nexport const LinksContainer = styled.ul`\n margin: 0;\n padding: 0;\n\n a {\n font-size: 18px;\n text-decoration: none;\n color: var(--charcoal);\n font-weight: bold;\n padding: 1px 8px 5px 8px;\n margin: 0 5px;\n }\n`;\n\nexport default {\n StyledHeader,\n LinksContainer,\n};\n","import React, { useContext, useState } from 'react';\nimport { NavLink, BrowserRouter as Router, useHistory } from 'react-router-dom';\nimport { Header } from '@accesa/react-core/build/layout/header';\nimport { Button } from '@accesa/react-core/build/form/button';\n\nimport CancelModal from '../TaskView/CancelModal';\nimport { AppContext } from '../../AppContext';\n\nimport useConstLang from './lang';\nimport S from './styled';\n\nconst AppHeader: React.FC = (): React.ReactElement => {\n const { userDisplayName } = useContext(AppContext);\n const T = useConstLang();\n\n const [isCancelModalOpen, triggerCancelModal] = useState(false);\n\n function handleModalTrigger(e: React.MouseEvent) {\n e.preventDefault();\n window.location.pathname.match(/.*(add|edit).*/)\n ? triggerCancelModal(true)\n : goToDashboard();\n };\n\n function goToDashboard() {\n window.location.href = '/dashboard/list';\n };\n\n function doLogout() {\n window.location.href = '/logout';\n }\n\n return (\n \n \n\n doLogout()}\n text={T.logoutButtonText}\n appearance={'primary'}\n isDismiss={true}\n />\n }\n menu={\n \n \n \n Dashboard\n \n \n \n }\n />\n \n );\n};\n\nexport default AppHeader;\n","import React, {useContext, useEffect} from 'react';\nimport { AppContext } from './../../AppContext';\nimport { logout } from './../../services/authService';\n\nexport const Logout: React.FC = (): React.ReactElement => {\n const { userManager} = useContext(AppContext);\n\n useEffect(() => {\n const logoutUser = async () => {\n await logout(userManager);\n };\n logoutUser();\n },[]);\n\n return <>;\n};","import React, {useContext, useEffect} from 'react';\nimport { AppContext } from '../../AppContext';\nimport { signoutRedirectCallback } from '../../services/authService';\n\nexport const LogoutCallback: React.FC = (): React.ReactElement => {\n const {userManager} = useContext(AppContext);\n\n useEffect(() => {\n signoutRedirectCallback(userManager);\n },[]);\n\n return <>;\n};\n","import { AppContext } from '../../AppContext';\nimport React, { useContext } from 'react';\nimport { Route } from 'react-router-dom';\nimport { useHistory } from 'react-router-dom';\nimport { isAuthenticated } from '../../services/authService';\n\nexport const PrivateRoute = ({ component, ...rest }: any) => {\n const {userManager} = useContext(AppContext);\n const isUserAuthenticated = isAuthenticated(userManager);\n const history = useHistory();\n\n const renderFn = (Component: any) => (props: any) => {\n if (!!Component && !!isUserAuthenticated) {\n return ;\n } else {\n history.push('/loginWithExtranet');\n }\n };\n\n return ;\n};\n","import { AppContext } from './../../AppContext';\nimport React, {useContext, useEffect } from 'react';\nimport { signinRedirectCallback } from '../../services/authService';\n\nexport const Callback: React.FC = (): React.ReactElement => {\n const { userManager } = useContext(AppContext);\n useEffect(() => {\n signinRedirectCallback(userManager);\n });\n return <>;\n};","import React, {useContext, useEffect} from 'react';\nimport { AppContext } from '../../AppContext';\nimport { signinSilentCallback } from '../../services/authService';\n\nexport const SilentRenew: React.FC = (): React.ReactElement => {\n const {userManager} = useContext(AppContext);\n\n useEffect(() => {\n signinSilentCallback(userManager);\n });\n\n return <>;\n};","import React, { useEffect } from 'react';\nimport { LoginProps } from './props';\n\nconst LoginRedirect: React.FC = ({ }: LoginProps): React.ReactElement => {\n const redirect = async () => {\n setTimeout(function () {\n window.location.href='/login';\n }, 1000);\n };\n\n useEffect(() => {\n redirect();\n },[]);\n\n return (\n <>\n \n );\n};\n\nexport default LoginRedirect;","import styled from 'styled-components';\n\nconst LoginWrapper = styled.div`\n position: relative;\n`;\n\nconst LoginOverlay = styled.div`\n position: fixed;\n min-width: 100vw;\n min-height: 100vh;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n z-index: 1;\n background-color: var(--primaryBlue);\n`;\n\nconst LoginFooter = styled.div`\n margin-top: auto;\n\n svg {\n margin-left: 8px;\n }\n`;\n\nconst LoginBody = styled.div`\n display: flex;\n flex-direction: column;\n position: relative;\n text-align: center;\n width: 620px;\n min-height: 600px;\n z-index: 10;\n background-color: var(--white);\n box-shadow: 0 0 4px 2px rgba(var(--black) 0.1);\n border-radius: 4px;\n margin: 0 auto;\n padding: 75px 80px 16px;\n\n .landingPageIcon {\n margin: 35px auto 0;\n }\n\n h1 {\n font-weight: 630;\n margin-top: 15px;\n margin-bottom: 50px;\n font-size: 32px\n }\n\n h2 {\n font-weight: bold;\n margin-bottom: 8px;\n font-size: 22px;\n }\n`;\n\nconst LoginForm = styled.div`\n width: 240px;\n margin: 20px auto;\n\n > div {\n width: 100%;\n margin: 4px 0;\n }\n`;\n\nconst LoginContent = styled.div`\n margin-top: auto;\n margin-bottom: auto;\n`;\n\nconst ActionsWrapper = styled.div`\n padding-top: 20px;\n position: relative;\n \n >div {\n position: absolute;\n z-index: 1;\n width: 100%;\n margin: 0;\n background: #fff;\n padding: 10px;\n }\n`;\n\nconst PageContainer = styled.div`\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n`;\n\nconst LandingPageFooter = styled.section`\n position: relative;\n display: flex;\n justify-content: center;\n text-align: center; \n z-index: 10;\n\n > a {\n color: white;\n margin: calc((2 / 3) * (100vh - 600px) / 2) 21px 0;\n }\n`;\n\nexport default {\n LoginWrapper,\n LoginOverlay,\n LoginForm,\n LoginBody,\n ActionsWrapper,\n PageContainer,\n LoginFooter,\n LoginContent,\n LandingPageFooter\n};","import React from 'react';\n\nexport const LandingPage: React.FC = (): React.ReactElement => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nexport default LandingPage;","import { getAuthTranslatedKey } from '../../constants/text/utils';\n\nconst useConstLang = () => {\n const siteTitle = getAuthTranslatedKey('siteTitle');\n const signInBody = getAuthTranslatedKey('signInBody');\n const loginButton = getAuthTranslatedKey('loginButton');\n const legend = getAuthTranslatedKey('legend');\n const loaderText = getAuthTranslatedKey('loaderText');\n\n return {\n siteTitle,\n signInBody,\n loginButton,\n legend,\n loaderText\n };\n};\n\nexport default useConstLang;\n","import React from 'react';\n\nimport {\n Paragraph,\n SmallParagraph,\n Title,\n} from '@accesa/react-core/build/composition/typography';\nimport { Link } from '@accesa/react-core/build/composition/link';\nimport { Button } from '@accesa/react-core/build/form/button';\nimport { Loader } from '@accesa/react-core/build/animations/loader';\nimport RatiodataLogo from '@accesa/react-core/build/layout/header/style/logo';\n\nimport S from './style/styled';\nimport LandingPageIcon from '../Icons/LandingPageIcon';\nimport { LoginProps } from './props';\nimport useConstLang from './lang';\n\nexport const LoginComponent: React.FC = ({\n waitingForContentLoad,\n doLoginHandler,\n}: LoginProps): React.ReactElement => {\n const T = useConstLang();\n const signInBody = T.signInBody.split('\\n');\n\n return (\n <>\n \n \n \n
\n \n
\n\n {T.siteTitle}\n\n {signInBody.map((str, index) => (\n
\n \n {str}\n \n {(index < signInBody.length - 1) &&
}\n
\n ))}\n\n \n \n {waitingForContentLoad && (\n <>\n \n \n )}\n doLoginHandler()}\n />\n \n \n\n \n {T.legend} \n \n
\n
\n\n \n \n \n \n \n );\n};","import styled from 'styled-components';\n\nconst LoginPageContainer = styled.div`\n position: fixed;\n top: calc((100vh - 600px) / 2);\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n`;\n\nexport default {\n LoginPageContainer\n};\n","import React, { useContext, useLayoutEffect, useState } from 'react';\n\nimport { ToasterGroup } from '@accesa/react-core/build/ui/toaster';\n\nimport { LoginComponent } from '../../components/authentication/login';\n\nimport { LoginProps } from './props';\nimport S from './style';\nimport { getDiscoveryKeys, signinRedirect } from '../../services/authService';\nimport { AppContext } from '../../AppContext';\nimport { getDiscoveryConfig } from '../../client/configuration';\n\nconst LoginPage: React.FC = ({ }: LoginProps): React.ReactElement => {\n const { userManager } = useContext(AppContext);\n const [waitingForContentLoad, setWaitingForContentLoad] = useState(\n false\n );\n\n const loginFetchHandler = (event?: React.FormEvent) => {\n if (event) {\n event.preventDefault();\n }\n loginFetch();\n };\n\n const loginFetch = async () => {\n setWaitingForContentLoad(true);\n redirectLoginHandlerWithCustomer(true);\n };\n\n const redirectLoginHandlerWithCustomer = async (loginCustomer: boolean) => {\n setWaitingForContentLoad(true);\n setTimeout(function () {\n if (!loginCustomer) {\n setWaitingForContentLoad(false);\n } else {\n setWaitingForContentLoad(false);\n signinRedirect(userManager);\n }\n }, 1000);\n };\n\n const [hasDiscoveryKeys, setHasDiscoveryKeys] = useState();\n\n const makingSureDataIsPreloaded = () => {\n getDiscoveryConfig().then(() => {\n getDiscoveryKeys().then(() => {\n setHasDiscoveryKeys(true);\n });\n });\n };\n\n useLayoutEffect(() => {\n if(!hasDiscoveryKeys) {\n makingSureDataIsPreloaded();\n }\n });\n\n return (\n \n loginFetchHandler()}\n waitingForContentLoad={waitingForContentLoad}\n />\n \n \n );\n};\n\nexport default LoginPage;","import { lazy } from 'react';\n\nconst DashboardTaskList = lazy(() =>\n import('../pages/dashboard/list')\n);\n\nconst TicketAdd = lazy(() =>\n import('../pages/dashboard/add')\n);\n\nconst TaskView = lazy(() =>\n import('../pages/dashboard/TaskView')\n);\n\nconst TaskEdit = lazy(() =>\n import('../pages/dashboard/TaskEdit')\n);\n\nconst privateRoutes = [\n { \n key: 'test1234',\n path: '/',\n component: DashboardTaskList,\n exact: true\n },\n { \n key: 'test123',\n path: '/dashboard/',\n component: DashboardTaskList,\n exact: true\n },\n {\n key: 'dashboard',\n path: '/dashboard/list',\n component: DashboardTaskList,\n exact: true\n },\n {\n key: 'add-ticket',\n path: '/dashboard/ticket/add/:typeId',\n component: TicketAdd,\n exact: true\n },\n {\n key: 'view-task',\n path: '/dashboard/task/view/:taskId',\n component: TaskView,\n exact: true\n },\n {\n key: 'edit-task',\n path: '/dashboard/task/edit/:taskId',\n component: TaskEdit,\n exact: true\n },\n];\n\nexport default {\n privateRoutes\n};\n","import React, { Suspense } from 'react';\nimport { BrowserRouter as Router, Route } from 'react-router-dom';\n\nimport { Loader } from '@accesa/react-core/build/animations/loader';\n\nimport { Logout } from './components/authentication/logout';\nimport { LogoutCallback } from './components/authentication/logoutCallback';\nimport { PrivateRoute } from './components/privateRoute/privateRoute';\nimport { Callback } from './components/authentication/callback';\nimport { SilentRenew } from './components/authentication/silentRenew';\n\nimport LoginRedirect from './pages/login/redirect';\nimport LoginPage from './pages/login';\nimport ROUTES from './routes';\n\nimport './styles.css';\nimport { AppContextProvider, defaultAppContext } from './AppContext';\n\nconst App: React.FC = (): React.ReactElement => {\n return (\n }>\n \n \n {ROUTES.privateRoutes.map((routeProps) => (\n \n ))}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default App;\n","import React, { useEffect, useState, useContext } from 'react';\nimport {} from 'react-router-dom';\nimport { isAuthenticated, signinRedirect } from '../../services/authService';\nimport { useInterval } from '../../hooks/useInterval';\nimport { AppContext } from '../../AppContext';\n\nconst AppAuth: React.FC = (): React.ReactElement => {\n const { userManager, sessionExpires } = useContext(AppContext);\n const defaultDelay = 25000;\n const [isPaused, setPaused] = React.useState(false);\n const [count, setCount] = useState(0);\n const [delay, setDelay] = useState(defaultDelay);\n const [isADFSLogged] = useState(isAuthenticated(userManager));\n\n const sessionisExpired = (exp: number | null) => {\n if (!exp) {\n return false;\n }\n return Date.now() < exp;\n };\n\n useInterval(\n () => {\n if (count < 36000) {\n console.log('expiry:',sessionExpires, sessionisExpired(sessionExpires));\n setCount(count + 1);\n } else {\n setDelay(null);\n }\n },\n isPaused ? null : delay\n );\n\n useEffect(() => {\n if(sessionisExpired(sessionExpires) && isADFSLogged) {\n signinRedirect(userManager);\n console.log('session expire status: ', sessionisExpired(sessionExpires));\n } else {\n console.log('session expire status: ', sessionisExpired(sessionExpires));\n }\n },[count]);\n\n useEffect(() => {\n !isADFSLogged && setPaused(true);\n }, [isADFSLogged]);\n\n useEffect(() => {\n isPaused\n ? setDelay(null) : setDelay(defaultDelay);\n }, [isPaused]);\n\n return <>;\n};\n\nexport default AppAuth;\n","import React, { useEffect, useRef } from 'react';\n\nexport function useInterval(\n callback: React.EffectCallback,\n delay: number | null,\n): React.MutableRefObject {\n const intervalRef = useRef(null);\n const callbackRef = useRef(callback);\n\n useEffect(() => {\n callbackRef.current = callback;\n }, [callback]);\n\n useEffect(() => {\n if (typeof delay === 'number') {\n intervalRef.current = window.setInterval(() => callbackRef.current(), delay);\n return () => window.clearInterval(intervalRef.current || 0);\n }\n }, [delay]);\n\n return intervalRef;\n}","import styled from 'styled-components';\n\n\nconst ContainerStyle = styled.div`\n height: 100%;\n\n >div {\n height: 100%;\n }\n \n #rc-wrapper-l2care {\n > main {\n height: 100%;\n\n > div {\n height: 100%;\n flex-direction: column;\n \n min-height: calc(100vh - (56px + 16px + 16px + 30px)); /*header height + two margins + footer, todo, add them to const*/\n \n >div {\n height: 100%;\n margin-top: 0;\n }\n }\n }\n\n > footer {\n display: none;\n }\n }\n\n .react-datepicker-popper {\n >div >div {\n min-height: 304px;\n }\n }\n`;\n\nexport default {\n ContainerStyle,\n};\n","import React, { useContext, useState } from 'react';\nimport { Wrapper } from '@accesa/react-core/build/layout/wrapper';\nimport { MainLayout } from '@accesa/react-core/build/layout/mainLayout';\nimport {\n AppContext,\n AppContextProvider,\n defaultAppContext,\n} from '../../AppContext';\nimport AppHeader from '../../components/appHeader';\nimport App from '../../App';\nimport AppAuth from '../appAuth';\nimport S from './styled';\nimport { isAuthenticated } from '../../services/authService';\n\nexport const AppWrapper: React.FC = (): React.ReactElement => {\n const [userAuthLoggedInStatus, setUserAuthLoggedInStatus] = useState();\n const { userManager } = useContext(AppContext);\n\n const getAuthStatus = async () => {\n const isUserAuthenticated = await isAuthenticated(userManager);\n if (isUserAuthenticated) {\n return true;\n } else {\n return false;\n }\n };\n\n const authLoggedInStatus = getAuthStatus();\n authLoggedInStatus.then(status => {\n setUserAuthLoggedInStatus(status);\n });\n\n return (\n \n {userAuthLoggedInStatus ? (\n \n \n }\n setMain={} />}\n setFooter={}\n />\n \n ) : (\n }\n setMain={} />}\n />\n )}\n \n );\n};\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { ThemeProvider } from 'styled-components';\nimport { ToasterSystem } from '@accesa/react-core/build/ui/toasterSystem';\nimport { Core } from '@accesa/react-core/build/core';\nimport { AppWrapper } from './containers/appWrapper';\n\nconst rootElement =\n document.getElementById('root') || document.createElement('div');\n\nReactDOM.render(\n \n \n \n \n \n \n \n ,\n rootElement\n);\n","import { AxiosRequestConfig } from 'axios';\nimport { getDiscoveryConfig } from './configuration';\n\nlet HOST = `${window.location.protocol}//${window.location.hostname}:5102`;\nlet defaultHost = 'api/v1';\n\ngetDiscoveryConfig().then(() => {\n const config = localStorage.getItem('config');\n HOST = JSON.parse(config || '').serviceOrderApi;\n});\n\ndefaultHost = `${HOST}/api/v1`;\nexport const BASE_URL = localStorage.getItem('config') ? `${JSON.parse(localStorage.getItem('config') || '').serviceOrderApi}/api/v1` : defaultHost;\nconsole.log('BASE_URL api',BASE_URL);\nexport const axiosConfig: AxiosRequestConfig = {\n headers: {\n 'Content-Type': 'application/json',\n Accept: 'application/json;',\n 'Access-Control-Allow-Origin': '*',\n 'Cache-Control': 'no-cache',\n },\n};\n","import axios from 'axios';\nimport { axiosConfig } from '../config';\nimport * as I from '../../models/configuration';\n\nexport const getDiscoveryConfig = async (): Promise => {\n try {\n if (!localStorage.getItem('config')) {\n const apiUrl = process.env.NODE_ENV === 'development' ? `${window.location.protocol}//${window.location.hostname}:5100/api/v1/Configuration` : `${window.location.protocol}//${window.location.host}/api/v1/Configuration`;\n \n const res = await axios.get(\n `${apiUrl}`,\n axiosConfig\n );\n const { data } = res;\n localStorage.setItem('config', JSON.stringify(data));\n return data;\n } else {\n return {\n error: 'err',\n code: 'key err'\n };\n }\n } catch (error) {\n return {\n error: error.message,\n code: error.response.data.StatusCode\n };\n }\n};","import { BASE_URL } from './config';\n\nexport const AUTH_LOGIN_URI = `${BASE_URL}/Login`;\nexport const DASHBOARD_URL = `${BASE_URL}/Dashboard`;\n\nexport const SERVICE_ORDER = 'ServiceOrderRequest';\nexport const TASK = 'ServiceOrderTask';\nexport const TASK_EDIT = `${SERVICE_ORDER}`;\nexport const TASK_STATUS_EDIT = `${TASK}`;\n\nexport const SERVICE_ORDER_TYPE = 'ServiceOrderType';\nexport const SERVICE_ORDER_ALL = `${SERVICE_ORDER_TYPE}/GetAll`;\nexport const SERVICE_ORDER_TEMPLATE = `${SERVICE_ORDER_TYPE}/GetServiceOrderTemplateTasks`;\n\nexport const TASK_DETAILS = `${TASK}/Details`;\nexport const TASK_LIST = `${TASK}/GetByPage`;\n\n\nexport const CONFIG_URL = 'api/v1/Configuration';","import { getWarningModalTranslatedKey } from '../../../constants/text/utils';\n\nconst useConstLang = () => {\n const title = getWarningModalTranslatedKey('title');\n const cancelEditingButton = getWarningModalTranslatedKey('cancelEditingButton');\n const closeButton = getWarningModalTranslatedKey('closeButton');\n\n return {\n title,\n cancelEditingButton,\n closeButton\n };\n};\n\nexport default useConstLang;","import React, { ReactElement } from 'react';\n\nimport { Button } from '@accesa/react-core/build/form/button';\nimport { Modal } from '@accesa/react-core/build/layout/modal';\n\nimport { CancelModalProps } from './props';\nimport useConstLang from './lang';\n\n\nconst CancelModal: React.FC = ({\n isModalOpen,\n goBackHandler,\n triggerModal,\n text\n}: CancelModalProps): ReactElement => {\n const T = useConstLang();\n return (\n triggerModal(false)}\n hasHeaderButton={false}\n title={T.title}\n style={{ minWidth: '328px', maxWidth: '330px' }}\n actions={[\n goBackHandler()}\n />,\n triggerModal(false)}\n />\n ]}\n >\n
\n {text}\n
\n \n );\n};\n\nexport default CancelModal;","import React, { FC, useState, useEffect } from 'react';\n\nimport { configureUserManager, getUserData, isAuthenticated } from './services/authService';\n\nimport { AppContextProps, Language, LanguageProps } from './models/app';\nimport { Role } from './models/auth';\n\nconst userManager = configureUserManager();\n\nexport const LanguageContext = React.createContext({\n language: 'de-DE',\n setLanguage: (language) => { },\n});\n\nexport const defaultLanguageContext: LanguageProps = {\n language: 'de-DE',\n setLanguage: (language) => { }\n};\n\nexport const AppContext = React.createContext({\n lang: 'en-US',\n authenticated: true,\n theme: 'light',\n userManager: userManager && userManager,\n role: null,\n userEmail: null,\n userDisplayName: null,\n sessionExpires: null,\n setLang: () => { },\n setUserRole: () => { },\n setUserDisplayName: () => { },\n setUserEmail: () => { },\n setSessionExpires: () => { }\n});\n\nexport const defaultAppContext: AppContextProps = {\n lang: 'de-DE',\n authenticated: true,\n theme: 'light',\n userManager: userManager && userManager,\n role: null,\n userEmail: null,\n userDisplayName: null,\n sessionExpires: null,\n setLang: () => { },\n setUserRole: () => { },\n setUserDisplayName: () => { },\n setUserEmail: () => { },\n setSessionExpires: () => { }\n};\n\nexport const AppContextProvider = ({ children }: any) => {\n const [role, setRole] = useState(null);\n const [displayName, setDisplayName] = useState(null);\n const [userEmail, setUserEmail] = useState(null);\n const [sessionExpires, setSessionExpires] = useState(null);\n\n const getUser = (userData: string) => {\n if (!userData) return;\n const { role: roleData, displayName: displayNameData, email: userEmailData, sessionExpires: sessionExpires } = JSON.parse(\n userData\n );\n\n setRole(roleData);\n setDisplayName(displayNameData);\n setUserEmail(userEmailData);\n setSessionExpires(sessionExpires);\n };\n\n useEffect(() => {\n let isCanceled = false;\n\n const asyncFn = async () => {\n if (isAuthenticated(userManager)) {\n const userData = await getUserData(userManager);\n if (isCanceled) return;\n getUser(userData);\n }\n };\n asyncFn();\n\n return () => {\n isCanceled = true;\n };\n }, []);\n\n const provider: AppContextProps = {\n ...defaultAppContext,\n role,\n userDisplayName: displayName,\n userEmail: userEmail,\n sessionExpires\n };\n\n return {children};\n};\n\nexport const LanguageContextProvider = ({ children }: any) => {\n const [language, setLanguage] = useState('de-DE');\n\n const initializeLanguage = async () => {\n\n let lang = localStorage.getItem('language');\n if (lang) {\n if (lang === 'en-US') {\n setLanguage('en-US');\n } else {\n setLanguage('de-DE');\n }\n }\n };\n\n useEffect(() => {\n initializeLanguage();\n }, []);\n\n const setLang = (language: Language) => {\n localStorage.setItem('language', language);\n setLanguage(language);\n };\n\n const provider: LanguageProps = {\n ...defaultLanguageContext,\n language,\n setLanguage: (language: Language) => setLang(language)\n };\n\n return {children};\n};\n\nexport const AppContextConsumer = AppContext.Consumer;\n\nexport function WithContext<\n P extends { appContext?: AppContextProps },\n R = Omit\n>(Component: React.StatelessComponent

| FC

): FC {\n return function BoundComponent(props: R) {\n return (\n \n {(value) => (\n \n )}\n \n );\n };\n}\n","import axios from 'axios';\nimport { axiosConfig } from '../config';\nimport { AUTH_LOGIN_URI } from '../constants';\nimport ERRORS from '../../constants/errors';\nimport * as I from '../../models/auth';\n\nexport const customerLogin = async ({\n email,\n password,\n}: I.LoginRequest): Promise => {\n try {\n const res = await axios.post(\n AUTH_LOGIN_URI,\n {\n email,\n password,\n },\n axiosConfig\n );\n const { data } = res;\n return data;\n } catch (error) {\n return {\n token: '',\n refreshToken: '',\n error: error.response.data.Message,\n code: error.response.data.StatusCode,\n };\n }\n};\nexport const getRefreshToken = async ({\n token,\n refreshToken,\n email\n}: I.RefreshRequest): Promise => {\n try {\n const res = await axios.post(\n AUTH_LOGIN_URI,\n {\n token,\n refreshToken,\n email\n },\n axiosConfig\n );\n const { data } = res;\n return data;\n } catch (error) {\n return {\n token: '',\n refreshToken: '',\n error: error.message,\n code: error.response.data.StatusCode,\n };\n }\n};\nexport const getUserInfo = async () : Promise => {\n try {\n const res = await axios.get(\n AUTH_LOGIN_URI,\n axiosConfig\n );\n const { data } = res;\n return data;\n } catch (error) {\n return {\n displayName: '',\n role: '',\n email: '',\n error: error.message,\n code: error.response.data.StatusCode\n };\n }\n};","import { User, UserManager, WebStorageStateStore } from 'oidc-client';\nimport axios, { AxiosRequestConfig } from 'axios';\nimport jwt_decode from 'jwt-decode';\nimport { createCustomerTokenProvider } from './customerAuthService';\nimport { getDiscoveryConfig } from '../client/configuration';\n\n\nexport const configureUserManager = (): UserManager | any => {\n const keys = localStorage.getItem('config');\n if(!keys) {\n setTimeout(() => {\n const IDENTITY = keys && JSON.parse(localStorage.getItem('config') || '').identityUrl;\n const AUTHCLIENT = keys && JSON.parse(localStorage.getItem('config') || '').authClientId;\n console.log('AUTHCLIENT w timeout', AUTHCLIENT);\n console.log('IDENTITY w timeout', IDENTITY);\n \n const config = {\n authority: IDENTITY,\n client_id: AUTHCLIENT,\n redirect_uri: `${window.location.origin}/callback`,\n post_logout_redirect_uri: window.location.origin,\n silent_redirect_uri: `${window.location.origin}/silentrenew`,\n \n response_type: 'id_token token',\n scope: 'openid profile l2care l2care.services',\n \n loadUserInfo: false,\n SaveTokens: true,\n RequireHttpsMetadata: true,\n GetClaimsFromUserInfoEndpoint: false,\n \n automaticSilentRenew: false\n };\n\n const METADATA_OIDC = {\n issuer: window.location.origin,\n jwks_uri: `${window.location.origin}/discovery/keys`,\n authorization_endpoint: window.location.origin,\n token_endpoint: `${window.location.origin}/oauth2/token`,\n userinfo_endpoint: `${window.location.origin}/userinfo`,\n end_session_endpoint: `${window.location.origin}/oauth2/logout`\n };\n \n const MEDATADA_URL = '/.well-known/openid-configuration';\n\n const userManager = new UserManager({\n ...config,\n userStore: new WebStorageStateStore({ store: window.localStorage }),\n metadata: {\n ...METADATA_OIDC,\n },\n metadataUrl: MEDATADA_URL,\n });\n \n userManager.events.addUserLoaded((user) => {\n if (window.location.href.indexOf('signin-oidc') !== -1) {\n navigateToScreen('/');\n }\n });\n \n userManager.events.addSilentRenewError((e) => { });\n \n userManager.events.addAccessTokenExpired(() => {\n signinRedirect(userManager);\n });\n return userManager;\n }, 1000);\n } else {\n const IDENTITY = JSON.parse(localStorage.getItem('config') || '').identityUrl;\n const AUTHCLIENT = keys && JSON.parse(localStorage.getItem('config') || '').authClientId;\n console.log('AUTHCLIENT', AUTHCLIENT);\n console.log('IDENTITY', IDENTITY);\n \n const config = {\n authority: IDENTITY,\n client_id: AUTHCLIENT,\n redirect_uri: `${window.location.origin}/callback`,\n post_logout_redirect_uri: window.location.origin,\n silent_redirect_uri: `${window.location.origin}/silentrenew`,\n \n response_type: 'id_token token',\n scope: 'openid profile l2care l2care.services',\n \n loadUserInfo: false,\n SaveTokens: true,\n RequireHttpsMetadata: true,\n GetClaimsFromUserInfoEndpoint: false,\n \n automaticSilentRenew: false\n };\n \n const userManager = new UserManager({\n ...config,\n userStore: new WebStorageStateStore({ store: window.localStorage }),\n });\n \n userManager.events.addUserLoaded((user) => {\n if (window.location.href.indexOf('signin-oidc') !== -1) {\n navigateToScreen('/');\n }\n });\n \n userManager.events.addSilentRenewError((e) => { });\n \n userManager.events.addAccessTokenExpired(() => {\n signinRedirect(userManager);\n });\n return userManager;\n }\n};\n\nexport const signinSilent = (userManager: UserManager): void => {\n userManager.signinSilent();\n};\n\nexport const isAuthenticated = (\n userManager?: UserManager\n): boolean => {\n const config = localStorage.getItem('config');\n\n if (!config) {\n return false;\n }\n const IDENTITY = JSON.parse(config || '').identityUrl;\n const AUTHCLIENT = JSON.parse(config || '').authClientId;\n\n const customerTokenProvider = createCustomerTokenProvider();\n let user: string = '{}';\n\n let sessionUser = localStorage.getItem(\n `oidc.user:${IDENTITY}:${AUTHCLIENT}`\n );\n\n if (sessionUser) {\n user = sessionUser;\n const oidcStorage = JSON.parse(user);\n if (!!oidcStorage && !!oidcStorage.access_token) {\n userManager && setupAxiosInterceptor(userManager);\n return true;\n }\n }\n return false;\n};\n\n\nexport const getDiscoveryKeys = async (): Promise => {\n const storedKeys = localStorage.getItem('keys');\n const config = localStorage.getItem('config');\n const IDENTITY = config && JSON.parse(config || '').identityUrl;\n if (!storedKeys) {\n getDiscoveryConfig().then(async () => {\n const keys = await (await axios.get(`${IDENTITY}/.well-known/openid-configuration/jwks`)).data.keys;\n localStorage.setItem('keys', JSON.stringify(keys));\n return keys;\n }).catch(function (err) {\n console.log(err);\n });\n }\n\n};\n\nexport const navigateToScreen = (path: string): void => {\n window.location.replace(path);\n};\n\nexport const signinSilentCallback = (userManager: UserManager): void => {\n console.log('==== ================== ================== signinsilent', userManager);\n userManager.signinSilentCallback().then(function (user) {\n console.log('======================================================================== user', user);\n }).catch(function (err) {\n console.log(err);\n });\n};\n\nexport const signinRedirect = (userManager?: UserManager): void => {\n if(!userManager) {\n const getUserManager = configureUserManager();\n getDiscoveryKeys().then((keys) => {\n getUserManager.settings.signingKeys = keys;\n getUserManager.signinRedirect();\n });\n } else {\n getDiscoveryKeys().then((keys) => {\n userManager.settings.signingKeys = keys;\n userManager.signinRedirect();\n });\n }\n};\n\nexport const signinRedirectCallback = async (userManager: UserManager): Promise => {\n if(!userManager) {\n const getUserManager: UserManager = configureUserManager();\n getUserManager.settings.signingKeys = JSON.parse(\n localStorage.getItem('keys') ?? '{}'\n );\n getUserManager.signinRedirectCallback().then(function (user) {\n window.location.href = '/dashboard';\n console.log('======================================================================== user', user);\n }).catch(function (err) {\n console.log(err);\n });\n } else {\n userManager.settings.signingKeys = JSON.parse(\n localStorage.getItem('keys') ?? '{}'\n );\n userManager.signinRedirectCallback().then(function (user) {\n window.location.href = '/dashboard';\n console.log('======================================================================== user', user);\n }).catch(function (err) {\n console.log(err);\n });\n }\n};\n\nexport const signoutRedirectCallback = (userManager: UserManager): void => {\n userManager.signoutRedirectCallback();\n userManager.clearStaleState();\n};\n\nexport const logout = async (userManager?: UserManager): Promise => {\n if (userManager) {\n let user = await userManager.getUser();\n userManager.signoutRedirect({\n id_token_hint: user?.id_token\n });\n userManager.removeUser();\n userManager.signoutRedirectCallback();\n }\n localStorage.clear();\n};\n\nexport const getUserData = async (\n userManager: UserManager\n): Promise => {\n try {\n if (isAuthenticated(userManager)) {\n const user = await getUser(userManager);\n let role = user.profile['l2care.role'];\n const displayName = user.profile.name;\n const email = user.profile.email;\n const sessionExpires = user.expires_at;\n return JSON.stringify({ role, displayName, email, sessionExpires });\n } else {\n return JSON.stringify({ role: 'none', displayName: '', email: '', sessionExpires: '' });\n }\n } catch (error) {\n return JSON.stringify({ role: 'none', displayName: '', email: '', sessionExpires: '' });\n }\n};\n\nconst getUser = async (userManager: UserManager): Promise => {\n const user: User | null = await userManager.getUser();\n if (!user) {\n return await userManager.signinRedirectCallback();\n }\n return user;\n};\n\nexport const getIdToken = async (userManager: UserManager): Promise => {\n const token: string = (await getUser(userManager)).access_token;\n return token;\n};\n\nexport const decodeToken = async (userManager: UserManager) => {\n const idToken = await getIdToken(userManager);\n return jwt_decode(idToken);\n};\n\n\nexport const setupAxiosInterceptor = async (\n userManager: UserManager,\n customerManager?: string\n) => {\n axios.interceptors.request.use(async (config: AxiosRequestConfig) => {\n const access_Token = await getIdToken(userManager);\n config.headers.Authorization = `Bearer ${access_Token}`;\n axios.defaults.headers.common.Authorization = `Bearer ${access_Token}`;\n return config;\n });\n\n axios.interceptors.response.use(\n (response) => {\n return response;\n },\n async function (error) {\n const originalRequest = error.config;\n if ((error.response.status === 403 || error.response.status === 401) && !originalRequest._retry) {\n originalRequest._retry = true;\n const access_token = await getIdToken(userManager);\n axios.defaults.headers.common.Authorization = `Bearer ${access_token}`;\n return axios(originalRequest);\n }\n return Promise.reject(error);\n }\n );\n};\n","import axios, { AxiosRequestConfig } from 'axios';\n\nimport { CustomerUser, TokenProps } from '../models/auth';\nimport { getRefreshToken, getUserInfo } from '../client/auth';\nimport { navigateToScreen } from './authService';\n\nexport const createCustomerTokenProvider = () => {\n let customerAccess: TokenProps = {\n token: undefined,\n refreshToken: undefined,\n };\n let unparsedCustomerAuthToken = localStorage.getItem('CUSTOMER_TOKEN');\n\n if (unparsedCustomerAuthToken) {\n customerAccess = JSON.parse(unparsedCustomerAuthToken);\n }\n\n const getExpirationDate = (jwToken?: string | null): number | null => {\n if (!jwToken) {\n return null;\n }\n\n const jwt = JSON.parse(atob(jwToken.split('.')[1]));\n return (jwt && jwt.exp && jwt.exp * 1000) || null;\n };\n\n const getCustomerUser = async (): Promise => {\n var userInfoResponse = await getUserInfo();\n if(!userInfoResponse.error) {\n return userInfoResponse;\n } else {\n return {displayName: '', role: '', email: '', sessionExpires: ''};\n }\n };\n\n const isExpired = (exp: number | null) => {\n if (!exp) {\n return false;\n }\n return Date.now() > exp;\n };\n\n const isTokenExpired = () => {\n if (!customerAccess) {\n return null;\n }\n\n if (isExpired(getExpirationDate(customerAccess.token))) {\n return true;\n } else {\n return false;\n }\n };\n\n const getToken = async (email?: string | null) => {\n if (!customerAccess) {\n return null;\n }\n\n if (isExpired(getExpirationDate(customerAccess.token))) {\n email = email || '';\n const refreshTokenResponse = await getRefreshToken({...customerAccess, email});\n if (!refreshTokenResponse.error) {\n setToken(refreshTokenResponse);\n } else {\n const lang = localStorage.getItem('language');\n localStorage.clear();\n localStorage.setItem('language', lang || 'de-DE');\n navigateToScreen('/login');\n\n }\n }\n return customerAccess && customerAccess.token;\n };\n\n const isLoggedIn = () => {\n if (!customerAccess) {\n return false;\n }\n return !!customerAccess.token;\n };\n\n const setToken = (token: typeof customerAccess) => {\n if (token) {\n localStorage.setItem('CUSTOMER_TOKEN', JSON.stringify(token));\n } else {\n localStorage.removeItem('CUSTOMER_TOKEN');\n localStorage.removeItem('Customer');\n }\n customerAccess = token;\n };\n\n return {\n getToken,\n isLoggedIn,\n setToken,\n getCustomerUser,\n isTokenExpired,\n };\n};"],"sourceRoot":""}