{"version":3,"file":"chunks/469.chunk.e4e5d17aaf4b0ba06afd.js","mappings":"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","sources":["webpack://northern-tuna-portal/./ClientApp/components/Pages/DoctorPortal/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/utils/DoctorBookedTimeBlock/DoctorBookedTimeBlock.ts","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/./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 { useHistory } 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/components/Utils';\nimport Stars from '@app/components/UI/Stars/Stars';\n\nimport '@app/scss/components/locations.scss';\nimport LocationInfo from '@app/components/Pages/DoctorPortal/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 history = useHistory();\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\thistory.push(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 moment, { Moment } from 'moment';\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\ninterface ComponentProps {\n\tbookedTime: DoctorBookedTime;\n\tonSelectTime: (day: Moment, time: Moment, 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 (moment.utc(selectedTime).isSame(moment(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 (moment(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 && moment.utc(selectedTime).isSame(moment(day), 'day')\n\t\t\t\t&& moment(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(moment(day).utc(), moment(time.start, 'hh:mm a'), { key: day, start: time.start });\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t
{moment(time.start, 'hh:mm a').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 = moment(startDate).utc() <= moment(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{moment(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 moment from 'moment';\n\nimport { 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 getStartDayInitial = (range: number, selectedTime?: number): number => {\n\tconst now = moment.utc().valueOf();\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 = moment(new Date());\n\n\tObject.entries(res.values).forEach(([key, blocks]) => {\n\t\tif (moment(key).utc().isSame(now, 'day')) {\n\t\t\tres.values[key] = blocks.filter(({ start }) => moment(start, 'HH:mm:ss').valueOf() >= now.valueOf());\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 moment, { Moment } from 'moment';\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\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 ? +moment(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: Moment, time: Moment, nearestDate?: number, selectedTimeIndex?: SelectedTimeIndex) => {\n\t\tonSelect && onSelect(\n\t\t\tnearestDate || day.add(time.hours(), 'hours').add(time.minutes(), '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(moment(endDate).add('day', 1).valueOf(), interval, selectedLocation.id);\n\t};\n\n\tconst onSelectPreviousWeek = () => {\n\t\tloadTimes(moment(startDate).add('day', -1).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 ? +moment(solvedNearestDate) : nearestDate;\n\t\tif (date) {\n\t\t\tif (nearestDateRedirect) {\n\t\t\t\tconst time = moment.utc(date);\n\t\t\t\tonSelectTime(time, time, +time.hours(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 moment from 'moment';\n\nimport { DoctorBookedValues } from '@app/objects/Doctor';\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\t\n\t\t\t\t\t{moment(day).utc().format('ddd')}\n\t\t\t\t\t
\n\t\t\t\t\t{moment(day).utc().format('MMM DD')}\n\t\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 * as moment from 'moment';\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';\n\nimport { TimeSpan } from '@commonTuna/react/components/UI/DayTimeSelectModal/DayTimeSelectModal';\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 { dateToUtcString, getAppContainer, getLocationName } from '@app/components/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\nfunction strToTimeSpan(str: string): TimeSpan {\n\tconst numArr = str.split(':').map(Number);\n\treturn {\n\t\thour: numArr[0],\n\t\tminute: numArr[1],\n\t};\n}\n\nfunction clearListFields(items: Array, fields: Array) {\n\tif (!items) {\n\t\treturn;\n\t}\n\n\tconst newValues = {};\n\tfields.forEach((field) => newValues[field] = null);\n\n\treturn items.map((item: T) => ({\n\t\t...item,\n\t\t...newValues,\n\t}));\n}\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 [duration, setDuration] = React.useState(15);\n\tconst [invites, setInvites] = React.useState>([]);\n\tconst [companyTemplateInvite, setCompanyTemplateInvite] = React.useState(null);\n\tconst [days, setDays] = React.useState(daysRange || (showMobile ? getDaysCountMobile : getDaysCount)());\n\tconst [rowCount, setRowCount] = React.useState(getRowsCount());\n\tconst [isMobile, setIsMobile] = React.useState(typeof window !== 'undefined' ? window.innerWidth < 768 : false);\n\tconst formRef = React.useRef();\n\tconst { request } = useApplicationContext();\n\n\tReact.useEffect(() => {\n\t\tconst resize = () => {\n\t\t\tsetIsMobile(window.innerWidth < 768);\n\t\t};\n\n\t\tresize();\n\t\twindow.addEventListener('resize', resize);\n\t\treturn () => window.removeEventListener('resize', resize);\n\t}, []);\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(() => doctorBookedTimes && moment(doctorBookedTimes.endDate).subtract(7 - days, 'days'), []);\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 (moment(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 = moment(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 (moment(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\twindow.addEventListener('resize', handleResize);\n\n\t\treturn () => window.removeEventListener('resize', handleResize);\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: endDate.valueOf(),\n\t}), [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 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\tMedicare = 0,\n\tMedicaid = 1,\n\tTricare = 2,\n\tChampva = 3,\n\tGroupHealthPlan = 4,\n\tFecaBlkLung = 5,\n\tCommercial = 6\n}\n\nexport const InsuranceTypeNames = {\n\t[InsuranceType.Medicare]: 'MEDICARE',\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","history","useHistory","React","setMaps","setMap","listenersRef","addressRef","popupRef","defaultProps","center","lat","lng","zoom","current","Object","values","length","callback","target","event","dataset","link","preventDefault","push","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","bookedTime","onSelectTime","onSelectPreviousWeek","onSelectNextWeek","startDate","locationId","onSelectLocation","rowCount","selectedTime","withoutLocationButtons","withHeader","nearestTime","onNearestTimeClick","range","offset","setOffset","entries","day","moment","isSame","time","utc","format","start","Math","floor","getInitialCount","count","setCount","max","keys","maxCount","setMaxCount","renderItem","slice","isSelected","disabled","booked","leftChevronDisabled","Date","company","nameEn","DoctorBookedTimeBlockHeader","columns","daysRange","row","node","renderItems","dayMS","resolveBookedTimes","times","interval","res","blocks","currentBlock","duration","getMinutesFromDuration","end","i","changeBookedTimesByInterval","now","valueOf","filterTimesBeforeNow","doctorId","onSelect","days","onlyWorkingDays","selectLocationById","propsInterval","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","message","Message","JSON","stringify","newSelectedLocation","newRage","resolvedBookedTime","dates","dateIndex","findIndex","selectedTimeIndex","add","hours","minutes","selectIndexTime","solvedNearestDate","date","getHours","LogoLoader","size","disabledButtons","padding","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","split","success","Modal","error","Option","Select","clearListFields","fields","newValues","field","Yup","matches","required","validationSchemaWithPatientCreating","shape","notNullValidator","scheduledTime","simpleStringValidator","procedures","nonEmptyArray","getDaysCount","window","innerWidth","getDaysCountMobile","getRowsCount","innerHeight","ceil","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","setIsMobile","useApplicationContext","resize","addEventListener","removeEventListener","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","handleResize","subtract","every","nearestTimeKey","some","tempNearestTime","keysForRemove","readonly","validationSchema","clearForSubmit","data","room","appointmentType","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","getDuration","globalProcedure","silent","pageSize","afterLoad","context","useItemsProviderContext","pagination","loadMore","setIsLoading","total","InsuranceType","Gender","Medicare","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":""}