{"version":3,"sources":["assets/img/logo.png","components/LoadingUi/default.png","views/AuthPage/redux/actionTypes.js","views/AuthPage/enums.js","views/AuthPage/redux/reducers/auth.js","views/AuthPage/redux/reducers/service.js","store.js","views/AuthPage/constants.js","views/AuthPage/redux/actions.js","utils/index.js","components/InputUi/InputUi.js","components/InputUi/InputPhone.js","components/InputUi/InputCode.js","components/InputUi/InputInterPhone.js","components/ButtonUi/index.js","components/LoadingUi/index.js","components/LogoUi/index.js","constants/index.js","views/AuthPage/steps/InitialStep.js","views/AuthPage/steps/RedirectStep.js","globals.js","components/SubTitleUi/index.js","views/AuthPage/steps/flow/sms/EnterTheCode.js","views/AuthPage/steps/FlowStep.js","views/AuthPage/steps/FinalStep.js","views/AuthPage/AuthPage.js","views/AuthPage/index.js","serviceWorker.js","index.js"],"names":["module","exports","prefix","SET_LOADING","concat","SET_ERROR","SET_AUTH_STEP","SET_CALLER_NUM","SET_DESTINATION_NUM","SET_SESSION_DATA","SET_SESSION_ID","SET_SESSION_MAC_ADDRESS","SET_LOCATION","SET_SESSION_PERSONAL_DATA","SET_SESSION_CREATED_AT","SET_SESSION_IS_ATHORIZED","SET_SESSION_IS_AUTHENTICATED","SET_SMS_CODE","SET_FLOW","steps","flows","initialState","Map","step","flow","callerNum","destinationNum","session","sessionId","macAddress","location","personalData","createdAt","isAuthorized","isAuthenticated","sms","code","loading","error","show","message","undefined","rootReducer","combineReducers","service","state","arguments","length","action","type","acts","set","payload","setIn","auth","mergeIn","setLoading","setError","_ref","setInitialAuthStep","setAuthStep","nextStep","setCallerNum","setDestinationNum","setSessionData","setId","id","setMacAddress","setLocation","loc","toLowerCase","setPersonalData","setCreatedAt","setIsAuthorized","setIsAuthenticated","setCode","changeCode","dispatch","setFlow","setSuccessAuthStep","setSMSFlow","authenticate","_ref2","mac","async","res","fetch","method","body","JSON","stringify","json","parseInt","status","Error","err","console","cancelFunc","variable","log","msg","_ref3","limitSeconds","isProceed","flag","iterator","limit","proceed","constants","i","encodeURIComponent","Number","sleep","ms","Promise","resolve","setTimeout","requestSMS","_ref4","sendSMSCode","_ref5","smsUrl","requestCall","_ref6","sendRequestCallCode","_ref7","requestCallUrl","checkSessionIsAuthorized","_ref8","getClassName","rootClass","rootClassName","_len","classes","Array","_key","forEach","el","onUnloadPageHandler","event","preventDefault","returnValue","getParamFromUrl","paramName","url","search","split","params","pairValueArr","decodeUriColon","val","replace","isMobileDevice","nav","win","ua","userAgent","vendor","opera","check","test","substr","InputUi","PureComponent","constructor","renderVariant","variant","this","props","render","className","trim","React","createElement","InputMask","Object","assign","ERROR","InputPhone","number","handleChangeNumber","e","value","target","wantNumber","prepareNumber","setState","onChange","n","_onlyNumbers","_lenRangeMax","_russianMobile","_internationalFmt","slice","InputCode","mask","maskChar","ButtonUi","onClick","onKeyPress","children","disabled","LoadingUi","img","alt","src","defaultImg","LogoUi","cn","process","Policy","Link","noWrap","href","text","style","whiteSpace","rel","InitialStep","renderForm","Formik","initialValues","phoneNumber","onSubmit","values","setErrors","a","b","checkoutLen","errors","touched","Form","Field","name","field","meta","autoFocus","placeholder","RedirectStep","componentDidMount","window","Logo","getNavigator","navigator","getWindow","SubTitleUi","EnterTheCode","showDstNumber","smsRequested","onSubmitHandler","onEnterPressHandler","key","onCodeChangeHandler","isDisabled","getShowDstNumber","getSMSRequested","getDstNumber","onRequestSMS","that","isCallRecievedLoopedRequest","cancelCallback","componentDidUpdate","prevProps","prevCode","newCode","autoComplete","Fragment","globals","FlowStep","onRequestHandler","killFunc","renderFlow","addEventListener","sendAuthorizeRequest","componentWillUnmount","removeEventListener","FinalStep","AuthPage","renderAuthStep","URL","pathname","substring","BrowserRouter","Switch","Route","path","mapDispathToProps","authActions","connect","get","toJS","Boolean","hostname","match","ReactDOM","Provider","store","composeEnhancer","compose","middlewares","thunkMiddleware","middleware","applyMiddleware","createStore","document","getElementById","serviceWorker","ready","then","registration","unregister"],"mappings":"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","file":"static/js/main.3d8c762b.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/logo.2299d34e.png\";","module.exports = __webpack_public_path__ + \"static/media/default.9708d09f.png\";","const prefix = '[AuthPage]::[CallFlow]::';\n\nexport const SET_LOADING = `${prefix}SET_LOADING`;\n\nexport const SET_ERROR = `${prefix}SET_ERROR`;\n\nexport const SET_AUTH_STEP = `${prefix}SET_AUTH_STEP`;\n\nexport const SET_CALLER_NUM = `${prefix}SET_CALLER_NUM`;\n\nexport const SET_DESTINATION_NUM = `${prefix}SET_DESTINATION_NUM`;\n\nexport const SET_SESSION_DATA = `${prefix}SET_SESSION_DATA`;\n\nexport const SET_SESSION_ID = `${prefix}SET_SESSION_ID`;\nexport const SET_SESSION_MAC_ADDRESS = `${prefix}SET_SESSION_MAC_ADDRESS`;\nexport const SET_LOCATION = `${prefix}SET_LOCATION`;\nexport const SET_SESSION_PERSONAL_DATA = `${prefix}SET_SESSION_PERSONAL_DATA`;\nexport const SET_SESSION_CREATED_AT = `${prefix}SET_SESSION_CREATED_AT`;\nexport const SET_SESSION_IS_ATHORIZED = `${prefix}SET_SESSION_IS_ATHORIZED`;\nexport const SET_SESSION_IS_AUTHENTICATED = `${prefix}SET_SESSION_IS_AUTHENTICATED`;\n\nexport const SET_SMS_CODE = `${prefix}SET_SMS_CODE`;\n\n// flow\nexport const SET_FLOW = `${prefix}SET_FLOW`;\n","export const steps = {\n // TODO: kindly remove\n FIRST_STEP: \"FIRST_STEP\",\n INIT_STEP: \"INIT_STEP\",\n FLOW_STEP: \"FLOW_STEP\",\n FINAL_STEP: \"FINAL_STEP\",\n REDIRECT_STEP: \"REDIRECT_STEP\",\n};\n\nexport const flows = {\n PREPARE: \"PREPARE\",\n SMS_FLOW: \"SMS_FLOW\",\n CALL_FLOW: \"CALL_FLOW\",\n SOCIAL_FLOW: \"SOCIAL_FLOW\",\n};","import { Map } from 'immutable';\nimport * as acts from '../actionTypes';\nimport { flows } from '../../enums';\n\nconst initialState = Map({\n step: null, // FIRST_STEP || INIT_STEP || FLOW_STEP || FINAL_STEP\n flow: flows.PREPARE,\n callerNum: null,\n destinationNum: null,\n session: Map({\n sessionId: null,\n macAddress: null,\n location: null,\n personalData: null,\n createdAt: null,\n isAuthorized: false,\n isAuthenticated: false,\n }),\n sms: Map({\n code: \"\",\n }),\n});\n\nexport default (state = initialState, action) => {\n switch (action.type) {\n\n case acts.SET_AUTH_STEP:\n return state.set('step', action.payload);\n\n case acts.SET_DESTINATION_NUM:\n return state.set('destinationNum', action.payload);\n \n case acts.SET_CALLER_NUM:\n return state.set('callerNum', action.payload);\n\n case acts.SET_SESSION_DATA:\n return state\n .mergeIn(['session'], Map({\n ...action.payload,\n }));\n\n case acts.SET_SESSION_ID:\n return state.setIn(['session', 'sessionId'], action.payload);\n case acts.SET_SESSION_PERSONAL_DATA:\n return state.setIn(['session', 'personalData'], action.payload);\n case acts.SET_SESSION_MAC_ADDRESS:\n return state.setIn(['session', 'macAddress'], action.payload);\n case acts.SET_LOCATION:\n return state.setIn(['session', 'location'], action.payload);\n case acts.SET_SESSION_CREATED_AT:\n return state.setIn(['session', 'createdAt'], action.payload);\n case acts.SET_SESSION_IS_ATHORIZED:\n return state.setIn(['session', 'isAuthorized'], action.payload);\n case acts.SET_SESSION_IS_AUTHENTICATED:\n return state.setIn(['session', 'isAuthenticated'], action.payload);\n\n case acts.SET_SMS_CODE:\n return state.setIn(['sms', 'code'], action.payload);\n\n case acts.SET_FLOW:\n return state.set(\"flow\", action.payload);\n\n default:\n return state;\n }\n};","import { Map } from 'immutable';\nimport * as acts from '../actionTypes';\n\nconst initialState = Map({\n loading: false,\n error: Map({\n show: false,\n message: undefined,\n }),\n});\n\nexport default (state = initialState, action) => {\n switch (action.type) {\n case acts.SET_LOADING:\n return state.set('loading', action.payload);\n\n case acts.SET_ERROR:\n return state\n .setIn(['error', 'show'], action.payload.show)\n .setIn(['error', 'message'], action.payload.message);\n\n default:\n return state;\n }\n};","import { createStore, applyMiddleware, compose } from 'redux';\nimport { combineReducers } from 'redux-immutable';\nimport thunkMiddleware from 'redux-thunk';\n\nimport authReducer from './views/AuthPage/redux/reducers/auth';\nimport serviceReducer from './views/AuthPage/redux/reducers/service';\n\nimport { composeWithDevTools } from 'redux-devtools-extension';\n\nconst rootReducer = combineReducers({\n service: serviceReducer,\n auth: authReducer,\n});\n\n\nexport default function() {\n const composeEnhancer = process.env.NODE_ENV === 'development' ? composeWithDevTools : compose;\n const middlewares = [thunkMiddleware];\n const middleware = applyMiddleware(...middlewares);\n const store = createStore(rootReducer, composeEnhancer(middleware));\n return store;\n}","export default {\n WAIT_CALL_LIMIT_PER_SECOND: 1800,\n CALL_LIMIT_IS_SESSION_AUTHORIZED: 30,\n URL_REDIRECT: 'https://www.luxoft.com/',\n};\n","import * as acts from './actionTypes';\nimport { steps, flows } from '../enums';\nimport constants from '../constants';\n\nconst setLoading = (loading) => ({\n type: acts.SET_LOADING,\n payload: loading,\n});\n\nexport const setError = ({ show, message }) => ({\n type: acts.SET_ERROR,\n payload: {\n show,\n message,\n },\n});\n\nexport const setInitialAuthStep = () => ({\n type: acts.SET_AUTH_STEP,\n payload: steps.INIT_STEP,\n});\n\nexport const setAuthStep = (nextStep) => ({\n type: acts.SET_AUTH_STEP,\n payload: nextStep,\n});\n\nexport const setCallerNum = (callerNum) => ({\n type: acts.SET_CALLER_NUM,\n payload: callerNum,\n});\n\nexport const setDestinationNum = (destinationNum) => ({\n type: acts.SET_DESTINATION_NUM,\n payload: destinationNum,\n});\n\nexport const setSessionData = (session) => ({\n type: acts.SET_SESSION_DATA,\n payload: session,\n});\n\nexport const setId = (id) => ({\n type: acts.SET_SESSION_ID,\n payload: id,\n});\n\nexport const setMacAddress = (macAddress) => ({\n type: acts.SET_SESSION_MAC_ADDRESS,\n payload: macAddress,\n});\n\nexport const setLocation = (loc) => ({\n type: acts.SET_LOCATION,\n payload: loc?.toLowerCase(),\n});\n\nexport const setPersonalData = (personalData) => ({\n type: acts.SET_SESSION_PERSONAL_DATA,\n payload: personalData,\n});\n\nexport const setCreatedAt = (createdAt) => ({\n type: acts.SET_SESSION_CREATED_AT,\n payload: createdAt,\n});\n\nexport const setIsAuthorized = (isAuthorized) => ({\n type: acts.SET_SESSION_IS_ATHORIZED,\n payload: isAuthorized,\n});\n\nexport const setIsAuthenticated = (isAuthenticated) => ({\n type: acts.SET_SESSION_IS_AUTHENTICATED,\n payload: isAuthenticated,\n});\n\nexport const setCode = (code) => ({\n type: acts.SET_SMS_CODE,\n payload: code,\n});\n\nexport const changeCode = (code) => {\n return (dispatch) => {\n dispatch(setCode(code));\n };\n};\n\nexport const setFlow = (flow) => ({\n type: acts.SET_FLOW,\n payload: flow,\n});\n\nexport const setSuccessAuthStep = () => {\n return (dispatch) => {\n dispatch(setAuthStep(steps.FINAL_STEP));\n };\n};\n\nexport const setSMSFlow = () => {\n return (dispatch) => {\n dispatch(setFlow(flows.SMS_FLOW));\n };\n};\n\nexport const authenticate = ({ mac, callerNum, sessionId }) => {\n return async (dispatch) => {\n dispatch(setError({ show: false }));\n dispatch(setLoading(true));\n try {\n const res = await fetch('/auth/call/', {\n method: 'POST',\n body: JSON.stringify({\n mac,\n callerNum,\n sessionId,\n }),\n });\n let json = undefined;\n\n switch (parseInt(res.status)) {\n case 200:\n if (res.json) {\n json = await res.json();\n }\n break;\n\n case 400:\n throw new Error(`Incorrect number`);\n\n default:\n throw new Error(`Unexpected error code ${res.status}`);\n }\n\n if (json) {\n const { destinationNum, session } = json;\n\n dispatch(setLoading(false));\n dispatch(setDestinationNum(destinationNum));\n dispatch(setSessionData(session));\n\n if (session && session.isAuthorized) {\n dispatch(setAuthStep(steps.FINAL_STEP));\n return;\n }\n\n dispatch(setAuthStep(steps.FLOW_STEP));\n }\n } catch (err) {\n dispatch(setLoading(false));\n dispatch(setError({ show: true, message: err.message }));\n console.error(err);\n }\n };\n};\n\nexport const cancelFunc = (variable) => {\n console.log('cancelFunc > created with variable:', variable);\n\n return (msg) => {\n console.log('message:', msg);\n\n console.log('cancelFunc > called with variable:', variable);\n variable = !variable;\n console.log('cancelFunc > changed variable:', variable);\n };\n};\n\n// function _isProceed(flag, iterator, limit) {\n// return flag && iterator < limit;\n// }\n\nexport const isAuthenticated = ({\n mac,\n callerNum,\n destinationNum,\n sessionId,\n cancelFunc,\n limitSeconds,\n}) => {\n return async (dispatch) => {\n function isProceed(flag, iterator, limit) {\n return flag && iterator < limit;\n }\n\n dispatch(setError({ show: false }));\n let proceed = true;\n\n cancelFunc(() => {\n proceed = false;\n });\n\n const limit = limitSeconds\n ? limitSeconds\n : constants.WAIT_CALL_LIMIT_PER_SECOND;\n\n for (let i = 1; isProceed(proceed, i, limit); i++) {\n try {\n const res = await fetch(\n `/auth/call/?` +\n `mac=${encodeURIComponent(mac)}&` +\n `callerNum=${encodeURIComponent(callerNum)}&` +\n `sessionId=${encodeURIComponent(sessionId)}&` +\n `destinationNum=${encodeURIComponent(destinationNum)}`,\n {\n method: 'GET',\n }\n );\n let json = undefined;\n\n switch (Number(res.status)) {\n case 400:\n throw new Error(`Bad request ${res.status}`);\n case 200:\n json = await res.json();\n break;\n default:\n throw new Error(`Unexpected error code ${res.status}`);\n }\n if (json && json.session) {\n dispatch(setSessionData(json.session));\n if (json.session.isAuthenticated || json.session.isAuthorized) {\n proceed = false;\n dispatch(setAuthStep(steps.FINAL_STEP));\n }\n }\n await sleep(1000);\n } catch (err) {\n dispatch(setError({ show: true, message: err.message }));\n console.error(err);\n return;\n }\n }\n\n if (proceed) {\n dispatch(\n setError({\n show: true,\n message: 'Limit exceeded, please refresh the page',\n })\n );\n }\n };\n};\n\nfunction sleep(ms) {\n if (typeof ms != 'number') {\n throw new Error('ms is not a number');\n }\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\n///////// SMS FLOW /////////\nconst smsUrl = '/auth/sms/';\n// request sms\nexport const requestSMS = ({ mac, callerNum, sessionId }) => {\n return async (dispatch) => {\n dispatch(setError({ show: false }));\n dispatch(setLoading(true));\n dispatch(setFlow(flows.SMS_FLOW));\n\n try {\n const res = await fetch(smsUrl, {\n method: 'POST',\n body: JSON.stringify({\n sessionId: sessionId,\n mac: mac,\n personalData: callerNum,\n }),\n });\n\n if (Number(res.status) === 200) {\n dispatch(setLoading(false));\n } else {\n throw new Error(`Unexpected error code ${res.status}`);\n }\n } catch (err) {\n dispatch(setLoading(false));\n dispatch(setError({ show: true, message: err.message }));\n console.error(err);\n }\n };\n};\n\nexport const sendSMSCode = ({ mac, callerNum, code, sessionId }) => {\n return async (dispatch) => {\n dispatch(setError({ show: false }));\n dispatch(setLoading(true));\n\n try {\n const res = await fetch(\n smsUrl +\n '?' +\n `mac=${encodeURIComponent(mac)}&` +\n `personalData=${encodeURIComponent(callerNum)}&` +\n `sessionId=${encodeURIComponent(sessionId)}&` +\n `code=${encodeURIComponent(code)}`,\n {\n method: 'GET',\n }\n );\n\n switch (parseInt(res.status)) {\n case 400:\n throw new Error(`Bad request ${res.status}`);\n case 401:\n throw new Error(`Incorrect code`);\n case 200:\n dispatch(setLoading(false));\n dispatch(setAuthStep(steps.FINAL_STEP));\n return;\n default:\n throw new Error(`Unexpected error code ${res.status}`);\n }\n } catch (err) {\n dispatch(setLoading(false));\n dispatch(setError({ show: true, message: err.message }));\n console.error(err);\n }\n };\n};\n\n///////// REQUEST CALL FLOW /////////\nconst requestCallUrl = '/auth/callback/';\n// request call\nexport const requestCall = ({ mac, callerNum, sessionId }) => {\n return async (dispatch) => {\n dispatch(setError({ show: false }));\n dispatch(setLoading(true));\n dispatch(setFlow(flows.SMS_FLOW));\n\n try {\n const res = await fetch(requestCallUrl, {\n method: 'POST',\n body: JSON.stringify({\n sessionId: sessionId,\n mac: mac,\n personalData: callerNum,\n }),\n });\n\n if (Number(res.status) === 200) {\n dispatch(setLoading(false));\n } else {\n throw new Error(`Unexpected error code ${res.status}`);\n }\n } catch (err) {\n dispatch(setLoading(false));\n dispatch(setError({ show: true, message: err.message }));\n console.error(err);\n }\n };\n};\n\nexport const sendRequestCallCode = ({ mac, callerNum, code, sessionId }) => {\n return async (dispatch) => {\n dispatch(setError({ show: false }));\n dispatch(setLoading(true));\n\n try {\n const res = await fetch(\n requestCallUrl +\n '?' +\n `mac=${encodeURIComponent(mac)}&` +\n `personalData=${encodeURIComponent(callerNum)}&` +\n `sessionId=${encodeURIComponent(sessionId)}&` +\n `code=${encodeURIComponent(code)}`,\n {\n method: 'GET',\n }\n );\n\n switch (parseInt(res.status)) {\n case 400:\n throw new Error(`Bad request ${res.status}`);\n case 401:\n throw new Error(`Incorrect code`);\n case 200:\n dispatch(setLoading(false));\n dispatch(setAuthStep(steps.FINAL_STEP));\n return;\n default:\n throw new Error(`Unexpected error code ${res.status}`);\n }\n } catch (err) {\n dispatch(setLoading(false));\n dispatch(setError({ show: true, message: err.message }));\n console.error(err);\n }\n };\n};\n\n// session\n\nconst authSessionUrl = '/auth/session/';\n\nexport const checkSessionIsAuthorized = ({ sessionId }) => {\n return async (dispatch) => {\n dispatch(setError({ show: false }));\n dispatch(setLoading(true));\n\n const limit = constants.CALL_LIMIT_IS_SESSION_AUTHORIZED;\n\n for (let i = 0; i <= limit; i++) {\n try {\n const res = await fetch(\n `${authSessionUrl}?sessionId=${encodeURIComponent(sessionId)}`\n );\n\n switch (parseInt(res.status)) {\n case 401:\n await sleep(1000);\n continue;\n\n case 200:\n dispatch(setIsAuthorized(true));\n dispatch(setAuthStep(steps.REDIRECT_STEP));\n\n return;\n\n default:\n throw new Error(`Unexpected error code ${res.status}`);\n }\n } catch (err) {\n dispatch(setLoading(false));\n dispatch(setError({ show: true, message: err.message }));\n console.error(err);\n }\n }\n };\n};\n","export const getClassName = (rootClass, ...classes) => {\n let rootClassName = rootClass;\n\n classes.forEach(el => {\n if (typeof el === 'string') {\n rootClassName += `-${el}`;\n }\n });\n return rootClassName;\n}\n\nexport const onUnloadPageHandler = (event) => {\n event.preventDefault();\n event.returnValue = '';\n};\n\nexport const getParamFromUrl = ({paramName, url}) => {\n if (typeof url !== 'string' || url.length === 0) {\n return '';\n }\n\n const search = url.split(\"?\")\n if (search.length < 2) {\n return ''\n }\n \n const params = search[1].split(\"&\");\n\n for (let i = 0; i < params.length; i++) {\n const pairValueStr = params[i];\n \n const pairValueArr = pairValueStr.split(\"=\");\n\n if (pairValueArr[0] === paramName) {\n return decodeUriColon(pairValueArr[1]);\n }\n }\n\n return '';\n}\n\nexport const parseUrlAndGetLocation = (url) => {\n const parsedUrl = new URL(url);\n \n const path = parsedUrl.pathname;\n\n // \"/us\" pattern - we get \"us\"\n return path.substring(1, 3);\n}\n\nexport const decodeUriColon = (val) => {\n return val.replace(/%3A/g, \":\");\n}\n\nexport const getURLParams = (paramName) => {\n if (typeof paramName != 'string') {\n return '';\n }\n\n const u = new URLSearchParams(window.location.search);\n \n return u.get(paramName);\n};\n\nexport const prepareNumber = (number) => {\n return number.replace(/ /g, '');\n};\n\nexport const dispatchActions = (dispatch, ...acts) => {\n if (typeof dispatch != 'function') {\n throw new Error('dispatch is not an instance of function');\n }\n acts.forEach(act => {\n dispatch(act);\n });\n}\n\n/**\n * \n * @param {Navigator} nav inputs navigator global object\n * @param {Window} win inputs window global object\n * @returns true if the device is tablet or mobile device and false if not\n */\nexport const isMobileDevice = (nav, win) => {\n let ua = nav.userAgent||nav.vendor||win.opera\n let check = false;\n \n // eslint-disable-next-line\n if (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(ua)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(ua.substr(0,4))) {\n check = true;\n }\n\n return check;\n}","import React, { PureComponent } from 'react'\nimport InputMask from 'react-input-mask';\n\nimport './input-ui.scss';\n\nexport default class InputUi extends PureComponent {\n\n static ERROR = '#c85305';\n\n renderVariant = () => {\n const {\n variant\n } = this.props;\n \n switch (variant) {\n case 'error':\n return 'error';\n default:\n return null;\n }\n }\n\n render() {\n const {\n className,\n } = this.props;\n\n const classes = `input-ui ${className ? className : \"\"}`.trim();\n \n return (\n
\n \n
\n )\n }\n}\n","import React, { PureComponent } from 'react';\n\nexport default class InputPhone extends PureComponent {\n\n state = {\n number: \"\",\n }\n\n handleChangeNumber = e => {\n\n let {\n value: number,\n } = e.target;\n\n let wantNumber = this.prepareNumber(number);\n\n this.setState({\n number: wantNumber,\n });\n\n // FIXME: add-hoc that provided value to Formik onSubmit handler\n e.target.value = wantNumber;\n this.props.onChange(e);\n }\n\n prepareNumber = number => {\n let n = number;\n n = this._onlyNumbers(n);\n n = this._lenRangeMax(n);\n n = this._russianMobile(n);\n n = this._internationalFmt(n);\n\n return n;\n }\n\n _onlyNumbers = number => {\n if (number === '+') {\n return '+';\n }\n return number.replace(/[^0-9]*/g, \"\");\n }\n\n _lenRangeMax = number => {\n return number.slice(0, 19);\n }\n\n _internationalFmt = number => {\n if (number.length === 0 || number === '+') {\n return number;\n }\n return `+ ${number}`;\n }\n\n _russianMobile = number => { \n if (number.length === 11) {\n if (number.slice(0, 2) === \"89\") {\n return \"7\" + number.slice(1, 11);\n }\n }\n\n return number;\n }\n\n render() {\n \n const {\n className,\n } = this.props;\n\n const {\n number,\n } = this.state;\n\n const classes = `input-ui ${className ? className : \"\"}`.trim();\n\n return (\n
\n \n
\n )\n }\n}\n","import React, { PureComponent } from 'react';\nimport InputUi from './InputUi';\n\nclass InputCode extends PureComponent {\n render() {\n const {\n className,\n } = this.props;\n return (\n \n )\n }\n}\n\nexport default InputCode;","import React, { PureComponent } from 'react';\n\nimport InputInterPhoneExt from 'react-phone-number-input';\nimport 'react-phone-number-input/style.css'\n\nexport default class InputInterPhone extends PureComponent {\n state = {\n number: \"\",\n }\n\n handleChangeNumber = number => {\n if (!number) {\n number = \"\"\n }\n\n let wantNumber = this.prepareNumber(number);\n\n this.setState({\n number: wantNumber,\n });\n\n this.props.onChange({\n target: {\n name: \"phoneNumber\",\n value: number\n }\n });\n }\n\n prepareNumber = number => {\n let n = number;\n n = this._onlyNumbers(n);\n n = this._lenRangeMax(n);\n n = this._russianMobile(n);\n n = this._internationalFmt(n);\n\n return n;\n }\n\n _onlyNumbers = number => {\n if (number === '+') {\n return '+';\n }\n return number.replace(/[^0-9]*/g, \"\");\n }\n\n _lenRangeMax = number => {\n return number.slice(0, 19);\n }\n\n _internationalFmt = number => {\n if (number.length === 0 || number === '+') {\n return number;\n }\n return `+ ${number}`;\n }\n\n _russianMobile = number => { \n if (number.length === 11) {\n if (number.slice(0, 2) === \"89\") {\n return \"7\" + number.slice(1, 11);\n }\n }\n\n return number;\n }\n\n render() {\n const {\n className,\n } = this.props;\n\n const {\n number,\n } = this.state;\n\n const classes = `input-ui ${className ? className : \"\"}`.trim();\n\n return (\n
\n \n
\n )\n }\n}","import React, { PureComponent } from 'react';\nimport './button-ui.scss';\nimport pt from 'prop-types';\n\nexport class ButtonUi extends PureComponent {\n render() {\n const {\n // events handlers\n onClick,\n onKeyPress,\n\n children,\n type,\n disabled,\n className,\n } = this.props;\n\n const classes = `button-ui ${className ? className : \"\"}`.trim();\n\n if (onKeyPress) {\n return \n }\n\n return (\n \n {children}\n \n )\n }\n}\n\nButtonUi.propTypes = {\n onClick: pt.func,\n onKeyPress: pt.func,\n}\n\nexport default ButtonUi;","import React, { PureComponent } from 'react';\nimport defaultImg from './default.png';\n\nimport './loading-ui.scss';\n\nexport default class LoadingUi extends PureComponent {\n render() {\n const {\n img,\n alt = '',\n } = this.props;\n\n return (\n
\n {alt}\n
\n )\n }\n}\n","import React, { PureComponent } from 'react';\nimport { getClassName as cn } from '../../utils';\nimport PropTypes from 'prop-types';\n\nclass LogoUi extends PureComponent {\n\n render() {\n\n const {\n className,\n } = this.props;\n\n return (\n
\n \"brand\"\n
\n );\n }\n}\n\nLogoUi.propTypes = {\n className: PropTypes.string,\n src: PropTypes.string,\n};\n\nexport default LogoUi;","import React from 'react';\n\nexport const policyRFENG = `User identification has been requested in accordance with the Federal Law of the Russian Federation dated 05.05.2014 No. 97-FZ, and also following the Government of the Russian Federation’s Decrees: No. 758 dated July 31, 2014 and No. 801 dated August 12, 2014.`;\nexport const policyRFRU = `Идентификация пользователей запрашивается в соответствии с Федеральным законом Российской Федерации от 05.05.2014 г. № 97-ФЗ, постановлениями Правительства РФ № 758 от 31.07.2014 и № 801 от 12.08.2014 г.`;\nexport const Policy = () => (\n
\n By clicking “Connect” button I accept and I understand that Luxoft Holding, Inc (Data Controller) and its affiliates known together as will process my personal data as described in in order to provide me with access to Luxoft Complimentary Guest Wi-Fi and to ensure information security of . Please note that will not sell your data, provide it to a 3rd party or otherwise use it for commercial purposes.\n
\n);\n\nconst Link = ({href, text, noWrap = true}) => (\n {text}\n)\n\n// Luxoft Complimentary Guest Wi-Fi Terms of Use - https://www.luxoft.com/online-privacy-policy/\n\n// Luxoft Group - https://www.luxoft.com/about-us/\n\n// Privacy Policy - https://www.luxoft.com/online-privacy-policy/\n\n// Luxoft Group - https://www.luxoft.com/about-us/\n\n// Luxoft Group - https://www.luxoft.com/about-us/","import React, { PureComponent } from 'react';\nimport { getClassName as cn } from '../../../utils';\n\nimport { Formik, Form, Field } from 'formik';\nimport { InputPhone } from '../../../components/InputUi';\nimport ButtonUi from '../../../components/ButtonUi';\nimport LoadingUi from '../../../components/LoadingUi';\nimport LogoUi from '../../../components/LogoUi';\n\nimport { Policy } from '../../../constants';\nimport { prepareNumber } from '../../../utils';\n\nexport default class InitialStep extends PureComponent {\n renderForm = () => {\n const {\n // actions\n authenticate,\n setCallerNum,\n\n // params\n className,\n\n // props\n auth: {\n session: {\n sessionId,\n macAddress,\n }\n },\n service: {\n loading,\n }\n } = this.props;\n\n const INPUT_PLACEHOLDER = \"+ 447911123456\";\n\n return (\n {\n if (!macAddress || !sessionId) {\n setErrors({\"phoneNumber\": 'Incorrect data, please try again later'});\n return;\n }\n\n const number = prepareNumber(values.phoneNumber);\n \n if (!checkoutLen(number, 10, 21)) {\n setErrors({\"phoneNumber\": 'Incorrect number'});\n return;\n }\n\n setCallerNum(number);\n \n authenticate({mac: macAddress, callerNum: number, sessionId: sessionId});\n }}\n >\n {({ errors, touched }) => (\n \n {errors.phoneNumber && touched.phoneNumber ?
{errors.phoneNumber}
: null}\n\n \n {\n ({\n field,\n meta,\n }) => \n }\n \n Connect\n \n )}\n\n \n )\n }\n\n render() {\n const {\n\n // params\n className,\n\n service: {\n loading,\n error,\n }\n } = this.props;\n\n return (\n
\n \n \n\n
\n Welcome to Guest Wi-Fi\n
\n\n
\n Please enter your mobile phone number to connect:\n
\n\n\n {loading && }\n\n {error.show &&
{error.message}
}\n\n {this.renderForm()} \n\n
\n \n
\n
\n )\n }\n}\n\n\nfunction checkoutLen(number, a, b) {\n return number.length > a && number.length < b;\n}","import React, { PureComponent } from 'react';\nimport {\n getClassName as cn,\n} from '../../../utils';\n\nimport constants from '../constants';\n\nimport Logo from '../../../assets/img/logo.png';\n\nexport default class RedirectStep extends PureComponent {\n\n componentDidMount() {\n setTimeout(() => {\n window.location = constants.URL_REDIRECT;\n }, 2000);\n }\n\n render() {\n\n const {\n // params\n className,\n\n // props\n service: {\n error,\n },\n } = this.props;\n\n return (\n
\n \n
\n \"brand\"\n
\n\n
\n You're successfully connected\n
\n\n {error.show &&
{error.message}
}\n\n
\n )\n }\n}\n","export const getNavigator = () => {\n return navigator;\n}\n\nexport const getWindow = () => {\n return window;\n}","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport './sub-title-ui.scss';\n\nclass SubTitleUi extends PureComponent {\n render() {\n const {\n children,\n } = this.props;\n return (\n
\n {children ? children : \"\"}\n
\n );\n }\n}\n\nSubTitleUi.propTypes = {\n children: PropTypes.any,\n};\n\nexport default SubTitleUi;","import React, { PureComponent } from 'react';\n\nimport { isMobileDevice } from '../../../../../utils';\nimport * as globals from '../../../../../globals';\n\nimport { InputCode } from '../../../../../components/InputUi';\nimport SubTitleUi from '../../../../../components/SubTitleUi';\nimport ButtonUi from '../../../../../components/ButtonUi';\nimport LoadingUi from '../../../../../components/LoadingUi';\n\nconst showDstNumberIfSmsIsNotRecievedAfterMs = 10000;\n\nclass EnterTheCode extends PureComponent {\n state = {\n showDstNumber: false,\n smsRequested: false,\n };\n\n cancelFunc = null;\n\n componentDidMount() {\n const that = this;\n setTimeout(() => {\n that.setState({\n showDstNumber: true,\n });\n\n this.isCallRecievedLoopedRequest();\n }, showDstNumberIfSmsIsNotRecievedAfterMs);\n }\n\n isCallRecievedLoopedRequest() {\n const {\n // actions\n isAuthenticated,\n\n // props\n auth: {\n destinationNum,\n session: { sessionId, personalData, macAddress },\n },\n } = this.props;\n\n isAuthenticated({\n sessionId: sessionId,\n mac: macAddress,\n callerNum: personalData,\n destinationNum: destinationNum,\n cancelFunc: (cancelCallback) => {\n this.cancelFunc = cancelCallback;\n },\n limitSeconds: 3000,\n });\n }\n\n componentDidUpdate(prevProps) {\n if (!this.isDisabled()) {\n const {\n auth: {\n sms: { code: prevCode },\n },\n } = prevProps;\n\n const {\n auth: {\n sms: { code: newCode },\n },\n } = this.props;\n\n if (prevCode !== newCode) {\n if (newCode.length === 4) {\n this.onSubmitHandler();\n }\n }\n }\n }\n\n onSubmitHandler = () => {\n const {\n // actions\n sendSMSCode,\n sendRequestCallCode,\n\n // props\n auth: {\n session: { sessionId, macAddress, location },\n\n callerNum,\n\n sms: { code },\n },\n } = this.props;\n\n // cancels isCallRecievedLoopedRequest function execution if called\n this.cancelFunc && this.cancelFunc();\n\n location === 'cn'\n ? sendRequestCallCode({\n mac: macAddress,\n callerNum: callerNum,\n code: code,\n sessionId: sessionId,\n })\n : sendSMSCode({\n mac: macAddress,\n callerNum: callerNum,\n code: code,\n sessionId: sessionId,\n });\n };\n\n onEnterPressHandler = (event) => {\n if (event.key === 'Enter') {\n this.onSubmitHandler();\n }\n };\n\n onCodeChangeHandler = ({ target }) => {\n const {\n // actions\n changeCode,\n } = this.props;\n\n changeCode(target.value);\n };\n\n isDisabled = () => {\n const {\n auth: {\n sms: { code },\n },\n\n service: { loading },\n } = this.props;\n\n if (loading === true) {\n return true;\n }\n\n if (code && code.length === 4) {\n return false;\n }\n\n return true;\n };\n\n getShowDstNumber = () => {\n return this.state.showDstNumber;\n };\n\n getSMSRequested = () => {\n return this.state.smsRequested;\n };\n\n getDstNumber = () => {\n return this.props.auth.destinationNum;\n };\n\n onRequestSMS = () => {\n this.setState({\n smsRequested: true,\n });\n const {\n // actions\n requestSMS,\n requestCall,\n\n // props\n auth: {\n callerNum,\n\n session: { sessionId, macAddress, location },\n },\n } = this.props;\n\n location === 'cn'\n ? requestCall({\n sessionId: sessionId,\n mac: macAddress,\n callerNum: callerNum,\n })\n : requestSMS({\n sessionId: sessionId,\n mac: macAddress,\n callerNum: callerNum,\n });\n };\n\n render() {\n const {\n auth: {\n callerNum,\n sms: { code },\n session: { location },\n },\n\n service: { loading },\n } = this.props;\n\n return (\n
\n \n {location === 'cn'\n ? \"We are calling you.\"\n : \"We've sent a text message with verification code.\"}\n \n\n {location === 'cn'\n ? \"Please enter last four digits of the number:\"\n : \"Please enter received code:\"}\n\n {loading && }\n\n \n\n \n Sign in\n \n\n {this.getShowDstNumber() && (\n <>\n \n {isMobileDevice(globals.getNavigator(), globals.getWindow()) ? (\n <>\n Didn't receive {location === 'cn' ? 'call' : 'SMS'}? Tap this\n number{' '}\n \n {this.getDstNumber()}\n \n \n ) : (\n <>\n Didn't receive {location === 'cn' ? 'call' : 'SMS'}? Call this\n number{' '}\n \n {this.getDstNumber()}\n \n \n )}\n \n\n {this.getSMSRequested() ? (\n \n {`We're trying to ${\n location === 'cn' ? 'call' : 'send SMS'\n } again to your number ${callerNum}`}\n \n ) : (\n <>\n Or\n\n this.onRequestSMS()}>\n Request {location === 'cn' ? 'call' : 'SMS code'} again\n \n \n )}\n \n )}\n
\n );\n }\n}\n\nexport default EnterTheCode;\n","import React, { PureComponent } from 'react';\nimport {\n getClassName as cn,\n onUnloadPageHandler,\n isMobileDevice,\n} from '../../../utils';\nimport * as globals from '../../../globals';\nimport { flows } from '../enums';\n\nimport EnterTheCode from './flow/sms/EnterTheCode';\n\nimport LogoUi from '../../../components/LogoUi';\nimport ButtonUi from '../../../components/ButtonUi';\nimport SubTitleUi from '../../../components/SubTitleUi';\n\nexport default class FlowStep extends PureComponent {\n cancelFunc = null;\n\n componentDidMount() {\n window.addEventListener('beforeunload', onUnloadPageHandler);\n this.sendAuthorizeRequest();\n this.onRequestHandler(this.cancelFunc);\n }\n\n componentWillUnmount() {\n window.removeEventListener('beforeunload', onUnloadPageHandler);\n }\n\n sendAuthorizeRequest() {\n const {\n // actions\n isAuthenticated,\n\n // props\n auth: {\n destinationNum,\n session: { sessionId, personalData, macAddress },\n },\n } = this.props;\n\n isAuthenticated({\n sessionId: sessionId,\n mac: macAddress,\n callerNum: personalData,\n destinationNum: destinationNum,\n cancelFunc: (cancelCallback) => {\n this.cancelFunc = cancelCallback;\n },\n });\n }\n\n onRequestHandler = (killFunc) => {\n const {\n // actions\n requestSMS,\n requestCall,\n\n // props\n auth: {\n callerNum,\n session: { sessionId, macAddress, location },\n },\n } = this.props;\n\n try {\n killFunc();\n } catch (err) {\n console.error('cannot stop killFunc:', err);\n }\n\n location === 'cn'\n ? requestCall({\n sessionId: sessionId,\n mac: macAddress,\n callerNum: callerNum,\n })\n : requestSMS({\n sessionId: sessionId,\n mac: macAddress,\n callerNum: callerNum,\n });\n };\n\n renderFlow = () => {\n const {\n auth: {\n flow,\n destinationNum,\n session: { location, macAddress },\n },\n \n } = this.props;\n\n switch (flow) {\n case flows.SMS_FLOW:\n return ;\n\n case flows.PREPARE:\n default:\n return (\n <>\n \n {isMobileDevice(globals.getNavigator(), globals.getWindow()) ? (\n <>\n Please tap this number{' '}\n {destinationNum}\n
\n to connect\n \n ) : (\n <>\n Please call to{' '}\n {destinationNum} from\n your phone and you will be connected\n \n )}\n
\n\n or\n\n this.onRequestHandler(this.cancelFunc)}>\n {location === 'cn' ? 'Request call' : 'Request SMS'}\n \n \n );\n }\n };\n\n render() {\n const {\n // params\n className,\n\n // props\n service: { error },\n } = this.props;\n\n return (\n
\n \n\n {error.show && (\n
{error.message}
\n )}\n\n {this.renderFlow()}\n
\n );\n }\n}\n","import React, { PureComponent } from 'react';\nimport {\n getClassName as cn,\n} from '../../../utils';\n\nimport Logo from '../../../assets/img/logo.png';\n\nexport default class FinalStep extends PureComponent {\n\n componentDidMount() {\n const {\n auth: {\n session: {\n sessionId,\n }\n },\n checkSessionIsAuthorized,\n } = this.props;\n\n checkSessionIsAuthorized({sessionId});\n }\n\n render() {\n\n const {\n // params\n className,\n\n // props\n service: {\n error,\n },\n } = this.props;\n\n return (\n
\n \n
\n \"brand\"\n
\n\n
\n Please wait for connection\n
\n\n {error.show &&
{error.message}
}\n\n
\n )\n }\n}\n","import React, { PureComponent } from 'react';\nimport { connect } from 'react-redux';\nimport { BrowserRouter, Switch, Route } from 'react-router-dom';\n\nimport * as authActions from './redux/actions';\nimport {\n getClassName,\n getParamFromUrl,\n parseUrlAndGetLocation,\n} from '../../utils';\nimport { steps } from './enums';\n\nimport InitialStep from './steps/InitialStep';\nimport RedirectStep from './steps/RedirectStep';\nimport FlowStep from './steps/FlowStep';\nimport FinalStep from './steps/FinalStep';\n\nimport './themes/auth-page.scss';\n\nclass AuthPage extends PureComponent {\n componentDidMount() {\n const { setId, setMacAddress, setLocation } = this.props;\n\n // get sessionId from url\n // and set to store\n setId(\n getParamFromUrl({ paramName: 'sessionId', url: window.location.href })\n );\n\n // get location from url\n // and set to store\n setLocation(parseUrlAndGetLocation(window.location.href));\n\n // get mac from url\n // and set to store\n setMacAddress(\n getParamFromUrl({ paramName: 'mac', url: window.location.href })\n );\n }\n\n renderAuthStep = () => {\n const {\n auth: { step },\n } = this.props;\n\n switch (step) {\n case steps.FLOW_STEP:\n return (\n \n );\n\n case steps.FINAL_STEP:\n return (\n \n );\n\n case steps.REDIRECT_STEP:\n return (\n \n );\n\n case steps.INIT_STEP:\n default:\n return (\n \n );\n }\n };\n\n render() {\n return (\n
\n \n \n {this.renderAuthStep()}\n {this.renderAuthStep()}\n {this.renderAuthStep()}\n \n \n
\n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n auth: state.get('auth').toJS(),\n service: state.get('service').toJS(),\n});\n\nconst mapDispathToProps = {\n ...authActions,\n};\n\nexport default connect(mapStateToProps, mapDispathToProps)(AuthPage);\n","import AuthPage from './AuthPage';\n\nexport default AuthPage;","// 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 { Provider } from 'react-redux';\nimport store from './store';\n// import App from './App';\nimport AuthPage from './views/AuthPage';\nimport * as serviceWorker from './serviceWorker';\n\nimport './themes/index.scss';\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\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":""}