{"version":3,"sources":["bluedot-logo.png","components/Button/styled.js","components/Button/Button.jsx","styled.js","App.js","serviceWorker.js","index.js"],"names":["module","exports","Button","styled","button","children","Container","div","Logo","img","MainContentContainer","ButtonsWrapper","SupportMessageContainer","App","canvasLinks","name","url","useEffect","window","location","search","queryParams","queryString","parse","state","decodedStateString","atob","stateObject","JSON","region","targetLink","find","link","assign","pathname","error","console","log","src","logo","alt","map","href","Boolean","hostname","match","ReactDOM","render","document","getElementById","navigator","serviceWorker","ready","then","registration","unregister","catch","message"],"mappings":"4HAAAA,EAAOC,QAAU,IAA0B,0C,sKCE9BC,EAASC,IAAOC,OAAV,wlBCOJF,EANA,SAAC,GAAgB,IAAfG,EAAc,EAAdA,SACb,OACI,kBAAC,EAAD,KAAgBA,I,kCCHXC,EAAYH,IAAOI,IAAV,wQAaTC,EAAOL,IAAOM,IAAV,qEAKJC,EAAuBP,IAAOI,IAAV,kdAyBpBI,EAAiBR,IAAOI,IAAV,0LAYdK,EAA0BT,IAAOI,IAAV,yRCyBrBM,MA1Ef,WACE,IAAMC,EAAc,CAClB,CACEC,KAAM,eACNC,IAAyB,6BAE3B,CACED,KAAM,SACNC,IAAyB,iCAE3B,CACED,KAAM,gBACNC,IAAyB,kCAkC7B,OA5BAC,qBAAU,WACR,GAAIC,OAAOC,SAASC,OAAQ,CAC1B,IAAMC,EAAcC,IAAYC,MAAML,OAAOC,SAASC,QACtD,GAAIC,EAAYG,MACd,IACE,IAAMC,EAAqBC,KAAKL,EAAYG,OACtCG,EAAcC,KAAKL,MAAME,GAC/B,GAAIE,EAAYE,OAAQ,CACtB,IAAMC,EAAahB,EAAYiB,MAC7B,SAACC,GAAD,OAAUA,EAAKjB,OAASY,EAAYE,UAElCC,EACFZ,OAAOC,SAASc,OAAhB,UACKH,EAAWd,KADhB,OACsBE,OAAOC,SAASe,UADtC,OACiDhB,OAAOC,SAASC,SAEjC,qBAAvBO,EAAYE,QACrBX,OAAOC,SAASc,OAAhB,8CACyCf,OAAOC,SAASe,UADzD,OACoEhB,OAAOC,SAASC,UAIxF,MAAOe,GACPC,QAAQC,IAAI,oCAAqCF,QAOvD,kBAAC,EAAD,KACE,6BACE,kBAAC,EAAD,KACE,kBAAC,EAAD,CAAaG,IAAKC,IAAMC,IAAI,SAC5B,0EACA,kBAAC,EAAD,KACG1B,EAAY2B,KAAI,SAACT,GAAD,OACf,uBACEU,KAAI,UAAKV,EAAKhB,KAAV,OAAgBE,OAAOC,SAASe,UAAhC,OAA2ChB,OAAOC,SAASC,SAE/D,kBAAC,EAAD,KAASY,EAAKjB,YAMtB,kBAAC,EAAD,KACE,oGAGA,uBAAG2B,KAAK,0BAAR,uBC/DUC,QACW,cAA7BzB,OAAOC,SAASyB,UAEe,UAA7B1B,OAAOC,SAASyB,UAEhB1B,OAAOC,SAASyB,SAASC,MACvB,2DCZNC,IAASC,OAAO,kBAAC,EAAD,MAASC,SAASC,eAAe,SD6H3C,kBAAmBC,WACrBA,UAAUC,cAAcC,MACrBC,MAAK,SAAAC,GACJA,EAAaC,gBAEdC,OAAM,SAAArB,GACLC,QAAQD,MAAMA,EAAMsB,c","file":"static/js/main.3f625e12.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/bluedot-logo.c9f40c46.png\";","import styled from 'styled-components'\n\nexport const Button = styled.button`\n background-color: white;\n border: solid 1px #16bfe6;\n border-radius: 8px;\n color: #18182d;\n padding: 0.8rem 1rem;\n cursor: pointer;\n width: 13rem;\n font-weight: 800;\n font-size: 0.9rem;\n transition-duration: 0.3s;\n transition-timing-function: ease-in-out;\n\n &:hover {\n color: #18182d;\n background-color: #16bfe6;\n transition-duration: 0.1s;\n\n a {\n color: #18182d;\n }\n }\n \n &:focus {\n outline: none;\n }\n\n a {\n color: #429bd5;\n }\n`","import React from 'react'\nimport * as styled from './styled'\n\nconst Button = ({children}) => {\n return (\n {children}\n )\n}\n\nexport default Button","import styled from 'styled-components'\n\nexport const Container = styled.div`\n color: #18182D; \n background-color: #18182D;\n width: 100%;\n min-height: fill-available;\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n top: 0;\n bottom: 0;\n`\n\nexport const Logo = styled.img`\n width: 9.5rem;\n margin: 1rem 0;\n`\n\nexport const MainContentContainer = styled.div`\n background-color: white;\n padding: 4rem 4rem 7rem 4rem;\n max-width: 30rem;\n display: flex;\n flex-direction: column;\n align-items: center;\n text-align: center;\n\n h4 {\n font-weight: 400;\n }\n\n a {\n color: #6f6f6f;\n margin-top: 5rem;\n text-decoration: none;\n\n &:hover {\n color: #18182D;\n text-decoration: underline;\n }\n }\n`\n\nexport const ButtonsWrapper = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n width: 100%;\n height: 10rem;\n\n a {\n margin-top: 1rem;\n }\n`\n\nexport const SupportMessageContainer = styled.div`\n color: white;\n text-align: center;\n margin-top: 1.8rem;\n\n a {\n color: white;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n\n p {\n margin: 0;\n }\n`\n\n","import React, { useEffect } from \"react\";\nimport Button from \"./components/Button\";\nimport logo from \"./bluedot-logo.png\";\nimport queryString from \"query-string\";\nimport * as styled from \"./styled.js\";\n\nconst DEV_URL_OVERRIDE = process.env.REACT_APP_DEV_URL_OVERRIDE;\n\nfunction App() {\n const canvasLinks = [\n {\n name: \"Asia Pacific\",\n url: DEV_URL_OVERRIDE || \"https://canvas.bluedot.io\",\n },\n {\n name: \"Europe\",\n url: DEV_URL_OVERRIDE || \"https://eu1-canvas.bluedot.io\",\n },\n {\n name: \"North America\",\n url: DEV_URL_OVERRIDE || \"https://us1-canvas.bluedot.io\",\n },\n ];\n\n // This logic is specific to the Attentive integration, where the callback URL may already know\n // the target region if it has been triggered from Canvas\n useEffect(() => {\n if (window.location.search) {\n const queryParams = queryString.parse(window.location.search);\n if (queryParams.state) {\n try {\n const decodedStateString = atob(queryParams.state);\n const stateObject = JSON.parse(decodedStateString);\n if (stateObject.region) {\n const targetLink = canvasLinks.find(\n (link) => link.name === stateObject.region\n );\n if (targetLink) {\n window.location.assign(\n `${targetLink.url}${window.location.pathname}${window.location.search}`\n );\n } else if (stateObject.region === \"Asia Pacific Dev\") {\n window.location.assign(\n `https://canvas-dev-1.dev-bluedot.com${window.location.pathname}${window.location.search}`\n );\n }\n }\n } catch (error) {\n console.log(\"invalid state parameter, ignoring\", error);\n }\n }\n }\n });\n\n return (\n \n
\n \n \n

Which region would you like to connect to?

\n \n {canvasLinks.map((link) => (\n \n \n \n ))}\n \n
\n\n \n

\n If you’re not sure which region your account is in contact us at\n

\n help@bluedot.io\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.0/8 are 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 headers: { 'Service-Worker': 'script' }\n })\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\n .then(registration => {\n registration.unregister();\n })\n .catch(error => {\n console.error(error.message);\n });\n }\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.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":""}