{"version":3,"sources":["store.js","Error.js","Loading.js","components/Lookup.js","CardConnectTokenizer.js","svg/Amex.js","svg/Visa.js","svg/Mastercard.js","svg/Discover.js","components/Payment.js","components/Amount.js","svg/Success.js","components/BackToStart.js","components/Complete.js","svg/Failure.js","components/Failed.js","Status.js","styles/App.js","styles/Controls.js","App.js","serviceWorker.js","index.js"],"names":["initialState","progress","account","number","balance","amount","env","store","createContext","Provider","reducer","prevState","payload","constructor","Function","Object","has","_path","_value","produce","draft","set","Error","props","style","color","fontWeight","fontSize","className","children","Loading","StyledSpinner","styled","div","Lookup","useState","card","setCard","error","setError","statusMsg","setStatusMsg","loading","setLoading","globalState","useContext","setGlobalState","setState","submit","e","a","async","preventDefault","url","state","fetch","then","resp","json","result","data","status","cardNumberError","Fragment","CardHeader","title","subheader","onSubmit","TextField","required","type","onChange","value","target","label","id","height","Button","variant","onClick","CardConnectTokenizer","name","src","scrolling","width","frameBorder","Amex","enableBackground","version","viewBox","xmlns","d","fill","stroke","strokeWidth","points","visa","Mastercard","Discover","fillRule","useStyles","makeStyles","root","background","marginTop","border","borderRadius","padding","Payment","token","setToken","processing","setProcessing","buttonStyles","React","accountNumber","tokenUrl","useEffect","window","addEventListener","onEvent","removeEventListener","event","origin","JSON","parse","document","getElementById","message","validationError","textAlign","marginBottom","Visa","backgroundColor","borderTop","disabled","tl","length","al","urlToken","slice","formData","FormData","append","method","body","Amount","setAmount","amountError","money","replace","parseInt","helperText","InputProps","startAdornment","InputAdornment","position","Success","SuccessStyled","strokeMiterlimit","cx","cy","r","strokeLinecap","BackToStart","Complete","display","FailureStyled","class","x1","y1","x2","y2","Failed","Failure","Status","StyledStatus","newBalance","showAmount","StyledApp","Controls","App","Paper","showAccountDetails","Boolean","location","hostname","match","ReactDOM","render","useReducer","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.829c2afc.chunk.js","sourcesContent":["import React, {createContext, useReducer} from \"react\";\nimport produce from \"immer\";\nimport {has, set} from \"lodash\";\n\nconst initialState = {\n progress: \"lookup\",\n account: {\n number: false,\n balance: 0,\n },\n amount: 0,\n env: 'prod',\n};\n\nconst store = createContext(initialState);\nconst {Provider} = store;\n\nconst reducer = (prevState, payload) => {\n if (payload.constructor === Function) {\n return {...prevState, ...payload(prevState)};\n }\n\n if (payload.constructor === Object) {\n if (has(payload, \"_path\") && has(payload, \"_value\")) {\n const {_path, _value} = payload;\n\n return produce(prevState, draft => {\n set(draft, _path, _value);\n });\n } else {\n return {...prevState, ...payload};\n }\n }\n return {...prevState};\n};\n\nconst StateProvider = ({children}) => {\n const [state, setState] = useReducer(reducer, initialState);\n\n return (\n \n {children}\n \n );\n};\n\nexport {store, StateProvider};\n","import React from \"react\";\n\nconst Error = props => {\n return (\n \n Error: {props.children}\n \n );\n};\n\nexport default Error;\n","import React from \"react\";\nimport styled from \"styled-components\";\n\nconst Loading = () => {\n return (\n \n
\n
\n
\n
\n
\n );\n};\n\nexport default Loading;\n\nconst StyledSpinner = styled.div`\n display: inline-block;\n position: relative;\n width: 40px;\n height: 20px;\n\n div {\n position: absolute;\n top: calc(20px - 8px);\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background: #333;\n animation-timing-function: cubic-bezier(0, 1, 1, 0);\n }\n div:nth-child(1) {\n left: 4px;\n animation: lds-ellipsis1 0.6s infinite;\n }\n div:nth-child(2) {\n left: 6px;\n animation: lds-ellipsis2 0.6s infinite;\n }\n div:nth-child(3) {\n left: 20px;\n animation: lds-ellipsis2 0.6s infinite;\n }\n div:nth-child(4) {\n left: 32px;\n animation: lds-ellipsis3 0.6s infinite;\n }\n @keyframes lds-ellipsis1 {\n 0% {\n transform: scale(0);\n }\n 100% {\n transform: scale(1);\n }\n }\n @keyframes lds-ellipsis3 {\n 0% {\n transform: scale(1);\n }\n 100% {\n transform: scale(0);\n }\n }\n @keyframes lds-ellipsis2 {\n 0% {\n transform: translate(0, 0);\n }\n 100% {\n transform: translate(12px, 0);\n }\n }\n`;\n\n// const StyledSpinner = styled.div`\n// display: inline-block;\n// position: relative;\n// width: 80px;\n// height: 80px;\n\n// div {\n// box-sizing: border-box;\n// display: block;\n// position: absolute;\n// width: 64px;\n// height: 64px;\n// margin: 8px;\n// border: 8px solid #fff;\n// border-radius: 50%;\n// animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;\n// border-color: #000 transparent transparent transparent;\n// }\n\n// div:nth-child(1) {\n// animation-delay: -0.45s;\n// }\n\n// div:nth-child(2) {\n// animation-delay: -0.3s;\n// }\n\n// div:nth-child(3) {\n// animation-delay: -0.15s;\n// }\n\n// @keyframes lds-ring {\n// 0% {\n// transform: rotate(0deg);\n// }\n// 100% {\n// transform: rotate(360deg);\n// }\n// }\n// `;\n","import React, {useContext, useState} from \"react\";\nimport {Button, CardHeader, TextField} from \"@material-ui/core\";\n// import \"../App.css\";\nimport Error from \"../Error\";\n// import Balance from \"../Balance\";\nimport Loading from \"../Loading\";\n\nimport {store} from \"../store.js\";\n\nfunction Lookup() {\n const [card, setCard] = useState(\"\");\n const [error, setError] = useState(false);\n const [statusMsg, setStatusMsg] = useState(\"\");\n const [loading, setLoading] = useState(false);\n\n const globalState = useContext(store);\n const {setState: setGlobalState} = globalState;\n // const { var } = globalState.state;\n\n const updateTextField = e => {\n const value = e.target.value;\n setCard(value);\n };\n\n const submit = async e => {\n e.preventDefault();\n setStatusMsg(\"\");\n setError(false);\n setLoading(true);\n\n if (card === \"\") {\n setError(\"cardNumber\");\n setLoading(false);\n setStatusMsg(\"Card number is required\");\n return;\n }\n\n let url = 'https://www.firsttowndowntown.org/giftcards/index.php/balance';\n if (globalState.state.env === 'dev') {\n //let url = \"https://www.firsttowndowntown.org/giftcards/index.php/balance\";\n url = \"http://localhost:9000/balance\";\n }\n\n if (card) {\n url = url + `/${card}`;\n }\n\n const result = await fetch(url).then(resp => resp.json());\n\n if (result.data.status === \"error\") {\n setError(\"cardNumber\");\n setStatusMsg(\"Invalid Card Number\");\n setLoading(false);\n setGlobalState({_path: \"account.number\", _value: false});\n setGlobalState({_path: \"account.balance\", _value: \"--\"});\n return;\n }\n\n if (result.data.status === \"success\") {\n setLoading(false);\n setGlobalState({_path: \"progress\", _value: \"amount\"});\n setGlobalState({_path: \"account.number\", _value: card});\n setGlobalState({_path: \"account.balance\", _value: result.data.balance});\n }\n };\n\n let cardNumberError = false;\n if (error === \"cardNumber\") {\n cardNumberError = true;\n }\n\n return (\n \n \n
\n \n {error === \"cardNumber\" &&\n statusMsg &&\n \n {statusMsg}\n }\n {error === false &&
}\n
\n \n {loading === true && }\n
\n \n \n );\n}\n\nexport default Lookup;\n","import React, {useContext} from \"react\";\nimport {store} from \"./store\";\n\nconst CardConnectTokenizer = () => {\n const globalState = useContext(store);\n const {env} = globalState.state;\n const params = '?useexpiry=true&usecvv=true&invalidinputevent=true&highlightinvalidinput=true&tokenizewheninactive=true&inactivityto=500&unique=true';\n let url = 'https://fts.cardconnect.com/itoke/ajax-tokenizer.html';\n\n if (env === 'dev') {\n url = 'https://fts-uat.cardconnect.com/itoke/ajax-tokenizer.html';\n }\n\n url = url + params;\n\n return (\n \n );\n};\n\nexport default CardConnectTokenizer;\n","import React from \"react\";\n\nconst Amex = () => {\n const color = \"#999\";\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default Amex;\n","import React from \"react\";\n\nconst visa = () => {\n const color = \"#999\";\n return (\n \n \n \n \n \n );\n};\n\nexport default visa;\n","import React from \"react\";\n\nconst Mastercard = () => {\n const color = \"#999\";\n return (\n \n \n \n \n \n );\n};\n\nexport default Mastercard;\n","import React from \"react\";\n\nconst Discover = () => {\n const color = \"#999\";\n return (\n \n \n \n \n \n \n );\n};\n\nexport default Discover;\n","import React, {useEffect, useState} from \"react\";\n// import styled from \"styled-components\";\nimport {Button, CardHeader} from \"@material-ui/core\";\nimport {makeStyles} from \"@material-ui/core/styles\";\n\nimport {store} from \"../store\";\nimport CardConnectTokenizer from \"../CardConnectTokenizer\";\nimport Amex from \"../svg/Amex\";\nimport Visa from \"../svg/Visa\";\nimport Mastercard from \"../svg/Mastercard\";\nimport Discover from \"../svg/Discover\";\n// import StyledBalanceReload from \"../styles/BalanceReload\";\n\nconst useStyles = makeStyles({\n root: {\n background: \"#6BD19A\",\n marginTop: \"10px\",\n border: 0,\n borderRadius: 3,\n // boxShadow: \"0 3px 5px 2px rgba(255, 105, 135, .3)\",\n color: \"white\",\n height: 48,\n padding: \"0 30px\",\n \"&:hover\": {\n background: \"#1DC26A\",\n },\n },\n});\n\nconst Payment = () => {\n const [token, setToken] = useState(false);\n // const [error, setError] = useState(true);\n // const [showError, setShowError] = useState(false);\n // const [isValid, setIsValid] = useState(false);\n const [processing, setProcessing] = useState(false);\n const buttonStyles = useStyles();\n\n const globalState = React.useContext(store);\n const {setState: setGlobalState} = globalState;\n const {amount, env} = globalState.state;\n const accountNumber = globalState.state.account.number;\n let tokenUrl = 'https://fts.cardconnect.com';\n let url = 'https://www.firsttowndowntown.org/giftcards/index.php/action/add';\n\n if (env === 'dev') {\n tokenUrl = 'https://fts-uat.cardconnect.com';\n // url = `https://www.firsttowndowntown.org/giftcards/index.php/action/add`;\n url = 'http://localhost:9000/action/add'\n }\n\n useEffect(() => {\n window.addEventListener(\"message\", onEvent, false);\n return () => window.removeEventListener(\"message\", onEvent);\n });\n\n const onEvent = event => {\n if (event.origin === tokenUrl) {\n let token = JSON.parse(event.data);\n let mytoken = document.getElementById(\"ftdt-reload-token\");\n mytoken.value = token.message;\n\n if (token.validationError) {\n setToken(false);\n }\n\n if (token.message) {\n setToken(token.message);\n // setError(false);\n }\n }\n };\n\n const handleSubmit = async e => {\n e.preventDefault();\n if (token) {\n setProcessing(true);\n const tl = token.length;\n const al = accountNumber.length;\n\n const urlToken =\n token.slice(0, 5) +\n accountNumber.slice(0, 8) +\n token.slice(5) +\n accountNumber.slice(8) +\n tl +\n al;\n\n const formData = new FormData();\n formData.append(\"token\", urlToken);\n formData.append(\"amount\", amount * 100);\n\n const result = await fetch(url, {\n method: \"post\",\n body: formData,\n }).then(resp => {\n setProcessing(false);\n return resp.json();\n });\n\n if (result.data.status === \"success\") {\n setGlobalState({\n _path: \"account.balance\",\n _value: result.data.balance,\n });\n setGlobalState({_path: \"amount\", _value: 0});\n setGlobalState({_path: \"progress\", _value: \"complete\"});\n }\n\n if (result.data.status === \"error\") {\n setGlobalState({_path: \"progress\", _value: \"failed\"});\n }\n }\n };\n\n const goBack = e => {\n e.preventDefault();\n\n setGlobalState({_path: \"progress\", _value: \"amount\"});\n setGlobalState({_path: \"amount\", _value: 0});\n };\n\n const submitDisabled = () => {\n if (!token) {\n return true;\n }\n\n if (processing) {\n return true;\n }\n\n return false;\n };\n\n return (\n \n
\n \n
\n \n
\n  \n  \n  \n  \n
\n
\n \n \n
\n \n \n Pay\n \n \n
\n );\n};\n\nexport default Payment;\n","import React from \"react\";\nimport {Button, CardHeader, InputAdornment, TextField,} from \"@material-ui/core\";\nimport {store} from \"../store\";\nimport Loading from \"../Loading\";\n\nconst Amount = () => {\n const [amount, setAmount] = React.useState(\"\");\n const [error] = React.useState(false);\n const [loading] = React.useState(false);\n\n const globalState = React.useContext(store);\n const {setState: setGlobalState} = globalState;\n\n const updateTextField = e => {\n const value = e.target.value;\n\n let money = value.replace(/[\\D\\s._-]+/g, \"\");\n money = money ? parseInt(money, 10) : 0;\n // let money = value;\n\n setAmount(money);\n setGlobalState({_path: \"amount\", _value: money});\n };\n\n let amountError = false;\n if (error === \"amountError\") {\n amountError = true;\n }\n\n const handleSubmit = e => {\n e.preventDefault();\n setGlobalState({_path: \"progress\", _value: \"payment\"});\n };\n\n const goBack = e => {\n e.preventDefault();\n\n setGlobalState({_path: \"progress\", _value: \"lookup\"});\n setGlobalState({_path: \"account.number\", _value: false});\n };\n\n return (\n \n
\n \n
\n \n
\n $,\n }}\n />\n
\n \n Continue\n \n {loading === true && }\n
\n
\n );\n};\n\nexport default Amount;\n","import React from \"react\";\nimport styled from \"styled-components\";\n\nconst Success = () => {\n return (\n \n \n \n \n \n

