{"version":3,"sources":["webpack://@verndale/toolkit/./node_modules/@coveo/headless/dist/browser/ sync","webpack://@verndale/toolkit/./src/js/components/location-selector.js","webpack://@verndale/toolkit/./src/js/coveo/components/DropdownFacet/index.jsx","webpack://@verndale/toolkit/./src/js/coveo/components/Pager/index.jsx","webpack://@verndale/toolkit/./src/js/coveo/engine/Engine.js","webpack://@verndale/toolkit/./src/js/coveo/helpers/index.js","webpack://@verndale/toolkit/./src/js/coveo/modules/FindACommunityMapViewRow/ResultsColumn.jsx","webpack://@verndale/toolkit/./src/js/coveo/modules/ShareModal/index.jsx","webpack://@verndale/toolkit/./src/js/coveo/modules/FindACommunityMapViewRow/CompareBar.jsx","webpack://@verndale/toolkit/./src/js/coveo/modules/FindACommunityMapViewRow/QuerySummary.jsx","webpack://@verndale/toolkit/./src/js/coveo/components/DropdownFacetWithCustomOptions/index.jsx","webpack://@verndale/toolkit/./src/js/coveo/modules/FindACommunityMapViewRow/index.jsx","webpack://@verndale/toolkit/./src/js/coveo/modules/GoogleMapResultsDisplay/index.jsx","webpack://@verndale/toolkit/./src/js/components/react/Dropdown.jsx","webpack://@verndale/toolkit/./src/js/coveo/modules/LocationSelector/index.jsx","webpack://@verndale/toolkit/./src/js/coveo/state/context.js","webpack://@verndale/toolkit/./src/js/coveo/urlManager/index.jsx","webpack://@verndale/toolkit/./src/js/helpers/index.js","webpack://@verndale/toolkit/./src/js/hooks/useClickOutside.jsx","webpack://@verndale/toolkit/./src/js/hooks/useEventBus.jsx"],"names":["webpackEmptyContext","req","module","Module","Component","setLocalStorageData","getLocalStorageData","locationCookie","Cookies","args","setLocationCookie","Coveo","value","localStorageData","resetLocationForCookiesAndStorage","controller","fetchTimeout","country","fetchURL","responseJson","inputValue","error","key","self","response","Latitude","Longitude","IsState","State","e","pages","currentPageKey","_","redirectUrl","isPlainCommunities","localStorage","shareCommunities","communityRow","selectedValue","populateOmniboxEventArgs","inputPlaceholder","filterTag","selectedDropdownOption","option","selectedCountryFilterTag","nearbySearch","DropdownFacet","props","showNumberSelected","facet","type","immediateAction","onFacetChange","onResetFacet","state","setState","useState","selectedValues","setSelectedValues","expanded","setExpanded","isInitialMount","useRef","useEffect","hash","params","values","selected","item","data","handleFacetClick","ref","useOutsideClick","checkSelected","renderFacet","React","Pager","className","isLoading","setIsLoading","resultsListController","useContext","SearchContext","page","postprocessSearchResponse","result","postprocessFacetSearchResponse","postprocessQuerySuggestSearchResponse","preprocessRequest","request","clientOrigin","body","buildEngine","organizationId","accessToken","searchHub","pipeline","buildSearchEngine","commonConfigurator","coveoCommonConfig","commonEngine","nearbyColumnHeadless","nearbyColumnEngineConfig","nearbyColumnEngine","locationDataStorage","getLocationCookie","locationCookieName","prevCookieData","cookieData","unitConversion","distance","unit","getGoogleMapsInfoWindowContentString","linkToAnchor","linkWholeCard","showDistance","imageDomain","unitLabelCard","underlineTitle","imgString","titleString","setCurrentCommunityCookie","ssl_latitude_d","ssl_longitude_d","ssl_communityname","ssl_thumbnailimage","ssl_pricingandavailabilityphone","ssl_residentsandfamilyphone","ssl_communityid","uri","ssl_mainimagedesktop","currentCommunityData","currentCommunityString","filterProtocol","isAbsolute","isRelative","getQueryFunctionsLatitudeLongitude","latitude","longitude","setLatitudeLongitudePreprocessRequest","global","newBody","getAdvancedGeolocationQuery","source","radiusInMiles","careType","contextLanguage","hiddenCommunitiesArray","el","getCoveoFindACommunityFieldsToInclude","sendCoveoInterfaceLoad","engine","logInterfaceLoad","loadSearchAnalyticsActions","executeSearch","loadSearchActions","sendCoveoGeolocationInterfaceLoad","advancedUrlQuery","language","previousLoad","registerSortCriterion","loadSortCriteriaActions","setPipeline","loadPipelineActions","logSearchFromLink","advancedQuerySearchActionCreator","loadAdvancedSearchQueryActions","advancedQuery","buildFieldSortCriterion","sendCoveoGeolocationQuery","logSearchboxSubmit","checkForAdvancedQueryInHash","checkForHiddenQueryInHash","clearAllFacets","newHash","getModuleStorageCacheData","localStorageDataParsed","setModuleStorageCacheData","locationInfo","compareLocationInfo","locationInfo1","locationInfo2","sortResultsByDistance","results","a","b","levelsOfCareLabel","imagesDomain","pricingMessage","pricingAvailabilityLabel","residentsAndFamilyLabel","onCloseCommunity","noResultsMessage","waitingForGeolocation","onCompareClick","comparedCommunities","displayedResults","setDisplayedResults","originalResults","sortedResults","comparedCommunitiesIds","c","index","level","onClose","copyBtnLabel","urlToCopy","shareModalCopy","shareModalTitle","copyText","feedback","compareBtnLabel","clearBtnLabel","shareBtnLabel","compareUrlPath","responseData","onShareModalClick","onMapSwitcherClick","isMapActive","comparedCommunitiesLinks","url","i","community","compareURL","querySummaryObject","querySummaryShowingText","querySummaryOfText","querySummaryResultsText","hasResults","firstResult","lastResult","total","summary","showSecondaryLabel","options","x","shareResultsBtnLabel","mapApiKey","coveoOrganizationId","coveoAccessToken","coveoSearchHub","coveoPipeline","coveoAutocompleteFields","coveoSearchRadiusInMiles","coveoSource","coveoContextLanguage","coveoQuerySummaryShowingText","coveoQuerySummaryOfText","coveoQuerySummaryResultsText","clearFiltersLabel","applyFiltersLabel","locationSelectorOptions","searchButtonLabel","mastheadHeading","mastheadCopy","theme","distanceOptions","careTypeField","stateToFilterBy","careTypeDropdownLabel","setupPage","useMemo","selectedFacetsPerField","setSelectedFacetsPerField","setIsMapActive","setComparedCommunities","showShareModal","setShowShareModal","setWaitingForGeolocation","geolocationData","setGeolocationData","filtersApplied","setFiltersApplied","facetReset","setFacetReset","isMobile","setIsMobile","shareUrl","setShareUrl","isSearching","firstLoad","searchSource","handleResize","querySummaryController","buildQuerySummary","buildResultList","levelsOfCareFacetController","buildFacet","pagerController","buildPager","handleLocationSelectorSubmit","searchInputValue","selectedCountry","selectedCareType","selectedDistance","dispatch","useEventBus","payload","sendQuery","unsubscribeUrlManager","bindUrlManager","selecteedLevelFacets","v","radius","handleCountryChange","handleCustomFacetChange","prevSelectedFacetsPerField","newSelectedFacetsPerField","handleCoveoFacetChange","facetId","handleCloseCommunity","prevCommunities","handleApplyFilters","toggleSelectFacetValue","deselectAllFacetValues","loadFacetSetActions","handleCompareCommunity","handleClearFilters","handleMapSwitcherClick","mapActive","LocationSelector","QuerySummary","DropdownFacetWithCustomOptions","ShareModal","ResultsColumn","GoogleMapResultsDisplay","CompareBar","containerStyle","center","zoomControl","zoomPosition","zoom","streetViewControl","mapTypeControl","scaleControl","fullscreenControl","disableDoubleClickZoom","draggable","circleDebug","apiKey","showInfoWindows","showMarkerLabel","activeMarker","setActiveMarker","mapZoom","setMapZoom","circle","setCircle","map","setMap","iconCircle","setIconCircle","iconNormal","setIconNormal","iconHover","setIconHover","setResults","mapCenter","setMapCenter","hoveredResult","onMarkerClick","isLoaded","useJsApiLoader","getBoundsFromMarkers","resultsArray","bounds","fitMapBounds","handleActiveMarker","marker","newResults","calcDistance","convertedDistance","infoWindowContentString","onCircleLoad","onLoad","onUnmount","_map","GoogleMap","stylers","Circle","Fragment","Marker","r","InfoWindow","label","placeholder","selectedOption","onChange","disabled","compareAttr","innerLabel","addPlaceholderOption","style","open","toggle","cursor","setCursor","guid","uuidv4","listboxGuid","nativeEl","dropdownEl","triggerEl","listingEl","handleClickOutside","container","handleTriggerClick","isDevice","handleOptionClick","handleOptionChange","handleKeyDown","getDisplayLabel","API_KEY","coveoEngine","countryOptions","careTypeOptions","searchWithInfoRedirect","searchNoInfoRedirect","urlUsa","urlCanada","careTypePlaceholder","distancePlaceholder","searchBoxPlaceholder","externalSubmitHandler","onCountryChange","onCareTypeChange","onDistanceChange","allowEmptySearch","setSearchInputValue","setSelectedPlace","setSelectedCountry","setSelectedCareType","setSelectedDistance","PlaceAutocomplete","onPlaceSelect","placeAutocomplete","setPlaceAutocomplete","inputRef","places","useMapsLibrary","handleChange","handleBlur","suggestionsControllersArray","field","suggestionsController","buildFieldSuggestions","countryRedirect","queryString","handleLocationQuery","handleSubmit","submitGoogleEvent","eventOption","handleCareTypeChange","handleDistanceChange","searchTerm","eventData","Dropdown","APIProvider","Map","MapControl","ControlPosition","createContext","statusControllers","buildSearchStatus","fragment","urlManager","buildUrlManager","onHashChange","unsubscribeManager","userAgent","isEmpty","element","isInViewport","rect","checkTrustarc","cookie","permit","getFakeLocation","getCurrentPathnameWithoutLanguage","pathname","callback","handleClick","event","subscribers","subscribe","filter","subscriber","deps"],"mappings":"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","file":"Areas/SunriseSeniorLiving/Scripts/5466.2c8b4647d9338ab60cdb.bundle.js","sourcesContent":["function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nwebpackEmptyContext.id = 73373;\nmodule.exports = webpackEmptyContext;","import * as Coveo from 'coveo-search-ui';\nimport { Component } from '@verndale/core';\nimport Cookies from 'js-cookie';\nimport { getLocalStorageData, setLocalStorageData, } from '../helpers';\nimport {\n getLocationCookie,\n setLocationCookie,\n getCoveoFindACommunityFieldsToInclude,\n sendFacetQuery,\n sendCoveoGeolocationQuery,\n sendCoveoGeolocationInterfaceLoad,\n checkForHiddenQueryInHash\n} from '../coveo/helpers';\n\nclass Module extends Component {\n setupDefaults() {\n this.dom = {\n $search: this.el._$('.location-selector__input'),\n $searchOmnibox: this.el._$('.CoveoOmnibox'),\n $searchOptions: this.el._$('.location-selector__dropdown select'),\n $countrySelect: this.el._$('.location-selector__country-select select'),\n $countryOptions: this.el._$$(\n '.location-selector__country-select select option'\n ),\n $careTypeSelect: this.el._$('.location-selector__care-type select'),\n $submit: this.el._$('.location-selector__search-button')\n };\n\n setLocalStorageData({\n isFetching: true\n });\n\n this.searchResultsURL = this.el.dataset.searchResultsPageUrl;\n this.filterTagUS = this.el.dataset.filterTagUs.toLowerCase();\n this.filterTagCA = this.el.dataset.filterTagCa.toLowerCase();\n this.placeholderUS = this.el.dataset.placeholderUs;\n this.placeholderCA = this.el.dataset.placeholderCa;\n this.locationAPIbaseURL = this.el.dataset.geoEndpoint;\n\n this.cookieName = this.el.dataset.cookieKey || 'ssl-location';\n this.lat =\n getLocalStorageData()?.lat || this.getLocationCookie()?.lat || null;\n this.lng =\n getLocalStorageData()?.lng || this.getLocationCookie()?.lng || null;\n this.countryRedirect = this.el.dataset.urlUsa;\n this.countryState = null;\n\n this.addCoveoEventHandlers();\n this.initCoveo();\n this.getLatLong();\n\n this.redirectCallbacks.bind(this);\n }\n\n static getLocationCookie() {\n const locationCookie = Cookies.get(this.cookieName);\n try {\n return locationCookie ? JSON.parse(locationCookie) : null;\n } catch (e) {\n return null;\n }\n\n }\n\n setStorageAndCookieLocation(args) {\n setLocalStorageData(args);\n setLocationCookie(args);\n }\n\n initCoveo() {\n this.apiKey = this.el.dataset.apiK;\n\n if (this.el.dataset.organizationId.length > 0) {\n this.organizationId = this.el.dataset.organizationId;\n\n Coveo.SearchEndpoint.configureCloudV2Endpoint(\n this.organizationId,\n this.apiKey\n );\n\n Coveo.initSearchbox(this.el, this.searchResultsURL, {\n FieldSuggestions: {\n onSelect: this.handleCoveoOnSelectSuggestion.bind(this)\n }\n });\n\n Coveo.Logger.disable();\n }\n }\n\n async getLatLong(value) {\n const localStorageData = getLocalStorageData();\n\n if (!value && localStorageData?.value) {\n value = localStorageData.value;\n }\n\n const resetLocationForCookiesAndStorage = () => {\n this.setStorageAndCookieLocation({\n lat: this.lat || null,\n lng: this.lng || null\n });\n };\n\n // if (localStorageData.isFetching === true) return;\n\n if (value) {\n setLocalStorageData({\n locationSetBySearch: 'true',\n locationSetBySearch2: 'true'\n });\n }\n\n if (localStorageData.lat && localStorageData.lng) {\n setLocationCookie({\n lat: localStorageData.lat,\n lng: localStorageData.lng\n });\n } else {\n resetLocationForCookiesAndStorage();\n }\n\n const controller = new AbortController();\n const fetchTimeout = setTimeout(() => {\n controller.abort();\n }, 250);\n\n const country =\n document.querySelector(\n '.find-a-community-masthead .location-selector__country-select select'\n ) || this.el.querySelector('.location-selector__country-select select');\n\n const fetchURL = value\n ? `${this.locationAPIbaseURL}?value=${value} ${\n country.value === 'US' ? 'USA' : 'CANADA'\n }`\n : `${this.locationAPIbaseURL}`;\n\n try {\n setLocalStorageData({\n isFetching: true\n });\n\n const response = await fetch(fetchURL);\n const responseJson = await response.json();\n const inputValue = value || this.dom.$locationInput.value;\n\n if (responseJson) {\n this.lat = responseJson.Latitude;\n this.lng = responseJson.Longitude;\n\n if (\n !localStorageData ||\n localStorageData.lat !== this.lat ||\n localStorageData.lng !== this.lng\n ) {\n if (!localStorageData?.value) {\n this.setStorageAndCookieLocation({ value: null });\n }\n resetLocationForCookiesAndStorage();\n }\n\n if (responseJson.IsState) {\n this.countryState = responseJson.State;\n this.setStorageAndCookieLocation({ state: this.countryState });\n } else {\n this.countryState = null;\n this.setStorageAndCookieLocation({ state: null });\n }\n\n this.setStorageAndCookieLocation({\n usingIp: responseJson.IP ? true : false\n });\n\n if (inputValue && localStorageData.value !== inputValue) {\n setLocalStorageData({\n value: inputValue,\n sw: null,\n sw2: null,\n nearbyCommunitiesRow: null\n });\n setLocationCookie({\n value: inputValue\n });\n }\n\n clearTimeout(fetchTimeout);\n return responseJson;\n }\n } catch (error) {\n console.error('Error:', error);\n } finally {\n setLocalStorageData({\n isFetching: false\n });\n }\n }\n\n addCoveoEventHandlers() {\n Coveo.$$(this.el).on(\n 'afterInitialization',\n this.handleCoveoAfterInitialization.bind(this)\n );\n Coveo.$$(this.el).on('newQuery', this.handleCoveoNewQuery.bind(this));\n Coveo.$$(this.el).on(\n 'buildingQuery',\n this.handleCoveoBuildingQuery.bind(this)\n );\n Coveo.$$(this.el).on(\n 'beforeRedirect',\n this.handleCoveoBeforeRedirect.bind(this)\n );\n }\n\n redirectCallbacks(key) {\n return {\n resultsPage: async (args, self) => {\n if (!this.dom.$careTypeSelect.value && !this.dom.$locationInput.value) {\n args.searchPageUri = `${self.dataset.searchNoInfoRedirect}`;\n } else {\n args.cancel = true;\n const response = await this.getLatLong(this.dom.$locationInput.value);\n const { Latitude, Longitude, IsState, State } = response || {};\n\n window.location.href = IsState\n ? `${this.countryRedirect}${self.dataset.searchWithInfoRedirect}/${State}`\n : `${this.countryRedirect}${\n self.dataset.searchWithInfoRedirect\n }#f:@ssl_levelsofcare=[${encodeURIComponent(\n this.dom.$careTypeSelect.value\n )}]&latitude=${Latitude}&longitude=${Longitude}&source=${\n this.dom.$countrySelect.value\n }`;\n }\n },\n homeMasthead: async (args, self) => {\n if (!this.dom.$careTypeSelect.value && !this.dom.$locationInput.value) {\n args.searchPageUri = `${this.countryRedirect}${self.dataset.searchNoInfoRedirect}`;\n } else {\n args.cancel = true;\n const response = await this.getLatLong(this.dom.$locationInput.value);\n const { Latitude, Longitude, IsState, State } = response;\n\n window.location.href = IsState\n ? `${this.countryRedirect}${self.dataset.searchWithInfoRedirect}/${State}`\n : `${this.countryRedirect}${\n self.dataset.searchWithInfoRedirect\n }#f:@ssl_levelsofcare=[${encodeURIComponent(\n this.dom.$careTypeSelect.value\n )}]&latitude=${Latitude}&longitude=${Longitude}&source=${\n this.dom.$countrySelect.value\n }`;\n }\n },\n mapResultsPage: async (args, self) => {\n args.cancel = true;\n if (this.dom.$careTypeSelect) {\n Coveo.state(\n self,\n 'hq',\n `@ssl_levelsofcare==\"[${encodeURIComponent(\n this.dom.$careTypeSelect.value\n )}]\" $qf(function:'dist(@ssl_latitude_d,@ssl_longitude_d,${\n this.lat\n },${this.lng})', fieldName: 'distance')`\n );\n } else {\n const response = await this.getLatLong(this.dom.$locationInput.value);\n const { Latitude, Longitude, IsState, State } = response || {};\n\n if (!Latitude || !Longitude) return;\n\n if (!IsState) {\n Coveo.state(\n self,\n 'hq',\n `$qf(function:'dist(@ssl_latitude_d,@ssl_longitude_d,${Latitude},${Longitude})', fieldName: 'distance')`\n );\n Coveo.state(self, 'latitude', Latitude);\n Coveo.state(self, 'longitude', Longitude);\n Coveo.state(self, 'source', this.dom.$countrySelect.value);\n window.location.href = `${this.el.dataset.searchResultsPageUrl}#hq=$qf(function:'dist(@ssl_latitude_d,@ssl_longitude_d,${Latitude},${Longitude})', fieldName: 'distance')&latitude=${Latitude}&longitude=${Longitude}&source=${this.dom.$countrySelect.value}`;\n } else {\n Coveo.logSearchEvent(\n self,\n {\n name: 'locationSelectorMapResultsPage',\n type: ''\n },\n {\n latitude: Latitude,\n longitude: Longitude\n }\n );\n window.location.href = `${this.countryRedirect}${\n this.el.dataset.searchWithInfoRedirect || '/communities'\n }/${State}`;\n }\n\n Coveo.executeQuery(self);\n }\n },\n shareCommunities: async args => {\n args.cancel = true;\n },\n communityRow: async args => {\n args.cancel = true;\n }\n }[key];\n }\n\n async handleCoveoBeforeRedirect(e, args) {\n this.countryRedirect =\n this.dom.$countrySelect.value === 'CA'\n ? this.el.dataset.urlCanada\n : this.countryRedirect;\n\n const pages = new Map([\n [\n 'resultsPage',\n document._$('.nearby-communities-row-with-search__coveo')\n ],\n ['homeMasthead', document._$('.homepage-masthead')],\n ['mapResultsPage', document._$('.find-a-community-map-view-row')],\n ['shareCommunities', document._$('.share-communities')],\n ['communityRow', document._$('.community-row')]\n ]);\n\n const currentPageKey = [...pages].find(([_, value]) => !!value)[0];\n\n this.setStorageAndCookieLocation({\n lat: this.lat,\n lng: this.lng,\n value: this.dom.$locationInput.value || '',\n country: this.dom.$countrySelect.value,\n state: this.countryState\n });\n\n if (\n this.el.dataset.searchWithInfoRedirect &&\n this.dom.$careTypeSelect.value &&\n this.dom.$locationInput.value\n ) {\n args.cancel = true;\n const { IsState, State } = await this.getLatLong(\n this.dom.$locationInput.value\n );\n\n if (IsState) {\n this.countryState = State;\n this.setStorageAndCookieLocation({ state: this.countryState });\n window.location.href = `${this.el.dataset.searchWithInfoRedirect}/${State}`;\n } else {\n this.countryState = null;\n this.setStorageAndCookieLocation({ state: null });\n window.location.href = `${this.el.dataset.searchWithInfoRedirect}`;\n }\n } else {\n args.searchPageUri =\n this.el.dataset.searchNoInfoRedirect &&\n `${this.el.dataset.searchNoInfoRedirect}`;\n }\n\n if (this.dom.$careTypeSelect && this.dom.$careTypeSelect.value) {\n args.searchPageUri += `#f:@ssl_levelsofcare=[${encodeURIComponent(\n this.dom.$careTypeSelect.value\n )}]`;\n currentPageKey &&\n this.redirectCallbacks(currentPageKey)(args, pages.get(currentPageKey));\n } else {\n currentPageKey &&\n this.redirectCallbacks(currentPageKey)(args, pages.get(currentPageKey));\n }\n }\n\n handleCoveoAfterInitialization() {\n const redirectUrl =\n this.el.dataset.searchWithInfoRedirect || '/communities';\n let isPlainCommunities = false;\n\n this.dom.$locationInput = this.el._$('.CoveoOmnibox input');\n\n this.dom.$locationInput._on(\n 'input',\n this.handleButtonEnableDisable.bind(this)\n );\n\n this.handleButtonEnableDisable({\n target: this.dom.$locationInput\n });\n\n this.setPlaceholder();\n\n const localStorage = getLocalStorageData();\n const locationCookie = this.getLocationCookie();\n const inputValue = locationCookie?.value || localStorage?.value;\n\n if (!localStorage?.value && locationCookie?.value) {\n setLocalStorageData({ value: locationCookie.value });\n }\n\n if (localStorage?.value && !locationCookie?.value) {\n setLocationCookie({ value: localStorage.value });\n }\n\n if (window.location.href.endsWith(redirectUrl)) isPlainCommunities = true;\n\n if (inputValue && !isPlainCommunities) {\n this.dom.$locationInput.value = inputValue;\n this.handleButtonEnableDisable({\n target: this.dom.$locationInput\n });\n }\n }\n\n async handleCoveoNewQuery() {\n const { Latitude, Longitude } = await this.getLatLong(\n this.dom.$locationInput.value\n );\n\n if (Latitude && Longitude) {\n Coveo.state(\n this.el,\n 'hq',\n `$qf(function:'dist(@ssl_latitude_d,@ssl_longitude_d,${Latitude},${Longitude})', fieldName: 'distance')`\n );\n }\n }\n\n handleCoveoBuildingQuery(e, args) {\n const shareCommunities = document._$('.share-communities');\n const communityRow = document._$('.community-row');\n if (shareCommunities || communityRow) {\n args.cancel = true;\n }\n }\n\n handleCoveoOnSelectSuggestion(selectedValue, populateOmniboxEventArgs) {\n Coveo.get(this.dom.$searchOmnibox).setText(selectedValue);\n populateOmniboxEventArgs.closeOmnibox();\n }\n\n setInputTooltip() {\n const inputPlaceholder = this.dom.$searchOmnibox._$('input').placeholder;\n this.dom.$searchOmnibox._$('input').setAttribute('title', inputPlaceholder);\n }\n\n setPlaceholder(filterTag) {\n if (filterTag === this.filterTagUS)\n this.dom.$searchOmnibox._$('input').placeholder = this.placeholderUS;\n else if (filterTag === this.filterTagCA)\n this.dom.$searchOmnibox._$('input').placeholder = this.placeholderCA;\n this.setInputTooltip();\n }\n\n addListeners() {\n this.dom.$countrySelect.addEventListener(\n 'option',\n this.handleCountryChange.bind(this)\n );\n if (this.dom.$searchOptions)\n this.dom.$searchOptions.addEventListener(\n 'option',\n this.handleOptionChange.bind(this)\n );\n }\n\n handleOptionChange(e) {\n const selectedDropdownOption = [...e.currentTarget].find(\n option => option.getAttribute('aria-selected') === 'true'\n ).value;\n }\n\n handleCountryChange(e) {\n const selectedCountryFilterTag = [...e.currentTarget]\n .find(option => option.getAttribute('aria-selected') === 'true')\n .dataset.filterTag.toLowerCase();\n\n if (selectedCountryFilterTag) this.setPlaceholder(selectedCountryFilterTag);\n }\n\n handleButtonEnableDisable(e) {\n if (this.el.classList.contains('location-selector--submit-always-enabled'))\n return;\n this.dom.$submit.disabled = !e.target?.value;\n\n const nearbySearch = document.querySelector(\n '.nearby-communities-row-with-search'\n );\n if (nearbySearch) {\n nearbySearch.querySelector(\n '.location-selector__search-button'\n ).disabled = false;\n }\n }\n}\n\nexport default Module;\n","import React, { useEffect, useState, useRef, useContext } from 'react';\nimport useOutsideClick from '../../../hooks/useClickOutside';\nimport { setLocationCookie } from '../../helpers';\n\nconst DropdownFacet = props => {\n const {\n showNumberSelected = false,\n controller,\n facet = {\n id: 'facet-id',\n title: 'Facet Title',\n isSingleSelect: false\n },\n type = 'with-checkbox-and-results',\n immediateAction = false,\n onFacetChange = null,\n onResetFacet\n } = props;\n const [state, setState] = useState(controller.state);\n const [selectedValues, setSelectedValues] = useState([]);\n const [expanded, setExpanded] = useState(false);\n const isInitialMount = useRef(true);\n\n useEffect(() => {\n controller.subscribe(() => {\n setState(controller.state);\n });\n }, []);\n\n useEffect(() => {\n if (isInitialMount.current && controller.state.values.length > 0) {\n const hash = window.location.hash.slice(1);\n if (hash !== undefined) {\n const params = new URLSearchParams(hash);\n for (const [key, value] of params) {\n if (key.startsWith('f-' + props.facet.id)) {\n const values = value.split(',');\n const selected = controller.state.values.filter(item => values.includes(item.value));\n selected.forEach(item => {\n controller.toggleSelect(item);\n });\n setSelectedValues([...selectedValues, ...selected]);\n }\n }\n }\n isInitialMount.current = false;\n }\n }, [controller.state.values]);\n\n useEffect(() => {\n if (onResetFacet) {\n setSelectedValues([]);\n }\n }, [onResetFacet])\n\n useEffect(() => {\n if (onFacetChange) onFacetChange(facet, selectedValues);\n var data = JSON.parse('{ \"' + facet.id + '\": \"' + selectedValues.map(item => item.value).join(',') + '\"}');\n setLocationCookie(data);\n }, [selectedValues]);\n\n const handleFacetClick = value => {\n if (facet.isSingleSelect) {\n if (immediateAction) controller.toggleSingleSelect(value);\n if (selectedValues.includes(value)) {\n setSelectedValues([]);\n } else {\n setSelectedValues([value]);\n }\n } else {\n if (immediateAction) controller.toggleSelect(value);\n if (selectedValues.some(item => item.value === value.value)) {\n setSelectedValues(\n selectedValues.filter(item => item.value !== value.value)\n );\n } else {\n setSelectedValues([...selectedValues, value]);\n }\n }\n };\n\n const ref = useOutsideClick(() => {\n setExpanded(false);\n });\n\n const checkSelected = value => {\n if (immediateAction) return controller.isValueSelected(value);\n else return selectedValues.includes(value);\n };\n\n const renderFacet = value => {\n //type is one of\n //'with-checkbox-and-results'\n //'with-results'\n //'with-checkbox'\n //'with-underline-on-select'\n return (\n handleFacetClick(value)}\n >\n \n \n \n {value.value}\n \n {type === 'with-checkbox-and-results' && (\n \n {value.numberOfResults}\n \n )}\n \n );\n };\n\n return (\n
\n
\n
\n
\n \n \n \n \n \n {state.values.map(value => (\n \n ))}\n \n setExpanded(!expanded)}\n >\n {facet.title}\n {facet.isSingleSelect && selectedValues.length > 0 && (\n \n {\n selectedValues.find(\n item => item === selectedValues[selectedValues.length - 1]\n ).value\n }\n \n )}\n {showNumberSelected && selectedValues.length > 0 && (\n \n {selectedValues.length} selected\n \n )}\n \n
\n
    \n {state.values.map(value => (\n
  • \n {renderFacet(value)}\n
  • \n ))}\n
\n
\n
\n
\n
\n
\n );\n};\n\nexport default DropdownFacet;\n","import React, { useEffect, useState, useContext } from 'react';\nimport SearchContext from '../../state/context';\n\nexport const Pager = props => {\n const { controller, className } = props;\n const [isLoading, setIsLoading] = useState(false);\n const [state, setState] = useState(controller.state);\n const { resultsListController } = useContext(SearchContext);\n\n useEffect(() => {\n controller.subscribe(() => {\n setState(controller.state);\n });\n resultsListController.subscribe(() => {\n setIsLoading(resultsListController.state.isLoading);\n });\n }, []);\n\n if (!state.hasNextPage && !state.hasPreviousPage) {\n return null;\n }\n\n return (\n \n );\n};\n","import { buildSearchEngine } from '@coveo/headless';\n\nconst postprocessSearchResponse = response => {\n response.body?.results.forEach(result => result);\n return response;\n};\n\nconst postprocessFacetSearchResponse = response => {\n return response;\n};\n\nconst postprocessQuerySuggestSearchResponse = response => {\n return response;\n};\n\nconst preprocessRequest = (request, clientOrigin) => {\n if (global.preProcessRequest) {\n if (clientOrigin === 'searchApiFetch' && request.body) {\n const body = global.preProcessRequest(request.body.toString());\n request.body = body;\n }\n }\n\n if (clientOrigin === 'analyticsFetch') {\n // E.g., send data to a third party\n }\n\n return request;\n};\n\nconst buildEngine = ({ organizationId, accessToken, searchHub, pipeline }) => {\n const headlessEngine = buildSearchEngine({\n configuration: {\n organizationId: organizationId,\n accessToken: accessToken,\n search: {\n searchHub: searchHub,\n pipeline: pipeline,\n preprocessSearchResponseMiddleware: postprocessSearchResponse,\n preprocessFacetSearchResponseMiddleware: postprocessFacetSearchResponse,\n preprocessQuerySuggestResponseMiddleware:\n postprocessQuerySuggestSearchResponse\n },\n analytics: {\n originLevel3: document.referrer ? document.referrer : 'no-referrer'\n },\n preprocessRequest\n }\n });\n\n return headlessEngine;\n};\n\nconst commonConfigurator = document.querySelector(\n '.coveo-common-engine-configurator'\n);\n\nconst coveoCommonConfig = {};\nlet commonEngine = null;\n\nif (commonConfigurator) {\n coveoCommonConfig.organizationId =\n commonConfigurator.dataset.coveoOrganizationId;\n coveoCommonConfig.accessToken = commonConfigurator.dataset.coveoAccessToken;\n coveoCommonConfig.searchHub = commonConfigurator.dataset.coveoSearchHub;\n coveoCommonConfig.pipeline = commonConfigurator.dataset.coveoPipeline;\n\n commonEngine = buildSearchEngine({\n configuration: {\n organizationId: coveoCommonConfig.organizationId,\n accessToken: coveoCommonConfig.accessToken,\n search: {\n searchHub: coveoCommonConfig.searchHub,\n pipeline: coveoCommonConfig.pipeline,\n preprocessSearchResponseMiddleware: postprocessSearchResponse,\n preprocessFacetSearchResponseMiddleware: postprocessFacetSearchResponse,\n preprocessQuerySuggestResponseMiddleware:\n postprocessQuerySuggestSearchResponse\n },\n analytics: {\n originLevel3: document.referrer ? document.referrer : 'no-referrer'\n },\n preprocessRequest\n }\n });\n}\n\nconst nearbyColumnHeadless = document.querySelector(\n '.nearby-communities-supporting-column-headless > div'\n);\n\nconst nearbyColumnEngineConfig = {};\nlet nearbyColumnEngine = null;\n\nif (nearbyColumnHeadless) {\n nearbyColumnEngineConfig.organizationId =\n nearbyColumnHeadless.dataset.coveoOrganizationId;\n nearbyColumnEngineConfig.accessToken =\n nearbyColumnHeadless.dataset.coveoAccessToken;\n nearbyColumnEngineConfig.searchHub =\n nearbyColumnHeadless.dataset.coveoSearchHub;\n nearbyColumnEngineConfig.pipeline =\n nearbyColumnHeadless.dataset.coveoPipeline;\n\n nearbyColumnEngine = buildSearchEngine({\n configuration: {\n organizationId: nearbyColumnEngineConfig.organizationId,\n accessToken: nearbyColumnEngineConfig.accessToken,\n search: {\n searchHub: nearbyColumnEngineConfig.searchHub,\n pipeline: nearbyColumnEngineConfig.pipeline,\n preprocessSearchResponseMiddleware: postprocessSearchResponse,\n preprocessFacetSearchResponseMiddleware: postprocessFacetSearchResponse,\n preprocessQuerySuggestResponseMiddleware:\n postprocessQuerySuggestSearchResponse\n },\n analytics: {\n originLevel3: document.referrer ? document.referrer : 'no-referrer'\n },\n preprocessRequest\n }\n });\n}\n\nexport { buildEngine, commonEngine, nearbyColumnEngine };\n","import Cookies from 'js-cookie';\nimport {\n loadPipelineActions,\n loadSearchAnalyticsActions,\n loadSearchActions,\n loadSortCriteriaActions,\n loadAdvancedSearchQueryActions,\n buildFieldSortCriterion\n} from '@coveo/headless';\n\nconst locationDataStorage = 'ssl-location-data'\n//hijacking this method and moving data to local storage\nconst getLocationCookie = locationCookieName => {\n const locationCookie = localStorage.getItem(locationDataStorage);\n return locationCookie ? JSON.parse(locationCookie) : null;\n};\n\nconst setLocationCookie = (args) => {\n Object.keys(args).forEach((key) => {\n if (args[key] == 'null') {\n args[key] = null;\n }\n });\n\n const prevCookieData = getLocationCookie() || {};\n\n Object.keys(prevCookieData).forEach((key) => {\n if (prevCookieData[key] == 'null') {\n prevCookieData[key] = null;\n }\n });\n\n const cookieData = {\n ...prevCookieData,\n ...args\n };\n\n localStorage.setItem(locationDataStorage, JSON.stringify(cookieData));\n}\n\nconst unitConversion = (distance, unit) => {\n const miles = 0.000621371;\n const kilometers = 0.001;\n\n if (unit === 'mi') {\n return (distance * miles).toFixed(2);\n }\n return (distance * kilometers).toFixed(2);\n};\n\nconst getGoogleMapsInfoWindowContentString = ({\n linkToAnchor = null,\n linkWholeCard = true,\n result,\n showDistance = true,\n imageDomain = '',\n unit = 'mi',\n unitLabelCard = 'mi',\n underlineTitle = false\n}) => {\n const imgString =\n result.raw.ssl_thumbnailimage || result.raw.ssl_mainimagedesktop\n ? ``\n : '';\n const titleString = result.raw.ssl_communityname\n ? `

${\n result.raw.ssl_communityname\n ? result.raw.ssl_communityname\n : result.raw.title\n }

`\n : '';\n const contentString = `${\n linkWholeCard\n ? ``\n : ''\n }
\n
\n ${imgString}\n
\n
\n ${titleString} ${\n showDistance\n ? `
${result.raw.distance_search} ${unitLabelCard}
`\n : ''\n }\n
\n
${linkWholeCard ? '
' : ''}`;\n\n return contentString;\n};\n\nconst setCurrentCommunityCookie = result => {\n const {\n module,\n distance,\n ssl_latitude_d,\n ssl_longitude_d,\n ssl_communityname,\n ssl_thumbnailimage,\n ssl_pricingandavailabilityphone,\n ssl_residentsandfamilyphone,\n ssl_communityid,\n uri,\n ssl_mainimagedesktop\n } = result.raw;\n const currentCommunityData = {\n ssl_latitude: ssl_latitude_d,\n ssl_longitude: ssl_longitude_d,\n ssl_communityname,\n ssl_thumbnailimage: ssl_thumbnailimage\n ? ssl_thumbnailimage\n : ssl_mainimagedesktop,\n ssl_pricingandavailabilityphone,\n ssl_residentsandfamilyphone,\n ssl_communityid,\n ssl_communitylink: uri,\n ssl_distance: distance\n };\n const currentCommunityString = JSON.stringify(currentCommunityData);\n Cookies.set('current_community', currentCommunityString);\n};\n\nconst filterProtocol = uri => {\n const isAbsolute = /^(https?|ftp|file|mailto|tel|sip):/i.test(uri);\n const isRelative = /^(\\/|\\.\\/|\\.\\.\\/)/.test(uri);\n\n return isAbsolute || isRelative ? uri : '';\n};\n\nconst getQueryFunctionsLatitudeLongitude = (latitude, longitude) => {\n return [\n {\n fieldName: `@distance`,\n function: `dist(@ssl_latitude_d,@ssl_longitude_d, ${parseFloat(\n latitude\n )}, ${parseFloat(longitude)})`\n },\n {\n fieldName: `@distanceInMiles`,\n function: `@distance*0.000621371`\n }\n ];\n};\n\nconst setLatitudeLongitudePreprocessRequest = (latitude, longitude) => {\n const global = window;\n global.preProcessRequest = body => {\n const newBody = JSON.parse(body.toString());\n newBody.queryFunctions = getQueryFunctionsLatitudeLongitude(\n latitude,\n longitude\n );\n return JSON.stringify(newBody);\n };\n};\n\nconst getAdvancedGeolocationQuery = ({\n source,\n radiusInMiles = 50,\n careType = null,\n state = null,\n contextLanguage = 'en',\n hiddenCommunitiesArray = []\n}) => {\n return {\n aq: `(@source==\"${source}\") ${\n state === null && radiusInMiles\n ? `(@distanceInMiles<=${radiusInMiles})`\n : ''\n } ${\n careType ? `(@ssl_levelsofcare==\"${careType}\")` : ''\n } (@ssl_contextlanguage==${contextLanguage}) ${\n state ? `(@ssl_stateabbreviation==\"${state}\")` : ''\n } (@ssl_pagetype=='community_pagetype') ${\n hiddenCommunitiesArray.length > 0\n ? hiddenCommunitiesArray\n .map(el => `(NOT @ssl_communityid==\"${el}\")`)\n .join(' ')\n : ''\n }`\n };\n};\n\nconst getCoveoFindACommunityFieldsToInclude = () => {\n return [\n 'distance',\n 'uri',\n 'ssl_latitude_d',\n 'ssl_longitude_d',\n 'ssl_thumbnailimage',\n 'ssl_mainimagedesktop',\n 'ssl_communityid',\n 'ssl_communityname',\n 'ssl_heading',\n 'ssl_contextlanguage',\n 'ssl_state',\n 'ssl_city',\n 'ssl_zipcode',\n 'ssl_stateabbreviation',\n 'ssl_levelsofcare',\n 'ssl_pricingandavailabilityphone',\n 'ssl_residentsandfamilyphone',\n 'ssl_communityprice',\n 'ssl_commnunitystatus',\n 'ssl_mainimagedesktop_405x548'\n ];\n};\n\nconst sendCoveoInterfaceLoad = ({ engine, pipeline = 'default' }) => {\n const { logInterfaceLoad } = loadSearchAnalyticsActions(engine);\n const { executeSearch } = loadSearchActions(engine);\n engine.dispatch(executeSearch(logInterfaceLoad()));\n};\n\nconst sendCoveoGeolocationInterfaceLoad = ({\n engine,\n latitude,\n longitude,\n source,\n advancedUrlQuery = null,\n radiusInMiles,\n state = null,\n language,\n pipeline = 'default',\n hiddenCommunitiesArray = [],\n previousLoad = false\n}) => {\n if (previousLoad) {\n return;\n }\n\n const { registerSortCriterion } = loadSortCriteriaActions(engine);\n const { setPipeline } = loadPipelineActions(engine);\n const { logInterfaceLoad, logSearchFromLink } =\n loadSearchAnalyticsActions(engine);\n const { executeSearch } = loadSearchActions(engine);\n setLatitudeLongitudePreprocessRequest(latitude, longitude);\n const advancedQuerySearchActionCreator =\n loadAdvancedSearchQueryActions(engine);\n let advancedQuery;\n if (advancedUrlQuery) {\n advancedQuery = {\n aq: `(@source==\"${source}\") (@ssl_contextlanguage==${language}) (@ssl_pagetype=='community_pagetype') ${advancedUrlQuery}`\n };\n } else {\n advancedQuery = getAdvancedGeolocationQuery({\n source: source,\n state: state,\n radiusInMiles: radiusInMiles ? parseFloat(radiusInMiles) : null,\n contextLanguage: language,\n hiddenCommunitiesArray: hiddenCommunitiesArray\n });\n }\n\n engine.dispatch(\n registerSortCriterion(buildFieldSortCriterion('distance', 'ascending'))\n );\n engine.dispatch(setPipeline(pipeline));\n engine.dispatch(\n advancedQuerySearchActionCreator.registerAdvancedSearchQueries(\n advancedQuery\n )\n );\n if (advancedUrlQuery) engine.dispatch(executeSearch(logSearchFromLink()));\n else engine.dispatch(executeSearch(logInterfaceLoad()));\n};\n\nconst sendCoveoGeolocationQuery = ({\n engine,\n latitude,\n longitude,\n advancedUrlQuery,\n source = 'Production US - English',\n radiusInMiles = 50,\n careType = null,\n state = null,\n language = 'en',\n pipeline = 'default',\n hiddenCommunitiesArray = []\n}) => {\n const { registerSortCriterion } = loadSortCriteriaActions(engine);\n const { setPipeline } = loadPipelineActions(engine);\n const { logSearchboxSubmit } = loadSearchAnalyticsActions(engine);\n const { executeSearch } = loadSearchActions(engine);\n setLatitudeLongitudePreprocessRequest(latitude, longitude);\n const advancedQuerySearchActionCreator =\n loadAdvancedSearchQueryActions(engine);\n let advancedQuery;\n if (advancedUrlQuery) {\n advancedQuery = {\n hq: `(@source==\"${source}\") (@ssl_contextlanguage==${language}) (@ssl_pagetype=='community_pagetype') ${advancedUrlQuery}`\n };\n } else {\n advancedQuery = getAdvancedGeolocationQuery({\n source: source,\n state: state,\n careType: careType,\n radiusInMiles: radiusInMiles ? parseFloat(radiusInMiles) : null,\n contextLanguage: language,\n hiddenCommunitiesArray: hiddenCommunitiesArray\n });\n }\n engine.dispatch(\n registerSortCriterion(buildFieldSortCriterion('distance', 'ascending'))\n );\n engine.dispatch(setPipeline(pipeline));\n engine.dispatch(\n advancedQuerySearchActionCreator.registerAdvancedSearchQueries(\n advancedQuery\n )\n );\n engine.dispatch(executeSearch(logSearchboxSubmit()));\n};\n\nconst checkForAdvancedQueryInHash = () => {\n const hash = window.location.hash.slice(1);\n const params = new URLSearchParams(hash);\n const advancedQuery = params.get('aq');\n if (advancedQuery) return advancedQuery;\n return null;\n};\n\nconst checkForHiddenQueryInHash = () => {\n const hash = window.location.hash.slice(1);\n const params = new URLSearchParams(hash);\n const hiddenQuery = params.get('hq');\n if (hiddenQuery) return hiddenQuery;\n return null;\n};\n\nconst clearAllFacets = () => {\n const hash = window.location.hash;\n const hashArray = hash.split('&');\n const newHashArray = hashArray.filter(item => !item.includes('f'));\n const newHash = newHashArray.join('&');\n window.location.hash = newHash;\n};\n\nconst getModuleStorageCacheData = module => {\n const localStorageData = localStorage.getItem('ssl-modules-cache');\n const localStorageDataParsed = localStorageData\n ? JSON.parse(localStorageData)\n : null;\n if (module) {\n return localStorageDataParsed ? localStorageDataParsed[module] : null;\n }\n return localStorageDataParsed;\n};\n\nconst setModuleStorageCacheData = (module, value, locationInfo) => {\n const prevLocaStorageData = getModuleStorageCacheData() || {};\n const localStorageData = {\n ...prevLocaStorageData,\n [module]: {\n value: value,\n locationInfo: locationInfo\n }\n };\n localStorage.setItem('ssl-modules-cache', JSON.stringify(localStorageData));\n};\n\nconst compareLocationInfo = (locationInfo1, locationInfo2) => {\n if (!locationInfo1 || !locationInfo2) return false;\n if (\n locationInfo1.Latitude === locationInfo2.Latitude &&\n locationInfo1.Longitude === locationInfo2.Longitude\n ) {\n return true;\n }\n return false;\n};\n\nconst sortResultsByDistance = results => {\n //sort array objects by distance\n if (!results) return [];\n const sortedResults = results.sort((a, b) => {\n // console.log(a.raw.distance, b.raw.distance);\n if (a.raw.distance === b.raw.distance) return 0;\n if (a.raw.distance > b.raw.distance) return 1;\n if (a.raw.distance < b.raw.distance) return -1;\n });\n return sortedResults;\n};\n\nexport {\n sortResultsByDistance,\n clearAllFacets,\n checkForHiddenQueryInHash,\n checkForAdvancedQueryInHash,\n sendCoveoInterfaceLoad,\n sendCoveoGeolocationQuery,\n sendCoveoGeolocationInterfaceLoad,\n setLatitudeLongitudePreprocessRequest,\n getCoveoFindACommunityFieldsToInclude,\n getAdvancedGeolocationQuery,\n getQueryFunctionsLatitudeLongitude,\n getLocationCookie,\n setLocationCookie,\n filterProtocol,\n getGoogleMapsInfoWindowContentString,\n unitConversion,\n setCurrentCommunityCookie,\n setModuleStorageCacheData,\n getModuleStorageCacheData,\n compareLocationInfo\n};\n","import React, { useState, useEffect, useContext } from 'react';\nimport SearchContext from '../../state/context';\nimport { unitConversion, sortResultsByDistance } from '../../helpers';\n\nconst ResultsColumn = props => {\n const {\n unit = 'mi',\n unitLabelCard = 'mi',\n levelsOfCareLabel = 'Types of Living',\n imagesDomain = '',\n pricingMessage = 'Room rates starting at [[communityPrice]]/month.*',\n pricingAvailabilityLabel = 'Pricing & Availability',\n residentsAndFamilyLabel = 'Residents & Family',\n onCloseCommunity,\n noResultsMessage = 'No results found'\n } = props;\n\n const {\n resultsListController,\n waitingForGeolocation,\n onCompareClick,\n comparedCommunities\n } = useContext(SearchContext);\n\n const [state, setState] = useState(resultsListController.state);\n const [displayedResults, setDisplayedResults] = useState([]);\n\n useEffect(() => {\n resultsListController.subscribe(() => {\n setState(resultsListController.state);\n if (resultsListController.state.results) {\n const originalResults = [...resultsListController.state.results];\n const sortedResults = sortResultsByDistance(originalResults);\n setDisplayedResults(sortedResults);\n }\n });\n }, []);\n\n if (waitingForGeolocation)\n return (\n
\n
\n
\n );\n\n const comparedCommunitiesIds = comparedCommunities.map(\n c => c.raw.ssl_communityid\n );\n\n if (!state || state.results.length === 0)\n return
{noResultsMessage}
;\n\n return (\n <>\n {state &&\n state.results.length > 0 &&\n displayedResults.map((result, index) => (\n
\n
\n \n
\n
\n {result.raw.ssl_communityname\n ? result.raw.ssl_communityname\n : result.raw.ssl_heading}\n
\n
\n {result.raw.ssl_city && (\n
\n {result.raw.ssl_city}\n {result.raw.ssl_stateabbreviation && (\n , {result.raw.ssl_stateabbreviation}\n )}\n
\n )}\n {result.raw.ssl_zipcode ? (\n
{result.raw.ssl_zipcode}
\n ) : (\n
{result.raw.ssl_zipcode_i}
\n )}\n {(result.raw.distance_search || result.raw.distance) && (\n
\n {result.raw.distance_search\n ? unitConversion(result.raw.distance_search, unit)\n : unitConversion(result.raw.distance, unit)}\n {unitLabelCard}\n
\n )}\n
\n {result.raw.ssl_levelsofcare && (\n
\n

{levelsOfCareLabel.toUpperCase()}

\n

\n {result.raw.ssl_levelsofcare.map(\n (level, index) =>\n `${level}${\n index < result.raw.ssl_levelsofcare.length - 1\n ? ', '\n : ''\n }`\n )}\n

\n
\n )}\n {(result.raw.ssl_pricingandavailabilityphone ||\n result.raw.ssl_residentsandfamilyphone) && (\n
\n {result.raw.ssl_pricingandavailabilityphone && (\n

\n {pricingAvailabilityLabel}\n \n {result.raw.ssl_pricingandavailabilityphone}\n \n

\n )}\n {result.raw.ssl_residentsandfamilyphone && (\n

\n {residentsAndFamilyLabel}\n {result.raw.ssl_residentsandfamilyphone}\n

\n )}\n
\n )}\n {result.raw.ssl_communityprice && (\n
\n

\n {pricingMessage.split('[[communityPrice]]')[0]}\n {result.raw.ssl_communityprice}\n {pricingMessage.split('[[communityPrice]]')[1]}\n

\n
\n )}\n
\n
\n
\n {result.raw.ssl_thumbnailimage ? (\n \n ) : (\n <>\n {result.raw.ssl_mainimagedesktop && (\n \n )}\n \n )}\n
\n
\n \n
\n = 3\n ? 'find-a-community-map-view-row__checkbox-label--disabled'\n : ''\n }`}\n >\n = 3}\n type=\"checkbox\"\n data-community-id={result.raw.ssl_communityid}\n className=\"find-a-community-map-view-row__checkbox\"\n value=\"Compare\"\n aria-label=\"Compare\"\n aria-hidden=\"true\"\n tabIndex=\"-1\"\n checked={comparedCommunitiesIds.includes(\n result.raw.ssl_communityid\n )}\n onChange={() => {\n onCompareClick(result);\n }}\n />\n \n \n Compare\n \n \n
\n
\n
\n ))}\n \n );\n};\n\nexport default ResultsColumn;\n","import React from 'react';\n\nconst ShareModal = props => {\n const { onClose, copyBtnLabel, urlToCopy, shareModalCopy, shareModalTitle } =\n props;\n return (\n \n
\n
\n
\n

{shareModalTitle}

\n \n \n \n \n \n \n \n \n
\n
\n
\n
{shareModalCopy}
\n
\n \n\n {\n const copyText = document.querySelector(\n '.find-a-community-map-view-row__modal-copy-url'\n );\n copyText.select();\n copyText.setSelectionRange(0, 99999);\n document.execCommand('copy');\n const feedback = document.querySelector(\n '.find-a-community-map-view-row__modal-copy-feedback'\n );\n feedback.innerHTML = 'Copied!';\n setTimeout(() => {\n feedback.innerHTML = '';\n }, 3000);\n }}\n >\n {copyBtnLabel}\n \n
\n
\n
\n
\n
\n
\n \n );\n};\n\nexport default ShareModal;\n","import React, { useContext, useState, useEffect } from 'react';\nimport SearchContext from '../../state/context';\n\nconst CompareBar = props => {\n const {\n setExpanded,\n onCloseCommunity,\n compareBtnLabel,\n clearBtnLabel,\n shareBtnLabel,\n compareUrlPath = '/'\n } = props;\n const {\n responseData,\n expanded,\n comparedCommunities,\n onShareModalClick,\n onMapSwitcherClick,\n isMapActive\n } = useContext(SearchContext);\n\n const comparedCommunitiesLinks = () => {\n let uri = window.location.href;\n uri = uri.split('?')[0];\n const url = new URL(compareUrlPath);\n comparedCommunities.map((item, i) => {\n url.searchParams.set(`community${i + 1}`, item.raw.ssl_communityid);\n });\n\n return url.toString();\n };\n\n return (\n 0 && 'active'\n } ${comparedCommunities.length > 0 && expanded ? 'expanded' : ''}`}\n >\n
\n
\n
\n {\n onMapSwitcherClick(false);\n }}\n >\n List View\n \n
\n
\n {\n onMapSwitcherClick(true);\n }}\n >\n Map View\n \n
\n
\n
\n
\n

\n Compare Communities\n

\n {\n setExpanded(!expanded);\n }}\n >\n {expanded ? 'Collapse' : 'Expand'}\n \n \n \n \n
\n
\n

\n Select up to 3 communities to get a side-by-side comparison.\n

\n
\n {comparedCommunities ? (\n comparedCommunities.map(community => (\n \n
\n {\n onCloseCommunity(community);\n }}\n >\n \n \n \n \n \n
\n

\n {community.raw.ssl_communityname}\n

\n {\n onCloseCommunity(community);\n }}\n >\n \n \n \n \n
\n ))\n ) : (\n <>\n )}\n
\n
\n {\n const compareURL = comparedCommunitiesLinks();\n onShareModalClick(compareURL);\n }}\n >\n \n \n \n {shareBtnLabel}\n \n \n {compareBtnLabel}\n \n {\n onCloseCommunity('all');\n }}\n >\n {clearBtnLabel}\n \n
\n \n \n );\n};\n\nexport default CompareBar;\n","import React, { useEffect, useState, useContext } from 'react';\nimport SearchContext from '../../state/context';\n\nexport const QuerySummary = props => {\n const { controller } = props;\n const [state, setState] = useState(controller.state);\n\n const { querySummaryObject } = useContext(SearchContext);\n\n const {\n querySummaryShowingText,\n querySummaryOfText,\n querySummaryResultsText\n } = querySummaryObject;\n\n useEffect(() => controller.subscribe(() => setState(controller.state)), []);\n\n const { hasResults, firstResult, lastResult, total } = state;\n\n if (!hasResults || total === 0) {\n return null;\n }\n\n const summary =\n total > 1\n ? [\n `${querySummaryShowingText} ${firstResult} - ${lastResult} ${querySummaryOfText} ${total} ${querySummaryResultsText}`\n ]\n : [\n `Showing 1 ${querySummaryResultsText.substring(\n 0,\n querySummaryResultsText.length - 1\n )}`\n ];\n\n return

;\n};\n\nexport default QuerySummary;\n","import React, { useEffect, useState, useRef, useContext } from 'react';\nimport useOutsideClick from '../../../hooks/useClickOutside';\n\nconst DropdownFacetWithCustomOptions = props => {\n const {\n showNumberSelected = false,\n showSecondaryLabel = true,\n options = [\n {\n value: 'us',\n label: 'US',\n placeholder: 'Enter City, State or Zip',\n source: 'Production US - English'\n },\n {\n value: 'ca',\n label: 'CA',\n default: 'true',\n placeholder: 'Enter City, Province or Postal Code',\n source: 'Production CA'\n }\n ],\n facet = {\n id: 'facet-id',\n title: 'Facet Title',\n isSingleSelect: false\n },\n type = 'with-checkbox-and-results',\n immediateAction = false,\n onFacetChange = null,\n values = [],\n onResetFacet,\n } = props;\n\n const [selectedValues, setSelectedValues] = useState(values);\n const [expanded, setExpanded] = useState(false);\n\n useEffect(() => {\n if (onFacetChange && expanded) {\n onFacetChange(facet, selectedValues, immediateAction);\n }\n }, [selectedValues]);\n\n useEffect(() => {\n if (onResetFacet) {\n setSelectedValues([]);\n }\n }, [onResetFacet]);\n\n const handleFacetClick = (value) => {\n if (facet.isSingleSelect) {\n if (selectedValues.includes(value)) {\n setSelectedValues([]);\n } else {\n setSelectedValues([value]);\n }\n } else {\n if (selectedValues.includes(value)) {\n setSelectedValues(selectedValues.filter(item => item !== value));\n } else {\n setSelectedValues([...selectedValues, value]);\n }\n }\n };\n\n const ref = useOutsideClick(() => {\n setExpanded(false);\n });\n\n const checkSelected = value => {\n return selectedValues.includes(value);\n };\n\n const renderFacet = value => {\n //type is one of\n //'with-checkbox-and-results'\n //'with-results'\n //'with-checkbox'\n //'with-underline-on-select'\n return (\n

handleFacetClick(value)}>\n \n \n \n
\n );\n };\n\n return (\n
\n
\n
\n
\n \n \n \n \n \n
\n
    \n {options.length > 0 &&\n options.map(value => (
  • {renderFacet(value)}
  • ))\n }\n
\n
\n
\n
\n
\n
\n );\n};\n\nexport default DropdownFacetWithCustomOptions;\n","import React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { buildEngine } from '../../engine/Engine';\nimport LocationSelector from '../LocationSelector';\nimport SearchContext from '../../state/context';\nimport GoogleMapResultsDisplay from '../GoogleMapResultsDisplay';\nimport ResultsColumn from './ResultsColumn';\nimport ShareModal from '../ShareModal';\nimport CompareBar from './CompareBar';\nimport useEventBus, { dispatch } from '../../../hooks/useEventBus';\nimport { bindUrlManager } from '../../urlManager';\nimport { getLocationCookie, setLocationCookie, getCoveoFindACommunityFieldsToInclude, sendCoveoGeolocationQuery, sendCoveoGeolocationInterfaceLoad, checkForHiddenQueryInHash } from '../../helpers';\nimport QuerySummary from './QuerySummary';\nimport { buildQuerySummary, buildPager, buildFacet, buildResultList, loadFacetSetActions, loadSearchActions, loadSearchAnalyticsActions } from '@coveo/headless';\nimport { Pager } from '../../components/Pager';\nimport DropdownFacet from '../../components/DropdownFacet';\nimport DropdownFacetWithCustomOptions from '../../components/DropdownFacetWithCustomOptions';\nimport Module from '../../../components/location-selector';\n\nconst FindACommunityMapViewRow = props => {\n const {\n shareResultsBtnLabel,\n shareModalCopy,\n shareModalTitle,\n compareBtnLabel,\n clearBtnLabel,\n shareBtnLabel,\n compareUrlPath,\n module,\n copyBtnLabel,\n mapApiKey,\n locationCookieName,\n coveoOrganizationId,\n coveoAccessToken,\n coveoSearchHub,\n coveoPipeline,\n coveoAutocompleteFields,\n coveoSearchRadiusInMiles = 50,\n coveoSource = 'Production US - English',\n coveoContextLanguage = 'en',\n coveoQuerySummaryShowingText = 'Showing',\n coveoQuerySummaryOfText = 'of',\n coveoQuerySummaryResultsText = 'results',\n clearFiltersLabel = 'Clear Filters',\n applyFiltersLabel = 'Apply Filters',\n noResultsMessage,\n locationSelectorOptions,\n searchButtonLabel,\n mastheadHeading = 'Find a Community',\n mastheadCopy = 'Find a community near you by entering your zip code or city and state below.',\n theme = 'dark',\n distanceOptions = [],\n careTypeField = '',\n stateToFilterBy = null,\n careTypeDropdownLabel = 'Levels of Care'\n } = props;\n\n \n useEffect(() => {\n const params = window.location.search.slice(1);\n const data = JSON.parse('{\"' + params.replace(/&/g, '\",\"').replace(/=/g,'\":\"') + '\"}', function(key, value) { return key===\"\"?value:decodeURIComponent(value) });\n \n setLocationCookie(data);\n \n setupPage();\n }, []);\n\n const querySummaryObject = useMemo(() => {\n return {\n querySummaryShowingText: coveoQuerySummaryShowingText,\n querySummaryOfText: coveoQuerySummaryOfText,\n querySummaryResultsText: coveoQuerySummaryResultsText\n };\n }, [ coveoQuerySummaryShowingText, coveoQuerySummaryOfText, coveoQuerySummaryResultsText ]);\n\n const [selectedFacetsPerField, setSelectedFacetsPerField] = useState({});\n const [expanded, setExpanded] = useState(false);\n const [isMapActive, setIsMapActive] = useState(false);\n const [comparedCommunities, setComparedCommunities] = useState([]);\n const [showShareModal, setShowShareModal] = useState(false);\n const [waitingForGeolocation, setWaitingForGeolocation] = useState(true);\n const [geolocationData, setGeolocationData] = useState(null);\n const [filtersApplied, setFiltersApplied] = useState([]);\n const [facetReset, setFacetReset] = useState(false);\n const [isMobile, setIsMobile] = useState(window.innerWidth < 1024);\n const [shareUrl, setShareUrl] = useState('');\n const isSearching = useRef(false);\n const firstLoad = useRef(true);\n\n const searchSource = useRef(\n JSON.parse(locationSelectorOptions).find(option => option.defaultValue === 'true').source || coveoSource\n );\n\n const engine = useMemo(() => {\n return buildEngine({\n organizationId: coveoOrganizationId,\n accessToken: coveoAccessToken,\n searchHub: coveoSearchHub,\n pipeline: coveoPipeline\n });\n }, []);\n\n useEffect(() => {\n const handleResize = () => {\n setIsMobile(window.innerWidth < 1024);\n };\n\n window.addEventListener('resize', handleResize);\n\n // Call handler right away so state gets updated with initial window size\n handleResize();\n\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n const querySummaryController = useMemo(() => buildQuerySummary(engine), []);\n const advancedQuery = useRef(null);\n const resultsListController = useMemo(\n () =>\n buildResultList(engine, {\n options: {\n fieldsToInclude: getCoveoFindACommunityFieldsToInclude()\n }\n }),\n []\n );\n\n const levelsOfCareFacetController = useMemo(\n () =>\n buildFacet(engine, {\n options: {\n field: careTypeField,\n facetId: 'ssl_levelsofcare_01'\n }\n }),\n []\n );\n\n const pagerController = useMemo(() => buildPager(engine), []);\n\n const handleResize = () => {\n setIsMapActive(false);\n };\n\n const handleLocationSelectorSubmit = (searchInputValue, selectedCountry, selectedCareType, selectedDistance) => {\n isSearching.current = true;\n\n dispatch({\n type: 'get-zip-geolocation',\n payload: {\n value: searchInputValue,\n country: `${selectedCountry.value === 'us' ? 'USA' : 'CANADA'}`,\n moduleName: module\n }\n });\n setWaitingForGeolocation(true);\n };\n\n useEventBus(\n 'geolocation-received',\n ({ payload }) => {\n if (payload.Module === module) {\n sendQuery();\n } else {\n return;\n }\n },\n []\n );\n\n useEffect(() => {\n advancedQuery.current = checkForHiddenQueryInHash();\n if (stateToFilterBy !== null && stateToFilterBy !== '') {\n advancedQuery.current = advancedQuery.current ? `${advancedQuery.current} @ssl_state==\"${stateToFilterBy}\"` : `(@ssl_state==\"${stateToFilterBy}\")`;\n }\n\n const unsubscribeUrlManager = bindUrlManager(engine);\n \n levelsOfCareFacetController.subscribe(() => {\n const selecteedLevelFacets = levelsOfCareFacetController.state.values.filter(v => v.state === 'selected');\n if (selecteedLevelFacets.length > 0) {\n setFiltersApplied(selecteedLevelFacets);\n }\n });\n \n return () => unsubscribeUrlManager();\n }, []);\n\n useEffect(() => {\n window.addEventListener('resize', handleResize);\n \n handleResize();\n \n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n const setupPage = () => {\n let cookieData = getLocationCookie(locationCookieName);\n\n if (cookieData) {\n const state = !!cookieData.LastSearchValue && cookieData.LastSearchValue.length > 0 && !!cookieData.State ? cookieData.State : null;\n const radius = !!cookieData.LastSearchValue && cookieData.LastSearchValue.length > 0 && cookieData.State ? null : parseFloat(coveoSearchRadiusInMiles);\n\n setGeolocationData(cookieData);\n \n sendCoveoGeolocationInterfaceLoad({\n engine: engine,\n latitude: cookieData.Latitude,\n longitude: cookieData.Longitude,\n advancedUrlQuery: advancedQuery.current,\n source: cookieData.Source || coveoSource,\n state: state,\n radiusInMiles: radius,\n language: coveoContextLanguage,\n pipeline: coveoPipeline,\n previousLoad: !firstLoad.current\n });\n }\n\n firstLoad.current = false;\n setWaitingForGeolocation(false);\n };\n\n const sendQuery = () => {\n let cookieData = getLocationCookie(locationCookieName);\n \n if (cookieData) {\n setGeolocationData(cookieData);\n sendCoveoGeolocationQuery({\n engine: engine,\n latitude: cookieData.Latitude,\n longitude: cookieData.Longitude,\n source: cookieData.Source || coveoSource,\n radiusInMiles: parseFloat(coveoSearchRadiusInMiles),\n state: cookieData.State,\n language: coveoContextLanguage,\n pipeline: coveoPipeline\n });\n }\n \n requestAnimationFrame(() => {\n setWaitingForGeolocation(false);\n });\n };\n\n const handleCountryChange = selected => {\n searchSource.current = JSON.parse(locationSelectorOptions).find(option => option.value === selected.value).source;\n };\n\n const handleCustomFacetChange = (facet, selectedValues, immediateAction = true) => {\n if (facet.id === 'distance' && immediateAction) {\n sendCoveoGeolocationQuery({\n engine: engine,\n latitude: geolocationData.Latitude,\n longitude: geolocationData.Longitude,\n source: geolocationData.source || coveoSource,\n state: null,\n radiusInMiles: selectedValues[0]\n ? parseFloat(selectedValues[0].value)\n : parseFloat(coveoSearchRadiusInMiles),\n language: coveoContextLanguage,\n pipeline: coveoPipeline\n });\n } else {\n setSelectedFacetsPerField(prevSelectedFacetsPerField => {\n const newSelectedFacetsPerField = { ...prevSelectedFacetsPerField };\n newSelectedFacetsPerField[facet.id] = selectedValues;\n return newSelectedFacetsPerField;\n });\n }\n setFiltersApplied(selectedValues);\n };\n\n const handleCoveoFacetChange = (facet, selectedValues) => {\n if (facet) {\n const facetId = facet.id;\n const newSelectedFacetsPerField = { ...selectedFacetsPerField };\n newSelectedFacetsPerField[facetId] = selectedValues;\n setSelectedFacetsPerField(newSelectedFacetsPerField);\n }\n };\n\n const handleCloseCommunity = result => {\n if (result === 'all') {\n setComparedCommunities([]);\n return;\n }\n setComparedCommunities(prevCommunities => prevCommunities.filter(c => c.raw.ssl_communityid !== result.raw.ssl_communityid));\n };\n\n const handleApplyFilters = () => {\n const { logSearchboxSubmit } = loadSearchAnalyticsActions(engine);\n const { executeSearch } = loadSearchActions(engine);\n const { toggleSelectFacetValue, deselectAllFacetValues } = loadFacetSetActions(engine);\n\n engine.dispatch(deselectAllFacetValues('ssl_levelsofcare_01'));\n\n let cookieData = getLocationCookie(locationCookieName);\n\n sendCoveoGeolocationQuery({\n engine: engine,\n latitude: cookieData.Latitude,\n longitude: cookieData.Longitude,\n source: searchSource.current,\n radiusInMiles: typeof selectedFacetsPerField?.distance !== 'undefined' ? parseFloat(selectedFacetsPerField?.distance[0].value) : null,\n state: cookieData.State,\n language: coveoContextLanguage,\n pipeline: coveoPipeline\n });\n\n selectedFacetsPerField.ssl_levelsofcare_01.map(facet => {\n engine.dispatch(\n toggleSelectFacetValue({\n facetId: 'ssl_levelsofcare_01',\n selection: {\n value: facet.value,\n state: 'selected',\n numberOfResults: facet.numberOfResults\n }\n })\n );\n });\n\n engine.dispatch(executeSearch(logSearchboxSubmit()));\n };\n\n const handleCompareCommunity = result => {\n const index = comparedCommunities.findIndex(c => c.raw.ssl_communityid === result.raw.ssl_communityid);\n\n if (comparedCommunities.length <= 3 && index === -1) {\n if (index === -1) {\n setComparedCommunities(prevCommunities => [...prevCommunities, result]);\n } else {\n setComparedCommunities(prevCommunities =>\n prevCommunities.filter(\n c => c.raw.ssl_communityid !== result.raw.ssl_communityid\n )\n );\n }\n } else {\n return false;\n }\n };\n\n const handleClearFilters = () => {\n levelsOfCareFacetController.deselectAll();\n handleCustomFacetChange({ id: 'distance' }, 50);\n setFacetReset(true);\n setTimeout(() => {\n setFiltersApplied([]);\n }, 1000);\n };\n\n const handleMapSwitcherClick = mapActive => {\n setIsMapActive(mapActive);\n };\n\n return (\n {\n setShareUrl(url);\n setShowShareModal(!showShareModal);\n },\n isMapActive: isMapActive\n }}\n >\n {engine && (\n
\n
\n
\n

\n {mastheadHeading}\n

\n
\n {mastheadCopy}\n
\n
\n
\n
\n \n
\n
\n
\n
\n )}\n\n <>\n
\n
\n
\n
\n
\n \n
\n {\n handleClearFilters();\n }}\n >\n {clearFiltersLabel}\n \n
\n
\n
\n {filtersApplied.length > 0 && (\n \n {filtersApplied.length} applied\n \n )}\n
\n {\n handleClearFilters();\n }}\n >\n {clearFiltersLabel}\n \n
\n
\n
\n
\n {isMobile ? (\n <>\n \n\n {distanceOptions !== '' && (\n \n )}\n \n ) : (\n <>\n \n\n {distanceOptions !== '' && (\n \n )}\n \n )}\n
\n {\n setShareUrl(window.location.href);\n setShowShareModal(true);\n }}\n >\n \n \n \n {shareResultsBtnLabel}\n \n {showShareModal && (\n setShowShareModal(false)}\n copyBtnLabel={copyBtnLabel}\n urlToCopy={shareUrl}\n />\n )}\n
\n
\n \n {applyFiltersLabel}\n \n \n \n \n
\n
\n \n
\n
\n \n
\n
\n {geolocationData ? (\n
\n \n
\n ) : (\n
\n
\n
\n )}\n
\n
\n \n
\n
\n \n
\n \n \n \n );\n};\n\nexport default FindACommunityMapViewRow;\n","import React, { useEffect, useState, useContext, Fragment } from 'react';\nimport SearchContext from '../../state/context';\nimport {\n Circle,\n GoogleMap,\n useJsApiLoader,\n Marker,\n InfoWindow\n} from '@react-google-maps/api';\nimport {\n getGoogleMapsInfoWindowContentString,\n unitConversion,\n setCurrentCommunityCookie\n} from '../../helpers';\nimport { stylers } from '../../../constants';\n\nconst containerStyle = {\n width: '100%',\n height: '100%',\n minHeight: '600px'\n};\n\nconst GoogleMapResultsDisplay = ({\n linkToAnchor = null,\n center,\n radiusInMiles,\n zoomControl = false,\n zoomPosition,\n zoom,\n streetViewControl = false,\n mapTypeControl = false,\n scaleControl = false,\n fullscreenControl = false,\n disableDoubleClickZoom = false,\n draggable = true,\n circleDebug = false,\n apiKey,\n showInfoWindows = true,\n showMarkerLabel = false\n}) => {\n const [activeMarker, setActiveMarker] = useState(null);\n const [mapZoom, setMapZoom] = useState(zoom);\n const [circle, setCircle] = useState(null);\n const [map, setMap] = useState(null);\n const [iconCircle, setIconCircle] = useState(null);\n const [iconNormal, setIconNormal] = useState(null);\n const [iconHover, setIconHover] = useState(null);\n const [results, setResults] = useState([]);\n const [mapCenter, setMapCenter] = useState(center);\n\n const {\n resultsListController,\n waitingForGeolocation,\n hoveredResult = null,\n onMarkerClick = null\n } = useContext(SearchContext);\n\n const [state, setState] = useState(resultsListController.state);\n\n useEffect(() => {\n resultsListController.subscribe(() => {\n setState(resultsListController.state);\n });\n }, []);\n\n const { isLoaded } = useJsApiLoader({\n id: 'google-map-script',\n googleMapsApiKey: apiKey\n });\n\n const getBoundsFromMarkers = resultsArray => {\n if (map && resultsArray.length > 0) {\n const bounds = new window.google.maps.LatLngBounds();\n resultsArray.forEach(result => {\n if (result.raw.ssl_latitude_d && result.raw.ssl_longitude_d) {\n bounds.extend({\n lat: result.raw.ssl_latitude_d,\n lng: result.raw.ssl_longitude_d\n });\n }\n });\n if (resultsArray.length > 0) map.fitBounds(bounds);\n else setMapCenter(bounds.getCenter());\n }\n };\n\n const fitMapBounds = () => {\n if (circle && map) {\n if (radiusInMiles > 0)\n map.fitBounds(circle.getBounds(), {\n top: 0,\n right: 0,\n left: 0,\n bottom: 0\n });\n }\n };\n\n const handleActiveMarker = marker => {\n if (marker === activeMarker) {\n return;\n }\n setActiveMarker(marker);\n };\n\n useEffect(() => {\n const newResults = state.results.map(result => {\n result = { ...result };\n if (result.raw.distance)\n result = {\n ...result,\n raw: {\n ...result.raw,\n distance: (result.raw.distance / 1610).toFixed(2)\n }\n };\n if (result.raw.ssl_latitude_d && result.raw.ssl_longitude_d) {\n if (result.raw.distance_search || result.raw.distance) {\n const calcDistance = result.raw.distance_search\n ? result.raw.distance_search\n : result.raw.distance;\n const convertedDistance = unitConversion(calcDistance, 'mi');\n result = {\n ...result,\n raw: {\n ...result.raw,\n distance_search: convertedDistance\n }\n };\n }\n\n const infoWindowContentString = getGoogleMapsInfoWindowContentString({\n linkToAnchor,\n linkWholeCard: true,\n showDistance: false,\n underlineTitle: true,\n result: result\n });\n\n result = { ...result, infoWindowContentString };\n result = { ...result, icon: iconNormal };\n }\n return result;\n });\n setActiveMarker(null);\n setResults(newResults);\n if (state.results.length > 0 && radiusInMiles !== 0) {\n getBoundsFromMarkers(newResults);\n } else getBoundsFromMarkers(newResults);\n }, [state, iconNormal]);\n\n useEffect(() => {\n if (circle && map) {\n map.addListener('click', () => {\n setActiveMarker(null);\n //map.panTo(mapCenter);\n });\n }\n\n return () => {\n if (circle && map) {\n window.google.maps.event.clearInstanceListeners(map);\n }\n };\n }, [circle, map, mapCenter]);\n\n const onCircleLoad = React.useCallback(circle => {\n setCircle(circle);\n }, []);\n\n const onLoad = React.useCallback(map => {\n setIconCircle({\n path: window.google.maps.SymbolPath.CIRCLE,\n fillColor: 'white',\n fillOpacity: 1,\n strokeWeight: 0,\n scale: 10,\n anchor: new window.google.maps.Point(0, 3)\n });\n setIconNormal({\n path: 'M20 0A20.271 20.271 0 0 0 0 20.405c0 16.077 18.615 31.712 19.481 32.418A1.214 1.214 0 0 0 20 53a1.214 1.214 0 0 0 .519-.177C21.3 52.205 40 36.482 40 20.405A20.271 20.271 0 0 0 20 0Z',\n fillColor: '#037eab',\n strokeColor: 'white',\n fillOpacity: 1,\n scale: 1,\n anchor: new window.google.maps.Point(20, 53)\n });\n setIconHover({\n path: 'M20 0A20.271 20.271 0 0 0 0 20.405c0 16.077 18.615 31.712 19.481 32.418A1.214 1.214 0 0 0 20 53a1.214 1.214 0 0 0 .519-.177C21.3 52.205 40 36.482 40 20.405A20.271 20.271 0 0 0 20 0Z',\n fillColor: '#f46b16',\n strokeColor: 'white',\n fillOpacity: 1,\n scale: 1,\n anchor: new window.google.maps.Point(20, 53)\n });\n setMap(map);\n }, []);\n\n const onUnmount = React.useCallback(_map => {\n setMap(null);\n }, []);\n\n useEffect(() => {\n const newResults = [];\n results.map(result => {\n if (result.raw.ssl_communityid === hoveredResult?.raw.ssl_communityid) {\n result.icon = iconHover;\n } else {\n result.icon = iconNormal;\n }\n newResults.push(result);\n });\n setResults(newResults);\n }, [hoveredResult]);\n\n useEffect(() => {\n const handleResize = () => {\n fitMapBounds();\n getBoundsFromMarkers(results);\n };\n\n window.addEventListener('resize', handleResize);\n return () => {\n window.removeEventListener('resize', handleResize);\n };\n });\n\n if (waitingForGeolocation) {\n return (\n
\n
\n
\n );\n }\n\n return isLoaded ? (\n \n \n\n {map &&\n circle &&\n iconCircle &&\n iconNormal &&\n iconHover &&\n results.map((result, index) => (\n \n {result.raw.ssl_latitude_d && result.raw.ssl_longitude_d && (\n {\n if (onMarkerClick) return;\n setResults(\n results.map(r => {\n if (\n result.raw.ssl_communityid === r.raw.ssl_communityid\n ) {\n r.icon = iconHover;\n }\n return r;\n })\n );\n }}\n onMouseOut={() => {\n if (onMarkerClick) return;\n setResults(\n results.map(r => {\n if (\n result.raw.ssl_communityid === r.raw.ssl_communityid\n ) {\n r.icon = iconNormal;\n }\n return r;\n })\n );\n }}\n onClick={() => {\n if (onMarkerClick) onMarkerClick(result);\n if (showInfoWindows)\n handleActiveMarker(result.raw.ssl_communityid);\n }}\n >\n {activeMarker === result.raw.ssl_communityid ? (\n {\n setActiveMarker(null);\n }}\n >\n {\n setCurrentCommunityCookie(result);\n }}\n dangerouslySetInnerHTML={{\n __html: result.infoWindowContentString\n }}\n />\n \n ) : null}\n \n )}\n {result.raw.ssl_latitude_d && result.raw.ssl_longitude_d && (\n {\n if (onMarkerClick) onMarkerClick(result);\n if (showInfoWindows)\n handleActiveMarker(result.raw.ssl_communityid);\n }}\n onMouseOver={() => {\n if (onMarkerClick) return;\n setResults(\n results.map(r => {\n if (\n result.raw.ssl_communityid === r.raw.ssl_communityid\n ) {\n r.icon = iconHover;\n }\n return r;\n })\n );\n }}\n onMouseOut={() => {\n if (onMarkerClick) return;\n setResults(\n results.map(r => {\n if (\n result.raw.ssl_communityid === r.raw.ssl_communityid\n ) {\n r.icon = iconNormal;\n }\n return r;\n })\n );\n }}\n />\n )}\n \n ))}\n \n ) : (\n
\n
\n
\n );\n};\n\nexport default React.memo(GoogleMapResultsDisplay);\n","import React, { useState, useEffect, useRef, useMemo } from 'react';\nimport { isDevice } from '../../helpers';\nimport { v4 as uuidv4 } from 'uuid';\n\nconst Dropdown = ({\n label,\n placeholder = 'Dropdown',\n selectedOption = null,\n options = [\n {\n value: 'us',\n label: 'US',\n placeholder: 'Enter City, State or Zip',\n source: 'Production US - English'\n },\n {\n value: 'ca',\n label: 'CA',\n default: 'true',\n placeholder: 'Enter City, Province or Postal Code',\n source: 'Production CA'\n }\n ],\n onChange = () => {},\n disabled = false,\n compareAttr = 'value',\n innerLabel,\n addPlaceholderOption = false,\n style\n}) => {\n const [open, toggle] = useState(false);\n const [cursor, setCursor] = useState(null);\n const guid = useRef(uuidv4());\n const listboxGuid = useRef(uuidv4());\n const nativeEl = useRef(null);\n const dropdownEl = useRef(null);\n const triggerEl = useRef(null);\n const listingEl = useRef(null);\n\n useEffect(() => {\n const handleClickOutside = e => {\n const container = dropdownEl.current;\n\n if (container) {\n if (container !== e.target && !container.contains(e.target)) {\n toggle(false);\n }\n }\n };\n\n document.addEventListener('click', handleClickOutside);\n\n return () => {\n document.removeEventListener('click', handleClickOutside);\n };\n }, []);\n\n useEffect(() => {\n if (open) {\n listingEl.current.focus();\n }\n }, [open]);\n\n useEffect(() => {\n if (selectedOption) {\n const index = options.findIndex(\n option => option[compareAttr] === selectedOption[compareAttr]\n );\n setCursor(index);\n } else {\n setCursor(null);\n }\n }, [compareAttr, options, selectedOption]);\n\n const handleTriggerClick = e => {\n if (isDevice()) {\n return;\n }\n\n toggle(!open);\n };\n\n const handleOptionClick = option => {\n if (option === null) {\n setCursor(null);\n onChange(null);\n toggle(false);\n return;\n }\n onChange(option);\n toggle(false);\n };\n\n const handleOptionChange = e => {\n const option = options.find(option => option.value === e.target.value);\n onChange(option);\n toggle(false);\n };\n\n const handleKeyDown = e => {\n /* eslint-disable indent */\n switch (e.keyCode) {\n case 38: // up\n e.preventDefault();\n if (cursor) {\n setCursor(cursor - 1);\n } else {\n setCursor(options.length - 1);\n }\n break;\n case 40: // down\n e.preventDefault();\n if (cursor !== null && cursor < options.length - 1) {\n setCursor(cursor + 1);\n } else {\n setCursor(0);\n }\n break;\n case 27: // esc\n e.preventDefault();\n toggle(false);\n triggerEl.current.focus();\n break;\n case 13: // enter\n e.preventDefault();\n if (cursor !== null) {\n onChange(options[cursor]);\n }\n toggle(false);\n triggerEl.current.focus();\n break;\n case 9: // tab\n toggle(false);\n break;\n }\n /* eslint-enable indent */\n };\n\n const getDisplayLabel = () => {\n if (selectedOption) {\n if (innerLabel) {\n return `${\n selectedOption.image\n ? ``\n : ''\n }${innerLabel} ${selectedOption.label}`;\n }\n return `${\n selectedOption.image\n ? ``\n : ''\n }${selectedOption.label}`;\n }\n return placeholder || null;\n };\n\n return (\n
\n \n \n \n {cursor !== null && addPlaceholderOption && (\n \n )}\n {options.map((option, i) => {\n return (\n \n );\n })}\n \n \n
\n \n \n {cursor !== null && addPlaceholderOption && (\n handleOptionClick(null)}\n >\n {placeholder}\n \n )}\n {options.map((option, i) => (\n handleOptionClick(option)}\n className=\"dropdown__item field__select\"\n aria-selected={cursor === i}\n >\n {option.image && (\n \n )}\n {typeof option === 'object' ? option.label : option}\n \n ))}\n \n \n \n );\n};\n\nexport default Dropdown;\n","import React, { useState, useMemo, useEffect, useRef } from 'react';\nimport { buildEngine } from '../../engine/Engine';\nimport { buildFieldSuggestions } from '@coveo/headless';\nimport Dropdown from '../../../components/react/Dropdown';\nimport useEventBus, { dispatch } from '../../../hooks/useEventBus';\nimport { getLocationCookie, setLocationCookie } from '../../helpers';\nimport { APIProvider, ControlPosition, MapControl, Map, useMapsLibrary } from \"@vis.gl/react-google-maps\";\n\nconst API_KEY = 'AIzaSyBSYmfUjKpOk-N4c6V__k0tEs5yq5F42BU';\n\nconst LocationSelector = props => {\n const {\n locationCookieName,\n coveoOrganizationId,\n coveoAccessToken,\n coveoSearchHub,\n coveoPipeline,\n coveoAutocompleteFields,\n coveoEngine = null,\n countryOptions = [],\n careTypeOptions = [],\n distanceOptions = [],\n searchWithInfoRedirect,\n searchNoInfoRedirect,\n urlUsa = 'https://www.sunriseseniorliving.com',\n urlCanada = 'https://www.sunriseseniorliving.ca',\n careTypePlaceholder,\n distancePlaceholder,\n searchButtonLabel,\n searchBoxPlaceholder = 'Enter a zip code',\n externalSubmitHandler = null,\n onCountryChange = null,\n onCareTypeChange = null,\n onDistanceChange = null,\n allowEmptySearch = false,\n module\n } = props;\n\n const [, setGeolocationData] = useState(null);\n const [searchInputValue, setSearchInputValue] = useState('');\n const [, setSelectedPlace] = useState(null);\n const [selectedCountry, setSelectedCountry] = useState(countryOptions.length > 0 ? JSON.parse(countryOptions).find(x => x.defaultValue === 'true') : null);\n const [selectedCareType, setSelectedCareType] = useState(careTypeOptions.length > 0 ? JSON.parse(careTypeOptions).find(x => x.defaultValue === 'true') : null);\n const [selectedDistance, setSelectedDistance] = useState(distanceOptions.length > 0 ? JSON.parse(distanceOptions).find(x => x.defaultValue === 'true') : null);\n\n let engine;\n if (coveoEngine === null && coveoOrganizationId && coveoAccessToken) {\n engine = useMemo(() => {\n return buildEngine({\n organizationId: coveoOrganizationId,\n accessToken: coveoAccessToken,\n searchHub: coveoSearchHub,\n pipeline: coveoPipeline\n });\n }, []);\n } else if (coveoEngine !== null) {\n engine = useMemo(() => coveoEngine, [coveoEngine]);\n }\n\n const PlaceAutocomplete = ({ onPlaceSelect }) => {\n const [placeAutocomplete, setPlaceAutocomplete] = useState(null);\n const inputRef = useRef(null);\n const places = useMapsLibrary(\"places\");\n \n useEffect(() => {\n if (!places || !inputRef.current) {\n return;\n }\n\n const options = {\n fields: [\"geometry\", \"name\", \"formatted_address\"],\n types: ['(regions)'],\n componentRestrictions: {country: [selectedCountry.value]}\n };\n \n setPlaceAutocomplete(new places.Autocomplete(inputRef.current, options));\n }, [places]);\n\n useEffect(() => {\n if (!placeAutocomplete) {\n return;\n }\n \n placeAutocomplete.addListener(\"place_changed\", () => {\n onPlaceSelect(placeAutocomplete.getPlace()); \n setSearchInputValue(placeAutocomplete.getPlace().formatted_address);\n });\n }, [onPlaceSelect, placeAutocomplete]);\n\n const handleChange = (e) => {\n if (e) {\n setSearchInputValue('')\n }\n }\n\n const handleBlur = () => {\n inputRef.current.value = '';\n setSearchInputValue('');\n }\n\n return (\n
\n handleChange(e)}\n onBlur={e => handleBlur()}\n ref={inputRef} \n placeholder={selectedCountry?.placeholder || searchBoxPlaceholder}\n />\n
\n );\n };\n\n let suggestionsControllersArray = [];\n if (coveoAutocompleteFields) {\n const autocompleteFieldsArray = coveoAutocompleteFields.split('|');\n\n autocompleteFieldsArray.forEach(field => {\n const suggestionsController = buildFieldSuggestions(engine, {\n options: {\n facet: {\n field: field,\n facetId: `${field}-facet`,\n facetSearch: {\n numberOfValues: 1\n }\n }\n }\n });\n suggestionsControllersArray.push(suggestionsController);\n });\n }\n\n useEventBus(\n 'geolocation-received',\n ({ payload }) => {\n if (payload.Module != module) {\n return;\n }\n\n if (externalSubmitHandler !== null && searchWithInfoRedirect === null && searchNoInfoRedirect === null) {\n return;\n }\n\n let cookieData = getLocationCookie(locationCookieName);\n if (cookieData) {\n setGeolocationData(cookieData);\n }\n \n const countryRedirect = cookieData.Country === 'USA' ? urlUsa : urlCanada;\n const queryString = `?value=${cookieData.value}&country=${cookieData.country}&State=${cookieData.State}&LastSearchValue=${cookieData.LastSearchValue}&ssl_levelsofcare_01=${cookieData.ssl_levelsofcare_01}&Longitude=${cookieData.Longitude}&Latitude=${cookieData.Latitude}#f-ssl_levelsofcare_01=${cookieData.ssl_levelsofcare_01}`;\n\n let url = ''\n if (cookieData.State) {\n url = `${countryRedirect}${searchWithInfoRedirect}/${cookieData.State.toLowerCase()}${queryString}`;\n } else if (cookieData.Latitude && cookieData.Longitude && cookieData.LastSearchValue.length > 0) {\n url = `${countryRedirect}${searchWithInfoRedirect}${queryString}`;\n } else {\n url = `${countryRedirect}${searchNoInfoRedirect}`;\n }\n \n window.location.href = url;\n },\n []\n );\n\n const handleLocationQuery = (searchInputValue, selectedCountry, selectedCareType, selectedDistance) => {\n dispatch({\n type: 'get-zip-geolocation',\n payload: {\n value: searchInputValue,\n country: `${selectedCountry.value === 'us' ? 'USA' : 'CANADA'}`,\n moduleName: module\n }\n });\n\n const data = {\n value: searchInputValue,\n country: selectedCountry ? selectedCountry.value : null,\n ssl_levelsofcare_01: selectedCareType ? selectedCareType.value : null,\n distance: selectedDistance ? selectedDistance.value : null\n };\n\n setLocationCookie(data);\n\n return null;\n };\n\n const handleSubmit = () => {\n if (searchInputValue) {\n const selectedOption = selectedCareType ? selectedCareType.label : '';\n submitGoogleEvent(searchInputValue, selectedOption);\n\n if (externalSubmitHandler !== null) {\n externalSubmitHandler(searchInputValue, selectedCountry, selectedCareType, selectedDistance);\n } else {\n handleLocationQuery(searchInputValue, selectedCountry, selectedCareType, selectedDistance);\n }\n }\n };\n\n const handleCountryChange = (eventOption) => {\n let selectedOption;\n if (eventOption !== null) {\n selectedOption = JSON.parse(countryOptions).find(option => option.value === eventOption.value);\n }\n\n if (onCountryChange) {\n onCountryChange(selectedOption);\n }\n\n setSelectedCountry(selectedOption);\n setSearchInputValue('');\n };\n\n const handleCareTypeChange = (eventOption) => {\n let selectedOption = null;\n if (eventOption !== null) {\n selectedOption = JSON.parse(careTypeOptions).find(option => option.value === eventOption.value);\n }\n\n setSelectedCareType(selectedOption);\n setLocationCookie(JSON.parse('{\"ssl_levelsofcare_01\": \"' + selectedOption.value + '\"}'));\n \n if (onCareTypeChange) {\n onCareTypeChange(selectedOption);\n }\n };\n\n const handleDistanceChange = (eventOption) => {\n let selectedOption = null;\n if (eventOption !== null) {\n selectedOption = JSON.parse(distanceOptions).find( option => option.value === eventOption.value);\n }\n\n setSelectedDistance(selectedOption);\n\n if (onDistanceChange) onDistanceChange(selectedOption);\n };\n\n const submitGoogleEvent = (searchTerm, selectedOption) => {\n const eventData = {\n event: \"search\",\n detailed_event: \"Search\",\n event_data: {\n identifier: \"community_search\",\n name: \"community_search\",\n corrected_term: searchTerm,\n search_term: searchTerm,\n search_type: selectedOption\n }\n };\n\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({ event_data: null });\n window.dataLayer.push(eventData);\n };\n\n return (\n <>\n
0 && distanceOptions.length > 0 ? 'location-selector-headless__container--three-dropdowns' : 'location-selector-headless__container--two-dropdowns'}`}>\n
\n {countryOptions.length > 0 && (\n
\n
\n
\n \n \n \n \n
\n
\n
\n )}\n
\n \n \n \n
\n \n
\n
\n
\n
\n
\n {careTypeOptions.length > 0 && (\n
\n
\n
\n
\n \n \n \n \n
\n
\n
\n
\n )}\n {distanceOptions.length > 0 && (\n
\n
\n
\n
\n \n \n \n \n
\n
\n
\n
\n )}\n \n {searchButtonLabel}\n \n \n \n \n
\n \n );\n};\n\nexport default LocationSelector;\n","import { createContext } from 'react';\n\nconst SearchContext = createContext();\n\nexport default SearchContext;\n","import { buildUrlManager, buildSearchStatus } from '@coveo/headless';\n\nexport function bindUrlManager(engine) {\n const statusControllers = buildSearchStatus(engine);\n const fragment = () => window.location.hash.slice(1);\n const urlManager = buildUrlManager(engine, {\n initialState: { fragment: fragment() }\n });\n\n const onHashChange = () => {\n urlManager.synchronize(fragment());\n };\n\n window.addEventListener('hashchange', onHashChange);\n const unsubscribeManager = urlManager.subscribe(() => {\n const hash = `#${urlManager.state.fragment}`;\n\n if (!statusControllers.state.firstSearchExecuted) {\n history.replaceState(null, document.title, hash);\n return;\n }\n\n history.pushState(null, document.title, hash);\n });\n\n return () => {\n window.removeEventListener('hashchange', onHashChange);\n unsubscribeManager();\n };\n}\n","// /**\n// * Checks browser is running on a native mobile device\n// */\nexport const isDevice = () => {\n const userAgent = navigator.userAgent || navigator.vendor || window.opera;\n\n if (\n /windows phone/i.test(userAgent) ||\n /android/i.test(userAgent) ||\n (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream)\n ) {\n return true;\n }\n\n return false;\n};\n\nexport const isEmpty = element => {\n if (element.textContent.trim() === '') {\n return true;\n }\n};\n\nexport const isInViewport = element => {\n const rect = element.getBoundingClientRect();\n return (\n rect.top >= 0 &&\n rect.left >= 0 &&\n rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\n rect.right <= (window.innerWidth || document.documentElement.clientWidth)\n );\n};\n\nexport const checkTrustarc = (cookie, permit) => {\n if (cookie) {\n if (!(String(cookie)).includes(permit)) {\n return true;\n }\n\n return false;\n }\n};\n\n// for local development purposes\nexport const getFakeLocation = () => {\n if (window.location.hostname === 'localhost') {\n return {\n lat: 42.3612,\n lng: -71.0519,\n countryState: 'MA',\n zipCode: '02108'\n }\n }\n return {};\n};\n\nexport const getCurrentPathnameWithoutLanguage = () => {\n const pathname = window.location.pathname;\n const language = pathname.split('/')[1];\n\n if (language === 'en' || language === 'fr') {\n return pathname.replace(`/${language}`, '');\n }\n\n return pathname;\n}\n","import { useEffect, useRef } from 'react';\n\nconst useOutsideClick = callback => {\n const ref = useRef();\n\n useEffect(() => {\n const handleClick = event => {\n if (ref.current && !ref.current.contains(event.target)) {\n callback();\n }\n };\n\n document.addEventListener('click', handleClick);\n\n return () => {\n document.removeEventListener('click', handleClick);\n };\n }, [ref]);\n\n return ref;\n};\n\nexport default useOutsideClick;\n","import React, { useEffect } from 'react';\n\nlet subscribers = [];\n\nconst subscribe = (filter, callback) => {\n if (filter === undefined || filter === null) return undefined;\n if (callback === undefined || callback === null) return undefined;\n\n subscribers = [...subscribers, [filter, callback]];\n\n return () => {\n subscribers = subscribers.filter(subscriber => subscriber[1] !== callback);\n };\n};\n\nexport const dispatch = event => {\n let { type } = event;\n if (typeof event === 'string') type = event;\n\n const args = [];\n if (typeof event === 'string') args.push({ type });\n else args.push(event);\n\n subscribers.forEach(([filter, callback]) => {\n if (typeof filter === 'string' && filter !== type) return;\n if (Array.isArray(filter) && !filter.includes(type)) return;\n if (filter instanceof RegExp && !filter.test(type)) return;\n if (typeof filter === 'function' && !filter(...args)) return;\n\n callback(...args);\n });\n};\n\nconst useEventBus = (type, callback, deps = []) => {\n useEffect(() => subscribe(type, callback), deps);\n\n return dispatch;\n};\n\nexport default useEventBus;\n"],"sourceRoot":""}