{"version":3,"sources":["assets/reshot.svg","components/kit/SelectedDoctor/SelectedDoctor.jsx","global/Constants/Constants.js","api/apiUtils.js","global/Constants/appointment.js","redux/actions/appointmentActions.js","api/appointmentApi.js","redux/actions/actionTypes.js","global/Constants/doctor.js","redux/actions/doctorActions.js","api/doctorApi.js","global/Constants/user.js","redux/actions/userActions.js","api/userApi.js","components/kit/GeneralButton/GeneralButton.js","containers/Pages/OnlineRecord/Alert/SimpleAlert.js","containers/Pages/OnlineRecord/LoadingComponent/LoadingComponent.js","containers/Pages/OnlineRecord/SelectService/SelectServiceOption.js","containers/Pages/OnlineRecord/SelectService/SelectService.jsx","global/Constants/service.js","redux/actions/serviceActions.js","api/serviceApi.js","containers/Pages/OnlineRecord/ChooseMedService.jsx","components/kit/Icons/SearchIcon.jsx","components/kit/Logo/Logotype.jsx","global/Constants/speciality.js","redux/actions/specialityActions.js","api/specialityApi.js","redux/actions/doctorTabsAction.js","containers/DoctorTab.jsx","containers/Pages/doctors/DoctorList.js","containers/Pages/OnlineRecord/ChooseMaster.jsx","components/kit/InputForm/InputForm.js","global/styles/Colors.js","components/kit/InputPhoneMask/InputPhoneMask.js","components/kit/SelectInput/SelectInput.js","global/Helpers/checkEmptyField.js","containers/Pages/OnlineRecord/ClientForm/ClientForm.jsx","global/Constants/results.js","redux/actions/isLoad.js","api/results.js","containers/Pages/OnlineRecord/getResultForm/GetResultForm.jsx","containers/Pages/OnlineRecord/OnlineRecordModal/OnlineRecordModal.js","components/kit/Icons/CalendarIcon.jsx","components/kit/Icons/ClockIcon.jsx","components/kit/Icons/WalletIcon.jsx","containers/Pages/OnlineRecord/Payment/Payment.js","global/Helpers/showMonthForDatePicker.js","components/kit/Icons/ArrowIcon.js","components/kit/ServiceDatePicker/PrevButton.js","components/kit/ServiceDatePicker/ServiceDatePicker.js","components/kit/TimeButton/TimeButton.js","components/kit/TimeButton/ChooseTime.js","components/kit/HomePageBtn/HomePageBtn.jsx","containers/Pages/OnlineRecord/SelectDate/SelectDate.js","containers/Pages/OnlineRecord/OnlineRecord.js","containers/Pages/SharePage/SharePage.jsx","containers/Pages/NotFound/NotFound.jsx","global/Constants/twoFactorAuth.js","redux/actions/twoFactorAuthActions.js","api/twoFactorAuthApi.js","containers/Pages/authorization/Authorization.jsx","components/kit/Acordion/Chevron.js","components/kit/Acordion/AcordionItem.jsx","components/kit/Pagination/Pagination.jsx","components/kit/Acordion/Acordion.jsx","containers/Pages/servicesPage/ServicesPage.jsx","containers/Pages/home/home.jsx","api/PatientEmcPdf.js","containers/Pages/client-cab/ClientCab.jsx","Routes.js","App.js","store/localStorage.js","redux/reducers/doctorTabsReducer.js","store/configureStore.js","redux/reducers/doctorReducer.js","redux/reducers/specialityReducer.js","redux/reducers/serviceReducer.js","redux/reducers/appointmentReducer.js","redux/reducers/isLoad.js","index.js"],"names":["module","exports","SelectedDoctor","master","masterPhoto","doctorSpecialities","addSpecialities","selectedSpeciality","useSelector","s","doctorTabsReducer","doctorTab","className","style","background","src","alt","width","height","borderRadius","border","objectFit","charAt","toUpperCase","toLowerCase","filter","obj","IsVisibleOnSIte","map","AddSpeciality","Name","join","currentDate","Date","BASE_URL","consts","api","axios","create","baseURL","headers","Session_Id","localStorage","getItem","handleResponse","response","a","data","IsSuccess","Data","error","Message","console","log","handleError","GET_FREE_APPOINTMENTS","CREATE_APPOINTMENT","GET_BUSY_DAYS","loadFreeAppointments","dispatch","get","date","doctorId","checkCurrentDate","then","catch","appointmentApi","appointments","type","loadFreeAppointmentsSuccess","createAppointment","appointment","Object","assign","post","savedAppointment","createAppointmentSuccess","loadBusyDays","month","year","days","loadBusyDaysSuccess","GET_DOCTOR_LIST","loadDoctors","params","isShowPhoto","getPhotos","isAddNearestFreeTime","getNearestFreeTime","visibleOnSite","doctors","loadDoctorsSuccess","LOGIN_URL","LOGIN_URL_NEW","authSuccess","user","authWebApiUser","setItem","SessionId","AuthUser","userApi","GeneralButton","_ref","title","bgColor","disabled","textColor","onClick","props","_objectWithoutProperties","classNames","push","React","createElement","backgroundColor","color","useStyles","makeStyles","theme","root","marginTop","spacing","SimpleAlert","severity","errorMessage","classes","Alert","variant","LoadingComponent","id","xmlns","version","in","stdDeviation","result","mode","values","in2","SelectFormOption","item","onSelect","isChecked","concat","Price","currency_symbol","TimeMin","SelectService","categories","services","selectedOptions","selectedSpecialityId","IdSpeciality","length","category","filteredServices","sort","b","speciality","SpecialityId","find","addSpeciality","Id","totalCount","some","el","serv","idx","SelectServiceOption","key","it","addSpecialy","GET_SERVICE_LIST","GET_SERVICES_BY_DOCTOR","loadServices","loadServicesSuccess","loadServicesByDoctor","serviceApi","loadServicesByDoctorSuccess","ChooseMedService","onSelectServiceVariant","includes","index","indexOf","splice","setState","state","isLoading","DateFrom","this","startDateTime","DateTo","endDateTime","IdDoctor","ByDoctor","handleClickPrev","handleClickNext","Component","Array","prototype","distinct","results","i","l","connect","slice","service","serviceActions","SearchIcon","viewBox","fill","d","stroke","strokeWidth","strokeLinecap","strokeLinejoin","Logotype","href","logoUrl","logoWidth","logoBG","GET_SPECIALITY_LIST","loadSpecialities","specialities","loadSpecialitiesSuccess","setDoctorTabs","quantity","window","innerWidth","DoctorTab","useDispatch","useState","itemsToShow","setItemsToShow","setTimeout","urlParams","URLSearchParams","location","search","urlSpecialityId","parseInt","replace","urlSpeciality","setDoctorTabHandler","e","target","value","currentTarget","filtredSpecialities","reduce","acc","cur","AddSpecialities","SpecialityName","arr","findIndex","overflow","prev","localeCompare","doctor","display","justifyContent","marginBottom","fontSize","DoctorList","onSelectMaster","inputSearch","useEffect","urlDoctorId","urlDoctor","DefaultTime","name","Photo","NearestFreeTime","options","day","weekday","hour","minute","doc","toLocaleDateString","ChooseMaster","onChange","toLocaleLowerCase","placeholder","trim","specialityActions","doctorActions","InputForm","propertyName","label","FormControl","TextField","Colors","ACCENT","main","secondary","NEUTRAL","white","grey","mint","lightMint","green","lightGreen","darkGreen","darkBlue","ICON","padding","position","placeHolder","top","left","TextMaskCustom","inputRef","other","mask","phoneMask","ref","inputElement","InputPhoneMask","onKeyDown","isActive","setValue","Input","onFocus","prevValue","onBlur","inputComponent","disableUnderline","SelectInput","inputProps","children","Fragment","InputLabel","Select","labelId","checkEmptyField","ClientForm","lastname","gender","phone","inputChangeHandler","showGenderInput","MenuItem","GET_RESULTS_By_CodeWord_AsPdf","setIsLoad","isLoad","MySwal","withReactContent","Swal","GetResultForm","codeword","setCodeword","download","method","responseType","url","file","Blob","test","navigator","userAgent","fileURL","URL","createObjectURL","open","fire","icon","showConfirmButton","timer","finally","GetResultsByCodeWordAsPdf","Helmet","OnlineRecordModal","isOpenModal","onClose","Modal","aria-labelledby","aria-describedby","closeAfterTransition","BackdropComponent","Backdrop","BackdropProps","timeout","Fade","CalendarIcon","mainColor","secColor","enable-background","cx","cy","r","ClockIcon","WalletIcon","x","y","rx","ry","Payment","selectedTime","onSubmit","selectedDate","moment","locale","totalSum","forEach","format","ndx","MONTH","1","2","3","4","5","6","7","8","9","10","11","12","ArrowIcon","PrevButton","calendarHandlePrevClick","getMonth","registerLocale","ru","ServiceDatePicker","number","calendarHandleNextClick","busyDays","getFullYear","today","disabledDates","addDays","setDate","getDate","AddedDaysCount","ValidationCalendarMonth","Number","minDate","isNextDay","maxDate","next2Label","prev2Label","showNeighboringMonth","onClickDay","tileDisabled","view","disabledDate","TimeButton","time","selected","isBusy","ChooseTime","onSelectTime","times","isCutSpeciatity","undefined","StartTime","EndTime","HomePageBtn","to","SelectDate","onSelectDate","timesBtnsLoading","CutIdSpecialityTime","document","addEventListener","classList","add","OnlineRecord","page","doctype","orderNumber","docnum","onSelectService","duration","doctorTime","timeArr","split","minutes","startTime","toDateString","getTime","endTime","toLocaleTimeString","freeTimes","changeMonth","toggleModal","element","Status","getTimePart","selectedMonth","setMonth","currentMonth","reload","from","querySelectorAll","patient","SName","Sex","Phone","appointmentData","FromDateTime","ToDateTime","DoctorId","Patient","Services","text","confirmButtonText","confirmButtonColor","isConfirmed","getHours","getMinutes","appointmentActions","userActions","SharePage","setDoctors","copyToClipboard","textToCopy","clipboard","isSecureContext","writeText","textArea","body","appendChild","focus","select","Promise","res","rej","execCommand","remove","isShowInSchedule","_","uniqWith","rec","isEqual","origin","NotFound","GET_TWO_FACTOR_AUTH","POST_TWO_FACTOR_AUTH","GET_PATIEN","GET_PATIENT_EMC_LIST_BY_TOKEN","GET_PATIENT_EMC_PDF","loadGetTwoFactorAuth","setIsCode","phonenumber","loadPostApproveClient","code","setCookie","PhoneNumber","GetTwoFactorApi","cokieParams","token","expirationDate","path","expires","Authorization","phoneNumber","setPhoneNumber","isCode","setCode","useCookies","cookies","history","useHistory","disabledСode","getCode","onEnterPress","onAuthorization","reshot","Chevron","AcordionItem","setActive","setActiveState","setHeight","setHeightState","setRotate","setRotateState","content","useRef","current","scrollHeight","parse","maxHeight","items","cursor","borderBottom","fontWeight","usePagination","itemsPerPage","currentPage","setCurrentPage","maxPage","Math","ceil","next","min","max","jump","pageNumber","currentData","begin","end","Acordion","setSearch","sortedSpecialities","setSortedSpecialities","searchedSpecialities","setSearchedSpecialities","newSpecialities","newSpeciality","setPage","count","_DATA","searchTerm","filterItems","filteredItems","formattedName","RegExp","match","flexDirection","gap","alignItems","size","clientWidth","p","ServicesPage","Home","ClientCab","removeCookie","setPatient","setResults","authToken","DownloadPatientEmcPdf","byteCharacters","atob","byteNumbers","charCodeAt","byteArray","Uint8Array","blob","GetPatientEmcPdf","FirstName","LastName","class","DateOfBirth","convertDate","Email","overflowX","minWidth","flex","maxWidth","ServiceName","DateCreated","DoctorFullName","Routes","Login","Password","exact","component","ariaLabel","radius","wrapperStyle","wrapperClass","visible","withRouter","initState","createBrowserHistory","listen","action","scrollTo","rootReducer","combineReducers","router","connectRouter","arguments","_toConsumableArray","_objectSpread","composeEnhancers","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","middleware","thunkMiddleware","routerMiddleware","enhancers","applyMiddleware","persistedState","serializedStorage","JSON","loadState","store","createStore","subscribe","interceptors","request","use","config","getState","users","app","Provider","BrowserRouter","ConnectedRouter","App","ReactDOM","render","getElementById"],"mappings":"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","file":"static/js/main.c72df8a6.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/reshot.25f9aded.svg\";","import React from 'react';\nimport { useSelector } from 'react-redux';\n\nconst SelectedDoctor = ({ master, doctorSpecialities, masterPhoto, addSpecialities, }) => {\n const selectedSpeciality = useSelector((s) => s.doctorTabsReducer.doctorTab)\n return (\n
\n
\n {masterPhoto ? (\n
\n \n
\n ) : (\n
\n {master.charAt().toUpperCase()}\n
\n )}\n
\n
\n {master.toLowerCase()}\n
\n

\n {selectedSpeciality === 'все' ? addSpecialities.filter((obj) => obj.IsVisibleOnSIte).map(AddSpeciality => AddSpeciality.Name).join(', ') : selectedSpeciality}\n

\n
\n
\n
\n )\n}\n\nexport default SelectedDoctor;","import * as consts from '../../constants.json';\n\nexport const TIMES = [\n '7:00',\n '8:00',\n '9:00'//,\n /* {time: '10:00'},\n {time: '11:00'},\n {time: '12:00'},\n {time: '13:00'},\n {time: '14:00'},\n {time: '15:00'},\n {time: '16:00'},\n {time: '17:00'},\n {time: '18:00'},*/\n];\n\nexport const currentDate = new Date();\n\nexport const ROUTE_RECORD = '/record';\nexport const HOME = '/';\nexport const RESULTS = '/results';\nexport const AUTHORIZATION = '/authorization';\nexport const CLIENT_CAB = '/client-cab';\nexport const SERVICES = '/services';\nexport const SHARE_PAGE = '/share'\n\nexport const BASE_URL = `${consts.PROXY ? consts.PROXY_URL : ''}${consts.baseUrl}`\n","import axios from 'axios'\nimport { BASE_URL } from '../global/Constants/Constants'\n\nconst api = axios.create({\n\tbaseURL: BASE_URL,\n\theaders: {\n\t\tSession_Id: localStorage.getItem('Session_Id'),\n\t},\n})\n\nasync function handleResponse(response) {\n\tif (response.data.IsSuccess) {\n\t\treturn response.data.Data\n\t} else {\n\t\tconst error = response.data.Message\n\t\tconsole.log(error)\n\t}\n}\n\nfunction handleError(error) {\n\tthrow error\n}\n\nexport { api, handleResponse, handleError }\n","import { BASE_URL } from './Constants';\n\nexport const GET_FREE_APPOINTMENTS = `${BASE_URL}api/Appointment/GetFreeAppointment`;\nexport const CREATE_APPOINTMENT = `${BASE_URL}api/Appointment/CreateAppointmentFromSiteByUniqueId`;\nexport const GET_BUSY_DAYS = `${BASE_URL}api/Appointment/GetBusyDays`;","import * as types from './actionTypes'\nimport * as appointmentApi from '../../api/appointmentApi'\n\nexport function loadFreeAppointmentsSuccess(appointments) {\n return { type: types.LOAD_FREE_APPOINTMENTS_SUCCESS, appointments }\n}\n\nexport function createAppointmentSuccess(appointment) {\n return { type: types.CREATE_APPOINTMENT_SUCCESS, appointment }\n}\n\nexport function loadBusyDaysSuccess(days) {\n return { type: types.LOAD_BUSY_DAYS_SUCCESS, days }\n}\n\nexport function loadFreeAppointments(data) {\n return function (dispatch) {\n return appointmentApi\n .getFreeAppointments(data)\n .then((appointments) => {\n dispatch(loadFreeAppointmentsSuccess(appointments))\n })\n .catch((error) => {\n throw error\n })\n }\n}\n\nexport function createAppointment(appointment) {\n return function (dispatch) {\n return appointmentApi\n .createAppointment(appointment)\n .then((savedAppointment) => {\n dispatch(createAppointmentSuccess(savedAppointment))\n })\n .catch((error) => {\n throw error\n })\n }\n}\n\nexport function loadBusyDays(data) {\n return function (dispatch) {\n return appointmentApi\n .getBusyDays(data)\n .then((days) => {\n dispatch(loadBusyDaysSuccess(days))\n })\n .catch((error) => {\n throw error\n })\n }\n}\n","import { api, handleResponse, handleError } from './apiUtils'\nimport {\n GET_FREE_APPOINTMENTS,\n CREATE_APPOINTMENT,\n GET_BUSY_DAYS,\n} from '../global/Constants/appointment'\n\nexport function createAppointment(appointment) {\n let data = Object.assign({}, appointment)\n return api\n .post(CREATE_APPOINTMENT, data)\n .then(handleResponse)\n .catch(handleError)\n}\n\nexport function getFreeAppointments(data) {\n return api\n .get(\n `${GET_FREE_APPOINTMENTS}?date=${data.date}&doctorId=${data.doctorId}&checkCurrentDate=${data.checkCurrentDate}`\n )\n .then(handleResponse)\n .catch(handleError)\n}\n\nexport function getBusyDays(data) {\n return api\n .get(\n `${GET_BUSY_DAYS}?month=${data.month}&year=${data.year}&doctorId=${data.doctorId}`\n )\n .then(handleResponse)\n .catch(handleError)\n}\n","export const LOAD_DOCTORS_SUCCESS = 'LOAD_DOCTORS_SUCCESS'\nexport const LOAD_SPECIALITIES_SUCCESS = 'LOAD_SPECIALITIES_SUCCESS'\nexport const LOAD_SERVICES_SUCCESS = 'LOAD_SERVICES_SUCCESS'\nexport const LOAD_SERVICES_BY_DOCTOR_SUCCESS = 'LOAD_SERVICES_BY_DOCTOR_SUCCESS'\nexport const LOAD_FREE_APPOINTMENTS = 'LOAD_FREE_APPOINTMENTS'\nexport const LOAD_FREE_APPOINTMENTS_SUCCESS = 'LOAD_FREE_APPOINTMENTS_SUCCESS'\nexport const LOAD_FREE_APPOINTMENTS_FAIL = 'LOAD_FREE_APPOINTMENTS_FAIL'\nexport const CREATE_APPOINTMENT_SUCCESS = 'CREATE_APPOINTMENT_SUCCESS'\nexport const AUTH = 'AUTH'\nexport const AUTH_SUCCESS = 'AUTH_SUCCESS'\nexport const AUTH_FAIL = 'AUTH_FAIL'\nexport const DOCTOR_TABS = 'DOCTOR_TABS'\nexport const LOAD_BUSY_DAYS_SUCCESS = 'LOAD_BUSY_DAYS_SUCCESS'\nexport const LOAD_TRUE= 'LOAD_TRUE'\n\n","import { BASE_URL } from './Constants';\n\nexport const GET_DOCTOR_LIST = `${BASE_URL}api/Doctor/GetVisibleDoctors`;","import * as types from './actionTypes'\nimport * as doctorApi from '../../api/doctorApi'\n\nexport function loadDoctorsSuccess(doctors) {\n return { type: types.LOAD_DOCTORS_SUCCESS, doctors }\n}\n\nexport function loadDoctors() {\n return function (dispatch) {\n return doctorApi\n .getDoctors()\n .then((doctors) => {\n dispatch(loadDoctorsSuccess(doctors))\n })\n .catch((error) => {\n throw error\n })\n }\n}\n","import {api, handleResponse, handleError} from './apiUtils';\nimport { GET_DOCTOR_LIST } from '../global/Constants/doctor';\nimport { getPhotos, getNearestFreeTime } from './../constants.json'\n\nexport function getDoctors(){\n return api\n .get(`${GET_DOCTOR_LIST}?isShowInSchedule=true`, {\n params: {\n isShowPhoto: getPhotos ? true : '',\n isAddNearestFreeTime: getNearestFreeTime ? true : '',\n visibleOnSite: true,\n },\n })\n .then(handleResponse)\n .catch(handleError)\n}\n\n// &isShowPhoto=true&isAddNearestFreeTime=true","import { BASE_URL } from './Constants';\n\nexport const LOGIN_URL = `${BASE_URL}api/User/AuthWebApiUser`;\nexport const LOGIN_URL_NEW = `${BASE_URL}v2/api/Auth/AuthUser`;","import * as types from './actionTypes'\nimport * as userApi from '../../api/userApi'\n\nexport function authSuccess(user) {\n return { type: types.AUTH, user }\n}\n\nexport function authWebApiUser() {\n return function (dispatch) {\n return userApi\n .auth()\n .then((user) => {\n dispatch(authSuccess(user))\n localStorage.setItem('Session_Id', user.SessionId)\n })\n .catch((error) => {\n throw error\n })\n }\n}\n\nexport function AuthUser(params) {\n return function (dispatch) {\n return userApi\n .authLogin(params)\n .then((user) => {\n dispatch(authSuccess(user))\n localStorage.setItem('Session_Id', user.SessionId)\n })\n .catch((error) => {\n throw error\n })\n }\n}\n","import { api, handleResponse, handleError } from './apiUtils';\nimport { LOGIN_URL, LOGIN_URL_NEW } from '../global/Constants/user';\n\nexport function auth() {\n return api.get(LOGIN_URL)\n .then(handleResponse)\n .catch(handleError);\n}\n\nexport function authLogin(params) {\n return api.post(LOGIN_URL_NEW, params)\n .then(handleResponse)\n .catch(handleError);\n}","import React from 'react'\nimport './GeneralButton.scss'\n\nconst GeneralButton = ({\n title,\n bgColor,\n disabled,\n className,\n textColor,\n onClick,\n ...props\n}) => {\n let classNames = ['general-btn']\n disabled && classNames.push('general-btn__disabled')\n className && classNames.push(className)\n return (\n \n \n {title}\n \n \n )\n}\n\nexport default GeneralButton\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Alert from '@material-ui/lab/Alert';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: '100%',\n '& > * + *': {\n marginTop: theme.spacing(2),\n },\n },\n}));\n\nexport default function SimpleAlert({severity, errorMessage}) {\n const classes = useStyles();\n\n return (\n
\n \n {errorMessage}\n \n
\n );\n}","import React from 'react'\nimport SimpleAlert from '../Alert/SimpleAlert'\n\nconst LoadingComponent = ({ errorMessage }) => {\n return (\n <>\n {errorMessage && (\n \n )}\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n
\n \n )\n}\n\nexport default LoadingComponent\n","import React from 'react'\nimport { currency_symbol } from './../../../../constants.json'\n\nconst SelectFormOption = ({ item, onSelect, isChecked }) => {\n return (\n
onSelect(item)}>\n
\n
\n
\n

{item.Name}

\n

\n {item.Price === 0\n ? 'Бесплатно'\n : `${item.Price} ${currency_symbol}`}\n

\n
\n
\n

{item.TimeMin}

\n

мин

\n
\n
\n \n )\n}\n\nexport default SelectFormOption\n","import PropTypes from 'prop-types'\nimport React from 'react'\nimport LoadingComponent from '../LoadingComponent/LoadingComponent'\nimport SelectServiceOption from './SelectServiceOption'\nimport './selectService.scss'\nimport { useSelector } from 'react-redux'\n\nconst SelectService = ({\n onSelect,\n categories,\n services,\n selectedOptions,\n addSpecialities\n}) => {\n const selectedSpeciality = useSelector((s) => s.doctorTabsReducer.doctorTab)\n const selectedSpecialityId = useSelector((s) => s.doctorTabsReducer.IdSpeciality)\n\n if (categories.length === 0) return \n else {\n return categories.map((category) => {\n let filteredServices = []\n filteredServices = services.sort((a, b) => {\n if (a.Name > b.Name) {\n return 1\n }\n if (a.Name < b.Name) {\n return -1\n }\n return 0\n }).filter(speciality => {\n if (!selectedSpecialityId) {\n const IsVisibleOnSIte = addSpecialities.find(addSpeciality => addSpeciality.Id === speciality.SpecialityId)?.IsVisibleOnSIte\n if (IsVisibleOnSIte) {\n return IsVisibleOnSIte\n } else {\n return false\n }\n } else {\n return speciality.SpecialityId === selectedSpecialityId\n }\n })\n let totalCount = 0\n for (let some of selectedOptions) {\n if (filteredServices.some((el) => el.Id === some.Id)) {\n totalCount++\n }\n }\n return (\n <>\n

\n Все услуги врача ({totalCount})\n

\n {selectedSpecialityId ? (\n
\n

{selectedSpeciality}

\n {filteredServices.filter(serv => serv.SpecialityId === selectedSpecialityId).map((el, idx) => (\n it.Id === el.Id)}\n />\n ))}\n
\n ) : (\n addSpecialities.map(addSpecialy => \n
\n

{addSpecialy.Name}

\n {filteredServices.filter(serv => serv.SpecialityId === addSpecialy.Id).map((el, idx) => (\n it.Id === el.Id)}\n />\n ))}\n
\n )\n )}\n\n \n )\n })\n }\n}\n\nSelectService.propTypes = {\n categories: PropTypes.array.isRequired,\n services: PropTypes.array.isRequired,\n}\n\nexport default SelectService\n","import { BASE_URL } from './Constants';\n\nexport const GET_SERVICE_LIST = `${BASE_URL}v2/api/Common/GetServices?visibleOnSite=true`;\nexport const GET_SERVICES_BY_DOCTOR = `${BASE_URL}api/Appointment/GetVisibleServicesByDoctors`;","import * as types from './actionTypes'\nimport * as serviceApi from '../../api/serviceApi'\n\nexport function loadServicesSuccess(services) {\n return { type: types.LOAD_SERVICES_SUCCESS, services }\n}\n\nexport function loadServicesByDoctorSuccess(services) {\n return { type: types.LOAD_SERVICES_BY_DOCTOR_SUCCESS, services }\n}\n\nexport function loadServices() {\n return function (dispatch) {\n return serviceApi\n .getServices()\n .then((services) => {\n dispatch(loadServicesSuccess(services))\n })\n .catch((error) => {\n throw error\n })\n }\n}\n\nexport function loadServicesByDoctor(data) {\n return function (dispatch) {\n return serviceApi\n .getServicesByDoctor(data)\n .then((services) => {\n dispatch(loadServicesByDoctorSuccess(services))\n })\n .catch((error) => {\n throw error\n })\n }\n}\n","import { api,handleResponse, handleError} from './apiUtils';\nimport { GET_SERVICE_LIST, GET_SERVICES_BY_DOCTOR } from '../global/Constants/service';\n\nexport function getServices(){\n return api.get(GET_SERVICE_LIST)\n .then(handleResponse)\n .catch(handleError);\n}\n\nexport function getServicesByDoctor(data){\n return api.post(GET_SERVICES_BY_DOCTOR, data)\n .then(handleResponse)\n .catch(handleError);\n}\n\n","import PropTypes from 'prop-types'\nimport React from 'react'\nimport { connect } from 'react-redux'\nimport GeneralButton from '../../../components/kit/GeneralButton/GeneralButton'\nimport SelectService from './SelectService/SelectService.jsx'\nimport * as serviceActions from '../../../redux/actions/serviceActions'\nimport SimpleAlert from './Alert/SimpleAlert'\nimport LoadingComponent from './LoadingComponent/LoadingComponent'\nclass ChooseMedService extends React.Component {\n constructor(props) {\n super(props)\n this.state = {\n errorMessage: '',\n isLoading: true,\n }\n }\n\n componentDidMount() {\n let data = {\n DateFrom: this.props.startDateTime,\n DateTo: this.props.endDateTime,\n IdDoctor: this.props.doctorId,\n ByDoctor: true,\n }\n\n this.props\n .loadServicesByDoctor(data)\n .then((services) => {\n this.setState({ isLoading: false })\n this.setState({ errorMessage: '' })\n })\n .catch((error) => {\n this.setState({\n errorMessage: 'Ошибка загрузки услуг по врачу: ' + error,\n })\n })\n }\n\n componentWillReceiveProps(props) {\n this.setState({ errorMessage: props.errorMessage })\n }\n\n onSelectServiceVariant = (id) => {\n const services = this.props.selectedOptions\n if (services.includes(id)) {\n const index = services.indexOf(id)\n services.splice(index, 1)\n } else {\n services.push(id)\n }\n this.setState({ services })\n }\n\n render() {\n const disabled = this.props.selectedOptions < 1\n return (\n <>\n {this.state.isLoading ? (\n \n ) : (\n <>\n {this.state.errorMessage && (\n \n )}\n
\n
\n Выберите услугу\n
\n \n
\n \n \n
\n
\n \n )}\n \n )\n }\n}\n\nChooseMedService.propTypes = {\n services: PropTypes.array,\n loadServicesByDoctor: PropTypes.func.isRequired,\n}\n\n// eslint-disable-next-line\nArray.prototype.distinct = function (item) {\n var results = []\n for (var i = 0, l = this.length; i < l; i++)\n if (!item) {\n if (results.indexOf(this[i]) === -1) results.push(this[i])\n } else {\n if (results.indexOf(this[i][item]) === -1) results.push(this[i][item])\n }\n return results\n}\n\nfunction mapStateToProps(state) {\n return {\n //categories: state.services.distinct('SpecialityName'),\n services: state.services.slice(0, 100),\n }\n}\n\nfunction mapDispatchToProps(dispatch) {\n return {\n loadServicesByDoctor: (service) =>\n dispatch(serviceActions.loadServicesByDoctor(service)),\n }\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ChooseMedService)\n","import React from 'react'\n\nconst SearchIcon = ({ width, height, className }) => {\n return (\n \n \n \n )\n}\n\nexport default SearchIcon\n","import React from 'react'\nimport { logoUrl, logoBG } from '../../../constants.json'\nimport {logoWidth} from '../../../constants.json'\nconst Logotype = ({ height, className }) => {\n return (\n \n \n \n )\n}\n\nexport default Logotype\n","import { BASE_URL } from './Constants';\n\nexport const GET_SPECIALITY_LIST = `${BASE_URL}api/Partner/GetSpecialties`;","import * as types from './actionTypes'\nimport * as specialityApi from '../../api/specialityApi'\n\nexport function loadSpecialitiesSuccess(specialities) {\n return { type: types.LOAD_SPECIALITIES_SUCCESS, specialities }\n}\n\nexport function loadSpecialities() {\n return function (dispatch) {\n return specialityApi\n .getSpecialities()\n .then((specialities) => {\n dispatch(loadSpecialitiesSuccess(specialities))\n })\n .catch((error) => {\n throw error\n })\n }\n}\n","import {api, handleResponse, handleError} from './apiUtils';\nimport { GET_SPECIALITY_LIST } from '../global/Constants/speciality';\n\nexport function getSpecialities(){\n return api.get(GET_SPECIALITY_LIST)\n .then(handleResponse)\n .catch(handleError);\n}","import * as types from './actionTypes'\n\nexport function setDoctorTabs(doctorTab) {\n return { type: types.DOCTOR_TABS, doctorTab }\n}\n","import React, { useState } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { Link } from 'react-router-dom'\nimport { setDoctorTabs } from '../redux/actions/doctorTabsAction'\nimport _ from 'lodash'\nimport { useHorizontalScroll } from '../global/hooks/useHorizontalScroll'\nimport './Doctortab.scss'\n\nconst quantity = window.innerWidth > 576 ? 8 : 9\n\nconst DoctorTab = ({ doctors, specialities }) => {\n const dispatch = useDispatch()\n\tconst [itemsToShow, setItemsToShow] = useState(quantity);\n\n setTimeout(() => {\n const urlParams = new URLSearchParams(window.location.search)\n const urlSpecialityId = parseInt(\n urlParams.get('specialityId') &&\n urlParams.get('specialityId').replace(/\"/g, '')\n )\n const urlSpeciality = specialities.find((speciality) => {\n return speciality.Id === urlSpecialityId\n })\n urlSpeciality && dispatch(setDoctorTabs(urlSpeciality.Name))\n }, 400)\n\n const setDoctorTabHandler = (e) => {\n dispatch(setDoctorTabs({\n\t\tdoctorTab: e.target.value,\n\t\tIdSpeciality: +e.currentTarget.id\n\t}))\n }\n\n const doctorTab = useSelector((s) => s.doctorTabsReducer.doctorTab).toLowerCase()\n\tconst filtredSpecialities = doctors\n\t\t.reduce((acc, cur) => {\n\t\t\treturn [...acc, ...cur.AddSpecialities]\n\t\t}, [])\n\t\t.map(speciality => ({SpecialityName: speciality.Name, IdSpeciality: speciality.Id, IsVisibleOnSIte: speciality.IsVisibleOnSIte}))\n\t\t.filter((obj, index, arr) => arr.findIndex(item => item.IdSpeciality === obj.IdSpeciality) === index && obj.IsVisibleOnSIte);\n\n\t\tconst onShowItems = () => {\n\t\t\tif (itemsToShow === quantity) {\n\t\t\t\tsetItemsToShow(filtredSpecialities.length)\n\t\t\t} else {\n\t\t\t\tsetItemsToShow(quantity)\n\t\t\t}\n\t\t}\n\n return (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tВсе\n\t\t\t\t\t\t\n\t\t\t\t\t{filtredSpecialities.sort((prev, cur) => prev.SpecialityName.localeCompare(cur.SpecialityName)).slice(0, itemsToShow).map((doctor, idx) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{doctor.SpecialityName}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t)\n\t\t\t\t\t})}\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t{itemsToShow === quantity ? 'Показать ещё' : 'Скрыть'} \n\t\t\t\t\t
\n\t\t\t\n\t)\n}\n\nexport default DoctorTab\n","import PropTypes from 'prop-types'\nimport React, { useEffect } from 'react'\nimport { useSelector } from 'react-redux'\n\nconst DoctorList = ({ doctors, onSelectMaster, inputSearch }) => {\n useEffect(() => {\n const urlParams = new URLSearchParams(window.location.search)\n const urlDoctorId = parseInt(\n urlParams.get('doctorId') && urlParams.get('doctorId').replace(/\"/g, '')\n )\n const urlDoctor = doctors.find((doctor) => {\n return doctor.Id === urlDoctorId\n })\n if (urlDoctor) {\n onSelectMaster(urlDoctor.Name, urlDoctor.Id, urlDoctor.DefaultTime, [\n {\n id: urlDoctor.Id,\n name: urlDoctor.SpecialityName,\n },\n ], urlDoctor.Photo, urlDoctor.IdSpeciality)\n }\n }, [doctors, onSelectMaster])\n const selectedSpeciality = useSelector((s) => s.doctorTabsReducer.doctorTab)\n const selectedSpecialityId = useSelector((s) => s.doctorTabsReducer.IdSpeciality)\n\n return doctors\n .filter((doctor) => doctor.Name.toLowerCase().includes(inputSearch))\n .sort((a, b) => {\n if (a.Name > b.Name) {\n return 1\n }\n if (a.Name < b.Name) {\n return -1\n }\n return 0\n })\n .map((doctor) => {\n const date = new Date(doctor.NearestFreeTime)\n const options = {\n month: 'long',\n day: 'numeric',\n weekday: 'long',\n hour: 'numeric',\n minute: 'numeric',\n }\n let specialities = doctors.find(\n (doc) => doc.Id === doctor.Id\n ).specialities\n if (\n selectedSpeciality === 'все' ||\n doctor.AddSpecialities.some(el => el.Id === selectedSpecialityId)\n ) {\n return (\n \n onSelectMaster(\n doctor.Name,\n doctor.Id,\n doctor.DefaultTime,\n specialities,\n doctor.Photo,\n doctor.IdSpeciality,\n doctor.AddSpecialities\n )\n }\n >\n
\n {doctor.Photo ? (\n
\n \n
\n ) : (\n
\n {doctor.Name.charAt().toUpperCase()}\n
\n )}\n
\n
\n {doctor.Name.toLowerCase()}\n
\n

\n {selectedSpeciality === 'все' ? doctor.AddSpecialities.filter((obj) => obj.IsVisibleOnSIte).map(AddSpeciality => AddSpeciality.Name).join(', ') : selectedSpeciality}\n {/* {selectedSpeciality === 'все' ? doctor.AddSpecialities.map(AddSpeciality => AddSpeciality.Name).join(', ') : selectedSpeciality} */}\n

\n {doctor.NearestFreeTime ? (\n
\n

\n Ближ. прием {`${date.toLocaleDateString('ru', options)}`}\n

\n
\n ) : (\n
\n

\n Ближ. прием {`${date.toLocaleDateString('ru', options)}`}\n

\n
\n )}\n
\n
\n \n )\n } else {\n return ''\n }\n })\n}\n\nDoctorList.propTypes = {\n doctors: PropTypes.array,\n}\n\nexport default DoctorList\n","import PropTypes from \"prop-types\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport SearchIcon from \"../../../components/kit/Icons/SearchIcon\";\nimport Logotype from \"../../../components/kit/Logo/Logotype\";\nimport * as doctorActions from \"../../../redux/actions/doctorActions\";\nimport * as specialityActions from \"../../../redux/actions/specialityActions\";\nimport DoctorTab from \"../../DoctorTab\";\nimport DoctorList from \"../doctors/DoctorList\";\nimport SimpleAlert from \"./Alert/SimpleAlert\";\nimport LoadingComponent from \"./LoadingComponent/LoadingComponent\";\nimport GeneralButton from '../../../components/kit/GeneralButton/GeneralButton'\nimport { Link } from \"react-router-dom\";\n\n\nclass ChooseMaster extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n errorMessage: \"\",\n inputSearch: \"\",\n };\n }\n\n state = {\n isLoading: true,\n };\n\n componentDidMount() {\n this.props\n .loadSpecialities()\n .then(() => {\n this.setState({ isLoading: false });\n this.setState({ errorMessage: \"\" });\n })\n .catch((error) => {\n this.setState({\n errorMessage: \"Ошибка загрузки специальностей: \" + error,\n });\n });\n\n this.props\n .loadDoctors()\n .then(() => {\n this.setState({ isLoading: false });\n this.setState({ errorMessage: \"\" });\n })\n .catch((error) => {\n this.setState({ errorMessage: \"Ошибка загрузки врачей: \" + error });\n });\n }\n\n componentWillReceiveProps(props) {\n this.setState({ errorMessage: props.errorMessage });\n }\n\n render() {\n return (\n <>\n {this.state.errorMessage && (\n \n )}\n
\n \n \n \n {this.state.isLoading ? (\n \n ) : (\n \n )}\n
\n \n );\n }\n}\n\nChooseMaster.propTypes = {\n specialities: PropTypes.array.isRequired,\n doctors: PropTypes.array.isRequired,\n loadSpecialities: PropTypes.func.isRequired,\n loadDoctors: PropTypes.func.isRequired,\n};\n\nfunction mapStateToProps(state) {\n return {\n specialities: state.specialities.map((speciality) => {\n return {\n ...speciality,\n doctors: state.doctors.filter((doctor) => {\n // let allSpecialities = [''].concat(\n // doctor.AddSpecialities\n // );\n return doctor.AddSpecialities.find((el) => el.Id === speciality.Id);\n }),\n };\n }),\n doctors: state.doctors.filter(doctor => doctor.AddSpecialities.length).map((doctor) => {\n return {\n ...doctor,\n Name: doctor.Name.replace(/\\([^)]*\\)/g, '').trim(),\n specialities: state.specialities.filter(\n (speciality) => speciality.Id === doctor.IdSpeciality\n ),\n };\n }),\n };\n}\n\nfunction mapDispatchToProps(dispatch) {\n return {\n loadSpecialities: (speciality) =>\n dispatch(specialityActions.loadSpecialities()),\n loadDoctors: (doctor) => dispatch(doctorActions.loadDoctors()),\n };\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ChooseMaster);\n","import FormControl from '@material-ui/core/FormControl'\nimport TextField from '@material-ui/core/TextField'\nimport React from 'react'\n\nconst InputForm = ({ propertyName, onChange, className, label, ...props }) => {\n return (\n \n \n \n )\n}\n\nexport default InputForm\n","const Colors = {\n ACCENT: {\n main: \"#ACC3FF\",\n secondary: \"#668FF9\",\n },\n NEUTRAL: {\n main: \"#000\",\n secondary: \"#9F9FC9\",\n white: \"#fff\",\n grey: \"#A5A4A8\",\n mint: \"#47CCBC\",\n lightMint: \"#DBF8F3\",\n green: \"#25DB83\",\n lightGreen: \"#CFF4E2\",\n darkGreen: \"#304858\",\n darkBlue: \"#304858\",\n },\n ICON: {\n main: \"#ed1a34\",\n secondary: \"#d26d79\",\n },\n};\n\nexport default Colors;\n","import React, { useState } from \"react\";\nimport Input from \"@material-ui/core/Input\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport InputMask from \"react-input-mask\";\nimport FormControl from \"@material-ui/core/FormControl\";\nimport Colors from \"../../../global/styles/Colors\";\nimport { phoneMask } from \"../../../constants.json\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n border: \"1px solid #b6b5b5\", // TODO need to make color like figma\n borderRadius: \"6px\",\n color: Colors.NEUTRAL[\"black\"],\n padding: \"11px 16px\",\n position: \"relative\",\n },\n placeHolder: {\n position: \"absolute\",\n top: \"18px\",\n left: \"16px\",\n color: Colors.NEUTRAL[\"black\"],\n },\n}));\n\nfunction TextMaskCustom(props) {\n const { inputRef, ...other } = props;\n return (\n {\n inputRef(ref ? ref.inputElement : null);\n }}\n />\n );\n}\n\nconst InputPhoneMask = ({ value, propertyName, onChange, className, onKeyDown}) => {\n const [isActive, setValue] = useState(true);\n const classes = useStyles();\n\n return (\n \n setValue((prevValue) => !prevValue)}\n onBlur={() => setValue((prevValue) => !prevValue)}\n inputComponent={TextMaskCustom}\n placeholder={\"Номер телефона\"}\n disableUnderline\n onKeyDown={onKeyDown}\n />\n \n );\n};\n\nexport default InputPhoneMask;\n","import React from 'react'\nimport { makeStyles } from '@material-ui/core/styles'\nimport Colors from '../../../global/styles/Colors'\nimport Select from '@material-ui/core/Select'\nimport InputLabel from '@material-ui/core/InputLabel'\nimport FormControl from '@material-ui/core/FormControl'\nimport './index.scss'\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n border: `1px solid ${Colors.NEUTRAL['border']}`,\n borderRadius: '6px',\n color: Colors.NEUTRAL['black'],\n },\n}))\n\nconst SelectInput = ({\n id,\n name,\n onChange,\n className,\n label,\n value,\n inputProps,\n children,\n}) => {\n const classes = useStyles()\n return (\n <>\n \n \n {label}\n \n \n {children}\n \n \n \n )\n}\n\nexport default SelectInput\n","export const checkEmptyField = (value) => {\n return value && value.replace(/^\\s+|\\s+$/g, '') !== ''\n};","import MenuItem from '@material-ui/core/MenuItem'\nimport React from 'react'\nimport GeneralButton from '../../../../components/kit/GeneralButton/GeneralButton'\nimport InputForm from '../../../../components/kit/InputForm/InputForm'\nimport InputPhoneMask from '../../../../components/kit/InputPhoneMask/InputPhoneMask'\nimport SelectInput from '../../../../components/kit/SelectInput/SelectInput'\nimport { checkEmptyField } from '../../../../global/Helpers/checkEmptyField'\nimport { showGenderInput } from './../../../../constants.json'\nimport '../index.scss'\n\nconst ClientForm = ({\n handleClickNext,\n name,\n lastname,\n gender,\n phone,\n inputChangeHandler,\n handleClickPrev,\n}) => {\n const disabled =\n !checkEmptyField(name) ||\n !checkEmptyField(lastname) ||\n gender === -1 ||\n !checkEmptyField(phone)\n return (\n
\n
Ваши контакты
\n
\n \n \n {showGenderInput && (\n \n Не выбран\n Мужской\n Женский\n \n )}\n\n \n \n
\n \n \n
\n
\n )\n}\n\nexport default ClientForm\n","import { BASE_URL } from './Constants';\n\nexport const GET_RESULTS_By_CodeWord_AsPdf = `${BASE_URL}api/Appointment/GetResultsByCodeWordAsPdf`;","import * as types from './actionTypes'\n\nexport function setIsLoad(isLoad) {\n return { type: types.LOAD_TRUE, isLoad }\n}\n","import { GET_RESULTS_By_CodeWord_AsPdf } from \"../global/Constants/results\";\nimport axios from \"axios\";\nimport withReactContent from \"sweetalert2-react-content\";\nimport Swal from \"sweetalert2\";\nimport { setIsLoad } from \"../redux/actions/isLoad\";\n\nconst MySwal = withReactContent(Swal);\n\nexport const GetResultsByCodeWordAsPdf = (codeword) => async dispatch => {\n dispatch(setIsLoad(true))\n axios({\n method: \"GET\",\n responseType: \"blob\",\n headers: {\n Session_Id: localStorage.getItem(\"Session_Id\"),\n \"Content-Type\": \"application/x-www-form-urlencoded; charset=UTF-8\",\n },\n url: `${GET_RESULTS_By_CodeWord_AsPdf}?codeword=${codeword}`,\n })\n .then((response) => {\n //Create a Blob from the PDF Stream\n const file = new Blob([response.data], { type: \"application/pdf\" });\n // Check if it's Safari\n const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n\n if (isSafari) {\n // For Safari, try to open the PDF in a new tab\n const fileURL = URL.createObjectURL(file);\n window.open(fileURL, '_blank');\n } else {\n // For other browsers, open the PDF in the current window\n const fileURL = URL.createObjectURL(file);\n window.open(fileURL);\n }\n })\n .catch((error) => {\n MySwal.fire({\n title: 'Результат не найден',\n icon: \"error\",\n showConfirmButton: false,\n timer: 2000,\n });\n })\n .finally(() => {\n dispatch(setIsLoad(false))\n })\n \n}\n\n// export function GetResultsByCodeWordAsPdf(codeword, setIsLoading) {\n// }\n","import React, { useState } from \"react\";\nimport GeneralButton from \"../../../../components/kit/GeneralButton/GeneralButton\";\nimport InputForm from \"../../../../components/kit/InputForm/InputForm\";\nimport { checkEmptyField } from \"../../../../global/Helpers/checkEmptyField\";\nimport Logotype from \"../../../../components/kit/Logo/Logotype\";\nimport \"../index.scss\";\nimport { GetResultsByCodeWordAsPdf } from \"../../../../api/results\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { Helmet } from \"react-helmet\";\n\nconst GetResultForm = ({ handleClickNext, inputChangeHandler }) => {\n const [codeword, setCodeword] = useState(\"\");\n const isLoad = useSelector((s) => s.isLoad);\n\n const dispatch = useDispatch()\n\n const disabled = !checkEmptyField(codeword) || isLoad;\n\n const download = () => {\n dispatch(GetResultsByCodeWordAsPdf(codeword))\n }\n\n const onEnterPress = (e) => {\n if (e.key === 'Enter') {\n download()\n }\n }\n\n return (\n <>\n \n Получение результатов\n \n
\n \n
Результаты
\n *Кодовое слово должно состоит из букв и цифр латинского алфавита. Кодовое слово расположено на бланке заказа. Например: GR759YR.\n
\n setCodeword(e.target.value)}\n value={codeword}\n propertyName=\"codeword\"\n onKeyDown={onEnterPress}\n label=\"Кодовое слово\"\n />\n
\n
\n {window.location.href=\"https://vedanta.kg/\"}}\n />\n \n
\n
\n \n );\n};\n\nexport default GetResultForm;\n","import Backdrop from \"@material-ui/core/Backdrop\";\nimport Fade from \"@material-ui/core/Fade\";\nimport Modal from \"@material-ui/core/Modal\";\nimport React from \"react\";\nimport Logotype from \"../../../../components/kit/Logo/Logotype\";\nimport \"../index.scss\";\n\nconst OnlineRecordModal = ({ isOpenModal, onClose }) => {\n return (\n \n \n
\n \n

\n Запись на прием успешно проведена!\n

\n

\n Не забудьте взять паспорт и маску\n

\n \n
\n
\n \n );\n};\n\nexport default OnlineRecordModal;\n","import React from 'react'\n\nconst CalendarIcon = ({ mainColor, secColor, className }) => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default CalendarIcon\n","import React from 'react'\n\nconst ClockIcon = ({ mainColor, secColor, className, width, height }) => {\n return (\n \n \n \n \n )\n}\n\nexport default ClockIcon\n","import React from \"react\";\n\nconst WalletIcon = ({ mainColor, secColor, className }) => {\n return (\n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default WalletIcon;\n","import moment from 'moment'\nimport 'moment/locale/ru'\nimport React from 'react'\nimport GeneralButton from '../../../../components/kit/GeneralButton/GeneralButton'\nimport CalendarIcon from '../../../../components/kit/Icons/CalendarIcon.jsx'\nimport ClockIcon from '../../../../components/kit/Icons/ClockIcon.jsx'\nimport WalletIcon from '../../../../components/kit/Icons/WalletIcon.jsx'\nimport Colors from '../../../../global/styles/Colors'\nimport '../index.scss'\nimport SelectFormOption from '../SelectService/SelectServiceOption'\nimport { currency_symbol } from './../../../../constants.json'\nconst Payment = ({\n selectedOptions,\n selectedTime,\n onSubmit,\n master,\n selectedDate,\n handleClickPrev,\n doctorSpecialities,\n masterPhoto,\n}) => {\n let date = moment(selectedDate)\n date.locale('ru')\n let totalSum = 0\n selectedOptions.forEach((el) => (totalSum += el.Price))\n return (\n
\n
Подтвердите запись
\n {master && (\n
\n\n {masterPhoto ? (\n
\n \n
\n\n ) : (\n
\n {master.charAt().toUpperCase()}\n
\n )}\n\n
\n
\n {master.toLowerCase()}\n
\n

\n {doctorSpecialities[0].Name}\n

\n
\n
\n )}\n
\n
\n \n
\n

Дата

\n

{date.format('D MMMM YYYY') || ''} г.

\n
\n
\n
\n \n
\n

Время

\n

{selectedTime || ''}

\n
\n
\n
\n
\n {selectedOptions &&\n selectedOptions.map((el, ndx) => (\n null}\n />\n ))}\n
\n
\n \n {totalSum !== 0 ? (\n <>\n

Итого к оплате:

\n

\n {totalSum} {currency_symbol}\n

\n \n ) : (\n

Приём бесплатный

\n )}\n
\n
\n \n \n
\n
\n )\n}\n\nexport default Payment\n","const MONTH = {\n 1: 'Январь',\n 2: 'Февраль',\n 3: 'Март',\n 4: 'Апрель',\n 5: 'Май',\n 6: 'Июнь',\n 7: 'Июль',\n 8: 'Август',\n 9: 'Сентябрь',\n 10: 'Октябрь',\n 11: 'Ноябрь',\n 12: 'Декабрь',\n};\n\nexport const showMonthName = (number) => {\n return MONTH[number + 1]\n};","import React from 'react'\n\nconst ArrowIcon = () => {\n return (\n \n \n \n )\n}\n\nexport default ArrowIcon\n","import 'moment/locale/ru'\nimport React from 'react'\nimport 'react-calendar/dist/Calendar.css'\nimport ArrowIcon from '../Icons/ArrowIcon'\nimport './index.scss'\n\nconst PrevButton = ({ selectedDate, calendarHandlePrevClick }) => {\n const month = selectedDate.getMonth()\n const currentMonth = new Date().getMonth()\n return month !== currentMonth ? (\n \n \n \n ) : (\n ''\n )\n}\n\nexport default PrevButton\n","import ru from 'date-fns/locale/ru'\nimport React from 'react'\nimport Calendar from 'react-calendar'\nimport 'react-calendar/dist/Calendar.css'\nimport { registerLocale } from 'react-datepicker'\nimport { showMonthName } from '../../../global/Helpers/showMonthForDatePicker'\nimport ArrowIcon from '../Icons/ArrowIcon'\nimport './index.scss'\nimport PrevButton from './PrevButton'\nimport { AddedDaysCount, isNextDay } from './../../../constants.json'\n\nregisterLocale('ru', ru)\nconst ServiceDatePicker = ({\n onChange,\n selectedDate,\n calendarHandleNextClick,\n calendarHandlePrevClick,\n busyDays,\n}) => {\n const month = selectedDate.getMonth()\n const year = selectedDate.getFullYear()\n const today = new Date()\n let disabledDates = []\n if (busyDays) {\n busyDays.forEach((day) => {\n disabledDates.push(new Date(year, month, day))\n })\n }\n function addDays(date, days) {\n let result = new Date(date)\n result.setDate(result.getDate() + days)\n return result\n }\n function ValidationCalendarMonth(addDays) { \n return selectedDate.getMonth() + 1 === addDays.getMonth() + 3 ? true : false\n }\n return (\n
\n
\n
\n \n
\n

{`${showMonthName(month)}, ${year}`}

\n
\n {AddedDaysCount &&\n !ValidationCalendarMonth(addDays(today, Number(AddedDaysCount))) ? (\n \n \n \n ) : (\n ''\n )}\n
\n
\n \n view === 'month' && // Block day tiles only\n disabledDates.some(\n (disabledDate) =>\n date.getFullYear() === disabledDate.getFullYear() &&\n date.getMonth() === disabledDate.getMonth() &&\n date.getDate() === disabledDate.getDate()\n )\n }\n />\n
\n )\n}\n\nexport default ServiceDatePicker\n","import React from 'react'\nimport Colors from '../../../global/styles/Colors'\nimport './index.scss'\n\nconst TimeButton = ({ time, disabled, selected, onClick, isBusy }) => {\n const textColor = selected ? Colors.NEUTRAL.green : Colors.NEUTRAL.darkBlue\n const bgColor = selected ? Colors.NEUTRAL.lightGreen : Colors.NEUTRAL.white\n\n if (isBusy) {\n return (\n \n \n {time}\n \n \n )\n } else {\n return (\n onClick(time)}\n style={{ backgroundColor: bgColor }}\n >\n \n {time}\n \n \n )\n }\n}\n\nexport default TimeButton\n","import React from 'react'\nimport './index.scss'\nimport TimeButton from './TimeButton'\n\nconst ChooseTime = ({\n selectedTime,\n onSelectTime,\n times,\n isBusy,\n isCutSpeciatity,\n}) => {\n return (\n <>\n
Выберите время
\n
\n {isCutSpeciatity !== undefined\n ? times\n .filter(\n (el) =>\n isCutSpeciatity.StartTime >= el &&\n el <= isCutSpeciatity.EndTime\n )\n .map((item, ndx) => (\n \n ))\n : times.map((item, ndx) => (\n \n ))}\n
\n \n )\n}\n\nexport default ChooseTime\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport './home-page-btn.scss'\n\nconst HomePageBtn = ({onClick}) => {\n return (\n Назад\n );\n};\n\nexport default HomePageBtn;","import React from 'react'\nimport GeneralButton from '../../../../components/kit/GeneralButton/GeneralButton'\nimport ServiceDatePicker from '../../../../components/kit/ServiceDatePicker/ServiceDatePicker'\nimport ChooseTime from '../../../../components/kit/TimeButton/ChooseTime'\nimport { checkEmptyField } from '../../../../global/Helpers/checkEmptyField'\nimport '../index.scss'\nimport LoadingComponent from '../LoadingComponent/LoadingComponent'\nimport HomePageBtn from '../../../../components/kit/HomePageBtn/HomePageBtn'\nimport { CutIdSpecialityTime } from './../../../../constants.json'\n\n\nconst SelectDate = ({\n selectedTime,\n onSelectTime,\n handleClickNext,\n onSelectDate,\n selectedDate,\n calendarHandleNextClick,\n calendarHandlePrevClick,\n times,\n timesBtnsLoading,\n busyDays,\n doctorSpecialities,\n handleClickPrev,\n selectedSpecialityId,\n}) => {\n let isCutSpeciatity = CutIdSpecialityTime.find((el) => {\n return el.id === selectedSpecialityId\n })\n const disabled = !checkEmptyField(selectedTime)\n setTimeout(() => {\n document.addEventListener('click', (e) => {\n e.target.classList.add('active')\n })\n }, 1)\n return (\n
\n
\n {!busyDays ? (\n \n ) : (\n <>\n
Выберите дату
\n \n \n )}\n
\n \n \n
\n
\n \n \n
\n \n )\n}\n\nexport default SelectDate\n","import PropTypes from \"prop-types\";\nimport React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport \"../../../assets/Montserrat/stylesheet.css\";\nimport SelectedDoctor from \"../../../components/kit/SelectedDoctor/SelectedDoctor\";\nimport { currentDate } from \"../../../global/Constants/Constants\";\nimport * as appointmentActions from \"../../../redux/actions/appointmentActions\";\nimport * as doctorActions from \"../../../redux/actions/doctorActions\";\nimport * as userActions from \"../../../redux/actions/userActions\";\nimport ChooseMedService from \"../OnlineRecord/ChooseMedService\";\nimport SimpleAlert from \"./Alert/SimpleAlert\";\nimport ChooseMaster from \"./ChooseMaster\";\n//import { api, handleResponse, handleError } from './../../../api/apiUtils';\nimport ClientForm from \"./ClientForm/ClientForm.jsx\";\nimport GetResultForm from \"./getResultForm/GetResultForm\";\nimport \"./index.scss\";\nimport LoadingComponent from \"./LoadingComponent/LoadingComponent\";\nimport OnlineRecordModal from \"./OnlineRecordModal/OnlineRecordModal\";\nimport Payment from \"./Payment/Payment\";\nimport SelectDate from \"./SelectDate/SelectDate\";\nimport { showGenderInput } from \"./../../../constants.json\";\nimport Swal from \"sweetalert2\";\nimport withReactContent from \"sweetalert2-react-content\";\nimport { da } from \"date-fns/locale\";\nimport { Helmet } from \"react-helmet\";\n\nconst MySwal = withReactContent(Swal);\n\nclass OnlineRecord extends Component {\n state = {\n isLoading: true,\n page: 1,\n services: [],\n time: \"\",\n name: \"\",\n lastname: \"\",\n gender: showGenderInput ? -1 : 0,\n phone: \"\",\n doctype: -1,\n codeword: \"\",\n orderNumber: \"\",\n docnum: \"\",\n master: null,\n masterPhoto: \"\",\n selectedDate: currentDate,\n isOpenModal: false,\n doctorId: 0,\n selectedSpecialityId: null,\n };\n\n componentDidMount() {\n // this.props\n // .authWebApiUser()\n // .then((user) => {\n this.props\n .loadDoctors()\n .then(() => {\n this.setState({ doctors: this.props.doctors });\n this.setState({ isLoading: false });\n this.setState({ errorMessage: \"\" });\n })\n .catch((error) => {\n this.setState({ errorMessage: \"Ошибка загрузки врачей: \" + error });\n });\n // })\n // .catch((error) => {\n // this.setState({ errorMessage: \"Ошибка авторизации: \" + error });\n // });\n\n this.setState({ currentMonth: new Date().getMonth() + 1 });\n\n }\n\n onSelectService = (variant) => {\n this.setState({ page: variant });\n };\n\n inputChangeHandler = (e) => {\n this.setState({ [e.target.name]: e.target.value });\n };\n\n onSelectTime = (time) => {\n this.setState({ time });\n let duration = this.state.doctorTime * 60000;\n var timeArr = time.split(\":\");\n var minutes = +timeArr[0] * 60 + +timeArr[1];\n var date = new Date(this.state.selectedDate.toDateString());\n var startTime = date.getTime() + minutes * 60000;\n var endTime = startTime + duration;\n var startDateTime =\n new Date(startTime).toDateString(\"yyyy-MM-dd\") +\n \" \" +\n new Date(startTime).toLocaleTimeString();\n var endDateTime =\n new Date(endTime).toDateString(\"yyyy-MM-dd\") +\n \" \" +\n new Date(endTime).toLocaleTimeString();\n this.setState({ startDateTime });\n this.setState({ endDateTime });\n };\n\n onSelectMaster = (\n master,\n id,\n time,\n doctorSpecialities,\n masterPhoto,\n selectedSpecialityId,\n addSpecialities\n ) => {\n this.setState({ doctorId: id });\n this.setState({ master }, () => this.handleClickNext());\n this.setState({ doctorTime: time });\n this.setState({ doctorSpecialities });\n this.setState({ addSpecialities });\n this.setState({ services: [] });\n this.setState({ busyDays: null });\n this.setState({ freeTimes: [] });\n this.setState({ selectedDate: currentDate });\n this.setState({ masterPhoto: masterPhoto });\n this.setState({ selectedSpecialityId: selectedSpecialityId });\n };\n\n handleClickNext = () => {\n if (this.state.page === 1) {\n this.setState({ page: 2 });\n this.changeMonth();\n } else {\n this.setState({ page: this.state.page + 1 });\n }\n };\n\n handleClickPrev = () => {\n if (this.state.page === 2) {\n this.setState({ page: 1 });\n this.changeMonth();\n } else {\n this.setState({ page: this.state.page - 1 });\n }\n };\n\n toggleModal = () => {\n this.setState({ isOpenModal: !this.state.isOpenModal });\n if (this.state.isOpenModal) {\n // TODO remove it\n this.setState({\n page: 1,\n services: [],\n time: \"\",\n name: \"\",\n lastname: \"\",\n gender: -1,\n phone: \"\",\n doctype: -1,\n docnum: \"\",\n master: null,\n selectedDate: \"\",\n });\n }\n };\n\n onSelectDate = (date) => {\n this.setState({ isLoading: true });\n this.setState({ selectedDate: date });\n let selDate = new Date(date).toDateString(\"yyyy-MM-dd\");\n let data = {\n date: selDate,\n doctorId: this.state.doctorId,\n checkCurrentDate: true,\n };\n this.props\n .loadFreeAppointments(data)\n .then(() => {\n let freeTimes = [];\n this.props.appointments.forEach((element) => {\n if (element.Status === 1)\n freeTimes.push(getTimePart(new Date(element.StartTime)));\n });\n this.setState({ freeTimes });\n this.setState({ errorMessage: \"\" });\n this.setState({ isLoading: false });\n })\n .catch(() => {\n this.setState({\n errorMessage:\n \"Ошибка загрузки свободного времени: Пожалуйста перезагрузите страницу!\",\n });\n this.setState({ isLoading: false });\n });\n };\n\n calendarHandleNextClick = () => {\n const { selectedDate } = this.state;\n const selectedMonth = selectedDate.getMonth() + 1;\n this.setState({\n selectedDate: new Date(selectedDate.setMonth(selectedMonth)),\n });\n this.setState({ busyDays: null });\n this.setState({ freeTimes: [] });\n this.changeMonth();\n };\n\n calendarHandlePrevClick = () => {\n const { selectedDate } = this.state;\n const selectedMonth = selectedDate.getMonth() - 1;\n this.setState({\n selectedDate: new Date(selectedDate.setMonth(selectedMonth)),\n });\n this.setState({ busyDays: null });\n this.setState({ freeTimes: [] });\n this.changeMonth();\n };\n\n changeMonth = () => {\n const selectedDate = this.state.selectedDate;\n const selectedMonth = selectedDate.getMonth() + 1;\n if (this.state.currentMonth <= selectedMonth) {\n const year = selectedDate.getFullYear();\n let data = {\n month: selectedMonth,\n year: year,\n doctorId: this.state.doctorId,\n };\n this.props\n .loadBusyDays(data)\n .then(() => {\n this.setState({ busyDays: this.props.appointments });\n this.setState({ errorMessage: \"\" });\n })\n .catch((error) => {\n this.setState({\n errorMessage: \"Ошибка загрузки нерабочих и занятых дней: \" + error,\n });\n setTimeout(() => window.location.reload(), 3000);\n });\n }\n if (new Date().getMonth() + 1 !== this.state.selectedDate.getMonth() + 1) {\n Array.from(\n document.querySelectorAll(\".react-calendar__tile--active\")\n ).forEach((el) => {\n el.classList.add(\"bd-none\");\n });\n }\n };\n\n onSubmit = () => {\n let patient = {\n Name: this.state.name,\n SName: this.state.lastname,\n Sex: this.state.gender === 1,\n Phone: this.state.phone\n .replace(/[^\\d]/g, \"\")\n .split(\"\")\n .splice(1)\n .join(\"\"),\n };\n let appointmentData = {\n FromDateTime: this.state.startDateTime,\n ToDateTime: this.state.endDateTime,\n DoctorId: this.state.doctorId,\n Patient: patient,\n Services: this.state.services.map((a) => a.Id),\n };\n\n this.setState({ isLoading: true });\n this.props\n .createAppointment(appointmentData)\n .then(() => {\n this.toggleModal();\n this.setState({ isLoading: false });\n this.setState({ errorMessage: \"\" });\n })\n .catch(() => {\n this.setState({ isLoading: false });\n this.setState({ errorMessage: \"\" });\n MySwal.fire({\n icon: \"info\",\n title: \"Упс...\",\n text: \"Данное время уже занято, выберите другое удобное Вам время!\",\n showConfirmButton: true,\n confirmButtonText: \"Перейти в календарь\",\n confirmButtonColor: \"red\",\n }).then((result) => {\n if (result.isConfirmed) {\n this.setState({ page: 2 });\n this.onSelectDate(this.state.selectedDate);\n }\n });\n });\n };\n\n render() {\n const {\n page,\n isLoading,\n services,\n time,\n name,\n lastname,\n gender,\n orderNumber,\n codeword,\n phone,\n doctype,\n docnum,\n master,\n isOpenModal,\n selectedDate,\n } = this.state;\n\n return (\n \n \n Онлайн запись\n \n {isLoading ? (\n \n ) : (\n
\n {this.state.errorMessage && (\n \n )}\n {page === 1 && (\n \n )}\n {page === 2 && (\n
\n \n \n
\n )}\n {page === 3 && (\n
\n \n \n
\n )}\n {page === 4 && (\n \n )}\n {page === 5 && (\n \n )}\n {isOpenModal && (\n \n )}\n
\n )}\n
\n );\n }\n}\n\nOnlineRecord.propTypes = {\n appointments: PropTypes.array.isRequired,\n createAppointment: PropTypes.func.isRequired,\n loadFreeAppointments: PropTypes.func.isRequired,\n authWebApiUser: PropTypes.func.isRequired,\n user: PropTypes.object,\n freeTimes: PropTypes.object,\n doctors: PropTypes.array.isRequired,\n loadDoctors: PropTypes.func.isRequired,\n busyDays: PropTypes.array,\n loadBusyDays: PropTypes.func,\n};\n\nfunction mapStateToProps(state) {\n return {\n appointments: state.appointments,\n user: state.user,\n doctors: state.doctors,\n services: state.services,\n busyDays: state.busyDays,\n };\n}\n\nfunction mapDispatchToProps(dispatch) {\n return {\n createAppointment: (appointment) =>\n dispatch(appointmentActions.createAppointment(appointment)),\n loadFreeAppointments: (appointment) =>\n dispatch(appointmentActions.loadFreeAppointments(appointment)),\n authWebApiUser: (user) => dispatch(userActions.authWebApiUser(user)),\n loadDoctors: (doctor) => dispatch(doctorActions.loadDoctors()),\n loadBusyDays: (data) => dispatch(appointmentActions.loadBusyDays(data)),\n };\n}\n\nfunction getTimePart(date) {\n var h = (date.getHours() < 10 ? \"0\" : \"\") + date.getHours();\n var m = (date.getMinutes() < 10 ? \"0\" : \"\") + date.getMinutes();\n return h + \":\" + m;\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(OnlineRecord);\n","import axios from 'axios'\nimport React from 'react'\nimport { useState } from 'react'\nimport { BASE_URL } from '../../../global/Constants/Constants'\nimport { getPhotos, getNearestFreeTime } from '../../../constants.json'\nimport LoadingComponent from '../OnlineRecord/LoadingComponent/LoadingComponent'\nimport './SharePage.scss'\nimport _ from 'lodash'\nimport Swal from 'sweetalert2'\nimport withReactContent from 'sweetalert2-react-content'\n\nconst SharePage = () => {\n const [doctors, setDoctors] = useState([])\n\n const MySwal = withReactContent(Swal)\n\n function copyToClipboard(textToCopy) {\n if (navigator.clipboard && window.isSecureContext) {\n MySwal.fire({\n position: 'top-end',\n icon: 'success',\n title: 'Скопировано в буфер обмена',\n showConfirmButton: false,\n timer: 1000,\n })\n return navigator.clipboard.writeText(textToCopy)\n } else {\n let textArea = document.createElement('textarea')\n textArea.value = textToCopy\n textArea.style.position = 'fixed'\n textArea.style.left = '-999999px'\n textArea.style.top = '-999999px'\n document.body.appendChild(textArea)\n textArea.focus()\n textArea.select()\n return new Promise((res, rej) => {\n document.execCommand('copy') ? res() : rej()\n textArea.remove()\n MySwal.fire({\n position: 'top-end',\n icon: 'success',\n title: 'Скопировано в буфер обмена',\n showConfirmButton: false,\n timer: 1000,\n })\n })\n }\n }\n\n axios({\n method: 'GET',\n headers: {\n Session_Id: localStorage.getItem('Session_Id'),\n },\n url: `${BASE_URL}api/Doctor/GetVisibleDoctors`,\n params: {\n isShowInSchedule: true,\n isShowPhoto: getPhotos,\n isAddNearestFreeTime: getNearestFreeTime,\n visibleOnSite: true,\n },\n }).then(({ data }) => {\n setDoctors(data.Data)\n })\n\n const filtredSpecialities = _.uniqWith(\n doctors.reduce((acc, rec) => {\n return [\n ...acc,\n {\n SpecialityName: rec.SpecialityName,\n IdSpeciality: rec.IdSpeciality,\n },\n ]\n }, []),\n _.isEqual\n )\n\n return doctors.length > 0 ? (\n
\n
\n
\n Ссылки чтобы поделиться врачами (Нажмите чтобы скопировать)\n
\n\n {doctors.map((el, idx) => (\n
\n
\n {el.Name} - ({el.SpecialityName})\n
\n \n copyToClipboard(\n `${window.location.origin}/?doctorId=\"${el.Id}\"`\n )\n }\n >\n {`${window.location.origin}/?doctorId=\"${el.Id}\"`}\n
\n
\n ))}\n
\n
\n
\n Ссылки чтобы поделиться специальностями (Нажмите чтобы скопировать)\n
\n {filtredSpecialities.map((el, idx) => (\n
\n
{el.SpecialityName}
\n \n copyToClipboard(\n `${window.location.origin}/?specialityId=\"${el.IdSpeciality}\"`\n )\n }\n >{`${window.location.origin}/?specialityId=\"${el.IdSpeciality}\"`}
\n
\n ))}\n \n \n ) : (\n \n )\n}\n\nexport default SharePage\n","import React from 'react'\nimport { Helmet } from 'react-helmet'\nimport \"./NotFound.scss\";\n\nconst NotFound = () => {\n return (\n <>\n \n 404\n \n
\n \"NotFound\"\n