Success!

\n
\n );\n};\n\nexport default Success;\n\nconst SuccessStyled = styled.div`\n svg {\n width: 100px;\n display: block;\n margin: 40px auto 0;\n }\n\n .path {\n stroke-dasharray: 1000;\n stroke-dashoffset: 0;\n &.circle {\n -webkit-animation: dash .9s ease-in-out;\n animation: dash .9s ease-in-out;\n }\n &.line {\n stroke-dashoffset: 1000;\n -webkit-animation: dash .9s .35s ease-in-out forwards;\n animation: dash .9s .35s ease-in-out forwards;\n }\n &.check {\n stroke-dashoffset: -100;\n -webkit-animation: dash-check .9s .35s ease-in-out forwards;\n animation: dash-check .9s .35s ease-in-out forwards;\n }\n }\n\n p {\n text-align: center;\n margin: 20px 0;\n font-size: 1.25em;\n &.success {\n color: #73af55;\n }\n &.error {\n color: #d06079;\n }\n }\n\n @-webkit-keyframes dash {\n 0% {\n stroke-dashoffset: 1000;\n }\n 100% {\n stroke-dashoffset: 0;\n }\n }\n\n @keyframes dash {\n 0% {\n stroke-dashoffset: 1000;\n }\n 100% {\n stroke-dashoffset: 0;\n }\n }\n\n @-webkit-keyframes dash-check {\n 0% {\n stroke-dashoffset: -100;\n }\n 100% {\n stroke-dashoffset: 900;\n }\n }\n\n @keyframes dash-check {\n 0% {\n stroke-dashoffset: -100;\n }\n 100% {\n stroke-dashoffset: 900;\n }\n }\n`;\n","import React from 'react';\nimport {Button} from \"@material-ui/core\";\nimport {makeStyles} from \"@material-ui/core/styles\";\nimport {store} from \"../store\";\n\nconst useStyles = makeStyles({\n root: {\n background: \"#92363B\",\n marginTop: \"10px\",\n border: 0,\n borderRadius: 3,\n // boxShadow: \"0 3px 5px 2px rgba(255, 105, 135, .3)\",\n color: \"white\",\n height: 48,\n padding: \"0 30px\",\n \"&:hover\": {\n background: \"#652828\",\n },\n },\n});\n\nconst BackToStart = (props) => {\n const buttonStyles = useStyles();\n const globalState = React.useContext(store);\n const {setState: setGlobalState} = globalState;\n\n const backToStart = (e) => {\n e.preventDefault();\n setGlobalState({_path: \"progress\", _value: \"lookup\"});\n setGlobalState({_path: \"amount\", _value: 0});\n setGlobalState({_path: \"account.number\", _value: false});\n setGlobalState({_path: \"account.balance\", _value: 0});\n };\n\n return (\n
\n \n {props.children}\n \n
\n );\n};\n\nexport default BackToStart;\n","import React from \"react\";\nimport {store} from \"../store\";\nimport Success from \"../svg/Success\";\nimport BackToStart from \"./BackToStart\";\n\nconst Complete = () => {\n const globalState = React.useContext(store);\n const {balance} = globalState.state.account;\n\n return (\n
\n \n
\n

