{"version":3,"sources":["components/Header.js","components/Content.js","components/Footer.js","components/Layout.js","components/Spinner.js","components/Panel.js","components/Status.js","components/Incident.js","components/OpenIncidents.js","App.js","serviceWorker.js","index.js"],"names":["Header","className","href","window","env","LINK_HOME","src","width","height","STATIC_HEADER_TEXT_BIG","STATIC_HEADER_TEXT_SMALL","Content","props","children","Footer","LINK_SUPPORT","Layout","class","Spinner","style","Panel","header","Status","state","items","isLoaded","fetch","STATUS_API","then","res","json","setState","this","map","item","key","componentId","friendlyName","status","moment","lastcheck","format","Component","Incident","subject","description","createdAt","updatedAt","OpenIncidents","tickets","TICKETS_API","length","ticket","id","App","title","Boolean","location","hostname","match","ReactDOM","render","document","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.5c5d9f95.chunk.js","sourcesContent":["import React from 'react';\n\nexport const Header = () => (\n\t
\n\t\t\n\n\t\t

{window.env.STATIC_HEADER_TEXT_BIG}

\n\t\t{window.env.STATIC_HEADER_TEXT_SMALL}\n\t
\n)\n","import React from 'react';\n\nexport const Content = (props) => (\n
\n \t{props.children}\n
\n)\n","import React from 'react';\n\nexport const Footer = () => (\n \n)\n","import React from 'react';\nimport {Header} from './Header';\nimport {Content} from './Content';\nimport {Footer} from './Footer';\n\nexport const Layout = (props) => (\n\n\t
\n\t\t
\n\n\t\t\n\t\t\t{props.children}\n\t\t\n\n\t\t
\n)","import React from \"react\";\nimport \"@fortawesome/fontawesome-free/css/all.css\"\n\nconst Spinner = (props) => {\n return (\n \n \n \n );\n};\n\nexport default Spinner;\n","import React from 'react';\nimport {} from './Panel.css';\n\nexport const Panel = (props) => (\n
\n
{props.header}
\n
\n {props.children}\n
\n
\n)\n","import React from 'react';\nimport {Component} from \"react\"\nimport Spinner from \"./Spinner\";\nimport {Panel} from \"./Panel\";\nimport moment from \"moment\";\n\nclass Status extends Component {\n constructor(props) {\n super(props);\n this.state = {\n items: [],\n isLoaded: false,\n };\n }\n\n componentDidMount() {\n fetch(window.env.STATUS_API)\n .then(res => res.json())\n .then(json => {\n this.setState({\n isLoaded: true,\n items: json,\n })\n })\n }\n\n render() {\n const {isLoaded, items} = this.state;\n\n if (!isLoaded) {\n return
Loading data...
\n } else {\n return (\n <>\n {items.map(item => (\n <>\n \n
\n
STATUS
\n
\n {item.status === 'UP' ? 'Operational' : 'Failed'}\n
\n
\n
LAST CHECK DATE
\n {moment(item.lastcheck).format(\"YYYY-MM-DD HH:mm\")}
\n \n
\n
\n \n ))}\n \n )\n }\n }\n}\n\nexport default Status","import React from 'react';\nimport moment from \"moment\";\nimport css from './Incident.css'\n\nexport const Incident = (props) => (\n
\n
{props.subject}
\n

\n {props.description}\n

\n
\n Created at: {moment(props.createdAt).format(\"YYYY-MM-DD HH:mm\")}\n Updated at: {moment(props.updatedAt).format(\"YYYY-MM-DD HH:mm\")}\n
\n
\n)\n","import React from 'react';\nimport {Component} from \"react\"\nimport {Panel} from './Panel'\nimport Spinner from \"./Spinner\";\nimport {Incident} from \"./Incident\";\nimport moment from \"moment\";\nimport {} from './OpenIncidents.css';\n\nclass OpenIncidents extends Component {\n constructor(props) {\n super(props);\n this.state = {\n tickets: [],\n isLoaded: false,\n };\n }\n\n componentDidMount() {\n fetch(window.env.TICKETS_API)\n .then(res => res.json())\n .then(json => {\n this.setState({\n isLoaded: true,\n tickets: json,\n })\n })\n }\n\n render() {\n const {isLoaded, tickets} = this.state;\n\n if (!isLoaded) {\n return
Loading data...
\n } else if (tickets.length > 0) {\n return (\n <>\n
\n

Open Incidents

\n
\n {tickets.map(ticket => (\n \n \n
\n
\n ))}\n \n )\n } else {\n return <>;\n }\n }\n}\n\nexport default OpenIncidents","import React from \"react\";\nimport {Component} from \"react\"\nimport \"./App.css\";\nimport {Layout} from './components/Layout'\nimport Status from './components/Status'\nimport OpenIncidents from \"./components/OpenIncidents\";\n\nclass App extends Component {\n constructor(props) {\n super(props);\n this.state = {\n items: [],\n isLoaded: false,\n title: '',\n };\n }\n\n componentDidMount() {\n }\n\n render() {\n return (\n \n\n \n \n\n \n )\n }\n}\n\nexport default App;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport './status-page.css';\nimport App from './App';\nimport * as serviceWorker from './serviceWorker';\n\nReactDOM.render(, document.getElementById('root'));\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n"],"sourceRoot":""}