Извините, на странице возникла ошибка или такой страницы не существует

\n \n На главную\n \n
\n \n )\n}\n\nexport default NotFound","import { BASE_URL } from './Constants';\n\n// export const GET_TWO_FACTOR_AUTH = `${BASE_URL}api/TwoFactorAuth/SetClientInProcess`;\n// export const POST_TWO_FACTOR_AUTH = `${BASE_URL}api/TwoFactorAuth/ApproveClient`;\n\nexport const GET_TWO_FACTOR_AUTH = `${BASE_URL}v2/api/Patient/SetClientInProcess`;\nexport const POST_TWO_FACTOR_AUTH = `${BASE_URL}v2/api/Patient/AuthenticateClient`;\nexport const GET_PATIEN = `${BASE_URL}v2/api/Patient/GetPatient`;\nexport const GET_PATIENT_EMC_LIST_BY_TOKEN = `${BASE_URL}v2/api/Patient/GetPatientEmcListByToken`;\nexport const GET_PATIENT_EMC_PDF = `${BASE_URL}v2/api/Patient/GetPatientEmcAsBase64`;","import * as GetTwoFactorApi from '../../api/twoFactorAuthApi'\nimport withReactContent from \"sweetalert2-react-content\";\nimport Swal from \"sweetalert2\";\n\nconst MySwal = withReactContent(Swal);\n\nexport function loadGetTwoFactorAuth(phone, setIsLoad, setIsCode) {\n return function (dispatch) {\n dispatch(setIsLoad(true))\n return GetTwoFactorApi\n .GetTwoFactorAuth(phone)\n .then((data) => {\n setIsCode(true)\n })\n .catch((error) => {\n MySwal.fire({\n title: 'Пользователь не найден',\n icon: \"error\",\n showConfirmButton: false,\n timer: 2000,\n });\n throw error\n })\n .finally(() => {\n dispatch(setIsLoad(false))\n })\n }\n}\n\nexport function loadPostApproveClient(phone, setIsLoad, setIsCode, code, setCookie) {\n return function (dispatch) {\n dispatch(setIsLoad(true))\n\n return GetTwoFactorApi\n .PostApproveClient(phone, code)\n .then((data) => {\n setIsCode(true)\n const cokieParams = {\n token: data,\n phone\n }\n\n console.log(cokieParams)\n\n const expirationDate = new Date();\n expirationDate.setMonth(expirationDate.getMonth() + 1);\n\n setCookie('user', cokieParams, { path: '/', expires: expirationDate });\n })\n .catch((error) => {\n MySwal.fire({\n title: 'Код истёк или введённые данные неверны.',\n icon: \"error\",\n showConfirmButton: false,\n timer: 2000,\n });\n console.log(error)\n })\n .finally(() => {\n dispatch(setIsLoad(false))\n })\n }\n}\n","import {api, handleResponse, handleError} from './apiUtils';\nimport {GET_TWO_FACTOR_AUTH, POST_TWO_FACTOR_AUTH} from '../global/Constants/twoFactorAuth'\n\nexport function GetTwoFactorAuth(phonenumber){\n return api.get(`${GET_TWO_FACTOR_AUTH}?phoneNumber=${phonenumber}`)\n .then(handleResponse)\n .catch(handleError);\n}\n\nexport function PostApproveClient(phonenumber, code){\n const params = {\n PhoneNumber: phonenumber,\n code\n }\n return api.post(POST_TWO_FACTOR_AUTH, params)\n .then(handleResponse)\n .catch(handleError);\n}","import React, { useEffect, useState } from \"react\";\nimport { useHistory } from 'react-router-dom';\nimport { Helmet } from \"react-helmet\";\nimport Logotype from \"../../../components/kit/Logo/Logotype\";\nimport InputForm from \"../../../components/kit/InputForm/InputForm\";\nimport GeneralButton from \"../../../components/kit/GeneralButton/GeneralButton\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport InputPhoneMask from \"../../../components/kit/InputPhoneMask/InputPhoneMask\";\nimport { setIsLoad } from \"../../../redux/actions/isLoad\";\nimport { loadGetTwoFactorAuth, loadPostApproveClient } from \"../../../redux/actions/twoFactorAuthActions\";\nimport './Authorization.scss'\nimport reshot from '../../../assets/reshot.svg'\n\nimport { useCookies } from \"react-cookie\";\nimport { CLIENT_CAB } from \"../../../global/Constants/Constants\";\n\nconst Authorization = () => {\n const [phoneNumber, setPhoneNumber] = useState('');\n const [isCode, setIsCode] = useState(false)\n const [code, setCode] = useState(\"\");\n const isLoad = useSelector((s) => s.isLoad);\n\n const [cookies, setCookie] = useCookies(['user']);\n const history = useHistory();\n\n useEffect(() => {\n if (cookies.user) {\n history.push(CLIENT_CAB);\n }\n }, [cookies.user])\n\n const dispatch = useDispatch()\n\n const disabled = !phoneNumber || isLoad;\n const disabledСode = !code || isLoad;\n\n const getCode = () => {\n const phone = phoneNumber.replace(/\\D/g, '');\n \n dispatch(loadGetTwoFactorAuth(phone, setIsLoad, setIsCode));\n }\n const onEnterPress = (e) => {\n if (e.key === 'Enter') {\n\n if (!isCode) {\n getCode()\n\n } else {\n onAuthorization()\n }\n\n }\n }\n\n const onAuthorization = () => {\n const phone = phoneNumber.replace(/\\D/g, '')\n dispatch(loadPostApproveClient(phone, setIsLoad, setIsCode, code, setCookie));\n }\n\n return (\n <>\n \n Авторизация\n \n
\n \n
Авторизация
\n\n {!isCode ? (\n null\n ) : (\n На Ваш номер телефона был отправлен код подтверждения\n )}\n\n
\n {!isCode ? (\n {setPhoneNumber(e.target.value)}}\n />\n ) : (\n
\n setCode(e.target.value)}\n value={code}\n propertyName=\"code\"\n label=\"Код подтверждения\"\n />\n
\n \"\"\n
\n
\n )}\n
\n
\n {!isCode ? (\n <>\n {window.location.href=\"https://vedanta.kg/\"}}\n />\n \n \n ) : (\n <>\n {\n setIsCode(false)\n setCode('')\n }}\n />\n \n \n )}\n
\n
\n \n );\n};\n\nexport default Authorization;\n","import React from \"react\";\n\nfunction Chevron(props) {\n return (\n \n \n \n );\n}\n\nexport default Chevron;","import React, { useRef, useState } from 'react'\nimport parse from 'html-react-parser';\nimport Chevron from \"./Chevron\";\nimport { currency_symbol } from './../../../constants.json'\n\nconst AcordionItem = ({speciality}) => {\n const [setActive, setActiveState] = useState(\"\");\n const [setHeight, setHeightState] = useState(\"0px\");\n const [setRotate, setRotateState] = useState(\"accordion__icon\");\n\n const content = useRef(null);\n\n function toggleAccordion() {\n setActiveState(setActive === \"\" ? \"active\" : \"\");\n setHeightState(\n setActive === \"active\" ? \"0px\" : `${content.current.scrollHeight}px`\n );\n setRotateState(\n setActive === \"active\" ? \"accordion__icon\" : \"accordion__icon rotate\"\n );\n }\n\n return (\n
\n \n \n {speciality.items.map(item => (\n
\n
\n
\n

{parse(item.Name)}

\n\n
\n

\n {item.Price === 0\n ? 'Бесплатно'\n : `${item.Price} ${currency_symbol}`}\n

\n
\n
\n ))}\n
\n \n )\n}\n\nexport default AcordionItem","import React, { useState } from \"react\";\n\nfunction usePagination(data, itemsPerPage) {\n const [currentPage, setCurrentPage] = useState(1);\n const maxPage = Math.ceil(data.length / itemsPerPage);\n\n function currentData() {\n const begin = (currentPage - 1) * itemsPerPage;\n const end = begin + itemsPerPage;\n return data.slice(begin, end);\n }\n\n function next() {\n setCurrentPage(currentPage => Math.min(currentPage + 1, maxPage));\n }\n\n function prev() {\n setCurrentPage(currentPage => Math.max(currentPage - 1, 1));\n }\n\n function jump(page) {\n const pageNumber = Math.max(1, page);\n setCurrentPage(currentPage => Math.min(pageNumber, maxPage));\n }\n\n return { next, prev, jump, currentData, currentPage, maxPage };\n}\n\nexport default usePagination;\n","import React, { useEffect, useState } from \"react\";\nimport \"./Acordion.scss\";\nimport AcordionItem from \"./AcordionItem\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { loadSpecialities } from \"../../../redux/actions/specialityActions\";\nimport { loadServices } from \"../../../redux/actions/serviceActions\";\nimport LoadingComponent from \"../../../containers/Pages/OnlineRecord/LoadingComponent/LoadingComponent\";\nimport usePagination from \"../Pagination/Pagination\";\nimport { Pagination } from \"@material-ui/lab\";\nimport SearchIcon from \"../Icons/SearchIcon\";\n\nconst Acordion = () => {\n const dispatch = useDispatch();\n const specialities = useSelector((s) => s.specialities);\n const services = useSelector((s) => s.services);\n const [search, setSearch] = useState(\"\");\n\n const [sortedSpecialities, setSortedSpecialities] = useState([]);\n const [searchedSpecialities, setSearchedSpecialities] = useState([]);\n\n\n useEffect(() => {\n dispatch(loadSpecialities());\n dispatch(loadServices());\n }, []);\n\n useEffect(() => {\n if (services.length && specialities.length) {\n const specialitiesVisible = specialities.filter(\n (speciality) => speciality.IsVisibleOnSIte\n );\n const newSpecialities = specialitiesVisible;\n console.log(newSpecialities)\n newSpecialities.forEach((newSpeciality) => {\n newSpeciality.items = services.filter(\n (service) => service.SpecialityId === newSpeciality.Id\n );\n });\n setSortedSpecialities(newSpecialities\n .filter(newSpeciality => newSpeciality.items.length)\n .map(newSpeciality => ({...newSpeciality, Name: newSpeciality.Name.replace(/^.?\\.\\s/, '')}))\n .sort((a, b) => a.Name.localeCompare(b.Name))\n );\n }\n }, [services, specialities, setSortedSpecialities]);\n\n const onSearch = (e) => {\n const searchTerm = e.target.value;\n\n setSearch(searchTerm);\n\n const filterItems = sortedSpecialities.map(obj => {\n const filteredItems = obj.items.filter(item => {\n return (\n item.Name.toLowerCase().includes(searchTerm.toLowerCase()) ||\n item.SpecialityName.toLowerCase().includes(searchTerm.toLowerCase())\n );\n }).map(item => {\n const formattedName = item.Name.replace(new RegExp(searchTerm, 'gi'), match => `${match}`);\n return {\n ...item,\n Name: formattedName,\n };\n });\n \n const formattedName = obj.Name.replace(new RegExp(searchTerm, 'gi'), match => `${match}`);\n \n return {\n ...obj,\n Name: formattedName,\n items: filteredItems,\n };\n }).filter(obj => obj.items.length > 0);;\n setSearchedSpecialities(filterItems)\n };\n\n let [page, setPage] = useState(1);\n const PER_PAGE = 10;\n\n const count = Math.ceil(search ? searchedSpecialities.length / PER_PAGE : sortedSpecialities.length / PER_PAGE);\n const _DATA = usePagination(search ? searchedSpecialities : sortedSpecialities, PER_PAGE);\n\n const handleChange = (e, p) => {\n setPage(p);\n _DATA.jump(p);\n };\n\n return (\n
\n {/* */}\n \n {sortedSpecialities.length ? ( \n
\n {_DATA.currentData().map(speciality => {\n return \n })}\n
\n {_DATA.currentData().length ?\n = 600 ? 'medium' : 'small'}\n page={page}\n onChange={handleChange}\n color=\"secondary\"\n /> : null\n }\n
\n
\n\n ) : (\n \n )}\n
\n );\n};\n\nexport default Acordion;\n","import React from \"react\";\nimport { Helmet } from \"react-helmet\";\nimport Logotype from \"../../../components/kit/Logo/Logotype\";\nimport Acordion from \"../../../components/kit/Acordion/Acordion\";\nimport { Pagination } from \"@material-ui/lab\";\n\nconst ServicesPage = () => {\n return (\n <>\n \n Список услуг\n \n
\n \n
Список услуг
\n \n
\n \n );\n};\n\nexport default ServicesPage;\n","import React, { useEffect } from 'react'\nimport { useHistory } from 'react-router-dom';\n\nconst Home = () => {\n const history = useHistory();\n useEffect(() => {\n history.push(\"/record\");\n }, [history])\n\n return (\n
\n )\n}\n\nexport default Home","import axios from \"axios\";\nimport withReactContent from \"sweetalert2-react-content\";\nimport Swal from \"sweetalert2\";\nimport { setIsLoad } from \"../redux/actions/isLoad\";\nimport { GET_PATIENT_EMC_PDF } from \"../global/Constants/twoFactorAuth\";\n\nconst MySwal = withReactContent(Swal);\n\nexport const GetPatientEmcPdf = (params) => async (dispatch) => {\n dispatch(setIsLoad(true))\n const body = { ...params };\n\n axios({\n method: \"POST\",\n // responseType: \"blob\",\n headers: {\n Session_Id: localStorage.getItem(\"Session_Id\"),\n \"Content-Type\": \"application/json\",\n },\n url: `${GET_PATIENT_EMC_PDF}`,\n data: body\n })\n .then((data) => {\n if (data.data) {\n const byteCharacters = atob(data.data); // Декодирование Base64\n const byteNumbers = new Array(byteCharacters.length);\n \n for (let i = 0; i < byteCharacters.length; i++) {\n byteNumbers[i] = byteCharacters.charCodeAt(i);\n }\n \n const byteArray = new Uint8Array(byteNumbers);\n const blob = new Blob([byteArray], { type: 'application/pdf' });\n \n const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n\n if (isSafari) {\n // For Safari, try to open the PDF in a new tab\n const fileURL = window.URL.createObjectURL(blob);\n window.open(fileURL, '_blank');\n } else {\n // For other browsers, open the PDF in the current window\n const fileURL = URL.createObjectURL(blob);\n window.open(fileURL);\n }\n\n } else {\n MySwal.fire({\n title: 'Что-то пошло не так',\n icon: \"error\",\n showConfirmButton: false,\n timer: 2000,\n });\n }\n\n })\n .catch((error) => {\n MySwal.fire({\n title: 'Что-то пошло не так',\n icon: \"error\",\n showConfirmButton: false,\n timer: 2000,\n });\n })\n .finally(() => {\n dispatch(setIsLoad(false))\n })\n\n};\n\n// export function GetResultsByCodeWordAsPdf(codeword, setIsLoading) {\n// }\n","import React, { useEffect, useState } from \"react\";\nimport { Helmet } from \"react-helmet\";\nimport Logotype from \"../../../components/kit/Logo/Logotype\";\nimport \"./ClientCab.scss\";\nimport { useHistory } from \"react-router-dom\";\nimport { useCookies } from \"react-cookie\";\nimport { AUTHORIZATION } from \"../../../global/Constants/Constants\";\nimport { useDispatch } from \"react-redux\";\nimport axios from \"axios\";\nimport {\n GET_PATIEN,\n GET_PATIENT_EMC_LIST_BY_TOKEN,\n GET_PATIENT_EMC_PDF,\n} from \"../../../global/Constants/twoFactorAuth\";\nimport LoadingComponent from \"../OnlineRecord/LoadingComponent/LoadingComponent\";\nimport moment from \"moment\";\nimport { GetPatientEmcPdf } from \"../../../api/PatientEmcPdf\";\n\nconst ClientCab = () => {\n const [cookies, setCookies, removeCookie] = useCookies([\"user\"]);\n const history = useHistory();\n const [patient, setPatient] = useState(null);\n const [results, setResults] = useState(null);\n const dispatch = useDispatch();\n\n const onLogOut = () => {\n removeCookie(\"user\", { path: \"/\" });\n };\n\n useEffect(() => {\n if (!cookies.user) {\n history.push(AUTHORIZATION);\n }\n }, [cookies.user]);\n\n useEffect(() => {\n if (cookies.user) {\n const params = {\n authToken: cookies.user.token,\n // authToken: cookies.user.token\n };\n axios({\n method: \"GET\",\n headers: {\n Session_Id: localStorage.getItem(\"Session_Id\"),\n },\n url: `${GET_PATIEN}`,\n params,\n })\n .then((res) => {\n if (res.data.IsSuccess) {\n setPatient(res.data.Data);\n } else {\n setPatient(null);\n history.push(AUTHORIZATION);\n removeCookie(\"user\", { path: \"/\" });\n }\n })\n .catch((e) => {\n setPatient(null);\n history.push(AUTHORIZATION);\n removeCookie(\"user\", { path: \"/\" });\n });\n\n axios({\n method: \"GET\",\n headers: {\n Session_Id: localStorage.getItem(\"Session_Id\"),\n },\n url: `${GET_PATIENT_EMC_LIST_BY_TOKEN}`,\n params,\n })\n .then((res) => {\n if (res.data.IsSuccess) {\n setResults(res.data.Data);\n } else {\n setResults(null);\n }\n })\n .catch((e) => {\n console.log(e);\n });\n }\n }, []);\n\n const convertDate = (selectedDate) => {\n let date = moment(selectedDate);\n date.locale(\"ru\");\n return date.format(\"D MMMM YYYY\") + \" г.\";\n };\n\n const DownloadPatientEmcPdf = (params) => {\n dispatch(GetPatientEmcPdf(params));\n };\n\n return (\n <>\n \n Личный кабинет\n \n \n {patient ? (\n
\n
\n
\n
\n {patient.FirstName} {patient.LastName}\n \n Выход\n \n
\n
\n {patient.DateOfBirth && (\n
\n Дата рождения\n

{convertDate(patient.DateOfBirth)}

\n
\n )}\n {patient.PhoneNumber && (\n
\n Номер телефона\n

+996{patient.PhoneNumber}

\n
\n )}\n {patient.Email && (\n
\n Номер телефона\n

+996{patient.Email}

\n
\n )}\n
\n
\n\n
\n
\n
\n
\n
Наименование
\n
Дата приёма
\n
Врач
\n
\n
\n
\n {results\n ? results.map((result, i) => (\n
\n
{result.ServiceName}
\n
\n {moment(result.DateCreated).format(\"DD.MM.YYYY\")}\n
\n
\n {result.DoctorFullName.replace(\n /\\([^)]*\\)/g,\n \"\"\n ).trim()}\n
\n DownloadPatientEmcPdf(result)}\n style={{ flex:' 0 0 10%', maxWidth: '10%', color: '#d81a24', cursor: 'pointer'}}\n >\n Открыть\n
\n
\n ))\n : null}\n
\n
\n
\n \n ) : (\n \n )}\n \n );\n};\n\nexport default ClientCab;\n","import React, { useEffect, useState } from \"react\";\nimport { Route, Switch, Redirect } from \"react-router-dom\";\nimport OnlineRecord from \"./containers/Pages/OnlineRecord/OnlineRecord\";\nimport SharePage from \"./containers/Pages/SharePage/SharePage\";\nimport {\n AUTHORIZATION,\n CLIENT_CAB,\n HOME,\n RESULTS,\n ROUTE_RECORD,\n SERVICES,\n} from \"./global/Constants/Constants\";\nimport GetResultForm from \"./containers/Pages/OnlineRecord/getResultForm/GetResultForm\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { AuthUser } from \"./redux/actions/userActions\";\nimport { TailSpin } from \"react-loader-spinner\";\nimport NotFound from \"./containers/Pages/NotFound/NotFound\";\nimport Authorization from \"./containers/Pages/authorization/Authorization\";\nimport ServicesPage from \"./containers/Pages/servicesPage/ServicesPage\";\nimport Home from \"./containers/Pages/home/home\";\nimport ClientCab from \"./containers/Pages/client-cab/ClientCab\";\n\nconst Routes = () => {\n const BASE_LOGIN = \"WebApiUser\";\n const BASE_PASSWORD = \"1_G85JG44hjgGGJHG12\";\n\n const dispatch = useDispatch();\n const isLoad = useSelector((s) => s.isLoad);\n\n useEffect(() => {\n dispatch(AuthUser({ Login: BASE_LOGIN, Password: BASE_PASSWORD }));\n }, []);\n return (\n <>\n
\n
\n {!window.location.href.includes(\"shareShow\") && (\n \n \n \n \n \n \n \n \n \n )}\n
\n {isLoad ? (\n <>\n
\n \n
\n
\n \n ) : null}\n
\n\n {window.location.href.includes(\"shareShow\") && }\n \n );\n};\n\nexport default Routes;\n","import React from 'react'\nimport { withRouter } from 'react-router-dom'\nimport Routes from './Routes'\n\nfunction App() {\n return (\n \n \n \n )\n}\n\nexport default withRouter(App)\n","export const saveState = (state) => {\n try {\n const serializedState = JSON.stringify(state)\n localStorage.setItem('token', serializedState)\n } catch (e) {\n console.log('Could not save state')\n }\n}\n\nexport const loadState = () => {\n try {\n const serializedStorage = localStorage.getItem('token')\n if (serializedStorage === null) {\n return undefined\n }\n\n return JSON.parse(serializedStorage)\n } catch (e) {\n return undefined\n }\n}\n","import * as types from '../actions/actionTypes'\n\nconst initState = {\n doctorTab: 'все',\n IdSpeciality: null\n}\n\nexport default function doctorTabsReducer(state = initState, action) {\n switch (action.type) {\n case types.DOCTOR_TABS:\n return { ...state, doctorTab: action.doctorTab.doctorTab, IdSpeciality: action.doctorTab.IdSpeciality }\n default:\n return state\n }\n}\n","import axios from 'axios'\nimport { connectRouter, routerMiddleware } from 'connected-react-router'\nimport { createBrowserHistory } from 'history'\nimport { applyMiddleware, combineReducers, compose, createStore } from 'redux'\nimport thunkMiddleware from 'redux-thunk'\nimport appointments from '../redux/reducers/appointmentReducer'\nimport doctors from '../redux/reducers/doctorReducer'\nimport services from '../redux/reducers/serviceReducer'\nimport specialities from '../redux/reducers/specialityReducer'\nimport { loadState } from './localStorage'\nimport doctorTabsReducer from '../redux/reducers/doctorTabsReducer';\nimport isLoad from '../redux/reducers/isLoad';\n\nexport const history = createBrowserHistory()\n\nhistory.listen((location, action) => {\n window.scrollTo(50, 0)\n})\n\nconst rootReducer = combineReducers({\n router: connectRouter(history),\n doctors,\n specialities,\n services,\n appointments,\n doctorTabsReducer,\n isLoad\n})\n\nconst composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose\n\nconst middleware = [thunkMiddleware, routerMiddleware(history)]\n\nconst enhancers = composeEnhancers(applyMiddleware(...middleware))\n\nconst persistedState = loadState()\n\nconst store = createStore(rootReducer, persistedState, enhancers)\n\nstore.subscribe(() => {})\n\naxios.interceptors.request.use((config) => {\n try {\n if (store.getState().users.SessionId) {\n config.headers['Session_Id'] = store.getState().user.SessionId\n }\n } catch (e) {\n // user is not logged\n }\n\n return config\n})\n\nexport default store\n","import * as types from '../actions/actionTypes'\n\nexport default function doctorReducer(state = [], action) {\n switch (action.type) {\n case types.LOAD_DOCTORS_SUCCESS:\n return action.doctors\n default:\n return state\n }\n}\n","import * as types from '../actions/actionTypes'\n\nexport default function specialityReducer(state = [], action) {\n switch (action.type) {\n case types.LOAD_SPECIALITIES_SUCCESS:\n return action.specialities\n default:\n return state\n }\n}\n","import * as types from '../actions/actionTypes'\n\nexport default function serviceReducer(state = [], action) {\n switch (action.type) {\n case types.LOAD_SERVICES_SUCCESS:\n return action.services\n case types.LOAD_SERVICES_BY_DOCTOR_SUCCESS:\n return action.services\n default:\n return state\n }\n}\n","import * as types from '../actions/actionTypes'\n\nexport default function appointmentReducer(state = [], action) {\n switch (action.type) {\n case types.LOAD_FREE_APPOINTMENTS_SUCCESS:\n return action.appointments\n case types.CREATE_APPOINTMENT_SUCCESS:\n return [...state, { ...action.appointment }]\n case types.LOAD_BUSY_DAYS_SUCCESS:\n return action.days\n default:\n return state\n }\n}\n","import * as types from '../actions/actionTypes'\n\nexport default function loadReducer(state = false, action) {\n switch (action.type) {\n case types.LOAD_TRUE:\n return action.isLoad\n default:\n return state\n }\n}\n","import { ConnectedRouter } from 'connected-react-router'\nimport React from 'react'\nimport 'react-datepicker/dist/react-datepicker.css'\nimport ReactDOM from 'react-dom'\nimport { Provider } from 'react-redux'\nimport { BrowserRouter } from 'react-router-dom'\nimport App from './App'\nimport store, { history } from './store/configureStore'\n\nconst app = (\n \n \n \n \n \n \n \n)\n\nReactDOM.render(app, document.getElementById('root'))\n"],"sourceRoot":""}