\n \n Funds have been added to your account.\n \n Your new balance is\n

\n

\n ${balance}\n

\n
\n
\n Start Again\n
\n
\n );\n};\n\nexport default Complete;\n","import React from \"react\";\nimport styled from \"styled-components\";\n\nconst Success = () => {\n return (\n \n \n \n \n \n \n

Failure

\n
\n );\n};\n\nexport default Success;\n\nconst FailureStyled = styled.div`\n svg {\n width: 100px;\n display: block;\n margin: 40px auto 0;\n }\n\n .path {\n stroke-dasharray: 1000;\n stroke-dashoffset: 0;\n &.circle {\n -webkit-animation: dash .9s ease-in-out;\n animation: dash .9s ease-in-out;\n }\n &.line {\n stroke-dashoffset: 1000;\n -webkit-animation: dash .9s .35s ease-in-out forwards;\n animation: dash .9s .35s ease-in-out forwards;\n }\n &.check {\n stroke-dashoffset: -100;\n -webkit-animation: dash-check .9s .35s ease-in-out forwards;\n animation: dash-check .9s .35s ease-in-out forwards;\n }\n }\n\n p {\n text-align: center;\n margin: 20px 0;\n font-size: 1.25em;\n &.success {\n color: #73af55;\n }\n &.error {\n color: #d06079;\n }\n }\n\n @-webkit-keyframes dash {\n 0% {\n stroke-dashoffset: 1000;\n }\n 100% {\n stroke-dashoffset: 0;\n }\n }\n\n @keyframes dash {\n 0% {\n stroke-dashoffset: 1000;\n }\n 100% {\n stroke-dashoffset: 0;\n }\n }\n\n @-webkit-keyframes dash-check {\n 0% {\n stroke-dashoffset: -100;\n }\n 100% {\n stroke-dashoffset: 900;\n }\n }\n\n @keyframes dash-check {\n 0% {\n stroke-dashoffset: -100;\n }\n 100% {\n stroke-dashoffset: 900;\n }\n }\n`;\n","import React from \"react\";\nimport Failure from \"../svg/Failure\";\nimport BackToStart from \"./BackToStart\";\n\nconst Failed = () => {\n return (\n
\n \n
\n

