{"version":3,"sources":["logo.svg","service.js","Components/LocationListing.jsx","Components/FindLocation.jsx","App.js","serviceWorker.js","index.js"],"names":["http","axios","create","withCredentials","interceptors","response","use","res","err","status","data","Message","console","log","Promise","reject","window","location","ListInfoImage","styled","img","GroupTypeSwitch","group","GroupTypeDefaultImage","defaultImage","renderAddress","address","formattedAddress","Street","City","StateCode","ZipCode","LocationListing","props","detailPage","code","class","className","take","totalCount","zipCode","locations","map","l","i","id","onClick","setMarkerActive","LogoUrl","src","alt","Title","GroupType","PersistedValue","Address","style","display","PhoneNumber","href","aria-label","role","aria-hidden","focusable","Math","round","Miles","UrlName","target","CheckBoxLabel","label","MarkerGroupSwitch","p","careCenterMarker","FindLocation","useState","document","createElement","containerEl","React","setLocation","marker","setMarker","mapCenter","setMapCenter","currentLocation","setCurrentLocation","searchValue","setSearchValue","setZipCode","setTake","setCode","setTotalCount","zoomLevel","setZoomLevel","locationSettings","getElementById","JSON","parse","innerHTML","1","2","3","8","groupType","setGroupType","mapKey","getLatLng","lat","lng","groupTypeObj","scaledMarker","width","height","defaultMarkerSize","mapOptions","editable","markersWontHide","mapTypeControlOptions","fullscreenControl","styles","featureType","elementType","stylers","visibility","position","useEffect","appendChild","cookie","Cookies","get","navigator","geolocation","getCurrentPosition","coords","latitude","longitude","parseCookie","zip","getLocations","getCurrentLocation","error","message","removeChild","input","zipcode","params","getParams","url","then","TotalCount","Locations","Latitude","Longitude","length","finally","paramMap","Map","set","Array","from","key","value","encodeURIComponent","join","expires","sameSite","secure","handleCheckBoxChanges","checkbox","isChecked","checked","oldGroupType","newstate","ReactDOM","createPortal","DOMParser","parseFromString","documentElement","textContent","type","name","onChange","e","placeholder","onKeyDown","getCurrentMapPosition","markerId","googleMapsApiKey","center","zoom","options","mapContainerStyle","open","targetMaker","icon","scaledSize","findLocationWidget","App","Boolean","hostname","match","render","StrictMode","serviceWorker","ready","registration","unregister","catch"],"mappings":"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","file":"static/js/main.254bbbe6.chunk.js","sourcesContent":["export default __webpack_public_path__ + \"static/media/logo.6ce24c58.svg\";","import axios from 'axios';\r\n\r\nlet http = axios.create({ withCredentials: true });\r\n\r\n// Whenever our client receives a 401 unauthorized error, force the user back to login\r\nhttp.interceptors.response.use(res => res, err => {\r\n if(err.response.status === 401){\r\n window.location = '/unauthorized';\r\n }\r\n else {\r\n let message = err;\r\n if(err.response.status === 400){\r\n if(err.response.data && err.response.data.Message){\r\n message = err.response.data.Message;\r\n }\r\n }\r\n console.log(err);\r\n return Promise.reject(err);\r\n }\r\n});\r\n\r\nexport default http;","// Imports\r\nimport React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nconst ListInfoImage = styled.img`\r\n width: 50px;\r\n`;\r\nconst GroupTypeSwitch = (group) => {\r\n switch (group) {\r\n case \"1\":\r\n return Care Center;\r\n case \"16\":\r\n return Clinical Associate;\r\n case \"2\":\r\n return Support Group;\r\n case \"8\":\r\n return Clinical Trial;\r\n default:\r\n return Care Center;\r\n }\r\n};\r\n\r\nconst GroupTypeDefaultImage = (group) => {\r\n const defaultImage =\r\n \"/ResourcePackages/Talon/assets/dist/images/medical-center-default.png\";\r\n const careCenterDefaultImage =\r\n \"/ResourcePackages/Talon/assets/dist/images/care-center-default.png\";\r\n const clinicalTrialDefaultImage =\r\n \"/ResourcePackages/Talon/assets/dist/images/clinical-trials-default.png\";\r\n switch (group) {\r\n case \"1\":\r\n case \"16\":\r\n return careCenterDefaultImage;\r\n case \"2\":\r\n return defaultImage;\r\n case \"8\":\r\n return clinicalTrialDefaultImage;\r\n default:\r\n return defaultImage;\r\n }\r\n};\r\n\r\nconst renderAddress = (address) => {\r\n let formattedAddress = \"\";\r\n\r\n if (address) {\r\n if (address.Street !== \"\" && address.Street !== null) {\r\n formattedAddress += address.Street + \", \";\r\n }\r\n\r\n if (address.City !== \"\" && address.City !== null) {\r\n formattedAddress += address.City + \", \";\r\n }\r\n\r\n if (address.StateCode !== \"\" && address.StateCode !== null) {\r\n formattedAddress += address.StateCode + \" \";\r\n }\r\n\r\n if (address.ZipCode !== \"\" && address.ZipCode !== null) {\r\n formattedAddress += address.ZipCode;\r\n }\r\n }\r\n\r\n return formattedAddress;\r\n};\r\n\r\nconst LocationListing = (props) => {\r\n const detailPage = props.detailPage;\r\n const SHOW = \"location__distance\";\r\n const HIDE = \"\";\r\n\r\n return (\r\n <>\r\n {props.code == \"GeolocationError\" && (\r\n
\r\n
\r\n \r\n We are unable to access your exact location\r\n \r\n
\r\n

\r\n To find Care Center or Support Group locations turn on\r\n Location Services or enter a Zip Code.\r\n

\r\n
\r\n )}\r\n {props.code == \"OK\" && (\r\n \r\n Showing {props.take} of {props.totalCount} locations near{\" \"}\r\n {props.zipCode}\r\n \r\n )}\r\n {props.code == \"NoResults\" && (\r\n
\r\n

\r\n \r\n We're sorry. There are no Care Centers, Support\r\n Groups, and/or Clinical Trials in your area; however\r\n here are the nearest locations based on your search.\r\n \r\n

\r\n
\r\n )}\r\n {props.code == \"NoneSelected\" && (\r\n
\r\n

\r\n \r\n We're sorry. You have not selected a search filter.\r\n Please select one to receive results.\r\n \r\n

\r\n
\r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default LocationListing;\r\n","// Imports\r\nimport React, { useEffect, useState } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport http from \"../service\";\r\nimport styled from \"styled-components\";\r\nimport { GoogleMap, LoadScript, Marker } from \"@react-google-maps/api\";\r\nimport Cookies from \"js-cookie\";\r\nimport LocationListing from \"./LocationListing\";\r\n\r\n// styled components\r\nconst CheckBoxLabel = styled.label`\r\n padding-right: 10px;\r\n`;\r\nconst UseCurrentLocationText = styled.p`\r\n :hover {\r\n cursor: pointer;\r\n }\r\n`;\r\n\r\n// switch marker depending on group type\r\nconst MarkerGroupSwitch = (group) => {\r\n const careCenterMarker =\r\n \"/ResourcePackages/Talon/assets/dist/images/red-marker.png\";\r\n const clinicalAssociateSiteMarker =\r\n \"/ResourcePackages/Talon/assets/dist/images/cyan-marker.png\";\r\n const supportGroupMarker =\r\n \"/ResourcePackages/Talon/assets/dist/images/blue-marker.png\";\r\n const clinicalTrialMarker =\r\n \"/ResourcePackages/Talon/assets/dist/images/orange-marker.png\";\r\n\r\n switch (group) {\r\n case \"1\":\r\n return careCenterMarker;\r\n case \"16\":\r\n return clinicalAssociateSiteMarker;\r\n case \"2\":\r\n return supportGroupMarker;\r\n case \"8\":\r\n return clinicalTrialMarker;\r\n default:\r\n return careCenterMarker;\r\n }\r\n};\r\n\r\nconst FindLocation = (props) => {\r\n const [containerEl] = useState(document.createElement(\"div\"));\r\n const [locations, setLocation] = React.useState([]);\r\n const [marker, setMarker] = React.useState(null);\r\n const [mapCenter, setMapCenter] = React.useState(null);\r\n const [currentLocation, setCurrentLocation] = React.useState(null);\r\n const [searchValue, setSearchValue] = React.useState(null);\r\n const [zipCode, setZipCode] = React.useState(null);\r\n const [take, setTake] = React.useState(0);\r\n const [code, setCode] = React.useState(null);\r\n const [totalCount, setTotalCount] = React.useState(0);\r\n const [zoomLevel, setZoomLevel] = React.useState(11);\r\n const locationSettings =\r\n document.getElementById(\"location-settings\") &&\r\n JSON.parse(document.getElementById(\"location-settings\").innerHTML);\r\n\r\n locationSettings[\"CareCenter\"] =\r\n locationSettings[\"CareCenter\"] === \"True\" ? true : false;\r\n locationSettings[\"SupportGroup\"] =\r\n locationSettings[\"SupportGroup\"] === \"True\" ? true : false;\r\n locationSettings[\"VirtualGroup\"] =\r\n locationSettings[\"VirtualGroup\"] === \"True\" ? true : false;\r\n locationSettings[\"ClinicalTrial\"] =\r\n locationSettings[\"ClinicalTrial\"] === \"True\" ? true : false;\r\n\r\n const [groupType, setGroupType] = React.useState({\r\n 1: locationSettings[\"CareCenter\"],\r\n 2: locationSettings[\"SupportGroup\"],\r\n 3: locationSettings[\"VirtualGroup\"],\r\n 8: locationSettings[\"ClinicalTrial\"],\r\n });\r\n const mapKey = locationSettings && locationSettings[\"map\"];\r\n\r\n // helper to get latitude and longitude\r\n const getLatLng = (lat, lng) => {\r\n if (lat && lng) {\r\n return {\r\n lat: lat,\r\n lng: lng,\r\n };\r\n }\r\n };\r\n\r\n const groupTypeObj = {\r\n 1: true,\r\n 2: true,\r\n 3: true,\r\n 8: true,\r\n };\r\n\r\n const targetMaker = (location) => {\r\n const url = `${locationSettings[\"locationDetailPage\"]}/${location}`;\r\n window.open(url, \"_blank\");\r\n };\r\n\r\n const setMarkerActive = (location, markerId) => {\r\n setMarker(markerId);\r\n setZoomLevel(15);\r\n setMapCenter(\r\n getLatLng(location.Address.Latitude, location.Address.Longitude)\r\n );\r\n };\r\n\r\n const setCurrentLocationObj = (location) => {\r\n return {\r\n Latitude: location.Latitude,\r\n Longitude: location.Longitude,\r\n ZipCode: location.ZipCode,\r\n };\r\n };\r\n\r\n const containerStyle = {\r\n height: \"10rem\",\r\n };\r\n\r\n const center = {\r\n lat: 41.8781136,\r\n lng: -87.6297982,\r\n };\r\n\r\n const scaledMarker = {\r\n width: 100,\r\n height: 100,\r\n };\r\n\r\n const defaultMarkerSize = {\r\n width: 50,\r\n height: 50,\r\n };\r\n\r\n const pffStyle = [\r\n {\r\n featureType: \"poi\",\r\n elementType: \"labels\",\r\n stylers: [\r\n { visibility: \"off\" }, // remove points of interest\r\n ],\r\n },\r\n ];\r\n\r\n const mapOptions = {\r\n editable: false,\r\n markersWontHide: true,\r\n mapTypeControlOptions: false,\r\n fullscreenControl: false,\r\n styles: pffStyle,\r\n mapTypeControlOptions: {\r\n position: \"BOTTOM_RIGHT\",\r\n }, // remove satelite option\r\n };\r\n\r\n const htmlDecode = (input) => {\r\n var doc = new DOMParser().parseFromString(input, \"text/html\");\r\n return doc.documentElement.textContent;\r\n };\r\n\r\n useEffect(() => {\r\n document.getElementById(\"findLocation\").appendChild(containerEl);\r\n // get current position\r\n const cookie = Cookies.get(\"sf-mc-med\");\r\n navigator.geolocation.getCurrentPosition(\r\n function (position) {\r\n setMapCenter(\r\n getLatLng(\r\n position.coords.latitude,\r\n position.coords.longitude\r\n )\r\n );\r\n if (!cookie) {\r\n getCurrentLocation(\r\n position.coords.latitude,\r\n position.coords.longitude\r\n );\r\n } else {\r\n let parseCookie = JSON.parse(cookie);\r\n setCurrentLocation(\r\n getLatLng(\r\n parseCookie[\"Latitude\"],\r\n parseCookie[\"Longitude\"]\r\n )\r\n );\r\n let zip = `${parseCookie[\"ZipCode\"]}`;\r\n setZipCode(zip);\r\n getLocations(zip, groupType);\r\n }\r\n },\r\n function (error) {\r\n console.error(\r\n `Geolocation Error (${error.code}): ${error.message}`\r\n );\r\n setCode(\"GeolocationError\");\r\n }\r\n );\r\n\r\n return () => {\r\n document.getElementById(\"findLocation\").removeChild(containerEl);\r\n };\r\n }, [containerEl]);\r\n\r\n useEffect(() => {\r\n if (searchValue) {\r\n getLocations(searchValue, groupType);\r\n } else if (Cookies.get(\"sf-mc-med\")) {\r\n let cookie = Cookies.get(\"sf-mc-med\");\r\n let parseCookie = JSON.parse(cookie);\r\n getLocations(parseCookie[\"ZipCode\"], groupType);\r\n }\r\n }, [groupType, take]);\r\n\r\n const getLocations = (zipcode, groupType) => {\r\n setZipCode(zipcode);\r\n setZoomLevel(9);\r\n setMarker(null);\r\n var params = getParams(zipcode, groupType);\r\n let url = `/api/medical-care/search?${params}`;\r\n\r\n http.get(url)\r\n .then((res) => {\r\n setTotalCount(res.data.TotalCount);\r\n setLocation(res.data.Locations);\r\n if (res.data.Locations) {\r\n setMapCenter(\r\n getLatLng(\r\n res.data.Locations[0].Address?.Latitude,\r\n res.data.Locations[0].Address?.Longitude\r\n )\r\n );\r\n }\r\n if (res.data.Locations !== null) {\r\n if (res.data.Locations.length <= 3) {\r\n setCode(\"NoResults\");\r\n } else {\r\n setCode(\"OK\");\r\n }\r\n } else {\r\n setCode(\"NoneSelected\");\r\n }\r\n })\r\n .finally(() => {});\r\n };\r\n const getParams = (zipCode, groupType) => {\r\n const paramMap = new Map();\r\n paramMap.set(\"zip\", zipCode);\r\n paramMap.set(\"take\", take || 25);\r\n paramMap.set(\"radius\", locationSettings[\"radius\"]);\r\n if (groupType) {\r\n paramMap.set(\"careCenter\", groupType[\"1\"]);\r\n paramMap.set(\"supportGroup\", groupType[\"2\"]);\r\n paramMap.set(\"virtualLocations\", groupType[\"3\"]);\r\n paramMap.set(\"clinicalTrial\", groupType[\"8\"]);\r\n }\r\n return Array.from(paramMap)\r\n .map(\r\n ([key, value]) =>\r\n `${encodeURIComponent(key)}=${encodeURIComponent(value)}`\r\n )\r\n .join(\"&\");\r\n };\r\n\r\n const getCurrentLocation = (lat, lng) => {\r\n http.get(`/api/medical-care/geolocation?lat=${lat}&lng=${lng}`).then(\r\n (res) => {\r\n setCurrentLocation(getLatLng(lat, lng));\r\n if (res.data.Address) {\r\n Cookies.set(\r\n \"sf-mc-med\",\r\n setCurrentLocationObj(res.data.Address),\r\n { expires: 1, sameSite: \"strict\", secure: true }\r\n );\r\n getLocations(`${res.data.Address.ZipCode}`, groupType);\r\n }\r\n }\r\n );\r\n };\r\n\r\n const getCurrentMapPosition = (location, zipCode) => {\r\n if (location) {\r\n setMapCenter(location);\r\n getLocations(`${zipCode}`, groupType);\r\n setSearchValue(\"\");\r\n } else {\r\n setCode(\"GeolocationError\");\r\n }\r\n };\r\n\r\n const handleCheckBoxChanges = (checkbox) => {\r\n setTake(25);\r\n let isChecked = checkbox.target.checked;\r\n if (groupTypeObj[checkbox.target.value]) {\r\n setGroupType((oldGroupType) => {\r\n let newstate = {};\r\n newstate[1] = oldGroupType[1];\r\n newstate[2] = oldGroupType[2];\r\n newstate[3] = oldGroupType[3];\r\n newstate[8] = oldGroupType[8];\r\n\r\n newstate[checkbox.target.value] = isChecked;\r\n return newstate;\r\n });\r\n }\r\n };\r\n\r\n return ReactDOM.createPortal(\r\n
\r\n
\r\n
\r\n

\r\n {locationSettings &&\r\n htmlDecode(locationSettings[\"title\"])}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n handleCheckBoxChanges(e)}\r\n checked={groupType[\"1\"]}\r\n />\r\n Care Center Network\r\n \r\n \r\n handleCheckBoxChanges(e)}\r\n checked={groupType[\"2\"]}\r\n />\r\n Support Group\r\n \r\n \r\n handleCheckBoxChanges(e)}\r\n checked={groupType[\"3\"]}\r\n />\r\n Virtual Group\r\n \r\n \r\n handleCheckBoxChanges(e)}\r\n checked={groupType[\"8\"]}\r\n />\r\n Clinical Trial\r\n \r\n
\r\n
\r\n setSearchValue(e.target.value)}\r\n onKeyDown={(e) => {\r\n if (e.key === \"Enter\") {\r\n setSearchValue(e.target.value);\r\n setTake(25);\r\n getLocations(searchValue, groupType);\r\n }\r\n }}\r\n />\r\n {\r\n setTake(25);\r\n getLocations(searchValue, groupType);\r\n }}\r\n >\r\n Search\r\n \r\n
\r\n\r\n \r\n getCurrentMapPosition(currentLocation, zipCode)\r\n }\r\n >\r\n \r\n \r\n \r\n Use Current Location\r\n \r\n
\r\n\r\n \r\n

\r\n {totalCount > 0 && take < totalCount && (\r\n <>\r\n {\r\n if (take < totalCount) {\r\n if (take + 10 > totalCount) {\r\n setTake(totalCount);\r\n } else {\r\n setTake(take + 10);\r\n }\r\n }\r\n }}\r\n >\r\n Load More\r\n \r\n \r\n )}\r\n

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