{"version":3,"sources":["resources/conaut.png","components/api-authorization/ApiAuthorizationConstants.js","components/api-authorization/AuthorizeService.js","components/api-authorization/LoginMenu.js","components/NavMenu.js","components/Layout.js","components/Home.js","components/FetchData.js","components/Counter.js","components/api-authorization/AuthorizeRoute.js","components/api-authorization/Login.js","components/api-authorization/Logout.js","components/api-authorization/ApiAuthorizationRoutes.js","App.js","index.js"],"names":["module","exports","QueryParameterNames","LogoutActions","LoginActions","prefix","ApplicationPaths","DefaultLoginRedirectPath","ApiAuthorizationClientConfigurationUrl","ApiAuthorizationPrefix","Login","LoginFailed","LoginCallback","Register","Profile","LogOut","LoggedOut","LogOutCallback","IdentityRegisterPath","IdentityManagePath","authService","_callbacks","_nextSubscriptionId","_user","_isAuthenticated","_popUpDisabled","this","getUser","user","profile","ensureUserManagerInitialized","userManager","access_token","state","signinSilent","createArguments","silentUser","updateState","success","console","log","Error","signinPopup","popUpUser","message","error","signinRedirect","redirect","url","signinCallback","signoutPopup","undefined","signoutRedirect","signoutCallback","response","data","notifySubscribers","callback","push","subscription","subscriptionId","subscriptionIndex","map","element","index","found","filter","length","splice","i","useReplaceToNavigate","status","AuthenticationResultStatus","Fail","Success","Redirect","fetch","ok","json","settings","automaticSilentRenew","includeIdTokenInSilentRenew","userStore","WebStorageStateStore","UserManager","events","addUserSignedOut","a","removeUser","LoginMenu","props","isAuthenticated","userName","_subscription","subscribe","populateState","unsubscribe","Promise","all","setState","name","profilePath","logoutPath","pathname","local","authenticatedView","registerPath","loginPath","anonymousView","NavItem","NavLink","tag","Link","className","to","Component","NavMenu","toggleNavbar","bind","collapsed","Navbar","light","Container","fluid","NavbarBrand","src","logo","style","height","width","alt","NavbarToggler","onClick","Collapse","isOpen","navbar","displayName","Layout","children","Home","cssCentered","position","top","left","medicoes","loading","meterData","modalLoading","modalShow","meterDescription","serial","detailCount","toggleModal","getMedicoesData","rowData","descricao","dateOptions","year","month","day","hour","minute","second","hour12","timeZone","aria-labelledby","key","row","prepareModal","cursor","modelo","Intl","DateTimeFormat","format","Date","data1","NumberFormat","minimumFractionDigits","maximumFractionDigits","volume1","data2","volume2","data3","volume3","alarme","Modal","toggle","size","ModalHeader","ModalBody","overflowY","Spinner","color","toString","ModalFooter","Button","contents","renderMedicoes","getAccessToken","token","usr","endPoint","headers","then","catch","FetchData","forecasts","populateWeatherData","renderForecastsTable","id","forecast","date","temperatureC","temperatureF","summary","Counter","currentCount","incrementCounter","aria-live","AuthorizeRoute","ready","authenticated","authenticationChanged","populateAuthenticationState","link","document","createElement","href","path","returnUrl","protocol","host","search","hash","redirectUrl","encodeURI","component","rest","render","action","login","getReturnUrl","processLoginCallback","URLSearchParams","window","location","get","redirectToProfile","redirectToRegister","signIn","result","navigateToReturnUrl","completeSignIn","fromQuery","startsWith","origin","redirectToApiAuthorizationPath","apiAuthorizationPath","replace","Logout","isReady","history","logout","processLogoutCallback","signOut","completeSignOut","ApiAuthorizationRoutes","loginAction","logoutAction","App","exact","baseUrl","getElementsByTagName","getAttribute","rootElement","getElementById","ReactDOM","basename"],"mappings":"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","file":"static/js/main.c8881b64.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/conaut.92ec656e.png\";","export const ApplicationName = 'AxiomaTrial';\r\n\r\nexport const QueryParameterNames = {\r\n ReturnUrl: 'returnUrl',\r\n Message: 'message'\r\n};\r\n\r\nexport const LogoutActions = {\r\n LogoutCallback: 'logout-callback',\r\n Logout: 'logout',\r\n LoggedOut: 'logged-out'\r\n};\r\n\r\nexport const LoginActions = {\r\n Login: 'login',\r\n LoginCallback: 'login-callback',\r\n LoginFailed: 'login-failed',\r\n Profile: 'profile',\r\n Register: 'register'\r\n};\r\n\r\nconst prefix = '/authentication';\r\n\r\nexport const ApplicationPaths = {\r\n DefaultLoginRedirectPath: '/',\r\n ApiAuthorizationClientConfigurationUrl: `/_configuration/${ApplicationName}`,\r\n ApiAuthorizationPrefix: prefix,\r\n Login: `${prefix}/${LoginActions.Login}`,\r\n LoginFailed: `${prefix}/${LoginActions.LoginFailed}`,\r\n LoginCallback: `${prefix}/${LoginActions.LoginCallback}`,\r\n Register: `${prefix}/${LoginActions.Register}`,\r\n Profile: `${prefix}/${LoginActions.Profile}`,\r\n LogOut: `${prefix}/${LogoutActions.Logout}`,\r\n LoggedOut: `${prefix}/${LogoutActions.LoggedOut}`,\r\n LogOutCallback: `${prefix}/${LogoutActions.LogoutCallback}`,\r\n IdentityRegisterPath: '/Identity/Account/Register',\r\n IdentityManagePath: '/Identity/Account/Manage'\r\n};\r\n","import { UserManager, WebStorageStateStore } from 'oidc-client';\r\nimport { ApplicationPaths, ApplicationName } from './ApiAuthorizationConstants';\r\n\r\nexport class AuthorizeService {\r\n _callbacks = [];\r\n _nextSubscriptionId = 0;\r\n _user = null;\r\n _isAuthenticated = false;\r\n\r\n // By default pop ups are disabled because they don't work properly on Edge.\r\n // If you want to enable pop up authentication simply set this flag to false.\r\n _popUpDisabled = true;\r\n\r\n async isAuthenticated() {\r\n const user = await this.getUser();\r\n return !!user;\r\n }\r\n\r\n async getUser() {\r\n if (this._user && this._user.profile) {\r\n return this._user.profile;\r\n }\r\n\r\n await this.ensureUserManagerInitialized();\r\n const user = await this.userManager.getUser();\r\n return user && user.profile;\r\n }\r\n\r\n async getAccessToken() {\r\n await this.ensureUserManagerInitialized();\r\n const user = await this.userManager.getUser();\r\n return user && user.access_token;\r\n }\r\n\r\n // We try to authenticate the user in three different ways:\r\n // 1) We try to see if we can authenticate the user silently. This happens\r\n // when the user is already logged in on the IdP and is done using a hidden iframe\r\n // on the client.\r\n // 2) We try to authenticate the user using a PopUp Window. This might fail if there is a\r\n // Pop-Up blocker or the user has disabled PopUps.\r\n // 3) If the two methods above fail, we redirect the browser to the IdP to perform a traditional\r\n // redirect flow.\r\n async signIn(state) {\r\n await this.ensureUserManagerInitialized();\r\n try {\r\n const silentUser = await this.userManager.signinSilent(this.createArguments());\r\n this.updateState(silentUser);\r\n return this.success(state);\r\n } catch (silentError) {\r\n // User might not be authenticated, fallback to popup authentication\r\n console.log(\"Silent authentication error: \", silentError);\r\n\r\n try {\r\n if (this._popUpDisabled) {\r\n throw new Error('Popup disabled. Change \\'AuthorizeService.js:AuthorizeService._popupDisabled\\' to false to enable it.')\r\n }\r\n\r\n const popUpUser = await this.userManager.signinPopup(this.createArguments());\r\n this.updateState(popUpUser);\r\n return this.success(state);\r\n } catch (popUpError) {\r\n if (popUpError.message === \"Popup window closed\") {\r\n // The user explicitly cancelled the login action by closing an opened popup.\r\n return this.error(\"The user closed the window.\");\r\n } else if (!this._popUpDisabled) {\r\n console.log(\"Popup authentication error: \", popUpError);\r\n }\r\n\r\n // PopUps might be blocked by the user, fallback to redirect\r\n try {\r\n await this.userManager.signinRedirect(this.createArguments(state));\r\n return this.redirect();\r\n } catch (redirectError) {\r\n console.log(\"Redirect authentication error: \", redirectError);\r\n return this.error(redirectError);\r\n }\r\n }\r\n }\r\n }\r\n\r\n async completeSignIn(url) {\r\n try {\r\n await this.ensureUserManagerInitialized();\r\n const user = await this.userManager.signinCallback(url);\r\n this.updateState(user);\r\n return this.success(user && user.state);\r\n } catch (error) {\r\n console.log('There was an error signing in: ', error);\r\n return this.error('There was an error signing in.');\r\n }\r\n }\r\n\r\n // We try to sign out the user in two different ways:\r\n // 1) We try to do a sign-out using a PopUp Window. This might fail if there is a\r\n // Pop-Up blocker or the user has disabled PopUps.\r\n // 2) If the method above fails, we redirect the browser to the IdP to perform a traditional\r\n // post logout redirect flow.\r\n async signOut(state) {\r\n await this.ensureUserManagerInitialized();\r\n try {\r\n if (this._popUpDisabled) {\r\n throw new Error('Popup disabled. Change \\'AuthorizeService.js:AuthorizeService._popupDisabled\\' to false to enable it.')\r\n }\r\n\r\n await this.userManager.signoutPopup(this.createArguments());\r\n this.updateState(undefined);\r\n return this.success(state);\r\n } catch (popupSignOutError) {\r\n console.log(\"Popup signout error: \", popupSignOutError);\r\n try {\r\n await this.userManager.signoutRedirect(this.createArguments(state));\r\n return this.redirect();\r\n } catch (redirectSignOutError) {\r\n console.log(\"Redirect signout error: \", redirectSignOutError);\r\n return this.error(redirectSignOutError);\r\n }\r\n }\r\n }\r\n\r\n async completeSignOut(url) {\r\n await this.ensureUserManagerInitialized();\r\n try {\r\n const response = await this.userManager.signoutCallback(url);\r\n this.updateState(null);\r\n return this.success(response && response.data);\r\n } catch (error) {\r\n console.log(`There was an error trying to log out '${error}'.`);\r\n return this.error(error);\r\n }\r\n }\r\n\r\n updateState(user) {\r\n this._user = user;\r\n this._isAuthenticated = !!this._user;\r\n this.notifySubscribers();\r\n }\r\n\r\n subscribe(callback) {\r\n this._callbacks.push({ callback, subscription: this._nextSubscriptionId++ });\r\n return this._nextSubscriptionId - 1;\r\n }\r\n\r\n unsubscribe(subscriptionId) {\r\n const subscriptionIndex = this._callbacks\r\n .map((element, index) => element.subscription === subscriptionId ? { found: true, index } : { found: false })\r\n .filter(element => element.found === true);\r\n if (subscriptionIndex.length !== 1) {\r\n throw new Error(`Found an invalid number of subscriptions ${subscriptionIndex.length}`);\r\n }\r\n\r\n this._callbacks.splice(subscriptionIndex[0].index, 1);\r\n }\r\n\r\n notifySubscribers() {\r\n for (let i = 0; i < this._callbacks.length; i++) {\r\n const callback = this._callbacks[i].callback;\r\n callback();\r\n }\r\n }\r\n\r\n createArguments(state) {\r\n return { useReplaceToNavigate: true, data: state };\r\n }\r\n\r\n error(message) {\r\n return { status: AuthenticationResultStatus.Fail, message };\r\n }\r\n\r\n success(state) {\r\n return { status: AuthenticationResultStatus.Success, state };\r\n }\r\n\r\n redirect() {\r\n return { status: AuthenticationResultStatus.Redirect };\r\n }\r\n\r\n async ensureUserManagerInitialized() {\r\n if (this.userManager !== undefined) {\r\n return;\r\n }\r\n\r\n let response = await fetch(ApplicationPaths.ApiAuthorizationClientConfigurationUrl);\r\n if (!response.ok) {\r\n throw new Error(`Could not load settings for '${ApplicationName}'`);\r\n }\r\n\r\n let settings = await response.json();\r\n settings.automaticSilentRenew = true;\r\n settings.includeIdTokenInSilentRenew = true;\r\n settings.userStore = new WebStorageStateStore({\r\n prefix: ApplicationName\r\n });\r\n\r\n this.userManager = new UserManager(settings);\r\n\r\n this.userManager.events.addUserSignedOut(async () => {\r\n await this.userManager.removeUser();\r\n this.updateState(undefined);\r\n });\r\n }\r\n\r\n static get instance() { return authService }\r\n}\r\n\r\nconst authService = new AuthorizeService();\r\n\r\nexport default authService;\r\n\r\nexport const AuthenticationResultStatus = {\r\n Redirect: 'redirect',\r\n Success: 'success',\r\n Fail: 'fail'\r\n};\r\n","import React, { Component, Fragment } from 'react';\r\nimport { NavItem, NavLink } from 'reactstrap';\r\nimport { Link } from 'react-router-dom';\r\nimport authService from './AuthorizeService';\r\nimport { ApplicationPaths } from './ApiAuthorizationConstants';\r\n\r\nexport class LoginMenu extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n isAuthenticated: false,\r\n userName: null\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this._subscription = authService.subscribe(() => this.populateState());\r\n this.populateState();\r\n }\r\n\r\n componentWillUnmount() {\r\n authService.unsubscribe(this._subscription);\r\n }\r\n\r\n async populateState() {\r\n const [isAuthenticated, user] = await Promise.all([authService.isAuthenticated(), authService.getUser()])\r\n this.setState({\r\n isAuthenticated,\r\n userName: user && user.name\r\n });\r\n }\r\n\r\n render() {\r\n const { isAuthenticated, userName } = this.state;\r\n if (!isAuthenticated) {\r\n const registerPath = `${ApplicationPaths.Register}`;\r\n const loginPath = `${ApplicationPaths.Login}`;\r\n return this.anonymousView(registerPath, loginPath);\r\n } else {\r\n const profilePath = `${ApplicationPaths.Profile}`;\r\n const logoutPath = { pathname: `${ApplicationPaths.LogOut}`, state: { local: true } };\r\n return this.authenticatedView(userName, profilePath, logoutPath);\r\n }\r\n }\r\n\r\n authenticatedView(userName, profilePath, logoutPath) {\r\n return (\r\n \r\n Olá {userName}\r\n \r\n \r\n Logout\r\n \r\n );\r\n\r\n }\r\n\r\n anonymousView(registerPath, loginPath) {\r\n return (\r\n \r\n Register\r\n \r\n \r\n Login\r\n \r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { Collapse, Container, Navbar, NavbarBrand, NavbarToggler, NavItem, NavLink } from 'reactstrap';\r\nimport { Link } from 'react-router-dom';\r\nimport { LoginMenu } from './api-authorization/LoginMenu';\r\nimport logo from '../resources/conaut.png';\r\nimport './NavMenu.css';\r\n\r\nexport class NavMenu extends Component {\r\n static displayName = NavMenu.name;\r\n\r\n constructor (props) {\r\n super(props);\r\n\r\n this.toggleNavbar = this.toggleNavbar.bind(this);\r\n this.state = {\r\n collapsed: true\r\n };\r\n }\r\n\r\n toggleNavbar () {\r\n this.setState({\r\n collapsed: !this.state.collapsed\r\n });\r\n } \r\n\r\n render () {\r\n return (\r\n
\r\n \r\n \r\n {'Neoflow\r\n \r\n \r\n
    \r\n \r\n Medições\r\n \r\n {/* \r\n Counter\r\n \r\n \r\n Fetch data\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, { Component } from 'react';\r\nimport { Container } from 'reactstrap';\r\nimport { NavMenu } from './NavMenu';\r\n\r\nexport class Layout extends Component {\r\n static displayName = Layout.name;\r\n\r\n render () {\r\n return (\r\n
\r\n \r\n \r\n {this.props.children}\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport authService from './api-authorization/AuthorizeService';\r\nimport { Modal, ModalHeader, ModalBody, ModalFooter, Button, Spinner } from 'reactstrap';\r\nexport class Home extends Component {\r\n static displayName = Home.name;\r\n\r\n cssCentered = {\r\n position: 'fixed',\r\n top: '50%',\r\n left: '50%'\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n medicoes: [],\r\n loading: true,\r\n meterData: [],\r\n modalLoading: false,\r\n modalShow: false,\r\n meterDescription: undefined,\r\n serial: undefined,\r\n detailCount: 0\r\n };\r\n this.toggleModal = this.toggleModal.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n this.getMedicoesData();\r\n }\r\n\r\n toggleModal() {\r\n this.setState({ modalShow: !this.state.modalShow, modalLoading: !this.state.modalLoading });\r\n if (!this.state.modalShow) {\r\n this.setState({ meterData: [] });\r\n }\r\n };\r\n\r\n prepareModal(rowData) {\r\n this.getMedicoesData(rowData.serial);\r\n this.setState({ serial: rowData.serial, meterDescription: rowData.descricao, modalShow: true, modalLoading: true, detailCount: 0 });\r\n }\r\n\r\n renderMedicoes() {\r\n const dateOptions = {\r\n year: 'numeric', month: 'numeric', day: 'numeric',\r\n hour: 'numeric', minute: 'numeric', second: 'numeric',\r\n hour12: false,\r\n timeZone: 'UTC'\r\n };\r\n\r\n let retDef = <>\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 {this.state.medicoes.map((medicoes) => (\r\n this.prepareModal(medicoes)} style={{ cursor: 'pointer' }}>\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
DescricaoModeloSerialData 1Volume 1Data 2Volume 2Data 3Volume 3Alarme
{medicoes.descricao}{medicoes.modelo}{medicoes.serial}{new Intl.DateTimeFormat('pt-BR', dateOptions).format(new Date(medicoes.data1))}{new Intl.NumberFormat(\"pt-BR\", {\r\n minimumFractionDigits: 3,\r\n maximumFractionDigits: 3\r\n }).format(medicoes.volume1)}{new Intl.DateTimeFormat('pt-BR', dateOptions).format(new Date(medicoes.data2))}{new Intl.NumberFormat(\"pt-BR\", {\r\n minimumFractionDigits: 3,\r\n maximumFractionDigits: 3\r\n }).format(medicoes.volume2)}{new Intl.DateTimeFormat('pt-BR', dateOptions).format(new Date(medicoes.data3))}{new Intl.NumberFormat(\"pt-BR\", {\r\n minimumFractionDigits: 3,\r\n maximumFractionDigits: 3\r\n }).format(medicoes.volume3)}{medicoes.alarme}
\r\n this.toggleModal()} size={\"xl\"} >\r\n this.toggleModal()}>Ultimas Medições do Medidor: {this.state.meterDescription} / {this.state.serial}\r\n \r\n
\r\n {(this.state.modalLoading) ?\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 {this.state.meterData.map((medicoes) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
Data 1Volume 1Data 2Volume 2Data 3Volume 3Alarme
{new Intl.DateTimeFormat('pt-BR', dateOptions).format(new Date(medicoes.data1))}{new Intl.NumberFormat(\"pt-BR\", {\r\n minimumFractionDigits: 3,\r\n maximumFractionDigits: 3\r\n }).format(medicoes.volume1)}{new Intl.DateTimeFormat('pt-BR', dateOptions).format(new Date(medicoes.data2))}{new Intl.NumberFormat(\"pt-BR\", {\r\n minimumFractionDigits: 3,\r\n maximumFractionDigits: 3\r\n }).format(medicoes.volume2)}{new Intl.DateTimeFormat('pt-BR', dateOptions).format(new Date(medicoes.data3))}{new Intl.NumberFormat(\"pt-BR\", {\r\n minimumFractionDigits: 3,\r\n maximumFractionDigits: 3\r\n }).format(medicoes.volume3)}{medicoes.alarme}
\r\n }\r\n
\r\n
\r\n \r\n
\r\n Total de Medições nos Últimos 6 meses: {this.state.detailCount}\r\n
\r\n \r\n
\r\n
\r\n ;\r\n\r\n return (retDef);\r\n }\r\n\r\n render() {\r\n let contents = (this.state.loading)\r\n ? \r\n : this.renderMedicoes();\r\n return (\r\n
\r\n

Ultimas Medições por Hidrômetro

\r\n {contents}\r\n
\r\n );\r\n }\r\n\r\n async getMedicoesData(serial) {\r\n const token = await authService.getAccessToken();\r\n const usr = await authService.getUser();\r\n let endPoint = `medicoes?UserName=${usr.name}` + ((serial !== undefined) ? `&serial=${serial}` : '');\r\n fetch(endPoint, {\r\n headers: { 'Authorization': `Bearer ${token}` }\r\n }).then((response) => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n throw new Error(response.status);\r\n }).then((data) => {\r\n if (serial === undefined) {\r\n this.setState({ medicoes: data, loading: false });\r\n }\r\n else {\r\n this.setState({\r\n meterData: data,\r\n modalLoading: false,\r\n detailCount: data.length\r\n });\r\n }\r\n }).catch((error) => {\r\n console.log(error);\r\n });\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport authService from './api-authorization/AuthorizeService'\r\n\r\nexport class FetchData extends Component {\r\n static displayName = FetchData.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = { forecasts: [], loading: true };\r\n }\r\n\r\n componentDidMount() {\r\n this.populateWeatherData();\r\n }\r\n\r\n static renderForecastsTable(forecasts) {\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 {forecasts.map(forecast =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
DateTemp. (C)Temp. (F)Summary
{forecast.date}{forecast.temperatureC}{forecast.temperatureF}{forecast.summary}
\r\n );\r\n }\r\n\r\n render() {\r\n let contents = this.state.loading\r\n ?

Loading...

\r\n : FetchData.renderForecastsTable(this.state.forecasts);\r\n\r\n return (\r\n
\r\n

Weather forecast

\r\n

This component demonstrates fetching data from the server.

\r\n {contents}\r\n
\r\n );\r\n }\r\n\r\n async populateWeatherData() {\r\n const token = await authService.getAccessToken();\r\n const response = await fetch('weatherforecast', {\r\n headers: !token ? {} : { 'Authorization': `Bearer ${token}` }\r\n });\r\n const data = await response.json();\r\n this.setState({ forecasts: data, loading: false });\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\n\r\nexport class Counter extends Component {\r\n static displayName = Counter.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = { currentCount: 0 };\r\n this.incrementCounter = this.incrementCounter.bind(this);\r\n }\r\n\r\n incrementCounter() {\r\n this.setState({\r\n currentCount: this.state.currentCount + 1\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n

Counter

\r\n\r\n

This is a simple example of a React component.

\r\n\r\n

Current count: {this.state.currentCount}

\r\n\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import React from 'react'\r\nimport { Component } from 'react'\r\nimport { Route, Redirect } from 'react-router-dom'\r\nimport { ApplicationPaths, QueryParameterNames } from './ApiAuthorizationConstants'\r\nimport authService from './AuthorizeService'\r\n\r\nexport default class AuthorizeRoute extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n ready: false,\r\n authenticated: false\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this._subscription = authService.subscribe(() => this.authenticationChanged());\r\n this.populateAuthenticationState();\r\n }\r\n\r\n componentWillUnmount() {\r\n authService.unsubscribe(this._subscription);\r\n }\r\n\r\n render() {\r\n const { ready, authenticated } = this.state;\r\n var link = document.createElement(\"a\");\r\n link.href = this.props.path;\r\n const returnUrl = `${link.protocol}//${link.host}${link.pathname}${link.search}${link.hash}`;\r\n const redirectUrl = `${ApplicationPaths.Login}?${QueryParameterNames.ReturnUrl}=${encodeURI(returnUrl)}`\r\n if (!ready) {\r\n return
;\r\n } else {\r\n const { component: Component, ...rest } = this.props;\r\n return {\r\n if (authenticated) {\r\n return \r\n } else {\r\n return \r\n }\r\n }} />\r\n }\r\n }\r\n\r\n async populateAuthenticationState() {\r\n const authenticated = await authService.isAuthenticated();\r\n this.setState({ ready: true, authenticated });\r\n }\r\n\r\n async authenticationChanged() {\r\n this.setState({ ready: false, authenticated: false });\r\n await this.populateAuthenticationState();\r\n }\r\n}\r\n","import React from 'react'\r\nimport { Component } from 'react';\r\nimport authService from './AuthorizeService';\r\nimport { AuthenticationResultStatus } from './AuthorizeService';\r\nimport { LoginActions, QueryParameterNames, ApplicationPaths } from './ApiAuthorizationConstants';\r\n\r\n// The main responsibility of this component is to handle the user's login process.\r\n// This is the starting point for the login process. Any component that needs to authenticate\r\n// a user can simply perform a redirect to this component with a returnUrl query parameter and\r\n// let the component perform the login and return back to the return url.\r\nexport class Login extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n message: undefined\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const action = this.props.action;\r\n switch (action) {\r\n case LoginActions.Login:\r\n this.login(this.getReturnUrl());\r\n break;\r\n case LoginActions.LoginCallback:\r\n this.processLoginCallback();\r\n break;\r\n case LoginActions.LoginFailed:\r\n const params = new URLSearchParams(window.location.search);\r\n const error = params.get(QueryParameterNames.Message);\r\n this.setState({ message: error });\r\n break;\r\n case LoginActions.Profile:\r\n this.redirectToProfile();\r\n break;\r\n case LoginActions.Register:\r\n this.redirectToRegister();\r\n break;\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n }\r\n\r\n render() {\r\n const action = this.props.action;\r\n const { message } = this.state;\r\n\r\n if (!!message) {\r\n return
{message}
\r\n } else {\r\n switch (action) {\r\n case LoginActions.Login:\r\n return (
Processing login
);\r\n case LoginActions.LoginCallback:\r\n return (
Processing login callback
);\r\n case LoginActions.Profile:\r\n case LoginActions.Register:\r\n return (
);\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n }\r\n }\r\n\r\n async login(returnUrl) {\r\n const state = { returnUrl };\r\n const result = await authService.signIn(state);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n break;\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(returnUrl);\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.setState({ message: result.message });\r\n break;\r\n default:\r\n throw new Error(`Invalid status result ${result.status}.`);\r\n }\r\n }\r\n\r\n async processLoginCallback() {\r\n const url = window.location.href;\r\n const result = await authService.completeSignIn(url);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n // There should not be any redirects as the only time completeSignIn finishes\r\n // is when we are doing a redirect sign in flow.\r\n throw new Error('Should not redirect.');\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(this.getReturnUrl(result.state));\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.setState({ message: result.message });\r\n break;\r\n default:\r\n throw new Error(`Invalid authentication result status '${result.status}'.`);\r\n }\r\n }\r\n\r\n getReturnUrl(state) {\r\n const params = new URLSearchParams(window.location.search);\r\n const fromQuery = params.get(QueryParameterNames.ReturnUrl);\r\n if (fromQuery && !fromQuery.startsWith(`${window.location.origin}/`)) {\r\n // This is an extra check to prevent open redirects.\r\n throw new Error(\"Invalid return url. The return url needs to have the same origin as the current page.\")\r\n }\r\n return (state && state.returnUrl) || fromQuery || `${window.location.origin}/`;\r\n }\r\n\r\n redirectToRegister() {\r\n this.redirectToApiAuthorizationPath(`${ApplicationPaths.IdentityRegisterPath}?${QueryParameterNames.ReturnUrl}=${encodeURI(ApplicationPaths.Login)}`);\r\n }\r\n\r\n redirectToProfile() {\r\n this.redirectToApiAuthorizationPath(ApplicationPaths.IdentityManagePath);\r\n }\r\n\r\n redirectToApiAuthorizationPath(apiAuthorizationPath) {\r\n const redirectUrl = `${window.location.origin}${apiAuthorizationPath}`;\r\n // It's important that we do a replace here so that when the user hits the back arrow on the\r\n // browser he gets sent back to where it was on the app instead of to an endpoint on this\r\n // component.\r\n window.location.replace(redirectUrl);\r\n }\r\n\r\n navigateToReturnUrl(returnUrl) {\r\n // It's important that we do a replace here so that we remove the callback uri with the\r\n // fragment containing the tokens from the browser history.\r\n window.location.replace(returnUrl);\r\n }\r\n}\r\n","import React from 'react'\r\nimport { Component } from 'react';\r\nimport authService from './AuthorizeService';\r\nimport { AuthenticationResultStatus } from './AuthorizeService';\r\nimport { QueryParameterNames, LogoutActions, ApplicationPaths } from './ApiAuthorizationConstants';\r\n\r\n// The main responsibility of this component is to handle the user's logout process.\r\n// This is the starting point for the logout process, which is usually initiated when a\r\n// user clicks on the logout button on the LoginMenu component.\r\nexport class Logout extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n message: undefined,\r\n isReady: false,\r\n authenticated: false\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const action = this.props.action;\r\n switch (action) {\r\n case LogoutActions.Logout:\r\n if (!!window.history.state.state.local) {\r\n this.logout(this.getReturnUrl());\r\n } else {\r\n // This prevents regular links to /authentication/logout from triggering a logout\r\n this.setState({ isReady: true, message: \"The logout was not initiated from within the page.\" });\r\n }\r\n break;\r\n case LogoutActions.LogoutCallback:\r\n this.processLogoutCallback();\r\n break;\r\n case LogoutActions.LoggedOut:\r\n this.setState({ isReady: true, message: \"You successfully logged out!\" });\r\n break;\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n\r\n this.populateAuthenticationState();\r\n }\r\n\r\n render() {\r\n const { isReady, message } = this.state;\r\n if (!isReady) {\r\n return
\r\n }\r\n if (!!message) {\r\n return (
{message}
);\r\n } else {\r\n const action = this.props.action;\r\n switch (action) {\r\n case LogoutActions.Logout:\r\n return (
Processing logout
);\r\n case LogoutActions.LogoutCallback:\r\n return (
Processing logout callback
);\r\n case LogoutActions.LoggedOut:\r\n return (
{message}
);\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n }\r\n }\r\n\r\n async logout(returnUrl) {\r\n const state = { returnUrl };\r\n const isauthenticated = await authService.isAuthenticated();\r\n if (isauthenticated) {\r\n const result = await authService.signOut(state);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n break;\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(returnUrl);\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.setState({ message: result.message });\r\n break;\r\n default:\r\n throw new Error(\"Invalid authentication result status.\");\r\n }\r\n } else {\r\n this.setState({ message: \"You successfully logged out!\" });\r\n }\r\n }\r\n\r\n async processLogoutCallback() {\r\n const url = window.location.href;\r\n const result = await authService.completeSignOut(url);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n // There should not be any redirects as the only time completeAuthentication finishes\r\n // is when we are doing a redirect sign in flow.\r\n throw new Error('Should not redirect.');\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(this.getReturnUrl(result.state));\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.setState({ message: result.message });\r\n break;\r\n default:\r\n throw new Error(\"Invalid authentication result status.\");\r\n }\r\n }\r\n\r\n async populateAuthenticationState() {\r\n const authenticated = await authService.isAuthenticated();\r\n this.setState({ isReady: true, authenticated });\r\n }\r\n\r\n getReturnUrl(state) {\r\n const params = new URLSearchParams(window.location.search);\r\n const fromQuery = params.get(QueryParameterNames.ReturnUrl);\r\n if (fromQuery && !fromQuery.startsWith(`${window.location.origin}/`)) {\r\n // This is an extra check to prevent open redirects.\r\n throw new Error(\"Invalid return url. The return url needs to have the same origin as the current page.\")\r\n }\r\n return (state && state.returnUrl) ||\r\n fromQuery ||\r\n `${window.location.origin}${ApplicationPaths.LoggedOut}`;\r\n }\r\n\r\n navigateToReturnUrl(returnUrl) {\r\n return window.location.replace(returnUrl);\r\n }\r\n}\r\n","import React, { Component, Fragment } from 'react';\r\nimport { Route } from 'react-router';\r\nimport { Login } from './Login'\r\nimport { Logout } from './Logout'\r\nimport { ApplicationPaths, LoginActions, LogoutActions } from './ApiAuthorizationConstants';\r\n\r\nexport default class ApiAuthorizationRoutes extends Component {\r\n\r\n render () {\r\n return(\r\n \r\n loginAction(LoginActions.Login)} />\r\n loginAction(LoginActions.LoginFailed)} />\r\n loginAction(LoginActions.LoginCallback)} />\r\n loginAction(LoginActions.Profile)} />\r\n loginAction(LoginActions.Register)} />\r\n logoutAction(LogoutActions.Logout)} />\r\n logoutAction(LogoutActions.LogoutCallback)} />\r\n logoutAction(LogoutActions.LoggedOut)} />\r\n );\r\n }\r\n}\r\n\r\nfunction loginAction(name){\r\n return ();\r\n}\r\n\r\nfunction logoutAction(name) {\r\n return ();\r\n}\r\n","import React, { Component } from 'react';\r\nimport { Route } from 'react-router';\r\nimport { Layout } from './components/Layout';\r\nimport { Home } from './components/Home';\r\nimport { FetchData } from './components/FetchData';\r\nimport { Counter } from './components/Counter';\r\nimport AuthorizeRoute from './components/api-authorization/AuthorizeRoute';\r\nimport ApiAuthorizationRoutes from './components/api-authorization/ApiAuthorizationRoutes';\r\nimport { ApplicationPaths } from './components/api-authorization/ApiAuthorizationConstants';\r\n\r\nimport './custom.css'\r\n\r\nexport default class App extends Component {\r\n static displayName = App.name;\r\n\r\n render () {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","import 'bootstrap/dist/css/bootstrap.css';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport App from './App';\r\n//import registerServiceWorker from './registerServiceWorker';\r\n\r\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\r\nconst rootElement = document.getElementById('root');\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n rootElement);\r\n\r\n// Uncomment the line above that imports the registerServiceWorker function\r\n// and the line below to register the generated service worker.\r\n// By default create-react-app includes a service worker to improve the\r\n// performance of the application by caching static assets. This service\r\n// worker can interfere with the Identity UI, so it is\r\n// disabled by default when Identity is being used.\r\n//\r\n//registerServiceWorker();\r\n\r\n"],"sourceRoot":""}