\n \n There was a problem adding funds to your account.\n \n

\n
\n
\n Try Again\n
\n
\n );\n};\n\nexport default Failed;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { store } from \"./store.js\";\n\nconst Status = () => {\n const globalState = React.useContext(store);\n const { balance, number } = globalState.state.account;\n const { amount } = globalState.state;\n\n const showAmount = () => {\n if (amount === 0) {\n return;\n }\n\n // const beginningBalance = balance === \"--\" ? 0 : parseInt(balance, 10);\n const beginningBalance = parseInt(balance, 10) * 100;\n const amountToAdd = parseInt(amount, 10) * 100;\n\n const newBalance = (beginningBalance + amountToAdd) / 100;\n\n return (\n
\n New Balance:\n
${newBalance}\n
\n );\n };\n if (!number) {\n return
;\n }\n\n return (\n \n

Transaction Summary

\n
\n Account:\n
{number}\n
\n
\n Current Balance:\n
${balance}\n
\n {showAmount()}\n
\n );\n};\n\nexport default Status;\n\nconst StyledStatus = styled.div`\n background-color: #fafafa;\n flex: 1 1 100%;\n padding: 15px;\n /* margin-left: -100%; */\n\n > div {\n margin-bottom: 15px;\n }\n`;\n","import styled from \"styled-components\";\n\nconst StyledApp = styled.div`\n max-width: 800px;\n margin: auto;\n padding: 20px 40px;\n box-sizing: border-box;\n\n h1 {\n border: 1px solid red;\n }\n\n .columns {\n display: flex;\n justify-content: center;\n align-items: stretch;\n\n @media (max-width: 768px) {\n flex-direction: column;\n align-items: center;\n }\n\n > div {\n width: 100%;\n padding: 10px 20px;\n display: flex;\n\n @media (min-width: 769px) {\n width: 50%;\n }\n }\n\n .status-container {\n overflow: hidden;\n padding: 0;\n margin: 10px 20px;\n max-width: 400px;\n }\n }\n`;\n\nexport default StyledApp;\n","import styled from \"styled-components\";\n\nconst Controls = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n width: 100%;\n height: 100%;\n\n .MuiCardHeader-title {\n margin-bottom: 8px;\n }\n\n .MuiCardHeader-subheader {\n line-height: 1.1;\n font-size: 14px;\n }\n\n .control-container {\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n padding: 20px;\n width: 350px;\n border-top: 10px solid #92363b;\n }\n\n form {\n display: flex;\n flex-direction: column;\n width: 100%;\n padding: 0 30px;\n box-sizing: border-box;\n }\n\n .submit {\n width: 150px;\n margin: 15px auto;\n }\n`;\n\nexport default Controls;\n","import React, {useContext} from \"react\";\nimport {Paper} from \"@material-ui/core\";\n// Data\nimport {store} from \"./store.js\";\n// Components\nimport Lookup from \"./components/Lookup\";\nimport Payment from \"./components/Payment\";\nimport Amount from \"./components/Amount\";\nimport Complete from \"./components/Complete\";\nimport Failed from \"./components/Failed\";\nimport Status from \"./Status\";\n// Styles\nimport StyledApp from \"./styles/App\";\nimport Controls from \"./styles/Controls\";\n\nconst App = () => {\n const globalState = useContext(store);\n const state = globalState.state;\n\n const displayControls = () => {\n if (state.progress === \"failed\") {\n return ;\n } else if (state.progress === \"complete\") {\n return ;\n } else if (state.progress === \"payment\") {\n return ;\n } else if (state.progress === \"amount\") {\n return ;\n } else if (state.progress === \"lookup\") {\n return ;\n }\n };\n\n const showAccountDetails = () => {\n if (state.progress === \"amount\" || state.progress === \"payment\") {\n return ;\n }\n };\n\n return (\n \n
\n \n \n {displayControls()}\n \n \n
\n {showAccountDetails()}\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.then(registration => {\n registration.unregister();\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\";\nimport { StateProvider } from \"./store.js\";\n\nReactDOM.render(\n \n \n ,\n document.getElementById(\"balance-lookup\"),\n);\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":""}