{"version":3,"sources":["Redux/Payment/payment.actions.js","environments/environment.js","Redux/Login/login.actions.js","Redux/Login/login.types.js","Redux/Payment/payment.types.js","Utils/private-route.js","App.jsx","serviceWorker.js","Redux/Login/login.reducer.js","Redux/Payment/payment.reducer.js","Redux/rootReducer.js","Redux/Login/login.epic.js","Utils/ajax-utils.js","Redux/Payment/payment.epic.js","Redux/rootEpic.js","Redux/store.js","index.jsx"],"names":["makepayment","paydata","type","CREATE_PAYMENT","payload","paymentResponse","res","PAYMENT_RESPONSE","paymentDetails","id","PAYMENT_DETAILS","paymentDetailsResponse","PAYMENT_DETAILS_RESPONSE","successPayment","status","SUCCESS_PAYMENT","updateMinutes","value","UPDATE_MINUTES","paymentFlag","PAYMENT_FLAG","paymentFlagResponse","PAYMENT_FLAG_RESPONSE","module","exports","clickLogin","logData","LOGIN","loginResponse","user","LOGIN_RESPONSE","logOut","LOG_OUT","checkPin","pinData","VERIFY_PIN","checkPinResponse","pinResponse","VERIFY_PIN_RESPONSE","smsLogin","SMS_LOGIN","smsLoginResponse","SMS_LOGIN_RESPONSE","REQUEST_CANCEL","LOGGED","PrivateRoute","Component","component","permission","rest","token","localStorage","getItem","history","useHistory","render","props","to","pathname","state","from","location","Login","React","lazy","Auth","Payment","SuccessPage","connect","LoginData","login","dispatch","values","useEffect","window","href","split","pop","setInterval","m","p","parseInt","toast","error","setTimeout","a","sum","setItem","basename","basePath","Suspense","fallback","path","Boolean","hostname","match","INITIAL_STATE","logged","patientTicker","loginReducer","action","payDetails","successValue","minutes","paymentReducer","rootReducer","combineReducers","payment","baseUrl","environment","loginEpic","action$","pipe","ofType","switchMap","ajax","headers","url","method","body","JSON","stringify","catchError","console","EMPTY","map","response","takeUntil","ajaxUtils","params","defaultHeader","Authorization","paramsHeader","passingHeader","clear","of","PaymentEpic","rootEpic","combineEpics","verifyPin","makePaymentApi","getPaymentDetailsApi","epicMiddleware","createEpicMiddleware","composeEnhancers","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","store","createStore","applyMiddleware","run","ReactDOM","StrictMode","document","getElementById","navigator","serviceWorker","ready","then","registration","unregister","catch"],"mappings":"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","file":"static/js/main.dc8239fb.chunk.js","sourcesContent":["import {\r\n CREATE_PAYMENT,\r\n PAYMENT_RESPONSE,\r\n PAYMENT_DETAILS,\r\n PAYMENT_DETAILS_RESPONSE,\r\n SUCCESS_PAYMENT,\r\n UPDATE_MINUTES,\r\n PAYMENT_FLAG,\r\n PAYMENT_FLAG_RESPONSE,\r\n} from './payment.types'\r\n\r\nexport const makepayment = (paydata) => ({\r\n type: CREATE_PAYMENT,\r\n payload: paydata,\r\n})\r\n\r\nexport const paymentResponse = (res) => ({\r\n type: PAYMENT_RESPONSE,\r\n payload: res,\r\n})\r\n\r\nexport const paymentDetails = (id) => ({\r\n type: PAYMENT_DETAILS,\r\n payload: id,\r\n})\r\n\r\nexport const paymentDetailsResponse = (res) => ({\r\n type: PAYMENT_DETAILS_RESPONSE,\r\n payload: res,\r\n})\r\n\r\nexport const successPayment = (status) => ({\r\n type: SUCCESS_PAYMENT,\r\n payload: status,\r\n})\r\n\r\nexport const updateMinutes = (value) => ({\r\n type: UPDATE_MINUTES,\r\n payload: value,\r\n})\r\n\r\nexport const paymentFlag = (id) => ({\r\n type: PAYMENT_FLAG,\r\n payload: id,\r\n})\r\n\r\nexport const paymentFlagResponse = (res) => ({\r\n type: PAYMENT_FLAG_RESPONSE,\r\n payload: res,\r\n})\r\n","module.exports = {\n \"baseUrl\": \"https://pay-api.iris-health.com\",\n \"systemName\": \"System Prod\",\n \"basePath\": null\n}","import {\r\n LOGIN,\r\n LOGIN_RESPONSE,\r\n LOGGED,\r\n LOG_OUT,\r\n VERIFY_PIN,\r\n VERIFY_PIN_RESPONSE,\r\n SMS_LOGIN,\r\n SMS_LOGIN_RESPONSE,\r\n} from './login.types'\r\n\r\n/**\r\n * @fileOverview Manages the action w.r.t types in the redux\r\n * @author Athul George \r\n * @author Akhil Francis \r\n * @author Cinu James \r\n * return(\r\n type and payload\r\n * )\r\n * @example export const actionName = (params) => ({\r\n type: Type of the action from login.type.js,\r\n payload: object - contains params,\r\n})\r\n */\r\n\r\n/**\r\n * clickLogin-Action w.r.t LOGIN(type) in the redux\r\n * @description - Action used to call the login API\r\n * @param logData\r\n * @returns {{payload: *, type: string}}\r\n */\r\nexport const clickLogin = (logData) => ({\r\n type: LOGIN,\r\n payload: logData,\r\n})\r\n/**\r\n * loginResponse - Action w.r.t LOGIN_RESPONSE(type) in the redux\r\n * @description - Action used to get the response of login API\r\n * @param user\r\n * @returns {{payload: *, type: string}}\r\n */\r\nexport const loginResponse = (user) => ({\r\n type: LOGIN_RESPONSE,\r\n payload: user,\r\n})\r\nexport const loggedStatus = (status) => ({\r\n type: LOGGED,\r\n payload: status,\r\n})\r\nexport const logOut = () => ({\r\n type: LOG_OUT,\r\n payload: null,\r\n})\r\n\r\nexport const checkPin = (pinData) => ({\r\n type: VERIFY_PIN,\r\n payload: pinData,\r\n})\r\n\r\nexport const checkPinResponse = (pinResponse) => ({\r\n type: VERIFY_PIN_RESPONSE,\r\n payload: pinResponse,\r\n})\r\n\r\nexport const smsLogin = (logData) => ({\r\n type: SMS_LOGIN,\r\n payload: logData,\r\n})\r\n\r\nexport const smsLoginResponse = (user) => ({\r\n type: SMS_LOGIN_RESPONSE,\r\n payload: user,\r\n})\r\n","/**\r\n * @fileOverview Manages types of the particular action in the redux\r\n * @author Athul George \r\n * @author Akhil Francis \r\n * @author Cinu James \r\n * @example export const TYPE_NAME = 'VALUE'\r\n */\r\n/**\r\n * @type {string}\r\n */\r\nexport const LOGIN = 'LOGIN'\r\nexport const LOG_OUT = 'LOGIN_OUT'\r\nexport const LOGIN_RESPONSE = 'LOGIN_RESPONSE'\r\nexport const REQUEST_CANCEL = 'REQUEST_CANCEL'\r\nexport const LOGGED = 'LOGGED'\r\nexport const VERIFY_PIN = 'VERIFY_PIN'\r\nexport const VERIFY_PIN_RESPONSE = 'VERIFY_PIN_RESPONSE'\r\nexport const SMS_LOGIN = 'SMS_LOGIN'\r\nexport const SMS_LOGIN_RESPONSE = 'SMS_LOGIN_RESPONSE'\r\n","export const CREATE_PAYMENT = 'CREATE_PAYMENT'\r\nexport const PAYMENT_RESPONSE = 'PAYMENT_RESPONSE'\r\nexport const PAYMENT_DETAILS = 'PAYMENT_DETAILS'\r\nexport const PAYMENT_DETAILS_RESPONSE = 'PAYMENT_DETAILS_RESPONSE'\r\nexport const REQUEST_CANCEL = 'REQUEST_CANCEL'\r\nexport const SUCCESS_PAYMENT = 'SUCCESS_PAYMENT'\r\nexport const UPDATE_MINUTES = 'UPDATE_MINUTES'\r\nexport const PAYMENT_FLAG = 'PAYMENT_FLAG'\r\nexport const PAYMENT_FLAG_RESPONSE = 'PAYMENT_FLAG_RESPONSE'\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport { Route, Redirect, useHistory } from 'react-router-dom'\r\nexport function PrivateRoute({ component: Component, permission, ...rest }) {\r\n const token = localStorage.getItem('access_token')\r\n const history = useHistory()\r\n return (\r\n \r\n permission === true && token ? (\r\n \r\n ) : (\r\n \r\n )\r\n }\r\n />\r\n )\r\n}\r\nPrivateRoute.propTypes = {\r\n component: PropTypes.any,\r\n permission: PropTypes.bool,\r\n location: PropTypes.any,\r\n}\r\n","import React, { useEffect } from 'react'\nimport { connect } from 'react-redux'\nimport { updateMinutes } from 'Redux/Payment/payment.actions'\nimport PropTypes from 'prop-types'\nimport { NotificationContainer } from 'react-notifications'\nimport toast, { Toaster } from 'react-hot-toast'\nimport 'react-notifications/lib/notifications.css'\nimport './App.css'\nimport { BrowserRouter, Route, Switch, Redirect } from 'react-router-dom'\nimport { PrivateRoute } from './Utils/private-route'\nimport { basePath } from 'environments/environment'\nconst Login = React.lazy(() => import('./Containers/Login'))\nconst Auth = React.lazy(() => import('./Containers/Auth'))\nconst Payment = React.lazy(() => import('./Containers/Payment'))\nconst SuccessPage = React.lazy(() => import('./Components/SuccessPage'))\n\nfunction App() {\n useEffect(() => {\n if (window.location.href.split('/').pop() !== 'login') {\n setInterval(() => {\n const m = localStorage.getItem('minute')\n const p = parseInt(m, 10)\n if (p === 15 || p > 15) {\n toast.error('The connection has timed out. Please Try Again!')\n setTimeout(() => {\n window.location.href = '/login'\n }, 3000)\n } else {\n const a = localStorage.getItem('minute')\n const sum = parseInt(a, 10) + 1\n localStorage.setItem('minute', sum)\n }\n }, 60000)\n }\n }, [])\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nconst mapStateToProps = (state) => ({\n LoginData: state.login,\n})\n\nconst mapDispatchToProps = (dispatch) => ({\n updateMinutes: (values) => dispatch(updateMinutes(values)),\n})\n\nApp.propTypes = {\n updateMinutes: PropTypes.func,\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(App)\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 } 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((reg) => {\r\n const registration = reg\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\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 setTimeout(() => {}, 3000)\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(() => {})\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}\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(() => {})\r\n }\r\n}\r\n","import { LOGIN_RESPONSE, LOGGED, VERIFY_PIN_RESPONSE, SMS_LOGIN_RESPONSE } from './login.types'\r\n\r\n/**\r\n * @fileOverview Manages the response of action\r\n * @author Athul George \r\n * @author Akhil Francis \r\n * @author Cinu James \r\n * @example switch (action.type) {\r\n case TYPE_NAME: {\r\n return {\r\n ...state,\r\n ...{INITIAL_STATE: action.payload },\r\n }\r\n }\r\n }\r\n */\r\n\r\nconst INITIAL_STATE = {\r\n status: false,\r\n logged: false,\r\n loginResponse: {},\r\n patientTicker: {},\r\n pinResponse: {},\r\n smsLoginResponse: {},\r\n}\r\n\r\n/**\r\n *\r\n * @param state - global state management\r\n * @param action - contains type and payload\r\n * @returns {{loginResponse: {}, login: boolean, status: boolean}|{loginResponse: *, login: boolean, status: boolean}|{loginResponse: {}, login: boolean, status: *}}\r\n */\r\n\r\nconst loginReducer = (state = INITIAL_STATE, action) => {\r\n switch (action.type) {\r\n case LOGIN_RESPONSE: {\r\n return { ...state, ...{ loginResponse: action.payload } }\r\n }\r\n case LOGGED: {\r\n return { ...state, ...{ logged: action.payload } }\r\n }\r\n case VERIFY_PIN_RESPONSE: {\r\n return { ...state, ...{ pinResponse: action.payload } }\r\n }\r\n case SMS_LOGIN_RESPONSE: {\r\n return { ...state, ...{ smsLoginResponse: action.payload } }\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\nexport default loginReducer\r\n","import {\r\n PAYMENT_RESPONSE,\r\n PAYMENT_DETAILS_RESPONSE,\r\n SUCCESS_PAYMENT,\r\n UPDATE_MINUTES,\r\n PAYMENT_FLAG_RESPONSE,\r\n} from './payment.types'\r\n\r\nconst INITIAL_STATE = {\r\n payDetails: {},\r\n paymentDetails: {},\r\n successValue: true,\r\n minutes: 0,\r\n paymentFlagResponse: {},\r\n}\r\n\r\nconst paymentReducer = (state = INITIAL_STATE, action) => {\r\n switch (action.type) {\r\n case PAYMENT_RESPONSE: {\r\n return { ...state, ...{ payDetails: action.payload } }\r\n }\r\n case PAYMENT_DETAILS_RESPONSE: {\r\n return { ...state, ...{ paymentDetails: action.payload } }\r\n }\r\n case SUCCESS_PAYMENT: {\r\n return { ...state, ...{ successValue: action.payload } }\r\n }\r\n case UPDATE_MINUTES: {\r\n return { ...state, ...{ minutes: state.minutes + action.payload } }\r\n }\r\n case PAYMENT_FLAG_RESPONSE: {\r\n return { ...state, ...{ paymentFlagResponse: action.payload } }\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\nexport default paymentReducer\r\n","import { combineReducers } from 'redux'\r\nimport loginReducer from './Login/login.reducer'\r\nimport paymentReducer from './Payment/payment.reducer'\r\n\r\n/** rootReducer\r\n * @fileOverview Combine all reducer action\r\n * @author Athul George \r\n * @author Akhil Francis \r\n * @author Cinu James \r\n */\r\n\r\nconst rootReducer = combineReducers({\r\n login: loginReducer,\r\n payment: paymentReducer,\r\n})\r\n\r\nexport default rootReducer\r\n","import { ofType } from 'redux-observable'\r\nimport { switchMap, map, takeUntil, catchError } from 'rxjs/operators'\r\nimport { ajax } from 'rxjs/ajax'\r\nimport environment from 'environments/environment'\r\nimport { EMPTY } from 'rxjs'\r\nimport {\r\n LOGIN,\r\n REQUEST_CANCEL,\r\n LOG_OUT,\r\n VERIFY_PIN,\r\n SMS_LOGIN,\r\n} from './login.types'\r\nimport {\r\n loginResponse,\r\n checkPinResponse,\r\n smsLoginResponse,\r\n} from './login.actions'\r\nconst { baseUrl } = environment\r\n\r\nconst loginEpic = {}\r\n\r\n/**\r\n * @fileOverview Manages the APIs w.r.t action in the redux\r\n * @author Athul George \r\n * @author Akhil Francis \r\n * @author Cinu James \r\n\r\n/**\r\n * Login\r\n * @description Calling the login API for a user to login\r\n * @param action$\r\n */\r\nloginEpic.login = (action$) =>\r\n action$.pipe(\r\n ofType(LOGIN),\r\n switchMap((action) =>\r\n ajax({\r\n headers: { 'Content-Type': 'application/json' },\r\n url: `${baseUrl}/iris-payment-service/v1/patient/login`,\r\n method: 'POST',\r\n body: JSON.stringify(action.payload),\r\n }).pipe(\r\n catchError((error) => {\r\n // eslint-disable-next-line no-console\r\n console.error(`Could not connect to server: ${error}`)\r\n console.error(JSON.stringify(error))\r\n return EMPTY\r\n }),\r\n map(\r\n (response) => loginResponse(response),\r\n catchError((error) => {\r\n // eslint-disable-next-line no-console\r\n console.error(`Error while logging in: ${error}`)\r\n }),\r\n takeUntil(action$.pipe(ofType(REQUEST_CANCEL))),\r\n ),\r\n ),\r\n ),\r\n )\r\n\r\nloginEpic.logOut = (action$) =>\r\n action$.pipe(\r\n ofType(LOG_OUT),\r\n switchMap(() =>\r\n ajax({\r\n headers: { 'Content-Type': 'application/json' },\r\n url: `${baseUrl}/patient-portal-api/v1/patient/logout`,\r\n method: 'POST',\r\n }).pipe(\r\n map(\r\n (response) => loginResponse(response),\r\n takeUntil(action$.pipe(ofType(REQUEST_CANCEL))),\r\n ),\r\n ),\r\n ),\r\n )\r\n\r\nloginEpic.verifyPin = (action$) =>\r\n action$.pipe(\r\n ofType(VERIFY_PIN),\r\n switchMap((action) =>\r\n ajax({\r\n headers: { 'Content-Type': 'application/json' },\r\n url: `${baseUrl}/patient-portal-api/v1/patient/verify/${action.payload}`,\r\n method: 'GET',\r\n }).pipe(\r\n map(\r\n (response) => checkPinResponse(response),\r\n takeUntil(action$.pipe(ofType(REQUEST_CANCEL))),\r\n ),\r\n ),\r\n ),\r\n )\r\n\r\nloginEpic.smsLogin = (action$) =>\r\n action$.pipe(\r\n ofType(SMS_LOGIN),\r\n switchMap((action) =>\r\n ajax({\r\n headers: { 'Content-Type': 'application/json' },\r\n url: `${baseUrl}/patient-portal-api/v1/patient/login`,\r\n method: 'POST',\r\n body: JSON.stringify(action.payload),\r\n }).pipe(\r\n map(\r\n (response) => smsLoginResponse(response),\r\n takeUntil(action$.pipe(ofType(REQUEST_CANCEL))),\r\n ),\r\n ),\r\n ),\r\n )\r\n\r\nexport default loginEpic\r\n","import { ajax } from 'rxjs/ajax'\r\nimport toast from 'react-hot-toast'\r\nimport { catchError } from 'rxjs/operators'\r\n// import { NotificationManager } from 'react-notifications'\r\nimport { of } from 'rxjs'\r\nexport function ajaxUtils(params) {\r\n const token = localStorage.getItem('access_token') || null\r\n const Bearer = 'Bearer '\r\n const defaultHeader = {\r\n Authorization: Bearer + token,\r\n 'Content-Type': 'application/json',\r\n }\r\n const paramsHeader = params.headers || {}\r\n const passingHeader = token\r\n ? { ...defaultHeader, ...paramsHeader }\r\n : { ...paramsHeader }\r\n return ajax({ ...params, ...{ headers: passingHeader } }).pipe(\r\n catchError((error) => {\r\n if (error.response && error.response.status === 401) {\r\n localStorage.clear()\r\n toast.error('The connection has timed out. Please Try Again!')\r\n setTimeout(() => {\r\n window.location.href = '/login'\r\n }, 10000)\r\n }\r\n return of(error)\r\n }),\r\n )\r\n}\r\nexport function objectToUrl(url, object) {\r\n const encoded = Object.entries(object)\r\n .map(\r\n ([key, value]) =>\r\n `${encodeURIComponent(key)}=${encodeURIComponent(value)}`,\r\n )\r\n .join('&')\r\n .replace(/[a-zA-Z0-9]+[=](null)(&)/g, '')\r\n .replace(/(&)[a-zA-Z0-9]+[=](null)/g, '')\r\n .replace(/[a-zA-Z0-9]+[=]([\\s]+)?(&)/g, '')\r\n .replace(/(&)[a-zA-Z0-9]+[=]+([\\s]+)?(?![a-zA-Z0-9-])/g, '')\r\n return `${url}?${encoded}`\r\n}\r\n\r\nexport function objectToUrlTable(url, object) {\r\n const encoded = Object.entries(object)\r\n .map(\r\n ([key, value]) =>\r\n `${encodeURIComponent(key)}=${encodeURIComponent(value)}`,\r\n )\r\n .join('&')\r\n .replace(/[a-zA-Z0-9]+[=]('')(&)/g, '')\r\n .replace(/(&)[a-zA-Z0-9]+[=]('')/g, '')\r\n .replace(/[a-zA-Z0-9]+[=]([\\s]+)?(&)/g, '')\r\n .replace(/(&)[a-zA-Z0-9]+[=]+([\\s]+)?(?![a-zA-Z0-9-])/g, '')\r\n return `${url}?${encoded}`\r\n}\r\n","import { ofType } from 'redux-observable'\r\nimport { switchMap, map, takeUntil } from 'rxjs/operators'\r\nimport { ajax } from 'Utils'\r\nimport environment from 'environments/environment'\r\nimport {\r\n CREATE_PAYMENT,\r\n REQUEST_CANCEL,\r\n PAYMENT_DETAILS,\r\n PAYMENT_FLAG,\r\n} from './payment.types'\r\nimport {\r\n paymentResponse,\r\n paymentDetailsResponse,\r\n paymentFlagResponse,\r\n} from './payment.actions'\r\nconst { baseUrl } = environment\r\nconst PaymentEpic = {}\r\n\r\nPaymentEpic.makePaymentApi = (action$) =>\r\n action$.pipe(\r\n ofType(CREATE_PAYMENT),\r\n switchMap((action) =>\r\n ajax({\r\n headers: {\r\n 'application-id': 8,\r\n },\r\n url: `${baseUrl}/iris-payment-service/v1/payment/stripe/`,\r\n method: 'POST',\r\n body: JSON.stringify(action.payload),\r\n }).pipe(\r\n map(\r\n (response) => paymentResponse(response),\r\n takeUntil(action$.pipe(ofType(REQUEST_CANCEL))),\r\n ),\r\n ),\r\n ),\r\n )\r\n\r\nPaymentEpic.getPaymentDetailsApi = (action$) =>\r\n action$.pipe(\r\n ofType(PAYMENT_DETAILS),\r\n switchMap((action) =>\r\n ajax({\r\n url: `${baseUrl}/iris-payment-service/v1/payment/patient/info/${action.payload}`,\r\n method: 'GET',\r\n }).pipe(\r\n map(\r\n (response) => paymentDetailsResponse(response),\r\n takeUntil(action$.pipe(ofType(REQUEST_CANCEL))),\r\n ),\r\n ),\r\n ),\r\n )\r\n\r\nPaymentEpic.paymentFlag = (action$) =>\r\n action$.pipe(\r\n ofType(PAYMENT_FLAG),\r\n switchMap((action) =>\r\n ajax({\r\n headers: {\r\n 'application-id': 8,\r\n },\r\n url: `${baseUrl}/iris-payment-service/v1/payment/`,\r\n method: 'POST',\r\n body: JSON.stringify(action.payload),\r\n }).pipe(\r\n map(\r\n (response) => paymentFlagResponse(response),\r\n takeUntil(action$.pipe(ofType(REQUEST_CANCEL))),\r\n ),\r\n ),\r\n ),\r\n )\r\n\r\nexport default PaymentEpic\r\n","import { combineEpics } from 'redux-observable'\r\nimport loginEpic from './Login/login.epic'\r\nimport PaymentEpic from './Payment/payment.epic'\r\n\r\n/** RootEpic\r\n * @fileOverview Combine all the APIs calls w.r.t action in the redux\r\n * @author Athul George \r\n * @author Akhil Francis \r\n * @author Cinu James \r\n */\r\nconst rootEpic = combineEpics(\r\n loginEpic.login,\r\n loginEpic.logOut,\r\n loginEpic.verifyPin,\r\n loginEpic.smsLogin,\r\n PaymentEpic.makePaymentApi,\r\n PaymentEpic.getPaymentDetailsApi,\r\n PaymentEpic.paymentFlag,\r\n)\r\nexport default rootEpic\r\n","import { createStore, applyMiddleware, compose } from 'redux'\r\nimport { createEpicMiddleware } from 'redux-observable'\r\nimport rootReducer from './rootReducer'\r\nimport rootEpic from './rootEpic'\r\n\r\nconst epicMiddleware = createEpicMiddleware()\r\nconst composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose\r\nconst store = createStore(\r\n rootReducer,\r\n composeEnhancers(applyMiddleware(epicMiddleware)),\r\n)\r\nepicMiddleware.run(rootEpic)\r\n\r\nexport default store\r\n","import React from 'react'\r\nimport ReactDOM from 'react-dom'\r\nimport './index.css'\r\nimport { Provider } from 'react-redux'\r\nimport App from './App'\r\nimport * as serviceWorker from './serviceWorker'\r\nimport store from './Redux/store'\r\n/**\r\n * @file Index.jsx\r\n * @fileoverview React starting main file, it call App.jsx for manage all other react function and also call Provider for manage redux storage\r\n */\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById('root'),\r\n)\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister()\r\n"],"sourceRoot":""}