{"version":3,"sources":["webpack://@verndale/toolkit/./src/js/coveo/components/ResultLink/index.jsx","webpack://@verndale/toolkit/./src/js/coveo/components/CommunitiesSlider/CommunitySliderCard.jsx","webpack://@verndale/toolkit/./src/js/coveo/components/CommunitiesSlider/FeaturedCommunitySliderCard.jsx","webpack://@verndale/toolkit/./src/js/coveo/components/CommunitiesSlider/index.jsx","webpack://@verndale/toolkit/./src/js/coveo/modules/NearbyCommunitiesRow/index.jsx"],"names":["ResultLink","props","engine","useContext","SearchContext","result","className","interactiveResult","buildInteractiveResult","useEffect","ctaClick","e","setCurrentCommunityCookie","Boxever","_boxever_settings","eventToSend","data","React","filterProtocol","distanceUnit","isNearby","level","index","unitConversion","item","withoutSwiper","featuredItemsCta","i","SwiperCore","Navigation","Pagination","EffectCoverflow","CommunitiesSlider","displayedResults","coveoUnit","showPagination","featuredItems","currentIndex","setCurrentIndex","useState","swiperInstance","setSwiperInstance","isMobile","setIsMobile","handleResize","getPrevButtonLabel","getNextButtonLabel","Swiper","swiper","SwiperSlide","CommunitySliderCard","FeaturedCommunitySliderCard","withLocationSelector","locationCookieName","coveoOrganizationId","coveoAccessToken","coveoSearchHub","urlUsa","urlCanada","ctaNearbyLink","ctaNearbyLinkLabel","headingSingular","headingPlural","coveoSearchRadiusInMiles","coveoContextLanguage","coveoSource","coveoPipeline","zipLink","searchWithInfoRedirect","searchNoInfoRedirect","countryOptions","careTypeOptions","distanceOptions","careTypePlaceholder","distancePlaceholder","searchButtonLabel","searchBoxPlaceholder","coveoAutocompleteFields","module","numberOfCommunities","setNumberOfCommunities","waitingForGeolocation","setWaitingForGeolocation","geolocationData","setGeolocationData","setDisplayedResults","isSearching","useRef","searchSource","option","searchDistance","searchCareType","firstLoad","featuredItemsResults","useMemo","buildEngine","resultsListController","buildResultList","getCoveoFindACommunityFieldsToInclude","originalResults","sortedResults","sortResultsByDistance","parentContainer","useEventBus","cookieData","getLocationCookie","loaded","sendCoveoGeolocationInterfaceLoad","getHeadingString","sendQuery","sendCoveoGeolocationQuery","payload","handleLocationSelectorSubmit","searchInputValue","selectedCountry","selectedCareType","selectedDistance","dispatch","resultsPerPageController","buildResultsPerPage","LocationSelector"],"mappings":"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","file":"Areas/SunriseSeniorLiving/Scripts/9811.53a255b87064cf47150e.bundle.js","sourcesContent":["import React, { useContext, useEffect } from 'react';\nimport { buildInteractiveResult } from '@coveo/headless';\nimport SearchContext from '../../state/context';\nimport { filterProtocol, setCurrentCommunityCookie } from '../../helpers';\n\nconst ResultLink = props => {\n  const { engine } = useContext(SearchContext);\n  const { result = {}, className = '' } = props;\n\n  const interactiveResult = buildInteractiveResult(engine, {\n    options: { result: result }\n  });\n\n  useEffect(() => () => interactiveResult.cancelPendingSelect(), []);\n\n  const ctaClick = (e) => {\n    e.preventDefault();\n\n    if (result.ssl_communityid) {\n      setCurrentCommunityCookie(result);\n    }\n\n    interactiveResult.select();\n\n    const { Boxever, _boxever_settings } = window;\n\n    const eventToSend = {\n      channel: 'WEB',\n      type: 'Community_Carousel_Click',\n      pos: window._boxever_settings.pointOfSale,\n      browser_id: Boxever.getID()\n    };\n\n    Boxever.eventCreate(\n      eventToSend,\n      data => {\n        window.location = result.clickUri;\n      },\n      'json'\n    );\n  }\n\n  return (\n    <a\n      className={className}\n      href={result.clickUri ? filterProtocol(result.clickUri) : '#'}\n      onClick={ctaClick}\n      onContextMenu={() => interactiveResult.select()}\n      onMouseDown={() => interactiveResult.select()}\n      onMouseUp={() => interactiveResult.select()}\n      onTouchStart={() => interactiveResult.beginDelayedSelect()}\n      onTouchEnd={() => interactiveResult.cancelPendingSelect()}\n    >\n      {props.children}\n    </a>\n  );\n};\n\nexport default ResultLink;\n","import React, { useEffect, useState } from 'react';\nimport ResultLink from '../ResultLink';\nimport { unitConversion } from '../../helpers';\n\nexport const CommunitySliderCard = props => {\n  const { result, distanceUnit, isNearby } = props;\n\n  return (\n    <>\n      {isNearby ? (\n        <ResultLink\n          result={result}\n          className=\"nearby-communities-row-headless__item\"\n        >\n          <div className=\"nearby-communities-row-headless__picture-wrapper\">\n            <div className=\"nearby-communities-row-headless__item-image\">\n              <img src={result.raw.ssl_mainimagedesktop} alt={result.title} />\n            </div>\n            <div className=\"nearby-communities-row-headless__item-image-active\">\n              <img\n                src={result.raw.ssl_mainimagedesktop_405x548}\n                alt={result.title}\n              ></img>\n            </div>\n          </div>\n          <div className=\"nearby-communities-row-headless__info\">\n            <div className=\"nearby-communities-row-headless__content\">\n              <h3 className=\"nearby-communities-row-headless__content-heading\">\n                <span>{result.raw.ssl_communityname}</span>\n              </h3>\n              {result.raw.ssl_levelsofcare &&\n                result.raw.ssl_levelsofcare.length > 0 && (\n                  <ul>\n                    {result.raw.ssl_levelsofcare.map((level, index) => (\n                      <li key={index}>{level}</li>\n                    ))}\n                    {result.raw.ssl_communityprice && result.raw.ssl_communityprice.length > 0 && (\n                      <li className=\"nearby-communities-row-headless__price\">Room rates start at {result.raw.ssl_communityprice} /month</li>\n                    )}\n                  </ul>\n                )}\n            </div>\n            <span className=\"nearby-communities-row-headless__link\">\n              <span className=\"link__label\">Learn More</span>\n              <svg\n                viewBox=\"0 0 11 18\"\n                width=\"7\"\n                height=\"17\"\n                role=\"presentation\"\n              >\n                <use xlinkHref=\"#arrow-right\"></use>\n              </svg>\n            </span>\n            <span className=\"nearby-communities-row-headless__distance\">\n              <span>\n                {unitConversion(result.raw.distance, distanceUnit)}{' '}\n                {distanceUnit.toUpperCase()}\n              </span>\n            </span>\n          </div>\n          <div className=\"nearby-communities-row-headless__slide-overlay\"></div>\n        </ResultLink>\n      ) : (\n        <ResultLink result={result} className=\"community-row__item\">\n          <div className=\"community-row__picture-wrapper\">\n            <div className=\"community-row__item-image\">\n              <img src={result.raw.ssl_mainimagedesktop} alt={result.title} />\n            </div>\n            <div className=\"community-row__item-image-active\">\n              <img\n                src={result.raw.ssl_mainimagedesktop_405x548}\n                alt={result.title}\n              ></img>\n            </div>\n          </div>\n          <div className=\"community-row__info\">\n            <div className=\"community-row__content\">\n              <h3 className=\"community-row__heading\">\n                <span>{result.raw.ssl_communityname}</span>\n              </h3>\n              {result.raw.ssl_levelsofcare &&\n                result.raw.ssl_levelsofcare.length > 0 && (\n                  <ul>\n                    {result.raw.ssl_levelsofcare.map((level, index) => (\n                      <li key={index}>{level}</li>\n                    ))}\n                    {result.raw.ssl_communityprice && result.raw.ssl_communityprice.length > 0 && (\n                      <li className=\"nearby-communities-row-headless__price\">Room rates start at {result.raw.ssl_communityprice} /month</li>\n                    )}\n                  </ul>\n                )}\n            </div>\n            <span className=\"community-row__link\">\n              <span className=\"link__label\">Learn More</span>\n              <svg\n                viewBox=\"0 0 11 18\"\n                width=\"7\"\n                height=\"17\"\n                role=\"presentation\"\n              >\n                <use xlinkHref=\"#arrow-right\"></use>\n              </svg>\n            </span>\n            <span className=\"community-row__distance\">\n              <span>\n                {unitConversion(result.raw.distance, distanceUnit)}{' '}\n                {distanceUnit.toUpperCase()}\n              </span>\n            </span>\n          </div>\n        </ResultLink>\n      )}\n    </>\n  );\n};\n\nexport default CommunitySliderCard;\n","import React, { useEffect, useState } from 'react';\nimport ResultLink from '../ResultLink';\nimport { unitConversion } from '../../helpers';\n\nexport const FeaturedCommunitySliderCard = props => {\n  const { item, distanceUnit, isNearby, withoutSwiper, featuredItemsCta } = props;\n\n  const ctaClick = (e) => {\n    e.preventDefault();\n\n    const { Boxever, _boxever_settings } = window;\n\n    if (!Boxever || !_boxever_settings) {\n      window.location = item.Link;\n      return;\n    }\n\n    const eventToSend = {\n      channel: 'WEB',\n      type: 'Community_Carousel_Click',\n      pos: window._boxever_settings.pointOfSale,\n      browser_id: Boxever.getID()\n    };\n\n    Boxever.eventCreate(\n      eventToSend,\n      data => {\n        window.location = item.Link;\n      },\n      'json'\n    );\n  }\n\n  return (\n    <>\n      {isNearby ? (\n        <a href={item.Link} onClick={ctaClick} className={`nearby-communities-row-headless__item ${withoutSwiper ? \"without-swiper\": \"\"}`}>\n          <div className=\"nearby-communities-row-headless__picture-wrapper\">\n            <div className=\"nearby-communities-row-headless__item-image\">\n              <img src={item.Image} alt={item.Heading} />\n            </div>\n            <div className=\"nearby-communities-row-headless__item-image-active\">\n              <img src={item.Image} alt={item.Heading} />\n            </div>\n          </div>\n          <div className=\"nearby-communities-row-headless__info\">\n            <div className=\"nearby-communities-row-headless__content\">\n              <h3 className=\"nearby-communities-row-headless__content-heading\">\n                <span>{item.Heading}</span>\n              </h3>\n              {item.LevelsOfCare && item.LevelsOfCare.length > 0 && (\n                <ul>\n                  {item.LevelsOfCare.map((level, i) => (\n                    <li key={i}>{level}</li>\n                  ))}\n                  {item.Price && item.Price.length > 0 && (\n                    <li className=\"nearby-communities-row-headless__price\">Room rates start at {item.Price} /month</li>\n                  )}\n                </ul>\n              )}\n            </div>\n            <span className=\"nearby-communities-row-headless__link\">\n              <span className=\"link__label\">{featuredItemsCta}</span>\n              <svg\n                viewBox=\"0 0 11 18\"\n                width=\"7\"\n                height=\"17\"\n                role=\"presentation\"\n              >\n                <use xlinkHref=\"#arrow-right\"></use>\n              </svg>\n            </span>\n          </div>\n          <div className=\"nearby-communities-row-headless__slide-overlay\"></div>\n        </a>\n      ) : (\n        <a href={item.Link} onClick={ctaClick} className=\"community-row__item\">\n          <div className=\"community-row__picture-wrapper\">\n            <div className=\"community-row__item-image\">\n              <img src={item.Image} alt={item.Heading} />\n            </div>\n            <div className=\"community-row__item-image-active\">\n              <img src={item.Image} alt={item.Heading} />\n            </div>\n          </div>\n          <div className=\"community-row__info\">\n            <div className=\"community-row__content\">\n              <h3 className=\"community-row__heading\">\n                <span>{item.Heading}</span>\n              </h3>\n              {item.LevelsOfCare && item.LevelsOfCare.length > 0 && (\n                <ul>\n                  {item.LevelsOfCare.map((level, index) => (\n                    <li key={index}>{level}</li>\n                  ))}\n                  {item.Price && item.Price.length > 0 && (\n                    <li className=\"nearby-communities-row-headless__price\">Room rates start at {item.Price} /month</li>\n                  )}\n                </ul>\n              )}\n            </div>\n            <span className=\"community-row__link\">\n              <span className=\"link__label\">{featuredItemsCta}</span>\n              <svg\n                viewBox=\"0 0 11 18\"\n                width=\"7\"\n                height=\"17\"\n                role=\"presentation\"\n              >\n                <use xlinkHref=\"#arrow-right\"></use>\n              </svg>\n            </span>\n          </div>\n        </a>\n      )}\n    </>\n  );\n};\n\nexport default FeaturedCommunitySliderCard;\n","import React, { useEffect, useState } from 'react';\nimport { Swiper, SwiperSlide, useSwiper } from 'swiper/react';\nimport SwiperCore, { Navigation, Pagination, EffectCoverflow } from 'swiper';\nimport CommunitySliderCard from './CommunitySliderCard';\nimport { unitConversion } from '../../helpers';\n\nimport 'swiper/css';\nimport 'swiper/css/effect-coverflow';\nimport 'swiper/css/pagination';\nimport 'swiper/css/navigation';\nimport FeaturedCommunitySliderCard from './FeaturedCommunitySliderCard';\nSwiperCore.use([Navigation, Pagination, EffectCoverflow]);\n\nexport const CommunitiesSlider = ({\n  displayedResults = [],\n  coveoUnit = 'mi',\n  showPagination = false,\n  featuredItems = null,\n  isNearby = false,\n  featuredItemsCta = 'Learn More'\n}) => {\n  const [currentIndex, setCurrentIndex] = useState(1);\n  const [swiperInstance, setSwiperInstance] = useState(null);\n  const [isMobile, setIsMobile] = useState(window.innerWidth < 768);\n\n  useEffect(() => {\n    swiperInstance && swiperInstance.update();\n    setCurrentIndex(1);\n  }, [displayedResults]);\n\n  useEffect(() => {\n    function handleResize() {\n      setIsMobile(window.innerWidth < 768);\n      swiperInstance && swiperInstance.update();\n    }\n\n    window.addEventListener('resize', handleResize);\n    return () => window.removeEventListener('resize', handleResize);\n  }, []);\n\n  const getPrevButtonLabel = () => {\n    if (displayedResults && displayedResults.length > 1) {\n      const index =\n        currentIndex - 2 < 0 ? displayedResults.length - 1 : currentIndex - 2;\n      return (\n        !isMobile && (\n          <div>\n            {' '}\n            <span className=\"communities-slider__arrow-label\">\n              {displayedResults[index].raw.ssl_communityname}\n            </span>\n            <div>\n              {unitConversion(displayedResults[index].raw.distance, coveoUnit)}\n              {coveoUnit.toUpperCase()}\n            </div>\n          </div>\n        )\n      );\n    } else if (featuredItems && featuredItems.length > 1) {\n      const index =\n        currentIndex - 2 < 0 ? featuredItems.length - 1 : currentIndex - 2;\n      return (\n        !isMobile && (\n          <div>\n            {' '}\n            <span className=\"communities-slider__arrow-label\">\n              {featuredItems[index].heading}\n            </span>\n          </div>\n        )\n      );\n    }\n    return <></>;\n  };\n\n  const getNextButtonLabel = () => {\n    if (displayedResults && displayedResults.length > 1) {\n      const index =\n        currentIndex > displayedResults.length - 1 ? 0 : currentIndex;\n      return (\n        !isMobile && (\n          <div>\n            <span className=\"communities-slider__arrow-label\">\n              {displayedResults[index].raw.ssl_communityname}\n            </span>\n            <div>\n              {unitConversion(displayedResults[index].raw.distance, coveoUnit)}\n              {coveoUnit.toUpperCase()}\n            </div>\n          </div>\n        )\n      );\n    } else if (featuredItems && featuredItems.length > 1) {\n      const index = currentIndex > featuredItems.length - 1 ? 0 : currentIndex;\n      return (\n        !isMobile && (\n          <div>\n            <span className=\"communities-slider__arrow-label\">\n              {featuredItems[index].heading}\n            </span>\n          </div>\n        )\n      );\n    }\n    return <></>;\n  };\n\n  return (\n    <>\n      <div className=\"communities-slider\">\n        {displayedResults && displayedResults.length ? (\n          <>\n            <Swiper\n              breakpoints={{\n                1024: {\n                  slidesPerView: 3,\n                  effect: 'coverflow',\n                  coverflowEffect: {\n                    rotate: 0,\n                    stretch: 0,\n                    scale: 1,\n                    depth: 200,\n                    modifier: 0.75,\n                    slideShadows: false\n                  },\n                  pagination: false\n                }\n              }}\n              pagination={{\n                el: '.communities-slider__bullet-pagination',\n                clickable: true\n              }}\n              grabCursor={true}\n              centeredSlides={displayedResults.length < 3 ? false : true}\n              loop={displayedResults.length < 3 ? false : true}\n              className={\n                displayedResults.length < 3 ? 'swiper-wrapper--no-swipe' : ''\n              }\n              slidesPerView={1}\n              onInit={swiper => {\n                swiper.slideToLoop(displayedResults.length, 0);\n              }}\n              onSlideChange={swiper => {\n                setCurrentIndex(swiper.realIndex + 1);\n              }}\n              onSwiper={setSwiperInstance}\n              slideToClickedSlide={true}\n              modules={[EffectCoverflow, Pagination, Navigation]}\n              navigation={{\n                nextEl: '.communities-slider__arrow--next',\n                prevEl: '.communities-slider__arrow--prev'\n              }}\n            >\n              {displayedResults.map((result, index) => (\n                <SwiperSlide\n                  className=\"coveo-list-layout\"\n                  key={index + result.raw.ssl_communityid}\n                >\n                  <CommunitySliderCard\n                    result={result}\n                    distanceUnit={coveoUnit}\n                    isNearby={isNearby}\n                  />\n                </SwiperSlide>\n              ))}\n            </Swiper>\n            {(displayedResults.length > 2 || featuredItems.length > 2) && (\n              <div className=\"communities-slider__navigation\">\n                <button\n                  aria-label=\"Previous\"\n                  className=\"communities-slider__navigation--prev\"\n                  onClick={() => swiperInstance.slidePrev()}\n                >\n                  <span className=\"communities-slider__arrow\">\n                    <svg\n                      viewBox=\"0 0 72 72\"\n                      width=\"40\"\n                      height=\"40\"\n                      role=\"presentation\"\n                    >\n                      <use xlinkHref=\"#arrow-left-circle\"></use>\n                    </svg>\n                    <svg\n                      viewBox=\"0 0 72 72\"\n                      className=\"slider-pagination-row-prev-hover\"\n                      width=\"40\"\n                      height=\"40\"\n                      role=\"presentation\"\n                    >\n                      <use xlinkHref=\"#arrow-left-no-circle\"></use>\n                    </svg>\n                  </span>\n                  <div className=\"communities-slider__navigation--label\">\n                    {getPrevButtonLabel()}\n                  </div>\n                </button>\n                <div className=\"communities-slider__bullet-pagination\"></div>\n                <button\n                  aria-label=\"Next\"\n                  className=\"communities-slider__navigation--next\"\n                  onClick={() => swiperInstance.slideNext()}\n                >\n                  <div className=\"communities-slider__navigation--label\">\n                    {getNextButtonLabel()}\n                  </div>\n                  <span className=\"communities-slider__arrow\">\n                    <svg\n                      viewBox=\"0 0 72 72\"\n                      width=\"40\"\n                      height=\"40\"\n                      role=\"presentation\"\n                    >\n                      <use xlinkHref=\"#arrow-right-circle\"></use>\n                    </svg>\n                    <svg\n                      viewBox=\"0 0 72 72\"\n                      className=\"slider-pagination-row-next-hover\"\n                      width=\"40\"\n                      height=\"40\"\n                      role=\"presentation\"\n                    >\n                      <use xlinkHref=\"#arrow-right-no-circle\"></use>\n                    </svg>\n                  </span>\n                </button>\n              </div>\n            )}\n            {showPagination && (\n              <div className=\"communities-slider__pagination\">\n                {currentIndex} of {displayedResults.length}\n              </div>\n            )}\n          </>\n        ) : (\n          <>\n            {featuredItems && featuredItems.length > 0 && (\n              <>\n                <Swiper\n                  breakpoints={{\n                    1024: {\n                      slidesPerView:\n                        featuredItems.length > 2 ? 3 : featuredItems.length,\n                      effect: 'coverflow',\n                      coverflowEffect: {\n                        rotate: 0,\n                        stretch: 0,\n                        scale: 1,\n                        depth: 200,\n                        modifier: 0.75,\n                        slideShadows: false\n                      },\n                      pagination: false\n                    }\n                  }}\n                  pagination={{\n                    el: '.communities-slider__bullet-pagination',\n                    clickable: true\n                  }}\n                  grabCursor={true}\n                  centeredSlides={featuredItems.length < 3 ? false : true}\n                  loop={featuredItems.length < 3 ? false : true}\n                  className={\n                    featuredItems.length < 3 ? 'swiper-wrapper--no-swipe' : ''\n                  }\n                  slidesPerView={1}\n                  onInit={swiper => {\n                    swiper.slideToLoop(featuredItems.length, 0);\n                  }}\n                  onSlideChange={swiper => {\n                    setCurrentIndex(swiper.realIndex + 1);\n                  }}\n                  onSwiper={setSwiperInstance}\n                  slideToClickedSlide={true}\n                  modules={[EffectCoverflow, Pagination, Navigation]}\n                  navigation={{\n                    nextEl: '.communities-slider__arrow--next',\n                    prevEl: '.communities-slider__arrow--prev'\n                  }}\n                >\n                  {featuredItems.map((item, index) => (\n                    <SwiperSlide\n                      className=\"coveo-list-layout\"\n                      key={index + item.Heading}\n                    >\n                      <FeaturedCommunitySliderCard\n                        item={item}\n                        distanceUnit={coveoUnit}\n                        isNearby={isNearby}\n                        featuredItemsCta={featuredItemsCta}\n                      />\n                    </SwiperSlide>\n                  ))}\n                </Swiper>\n                {featuredItems.length > 2 && (\n                  <div className=\"communities-slider__navigation\">\n                    <button\n                      aria-label=\"Previous\"\n                      className=\"communities-slider__navigation--prev\"\n                      onClick={() => swiperInstance.slidePrev()}\n                    >\n                      <span className=\"communities-slider__arrow\">\n                        <svg\n                          viewBox=\"0 0 72 72\"\n                          width=\"40\"\n                          height=\"40\"\n                          role=\"presentation\"\n                        >\n                          <use xlinkHref=\"#arrow-left-circle\"></use>\n                        </svg>\n                        <svg\n                          viewBox=\"0 0 72 72\"\n                          className=\"slider-pagination-row-prev-hover\"\n                          width=\"40\"\n                          height=\"40\"\n                          role=\"presentation\"\n                        >\n                          <use xlinkHref=\"#arrow-left-no-circle\"></use>\n                        </svg>\n                      </span>\n                      <div>{getPrevButtonLabel()}</div>\n                    </button>\n                    <button\n                      aria-label=\"Next\"\n                      className=\"communities-slider__navigation--next\"\n                      onClick={() => swiperInstance.slideNext()}\n                    >\n                      <div>{getNextButtonLabel()}</div>\n                      <span className=\"communities-slider__arrow\">\n                        <svg\n                          viewBox=\"0 0 72 72\"\n                          width=\"40\"\n                          height=\"40\"\n                          role=\"presentation\"\n                        >\n                          <use xlinkHref=\"#arrow-right-circle\"></use>\n                        </svg>\n                        <svg\n                          viewBox=\"0 0 72 72\"\n                          className=\"slider-pagination-row-next-hover\"\n                          width=\"40\"\n                          height=\"40\"\n                          role=\"presentation\"\n                        >\n                          <use xlinkHref=\"#arrow-right-no-circle\"></use>\n                        </svg>\n                      </span>\n                    </button>\n                  </div>\n                )}\n                {isMobile && (\n                  <div className=\"communities-slider__navigation\">\n                    <button\n                      aria-label=\"Previous\"\n                      className=\"communities-slider__navigation--prev\"\n                      onClick={() => swiperInstance.slidePrev()}\n                    >\n                      <span className=\"communities-slider__arrow\">\n                        <svg\n                          viewBox=\"0 0 72 72\"\n                          width=\"40\"\n                          height=\"40\"\n                          role=\"presentation\"\n                        >\n                          <use xlinkHref=\"#arrow-left-circle\"></use>\n                        </svg>\n                        <svg\n                          viewBox=\"0 0 72 72\"\n                          className=\"slider-pagination-row-prev-hover\"\n                          width=\"40\"\n                          height=\"40\"\n                          role=\"presentation\"\n                        >\n                          <use xlinkHref=\"#arrow-left-no-circle\"></use>\n                        </svg>\n                      </span>\n                      <div>{getPrevButtonLabel()}</div>\n                    </button>\n                    <button\n                      aria-label=\"Next\"\n                      className=\"communities-slider__navigation--next\"\n                      onClick={() => swiperInstance.slideNext()}\n                    >\n                      <div>{getNextButtonLabel()}</div>\n                      <span className=\"communities-slider__arrow\">\n                        <svg\n                          viewBox=\"0 0 72 72\"\n                          width=\"40\"\n                          height=\"40\"\n                          role=\"presentation\"\n                        >\n                          <use xlinkHref=\"#arrow-right-circle\"></use>\n                        </svg>\n                        <svg\n                          viewBox=\"0 0 72 72\"\n                          className=\"slider-pagination-row-next-hover\"\n                          width=\"40\"\n                          height=\"40\"\n                          role=\"presentation\"\n                        >\n                          <use xlinkHref=\"#arrow-right-no-circle\"></use>\n                        </svg>\n                      </span>\n                    </button>\n                  </div>\n                )}\n                {showPagination && (\n                  <div className=\"communities-slider__pagination\">\n                    {currentIndex} of {displayedResults.length}\n                  </div>\n                )}\n              </>\n            )}\n          </>\n        )}\n      </div>\n    </>\n  );\n};\n","import React, { useRef, useMemo, useState, useEffect } from 'react';\nimport { buildEngine } from '../../engine/Engine';\nimport { CommunitiesSlider } from '../../components/CommunitiesSlider';\nimport LocationSelector from '../LocationSelector';\nimport SearchContext from '../../state/context';\nimport { buildResultList, buildResultsPerPage } from '@coveo/headless';\nimport {\n  getLocationCookie,\n  sendCoveoGeolocationInterfaceLoad,\n  sendCoveoGeolocationQuery,\n  getCoveoFindACommunityFieldsToInclude,\n  sortResultsByDistance\n} from '../../helpers';\nimport useEventBus, { dispatch } from '../../../hooks/useEventBus';\n\nconst NearbyCommunitiesRow = ({\n  withLocationSelector,\n  showPagination = null,\n  locationCookieName,\n  coveoOrganizationId,\n  coveoAccessToken,\n  coveoSearchHub,\n  urlUsa = null,\n  urlCanada = null,\n  ctaNearbyLink = null,\n  ctaNearbyLinkLabel = null,\n  headingSingular,\n  headingPlural,\n  coveoSearchRadiusInMiles,\n  coveoContextLanguage,\n  coveoSource,\n  coveoPipeline,\n  featuredItems,\n  zipLink,\n  searchWithInfoRedirect = null,\n  searchNoInfoRedirect = null,\n  countryOptions = [],\n  careTypeOptions = [],\n  distanceOptions = [],\n  careTypePlaceholder,\n  distancePlaceholder,\n  searchButtonLabel,\n  searchBoxPlaceholder = 'Enter a zip code',\n  featuredItemsCta = 'Learn More',\n  coveoAutocompleteFields,\n  module\n}) => {\n  const [numberOfCommunities, setNumberOfCommunities] = useState(null);\n  const [waitingForGeolocation, setWaitingForGeolocation] = useState(true);\n  const [geolocationData, setGeolocationData] = useState(null);\n  const [displayedResults, setDisplayedResults] = useState([]);\n\n  const isSearching = useRef(false);\n  const searchSource = useRef(\n    countryOptions && countryOptions.length > 0\n      ? JSON.parse(countryOptions).find(\n          option => option.defaultValue === 'true'\n        ).source\n      : coveoSource\n  );\n  const searchDistance = useRef(null);\n  const searchCareType = useRef(null);\n  const firstLoad = useRef(true);\n\n  const featuredItemsResults = useMemo(\n    () => (featuredItems ? JSON.parse(featuredItems) : []),\n    []\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  const resultsListController = useMemo(\n    () =>\n      buildResultList(engine, {\n        options: {\n          fieldsToInclude: [\n            ...getCoveoFindACommunityFieldsToInclude(),\n            'ssl_mainimagedesktop_405x548'\n          ]\n        }\n      }),\n    []\n  );\n\n  useEffect(() => {\n    resultsListController.subscribe(() => {\n      const originalResults = [...resultsListController.state.results];\n      const sortedResults = sortResultsByDistance(originalResults);\n\n      setDisplayedResults(sortedResults);\n\n      if (resultsListController.state.results.length > 0) {\n        setNumberOfCommunities(resultsListController.state.results.length);\n      }\n\n      const parentContainer = document.querySelector(\n        '.nearby-communities-row-headless'\n      );\n      if (parentContainer) {\n        if (resultsListController.state.results.length === 0) {\n          parentContainer.classList.add(\n            'nearby-communities-row-headless--no-results'\n          );\n        } else {\n          parentContainer.classList.remove(\n            'nearby-communities-row-headless--no-results'\n          );\n        }\n      }\n    });\n  }, [geolocationData]);\n\n  useEventBus(\n    'geolocator-loaded',\n    () => {\n      let cookieData = getLocationCookie(locationCookieName);\n      if (cookieData) {\n        setGeolocationData(cookieData);\n\n        let loaded = !firstLoad.current;\n\n        sendCoveoGeolocationInterfaceLoad({\n          engine: engine,\n          latitude: cookieData.Latitude,\n          longitude: cookieData.Longitude,\n          source: searchSource.current,\n          radiusInMiles: parseFloat(coveoSearchRadiusInMiles),\n          language: coveoContextLanguage,\n          pipeline: coveoPipeline,\n          previousLoad: loaded\n        });\n        firstLoad.current = false;\n      }\n      setWaitingForGeolocation(false);\n    },\n    []\n  );\n\n  const getHeadingString = () => {\n    if (!headingSingular || !headingPlural) return null;\n    if (numberOfCommunities === 1)\n      return `${headingSingular.replace(\n        '{NumberOfCommunities}',\n        numberOfCommunities\n      )} `;\n    if (numberOfCommunities > 1)\n      return `${headingPlural.replace(\n        '{NumberOfCommunities}',\n        numberOfCommunities\n      )} `;\n    return '';\n  };\n\n  const sendQuery = () => {\n    let cookieData = getLocationCookie(locationCookieName);\n    if (cookieData) {\n      setGeolocationData(cookieData);\n      sendCoveoGeolocationQuery({\n        engine: engine,\n        latitude: cookieData.Latitude,\n        longitude: cookieData.Longitude,\n        source: searchSource.current,\n        radiusInMiles: searchDistance.current\n          ? searchDistance.current.value\n          : parseFloat(coveoSearchRadiusInMiles),\n        careType: searchCareType.current ? searchCareType.current.value : null,\n        state: cookieData.State,\n        language: coveoContextLanguage,\n        pipeline: coveoPipeline\n      });\n    }\n    setWaitingForGeolocation(false);\n  };\n\n  useEventBus(\n    'geolocation-received',\n    ({ payload }) => {\n      if (searchNoInfoRedirect !== null && searchWithInfoRedirect !== null)\n        return;\n      if (payload.Module === module) {\n        sendQuery();\n        setWaitingForGeolocation(false);\n      } else {\n        return;\n      }\n    },\n    []\n  );\n\n  const handleLocationSelectorSubmit = (\n    searchInputValue,\n    selectedCountry,\n    selectedCareType,\n    selectedDistance\n  ) => {\n    isSearching.current = true;\n    if (selectedCareType) searchCareType.current = selectedCareType;\n    if (selectedDistance) searchDistance.current = selectedDistance;\n    dispatch({\n      type: 'get-zip-geolocation',\n      payload: {\n        value: searchInputValue,\n        country: `${selectedCountry.value === 'us' ? 'USA' : 'CANADA'}`,\n        moduleName: module,\n        firstSearch: true\n      }\n    });\n    setWaitingForGeolocation(true);\n  };\n\n  const resultsPerPageController = useMemo(\n    () =>\n      buildResultsPerPage(engine, {\n        initialState: {\n          numberOfResults: withLocationSelector ? 100 : 10\n        }\n      }),\n    []\n  );\n\n  return (\n    <>\n      <SearchContext.Provider\n        value={{\n          engine: engine\n        }}\n      >\n        <div\n          className={`${\n            resultsListController.state.results.length > 0\n              ? 'nearby-communities-row-headless'\n              : ''\n          }`}\n        >\n          <div className=\"container\">\n            {!headingSingular || !headingPlural ? (\n              ''\n            ) : (\n              <div className=\"nearby-communities-row-headless__heading\">\n                <div className=\"rich-text-row rtf container\">\n                  {numberOfCommunities && (\n                    <h2>\n                      {getHeadingString()}\n                      {geolocationData && geolocationData.LastSearchValue && (\n                        <a href={zipLink}>{geolocationData.LastSearchValue}</a>\n                      )}\n                    </h2>\n                  )}\n                </div>\n              </div>\n            )}\n            {withLocationSelector && (\n              <div className=\"location-selector-headless location-selector-headless--no-padding\">\n                <LocationSelector\n                  module={module}\n                  urlUsa={urlUsa}\n                  urlCanada={urlCanada}\n                  isAutocomplete={true}\n                  removeLastSearchValue={false}\n                  locationCookieName={locationCookieName}\n                  coveoEngine={engine}\n                  countryOptions={countryOptions}\n                  coveoContextLanguage={coveoContextLanguage}\n                  careTypePlaceholder={careTypePlaceholder}\n                  careTypeOptions={careTypeOptions}\n                  distancePlaceholder={distancePlaceholder}\n                  distanceOptions={distanceOptions}\n                  searchButtonLabel={searchButtonLabel}\n                  searchBoxPlaceholder={searchBoxPlaceholder}\n                  searchWithInfoRedirect={searchWithInfoRedirect}\n                  searchNoInfoRedirect={searchNoInfoRedirect}\n                  allowEmptySearch={true}\n                  externalSubmitHandler={handleLocationSelectorSubmit}\n                  coveoAutocompleteFields={coveoAutocompleteFields}\n                />\n              </div>\n            )}\n            <div className=\"nearby-communities-row-headless__inner\">\n              <CommunitiesSlider\n                featuredItems={featuredItemsResults}\n                displayedResults={displayedResults}\n                isNearby={true}\n                showPagination={showPagination}\n                featuredItemsCta={featuredItemsCta}\n              />\n              {ctaNearbyLink && ctaNearbyLinkLabel && (\n                <div className=\"nearby-community-row-headless__cta\">\n                  <a\n                    href={ctaNearbyLink}\n                    className=\"link link--small\"\n                    target=\"\"\n                  >\n                    <span className=\"link__label\">{ctaNearbyLinkLabel}</span>\n                    <svg viewBox=\"0 0 18 18\" width=\"18\" role=\"presentation\">\n                      <use xlinkHref=\"#arrow-right\"></use>\n                    </svg>\n                  </a>\n                </div>\n              )}\n            </div>\n          </div>\n        </div>\n      </SearchContext.Provider>\n    </>\n  );\n};\n\nexport default NearbyCommunitiesRow;\n"],"sourceRoot":""}