{"version":3,"sources":["components/physician-directory/PhysicianListing.js","components/form-inputs/FauxDropdown.js","components/loaders/loader.js","components/physician-directory/UsePagination.js","components/physician-directory/PhysicianPagination.js","components/physician-directory/physicianDirectory.js","components/locations/locations.js","App.js","index.js"],"names":["PhysicianList","styled","ul","Physician","li","PhysicianContent","div","PhysicianMedia","PhysicianImage","img","PhysicianName","h2","PhysicianService","span","PhysicianServiceWrap","LocationsWrap","LocationsWrapTitle","h3","Locations","Location","LocationTitle","h4","LocationAddress","PhysicianLink","a","PhysicianListing","props","className","physicians","map","p","HasImage","Image","length","HasLocations","HasServices","ServicesList","src","Url","alt","Title","s","Id","l","DisplayTitle","Address","Street","City","StateCode","Zip","href","detailUrl","UrlName","Dropdown","Label","OptionsList","Trigger","button","Option","Value","FauxDropdown","useState","isActive","setActive","value","setValue","placeholder","setPlaceholder","componentRef","useRef","toggleClass","useEffect","handleClick","e","current","contains","target","document","addEventListener","removeEventListener","options","ref","label","type","onClick","o","passedValue","passedLabel","onSelection","pulse","keyframes","LoadingWrap","LoadingSvg","svg","LoadingText","Loader","width","height","viewBox","id","stroke","strokeWidth","fill","fillRule","transform","d","usePagination","currentPage","totalCount","pageSize","useMemo","start","end","Array","from","_","idx","range","Math","ceil","Pagination","onPageChange","paginationRange","lastPage","classnames","disabled","class","focusable","pageNumber","selected","Header","IconPhysician","DirectoryTitle","h1","Filters","SearchLabel","Search","input","FilterGroup","Submit","Reset","ToolRow","NumOfResults","PhysicianDirectory","containerElement","getElementById","error","setError","isLoaded","setIsLoaded","isSearching","setIsSearching","isFiltered","setIsFiltered","resetDropdowns","setResetDropdowns","allPhysicians","setAllPhysicians","setPhysicians","services","setServices","genders","setGenders","cities","setCities","selections","setSelections","keyword","setKeyword","numOfResults","setNumOfResults","setCurrentPage","getAttribute","itemsPerPage","removeSelection","selectionTitle","newValue","objectIndex","findIndex","newSelections","filter","index","triggerFiltering","data","curatedPhysicians","forEach","selection","physician","some","element","push","Gender","indexOf","toLowerCase","setTimeout","handleSearch","fetch","then","res","json","items","servicesArray","gendersArray","citiesArray","gender","g","c","populateFilters","paginatedPhysicians","firstPageIndex","lastPageIndex","slice","message","ReactDOM","createPortal","cx","cy","r","role","htmlFor","onChange","Event","onKeyDown","key","serviceSelection","genderSelection","citySelection","page","AddressComponent","item","ZipCode","PhoneNumberComponent","PhoneNumber","MoreDetailButtonComponent","url","MapPinComponent","markerClass","ShowDetailBox","urlName","elements","getElementsByClassName","markers","x","classList","remove","i","style","display","add","IsHQ","bind","MapMarkerComponent","parameters","position","LocationSettings","JSON","parse","innerHTML","Services","serviceTypes","split","unshift","result","setResult","InitialLoadDone","setInitialLoadFlag","LatitudeAndLongitude","SetLatitudeAndLongitude","GotGeoCoords","SetGotGeoCoords","ServiceFilter","SetServiceFilter","SetAddress","IsSearching","SetIsSearching","MapCenter","lat","lng","ApiUrl","SearchLocations","currentPageNumber","searchUri","response","status","text","Error","catch","console","React","DisplayPageNumbers","totalPages","pageElements","limit","parseInt","previousPage","title","nextPage","GetGeoCoordinates","navigator","geolocation","getCurrentPosition","coords","latitude","longitude","GetDetailPageUrl","itemUrlName","locationDetailPage","for","option","classNamePrefix","event","keyCode","this","bootstrapURLKeys","defaultZoom","defaultCenter","Latitude","Longitude","TotalRecords","TotalPages","PageNumber","parseFloat","Miles","toFixed","toLocaleString","MediaUrl","AlternativeText","Height","Width","physician_directory","locations","App","render","StrictMode"],"mappings":"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","file":"static/js/main.8cc0b6f1.chunk.js","sourcesContent":["import React from 'react';\r\nimport styled from 'styled-components';\r\n\r\nconst PhysicianList = styled.ul`\r\n margin:1.25rem 0;\r\n padding:0;\r\n list-style-type:none;\r\n`\r\n\r\nconst Physician = styled.li`\r\n display:flex;\r\n flex-direction:column;\r\n justify-content:center;\r\n border: 2px solid transparent;\r\n border-left:0;\r\n padding:1.5625rem 1.25rem;\r\n box-shadow:inset 0 0px 0 0 transparent;\r\n transition:box-shadow .3s ease-in-out, border-color .3s ease-in-out;\r\n\r\n &:hover {\r\n -webkit-box-shadow:inset 8px 0 0 0 #862633;\r\n box-shadow:inset 8px 0 0 0 #862633;\r\n border-color:rgba(134,38,51,0.19);\r\n }\r\n\r\n &:nth-child(even){\r\n background:#F7F7F7;\r\n }\r\n\r\n @media(min-width:48em){\r\n flex-direction:row;\r\n justify-content:flex-start;\r\n padding:2.1875rem 2.5rem;\r\n }\r\n`\r\n\r\nconst PhysicianContent = styled.div`\r\n @media(min-width:48em){\r\n width:32%;\r\n }\r\n`\r\n\r\nconst PhysicianMedia = styled.div`\r\n margin-bottom:.625rem;\r\n\r\n @media(min-width:48em){\r\n margin-bottom:0;\r\n flex-shrink:0;\r\n\r\n & + ${PhysicianContent} {\r\n margin-left:2rem;\r\n }\r\n }\r\n\r\n @media(min-width:80em){\r\n\r\n & + ${PhysicianContent} {\r\n margin-left:4rem;\r\n }\r\n }\r\n`\r\n\r\nconst PhysicianImage = styled.img`\r\n max-width:5em;\r\n border-radius:5px;\r\n\r\n @media(min-width:48em){\r\n max-width:9.6875em;\r\n }\r\n`\r\n\r\nconst PhysicianName = styled.h2`\r\n margin:0;\r\n font-size:1.125rem;\r\n line-height:1.666666;\r\n font-family:'Montserrat', sans-serif;\r\n font-weight:600;\r\n color:#3D3D3D;\r\n`\r\n\r\nconst PhysicianService = styled.span`\r\n font-family:'Montserrat', sans-serif;\r\n font-size:1rem;\r\n font-weight:600;\r\n color:#3D3D3D;\r\n`\r\n\r\nconst PhysicianServiceWrap = styled.div`\r\n word-break:break-word;\r\n\r\n & > ${PhysicianService} + ${PhysicianService}:before { content:\", \" }\r\n`\r\n\r\nconst LocationsWrap = styled.div`\r\n margin-top:.75rem;\r\n\r\n @media(min-width:48em){\r\n margin-top:0;\r\n width:30%;\r\n padding:0 1rem;\r\n }\r\n`\r\n\r\nconst LocationsWrapTitle = styled.h3`\r\n font-weight:700;\r\n font-size:1.125rem;\r\n color:#3D3D3D;\r\n`\r\n\r\nconst Locations = styled.ul`\r\n margin:0;\r\n padding:0;\r\n list-style-type:none;\r\n`\r\n\r\nconst Location = styled.li`\r\n margin-top:.6666rem;\r\n font-size:1.125rem;\r\n line-height:1.6666;\r\n color:#4F4F4F;\r\n\r\n &:first-child {\r\n margin-top:0;\r\n }\r\n`\r\n\r\nconst LocationTitle = styled.h4`\r\n margin:0;\r\n font-weight:normal;\r\n`\r\n\r\nconst LocationAddress = styled.div``\r\n\r\nconst PhysicianLink = styled.a`\r\n display:inline-block;\r\n width:100%;\r\n margin-top:1rem;\r\n\r\n @media(min-width:48em){\r\n width:auto;\r\n margin-left:auto; \r\n margin-top:0;\r\n align-self:center;\r\n }\r\n`\r\n\r\nconst PhysicianListing = (props) => {\r\n return (\r\n <>\r\n \r\n {props.physicians && props.physicians.map((p) => {\r\n const HasImage = p.Image != null && p.Image.length > 0 ? true : false;\r\n const HasLocations = p.Locations != null && p.Locations.length > 0 ? true : false;\r\n const HasServices = p.ServicesList != null && p.ServicesList.length > 0 ? true : false;\r\n\r\n return (\r\n \r\n {HasImage ? \r\n \r\n \r\n \r\n : \"\"\r\n }\r\n \r\n \r\n {p.Title}\r\n {HasServices && \r\n \r\n {p.ServicesList.map((s) => {\r\n return(\r\n {s.Title}\r\n )\r\n })}\r\n \r\n }\r\n \r\n\r\n {HasLocations ? \r\n \r\n Locations\r\n \r\n {p.Locations.map((l) => {\r\n const Title = l.DisplayTitle != null && l.DisplayTitle != \"\" ? l.DisplayTitle : l.Title\r\n return(\r\n \r\n {Title}\r\n \r\n
{l.Address.Street}
\r\n {l.Address.City} \r\n {l.Address.StateCode} \r\n {l.Address.Zip}\r\n
\r\n
\r\n )\r\n })}\r\n
\r\n
\r\n : \"\"\r\n }\r\n\r\n \r\n More Details about {p.Title}\r\n \r\n
\r\n )\r\n })}\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default PhysicianListing","import React, { useEffect, useState, useRef } from 'react';\r\nimport styled from 'styled-components';\r\n\r\nconst Dropdown = styled.div`\r\n position:relative;\r\n`\r\n\r\nconst Label = styled.div`\r\n margin-bottom:10px;\r\n text-transform:uppercase;\r\n font-family:'Montserrat', sans-serif;\r\n font-size:.8125rem;\r\n font-weight:700;\r\n`\r\n\r\nconst OptionsList = styled.ul`\r\n display:none;\r\n position:absolute;\r\n top:100%;\r\n left:0;\r\n width:100%;\r\n max-height:320px;\r\n margin:0;\r\n padding:0;\r\n border-bottom-left-radius:5px;\r\n border-bottom-right-radius:5px;\r\n list-style-type:none;\r\n overflow-y:auto;\r\n background:#fff;\r\n box-sizing:border-box;\r\n box-shadow: 0 2px 4px 0 rgba(0,0,0,0.2);\r\n`\r\n\r\nconst Trigger = styled.button`\r\n position:relative;\r\n width:100%;\r\n height: 3.125rem;\r\n border: 1px solid #D5D5D5;\r\n border-radius: 5px;\r\n padding: 1.0625rem 2.5rem 1.0625rem 0.6875rem;\r\n background-color: #F8F8F8;\r\n font-weight:300;\r\n text-align:left;\r\n cursor:pointer;\r\n white-space:nowrap;\r\n text-overflow:ellipsis;\r\n -webkit-appearance:none;\r\n transition:box-shadow .3s ease-in-out;\r\n\r\n &:after {\r\n content:'';\r\n position:absolute;\r\n top:1.25rem;\r\n right:1rem;\r\n border:6px solid transparent;\r\n border-top-color:#053b83;\r\n }\r\n\r\n &.active {\r\n border-bottom-right-radius:0;\r\n border-bottom-left-radius:0;\r\n }\r\n\r\n &.active + ${OptionsList} {\r\n display:block;\r\n }\r\n\r\n &:focus-visible {\r\n outline:0;\r\n box-shadow:inset 0 0 0 0.2rem rgba(134,38,51,1);\r\n }\r\n`\r\n\r\nconst Option = styled.li`\r\n border-top:1px solid #ccc;\r\n\r\n &:first-child {\r\n border-top:0;\r\n }\r\n`\r\n\r\nconst Value = styled.button`\r\n display:block;\r\n width:100%;\r\n border:0;\r\n padding:10px;\r\n background:none;\r\n text-align:left;\r\n cursor:pointer;\r\n`\r\n\r\nconst FauxDropdown = (props) => {\r\n const [isActive, setActive] = useState(false);\r\n const [value, setValue] = useState(null);\r\n const [placeholder, setPlaceholder] = useState(props.placeholder);\r\n const componentRef = useRef();\r\n\r\n\r\n const toggleClass = () => {\r\n setActive(!isActive);\r\n }\r\n\r\n const OptionSelected = (passedValue, passedLabel) => {\r\n if(passedValue !== value){\r\n setValue(passedValue);\r\n setPlaceholder(passedLabel);\r\n props.onSelection(passedValue);\r\n }\r\n\r\n toggleClass();\r\n }\r\n\r\n useEffect(() => {\r\n if(isActive){\r\n document.addEventListener(\"click\", handleClick);\r\n return () => document.removeEventListener(\"click\", handleClick);\r\n\r\n function handleClick(e) {\r\n if(componentRef && componentRef.current){\r\n if(!componentRef.current.contains(e.target)){\r\n toggleClass();\r\n }\r\n }\r\n }\r\n }\r\n },[isActive])\r\n\r\n if(props.options && props.options.length){\r\n return(\r\n \r\n \r\n {placeholder}\r\n \r\n {props.options.map((o) => {\r\n return (\r\n \r\n )\r\n })}\r\n \r\n \r\n )\r\n}\r\n else {\r\n return null;\r\n }\r\n}\r\n\r\nexport default FauxDropdown;","import React from 'react';\r\nimport styled, { keyframes } from 'styled-components';\r\n\r\nconst pulse = keyframes`\r\n from, to {\r\n opacity:0;\r\n }\r\n \r\n 50% {\r\n opacity:1;\r\n }\r\n`;\r\n\r\nconst LoadingWrap = styled.div`\r\n display:flex;\r\n flex-direction:column;\r\n justify-content:center;\r\n align-items:center;\r\n margin:5rem 0;\r\n animation: ${pulse} 2s linear infinite;\r\n`\r\nconst LoadingSvg = styled.svg``\r\n\r\nconst LoadingText = styled.div`\r\n margin: 0px;\r\n font-family: Montserrat, sans-serif;\r\n font-size: 1.75rem;\r\n font-weight: 700;\r\n`\r\n\r\nconst Loader = () => {\r\n return(\r\n \r\n \r\n Saint Josephs's Medical Center\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Loading...\r\n \r\n )\r\n}\r\n \r\nexport default Loader;","import React, { useMemo } from \"react\";\r\n\r\nconst range = (start, end) => {\r\n let length = end - start + 1;\r\n return Array.from({ length }, (_, idx) => idx + start);\r\n};\r\n\r\nexport const usePagination = ({\r\n currentPage,\r\n totalCount,\r\n pageSize\r\n}) => {\r\n const paginationRange = useMemo(() => {\r\n const totalPageCount = Math.ceil(totalCount / pageSize);\r\n\r\n return range(1, totalPageCount);\r\n\r\n }, [currentPage, totalCount, pageSize]);\r\n\r\n return paginationRange;\r\n};\r\n// example ref https://www.freecodecamp.org/news/build-a-custom-pagination-component-in-react/","import React from 'react';\r\nimport classnames from 'classnames';\r\nimport { usePagination } from './UsePagination';\r\n\r\n// example ref https://www.freecodecamp.org/news/build-a-custom-pagination-component-in-react/\r\n\r\nconst Pagination = props => {\r\n const {\r\n className,\r\n currentPage,\r\n totalCount,\r\n pageSize,\r\n onPageChange\r\n } = props;\r\n\r\n const paginationRange = usePagination({\r\n currentPage,\r\n totalCount,\r\n pageSize\r\n });\r\n\r\n if (currentPage === 0 || paginationRange.length < 2) {\r\n return null;\r\n }\r\n\r\n const onNext = () => {\r\n onPageChange(currentPage + 1);\r\n };\r\n\r\n const onPrevious = () => {\r\n onPageChange(currentPage - 1);\r\n };\r\n\r\n let lastPage = paginationRange[paginationRange.length - 1];\r\n return (\r\n
\r\n \r\n
  • \r\n \r\n
  • \r\n {paginationRange.map(pageNumber => {\r\n return (\r\n
  • \r\n \r\n
  • \r\n );\r\n })}\r\n
  • \r\n \r\n
  • \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default Pagination;\r\n","import React, { useState, useEffect, useMemo } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport PhysicianListing from './PhysicianListing';\r\nimport FauxDropdown from \"../form-inputs/FauxDropdown\";\r\nimport Loader from \"../loaders/loader\";\r\nimport styled from 'styled-components';\r\nimport Pagination from \"./PhysicianPagination\";\r\nimport FauxData from './PhysicianFauxData';\r\n\r\nconst Header = styled.div`\r\n padding:1.25rem;\r\n background:#053b83;\r\n color:#fff;\r\n \r\n @media(min-width:48em){\r\n padding-top:2.875rem;\r\n padding-bottom:2.875rem;\r\n }\r\n`\r\n\r\nconst IconPhysician = styled.svg`\r\n margin-right:1rem;\r\n width:35px;\r\n height:40px;\r\n fill:#fff;\r\n`\r\n\r\nconst DirectoryTitle = styled.h1`\r\n display:flex;\r\n align-items:center;\r\n margin:0;\r\n font-family:'Montserrat', sans-serif;\r\n font-size:1.75rem;\r\n font-weight:700;\r\n\r\n @media(min-width:48em){\r\n font-size:3rem;\r\n line-height:.875;\r\n }\r\n`\r\nconst Filters = styled.div`\r\n display:flex;\r\n flex-direction:column;\r\n width:100%;\r\n margin-top:1.25rem;\r\n\r\n & > * {\r\n flex-grow:1;\r\n }\r\n\r\n @media(min-width:48em){\r\n flex-wrap:wrap;\r\n margin-top:1.5625rem;\r\n margin-left:-0.625rem;\r\n margin-right:-0.625rem;\r\n flex-direction:row;\r\n align-items:center;\r\n justify-content:space-between;\r\n\r\n & > * {\r\n padding:0 0.625rem;\r\n\r\n &:last-child {\r\n align-self:flex-end;\r\n flex-shrink:0;\r\n }\r\n }\r\n\r\n @media(min-width:72em){\r\n flex-wrap:nowrap;\r\n }\r\n`\r\n\r\nconst SearchLabel = styled.label`\r\n display:block;\r\n margin-bottom:10px;\r\n text-transform:uppercase;\r\n font-family:'Montserrat', sans-serif;\r\n font-size:.8125rem;\r\n font-weight:700;\r\n`\r\n\r\nconst Search = styled.input`\r\n width:100%;\r\n height: 3.125rem;\r\n border: 1px solid #D5D5D5;\r\n border-radius: 5px;\r\n padding:0 .6875rem;\r\n background-color: #F8F8F8;\r\n box-sizing: border-box;\r\n transition:box-shadow .3s ease-in-out;\r\n\r\n &:focus-visible {\r\n outline:0;\r\n box-shadow:inset 0 0 0 0.2rem rgba(134,38,51,1);\r\n }\r\n`\r\n\r\nconst FilterGroup = styled.div`\r\n margin-top:1rem;\r\n\r\n &:first-child {\r\n margin-top:0;\r\n }\r\n\r\n &.physician-search__actions button + button {\r\n margin-top:1rem;\r\n }\r\n\r\n @media(min-width:48em){\r\n margin-top:0;\r\n margin-bottom:1rem;\r\n\r\n &.physician-search__actions {\r\n display:flex;\r\n justify-content:center;\r\n\r\n button + button {\r\n margin-top:0;\r\n margin-left:10px;\r\n }\r\n }\r\n }\r\n\r\n @media(min-width:72em){\r\n margin-bottom:0;\r\n\r\n &.physician-search__actions {\r\n justify-content:space-evenly;\r\n\r\n button + button {\r\n margin-top:0;\r\n margin-left:10px;\r\n }\r\n }\r\n }\r\n`\r\n\r\nconst Submit = styled.button`\r\n display:inline-block;\r\n width:100%;\r\n border-radius: 1.8rem;\r\n border:1px solid #fff;\r\n padding: 0.2rem 3.3rem;\r\n background:transparent;\r\n font-family:'Montserrat', sans-serif;\r\n font-size: 0.9375rem;\r\n font-weight:700;\r\n line-height: 3.2;\r\n color:#fff;\r\n cursor:pointer;\r\n transition:color .3s ease-in-out, background .3s ease-in-out;\r\n\r\n &:hover, &:focus-visible {\r\n background:#fff;\r\n color:#053b83;\r\n }\r\n\r\n @media(min-width:48em){\r\n width:auto;\r\n }\r\n`\r\n\r\nconst Reset = styled.button`\r\n display:inline-block;\r\n width:100%;\r\n border-radius: 1.8rem;\r\n border:1px solid #fff;\r\n padding: 0.2rem 3.3rem;\r\n background:#fff;\r\n font-family:'Montserrat', sans-serif;\r\n font-size: 0.9375rem;\r\n font-weight:700;\r\n line-height: 3.2;\r\n color:#fff;\r\n cursor:pointer;\r\n transition:color .3s ease-in-out, background .3s ease-in-out;\r\n\r\n &:hover, &:focus-visible {\r\n background:#fff;\r\n color:#053b83;\r\n }\r\n\r\n svg {\r\n width:24px;\r\n height:24px;\r\n fill:#862633;\r\n }\r\n\r\n @media(min-width:48em){\r\n width:auto;\r\n }\r\n`\r\n\r\nconst ToolRow = styled.div`\r\n margin:1.5rem 0 2.625rem;\r\n\r\n @media(min-width:72em){\r\n display:flex;\r\n align-items:center;\r\n margin-top:2.5rem;\r\n\r\n .pagination {\r\n margin:0 0 0 auto;\r\n }\r\n }\r\n`\r\n\r\nconst NumOfResults = styled.div`\r\n font-family:'Montserrat', sans-serif;\r\n font-size: 0.9375rem;\r\n font-weight:700;\r\n text-transform:uppercase;\r\n`\r\n\r\nconst PhysicianDirectory = (props) => {\r\n const containerElement = document.getElementById(\"PhysicianDirectory\");\r\n const [error, setError] = useState(null);\r\n const [isLoaded, setIsLoaded] = useState(false);\r\n const [isSearching, setIsSearching] = useState(false);\r\n const [isFiltered, setIsFiltered] = useState(false);\r\n const [resetDropdowns, setResetDropdowns] = useState(false);\r\n\r\n const [allPhysicians, setAllPhysicians] = useState([]);\r\n const [physicians, setPhysicians] = useState([]);\r\n const [services, setServices] = useState([]);\r\n const [genders, setGenders] = useState([]);\r\n const [cities, setCities] = useState([]);\r\n const [selections, setSelections] = useState([]);\r\n\r\n const [keyword, setKeyword] = useState('');\r\n const [numOfResults, setNumOfResults] = useState(0);\r\n const [currentPage, setCurrentPage] = useState(0);\r\n\r\n const detailUrl = containerElement.getAttribute('data-detail-url');\r\n const itemsPerPage = containerElement.getAttribute('data-items-per-page') != null ? containerElement.getAttribute('data-items-per-page') : 10;\r\n const urlFields = '$select=Title,Id,UrlName,Gender';\r\n const urlExpansions = '$expand=Image($select=Url),ServicesList($select=Title,Id),Locations($select=Title,DisplayTitle,Id,Address($select=StateCode,City,Zip,Street))';\r\n const urlOrder = '$orderby=LastName';\r\n const url = '/sfapi/physicians/physicians?' + urlFields + '&' + urlExpansions + '&' + urlOrder;\r\n\r\n const removeSelection = (selectionTitle, newValue) => {\r\n const objectIndex = selections.findIndex(s => s.Title === selectionTitle)\r\n\r\n if(objectIndex > -1 && selections[objectIndex].Value !== newValue){\r\n const newSelections = selections.filter(function(value, index){ return index !== objectIndex; });\r\n setSelections(newSelections);\r\n }\r\n }\r\n\r\n const selectedService = (serviceSelection) => {\r\n removeSelection('Service', serviceSelection);\r\n setSelections(selections => [...selections, {'Title': 'Service', 'Value': serviceSelection}]);\r\n }\r\n\r\n const selectedGender = (genderSelection) => {\r\n removeSelection('Gender', genderSelection);\r\n setSelections(selections => [...selections, {'Title': 'Gender', 'Value': genderSelection}]);\r\n }\r\n\r\n const selectedCity = (citySelection) => {\r\n removeSelection('City', citySelection);\r\n setSelections(selections => [...selections, {'Title': 'City', 'Value': citySelection}]);\r\n }\r\n\r\n const populateFilters = (items) => {\r\n let servicesArray = [];\r\n let gendersArray = [];\r\n let citiesArray = [];\r\n\r\n items.forEach(element => {\r\n const ServicesList = element.ServicesList;\r\n const gender = element.Gender;\r\n const Locations = element.Locations;\r\n\r\n if(ServicesList.length > 0){\r\n ServicesList.forEach(element => {\r\n if(servicesArray.findIndex(s => s.Value === element.Id) <= -1){\r\n servicesArray.push({\"Label\": element.Title, \"Value\": element.Id});\r\n }\r\n });\r\n }\r\n\r\n if(gender !== null && gendersArray.findIndex(g => g.Label === gender) <= -1){\r\n gendersArray.push({\"Label\": gender, \"Value\": gender});\r\n }\r\n\r\n if(Locations.length > 0){\r\n Locations.forEach(element => {\r\n if(citiesArray.findIndex(c => c.Label === element.Address.City) <= -1){\r\n citiesArray.push({\"Label\": element.Address.City, \"Value\": element.Address.City});\r\n }\r\n });\r\n }\r\n });\r\n\r\n if(servicesArray.length > 0) setServices(servicesArray);\r\n if(gendersArray.length > 0) setGenders(gendersArray);\r\n if(citiesArray.length > 0) setCities(citiesArray);\r\n }\r\n\r\n const renderResults = (data) => {\r\n if(data){\r\n setCurrentPage(0);\r\n setPhysicians(data);\r\n setNumOfResults(data.length);\r\n\r\n setTimeout(function(){\r\n setCurrentPage(1);\r\n }, 300);\r\n }\r\n }\r\n\r\n const triggerFiltering = () => {\r\n const selectionLength = selections.length;\r\n\r\n if(selectionLength > 0){\r\n let curatedPhysicians = [];\r\n\r\n selections.forEach(selection => {\r\n switch(selection.Title){\r\n case 'Service':\r\n const curatedByService = allPhysicians.filter(function(physician){ return physician.ServicesList.some(s => s.Id === selection.Value) });\r\n curatedByService.forEach((element) => {\r\n if(curatedPhysicians.findIndex(p => p.Id === element.Id) <= -1){\r\n curatedPhysicians.push(element);\r\n }\r\n });\r\n break;\r\n case 'Gender':\r\n const curatedByGender = allPhysicians.filter(function(physician){ return physician.Gender === selection.Value });\r\n\r\n curatedByGender.forEach((element) => {\r\n if(curatedPhysicians.findIndex(p => p.Id === element.Id) <= -1){\r\n curatedPhysicians.push(element);\r\n }\r\n });\r\n break;\r\n case 'Search':\r\n const curatedBySearch = allPhysicians.filter(function(physician){\r\n return physician.Title.indexOf(selection.Value) > -1 || physician.Title.toLowerCase().indexOf(selection.Value) > -1;\r\n });\r\n curatedBySearch.forEach((element) => {\r\n if(curatedPhysicians.findIndex(p => p.Id === element.Id) <= -1){\r\n curatedPhysicians.push(element);\r\n }\r\n });\r\n break;\r\n case 'City':\r\n const curatedByCity = allPhysicians.filter(function(physician){return physician.Locations.some(l => l.Address.City === selection.Value)});\r\n curatedByCity.forEach((element) => {\r\n if(curatedPhysicians.findIndex(p => p.Id === element.Id) <= -1){\r\n curatedPhysicians.push(element);\r\n }\r\n });\r\n break;\r\n }\r\n });\r\n\r\n renderResults(curatedPhysicians)\r\n\r\n setIsFiltered(true);\r\n }\r\n\r\n\r\n setIsSearching(false);\r\n }\r\n\r\n const handleSearch = () => {\r\n removeSelection('Search', keyword);\r\n\r\n if(keyword !== ''){\r\n setSelections(selections => [...selections, {'Title': 'Search', 'Value': keyword}]);\r\n }\r\n\r\n setIsSearching(true);\r\n }\r\n\r\n const reset = () => {\r\n setCurrentPage(0);\r\n setKeyword('');\r\n setSelections([]);\r\n setResetDropdowns(!resetDropdowns);\r\n\r\n document.getElementById('physicianSearch').value = '';\r\n\r\n setPhysicians(allPhysicians);\r\n setNumOfResults(allPhysicians.length);\r\n setIsFiltered(false);\r\n\r\n setTimeout(function(){\r\n setCurrentPage(1);\r\n }, 300);\r\n }\r\n\r\n // Initial Load\r\n useEffect(() => {\r\n fetch(url)\r\n .then(res => res.json())\r\n .then(\r\n (data) => {\r\n const items = data.value;\r\n setIsLoaded(true);\r\n\r\n setAllPhysicians(items);\r\n setPhysicians(items);\r\n populateFilters(items);\r\n setNumOfResults(items.length);\r\n },\r\n (error) => {\r\n setIsLoaded(true);\r\n setError(error);\r\n }\r\n ).then(() => { setCurrentPage(1); })\r\n }, []);\r\n\r\n // Initial Load for Local Testing\r\n // useEffect(() => {\r\n // const items = FauxData.value;\r\n\r\n // setIsLoaded(true);\r\n\r\n // setAllPhysicians(items);\r\n // setPhysicians(items);\r\n // populateFilters(items);\r\n // setNumOfResults(items.length);\r\n // setCurrentPage(1)\r\n // }, []);\r\n\r\n //When Search Is submitted\r\n useEffect(() => {\r\n if(isSearching){\r\n triggerFiltering();\r\n }\r\n },[isSearching]);\r\n\r\n const paginatedPhysicians = useMemo(() => {\r\n const firstPageIndex = (currentPage - 1) * itemsPerPage;\r\n const lastPageIndex = firstPageIndex + itemsPerPage;\r\n\r\n return physicians.slice(firstPageIndex, lastPageIndex);\r\n }, [currentPage]);\r\n\r\n if (error) {\r\n return
    Error: {error.message}
    ;\r\n } \r\n else if (!isLoaded) {\r\n return \r\n }\r\n else {\r\n return ReactDOM.createPortal (\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n Find a Physician\r\n \r\n \r\n \r\n \r\n \r\n Search by Name\r\n \r\n setKeyword(Event.target.value)} \r\n onKeyDown={Event => Event.key === 'Enter' && handleSearch()}/>\r\n \r\n {services.length > 0 &&\r\n \r\n \r\n \r\n }\r\n {genders.length > 0 &&\r\n \r\n \r\n \r\n }\r\n {cities.length > 0 && \r\n \r\n \r\n \r\n }\r\n \r\n Search\r\n {isFiltered &&\r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n {`${numOfResults} Results Found`}\r\n setCurrentPage(page)}\r\n >\r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    ,\r\n containerElement\r\n );\r\n }\r\n}\r\n\r\nexport default PhysicianDirectory;","import React, { useState } from 'react';\r\nimport GoogleMapReact from 'google-map-react';\r\nimport Select from 'react-select';\r\n\r\nconst AddressComponent = ({ item }) => {\r\n return (
    \r\n

    \r\n {item.DisplayTitle ? item.DisplayTitle : item.Title}\r\n

    \r\n
    \r\n
    \r\n {\r\n item.Address.Street ?\r\n
    {item.Address.Street}
    : \"\"\r\n }\r\n
    \r\n {\r\n item.Address.City ?\r\n {item.Address.City} : \"\"\r\n }\r\n {\r\n item.Address.StateCode ?\r\n , {item.Address.StateCode} : \"\"\r\n }\r\n {\r\n item.Address.ZipCode ?\r\n {item.Address.ZipCode} : \"\"\r\n }\r\n
    \r\n\r\n
    \r\n
    \r\n\r\n
    );\r\n}\r\n\r\nconst PhoneNumberComponent = ({ item }) => {\r\n return (
    \r\n
    Phone
    \r\n {item.PhoneNumber}\r\n
    );\r\n}\r\n\r\nconst MoreDetailButtonComponent = ({ url }) => {\r\n return (
    \r\n More Details\r\n
    );\r\n}\r\n\r\nconst MapPinComponent = ({item}) => { \r\n const dialogClassName = 'location__dialog';\r\n const markerClass = \"location__marker\";\r\n const ShowDetailBox = (urlName) => {\r\n //WE HIDE ANY DIALOG THAT'S OPEN\r\n var elements = document.getElementsByClassName(dialogClassName);\r\n var markers = document.getElementsByClassName(markerClass);\r\n\r\n for (var x = 0; x < markers.length; x++) {\r\n markers[x].classList.remove(\"active\");\r\n }\r\n\r\n for (var i = 0; i < elements.length; i++) {\r\n elements[i].style.display = 'none';\r\n }\r\n\r\n\r\n document.getElementById(`pin-${item.Id}`).classList.add(\"active\");\r\n document.getElementById(`detail-${urlName}`).style.display = 'block';\r\n }\r\n\r\n\r\n if(item.IsHQ) {\r\n return (
    \r\n \r\n \r\n \r\n
    \r\n );\r\n } else {\r\n return (
    \r\n \r\n \r\n \r\n
    \r\n ); \r\n }\r\n\r\n}\r\n\r\nconst MapMarkerComponent = ({ parameters }) => {\r\n const item = parameters.item;\r\n const dialogClassName = 'location__dialog';\r\n\r\n return (
    \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    );\r\n}\r\n\r\n\r\nfunction Locations() {\r\n const LocationSettings = document.getElementById(\"location-settings\") && JSON.parse(document.getElementById(\"location-settings\").innerHTML);\r\n const Services = LocationSettings.serviceTypes.split(';').map((item) => {\r\n var items = item.split(',');\r\n return { value: items[0], label: items[1] }\r\n });\r\n Services.unshift({ value: '', label: 'All Services' });\r\n\r\n const [result, setResult] = useState({});\r\n const [InitialLoadDone, setInitialLoadFlag] = useState(false);\r\n const [LatitudeAndLongitude, SetLatitudeAndLongitude] = useState('');\r\n const [GotGeoCoords, SetGotGeoCoords] = useState(false);\r\n const [ServiceFilter, SetServiceFilter] = useState('');\r\n const [Address, SetAddress] = useState('');\r\n const [IsSearching, SetIsSearching] = useState(false);\r\n const PageSize = 10;\r\n const MapCenter = { lat: 40.9312099, lng: -73.8987469 }; //Yonkers, NY\r\n const MapZoom = 10;\r\n const ApiUrl = '/api/location/';\r\n const radius = 15; //On search, limit to 15 mile radius\r\n\r\n const SearchLocations = (currentPageNumber = 1) => {\r\n SetIsSearching(true);\r\n let searchUri = ApiUrl;\r\n\r\n if (Address.length > 0) {\r\n searchUri += `search?isGeoLocation=true&radius=${radius}&isDuplicateSearch=false&address=${Address}&`;\r\n }\r\n else if (LatitudeAndLongitude.length > 0) {\r\n searchUri += `search?isGeoLocation=true&isDuplicateSearch=true&address=${LatitudeAndLongitude}&`;\r\n }\r\n else {\r\n searchUri += 'all-locations?';\r\n }\r\n\r\n if (ServiceFilter.length > 0) {\r\n searchUri += `serviceType=${ServiceFilter}&`;\r\n }\r\n\r\n searchUri += `pageSize=${PageSize}&pageNumber=${currentPageNumber}`;\r\n fetch(searchUri).then((response) => {\r\n setInitialLoadFlag(true);\r\n SetIsSearching(false);\r\n if (response.status === 200) \r\n {\r\n return response.json();\r\n }\r\n else \r\n {\r\n return response.text().then(text => { throw new Error(text) })\r\n }\r\n }).then((data) => {\r\n setResult(data);\r\n }).catch((error) => {\r\n setResult({});\r\n SetIsSearching(false);\r\n console.error(error);\r\n });\r\n };\r\n\r\n React.useEffect(() => {\r\n if (LatitudeAndLongitude !== '' && !GotGeoCoords) {\r\n SetGotGeoCoords(true);\r\n SearchLocations();\r\n }\r\n\r\n });\r\n\r\n const DisplayPageNumbers = (totalPages, pageNumber) => {\r\n const pageElements = [];\r\n const limit = parseInt(totalPages);\r\n\r\n if (limit > 1) {\r\n const previousPage = pageNumber - 1;\r\n if (previousPage > 0) {\r\n pageElements.push(
    );\r\n } else {\r\n pageElements.push(
    )\r\n }\r\n }\r\n\r\n for (let i = 1; i <= limit; i++) {\r\n\r\n if (i !== pageNumber) {\r\n pageElements.push(
    );\r\n } else {\r\n pageElements.push(
    );\r\n }\r\n }\r\n\r\n if (limit > 1) {\r\n const nextPage = pageNumber + 1;\r\n if (nextPage <= limit) {\r\n pageElements.push(
    );\r\n } else {\r\n pageElements.push(
    \r\n \r\n
    );\r\n }\r\n }\r\n\r\n return pageElements;\r\n }\r\n\r\n const GetGeoCoordinates = () => {\r\n navigator.geolocation.getCurrentPosition(function (position) {\r\n SetAddress('');\r\n SetServiceFilter('');\r\n SetLatitudeAndLongitude(`${position.coords.latitude},${position.coords.longitude}`);\r\n }, function () {\r\n //We set the lat and long to Yonkers\r\n SetLatitudeAndLongitude(`${MapCenter.lat},${MapCenter.lng}`);\r\n });\r\n }\r\n\r\n if (!InitialLoadDone) {\r\n GetGeoCoordinates();\r\n }\r\n\r\n const HandleTypeSelect = e => {\r\n SetServiceFilter(e.value);\r\n };\r\n\r\n const HandleAddressChange = (event) => {\r\n SetAddress(event.target.value);\r\n }\r\n\r\n const GetDetailPageUrl = (itemUrlName) => {\r\n return `${LocationSettings.locationDetailPage}/${itemUrlName}`;\r\n }\r\n\r\n const GetButtonTitle = () => {\r\n return IsSearching ? 'Searching...' : 'Search';\r\n }\r\n\r\n const keyPress = (e) => {\r\n if(e.keyCode === 13)\r\n {\r\n SearchLocations();\r\n }\r\n }\r\n\r\n return (
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n \r\n \r\n \r\n Find a Location\r\n

    \r\n\r\n
    \r\n \r\n \r\n
    \r\n\r\n \r\n \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n {\r\n (result && result.Locations && result.Locations.length > 0 ?\r\n result.Locations.map((item) => {\r\n return ()\r\n\r\n })\r\n :\r\n
    )\r\n }\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n {result ? result.TotalRecords + ' result' + (result.TotalRecords != 1 ? 's' : '') : ''}\r\n
    \r\n
    \r\n {\r\n result && result.TotalPages ?\r\n DisplayPageNumbers(result && result.TotalPages ? result.TotalPages : 1, result && result.PageNumber ? result.PageNumber : 1) :\r\n ''\r\n }\r\n
    \r\n
    \r\n
    \r\n {\r\n (result && result.Locations && result.Locations.length > 0 ?\r\n result.Locations.map((item) => {\r\n return (\r\n
    \r\n
    \r\n {parseFloat(item.Miles.toFixed(1)).toLocaleString('en-US')}
    Miles Away
    \r\n
    \r\n
    \r\n {\r\n item.Image ?\r\n {item.Image.AlternativeText :\r\n \"\"\r\n }\r\n
    \r\n \r\n \r\n \r\n
    \r\n )\r\n })\r\n :\r\n
    No results to show
    \r\n )\r\n }\r\n
    \r\n
    \r\n {DisplayPageNumbers(result && result.TotalPages ? result.TotalPages : 1, result && result.PageNumber ? result.PageNumber : 1)}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n );\r\n};\r\nexport default Locations;\r\n","import React from 'react';\r\nimport PhysicianDirectory from './components/physician-directory/physicianDirectory';\r\nimport Locations from './components/locations/locations';\r\n\r\nconst physician_directory = document.getElementById('PhysicianDirectory');\r\nconst locations = document.getElementById('Locations');\r\n\r\nfunction App() {\r\n return (\r\n <>\r\n {physician_directory && }\r\n {locations && }\r\n \r\n );\r\n}\r\n\r\nexport default App;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport App from './App';\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n document.getElementById('react-app')\r\n);\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals"],"sourceRoot":""}