{"version":3,"file":"chunks/1417.chunk.3bfec3e060bc9de3324f.js","mappings":"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","sources":["webpack://northern-tuna-portal/./ClientApp/components/Pages/Doctor/Locations.tsx","webpack://northern-tuna-portal/./ClientApp/components/Pages/Specialties/SpecialtyTag.tsx","webpack://northern-tuna-portal/./ClientApp/components/UI/DoctorBookedTimeBlock/DoctorBookedTimeBlockTable.tsx","webpack://northern-tuna-portal/./ClientApp/components/UI/DoctorBookedTimeBlock/DoctorBookedTimeBlock.tsx","webpack://northern-tuna-portal/./ClientApp/components/UI/DoctorBookedTimeBlock/DoctorBookedTimeBlockHeader.tsx","webpack://northern-tuna-portal/./ClientApp/components/UI/DoctorCard/DoctorAvatar.tsx","webpack://northern-tuna-portal/./ClientApp/components/UI/ScheduleAppointmentModal/LoginForm.tsx","webpack://northern-tuna-portal/./ClientApp/components/UI/ScheduleAppointmentModal/ScheduleAppointment.tsx","webpack://northern-tuna-portal/./ClientApp/utils/DoctorBookedTimeBlock/DoctorBookedTimeBlock.ts","webpack://northern-tuna-portal/./common/react/components/Core/ItemsProvider/LoadMoreButton.tsx","webpack://northern-tuna-portal/./NorthernTunaCommon/react/objects/Enums.ts","webpack://northern-tuna-portal/./ClientApp/images/no-image-available.jpg"],"sourcesContent":["import React from 'react';\nimport { renderToString } from 'react-dom/server';\nimport { useNavigate } from 'react-router-dom';\n\nimport Tabs, { TabsProps } from 'antd/lib/tabs';\nimport Modal from 'antd/lib/modal';\nimport GoogleMapReact from 'google-map-react';\n\nimport { numberWithComma } from '@commonTuna/react/utils/NumberWithComma/NumberWithComma';\n\nimport { LocationPortal } from '@app/objects/CompanyPortal';\nimport { Location } from '@app/objects/Location';\nimport WithPathLink from '@app/components/UI/WithPathLink/WithPathLink';\nimport { getLocationName } from '@app/utils/Utils';\nimport Stars from '@app/components/UI/Stars/Stars';\n\nimport '@app/scss/components/locations.scss';\nimport LocationInfo from '@app/components/Pages/Doctor/LocationInfo';\n\ninterface IPros {\n\tlocations: Array;\n\tcontainerClassName?: string;\n\tcontent?: (location: LocationPortal) => JSX.Element;\n\treviews?: (location: LocationPortal) => React.ReactNode;\n\thideTitle?: boolean;\n\thideLink?: boolean;\n}\n\ninterface MapProps {\n\taddress: string;\n\taddressList?: Array;\n}\n\ninterface LocationNodeProps {\n\tcontent: any;\n\treviews?: (location: LocationPortal) => React.ReactNode;\n\titem: any;\n\thideLink?: boolean;\n\thideMap?: boolean;\n\taddressAsLink?: boolean;\n\tshowRate?: boolean;\n}\n\nexport const getAddress = (item) => {\n\treturn [item.addressEn, item.city, item.state, item.zip].filter((e) => e).join(', ');\n};\n\nconst getClinicAvatar = (location: Location): string => {\n\tif (location.portalOriginalAvatar) {\n\t\treturn `/remote/${location.portalOriginalAvatar}`;\n\t}\n\tif (location.portalAvatar) {\n\t\treturn `/remote/${location.portalAvatar}`;\n\t}\n\treturn '';\n};\n\nfunction codeAddress(map, maps, address: string, addressList?: Array, onLoad?: (address, result, openPopup, callback) => void) {\n\tconst geocoder = new maps.Geocoder();\n\tconst gedData = (item: string | Location) => {\n\t\tconst isLocation = typeof item !== 'string';\n\t\tconst currentAddress = !isLocation ? item : getAddress(item);\n\t\tgeocoder.geocode({ address: currentAddress }, (results, status) => {\n\t\t\tif (status === 'OK') {\n\t\t\t\tif (address === currentAddress) {\n\t\t\t\t\tmap.setCenter(results[0].geometry.location);\n\t\t\t\t}\n\t\t\t\t// eslint-disable-next-line\n\t\t\t\tconst marker = new maps.Marker({\n\t\t\t\t\tmap,\n\t\t\t\t\tposition: results[0].geometry.location,\n\t\t\t\t\tclickable: true,\n\t\t\t\t});\n\t\t\t\tif (isLocation) {\n\t\t\t\t\tconst locationName = getLocationName(item, false, true);\n\t\t\t\t\tconst avatar = getClinicAvatar(item);\n\t\t\t\t\tconst infowindow = new google.maps.InfoWindow({\n\t\t\t\t\t\tcontent: `${isLocation ? renderToString(
\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t{locationName}\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t{avatar ?
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
: ''}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{' '}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{numberWithComma(item.averageReviewRate)}\n\t\t\t\t\t\t\t\t\t{' '}\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t{item.totalReviewCount}\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{item.portalDescription\n\t\t\t\t\t\t\t\t&& \n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t
) : currentAddress}`,\n\t\t\t\t\t\tariaLabel: '',\n\t\t\t\t\t});\n\t\t\t\t\tconst onClick = () => {\n\t\t\t\t\t\tinfowindow.open({\n\t\t\t\t\t\t\tanchor: marker,\n\t\t\t\t\t\t\tmap,\n\t\t\t\t\t\t});\n\t\t\t\t\t};\n\t\t\t\t\tmarker.addListener('click', onClick);\n\t\t\t\t\tif (address === currentAddress) {\n\t\t\t\t\t\tonClick();\n\t\t\t\t\t}\n\t\t\t\t\tonLoad && onLoad(currentAddress, results[0].geometry.location, {\n\t\t\t\t\t\topen: onClick,\n\t\t\t\t\t\tclose: () => {\n\t\t\t\t\t\t\tinfowindow.close();\n\t\t\t\t\t\t},\n\t\t\t\t\t}, () => {\n\t\t\t\t\t\tmarker.removeListener('click', onClick);\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tonLoad && onLoad(currentAddress, results[0].geometry.location, undefined, () => undefined);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconsole.log(`Geocode was not successful for the following reason: ${status}`);\n\t\t\t}\n\t\t});\n\t};\n\tconst list: any = addressList || [];\n\t(list?.map((item) => (typeof item === 'string' ? item : getAddress(item))).includes(address) ? list : address ? [address].concat(list) : list)\n\t\t.forEach(gedData);\n}\n\nexport const SimpleMap: React.FC = ({ address, addressList }) => {\n\tconst navigate = useNavigate();\n\tconst [maps, setMaps] = React.useState();\n\tconst [map, setMap] = React.useState();\n\tconst listenersRef = React.useRef([]);\n\tconst addressRef = React.useRef({});\n\tconst popupRef = React.useRef({});\n\tconst defaultProps = {\n\t\tcenter: { lat: -34.397, lng: 150.644 },\n\t\tzoom: 12,\n\t};\n\n\tReact.useEffect(() => {\n\t\tif (map && maps) {\n\t\t\tif (addressRef.current[address]) {\n\t\t\t\tmap.setCenter(addressRef.current[address]);\n\t\t\t\tif (popupRef.current[address]) {\n\t\t\t\t\tObject.values(popupRef.current).forEach((item: any) => {\n\t\t\t\t\t\titem?.close();\n\t\t\t\t\t});\n\t\t\t\t\tpopupRef.current[address]?.open();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcodeAddress(map, maps, address);\n\t\t\t}\n\t\t}\n\t}, [address]);\n\n\tReact.useEffect(() => {\n\t\tif (listenersRef.current.length) {\n\t\t\treturn () => listenersRef.current.forEach((callback) => callback());\n\t\t}\n\t}, []);\n\n\tconst renderMarker = (map, maps) => {\n\t\tsetMap(map);\n\t\tsetMaps(maps);\n\t\treturn codeAddress(map, maps, address, addressList, (address, result, openPopup, callback) => {\n\t\t\tlistenersRef.current.concat(callback);\n\t\t\taddressRef.current[address] = result;\n\t\t\tpopupRef.current[address] = openPopup;\n\t\t});\n\t};\n\n\treturn (\n\t\t
\n\t\t\t {\n\t\t\t\t\tconst target: any = e.event.target;\n\t\t\t\t\tif (target && target.dataset.link) {\n\t\t\t\t\t\te.event.preventDefault();\n\t\t\t\t\t\tnavigate(target.dataset.link);\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t\tbootstrapURLKeys={{ key: 'AIzaSyB_Vis358nPu31ZjN8OUdxbMwr9H9JgSso' }}\n\t\t\t\tdefaultCenter={defaultProps.center}\n\t\t\t\tdefaultZoom={defaultProps.zoom}\n\t\t\t\tonGoogleApiLoaded={({ map, maps }) => renderMarker(map, maps)}\n\t\t\t/>\n\t\t
\n\t);\n};\n\ninterface ILocationModal {\n\tlocation: Location;\n\tbuttonClassName?: string;\n\tbuttonValue?: JSX.Element;\n}\n\nexport const LocationModal: React.FC = (props) => {\n\tconst [visible, setVisible] = React.useState(false);\n\tconst { location } = props;\n\n\tconst close = () => setVisible(false);\n\n\tconst open = () => setVisible(true);\n\tconst locationName = getLocationName(location, false, true);\n\tconst {\n\t\tbuttonValue = <>\n\t\t\t\n\t\t\t{' '}\n\t\t\t{locationName}\n\t\t,\n\t\tbuttonClassName,\n\t} = props;\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{locationName}\n\t\t\t\t\t\n\t\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\t{numberWithComma(location.averageReviewRate || 0)}\n\t\t\t\t\t\t{' '}\n\t\t\t\t\t\t(\n\t\t\t\t\t\t{location.totalReviewCount || 0}\n\t\t\t\t\t\t)\n\t\t\t\t\t
\n\t\t\t\t}\n\t\t\t\twidth={600}\n\t\t\t\tclassName=\"location-popap\"\n\t\t\t\tfooter={null}\n\t\t\t>\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport const LocationNode: React.FC = ({\n\titem, reviews, content, hideLink, hideMap = false, addressAsLink, showRate,\n}) => {\n\treturn
\n\t\t\n\t\t{hideMap ? null :
\n\t\t\t\n\t\t\t
\n\t\t\t\t{content && content(item)}\n\t\t\t
\n\t\t
}\n\t\t{reviews &&
\n\t\t\t{reviews && reviews(item)}\n\t\t
\n\t\t}\n\t
;\n};\n\nconst Locations: React.FC = ({\n\tlocations, containerClassName, content, reviews, hideTitle, hideLink,\n}) => {\n\tif (locations.length === 1) {\n\t\tconst item = locations[0];\n\t\treturn (\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t{hideTitle ? null :

\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{numberWithComma(item.averageReviewRate)}\n\t\t\t\t\t\t\t{' '}\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t{item.totalReviewCount || 0}\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t
\n\t\t\t\t\t\t{getLocationName(item, false)}\n\t\t\t\t\t

}\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t);\n\t}\n\n\tconst items: TabsProps['items'] = locations.map((item, index) => {\n\t\treturn {\n\t\t\tkey: index.toString(),\n\t\t\tlabel: getLocationName(item, false),\n\t\t\tclassName: 'location-tab',\n\t\t\tchildren: ,\n\t\t};\n\t});\n\n\treturn (\n\t\tlocations.length > 0 ?
\n\t\t\t\n\t\t
: null\n\t);\n};\n\nexport default Locations;\n","import * as React from 'react';\nimport { NavLink } from 'react-router-dom';\n\nimport Tag from 'antd/lib/tag';\n\nimport { Specialty } from '@commonTuna/react/objects/Specialty';\n\ninterface Props {\n\tspecialty: Specialty;\n\ttagClassName?: string;\n}\n\nconst SpecialtyTag: React.FC = (props) => {\n\tconst specialty = props.specialty;\n\n\treturn (<>\n\t\t{specialty.path\n\t\t\t? \n\t\t\t\t\n\t\t\t\t\t{specialty.name}\n\t\t\t\t\n\t\t\t\n\t\t\t: \n\t\t\t\t{specialty.name}\n\t\t\t\n\t\t}\n\t);\n};\n\nexport default SpecialtyTag;\n","import React from 'react';\n\nimport dayjs from 'dayjs';\nimport utc from 'dayjs/plugin/utc';\n\nimport { DoctorBookedTime } from '@app/objects/Doctor';\nimport { Location } from '@app/objects/Location';\n\nimport '@app/scss/components/doctorBookedTimeBlockTable.scss';\nimport DoctorBookedTimeBlockHeader from '@app/components/UI/DoctorBookedTimeBlock/DoctorBookedTimeBlockHeader';\nimport { SelectedTimeIndex } from '@app/components/UI/ScheduleAppointmentModal/ScheduleAppointment';\n\ndayjs.extend(utc);\n\ninterface ComponentProps {\n\tbookedTime: DoctorBookedTime;\n\tonSelectTime: (day: dayjs.Dayjs, time: dayjs.Dayjs, selectedTimeIndex?: SelectedTimeIndex) => void;\n\tonSelectPreviousWeek: () => void;\n\tonSelectNextWeek: () => void;\n\tstartDate: number;\n\tlocationId: number;\n\tlocations?: Array;\n\tonSelectLocation?: (location: Location) => void;\n\tclassName?: string;\n\trowCount?: number;\n\tselectedTime?: number;\n\twithoutLocationButtons?: boolean;\n\twithHeader?: boolean;\n\tnearestTime: number | null;\n\tonNearestTimeClick?: () => void;\n\trange: number;\n}\n\nconst getInitialCount = (bookedTime: DoctorBookedTime, offset: number, selectedTime?: number): number => {\n\tif (!selectedTime) {\n\t\treturn 0;\n\t}\n\n\tfor (const [day, value] of Object.entries(bookedTime.values)) {\n\t\tif (dayjs.utc(selectedTime).isSame(dayjs(day), 'day')) {\n\t\t\tfor (const index in value) {\n\t\t\t\tconst time = bookedTime.values[day][index];\n\n\t\t\t\tif (dayjs(selectedTime).utc().format('HH:mm:ss') === time?.start) {\n\t\t\t\t\treturn Math.floor(+index / offset) * offset;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn 0;\n};\n\nconst DoctorBookedTimeBlockTable: React.FC = ({\n\tbookedTime,\n\tonSelectTime,\n\tonSelectPreviousWeek,\n\tonSelectNextWeek,\n\tstartDate,\n\tlocationId,\n\tlocations,\n\tonSelectLocation,\n\tclassName,\n\trowCount,\n\tselectedTime,\n\twithoutLocationButtons,\n\twithHeader = true,\n\tnearestTime = null,\n\tonNearestTimeClick,\n\trange,\n}) => {\n\tconst [offset, setOffset] = React.useState(rowCount ?? 7);\n\tconst [count, setCount] = React.useState(getInitialCount(bookedTime, offset, selectedTime));\n\tconst [maxCount, setMaxCount] = React.useState(() => {\n\t\treturn Math.max(...Object.keys(bookedTime.values).map((day) => bookedTime.values[day]?.length ?? 0));\n\t});\n\n\tReact.useEffect(() => {\n\t\tif (rowCount && rowCount !== offset) {\n\t\t\tsetOffset(rowCount);\n\t\t\tsetCount(0);\n\t\t}\n\t}, [rowCount]);\n\n\tReact.useEffect(() => {\n\t\tsetMaxCount(Math.max(...Object.keys(bookedTime.values).map((day) => bookedTime.values[day]?.length ?? 0)));\n\t}, [bookedTime]);\n\n\tconst showMore = () => {\n\t\tsetCount(count + offset);\n\t};\n\n\tconst showPrev = () => {\n\t\tsetCount(count - offset);\n\t};\n\n\tconst renderItem = (index: number): Array => {\n\t\treturn Object.keys(bookedTime.values).slice(0, range).map((day) => {\n\t\t\tconst time = bookedTime.values[day][index];\n\t\t\tconst isSelected = !!selectedTime && dayjs.utc(selectedTime).isSame(dayjs(day), 'day')\n\t\t\t\t&& dayjs(selectedTime).utc().format('HH:mm:ss') === time?.start;\n\n\t\t\treturn time ? \n\t\t\t\t {\n\t\t\t\t\t\tonSelectTime(\n\t\t\t\t\t\t\tdayjs(day).utc(),\n\t\t\t\t\t\t\tdayjs(dayjs(`${dayjs().format('YYYY/MM/DD')} ${time.start}`), 'hh:mm a'),\n\t\t\t\t\t\t\t{ key: day, start: time.start },\n\t\t\t\t\t\t);\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t
{dayjs(dayjs(`${dayjs().format('YYYY/MM/DD')} ${time.start}`), 'HH:mm:ss').format('hh:mm a')}
\n\t\t\t\t\n\t\t\t : -;\n\t\t});\n\t};\n\n\tconst renderItems = () => {\n\t\tlet index = count;\n\t\tconst result: Array = [];\n\t\tlet row;\n\n\t\tdo {\n\t\t\trow = renderItem(index++);\n\n\t\t\tresult.push(\n\t\t\t\t\n\t\t\t\t{row}\n\t\t\t\t\n\t\t\t);\n\t\t} while (index < (count + offset > maxCount ? maxCount : count + offset));\n\n\t\treturn result.map((node) => node);\n\t};\n\n\tconst leftChevronDisabled = dayjs(startDate).utc() <= dayjs(new Date()).utc();\n\n\treturn
\n\t\t
\n\t\t\t{!withoutLocationButtons && locations && locations.length && locations.map((location) =>\n\t\t\t\t onSelectLocation && onSelectLocation(location)}\n\t\t\t\t>\n\t\t\t\t\t{`${location.company?.name ? `${location.company?.name} - ` : ''}${location.nameEn}`}\n\t\t\t\t)\n\t\t\t}\n\t\t
\n\t\t\n\t\t\t\n\t\t\t\t{withHeader && }\n\t\t\t\t{!nearestTime && renderItems()}\n\t\t\t\n\t\t
\n\t\t{nearestTime && \n\t\t\tNearest available on\n\t\t\t{' '}\n\t\t\t{dayjs(nearestTime).utc().format('MMM DD')}\n\t\t}\n\t\t{!nearestTime && <>\n\t\t\t= maxCount}\n\t\t\t\ttitle=\"Next times\"\n\t\t\t>\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t}\n\t
;\n};\n\nexport default DoctorBookedTimeBlockTable;\n","import React from 'react';\n\nimport dayjs from 'dayjs';\nimport utc from 'dayjs/plugin/utc';\n\nimport Message from 'antd/lib/message';\n\nimport LogoLoader, { LogoLoaderPage } from '@commonTuna/react/components/UI/LogoLoader/LogoLoader';\n\nimport { request } from '@app/components/Api';\nimport { Location } from '@app/objects/Location';\nimport DoctorBookedTimeBlockTable from '@app/components/UI/DoctorBookedTimeBlock/DoctorBookedTimeBlockTable';\nimport { DoctorBookedTime } from '@app/objects/Doctor';\nimport {\n\tfilterDisabledTimes,\n\tgetStartDayInitial,\n\tresolveBookedTimes,\n} from '@app/utils/DoctorBookedTimeBlock/DoctorBookedTimeBlock';\nimport { SelectedTimeIndex } from '@app/components/UI/ScheduleAppointmentModal/ScheduleAppointment';\n\ndayjs.extend(utc);\n\ninterface ComponentProps {\n\tdoctorId: number;\n\tonSelect?: (time: number, location: Location, asNearestDate?: boolean, selectIndex?: SelectedTimeIndex) => void;\n\tlocations: Array;\n\tvalue?: DoctorBookedTime;\n\tclassName?: string;\n\tdays?: number;\n\trowCount?: number;\n\tonlyWorkingDays?: boolean;\n\tselectLocationById?: number;\n\tselectedTime?: number;\n\tinitStartDay?: number;\n\twithoutLocationButtons?: boolean;\n\twithHeader?: boolean;\n\tinterval?: number;\n\thideDisabledTimes?: boolean;\n\tnearestDateRedirect?: boolean;\n}\n\nconst DoctorBookedTimeBlock: React.FC = ({\n\tdoctorId,\n\tonSelect,\n\tlocations,\n\tvalue,\n\tclassName,\n\tdays,\n\trowCount,\n\tonlyWorkingDays = false,\n\tselectedTime,\n\tselectLocationById,\n\twithoutLocationButtons,\n\twithHeader,\n\tinterval: propsInterval,\n\thideDisabledTimes = true,\n\tnearestDateRedirect = false,\n\tinitStartDay,\n}) => {\n\tconst [selectedLocation, setSelectedLocation] = React.useState(selectLocationById\n\t\t? (locations.find((q) => q.id === selectLocationById) ?? locations[0])\n\t\t: locations[0]);\n\tconst [initDoctorId, setInitDoctorId] = React.useState(doctorId);\n\tconst [loading, setLoading] = React.useState(false);\n\tconst [range, setRange] = React.useState(days ?? 7);\n\tconst [interval, setInterval] = React.useState(propsInterval || 0);\n\tconst [startDay, setStartDay] = React.useState(initStartDay || getStartDayInitial(range, selectedTime));\n\tconst [startDate, setStartDate] = React.useState(startDay);\n\tconst [endDate, setEndDate] = React.useState(startDate);\n\tconst [bookedTimeRes, setBookedTimeRes] = React.useState(value || null);\n\tconst [nearestTime, setNearestDate] = React.useState(null);\n\tconst [solvedNearestTime, setSolvedNearestDate] = React.useState(nearestTime);\n\tconst nearestDate = solvedNearestTime || nearestTime;\n\n\tReact.useEffect(() => {\n\t\tif (propsInterval !== interval) {\n\t\t\tsetInterval(propsInterval || 0);\n\t\t}\n\t}, [propsInterval]);\n\n\tReact.useEffect(() => {\n\t\tsetBookedTimeRes(value || null);\n\t}, [value]);\n\n\tconst loadTimes = (from: number, interval: number, locationId: number, days?: number) => {\n\t\tsetLoading(true);\n\t\trequest('getDoctorBookedTime', {\n\t\t\tid: doctorId,\n\t\t\tlocationId,\n\t\t\tinterval,\n\t\t\tfrom,\n\t\t\tdaysRange: days || range,\n\t\t\tonlyWorkingDays,\n\t\t}).then((res) => {\n\t\t\tsetBookedTimeRes(res);\n\t\t\tsetStartDate(res.startDate);\n\t\t\tsetEndDate(res.endDate);\n\t\t\tsetNearestDate(res.nearestTime);\n\t\t}).catch((message) => {\n\t\t\tMessage.error(message);\n\t\t}).finally(() => {\n\t\t\tsetLoading(false);\n\t\t});\n\t};\n\n\tReact.useEffect(() => {\n\t\tif (value && JSON.stringify(value) !== JSON.stringify(bookedTimeRes)) {\n\t\t\tsetBookedTimeRes(value);\n\t\t\tsetStartDate(value.startDate);\n\t\t\tsetEndDate(value.endDate);\n\t\t\tsetNearestDate(value.nearestTime);\n\t\t}\n\t}, [value]);\n\n\tReact.useEffect(() => {\n\t\tif (value && (!selectedLocation || value.locationId === selectedLocation.id) && (Object.values(value.values).length || value.nearestTime)) {\n\t\t\tsetStartDate(value.startDate);\n\t\t\tsetEndDate(value.endDate);\n\t\t\tsetNearestDate(value.nearestTime);\n\t\t} else {\n\t\t\tselectedLocation?.id && loadTimes(startDate, interval, selectedLocation.id);\n\t\t}\n\t}, [interval]);\n\n\tReact.useEffect(() => {\n\t\tlet newSelectedLocation; let\n\t\t\tnewRage;\n\t\tif (selectLocationById && selectLocationById !== selectedLocation?.id) {\n\t\t\tnewSelectedLocation = selectLocationById\n\t\t\t\t? (locations.find((q) => q.id === selectLocationById) ?? locations[0])\n\t\t\t\t: locations[0];\n\t\t\tsetSelectedLocation(newSelectedLocation);\n\t\t}\n\n\t\tif (days && days !== range) {\n\t\t\tnewRage = days;\n\t\t\tsetRange(newRage);\n\t\t}\n\n\t\tif (newSelectedLocation || newRage || (initDoctorId !== doctorId)) {\n\t\t\tloadTimes(startDate, interval, (newSelectedLocation || selectedLocation)?.id, newRage || days);\n\t\t\tsetInitDoctorId(doctorId);\n\t\t}\n\t}, [selectLocationById, days, doctorId]);\n\n\tconst bookedTime = React.useMemo(() => {\n\t\tif (!bookedTimeRes) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst resolvedBookedTime = resolveBookedTimes(bookedTimeRes, propsInterval || interval);\n\t\treturn hideDisabledTimes ? filterDisabledTimes(resolvedBookedTime) : resolvedBookedTime;\n\t}, [propsInterval, interval, bookedTimeRes]);\n\n\tReact.useEffect(() => {\n\t\tconst dates = Object.keys(bookedTime?.values || {})\n\t\t\t.map((key) => (bookedTime?.values[key].length ? key : null));\n\t\tconst dateIndex = dates.findIndex((time) => time !== null);\n\n\t\tsetSolvedNearestDate(dateIndex + 1 > range ? +dayjs(dates[dateIndex]) : null);\n\t}, [range, nearestDate, bookedTime]);\n\n\tconst onSelectLocation = (location: Location) => {\n\t\tsetSelectedLocation(location);\n\n\t\tloadTimes(startDate, interval, location.id);\n\t};\n\n\tconst onSelectTime = (day, time, nearestDate?: number, selectedTimeIndex?: SelectedTimeIndex) => {\n\t\tonSelect && onSelect(\n\t\t\tnearestDate || day.add(time.hour(), 'hours').add(time.minute(), 'minutes').valueOf(),\n\t\t\tselectedLocation,\n\t\t\t!!nearestDate,\n\t\t\tselectedTimeIndex,\n\t\t);\n\t};\n\n\tconst selectNextWeek = () => {\n\t\tloadTimes(dayjs(endDate).add(1, 'day').valueOf(), interval, selectedLocation.id);\n\t};\n\n\tconst onSelectPreviousWeek = () => {\n\t\tloadTimes(dayjs(startDate).add(1, 'day').valueOf(), -interval, selectedLocation.id);\n\t};\n\n\tconst onNearestTimeClick = () => {\n\t\tconst solvedNearestDate = Object.keys(bookedTime?.values || {})\n\t\t\t.map((key) => (bookedTime?.values[key].length ? key : null))\n\t\t\t.find((time) => time !== null);\n\t\tconst date = solvedNearestDate ? +dayjs(solvedNearestDate) : nearestDate;\n\t\tif (date) {\n\t\t\tif (nearestDateRedirect) {\n\t\t\t\tconst time = dayjs.utc(date);\n\t\t\t\tonSelectTime(time, time, +time.hour(new Date().getHours()));\n\t\t\t} else {\n\t\t\t\tloadTimes(date, interval, selectedLocation.id);\n\t\t\t}\n\t\t}\n\t};\n\n\tif (!bookedTime) {\n\t\treturn ;\n\t}\n\n\treturn
\n\t\t\n\t\t\t\tonSelectTime(day, time, undefined, selectIndexTime)}\n\t\t\tonSelectNextWeek={selectNextWeek}\n\t\t\tonSelectPreviousWeek={onSelectPreviousWeek}\n\t\t\tstartDate={startDate}\n\t\t\tlocations={locations}\n\t\t\tlocationId={selectedLocation.id}\n\t\t\tonSelectLocation={onSelectLocation}\n\t\t\trowCount={rowCount}\n\t\t\tselectedTime={selectedTime}\n\t\t\twithHeader={withHeader}\n\t\t\tclassName={className}\n\t\t\twithoutLocationButtons={withoutLocationButtons}\n\t\t\tnearestTime={nearestDate}\n\t\t\tonNearestTimeClick={onNearestTimeClick}\n\t\t/>\n\t\t{loading\n\t\t\t&&
\n\t\t\t\t\n\t\t\t
\n\t\t}\n\t
;\n};\n\nexport default DoctorBookedTimeBlock;\n","import React from 'react';\n\nimport { DoctorBookedValues } from '@app/objects/Doctor';\nimport { daysShort, monthsShort } from '@app/utils/DoctorBookedTimeBlock/DoctorBookedTimeBlock';\n\ninterface Props {\n\tleftChevronDisabled: boolean;\n\tonSelectPreviousWeek: () => void;\n\tonSelectNextWeek: () => void;\n\tcolumns: DoctorBookedValues;\n\tdisabledButtons?: boolean;\n\tdaysRange?: number;\n}\n\nconst DoctorBookedTimeBlockHeader: React.FC = ({\n\tleftChevronDisabled,\n\tonSelectNextWeek,\n\tonSelectPreviousWeek,\n\tcolumns,\n\tdisabledButtons,\n\tdaysRange,\n}) => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t{Object.keys(columns).slice(0, daysRange).map((day, index) => {\n\t\t\t\tconst [_, year, month, date] = day.match(/(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)/) ?? [];\n\t\t\t\treturn \n\t\t\t\t\t{daysShort[new Date(+new Date(day) + new Date().getTimezoneOffset() * 60000).getDay()]}\n\t\t\t\t\t
\n\t\t\t\t\t{`${monthsShort[+month - 1]} ${date}`}\n\t\t\t\t;\n\t\t\t})}\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default DoctorBookedTimeBlockHeader;\n","import * as React from 'react';\nimport ContentLoader from 'react-content-loader';\nimport { NavLink } from 'react-router-dom';\n\nimport ImageWithSkeleton from '@commonTuna/react/components/UI/ImageWithSkeleton/ImageWithSkeleton';\n\nimport dummyAvatar from '@images/no-image-available.jpg';\n\ninterface Props {\n\tsrc: string;\n\talt: string;\n\tpath?: string;\n\twithLink?: boolean;\n\thideWhenLoading?: boolean;\n}\n\nconst DoctorAvatar: React.FC = ({\n\tpath, src, alt, withLink = true, hideWhenLoading = true,\n}) => {\n\tconst [loading, setLoading] = React.useState(true);\n\tconst [hide, setHide] = React.useState(hideWhenLoading);\n\n\tReact.useEffect(() => {\n\t\tif (hideWhenLoading) {\n\t\t\tsetHide(false);\n\t\t}\n\t}, []);\n\n\tconst inner = (<>\n\t\t setLoading(false)}\n\t\t\tonError={() => setLoading(false)}\n\t\t\talt={alt}\n\t\t/>\n\t\t{loading ? \n\t\t\t\n\t\t : null}\n\t);\n\n\treturn withLink ? \n\t\t{inner}\n\t : inner;\n};\n\nexport default DoctorAvatar;\n","import * as React from 'react';\nimport { Link } from 'react-router-dom';\n\nimport Modal from 'antd/lib/modal';\n\nimport LoginPage from '@common/react/components/Pages/Login/Login';\n\nimport '@app/scss/pages/login.scss';\n\ninterface Props {\n\tvisible: boolean;\n\thandleClose: () => void;\n\tafterLogin: () => void;\n}\n\nconst LoginForm: React.FC = ({ visible, handleClose, afterLogin }) => {\n\treturn (\n\t\t document.querySelector('.app-container') || document.body}\n\t\t>\n\t\t\t
\n\t\t\t\t <>}\n\t\t\t\t\twithFieldTitle\n\t\t\t\t\tbuttons={Register}\n\t\t\t\t\tafterLogin={afterLogin}\n\t\t\t\t/>\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default LoginForm;\n","import React from 'react';\n\nimport * as Yup from 'yup';\nimport Select from 'antd/lib/select';\nimport Modal from 'antd/lib/modal';\n\nimport Button from '@common/react/components/Forms/Button';\nimport Autocomplete from '@common/react/components/Forms/Autocomplete/Autocomplete';\nimport { nonEmptyArray, notNullValidator, simpleStringValidator } from '@common/react/utils/validationHelpers';\nimport { getPopupContainer } from '@common/react/components/Utils/Utils';\nimport { ItemProvider } from '@common/react/components/Core/ItemProvider/ItemProvider';\nimport { ItemEditor } from '@common/react/components/Core/ItemEditor/ItemEditor';\nimport { useApplicationContext } from '@common/react/components/Core/Application/Application';\nimport { clearListFields } from '@common/react/utils/utils';\nimport { useMobileView } from '@common/react/hooks/useMobileView';\n\nimport { dateToUtcString } from '@commonTuna/react/components/Utils';\nimport { BaseInvite } from '@commonTuna/react/objects/BaseInvite';\n\nimport { Appointment, AppointmentProcedure } from '@app/objects/Appointment';\nimport { User } from '@app/objects/User';\nimport { Location } from '@app/objects/Location';\nimport { Doctor, DoctorBookedTime, DoctorProcedure } from '@app/objects/Doctor';\nimport LoginForm from '@app/components/UI/ScheduleAppointmentModal/LoginForm';\nimport DoctorBookedTimeBlockTable from '@app/components/UI/DoctorBookedTimeBlock/DoctorBookedTimeBlock';\nimport { getAppContainer, getLocationName } from '@app/utils/Utils';\n\ninterface ComponentProps {\n\tshowDoctor?: boolean;\n\tpatient: User | null;\n\tdoctorFixed?: boolean;\n\tdoctor?: Doctor;\n\tafterSubmit?: (items?: Array) => void;\n\tloadInvites?: () => void;\n\tscheduledTime?: number;\n\tselectedLocation?: Location | null;\n\tlocationItems?: Array;\n\tonModalClose?: () => void;\n\tasNearestDate?: boolean;\n\tdoctorProcedures?: Array;\n\tdoctorBookedTime?: DoctorBookedTime;\n\tdaysRange?: number;\n\tshowMobile?: boolean;\n\tdoctors?: Array;\n\tlocationId?: number;\n}\n\nexport interface SelectedTimeIndex {\n\tkey: string;\n\tstart: string;\n}\n\ninterface FormValues {\n\tid: number | null;\n\tfirstName: string | null;\n\tlastName: string | null;\n\tpatientId: number | null;\n\tpatient: User | null;\n\tscheduledTime: number | null;\n\tprocedures: Array;\n\tlocation: Location | null;\n\tlocationId: number | null;\n\tdoctorProcedureIds: Array;\n\tduration: string | null;\n\tnotes: string;\n\tdoctor: Doctor | null;\n\tdoctorProcedure: DoctorProcedure | null;\n\tselectedTimeIndex: SelectedTimeIndex | undefined;\n}\n\nconst getDuration = (timeSpan: string): string | null => {\n\tconst timeArr = timeSpan.split(':');\n\tif (timeArr.length === 3) {\n\t\tconst hours = +timeArr[0] ? `${+timeArr[0]} h ` : '';\n\t\tconst minutes = `${+timeArr[1]} m`;\n\t\treturn `${hours}${minutes}`;\n\t}\n\treturn null;\n};\n\nexport const getMinutesFromDuration = (duration: string) => {\n\tconst [h, m] = duration.split(':');\n\n\treturn +(h || 0) * 60 + +(m || 0);\n};\n\nconst { success, error } = Modal;\n\nconst Option = Select.Option;\n\nexport const dateStringRequiredValidator = Yup.string().matches(/([0-9]{2}-[0-9]{2}-[0-9]{4})/, 'Invalid date').required();\n\nconst validationSchemaWithPatientCreating = Yup.object().shape({\n\tlocationId: notNullValidator.required(),\n\tscheduledTime: notNullValidator.required(),\n\tduration: simpleStringValidator,\n\tprocedures: nonEmptyArray('Procedures should not be empty'),\n});\n\nexport const getDaysCount = () => {\n\tif (typeof window === 'undefined') return 3;\n\tif (window.innerWidth >= 1990) return 7;\n\tif (window.innerWidth >= 1770) return 6;\n\tif (window.innerWidth >= 1580) return 5;\n\tif (window.innerWidth >= 1366) return 4;\n\treturn 3;\n};\n\nexport const getDaysCountMobile = () => {\n\tif (typeof window === 'undefined') return 4;\n\n\tconst count = Math.floor((window.innerWidth - 160) / 82);\n\n\treturn count > 7 ? 7 : count < 2 ? 2 : count;\n};\n\nconst getRowsCount = () => {\n\tif (typeof window === 'undefined' || window.innerHeight >= 1000) {\n\t\treturn 11;\n\t}\n\n\tif (typeof window !== 'undefined' && window.innerWidth < 650) {\n\t\treturn 5;\n\t}\n\n\treturn Math.ceil((window.innerHeight - 650) / 50);\n};\n\nconst FormHandler: React.FC<{ formik, patient, doctor, formRef}> = ({\n\tformik, patient, doctor, formRef,\n}) => {\n\tReact.useEffect(() => {\n\t\tformik.setValues((prev) => ({\n\t\t\t...prev,\n\t\t\tpatientId: patient?.id || -1,\n\t\t\tpatient: patient || null,\n\t\t\tfirstName: patient?.firstName || '',\n\t\t\tlastName: patient?.lastName || '',\n\t\t}));\n\t}, [patient]);\n\n\tReact.useEffect(() => {\n\t\tif (doctor) {\n\t\t\tformik.setValues((prev) => ({\n\t\t\t\t...prev,\n\t\t\t\tdoctor: doctor || null,\n\t\t\t\tdoctorId: doctor?.id,\n\t\t\t}));\n\t\t}\n\t}, [doctor]);\n\n\tReact.useEffect(() => {\n\t\tif (formik) {\n\t\t\tformRef.current = formik;\n\t\t}\n\t}, [formik]);\n\n\treturn <>;\n};\n\nconst ScheduleAppointment: React.FC = ({\n\tshowDoctor,\n\tpatient,\n\tdoctor,\n\tdoctorFixed = false,\n\tafterSubmit,\n\tloadInvites,\n\tscheduledTime,\n\tselectedLocation,\n\tlocationItems,\n\tonModalClose,\n\tasNearestDate,\n\tdoctorProcedures,\n\tdoctorBookedTime,\n\tdaysRange,\n\tshowMobile,\n\tdoctors,\n\tlocationId,\n}) => {\n\tconst [locations, setLocations] = React.useState>(locationItems ?? []);\n\tconst [doctorBookedTimes, setDoctorBookedTimes] = React.useState(doctorBookedTime);\n\tconst [procedures, setProcedures] = React.useState>(doctorProcedures || []);\n\tconst [isLoading, setLoading] = React.useState(false);\n\tconst [visible, setVisible] = React.useState(false);\n\tconst [invites, setInvites] = React.useState>([]);\n\tconst [companyTemplateInvite, setCompanyTemplateInvite] = React.useState(null);\n\tconst [days, setDays] = React.useState(daysRange || (showMobile ? 4 : 3));\n\tconst [rowCount, setRowCount] = React.useState(11);\n\tconst formRef = React.useRef();\n\tconst { request } = useApplicationContext();\n\n\tconst initialValues = React.useMemo(() => {\n\t\tconst values = {} as FormValues;\n\t\treturn ({\n\t\t\t...{} as Appointment,\n\t\t\tpatientId: patient?.id || -1,\n\t\t\tpatient: patient || null,\n\t\t\tfirstName: patient?.firstName || '',\n\t\t\tlastName: patient?.lastName || '',\n\t\t\tdoctor: doctor || null,\n\t\t\tdoctorId: doctor?.id,\n\t\t\tduration: procedures[0]?.duration || null,\n\t\t\tscheduledTime: scheduledTime && !asNearestDate\n\t\t\t\t? scheduledTime\n\t\t\t\t: values.scheduledTime || null,\n\t\t\tnotes: values.notes || '',\n\t\t\tlocation: selectedLocation || (values.location || locations.length > 0 ? locations[0] : null),\n\t\t\tlocationId: locationId || (selectedLocation\n\t\t\t\t? selectedLocation.id\n\t\t\t\t: values.locationId || locations.length > 0 ? locations[0].id : -1),\n\t\t\tprocedures: values.procedures || [{\n\t\t\t\tid: -1,\n\t\t\t\tdeleted: false,\n\t\t\t\tdoctorProcedure: null,\n\t\t\t\tstartProcedureTime: scheduledTime || values.scheduledTime || null,\n\t\t\t\tappointmentId: null,\n\t\t\t\tcount: 1,\n\t\t\t} as unknown as AppointmentProcedure],\n\t\t\tdoctorProcedure: values.doctorProcedure || null,\n\t\t\tdoctorProcedureIds: values?.doctorProcedureIds ? values.doctorProcedureIds.length > 0 ? values.doctorProcedureIds : [] : [],\n\t\t\tselectedTimeIndex: undefined,\n\t\t});\n\t}, [patient, doctor?.id, scheduledTime, selectedLocation]);\n\n\tconst handleClose = React.useCallback(() => {\n\t\tsetVisible(false);\n\t\tonModalClose && onModalClose();\n\t}, []);\n\n\tconst afterLogin = () => {\n\t\thandleClose();\n\t\tModal.confirm({\n\t\t\ttitle: `You wanted to create an appointment with ${doctor?.nameEn} ${\n\t\t\t\tdateToUtcString(formRef.current?.values.scheduledTime, 'hh:mm a')}?`,\n\t\t\tcontent: '',\n\t\t\tclassName: 'schedule-confirm',\n\t\t\ticon: <>,\n\t\t\tokText: 'Yes',\n\t\t\tokType: 'primary',\n\t\t\tcancelText: 'No',\n\t\t\tokButtonProps: {\n\t\t\t\tclassName: 'btn btn-primary',\n\t\t\t},\n\t\t\tcancelButtonProps: {\n\t\t\t\tclassName: 'btn btn-default',\n\t\t\t},\n\t\t\tgetContainer: getAppContainer,\n\t\t\tonOk() {\n\t\t\t\tformRef.current?.submitForm();\n\t\t\t},\n\t\t\tonCancel: () => {\n\t\t\t\tfillDoctorProcedureFields(procedures[0]);\n\t\t\t\tformRef.current?.setFieldValue('scheduledTime', scheduledTime && !asNearestDate\n\t\t\t\t\t? scheduledTime\n\t\t\t\t\t: null);\n\t\t\t\tif (locations.length) {\n\t\t\t\t\tformRef.current?.setFieldValue('locationId', locations[0].id);\n\t\t\t\t\tformRef.current?.setFieldValue('location', locations[0]);\n\t\t\t\t}\n\t\t\t},\n\t\t});\n\t};\n\n\tconst onSave = React.useCallback(() => {\n\t\tsuccess({\n\t\t\tcontent: <>\n\t\t\t\t\n\t\t\t\t{' '}\n\t\t\t\tAppointment has been successfully created.\n\t\t\t,\n\t\t\twrapClassName: 'success-modal',\n\t\t\ticon: null,\n\t\t});\n\t}, []);\n\n\tconst loadLocations = (doctorId?: number) => {\n\t\tconst locationData = {\n\t\t\ttext: '',\n\t\t\tdoctorId,\n\t\t};\n\t\trequest('locationList', locationData)\n\t\t\t.then((response: any) => {\n\t\t\t\tsetLocations(response.list);\n\t\t\t\tif (formRef.current && formRef.current.values.locationId === -1 && response.list.length > 0) {\n\t\t\t\t\tformRef.current?.setFieldValue('locationId', response.list[0].id);\n\t\t\t\t\tformRef.current?.setFieldValue('location', response.list[0]);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch((err) => {\n\t\t\t\terror({\n\t\t\t\t\ttitle: 'Error',\n\t\t\t\t\tcontent: `Something went wrong. ${err}`,\n\t\t\t\t});\n\t\t\t});\n\t};\n\n\tconst fillDoctorProcedureFields = (doctorProcedure: DoctorProcedure) => {\n\t\tformRef.current?.setFieldValue('doctorProcedureId', +doctorProcedure.id);\n\t\tformRef.current?.setFieldValue('doctorProcedureIds', [+doctorProcedure.id]);\n\t\tformRef.current?.setFieldValue('doctorProcedure', doctorProcedure);\n\t\tformRef.current?.setFieldValue('procedures', [{\n\t\t\tdoctorProcedure,\n\t\t\tdoctorProcedureId: +doctorProcedure.id,\n\t\t\tduration: formRef.current?.values.duration,\n\t\t\tstartProcedureTime: formRef.current?.values.scheduledTime,\n\t\t\tappointmentId: -1,\n\t\t}]);\n\t\tformRef.current?.setFieldValue('doctor', doctorProcedure.doctor);\n\t\tformRef.current?.setFieldValue('duration', doctorProcedure.duration);\n\t};\n\n\tconst loadProcedures = (doctorId?: number, locationId?: number) => {\n\t\tconst proceduresData = {\n\t\t\ttext: '',\n\t\t\tdoctorId,\n\t\t\tlocationId,\n\t\t\twithProcedure: true,\n\t\t\twithDoctor: true,\n\t\t\twithAppointmentType: true,\n\t\t\tpublished: true,\n\t\t\thasGlobalProcedure: true,\n\t\t\twithGlobalProcedure: true,\n\t\t};\n\n\t\trequest('doctorProcedureList', proceduresData)\n\t\t\t.then((response: any) => {\n\t\t\t\tconst list = response.list.filter((p) => p.procedure?.globalProcedureId);\n\t\t\t\tsetProcedures(list);\n\t\t\t\tif (formRef.current && list.length > 0) {\n\t\t\t\t\tfillDoctorProcedureFields(response.list[0]);\n\t\t\t\t}\n\t\t\t\tformRef.current?.setFieldValue('locationId', locationId);\n\t\t\t})\n\t\t\t.catch((err) => {\n\t\t\t\terror({\n\t\t\t\t\ttitle: 'Error',\n\t\t\t\t\tcontent: `Something went wrong. ${err}`,\n\t\t\t\t});\n\t\t\t});\n\t};\n\n\tconst handleResize = () => {\n\t\tsetDays((showMobile ? getDaysCountMobile : getDaysCount)());\n\t\tsetRowCount(getRowsCount());\n\t};\n\n\tconst endDate = React.useMemo(() => {\n\t\tif (!doctorBookedTimes?.endDate) return;\n\t\tconst date = new Date(doctorBookedTimes.endDate);\n\t\treturn +new Date(date.getFullYear(), date.getMonth(), date.getDate() - (7 - days), date.getHours(), date.getMinutes(), date.getSeconds(), 0);\n\t}, [doctorBookedTimes?.endDate]);\n\tconst isMobile = useMobileView(undefined, handleResize);\n\n\tReact.useEffect(() => {\n\t\tif (!locationItems) {\n\t\t\tloadLocations(doctor?.id);\n\t\t}\n\n\t\tif (formRef.current?.values) {\n\t\t\tif (procedures.length > 0) {\n\t\t\t\tfillDoctorProcedureFields(procedures[0]);\n\t\t\t} else {\n\t\t\t\tloadProcedures(formRef.current?.values.doctor?.id || doctor?.id, formRef.current?.values.locationId || undefined);\n\t\t\t}\n\t\t}\n\n\t\tif (doctorBookedTimes) {\n\t\t\tconst keys = Object.keys(doctorBookedTimes.values);\n\n\t\t\tif (!doctorBookedTimes.nearestTime && endDate && keys.every((key) => {\n\t\t\t\tif (endDate && +new Date(key) <= endDate) {\n\t\t\t\t\treturn doctorBookedTimes.values[key].length === 0;\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t})) {\n\t\t\t\tconst nearestTimeKey = keys.find((key) =>\n\t\t\t\t\t(doctorBookedTimes.values[key]?.length > 0 ? doctorBookedTimes.values[key].some((value) => !value.booked) : false));\n\n\t\t\t\tif (nearestTimeKey) {\n\t\t\t\t\tconst tempNearestTime = +new Date(nearestTimeKey);\n\t\t\t\t\tif (endDate && tempNearestTime > endDate) {\n\t\t\t\t\t\tdoctorBookedTimes.nearestTime = tempNearestTime.valueOf();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst keysForRemove = endDate && Object.keys(doctorBookedTimes.values).map((key) => {\n\t\t\t\tif (endDate && +new Date(key) > endDate) {\n\t\t\t\t\treturn key;\n\t\t\t\t}\n\t\t\t\treturn '';\n\t\t\t});\n\n\t\t\tkeysForRemove && keysForRemove.length > 0 && keysForRemove.map((key) => {\n\t\t\t\tif (key) {\n\t\t\t\t\tdelete doctorBookedTimes.values[key];\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tsetDays(daysRange || (showMobile ? getDaysCountMobile : getDaysCount)());\n\t}, []);\n\n\tReact.useEffect(() => {\n\t\tif (scheduledTime && !asNearestDate && selectedLocation && formRef.current) {\n\t\t\tformRef.current?.setFieldValue('scheduledTime', scheduledTime);\n\t\t\tformRef.current?.setFieldValue('location', selectedLocation);\n\t\t\tformRef.current?.setFieldValue('locationId', selectedLocation.id);\n\t\t}\n\n\t\tif (scheduledTime && selectedLocation) {\n\t\t\tloadProcedures(formRef.current?.values.doctor?.id || doctor?.id, selectedLocation.id);\n\t\t}\n\t}, [scheduledTime, selectedLocation, asNearestDate]);\n\n\tconst value = React.useMemo(() => (doctorBookedTimes && endDate ? {\n\t\t...doctorBookedTimes,\n\t\tendDate,\n\t} : undefined), [doctorBookedTimes, endDate]);\n\n\treturn <>\n\t\t {\n\t\t\t\tconst data = {\n\t\t\t\t\t...values,\n\t\t\t\t\tpatient: null,\n\t\t\t\t\tdoctor: null,\n\t\t\t\t\tlocation: null,\n\t\t\t\t\troom: null,\n\t\t\t\t\tappointmentType: null,\n\t\t\t\t\tscheduledTime: values.scheduledTime!,\n\t\t\t\t\tprocedures: clearListFields(values.procedures, ['doctorProcedure', 'appointment', 'room', 'doctorPayer']),\n\t\t\t\t};\n\t\t\t\treturn {\n\t\t\t\t\tid: -1,\n\t\t\t\t\tdoctorPath: doctor?.portalPathEn,\n\t\t\t\t\tappointments: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t...data,\n\t\t\t\t\t\t\tscheduledTime: values.scheduledTime,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t} as any;\n\t\t\t}}\n\t\t>\n\t\t\t {\n\t\t\t\t\tif (values.patient) {\n\t\t\t\t\t\tsetLoading(true);\n\t\t\t\t\t\tsubmit()\n\t\t\t\t\t\t\t.then((response: any) => {\n\t\t\t\t\t\t\t\tonSave();\n\t\t\t\t\t\t\t\tsetLoading(false);\n\t\t\t\t\t\t\t\tsetVisible(false);\n\n\t\t\t\t\t\t\t\t// Try remove time block if appointment successfully scheduled\n\t\t\t\t\t\t\t\tif (doctorBookedTimes && values.selectedTimeIndex) {\n\t\t\t\t\t\t\t\t\tconst current = { ...doctorBookedTimes };\n\t\t\t\t\t\t\t\t\tcurrent.values[values.selectedTimeIndex.key] = current.values[values.selectedTimeIndex.key]\n\t\t\t\t\t\t\t\t\t\t.filter((q) => q.start !== values.selectedTimeIndex!.start);\n\t\t\t\t\t\t\t\t\tsetDoctorBookedTimes(current);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tconst newAppointment = response.appointments[0];\n\n\t\t\t\t\t\t\t\tif (newAppointment.invites?.length > 0) {\n\t\t\t\t\t\t\t\t\tconst companyInvite = newAppointment.invites.find((inv) => inv.isCompanyTemplate && !inv.answered);\n\t\t\t\t\t\t\t\t\tif (companyInvite) {\n\t\t\t\t\t\t\t\t\t\tsetCompanyTemplateInvite(companyInvite);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tsetInvites(newAppointment.invites.filter((inv) => !inv.isCompanyTemplate));\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tafterSubmit && afterSubmit(newAppointment.invites);\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.catch((err: string) => {\n\t\t\t\t\t\t\t\tsetLoading(false);\n\t\t\t\t\t\t\t\terror({\n\t\t\t\t\t\t\t\t\ttitle: 'Error',\n\t\t\t\t\t\t\t\t\tcontent: err,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetVisible(true);\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t}}\n\t\t\t\tedit={(formik) =>
\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t{doctors ? <>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tconst selectedDoctor = option?.item || doctors?.find((q) => q.id === value);\n\n\t\t\t\t\t\t\t\t\tif (selectedDoctor && formik.values.doctor?.id !== selectedDoctor?.id) {\n\t\t\t\t\t\t\t\t\t\tloadProcedures(value, formik.values.locationId);\n\n\t\t\t\t\t\t\t\t\t\tformik.setFieldValue('doctor', selectedDoctor);\n\n\t\t\t\t\t\t\t\t\t\tformik.setFieldValue('doctorProcedure', null);\n\t\t\t\t\t\t\t\t\t\tformik.setFieldValue('scheduleTime', null);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{doctors?.map((doctor, index) =>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{doctor.nameEn}\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t : null}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t{formik.values.locationId && formik.values.doctor?.id && formik.values.duration && (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdays={days}\n\t\t\t\t\t\t\t\trowCount={rowCount}\n\t\t\t\t\t\t\t\tinterval={formik.values.duration ? getMinutesFromDuration(formik.values.duration) : undefined}\n\t\t\t\t\t\t\t\tselectedTime={formik.values.scheduledTime || undefined}\n\t\t\t\t\t\t\t\tinitStartDay={(asNearestDate && scheduledTime) || undefined}\n\t\t\t\t\t\t\t\tselectLocationById={formik.values.locationId || undefined}\n\t\t\t\t\t\t\t\tonSelect={(time: number, location: Location, asNearestTime?: boolean, selectedTimeIndex?: SelectedTimeIndex) => {\n\t\t\t\t\t\t\t\t\tformik.setFieldValue('scheduledTime', time);\n\t\t\t\t\t\t\t\t\tif (formik.values.procedures?.length) {\n\t\t\t\t\t\t\t\t\t\tformik.setFieldValue('procedures[0].startProcedureTime', time);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tformik.setFieldValue('selectedTimeIndex', selectedTimeIndex);\n\t\t\t\t\t\t\t\t\t/* formik.setFieldValue('location', location);\n\t\t\t\t\t\t\t\t\tformik.setFieldValue('locationId', location.id); */\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\t\twithoutLocationButtons\n\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\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tSchedule Appointment\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
}\n\t\t\t/>\n\t\t\n\t\t\n\t;\n};\n\nexport default ScheduleAppointment;\n\ninterface ProcedureSelectComponentProps {\n\tformik: any;\n\tprocedures: Array;\n\tdoctorFixed: boolean;\n}\n\nconst ProcedureSelectComponent: React.FC = ({ formik, procedures, doctorFixed }) => {\n\treturn {\n\t\t\tformik.setFieldValue('doctorProcedureId', +value);\n\t\t\tformik.setFieldValue('doctorProcedureIds', [+value]);\n\t\t\tformik.setFieldValue('doctorProcedure', option.props.item);\n\t\t\tformik.setFieldValue('procedures', [{\n\t\t\t\tdoctorProcedure: option.props.item,\n\t\t\t\tdoctorProcedureId: +value,\n\t\t\t\tduration: formik.values.duration,\n\t\t\t\tstartProcedureTime: formik.values.scheduledTime,\n\t\t\t\tappointmentId: -1,\n\t\t\t}]);\n\t\t\tformik.setFieldValue('doctor', option.props.item.doctor);\n\t\t\tformik.setFieldValue('duration', option.props.item.duration);\n\t\t}}\n\t\tonChange={(value = -1) => {\n\t\t\tif (value === -1) {\n\t\t\t\tformik.setFieldValue('doctorProcedureId', null);\n\t\t\t\tformik.setFieldValue('doctorProcedure', null);\n\t\t\t}\n\t\t}}\n\t>\n\t\t{procedures.map((doctorProcedure) => {\n\t\t\tconst addInfo = `${doctorFixed ? ''\n\t\t\t\t: `${doctorProcedure!.doctor?.nameEn || '-'}, `}${getDuration(doctorProcedure!.duration) || '0 m'}`;\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t{doctorProcedure.procedure.globalProcedure?.name}\n\t\t\t\t\t{' '}\n\t\t\t\t\t(\n\t\t\t\t\t{addInfo}\n\t\t\t\t\t)\n\t\t\t\t\n\t\t\t);\n\t\t})}\n\t;\n};\n\ninterface LocationSelectComponentProps {\n\tformik: any;\n\tlocations: Array;\n\tloadProcedures: (doctorId?: number, locationId?: number) => void;\n}\n\nconst LocationSelectComponent: React.FC = ({ formik, locations, loadProcedures }) => {\n\treturn {\n\t\t\tconst location = locations.find((q) => q.id === value);\n\n\t\t\tif (location && formik.values.locationId !== location?.id) {\n\t\t\t\tloadProcedures(formik.values.doctor?.id, location?.id);\n\n\t\t\t\tformik.setFieldValue('location', location);\n\n\t\t\t\tformik.setFieldValue('doctorProcedure', null);\n\t\t\t\tformik.setFieldValue('scheduleTime', null);\n\t\t\t}\n\t\t}}\n\t>\n\t\t{locations?.map((location, index) =>\n\t\t\t\n\t\t\t\t{getLocationName(location)}\n\t\t\t)}\n\t;\n};\n\ninterface AutocompleteDoctorComponentProps {\n\tformik: any;\n\tloadLocations: (doctorId?: number) => void;\n\tloadProcedures: (doctorId?: number, locationId?: number) => void;\n}\n\nconst AutocompleteDoctorComponent: React.FC = ({ formik, loadLocations, loadProcedures }) => {\n\treturn item.nameEn}\n\t\tvalue={formik.values.doctor ? formik.values.doctor.nameEn : ''}\n\t\tplaceholder=\"Doctor...\"\n\t\trenderOption={(autocompleteItem) => {\n\t\t\treturn ({\n\t\t\t\tkey: autocompleteItem.id.toString(),\n\t\t\t\tvalue: autocompleteItem.nameEn,\n\t\t\t\ttitle: autocompleteItem.nameEn,\n\t\t\t\titem: autocompleteItem,\n\t\t\t\tlabel: autocompleteItem.nameEn,\n\t\t\t});\n\t\t}}\n\t\tonSelect={(value, option) => {\n\t\t\tformik.setFieldValue('doctorProcedureId', -1);\n\t\t\tformik.setFieldValue('doctorProcedureIds', []);\n\t\t\tformik.setFieldValue('doctorProcedure', null);\n\t\t\tformik.setFieldValue('procedures', []);\n\t\t\tformik.setFieldValue('doctor', option.props.item);\n\t\t\tloadLocations(option.props.item.id || -1);\n\t\t\tif (option.props.item.id > 0 && formik.values.locationId) {\n\t\t\t\tloadProcedures(option.props.item.id, formik.values.locationId);\n\t\t\t}\n\t\t}}\n\t\tonChange={(value = '') => {\n\t\t\tif (value === '') {\n\t\t\t\tformik.setFieldValue('doctorProcedureId', null);\n\t\t\t\tformik.setFieldValue('doctorProcedure', null);\n\t\t\t\tformik.setFieldValue('doctor', null);\n\t\t\t\tloadLocations();\n\t\t\t}\n\t\t}}\n\t\tparams={{ locationId: formik.values.locationId }}\n\t\tloadOnFocus\n\t/>;\n};\n","import { DoctorBookedTime } from '@app/objects/Doctor';\nimport { getMinutesFromDuration } from '@app/components/UI/ScheduleAppointmentModal/ScheduleAppointment';\n\nconst dayMS = 3600 * 1000 * 24; // milliseconds in one day\n\nexport const daysShort = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\nexport const monthsShort = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'June', 'July', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec'];\n\nexport const getStartDayInitial = (range: number, selectedTime?: number): number => {\n\tconst now = +new Date();\n\n\tif (!selectedTime) {\n\t\treturn now;\n\t}\n\n\treturn now + Math.floor((selectedTime - now) / (dayMS * range)) * dayMS * range;\n};\n\nexport const filterDisabledTimes = (times: DoctorBookedTime): DoctorBookedTime => {\n\tconst res = { ...times, values: { ...times.values } };\n\n\tObject.entries(res.values).forEach(([key, blocks]) => {\n\t\tres.values[key] = blocks.filter(({ booked }) => !booked);\n\t});\n\n\treturn res;\n};\n\nexport const filterTimesBeforeNow = (times: DoctorBookedTime): DoctorBookedTime => {\n\tconst res = { ...times, values: { ...times.values } };\n\tconst now = new Date();\n\n\tObject.entries(res.values).forEach(([key, blocks]) => {\n\t\tconst [_, year, month, day] = key.match(/(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)/) ?? [];\n\t\tif (+year === now.getFullYear() && +month === 1 + now.getMonth() && +day === now.getDate()) {\n\t\t\tres.values[key] = blocks.filter(({ start }) => {\n\t\t\t\tconsole.log(getMinutesFromDuration(start), now.getHours() * 60 + now.getMinutes());\n\t\t\t\treturn getMinutesFromDuration(start) >= now.getHours() * 60 + now.getMinutes();\n\t\t\t});\n\t\t}\n\t});\n\n\treturn res;\n};\n\nexport const changeBookedTimesByInterval = (times: DoctorBookedTime, interval: number): DoctorBookedTime => {\n\tconst res = { ...times, values: { ...times.values } };\n\n\tObject.entries(res.values).forEach(([key, blocks]) => {\n\t\tres.values[key] = blocks.map((currentBlock, index) => {\n\t\t\tlet duration = getMinutesFromDuration(currentBlock.end) - getMinutesFromDuration(currentBlock.start);\n\n\t\t\tif (duration >= interval || currentBlock.booked) {\n\t\t\t\treturn currentBlock;\n\t\t\t}\n\n\t\t\tfor (let i = index; blocks.length > i; i++) {\n\t\t\t\tif (duration < interval\n\t\t\t\t\t\t&& (!blocks[i + 1] || blocks[i].end !== blocks[i + 1]?.start || blocks[i + 1].booked)) {\n\t\t\t\t\treturn { ...currentBlock, booked: true };\n\t\t\t\t}\n\n\t\t\t\tduration += getMinutesFromDuration(blocks[i + 1].end) - getMinutesFromDuration(blocks[i + 1].start);\n\t\t\t\tif (duration >= interval) {\n\t\t\t\t\treturn currentBlock;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn { ...currentBlock, booked: duration < interval };\n\t\t});\n\t});\n\n\treturn res;\n};\n\nexport const resolveBookedTimes = (times: DoctorBookedTime, interval: number): DoctorBookedTime => {\n\treturn changeBookedTimesByInterval(filterTimesBeforeNow(times), interval);\n};\n","import React from 'react';\n\nimport Button, { ButtonProps } from '@common/react/components/Forms/Button';\nimport { useItemsProviderContext } from '@common/react/components/Core/ItemsProvider/ItemsProvider';\n\ninterface Props extends ButtonProps {\n\tsilent?: boolean;\n\tpageSize?: number;\n\tafterLoad?: () => void;\n}\n\nconst LoadMoreButton: React.FC = ({\n\tchildren, silent, pageSize, afterLoad, ...props\n}) => {\n\tconst context = useItemsProviderContext();\n\tif (!context.state) throw 'Need ItemsProvider context!';\n\tconst { state: { loading, items, pagination }, actions: { loadMore } } = context;\n\tconst [isLoading, setIsLoading] = React.useState(false);\n\tif (items?.length === pagination?.total) {\n\t\treturn null;\n\t}\n\n\treturn {\n\t\t\tsetIsLoading(true);\n\t\t\tloadMore({ pageSize }, false, silent)\n\t\t\t\t.then(() => {\n\t\t\t\t\tsetIsLoading(false);\n\t\t\t\t\tafterLoad && afterLoad();\n\t\t\t\t});\n\t\t}}\n\t>\n\t\t{children}\n\t;\n};\n\nexport default LoadMoreButton;\n","export enum InsuranceType {\n\tMedicarePartB = 0,\n\tMedicaid = 1,\n\tTricare = 2,\n\tChampva = 3,\n\tGroupHealthPlan = 4,\n\tFecaBlkLung = 5,\n\tCommercial = 6,\n\tMedicarePartA = 7,\n}\n\nexport const InsuranceTypeNames = {\n\t[InsuranceType.MedicarePartA]: 'MEDICARE PART A',\n\t[InsuranceType.MedicarePartB]: 'MEDICARE PART B',\n\t[InsuranceType.Medicaid]: 'MEDICAID',\n\t[InsuranceType.Tricare]: 'TRICARE',\n\t[InsuranceType.Champva]: 'CHAMPVA',\n\t[InsuranceType.GroupHealthPlan]: 'GROUP HEALTH PLAN',\n\t[InsuranceType.FecaBlkLung]: 'FECA BLK LUNG',\n\t[InsuranceType.Commercial]: 'COMMERCIAL',\n};\n\nexport enum Gender {\n\tMale = 0,\n\tFemale = 1,\n\tOther = 2,\n\tNone = 3\n}\n\nexport const GenderNames = {\n\t[Gender.Male]: 'Male',\n\t[Gender.Female]: 'Female',\n\t[Gender.Other]: 'Other',\n\t[Gender.None]: 'None',\n};\n\nexport enum AvailableNumbersSearchType {\n\tStartsWith = 0,\n\tAnywhere = 1,\n\tEndsWith = 2\n}\n\nexport const AvailableNumbersSearchTypeNames = {\n\t[AvailableNumbersSearchType.Anywhere]: 'Anywhere',\n\t[AvailableNumbersSearchType.StartsWith]: 'Starts with',\n\t[AvailableNumbersSearchType.EndsWith]: 'Ends with',\n};\n\nexport enum NotificationsType {\n\tSms,\n\tEmail\n}\n\nexport const NotificationTypeNames = {\n\t[NotificationsType.Sms]: 'Sms',\n\t[NotificationsType.Email]: 'Email',\n};\n\nexport enum MailboxType {\n\tSmtp = 0,\n\tImap = 1\n}\n\nexport enum PublishedFilterEnum {\n\tAll = 0,\n\tPublished = 1,\n\tUnpublished = 2\n}\n\nexport const publishedFilterGroup = [\n\t{ caption: 'Published', value: PublishedFilterEnum.Published },\n\t{ caption: 'Unpublished', value: PublishedFilterEnum.Unpublished },\n\t{ caption: 'All', value: PublishedFilterEnum.All },\n];\n","module.exports = \"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4QC2RXhpZgAASUkqAAgAAAACADEBAgAHAAAAJgAAAGmHBAABAAAALgAAAAAAAABQaWNhc2EAAAQAAJAHAAQAAAAwMjIwCZAHACwAAABkAAAAAaADAAEAAAABAAAABaAEAAEAAACQAAAAAAAAAAoqCAEQARgAIAAoADAAOABAAEgBUABYAGABaAFwAHgBgAEBiAEBkAEBqAEBAgABAAIABAAAAFI5OAACAAcABAAAADAxMDAAAAAA/9sAhAAICAgICQgJCgoJDQ4MDg0TERAQERMcFBYUFhQcKxsfGxsfGysmLiUjJS4mRDUvLzVETkI+Qk5fVVVfd3F3nJzRAQgICAgJCAkKCgkNDgwODRMREBARExwUFhQWFBwrGx8bGx8bKyYuJSMlLiZENS8vNUROQj5CTl9VVV93cXecnNH/wgARCAEsASwDASIAAhEBAxEB/8QAHAABAAEFAQEAAAAAAAAAAAAAAAECAwQFBgcI/9oACAEBAAAAAPfgIpiVYAAAACzj0E3MqoAAAAMfXUwmZubKsAAAAaLHiImVeZtwAAADD52mkJqq6e8AAAA03P0IFUz02zAAAAaTlaYCpV1u3AAAAYHnkBKqfQs0AAAA860ymYmZ2vpAAAAA1/lmNEJm56huAAAAA1XmGoTcuei9aAAAABRxnF3snP3l3Y7Rh4lGxru3wAAFvS6KlVVVLIuaVp+2mLuagpRVk5oCjmcKNmmZUxZ0eso6O9hZW3rqmpMzrulAark7G76KSEU2sXC1egjbdRn3ZmUGq34DmOWw+u6ORr9Vq8rW0Yk3czssHHw7NfYTDVb8DH5bncDsujqHN8lawJi3dyK/Uub812GTb9crqarfgavSabF6Lo5HPUcznKqKtw5/qMbTWa/Qohq+gA0VnG0ed1swkiETCEzVVMKWr6ADm8DJ08dpVQ896rku9yOB6TdeedXubXAa3tsvj3QdRGr6ECnk6bi9nXJ+fvVfIPRuj8W9fz/Eey9c8v5jq56HyT0De9VOr6EBR5/Yidvt7vgfrXjWbttB69zNHF/QHinoPYeebHyfY+gd9Gs6IA87wbWN0u6yPAvVvIev1ln0by6cT1DQa/svK/S/P/Tth0rW9EAaLzqxuujzr3j3f+e+k67lN7zfqXKa30fzPWZPScg6P0edZ0YA4nXdHkV1zMxKYmEiBVGt6QAcBHTzM1anUW87L5zZ6zs9ZiajHzuv867Pdy1vSApKPP7vUVJeaajocPY8X1Gu9P8AOcKvD2XpHkfqe2lrukBSYPD3+orJ4+nf6W5RiX9bsKLdF6nC6jfJ1/Q1FJDS8Xe3ld+aMSZuZMyqgEyqqq21RTCloePsWeg7lZ8pzcrY9qCQFRKpRTFMaLlMax2XRnnFWVm9eTKRUKkpIooop0mjw8PttocZZz8vfVympMpmVU1JKKLVu1ha/Awt5tkchfysnPv36qpmZmZmqapmSm3Ys66mjD19/ZTb53Py8i5Z3NddU1TM1VTNUpqpijHsaexNqjOuzFjFi5Tkba9XNUzKtVUmVShRRbtRVMxITMzNQqJVJlIpUggJASAkqAKQAAAKgH//xAAUAQEAAAAAAAAAAAAAAAAAAAAA/9oACAECEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH//xAAUAQEAAAAAAAAAAAAAAAAAAAAA/9oACAEDEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH//xAAnEAAABQQBBQEBAQEBAAAAAAABAgMEBQAGERITEBQVIDBAFhdQB//aAAgBAQABAgD4Cfffb/gHVMrvyb7lVKf9qyon3335N9yLEP8ArEVl999999992q/63qgn5N999999wOgf9UwffffffffffeLN+qcDfffffffffeF/XJIb777777778kej+ubZ78m/JycnJvENv2SLB0jycvJy8nIUYaO/bKRMpEbbZCgC34L95izVqhGljixzREZgkklJJrLqpunEmhKAsC5VvyKKOZdau34AS49aBQjp9INpOXkYl0B+QV2Uz5nzXmvN+c8553zozbeQ+Ch3TjKTQIPwfhPCeF8N4cYg8S7h/Eigi9Fdw7ZMSRwR/Ydh2HZAy7PtV0fhJKvVmy8bQew9BA6J0HDRRgDdlHIJl9MY6vPi8VlTxikZ7ScnBXHJ3vD3ZKXiwvJ/dsdckVMrTpSzEnAz7W55a9Ie8qzQ08+Dk6oydQ9RvtdETAzNlMbnRknChjuWgTTS3WIVd9MgjnllM7zbNx6vPhImMnIt2LOPL63FEQNuSViQdmHtmQtttbR7buGLh2dpsp+OiYODtKXsSGsb0d/B+oFLleP4NWs+uB9sVkKAfZ58JxFu6KSThbboPRW/o2a/0Jg9p1fkFLiKt/wcxSyr+/Er9hLknZf/AEP/AEOAuXo7+Ag+hyrd8CgPCL5AXoW0SrGk7nk6sgtzP6sqQq+JWHhnFgWtbF7Aybf57AWxmnnxNQnMblM5aLlMAv6t7ozc3NMqpWXV9v7UhklGLq4hsYFlQ/8AQrjelN5mx3XR58nxDnFQx2YEoKdjbx6uyPt2PnTWcs/doSIjYshesdAXAtflS5mCgy0TJ9HfymIp2UpGcciiUoUpakTH/wAnKxdoQ8lbDWKQtEIe57at6EeM39jltE1lSUR/JfydqwIdHnzmTMkyogWg/M8+b0zCsY6zclbVxTtxXLMMZOCu255yVuhorcEtbU9NXOneS1yPVm93QT7q7+SplKYUHXNXs+SfXqyuSSulVye8HVyCxq7nsc/uQks0VPJVAR8Iz6u/lJKHNHiHqe0X9lBGwlqy1tPLOUs+QtQlhp2c/sl/ZzWxZKzWNl/wMDC9XXynDmFo6CaJMd73qkh57zvmySvc9xz82d9s9ca6acZWfvmp6jUajVayW2zpJICgQsfWaz1zWc5z9BERnaOA0erYTznL9EgEKgGc5znOc5+2c5lqOidJUsNW++00CYJkBMim2c52znOc5z8RERETHVBVI4KpQ62++7pRIAFIpKIrmsgNZ9w9ho1DQ0dbc4qFWpgrzCqdbdMxQLW/IA0FB0DqHQA+I0IHBcOXmMJGBWgNu3FsowGKBvnCDMiemuMYxjGPngSCkLXtAb8PFx8fHx8XFw8XHprrrrjGMY9MY9MVjGMYxjGMYxjGMdMVjH/S/8QAThAAAgECAwMEDAoHBgYDAAAAAQIDAAQFERITITEQQVFhBhQgJDAyQFRxcpGSFSIjUlOBoaPR4jNCZXOCssElQ1BVYrEmNWBjZJN0lKL/2gAIAQEAAz8A8AOUH/AQu6ie5IoMMx5ds13cTWfdlTmDQdQR5ZlW0dj4HTIFJ3HyzZ27nnO7wXRW1hjbpHlemKMc2o+D1Wo9Y+V97Rv0Py9fgO8Qelz5WZrOZMs2yzHg9jZwIeIXM/X5YbO8bdlHJ8ZP6jl6+6N5eopGaL8Z/LY762aF9x4q3QamtJ3gmXS6n29Y5OvuWcqqgkscgBQsbUK2+V97/h5dbYlBokGUg8SQcRV/hrnbRkx80i+L3BonIAV2qBdXKfL/AKifMH4/4ArqVKggjeDViYnuLZhA6gnSfFapOem566aFpPHMsauy8NVYi53bNR6udX3PIvu1MxzlyPo3VHKPinf0UsMTSNwFbXfqprZ9MnDmNGY+NupcuNDppenyVI1JdgAKbeII/wCJquLltUshaiKy6PbQHOvtFD5y+8KUfrr7wofPX3hW/wAdfeFBd5kX3hSS2Tx7aMtxX4woIctQzqO4tGTcHHi+mpxOscuXVkwNHIUaI56tAsiz3CqQ2QzrDPO46wvztKwzzpKwvzpKwrzpawvzpKwvzpawvzkVhZ4XIq0uSRDKGI8CqIxbmoyMWY0GqO8uSswJRBuWsP8AoBWHebrWHebLWHebJWH+bpWH+bR1h/m0fsqw82j9lWXAW8fsqA5lE0nqpQc2zPpqO2ljlVACpqKQAq4pRzil0lQ2bGrfQNUSk9Yq083T3RVp9AnuirT6BPdFWv0MfuirX6FPdq2+hX2Vbj+6X2VB9EvsqEf3a0kN7aOi5HVlmPA5KqD0mtC551qrO6k9Ud1ly50DzVx3UHz3VMjExOVq+c5NKcq0HU2ZPXWkAZcm7kyrfQ7jvq09fwOuWRubPdWUTEVrGdd9SeoO6tMLtWubpyFByAG9mPQKgxlrlVhMTREEAnMlTz1Y2k7w28DXJU5M2rQlWWKSiBkaCc+KrHMN6DXaN9cWpw/Xsmy1bXLP7Ktbu4SGa1aDWQFfXrGfXuFC2u7i3Nhq2UjJntcs8j6tWl7cpBLAYWc5IdWoEmhf372naegqGOrXn4v1ULTGY8NNpnrkjXaa/pOrKsq+C7CS72W10lRp1aeJy6DVvjMLlU2UqeNEWz3HgQaNxjr4V2nlpklTa7T5gPNlVjYTvBDC1xIm58jpQHozqxxGdLeWJreV9yZnUpPRn3Brvqz9bwGzhkPJnE4plDKRvU5Gu+n9XumxTDSEfTLCdoufA5DeKmkwDE7FUylt7WR42XnT8RWE3RuTdJHLOpGiOTIjT0gGrKzxqL4NCiQBWZY+CyA7gAKktuy+WaOBpnSZSI14sdFTdkXZDCvay2rKAHUnfkhzOe4ZmpbTssuZobZ53W4lyjXi2YI5gakx3skSYQrBoZXdefKM/aaucAxdMRtf0UrE/WfGQ1c4xi0mK3XiRyauouOAHUvJ/wAP3nrR/wA4q/wqOyxmDfGzsh+o70bqNdtdkV5d2yMrPFcyRg8Q2zNYXd3Vz24kckqgbNJN4PScjWG2l/bixCRy6SZUj3BSDu9Bp2giaQZOUXV6ct/cd82nreAyVEHpNFqIjY1PJIksafEeFCXPDNfiH+WtF46kjcvIO4uMVs0iguNk6vnvJCMDxByq3wiKQl9rNKMnbLIZfNAp3md8PuI1Qn9HLn8X0EUtlcJdXsqyyIc0RPFBrED2RjExLBsduJMs215eyr846mJ2MkCjUjlXLA6huPAHjWIRdkTYkZYDEZ5ZMgTqyfOr+Lsg+ErOSARGTWyMWB+N443A1c4ph/a1u8auZFbNyQMh6AanwjB9jPpkeESPlFmcx42Qzyq9uLyfFrrXocMIQ5JJ1nOp8TwyW1hdFdmQ5uSBuOdG3wR8NvtnIGL6tBJGRq9wvGEujPC8CawMidZBFba4ebD544w5zMUmYA9BFdrXCT38ySFDmI0z0k9ZPc982nr+AHbQU8y1nwqMj44zFNGNKkKo6K2rq+rPOPwm7wWdDl74tP3ngJEMd0g3AZP+NBhxrak50ZUJRqKpGGGRVCCPr5cuTZyunwXnpYj9N+WjfYQ+IdraNIkOz1556OvKv2V99+Wor6yguotyyoDlxyPOK31FDcTQxWG1RGKh9rlq+yvhe0a52GyylKadWrgAaypEldUw7WgYhW2uWY92o8XszcBNmyuVZNWrLkihikmlkCIgzYncABSIzJY2occ0khyHuisSV85bS2ZehdSn2kmrHFToXOKfiYm/oa+CLJbrtfbZyBNOvTx+o1+yvv8A8tfsv7/8tDGpbiPtTYmNA36TXn9g5e+LT1/ABgQRT28m3tATEfHj+b6OqtIAFLwIq2La1XS55xWkgFtxoNz1nyZXl0MuEz/71l2Kesk/+5HIRt8Pdv8Aux/1FfB+FyFWyll+TT6+J5AMFPXO9dpYPcuDk8g2Sel+TtbE2tmOSXK5fxrvHI73SYdGx0RANL1uau8WuDFAAFXe7twUGrhIyYb9Hf5rJo/qavEv+2r1GiEDfEQ8Xas8CfqmSu27y2tg4UyypHq45ajlX7V+4/NXwNdSz9u7YPFo07PRzg9J5e+LT954HNWFbyOQjnrJDvokAk1nyd/Xf79/5qA7FoP3Mv8AMeSbDr6KdVIkhk3g9XEUuKXqmEnYRJkmfOTxNSQyNHIpV14jor+w4/3r1tLyCyU7oV1t6z0t9ZYpK6+PGYIz0NxqS3mSRSVkjcEdRWkvLO3uU4SxhvRnzUxxzESfpjUa4RIQBqa4bV9QFGKKRwuoqhbLpyFHIZ4X99+Wu3uxRLrRo2pibTnnlmaZWDKxBBzBHEGsY/zO7/8Ac9Xlyt+9zdzSgGNV2jlsuXvi1/eeCNvezxHhqzHobfy63VRRCjl1Xdy3TK/+9ZdiiHoin/mbkEMtneIuSTwpq9dRXwhi1vEy5xqdpJ6q1qxnET0XDj2GkTAWdmyWOWQsegDfT3t7cXLcZZC3oHMKv7ZNnBeTxJx0pIyj2CiSSSSSa12k9ix3xNrT1Wp7fEu2wp2VwB9TgVLg8jgx7WCQjWmeRBHOKw3ZnZ2dwzfNbSo9uZrorT2FYeOlYBUEV7ayXCB4VmQuuWeag767B+aK0/8Aqflrsded4MNMavJ8YqkTIDp+oCgcuT5e19fwRvYw8RynQbugjoNXttLsZLaRZOiryR9OkKTRU6m3mtIFZcmPtI57S4t9In41eW3Y61pMgWfZTAJqB3tmRvFdkHmX3kf40b/BTalRtkiUp1Ooqawt7ia5jKTytlpPMi1jk2I3s0VnqSS4kdDtEGYLdZrGbbsYu7IW2VzLMcl1p4hAz351jbTxCW00xlxqbaIcl+o1hGX/ACy1/wDUlNcC1fDLONWGYkVNEdY9h2KwTyWemLekvx08U+g1bX1tJb3CB42Hs6xV9GzGzlSZOYMdL12QMwBsgvWZErGhHqGwJ+YH31iU/Yzh9lHb53EbJrTWoyABrsg8x+9j/GuyDzH7yP8AGsRs8Tea7tzGqwkA5g5lvRQGQ5Pl7X1/B67yUZ7hkKDXC5jmNADcKA5d/cc/kPy9r6/g9dxM3MWNd8p/FQ7n4Lw6W5AUvuVAeBY1LizXEVwkaSpky6AQCv1k1e4dittZwRwskiITrDE5sxHMRV1hNrBNbxxsXk0nWCebPmIppMFTEboKp2LSNp3DIVc3+Ipa3UcKK6nQUBB1DmOZNXmEJaG3SFtqXDbQE8MugisRs7TC5o4oCbmDaPqDZA9W+nmtLaZwAzxIxy4ZsM6OFYeZ0VWlZ1VA3Ak1Ji8U4nSNZomG5MwCprFLHFpLG2t4HGaBM0YuSwHQaxO2uI0xLD1jRv8AQ8bAdOTZ1fp2QrhojgMJnRNWTatLfXTwWd1MgBeOF3XPhmBnXZFda+18Phly47OKRsvYaxG8tZHv7QwSrIQF0Mma5Dfk3cfLW3r+C0RSP81SazzrvmP0N3SyXlrY68kjGuQ9bVY4d2Qx3NjKWtM1B3EfFYZNxp0ks8Uh/VyR/wDdTXwwMJtLQajMBIR0M24CkwzA7TDIm3uAp9RKsrdMKmsZ850jBl3MMpAdXOKjvMMwm4ThKS1A4X2N5eZ/0Wu8rT9yn8tRXOMW1m8mmCErtD0F+JqzsOyYyWkmdnLJo4EDRJ6eZTUsvZRs4X0Ss0Co2eWliBkaxHC760fEpUu23MAZGcEA8DqyNLJ2axuODTRH2oK/s69/+PJ/LWK3rXIw+9EBQLr+UePV7tX1nZbK+uTNMXY6tbPuPAZt3Hy1t6/gtFnMec7qFd8x/wAVbuXLkhuMTmvby5MySMSYtBT0DUDzVh04jFoxtSpOrjJq940r4UMPuZNqNjsy+WWeXA1Fhd2bprrbOFIQaNOknn4mvhTEI7ma8IiQKuy0cwOZ351hE0DJbIYJeaTU7/YTUklhbWZxPNYZHZTsuZ+bxq7ct8Ph7e0C2h2eezz1fbQV0JxLMBgctj+ard7+e6vrk3IkLNo0mPex6Q1WE5jNpIbYDPUMjJq95qkvbgzyYn8cpGp+R4lFC5+NVvHMj3F40qDfoCaM/tNdvX0912/o2jZ6NlnlkPWFC0leQ3+smGSMDZZZa1K5+NX7U+5/NQweCaPb7UyPqz0ae4+VtvX8FptFHS9GkhlVnOQqxH69WkjaU1M3QN9f+PN7ho81tP7hrZozvbTKi8SUOVWZ4avYateZW9hqA8I39hpZHCpBKT0ZGrnzGb2Vc+YzVd+Yy1eeYyfZWI/5fLV/5i3vL+NYh5ifeX8axLzE++n41iXmf/7X8axPzMe+v41ifmg98Vifmq+8KxPzaP3hWJ/QR+9WJfQx+9WI88cfv1O8iNNpAU55Df4L5CH1j3Gq7uZjwSPT7xrro0Li3mhO/XGy+2iPinl03kB/1eV5wwD/AFNy5VosZJOeSU/Zu7gQ4ldIOBk1e9v5dE0bcwYeV6zEo9NHoojjWQoJhlsB19x/aRI541rPLkGXGtSKc/Kcq1ksaIzyY0d4ageFd7NFn4jUOmh0110bi6kk5id3oFZVzCt+ZoDhW8KT5QdRrOs6zpVG+giuQDmxonkORoI5VqB4HkyFZUSwA450PJjvpldiAcqyoU77kQk0zHU+81pGQFEcmfNSPxUVlvQkGrqPm1CpRxjbOrhtyxmp9QZqI4+TCgeIqM8UHsqIfqCl5lFDo5BXVXVXVQodFDoodH/UH//EABQRAQAAAAAAAAAAAAAAAAAAAID/2gAIAQIBAT8ANP8A/8QAFBEBAAAAAAAAAAAAAAAAAAAAgP/aAAgBAwEBPwA0/wD/2Q==\""],"names":["getAddress","item","addressEn","city","state","zip","filter","e","join","codeAddress","map","maps","address","addressList","onLoad","geocoder","Geocoder","list","includes","concat","forEach","isLocation","currentAddress","geocode","results","status","setCenter","geometry","location","marker","Marker","position","clickable","locationName","getLocationName","avatar","portalOriginalAvatar","portalAvatar","infowindow","google","InfoWindow","content","renderToString","className","style","cursor","portalPathEn","src","alt","value","averageReviewRate","numberWithComma","totalReviewCount","LocationNode","hideMap","hideLink","addressAsLink","portalDescription","dangerouslySetInnerHTML","__html","ariaLabel","onClick","open","anchor","addListener","close","removeListener","undefined","console","log","SimpleMap","navigate","useNavigate","React","setMaps","setMap","listenersRef","addressRef","popupRef","defaultProps","center","lat","lng","zoom","current","Object","values","length","callback","target","event","dataset","link","preventDefault","bootstrapURLKeys","key","defaultCenter","defaultZoom","onGoogleApiLoaded","result","openPopup","renderMarker","LocationModal","props","visible","setVisible","buttonValue","buttonClassName","type","onCancel","title","prefix","path","color","marginRight","width","footer","reviews","showRate","locations","containerClassName","hideTitle","items","index","toString","label","children","defaultActiveKey","specialty","NavLink","to","id","tagClassName","name","dayjs","utc","bookedTime","onSelectTime","onSelectPreviousWeek","onSelectNextWeek","startDate","locationId","onSelectLocation","rowCount","selectedTime","withoutLocationButtons","withHeader","nearestTime","onNearestTimeClick","range","offset","setOffset","entries","day","isSame","time","format","start","Math","floor","getInitialCount","count","setCount","max","keys","maxCount","setMaxCount","renderItem","slice","isSelected","disabled","booked","leftChevronDisabled","Date","company","nameEn","DoctorBookedTimeBlockHeader","columns","daysRange","row","push","node","renderItems","doctorId","onSelect","days","onlyWorkingDays","selectLocationById","propsInterval","interval","hideDisabledTimes","nearestDateRedirect","initStartDay","find","q","selectedLocation","setSelectedLocation","initDoctorId","setInitDoctorId","loading","setLoading","setRange","setInterval","getStartDayInitial","startDay","setStartDate","endDate","setEndDate","bookedTimeRes","setBookedTimeRes","setNearestDate","solvedNearestTime","setSolvedNearestDate","nearestDate","loadTimes","from","request","then","res","message","Message","JSON","stringify","newSelectedLocation","newRage","resolvedBookedTime","resolveBookedTimes","filterDisabledTimes","dates","dateIndex","findIndex","selectedTimeIndex","add","hour","minute","valueOf","selectIndexTime","solvedNearestDate","date","getHours","LogoLoader","size","disabledButtons","match","month","padding","daysShort","getTimezoneOffset","getDay","monthsShort","withLink","hideWhenLoading","hide","setHide","inner","skeleton","dummyAvatar","onError","height","viewBox","backgroundColor","foregroundColor","uniqueKey","x","y","rx","ry","handleClose","afterLogin","centered","destroyOnClose","maskClosable","getContainer","document","querySelector","body","withoutServerPage","afterBaseRedirectUser","withFieldTitle","buttons","Link","getMinutesFromDuration","duration","split","success","Modal","error","Option","Select","validationSchemaWithPatientCreating","Yup","matches","required","shape","notNullValidator","scheduledTime","simpleStringValidator","procedures","nonEmptyArray","getDaysCount","window","innerWidth","getDaysCountMobile","FormHandler","formik","patient","doctor","formRef","setValues","prev","patientId","firstName","lastName","showDoctor","doctorFixed","afterSubmit","loadInvites","locationItems","onModalClose","asNearestDate","doctorProcedures","doctorBookedTime","showMobile","doctors","setLocations","doctorBookedTimes","setDoctorBookedTimes","setProcedures","isLoading","setInvites","setCompanyTemplateInvite","setDays","setRowCount","useApplicationContext","initialValues","notes","deleted","doctorProcedure","startProcedureTime","appointmentId","doctorProcedureIds","onSave","fontSize","wrapClassName","icon","fillDoctorProcedureFields","setFieldValue","doctorProcedureId","loadProcedures","text","withProcedure","withDoctor","withAppointmentType","published","hasGlobalProcedure","withGlobalProcedure","response","p","procedure","globalProcedureId","err","getFullYear","getMonth","getDate","getMinutes","getSeconds","useMobileView","innerHeight","ceil","every","nearestTimeKey","some","tempNearestTime","keysForRemove","readonly","validationSchema","clearForSubmit","data","room","appointmentType","clearListFields","doctorPath","appointments","showMessages","beforeSubmit","actions","submit","newAppointment","invites","companyInvite","inv","isCompanyTemplate","answered","edit","htmlFor","marginBottom","placeholder","popupClassName","defaultValue","getPopupContainer","onChange","option","selectedDoctor","ProcedureSelectComponent","LocationSelectComponent","maxWidth","asNearestTime","dateToUtcString","okText","okType","cancelText","okButtonProps","cancelButtonProps","getAppContainer","onOk","submitForm","addInfo","timeSpan","timeArr","hours","minutes","getDuration","globalProcedure","dayMS","now","times","blocks","currentBlock","end","i","changeBookedTimesByInterval","year","filterTimesBeforeNow","silent","pageSize","afterLoad","context","useItemsProviderContext","pagination","loadMore","setIsLoading","total","InsuranceType","Gender","MedicarePartA","MedicarePartB","Medicaid","Tricare","Champva","GroupHealthPlan","FecaBlkLung","Commercial","AvailableNumbersSearchType","GenderNames","Male","Female","Other","None","NotificationsType","Anywhere","StartsWith","EndsWith","MailboxType","PublishedFilterEnum","NotificationTypeNames","Sms","Email","Published","Unpublished","All","module","exports"],"sourceRoot":""}