{"version":3,"sources":["assets sync /^/.//.*$","assets/placeholder.png","assets/pano/Bourque_Arena_1078.jpg","assets/loader.gif","assets/pano/nextDestination.png","assets/pano/panoMarker.png","assets/Endicott.svg","assets/infoModalArrow.png","assets/View360.png","assets/google_jump.png","assets/wayfinding/map_pin_buildings.svg","assets/wayfinding/map_pin_waypoints.svg","assets/assets_bg.png","assets/buildings/bourque-arena/bourque_center_area_1.jpg","assets/buildings/bourque-arena/bourque_center_area_2.jpg","assets/buildings/bourque-arena/bourque_center_area_3.jpg","assets/buildings/callahan-center/callahan_center_area_1.jpg","assets/buildings/callahan-center/callahan_center_area_1_thumb.jpg","assets/buildings/callahan-center/callahan_center_area_2.jpg","assets/buildings/callahan-center/callahan_center_area_3.jpg","assets/buildings/callahan-center/callahan_center_area_4.jpg","assets/buildings/callahan-center/callahan_center_area_4_thumb.jpg","assets/buildings/callahan-center/callahan_center_area_5.jpg","assets/buildings/callahan-center/callahan_center_area_6.jpg","assets/buildings/callahan-center/callahan_center_area_6_thumb.jpg","assets/buildings/center-for-belonging/center_for_belonging_area_1.jpg","assets/buildings/center-for-belonging/center_for_belonging_area_1_thumb.jpg","assets/buildings/center-for-belonging/center_for_belonging_area_2.jpg","assets/buildings/center-for-belonging/center_for_belonging_area_2_thumb.jpg","assets/buildings/center-for-belonging/center_for_belonging_area_3.jpeg","assets/buildings/center-for-belonging/center_for_belonging_area_3_thumb.jpg","assets/buildings/frates-hall/frates_hall_area_1.jpg","assets/buildings/frates-hall/frates_hall_area_2.jpg","assets/buildings/frates-hall/frates_hall_area_3.jpg","assets/buildings/gerrish-school/gerrish_school_of_business_area_1.jpg","assets/buildings/gerrish-school/gerrish_school_of_business_area_1_thumb.jpg","assets/buildings/gerrish-school/gerrish_school_of_business_area_2.jpg","assets/buildings/gerrish-school/gerrish_school_of_business_area_3.jpg","assets/buildings/gerrish-school/gerrish_school_of_business_area_4.jpg","assets/buildings/gerrish-school/gerrish_school_of_business_area_5.jpg","assets/buildings/gerrish-school/gerrish_school_of_business_area_5_thumb.jpg","assets/buildings/gerrish-school/gerrish_school_of_business_area_6.jpg","assets/buildings/gerrish-school/gerrish_school_of_business_area_7.jpg","assets/buildings/gerrish-school/gerrish_school_of_business_area_7_thumb.jpg","assets/buildings/gerrish-school/gerrish_school_of_business_area_8.jpg","assets/buildings/gerrish-school/gerrish_school_of_business_area_8_thumb.jpg","assets/buildings/gullys/gullys_area_1.jpg","assets/buildings/gullys/gullys_area_1_thumb.jpg","assets/buildings/gullys/gullys_area_2.jpg","assets/buildings/gullys/gullys_area_3.jpg","assets/buildings/halle-library/halle_library_area_1.jpg","assets/buildings/halle-library/halle_library_area_1_thumb.jpg","assets/buildings/halle-library/halle_library_area_2.jpg","assets/buildings/halle-library/halle_library_area_3.jpg","assets/buildings/halle-library/halle_library_area_4.jpg","assets/buildings/halle-library/halle_library_area_5.jpg","assets/buildings/halle-library/halle_library_area_5_thumb.jpg","assets/buildings/halle-library/halle_library_area_6.jpg","assets/buildings/halle-library/halle_library_area_6_thumb.jpg","assets/buildings/hempstead-commons/hempstead-commons_area_1.jpg","assets/buildings/hempstead-commons/hempstead-commons_area_1_thumb.jpg","assets/buildings/hempstead-commons/hempstead-commons_area_2.jpg","assets/buildings/hempstead-commons/hempstead-commons_area_2_thumb.jpg","assets/buildings/hempstead-commons/hempstead-commons_area_3.jpg","assets/buildings/hempstead-commons/hempstead-commons_area_3_thumb.jpg","assets/buildings/hempstead-commons/hempstead-commons_area_4.jpg","assets/buildings/hempstead-commons/hempstead-commons_area_4_thumb.jpg","assets/buildings/judgeScienceCenter/gerrish_school_of_business_area_2.jpg","assets/buildings/judgeScienceCenter/judge_science_center_area_0.jpg","assets/buildings/judgeScienceCenter/judge_science_center_area_1.jpg","assets/buildings/judgeScienceCenter/judge_science_center_area_2.jpg","assets/buildings/judgeScienceCenter/judge_science_center_area_2_thumb.jpg","assets/buildings/manninen-center/manninen_center_area_1.jpg","assets/buildings/manninen-center/manninen_center_area_10.jpg","assets/buildings/manninen-center/manninen_center_area_11.jpg","assets/buildings/manninen-center/manninen_center_area_12.jpg","assets/buildings/manninen-center/manninen_center_area_12_thumb.jpg","assets/buildings/manninen-center/manninen_center_area_1_thumb.jpg","assets/buildings/manninen-center/manninen_center_area_2.jpg","assets/buildings/manninen-center/manninen_center_area_3.jpg","assets/buildings/manninen-center/manninen_center_area_3_thumb.jpg","assets/buildings/manninen-center/manninen_center_area_4.jpg","assets/buildings/manninen-center/manninen_center_area_5.jpg","assets/buildings/manninen-center/manninen_center_area_5_thumb.jpg","assets/buildings/manninen-center/manninen_center_area_8.jpg","assets/buildings/manninen-center/manninen_center_area_9.jpg","assets/buildings/manninen-center/wax_academic_center_area_3.jpg","assets/buildings/manninen-center/wax_academic_center_area_3_thumb.jpg","assets/buildings/nursing/nursing_area_1.jpg","assets/buildings/nursing/nursing_area_10.jpg","assets/buildings/nursing/nursing_area_10_thumb.jpg","assets/buildings/nursing/nursing_area_11.jpg","assets/buildings/nursing/nursing_area_11_thumb.jpg","assets/buildings/nursing/nursing_area_12.jpg","assets/buildings/nursing/nursing_area_1_thumb.jpg","assets/buildings/nursing/nursing_area_2.jpg","assets/buildings/nursing/nursing_area_3.jpg","assets/buildings/nursing/nursing_area_3_thumb.jpg","assets/buildings/nursing/nursing_area_4.jpg","assets/buildings/nursing/nursing_area_5.jpg","assets/buildings/nursing/nursing_area_6.jpg","assets/buildings/nursing/nursing_area_6_thumb.jpg","assets/buildings/nursing/nursing_area_7.jpg","assets/buildings/nursing/nursing_area_7_thumb.jpg","assets/buildings/nursing/nursing_area_8.jpg","assets/buildings/nursing/nursing_area_8_thumb.jpg","assets/buildings/nursing/nursing_area_9.jpg","assets/buildings/nursing/nursing_area_9_thumb.jpg","assets/buildings/nursing/sport_science_area_1.jpg","assets/buildings/nursing/sport_science_area_1_thumb.jpg","assets/buildings/nursing/sport_science_area_2.jpg","assets/buildings/nursing/sport_science_area_2_thumb.jpg","assets/buildings/nursing/sport_science_area_3.jpg","assets/buildings/nursing/sport_science_area_3_thumb.jpg","assets/buildings/post-center/post_center_area_1.jpg","assets/buildings/post-center/post_center_area_10.jpg","assets/buildings/post-center/post_center_area_11.jpg","assets/buildings/post-center/post_center_area_12.jpg","assets/buildings/post-center/post_center_area_12_thumb.jpg","assets/buildings/post-center/post_center_area_1_thumb.jpg","assets/buildings/post-center/post_center_area_2.jpg","assets/buildings/post-center/post_center_area_3.jpg","assets/buildings/post-center/post_center_area_3_thumb.jpg","assets/buildings/post-center/post_center_area_4.jpg","assets/buildings/post-center/post_center_area_4_thumb.jpg","assets/buildings/post-center/post_center_area_5.jpg","assets/buildings/post-center/post_center_area_5_thumb.jpg","assets/buildings/post-center/post_center_area_6.jpg","assets/buildings/post-center/post_center_area_6_thumb.jpg","assets/buildings/post-center/post_center_area_7.jpg","assets/buildings/post-center/post_center_area_8.jpg","assets/buildings/post-center/post_center_area_9.jpg","assets/buildings/reynolds-hall/reynolds_hall_area_1.jpg","assets/buildings/standish-hall/standish_hall_area_1.jpg","assets/buildings/standish-hall/standish_hall_area_2.jpg","assets/buildings/standish-hall/standish_hall_area_3.jpg","assets/buildings/standish-hall/standish_hall_area_3_thumb.jpg","assets/buildings/standish-hall/standish_hall_area_4.jpg","assets/buildings/standish-hall/standish_hall_area_5.jpg","assets/buildings/wax-center/wax_academic_center_area_1.jpg","assets/buildings/wax-center/wax_academic_center_area_2.jpg","assets/buildings/wax-center/wax_academic_center_area_2_thumb.jpg","assets/buildings/wax-center/wax_academic_center_area_3.jpg","assets/buildings/wax-center/wax_academic_center_area_3_thumb.jpg","assets/buildings/wax-center/wax_academic_center_area_5.jpg","assets/buildings/wax-center/wax_academic_center_area_6.jpg","assets/buildings/wax-center/wax_academic_center_area_7.jpg","assets/buildings/wax-center/wax_academic_center_area_7_thumb.jpg","assets/buildings/wax-center/wax_academic_center_area_8.jpg","assets/buildings/wax-center/wax_academic_center_area_8_thumb.jpg","assets/buildings/wax-center/wax_academic_center_area_9.jpg","assets/buildings/wax-center/wax_academic_center_area_9_thumb.jpg","assets/buildings/wax-center/wax_academic_center_new_building_int.jpg","assets/fonts/utopiastd-bold.otf","assets/home-bg.png","assets/minus.svg","assets/pano/CallahanCenter.png","assets/pano/college_hall_1.jpg","assets/pano/mingo_beach_1.jpg","assets/pano/softball_complex_1.jpg","assets/pano/the_lodge_1.jpg","assets/plus.svg","assets/points-1.png","assets/wayfinding/pegman.png","assets/waypoints/bayview/bayview_hotspot_1.jpg","assets/waypoints/callahan-center/callahan-center_pano.jpg","assets/waypoints/chapel/Chapel_1126.jpg","assets/waypoints/chapel/chapel_area_1.jpg","assets/waypoints/chapel/chapel_area_1_thumb.jpg","assets/waypoints/chapel/chapel_area_2.jpg","assets/waypoints/chapel/chapel_area_2_thumb.jpg","assets/waypoints/chapel/chapel_hotspot_1.jpg","assets/waypoints/chapel/chapel_hotspot_2.jpg","assets/waypoints/college-hall/college_hall_hotspot_1.jpg","assets/waypoints/college-hall/college_hall_hotspot_2.jpg","assets/waypoints/college-hall/college_hall_hotspot_3.jpg","assets/waypoints/college-hall/college_hall_hotspot_3_thumb.jpg","assets/waypoints/college-hall/college_hall_pano.jpg","assets/waypoints/college-hall/college_hall_pano_thumb.jpg","assets/waypoints/first-year/first_year_quad.jpg","assets/waypoints/first-year/first_year_quad_thumb.jpg","assets/waypoints/frontGate/Front_Gate167.jpg","assets/waypoints/frontGate/front-gate_pano.jpg","assets/waypoints/gerrish-school-of-business/gerrish-school_pano.jpg","assets/waypoints/gerrish-school-of-business/gerrish-school_thumb.jpg","assets/waypoints/ginger-judge/ginger-judge_thumb.jpg","assets/waypoints/ginger-judge/ginger-jusge_pano.jpg","assets/waypoints/halle-library/halle-library_pano.jpg","assets/waypoints/hamilton/hamilton_wenham_hotspot_1.jpg","assets/waypoints/hamilton/hamilton_wenham_hotspot_2.jpg","assets/waypoints/hempstead-stadium/hempstead_stadium_hotspot_1.jpg","assets/waypoints/hempstead-stadium/hempstead_stadium_hotspot_2.jpg","assets/waypoints/lakes/lakes_amphitheater_hotspot_1.jpg","assets/waypoints/lakes/lakes_amphitheater_hotspot_2.jpg","assets/waypoints/lodge/lodge_hotspot_1.jpg","assets/waypoints/lodge/lodge_hotspot_2.jpg","assets/waypoints/lodge/lodge_hotspot_3.jpg","assets/waypoints/lodge/the_lodge_pano.jpg","assets/waypoints/lodge/the_lodge_pano_thumb.jpg","assets/waypoints/manninen-center-of-arts/manninen-center_pano.jpg","assets/waypoints/marblehead/marblehead_hotspot_1.jpg","assets/waypoints/mingo-beach/mingo_beach_pano.jpg","assets/waypoints/mingo-beach/mingo_beach_pano_thumb.jpg","assets/waypoints/mingo-beach/mingobeach_hotspot_1.jpg","assets/waypoints/mingo-beach/mingobeach_hotspot_2.jpg","assets/waypoints/mingo-beach/mingobeach_hotspot_3.jpg","assets/waypoints/mingo-beach/mingobeach_hotspot_4.jpg","assets/waypoints/misselwood/misselwood_hotspot_1.jpg","assets/waypoints/misselwood/misselwood_hotspot_2.jpg","assets/waypoints/misselwood/misselwood_hotspot_3.jpg","assets/waypoints/misselwood/misselwood_related_1.jpg","assets/waypoints/misselwood/misselwood_related_2.jpg","assets/waypoints/north-field/northfield_basepoint.jpg","assets/waypoints/north-field/northfield_basepoint_thumb.jpg","assets/waypoints/north-field/northfield_hotspot_1.jpg","assets/waypoints/north-field/northfield_hotspot_2.jpg","assets/waypoints/nursing/nursing_pano.jpg","assets/waypoints/nursing/nursing_thumb.jpg","assets/waypoints/post-sport/post-sport_pano.jpg","assets/waypoints/public-safety/public_safety_hotspot_1.jpg","assets/waypoints/public-safety/public_safety_hotspot_2.jpg","assets/waypoints/softball/softball_basepoint.jpg","assets/waypoints/softball/softball_basepoint_thumb.jpg","assets/waypoints/softball/softball_complex_hotspot_1.jpg","assets/waypoints/stone-ridge/stoneridge_hotspot_1.jpg","assets/waypoints/tupper/Tupper_Lawn157.jpg","assets/waypoints/tupper/Tupper_Lawn158.jpg","assets/waypoints/tupper/Tupper_Lawn159.jpg","assets/waypoints/tupper/Tupper_Lawn160.jpg","assets/waypoints/tupper/tupperlawn_hotspot_1.jpg","assets/waypoints/wax-acacemic-center/wax-acacemic-center_pano.jpg","assets/waypoints/wax-acacemic-center/wax-acacemic-center_thumb.jpg","common/models/WayPoints.tsx","content/svgIcons.tsx","context/menu-context.ts","components/common/sidebar/sidebar.tsx","common/utils/LoadingService.tsx","common/models/Menu.tsx","common/base-classes/BaseComponent.tsx","components/fly-menu/fly-menu-external-links.tsx","components/fly-menu/fly-menu-items.tsx","components/fly-menu/fly-menu.tsx","common/models/Category.tsx","content/menuData.tsx","common/models/Media.ts","components/common/layout/layout.tsx","components/loader/loader.tsx","components/action-btns/action-btns.tsx","content/buildingsData.ts","content/waypointsData-newTours.tsx","content/waypointsData.tsx","content/wayfindingMarkers.ts","common/utils/StoreLastDestination.ts","pages/Wayfinding.tsx","common/utils/ToggleModalClasses.ts","components/gallery/pano-details-helper.tsx","components/webgl-panorama/webgl-controls.tsx","context/webgl-context.ts","context/hotspots-context.ts","components/webgl-panorama/webgl-panorama.tsx","components/gallery/details-item.tsx","components/modals/building-details-modal.tsx","pages/NoMatch.tsx","components/gallery/gallery-item-subtle.tsx","components/gallery/gallery-item.tsx","common/services/data-service.ts","common/services/thumbnails-service.ts","common/utils/QueryParams.ts","pages/Gallery.tsx","components/modals/marker-modal.tsx","components/street-view/destination-controls.tsx","components/street-view/street-view.tsx","components/related-points/related-points-settings.ts","components/related-points/related-points-slide.tsx","components/related-points/related-points.tsx","pages/CampusTour.tsx","App.tsx","serviceWorker.ts","index.tsx"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","CampusTourKeys","Tour","width","height","className","fill","xmlns","viewBox","d","Wayfinding","YourPath","ArtsCenter","Athletics","StudentsCenter","Exit","NotFound","aria-hidden","focusable","data-prefix","data-icon","role","View360","Camera","Gallery","Stop","Play","BuildingTourKeys","campusTourPoints","slug","frontGate","policeBuilding","callahanCenter","centerForBelonging","gerrishSchool","gingerJudge","hempsteadStadium","postSportScience","nursing","waxAcacemic","dianeLibrary","centerForArts","theLodge","firstYearQuad","misselwood","collegeHall","mingoBeach","stoneridge","marblehead","bayview","northField","MenuContext","React","createContext","Sidebar","context","useContext","showMenu","closeMenu","handleMenuChanges","state","preventDefault","linkClassNames","style","maxHeight","forceVisible","to","onMouseOver","src","Logo","alt","activeClassName","onClick","isActive","match","location","url","artsCenter","athletics","some","i","pathname","includes","Date","getFullYear","LoadIndicatorService","observers","this","f","push","status","forEach","observer","instance","MenuTypes","BaseComponent","props","loadIndicator","LoadingService","getInstance","showLoading","show","notify","getInitialState","Component","FlyMenuExternalLinks","href","target","rel","FlyMenuItems","links","onClose","menuType","baseUrl","path","student","campus","link","showInFly","inlineItems","key","title","externalLink","item","exact","FlyMenu","isOpen","data","activeMenu","onMouseLeave","description","menuItems","contextType","Categories","MediaTypes","flyMenuData","categoryName","scienceAndtechnology","business","communications","education","sport","studentLife","visualAndArts","manninenCenterForArts","halleLibrarya","waxAcademicCenter","hempsteadCommons","businessSchool","judgeCenter","postCenter","bourqueArena","nursingBuilding","fratesHall","reynoldsHall","stadishHall","gullys","uncategorized","Layout","children","useState","isOpenFlyMenu","setFlyMenu","setMenuItems","setActiveMenu","Provider","value","TransitionGroup","length","Loader","LoaderIcon","ActionBtns","aria-label","assets","mediaType","webgl","imageName","thumbNail","subtitle","img","basePath","category","panoConfiguration","lat","lng","pov","zoom","heading","pitch","youtube","videoUrl","video","cameraConfig","startPoint","panoImage","require","markerScale","newToursData","scaleX","panoMarkers","ignoreBasePath","x","y","z","relatedPoints","ignoreOnGallery","wayPointKey","amphitheater","hotspotNum","panoImageThumb","pano","googlePanoImgLink","panoId","tupperLawn","softballComplex","hamilton","panoOptions","fullscreenControl","addressControl","motionTracking","visible","linksControl","enableCloseButton","standAlone","showRoadLabels","zoomControl","clickToGo","mapContainerStyle","buildingIcon","waypointIcon","markerType","getMarkerImg","assetIdx","type","h","current","buildingData","imagePath","waypointsData","process","buildingMarkers","image","iconPath","waypointMarkers","syncLastDest","keyName","localStorage","setItem","res","getItem","mergeMarkers","handleMarkerClick","history","handleMouseEvent","idx","setState","showInfoModal","infoModalIdx","showActiveInfoModal","setMapVisibilty","gsLoaded","activateMarker","markers","destSlug","setDefaultMarker","activeMarker","marker","find","infoModal","options","maxWidth","onCloseClick","animation","BtnArrow","markerOpts","position","icon","size","google","maps","Size","defaultCenter","Fragment","googleMapsApiKey","onLoad","center","styles","mapStyles","streetViewControl","zIndex","onMouseOut","Animation","DROP","toggleModalClasses","open","document","body","overflowY","classList","add","close","remove","PanoHelper","stopRotation","pausePano","View360Icon","extend","OrbitControls","WebglControls","useThree","camera","gl","ref","useRef","cameraIsSet","setCameraIsSet","useFrame","update","useEffect","canvas","querySelector","addEventListener","onWheel","set","updateProjectionMatrix","removeEventListener","event","stopPropagation","deltaY","THREE","args","domElement","WebGLContext","HotspotsContext","WebglDome","lazy","WebglPanorama","onLoaded","contextHotposts","panoIsRotating","handleModal","useMemo","enableZoom","enablePan","enableDamping","dampingFactor","autoRotate","autoRotateSpeed","rotateSpeed","fallback","handleMarker","_s","DetailsItem","asset","showPanoTooltip","isLoading","panoOpts","iframeRef","createRef","playPano","CSSTransition","in","timeout","classNames","parentClick","tagName","handleClick","placeholder","Placeholder","loading","vimeo","allowFullScreen","assetsMapper","LoadingIcon","BuildingDetailsModal","timer","interval","captionRef","getCaptionHeight","caption","setTimeout","captionHeight","clientHeight","slideControls","activeSlide","content","detailsIsLoading","activateRotation","setCurrentSlide","slideContent","showModal","detailsIsLoaded","clearTimeout","clearInterval","categories","data-dismiss","marginTop","cat","NoMatch","GalleryItemSubtle","iconType","GalleryItem","DataService","headers","method","fetch","response","ThumbnailsService","svc","handleType","queryParam","getQueryParams","URLSearchParams","search","get","thumbSvc","filterByCategory","pageTexts","showGallery","waypoints","JSON","parse","stringify","buildings","buildingsData","images","isBuildingPage","entries","undefined","notFound","console","log","updImgPath","waypoint","imgsWithPath","filter","isArtsCenter","isAthletics","setArtsAndAthleticItems","galleryItems","Array","from","slice","handleQueryParamas","hasMore","param","findIndex","clickedImgIndx","handleDetails","goBack","handleImagesLoaded","imagesLoaded","loadMore","showLoader","items","params","window","scroll","dataLength","next","loader","updateOnEachImageLoad","onImagesLoaded","initLayout","transitionDuration","ev","MarkerModal","nodeRef","imageVisibility","setVisibility","setModal","setPanoRotation","showPanoHelper","setShowPanoHelper","handleClose","useCallback","handleOutsideClick","handlePanoClick","renderMedia","DestinationControls","activeDest","shouldRender","setRender","onAnimationEnd","ControlsIcon","SreetViewPano","intervalId","panoRotation","rotate","activeIndx","setInterval","showOverlayItems","initStreetView","activeDestination","optionsObj","autoRotation","hotspots","hotspot","imgBasePath","modalData","handleClickControls","handleNextDest","handlePrevDest","panoLoaded","showNext","showPrev","PanoMarker","carouselSettings","slidesToShowInit","dots","arrows","infinite","slidesToShow","slidesToScroll","draggable","responsive","breakpoint","settings","centerMode","centerPadding","RelatedPointsSlide","relatedPoint","renderImagePath","RelatedPoints","slider","setRelatedPoints","point","num","panoMarker","join","showControls","showDetailsModal","Slider","slickPrev","Arrow","slickNext","c","withRouter","CampusTour","setActiveDestination","panoSlug","activeDestIndx","findDestIndx","dataIsReady","controlsState","handleIntro","pathName","Boolean","replace","showPrevControls","showNextControls","changeDest","updUrl","showCaption","JumpTo","App","subscribe","component","hostname","TagManager","initialize","gtmId","ReactDOM","render","getElementById","navigator","serviceWorker","ready","then","registration","unregister","catch","error","message"],"mappings":"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A3CD,EAAOC,QAAU,IAA0B,uC,gBCA3CD,EAAOC,QAAU,IAA0B,mD,gBCA3CD,EAAOC,QAAU,IAA0B,mD,gBCA3CD,EAAOC,QAAU,IAA0B,mD,gBCA3CD,EAAOC,QAAU,IAA0B,oD,gBCA3CD,EAAOC,QAAU,IAA0B,0D,gBCA3CD,EAAOC,QAAU,IAA0B,oD,gBCA3CD,EAAOC,QAAU,IAA0B,oD,gBCA3CD,EAAOC,QAAU,IAA0B,oD,gBCA3CD,EAAOC,QAAU,IAA0B,0D,gBCA3CD,EAAOC,QAAU,IAA0B,oD,gBCA3CD,EAAOC,QAAU,IAA0B,oD,gBCA3CD,EAAOC,QAAU,IAA0B,0D,gBCA3CD,EAAOC,QAAU,IAA0B,yD,gBCA3CD,EAAOC,QAAU,IAA0B,+D,gBCA3CD,EAAOC,QAAU,IAA0B,yD,gBCA3CD,EAAOC,QAAU,IAA0B,+D,gBCA3CD,EAAOC,QAAU,IAA0B,0D,gBCA3CD,EAAOC,QAAU,IAA0B,+D,gBCA3CD,EAAOC,QAAU,IAA0B,gD,gBCA3CD,EAAOC,QAAU,IAA0B,gD,gBCA3CD,EAAOC,QAAU,IAA0B,gD,gBCA3CD,EAAOC,QAAU,IAA0B,+D,gBCA3CD,EAAOC,QAAU,IAA0B,qE,gBCA3CD,EAAOC,QAAU,IAA0B,+D,gBCA3CD,EAAOC,QAAU,IAA0B,+D,gBCA3CD,EAAOC,QAAU,IAA0B,+D,gBCA3CD,EAAOC,QAAU,IAA0B,+D,gBCA3CD,EAAOC,QAAU,IAA0B,qE,gBCA3CD,EAAOC,QAAU,IAA0B,+D,gBCA3CD,EAAOC,QAAU,IAA0B,+D,gBCA3CD,EAAOC,QAAU,IAA0B,qE,gBCA3CD,EAAOC,QAAU,IAA0B,+D,gBCA3CD,EAAOC,QAAU,IAA0B,qE,gBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,iD,gBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,wD,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,wD,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,wD,gBCA3CD,EAAOC,QAAU,IAA0B,sD,gBCA3CD,EAAOC,QAAU,IAA0B,4D,gBCA3CD,EAAOC,QAAU,IAA0B,sD,gBCA3CD,EAAOC,QAAU,IAA0B,4D,gBCA3CD,EAAOC,QAAU,IAA0B,sD,gBCA3CD,EAAOC,QAAU,IAA0B,4D,gBCA3CD,EAAOC,QAAU,IAA0B,sD,gBCA3CD,EAAOC,QAAU,IAA0B,4D,gBCA3CD,EAAOC,QAAU,IAA0B,+D,gBCA3CD,EAAOC,QAAU,IAA0B,yD,gBCA3CD,EAAOC,QAAU,IAA0B,yD,gBCA3CD,EAAOC,QAAU,IAA0B,yD,gBCA3CD,EAAOC,QAAU,IAA0B,+D,gBCA3CD,EAAOC,QAAU,IAA0B,oD,gBCA3CD,EAAOC,QAAU,IAA0B,qD,gBCA3CD,EAAOC,QAAU,IAA0B,qD,gBCA3CD,EAAOC,QAAU,IAA0B,qD,gBCA3CD,EAAOC,QAAU,IAA0B,2D,gBCA3CD,EAAOC,QAAU,IAA0B,0D,gBCA3CD,EAAOC,QAAU,IAA0B,oD,gBCA3CD,EAAOC,QAAU,IAA0B,oD,gBCA3CD,EAAOC,QAAU,IAA0B,0D,gBCA3CD,EAAOC,QAAU,IAA0B,oD,gBCA3CD,EAAOC,QAAU,IAA0B,oD,gBCA3CD,EAAOC,QAAU,IAA0B,0D,gBCA3CD,EAAOC,QAAU,IAA0B,oD,gBCA3CD,EAAOC,QAAU,IAA0B,oD,gBCA3CD,EAAOC,QAAU,IAA0B,wD,gBCA3CD,EAAOC,QAAU,IAA0B,8D,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,mD,gBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,mD,gBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,wD,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,wD,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,wD,gBCA3CD,EAAOC,QAAU,IAA0B,gD,gBCA3CD,EAAOC,QAAU,IAA0B,iD,gBCA3CD,EAAOC,QAAU,IAA0B,iD,gBCA3CD,EAAOC,QAAU,IAA0B,iD,gBCA3CD,EAAOC,QAAU,IAA0B,uD,gBCA3CD,EAAOC,QAAU,IAA0B,sD,gBCA3CD,EAAOC,QAAU,IAA0B,gD,gBCA3CD,EAAOC,QAAU,IAA0B,gD,gBCA3CD,EAAOC,QAAU,IAA0B,sD,gBCA3CD,EAAOC,QAAU,IAA0B,gD,gBCA3CD,EAAOC,QAAU,IAA0B,sD,gBCA3CD,EAAOC,QAAU,IAA0B,gD,gBCA3CD,EAAOC,QAAU,IAA0B,sD,gBCA3CD,EAAOC,QAAU,IAA0B,gD,gBCA3CD,EAAOC,QAAU,IAA0B,sD,gBCA3CD,EAAOC,QAAU,IAA0B,gD,gBCA3CD,EAAOC,QAAU,IAA0B,gD,gBCA3CD,EAAOC,QAAU,IAA0B,gD,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,wD,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,wD,gBCA3CD,EAAOC,QAAU,IAA0B,wD,gBCA3CD,EAAOC,QAAU,IAA0B,8D,gBCA3CD,EAAOC,QAAU,IAA0B,wD,gBCA3CD,EAAOC,QAAU,IAA0B,8D,gBCA3CD,EAAOC,QAAU,IAA0B,wD,gBCA3CD,EAAOC,QAAU,IAA0B,wD,gBCA3CD,EAAOC,QAAU,IAA0B,wD,gBCA3CD,EAAOC,QAAU,IAA0B,8D,gBCA3CD,EAAOC,QAAU,IAA0B,wD,gBCA3CD,EAAOC,QAAU,IAA0B,8D,gBCA3CD,EAAOC,QAAU,IAA0B,wD,gBCA3CD,EAAOC,QAAU,IAA0B,8D,gBCA3CD,EAAOC,QAAU,IAA0B,kE,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,qC,gBCA3CD,EAAOC,QAAU,IAA0B,mC,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,gD,gBCA3CD,EAAOC,QAAU,IAA0B,yC,gBCA3CD,EAAOC,QAAU,IAA0B,kC,gBCA3CD,EAAOC,QAAU,IAA0B,sC,cCA3CD,EAAOC,QAAU,swI,gBCAjBD,EAAOC,QAAU,IAA0B,+C,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,yC,gBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,iD,gBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,iD,gBCA3CD,EAAOC,QAAU,IAA0B,8C,gBCA3CD,EAAOC,QAAU,IAA0B,8C,gBCA3CD,EAAOC,QAAU,IAA0B,oD,gBCA3CD,EAAOC,QAAU,IAA0B,oD,gBCA3CD,EAAOC,QAAU,IAA0B,oD,gBCA3CD,EAAOC,QAAU,IAA0B,0D,gBCA3CD,EAAOC,QAAU,IAA0B,+C,gBCA3CD,EAAOC,QAAU,IAA0B,qD,gBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,mD,gBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,iD,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,gD,gBCA3CD,EAAOC,QAAU,IAA0B,+C,gBCA3CD,EAAOC,QAAU,IAA0B,gD,gBCA3CD,EAAOC,QAAU,IAA0B,uD,gBCA3CD,EAAOC,QAAU,IAA0B,uD,gBCA3CD,EAAOC,QAAU,IAA0B,yD,gBCA3CD,EAAOC,QAAU,IAA0B,yD,gBCA3CD,EAAOC,QAAU,IAA0B,0D,gBCA3CD,EAAOC,QAAU,IAA0B,0D,gBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,8C,gBCA3CD,EAAOC,QAAU,IAA0B,oD,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,wD,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,0C,gBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,qD,gBCA3CD,EAAOC,QAAU,IAA0B,qD,gBCA3CD,EAAOC,QAAU,IAA0B,gD,gBCA3CD,EAAOC,QAAU,IAA0B,sD,gBCA3CD,EAAOC,QAAU,IAA0B,wD,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAA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","file":"static/js/main.f5edff4d.chunk.js","sourcesContent":["var map = {\n\t\"./Endicott.svg\": 112,\n\t\"./View360.png\": 114,\n\t\"./assets_bg.png\": 251,\n\t\"./buildings/bourque-arena/bourque_center_area_1.jpg\": 252,\n\t\"./buildings/bourque-arena/bourque_center_area_2.jpg\": 253,\n\t\"./buildings/bourque-arena/bourque_center_area_3.jpg\": 254,\n\t\"./buildings/callahan-center/callahan_center_area_1.jpg\": 255,\n\t\"./buildings/callahan-center/callahan_center_area_1_thumb.jpg\": 256,\n\t\"./buildings/callahan-center/callahan_center_area_2.jpg\": 257,\n\t\"./buildings/callahan-center/callahan_center_area_3.jpg\": 258,\n\t\"./buildings/callahan-center/callahan_center_area_4.jpg\": 259,\n\t\"./buildings/callahan-center/callahan_center_area_4_thumb.jpg\": 260,\n\t\"./buildings/callahan-center/callahan_center_area_5.jpg\": 261,\n\t\"./buildings/callahan-center/callahan_center_area_6.jpg\": 262,\n\t\"./buildings/callahan-center/callahan_center_area_6_thumb.jpg\": 263,\n\t\"./buildings/center-for-belonging/center_for_belonging_area_1.jpg\": 264,\n\t\"./buildings/center-for-belonging/center_for_belonging_area_1_thumb.jpg\": 265,\n\t\"./buildings/center-for-belonging/center_for_belonging_area_2.jpg\": 266,\n\t\"./buildings/center-for-belonging/center_for_belonging_area_2_thumb.jpg\": 267,\n\t\"./buildings/center-for-belonging/center_for_belonging_area_3.jpeg\": 268,\n\t\"./buildings/center-for-belonging/center_for_belonging_area_3_thumb.jpg\": 269,\n\t\"./buildings/frates-hall/frates_hall_area_1.jpg\": 270,\n\t\"./buildings/frates-hall/frates_hall_area_2.jpg\": 271,\n\t\"./buildings/frates-hall/frates_hall_area_3.jpg\": 272,\n\t\"./buildings/gerrish-school/gerrish_school_of_business_area_1.jpg\": 273,\n\t\"./buildings/gerrish-school/gerrish_school_of_business_area_1_thumb.jpg\": 274,\n\t\"./buildings/gerrish-school/gerrish_school_of_business_area_2.jpg\": 275,\n\t\"./buildings/gerrish-school/gerrish_school_of_business_area_3.jpg\": 276,\n\t\"./buildings/gerrish-school/gerrish_school_of_business_area_4.jpg\": 277,\n\t\"./buildings/gerrish-school/gerrish_school_of_business_area_5.jpg\": 278,\n\t\"./buildings/gerrish-school/gerrish_school_of_business_area_5_thumb.jpg\": 279,\n\t\"./buildings/gerrish-school/gerrish_school_of_business_area_6.jpg\": 280,\n\t\"./buildings/gerrish-school/gerrish_school_of_business_area_7.jpg\": 281,\n\t\"./buildings/gerrish-school/gerrish_school_of_business_area_7_thumb.jpg\": 282,\n\t\"./buildings/gerrish-school/gerrish_school_of_business_area_8.jpg\": 283,\n\t\"./buildings/gerrish-school/gerrish_school_of_business_area_8_thumb.jpg\": 284,\n\t\"./buildings/gullys/gullys_area_1.jpg\": 285,\n\t\"./buildings/gullys/gullys_area_1_thumb.jpg\": 286,\n\t\"./buildings/gullys/gullys_area_2.jpg\": 287,\n\t\"./buildings/gullys/gullys_area_3.jpg\": 288,\n\t\"./buildings/halle-library/halle_library_area_1.jpg\": 289,\n\t\"./buildings/halle-library/halle_library_area_1_thumb.jpg\": 290,\n\t\"./buildings/halle-library/halle_library_area_2.jpg\": 291,\n\t\"./buildings/halle-library/halle_library_area_3.jpg\": 292,\n\t\"./buildings/halle-library/halle_library_area_4.jpg\": 293,\n\t\"./buildings/halle-library/halle_library_area_5.jpg\": 294,\n\t\"./buildings/halle-library/halle_library_area_5_thumb.jpg\": 295,\n\t\"./buildings/halle-library/halle_library_area_6.jpg\": 296,\n\t\"./buildings/halle-library/halle_library_area_6_thumb.jpg\": 297,\n\t\"./buildings/hempstead-commons/hempstead-commons_area_1.jpg\": 298,\n\t\"./buildings/hempstead-commons/hempstead-commons_area_1_thumb.jpg\": 299,\n\t\"./buildings/hempstead-commons/hempstead-commons_area_2.jpg\": 300,\n\t\"./buildings/hempstead-commons/hempstead-commons_area_2_thumb.jpg\": 301,\n\t\"./buildings/hempstead-commons/hempstead-commons_area_3.jpg\": 302,\n\t\"./buildings/hempstead-commons/hempstead-commons_area_3_thumb.jpg\": 303,\n\t\"./buildings/hempstead-commons/hempstead-commons_area_4.jpg\": 304,\n\t\"./buildings/hempstead-commons/hempstead-commons_area_4_thumb.jpg\": 305,\n\t\"./buildings/judgeScienceCenter/gerrish_school_of_business_area_2.jpg\": 306,\n\t\"./buildings/judgeScienceCenter/judge_science_center_area_0.jpg\": 307,\n\t\"./buildings/judgeScienceCenter/judge_science_center_area_1.jpg\": 308,\n\t\"./buildings/judgeScienceCenter/judge_science_center_area_2.jpg\": 309,\n\t\"./buildings/judgeScienceCenter/judge_science_center_area_2_thumb.jpg\": 310,\n\t\"./buildings/manninen-center/manninen_center_area_1.jpg\": 311,\n\t\"./buildings/manninen-center/manninen_center_area_10.jpg\": 312,\n\t\"./buildings/manninen-center/manninen_center_area_11.jpg\": 313,\n\t\"./buildings/manninen-center/manninen_center_area_12.jpg\": 314,\n\t\"./buildings/manninen-center/manninen_center_area_12_thumb.jpg\": 315,\n\t\"./buildings/manninen-center/manninen_center_area_1_thumb.jpg\": 316,\n\t\"./buildings/manninen-center/manninen_center_area_2.jpg\": 317,\n\t\"./buildings/manninen-center/manninen_center_area_3.jpg\": 318,\n\t\"./buildings/manninen-center/manninen_center_area_3_thumb.jpg\": 319,\n\t\"./buildings/manninen-center/manninen_center_area_4.jpg\": 320,\n\t\"./buildings/manninen-center/manninen_center_area_5.jpg\": 321,\n\t\"./buildings/manninen-center/manninen_center_area_5_thumb.jpg\": 322,\n\t\"./buildings/manninen-center/manninen_center_area_8.jpg\": 323,\n\t\"./buildings/manninen-center/manninen_center_area_9.jpg\": 324,\n\t\"./buildings/manninen-center/wax_academic_center_area_3.jpg\": 325,\n\t\"./buildings/manninen-center/wax_academic_center_area_3_thumb.jpg\": 326,\n\t\"./buildings/nursing/nursing_area_1.jpg\": 327,\n\t\"./buildings/nursing/nursing_area_10.jpg\": 328,\n\t\"./buildings/nursing/nursing_area_10_thumb.jpg\": 329,\n\t\"./buildings/nursing/nursing_area_11.jpg\": 330,\n\t\"./buildings/nursing/nursing_area_11_thumb.jpg\": 331,\n\t\"./buildings/nursing/nursing_area_12.jpg\": 332,\n\t\"./buildings/nursing/nursing_area_1_thumb.jpg\": 333,\n\t\"./buildings/nursing/nursing_area_2.jpg\": 334,\n\t\"./buildings/nursing/nursing_area_3.jpg\": 335,\n\t\"./buildings/nursing/nursing_area_3_thumb.jpg\": 336,\n\t\"./buildings/nursing/nursing_area_4.jpg\": 337,\n\t\"./buildings/nursing/nursing_area_5.jpg\": 338,\n\t\"./buildings/nursing/nursing_area_6.jpg\": 339,\n\t\"./buildings/nursing/nursing_area_6_thumb.jpg\": 340,\n\t\"./buildings/nursing/nursing_area_7.jpg\": 341,\n\t\"./buildings/nursing/nursing_area_7_thumb.jpg\": 342,\n\t\"./buildings/nursing/nursing_area_8.jpg\": 343,\n\t\"./buildings/nursing/nursing_area_8_thumb.jpg\": 344,\n\t\"./buildings/nursing/nursing_area_9.jpg\": 345,\n\t\"./buildings/nursing/nursing_area_9_thumb.jpg\": 346,\n\t\"./buildings/nursing/sport_science_area_1.jpg\": 347,\n\t\"./buildings/nursing/sport_science_area_1_thumb.jpg\": 348,\n\t\"./buildings/nursing/sport_science_area_2.jpg\": 349,\n\t\"./buildings/nursing/sport_science_area_2_thumb.jpg\": 350,\n\t\"./buildings/nursing/sport_science_area_3.jpg\": 351,\n\t\"./buildings/nursing/sport_science_area_3_thumb.jpg\": 352,\n\t\"./buildings/post-center/post_center_area_1.jpg\": 353,\n\t\"./buildings/post-center/post_center_area_10.jpg\": 354,\n\t\"./buildings/post-center/post_center_area_11.jpg\": 355,\n\t\"./buildings/post-center/post_center_area_12.jpg\": 356,\n\t\"./buildings/post-center/post_center_area_12_thumb.jpg\": 357,\n\t\"./buildings/post-center/post_center_area_1_thumb.jpg\": 358,\n\t\"./buildings/post-center/post_center_area_2.jpg\": 359,\n\t\"./buildings/post-center/post_center_area_3.jpg\": 360,\n\t\"./buildings/post-center/post_center_area_3_thumb.jpg\": 361,\n\t\"./buildings/post-center/post_center_area_4.jpg\": 362,\n\t\"./buildings/post-center/post_center_area_4_thumb.jpg\": 363,\n\t\"./buildings/post-center/post_center_area_5.jpg\": 364,\n\t\"./buildings/post-center/post_center_area_5_thumb.jpg\": 365,\n\t\"./buildings/post-center/post_center_area_6.jpg\": 366,\n\t\"./buildings/post-center/post_center_area_6_thumb.jpg\": 367,\n\t\"./buildings/post-center/post_center_area_7.jpg\": 368,\n\t\"./buildings/post-center/post_center_area_8.jpg\": 369,\n\t\"./buildings/post-center/post_center_area_9.jpg\": 370,\n\t\"./buildings/reynolds-hall/reynolds_hall_area_1.jpg\": 371,\n\t\"./buildings/standish-hall/standish_hall_area_1.jpg\": 372,\n\t\"./buildings/standish-hall/standish_hall_area_2.jpg\": 373,\n\t\"./buildings/standish-hall/standish_hall_area_3.jpg\": 374,\n\t\"./buildings/standish-hall/standish_hall_area_3_thumb.jpg\": 375,\n\t\"./buildings/standish-hall/standish_hall_area_4.jpg\": 376,\n\t\"./buildings/standish-hall/standish_hall_area_5.jpg\": 377,\n\t\"./buildings/wax-center/wax_academic_center_area_1.jpg\": 378,\n\t\"./buildings/wax-center/wax_academic_center_area_2.jpg\": 379,\n\t\"./buildings/wax-center/wax_academic_center_area_2_thumb.jpg\": 380,\n\t\"./buildings/wax-center/wax_academic_center_area_3.jpg\": 381,\n\t\"./buildings/wax-center/wax_academic_center_area_3_thumb.jpg\": 382,\n\t\"./buildings/wax-center/wax_academic_center_area_5.jpg\": 383,\n\t\"./buildings/wax-center/wax_academic_center_area_6.jpg\": 384,\n\t\"./buildings/wax-center/wax_academic_center_area_7.jpg\": 385,\n\t\"./buildings/wax-center/wax_academic_center_area_7_thumb.jpg\": 386,\n\t\"./buildings/wax-center/wax_academic_center_area_8.jpg\": 387,\n\t\"./buildings/wax-center/wax_academic_center_area_8_thumb.jpg\": 388,\n\t\"./buildings/wax-center/wax_academic_center_area_9.jpg\": 389,\n\t\"./buildings/wax-center/wax_academic_center_area_9_thumb.jpg\": 390,\n\t\"./buildings/wax-center/wax_academic_center_new_building_int.jpg\": 391,\n\t\"./fonts/utopiastd-bold.otf\": 392,\n\t\"./google_jump.png\": 115,\n\t\"./home-bg.png\": 393,\n\t\"./infoModalArrow.png\": 113,\n\t\"./loader.gif\": 42,\n\t\"./minus.svg\": 394,\n\t\"./pano/Bourque_Arena_1078.jpg\": 38,\n\t\"./pano/CallahanCenter.png\": 395,\n\t\"./pano/college_hall_1.jpg\": 396,\n\t\"./pano/mingo_beach_1.jpg\": 397,\n\t\"./pano/nextDestination.png\": 48,\n\t\"./pano/panoMarker.png\": 96,\n\t\"./pano/softball_complex_1.jpg\": 398,\n\t\"./pano/the_lodge_1.jpg\": 399,\n\t\"./placeholder.png\": 29,\n\t\"./plus.svg\": 400,\n\t\"./points-1.png\": 401,\n\t\"./wayfinding/map_pin_buildings.svg\": 157,\n\t\"./wayfinding/map_pin_waypoints.svg\": 158,\n\t\"./wayfinding/pegman.png\": 402,\n\t\"./waypoints/bayview/bayview_hotspot_1.jpg\": 403,\n\t\"./waypoints/callahan-center/callahan-center_pano.jpg\": 404,\n\t\"./waypoints/chapel/Chapel_1126.jpg\": 405,\n\t\"./waypoints/chapel/chapel_area_1.jpg\": 406,\n\t\"./waypoints/chapel/chapel_area_1_thumb.jpg\": 407,\n\t\"./waypoints/chapel/chapel_area_2.jpg\": 408,\n\t\"./waypoints/chapel/chapel_area_2_thumb.jpg\": 409,\n\t\"./waypoints/chapel/chapel_hotspot_1.jpg\": 410,\n\t\"./waypoints/chapel/chapel_hotspot_2.jpg\": 411,\n\t\"./waypoints/college-hall/college_hall_hotspot_1.jpg\": 412,\n\t\"./waypoints/college-hall/college_hall_hotspot_2.jpg\": 413,\n\t\"./waypoints/college-hall/college_hall_hotspot_3.jpg\": 414,\n\t\"./waypoints/college-hall/college_hall_hotspot_3_thumb.jpg\": 415,\n\t\"./waypoints/college-hall/college_hall_pano.jpg\": 416,\n\t\"./waypoints/college-hall/college_hall_pano_thumb.jpg\": 417,\n\t\"./waypoints/first-year/first_year_quad.jpg\": 418,\n\t\"./waypoints/first-year/first_year_quad_thumb.jpg\": 419,\n\t\"./waypoints/frontGate/Front_Gate167.jpg\": 420,\n\t\"./waypoints/frontGate/front-gate_pano.jpg\": 421,\n\t\"./waypoints/gerrish-school-of-business/gerrish-school_pano.jpg\": 422,\n\t\"./waypoints/gerrish-school-of-business/gerrish-school_thumb.jpg\": 423,\n\t\"./waypoints/ginger-judge/ginger-judge_thumb.jpg\": 424,\n\t\"./waypoints/ginger-judge/ginger-jusge_pano.jpg\": 425,\n\t\"./waypoints/halle-library/halle-library_pano.jpg\": 426,\n\t\"./waypoints/hamilton/hamilton_wenham_hotspot_1.jpg\": 427,\n\t\"./waypoints/hamilton/hamilton_wenham_hotspot_2.jpg\": 428,\n\t\"./waypoints/hempstead-stadium/hempstead_stadium_hotspot_1.jpg\": 429,\n\t\"./waypoints/hempstead-stadium/hempstead_stadium_hotspot_2.jpg\": 430,\n\t\"./waypoints/lakes/lakes_amphitheater_hotspot_1.jpg\": 431,\n\t\"./waypoints/lakes/lakes_amphitheater_hotspot_2.jpg\": 432,\n\t\"./waypoints/lodge/lodge_hotspot_1.jpg\": 433,\n\t\"./waypoints/lodge/lodge_hotspot_2.jpg\": 434,\n\t\"./waypoints/lodge/lodge_hotspot_3.jpg\": 435,\n\t\"./waypoints/lodge/the_lodge_pano.jpg\": 436,\n\t\"./waypoints/lodge/the_lodge_pano_thumb.jpg\": 437,\n\t\"./waypoints/manninen-center-of-arts/manninen-center_pano.jpg\": 438,\n\t\"./waypoints/marblehead/marblehead_hotspot_1.jpg\": 439,\n\t\"./waypoints/mingo-beach/mingo_beach_pano.jpg\": 440,\n\t\"./waypoints/mingo-beach/mingo_beach_pano_thumb.jpg\": 441,\n\t\"./waypoints/mingo-beach/mingobeach_hotspot_1.jpg\": 442,\n\t\"./waypoints/mingo-beach/mingobeach_hotspot_2.jpg\": 443,\n\t\"./waypoints/mingo-beach/mingobeach_hotspot_3.jpg\": 444,\n\t\"./waypoints/mingo-beach/mingobeach_hotspot_4.jpg\": 445,\n\t\"./waypoints/misselwood/misselwood_hotspot_1.jpg\": 446,\n\t\"./waypoints/misselwood/misselwood_hotspot_2.jpg\": 447,\n\t\"./waypoints/misselwood/misselwood_hotspot_3.jpg\": 448,\n\t\"./waypoints/misselwood/misselwood_related_1.jpg\": 449,\n\t\"./waypoints/misselwood/misselwood_related_2.jpg\": 450,\n\t\"./waypoints/north-field/northfield_basepoint.jpg\": 451,\n\t\"./waypoints/north-field/northfield_basepoint_thumb.jpg\": 452,\n\t\"./waypoints/north-field/northfield_hotspot_1.jpg\": 453,\n\t\"./waypoints/north-field/northfield_hotspot_2.jpg\": 454,\n\t\"./waypoints/nursing/nursing_pano.jpg\": 455,\n\t\"./waypoints/nursing/nursing_thumb.jpg\": 456,\n\t\"./waypoints/post-sport/post-sport_pano.jpg\": 457,\n\t\"./waypoints/public-safety/public_safety_hotspot_1.jpg\": 458,\n\t\"./waypoints/public-safety/public_safety_hotspot_2.jpg\": 459,\n\t\"./waypoints/softball/softball_basepoint.jpg\": 460,\n\t\"./waypoints/softball/softball_basepoint_thumb.jpg\": 461,\n\t\"./waypoints/softball/softball_complex_hotspot_1.jpg\": 462,\n\t\"./waypoints/stone-ridge/stoneridge_hotspot_1.jpg\": 463,\n\t\"./waypoints/tupper/Tupper_Lawn157.jpg\": 464,\n\t\"./waypoints/tupper/Tupper_Lawn158.jpg\": 465,\n\t\"./waypoints/tupper/Tupper_Lawn159.jpg\": 466,\n\t\"./waypoints/tupper/Tupper_Lawn160.jpg\": 467,\n\t\"./waypoints/tupper/tupperlawn_hotspot_1.jpg\": 468,\n\t\"./waypoints/wax-acacemic-center/wax-acacemic-center_pano.jpg\": 469,\n\t\"./waypoints/wax-acacemic-center/wax-acacemic-center_thumb.jpg\": 470\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 23;","module.exports = __webpack_public_path__ + \"static/media/placeholder.a05ac50f.png\";","module.exports = __webpack_public_path__ + \"static/media/Bourque_Arena_1078.a91198d2.jpg\";","module.exports = __webpack_public_path__ + \"static/media/loader.ef805c3a.gif\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAYAAAAe2bNZAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAQNSURBVHgBtVjdThpBFJ5dQQUsIlpLBC9IwTSNiaT1BeotfRh72/te14ept/oIpdE2NthwIbX+BPwBFkWBft+4Q1YKYWaLXzKZs7Bn5psz55w5s5YwxM3NTdayrBxastvtzqOfV//huYJWxW9l9IXp6emiwdDC0nkJA4dub283JiYm3kEOC02AFMkVg8HgF8jVke8LQxJXV1ei0WiIWq0m6vW6wP+992dmZgTeFXNzcyIajcpnhU6nsw1Lbfsig8nj9/f3H7gVikS5XJa9LkgmkUiIxcXFh8lgqUAg8HmYlawhRJIukTBXfnh4aESiH1NTU2J1dVX2QBPbRkLlkWS8RM7OzkSpVBLtdlv8L7h9y8vLYmlpaSghq48It+YjiRwdHQm2cYOE2FxCn7xbZntfVBY5Pj5+EiIEx6XFgZA7X+gfMsgfeTorfUSXCJwxHYvF1tmwwoTQBLee87jzbTwiw+2xbTtPeX9/X9tHsIBAJBJZZwuFQutCExy/WHzIh5h3Q1lHkrm7u3vPnubz5o1RgFP+Qs5xKM/OziaRS17o6l5fX6sIDSnrSDIwcZY9fcUE0Osg+X2XA9m2hbzyykRfuQOtI3ueNdw7x3EEmymgcwDLdimHw+EM5Iiurtc64JC1sbo1Pl1eXgo/QCJrQLfoykH4z2sTfR4tRKvVWrPBSAb9xcWF8Ats1Z6Scf6sYEzbQFf25EHLxPkA8wq/gEXOqwDlZwAcOaury8OWQDDEbVWP+PEXL2Dur0qGI6/o6qnopd9qm3MUEAg9p0MyjAkfGBuZhYWFt0qGlX8IH6ADVyi4x7sv4IwJIqyTlOF7nWaz+VNXVxVgrHVIRjoeBhN+MTk5+YZhTRkOWcRzXVeXpQWBI6JKB5ZpEOlc+AXKzJ7DIokdGKjKEpUgDxur+MYHJCvhB4iGl8gtUrlSqZyjRvljoo8TX/bkQcsU0RxahkW0KeLx+JqS4St7Jrr0F7oH/ZY8ZDRhv3bZuxWYNmCVKAZ8ThkR1MI4JRN9FusEibCXZOB8O36sw9SPE7eOjFvD+VRAftFO44xedWtAjpJXmF4NzEqPBRYzYqFQGEsRPgyMoFwuJwlhzm0sQpKxPUx3uHd8IZ1Oi6cE3YHzcD5F5BEZbFMTVtnidtF8pv5jQsS9rjicz/vfoHtTChl103tLGNe9iRZ3/cTBHFuIpOH3pkGE6EMs0k1q434wMDKZjDpyBhIZSoZASTgP5U1VYrBYPzk56dUfuiRSqVQvu9NHuDWI2Mqg90d+EsEq8gjdvHomGdaurAy5fV5yXDkTGeormdE9R4yDqNk9PT3dTSaTQwsnre8ztBJyCi95We/HIQ1okTAi4wUJoXjO0a9YsvZ/uXI/EP3GWVNQmVUXfwEvwl47MDS3LAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/Endicott.1ff37496.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAANBSURBVHgBrVZNTxNRFL1vWmkRgoUErCi0KC6IGCaiQEqwIwuMbohLd/YftDEujDGFlQm4qGsXxZ0mJkhiYiACRaBiATMNCCYUKd8fJlAJgSkffb477RAIaWcaOEmb176Ze3LevffcR0AFzldegdNzdgJUoABWiH8ACEQoBZEAiLFd+s7zwiGmikNSEej0xG0wZAj2yjK4VmSGvAvZkJuTLe/vRHdhaW0dxkNzMDY1D+ubWz66T5s9zx0+TUTOJq+JyyJuFtD5+EGtTKAFw+Mh6PQHYWNzyxPTM0KXI5KUiKmwMhXtdbfK+IZaHjINGZAOUGWXX4T+0UnxYJ8+YurCJ4hQiS6L9DbYKvgGGw+nAZJ1+YPigZ7eU5RxyiYel6zklCQIjFFXWcZz+8R9GB+/nK1eAXOCx3VWQDKMiUV1SKQD4r5vq1DNyfLKGvT0DYL/xwioAWNhMRF9XJXe2eLlTTnZwp3yUtWXc0054A+MgCRFwXwxH65aLSmfx4o9b8wQ5F5k1fCkvLQItMBoNIKt6ra8RmVawPIOHAcCxxFScfN6MWiFrbqSERogPLcAf2ZmVZ8vZaooR+wcsxW+sCAPtEJWVZ1Q9U1dFToJOzUrFoMp3ca0VR1RFU6tCm0LEkRpgx5Zk+R2eQxIFGaGCOnAPxSvvBJLMZRYU+cXbYkhglUX3vinnWhHkuB7YFRe19trVZ9fZA7PTkBkxUD7QvMroBWymmhUVlJiUW8LHCNAaZCLAfiY24IWHFNzV10N4hebVXQP2uQfT1vbekNzy1QNS8urtNs3QAeHhqkWBMamqIvFRg656g6ANr//MqgkLikumQvkvCh9lAqSPJuCgFP32IbrtdfzqSdAzwrtLJarxetR4h/2EdVBU9/ohIjj+LTAGAMsFt2GJuU/nbIY6uyQauobO6cXVwUpume2FObDOb0O0gEe1+f+n+ALjMVH+UvHygkimay7I1LzsPHD7NLfzOBkuAat6bJGH8QWefvxK/yeWXgT2wbHURJE8usWm7o4EJkpCuXM3W+wUXKFkRoTvohuss4afXp+lV1GJlCND4vK80zjdesEIRuMOLNwnFACPGtzU2IrjK6CDY+9mIxAwX9R/u8Z4ds8jAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/map_pin_buildings.991255a7.svg\";","module.exports = __webpack_public_path__ + \"static/media/map_pin_waypoints.47e3a672.svg\";","module.exports = __webpack_public_path__ + \"static/media/assets_bg.8c9fb6c6.png\";","module.exports = __webpack_public_path__ + \"static/media/bourque_center_area_1.b62666fd.jpg\";","module.exports = __webpack_public_path__ + \"static/media/bourque_center_area_2.46bffabc.jpg\";","module.exports = __webpack_public_path__ + \"static/media/bourque_center_area_3.7fb46ba1.jpg\";","module.exports = __webpack_public_path__ + \"static/media/callahan_center_area_1.ecd4c908.jpg\";","module.exports = __webpack_public_path__ + \"static/media/callahan_center_area_1_thumb.0b0ba814.jpg\";","module.exports = __webpack_public_path__ + \"static/media/callahan_center_area_2.3c0bdc51.jpg\";","module.exports = __webpack_public_path__ + \"static/media/callahan_center_area_3.0dfed3d2.jpg\";","module.exports = __webpack_public_path__ + \"static/media/callahan_center_area_4.fe4d4789.jpg\";","module.exports = __webpack_public_path__ + \"static/media/callahan_center_area_4_thumb.eed2b451.jpg\";","module.exports = __webpack_public_path__ + \"static/media/callahan_center_area_5.31fcde22.jpg\";","module.exports = __webpack_public_path__ + \"static/media/callahan_center_area_6.02cbdf11.jpg\";","module.exports = __webpack_public_path__ + \"static/media/callahan_center_area_6_thumb.b8ae0683.jpg\";","module.exports = __webpack_public_path__ + \"static/media/center_for_belonging_area_1.9121ab9d.jpg\";","module.exports = __webpack_public_path__ + \"static/media/center_for_belonging_area_1_thumb.33d1d740.jpg\";","module.exports = __webpack_public_path__ + \"static/media/center_for_belonging_area_2.cf53fe9e.jpg\";","module.exports = __webpack_public_path__ + \"static/media/center_for_belonging_area_2_thumb.cb977541.jpg\";","module.exports = __webpack_public_path__ + \"static/media/center_for_belonging_area_3.c50b29d9.jpeg\";","module.exports = __webpack_public_path__ + \"static/media/center_for_belonging_area_3_thumb.d052441e.jpg\";","module.exports = __webpack_public_path__ + \"static/media/frates_hall_area_1.585edd38.jpg\";","module.exports = __webpack_public_path__ + \"static/media/frates_hall_area_2.2cccbab1.jpg\";","module.exports = __webpack_public_path__ + \"static/media/frates_hall_area_3.1c454bfe.jpg\";","module.exports = __webpack_public_path__ + \"static/media/gerrish_school_of_business_area_1.b71fa501.jpg\";","module.exports = __webpack_public_path__ + \"static/media/gerrish_school_of_business_area_1_thumb.9d6859f6.jpg\";","module.exports = __webpack_public_path__ + \"static/media/gerrish_school_of_business_area_2.1654da89.jpg\";","module.exports = __webpack_public_path__ + \"static/media/gerrish_school_of_business_area_3.93d24dc0.jpg\";","module.exports = __webpack_public_path__ + \"static/media/gerrish_school_of_business_area_4.28283663.jpg\";","module.exports = __webpack_public_path__ + \"static/media/gerrish_school_of_business_area_5.4e26e20e.jpg\";","module.exports = __webpack_public_path__ + \"static/media/gerrish_school_of_business_area_5_thumb.57520ed8.jpg\";","module.exports = __webpack_public_path__ + \"static/media/gerrish_school_of_business_area_6.5dd00fbf.jpg\";","module.exports = __webpack_public_path__ + \"static/media/gerrish_school_of_business_area_7.f9396ecc.jpg\";","module.exports = __webpack_public_path__ + \"static/media/gerrish_school_of_business_area_7_thumb.166ee645.jpg\";","module.exports = __webpack_public_path__ + \"static/media/gerrish_school_of_business_area_8.12eafee8.jpg\";","module.exports = __webpack_public_path__ + \"static/media/gerrish_school_of_business_area_8_thumb.1970a587.jpg\";","module.exports = __webpack_public_path__ + \"static/media/gullys_area_1.8359c796.jpg\";","module.exports = __webpack_public_path__ + \"static/media/gullys_area_1_thumb.fe098278.jpg\";","module.exports = __webpack_public_path__ + \"static/media/gullys_area_2.cc07c181.jpg\";","module.exports = __webpack_public_path__ + \"static/media/gullys_area_3.7b4fe924.jpg\";","module.exports = __webpack_public_path__ + \"static/media/halle_library_area_1.9ca96bfe.jpg\";","module.exports = __webpack_public_path__ + \"static/media/halle_library_area_1_thumb.0229a03a.jpg\";","module.exports = __webpack_public_path__ + \"static/media/halle_library_area_2.f7c66fb7.jpg\";","module.exports = __webpack_public_path__ + \"static/media/halle_library_area_3.bd7ade7a.jpg\";","module.exports = __webpack_public_path__ + \"static/media/halle_library_area_4.1ca48f48.jpg\";","module.exports = __webpack_public_path__ + \"static/media/halle_library_area_5.f4124db5.jpg\";","module.exports = __webpack_public_path__ + \"static/media/halle_library_area_5_thumb.ed97b2bd.jpg\";","module.exports = __webpack_public_path__ + \"static/media/halle_library_area_6.dbe889b0.jpg\";","module.exports = __webpack_public_path__ + \"static/media/halle_library_area_6_thumb.ee41bbf2.jpg\";","module.exports = __webpack_public_path__ + \"static/media/hempstead-commons_area_1.b1453ebc.jpg\";","module.exports = __webpack_public_path__ + \"static/media/hempstead-commons_area_1_thumb.ef9f6b2b.jpg\";","module.exports = __webpack_public_path__ + \"static/media/hempstead-commons_area_2.a2eb3151.jpg\";","module.exports = __webpack_public_path__ + \"static/media/hempstead-commons_area_2_thumb.258b78bc.jpg\";","module.exports = __webpack_public_path__ + \"static/media/hempstead-commons_area_3.76ec24d2.jpg\";","module.exports = __webpack_public_path__ + \"static/media/hempstead-commons_area_3_thumb.4e7f0f27.jpg\";","module.exports = __webpack_public_path__ + \"static/media/hempstead-commons_area_4.4dcccb02.jpg\";","module.exports = __webpack_public_path__ + \"static/media/hempstead-commons_area_4_thumb.22133fc0.jpg\";","module.exports = __webpack_public_path__ + \"static/media/gerrish_school_of_business_area_2.1654da89.jpg\";","module.exports = __webpack_public_path__ + \"static/media/judge_science_center_area_0.8368584a.jpg\";","module.exports = __webpack_public_path__ + \"static/media/judge_science_center_area_1.fccaad8b.jpg\";","module.exports = __webpack_public_path__ + \"static/media/judge_science_center_area_2.42f2ffef.jpg\";","module.exports = __webpack_public_path__ + \"static/media/judge_science_center_area_2_thumb.23b16945.jpg\";","module.exports = __webpack_public_path__ + \"static/media/manninen_center_area_1.ff9696a7.jpg\";","module.exports = __webpack_public_path__ + \"static/media/manninen_center_area_10.ba532a3b.jpg\";","module.exports = __webpack_public_path__ + \"static/media/manninen_center_area_11.27fd8650.jpg\";","module.exports = __webpack_public_path__ + \"static/media/manninen_center_area_12.d8caf415.jpg\";","module.exports = __webpack_public_path__ + \"static/media/manninen_center_area_12_thumb.640287a6.jpg\";","module.exports = __webpack_public_path__ + \"static/media/manninen_center_area_1_thumb.4e582cb0.jpg\";","module.exports = __webpack_public_path__ + \"static/media/manninen_center_area_2.9ad1e7e8.jpg\";","module.exports = __webpack_public_path__ + \"static/media/manninen_center_area_3.a311311e.jpg\";","module.exports = __webpack_public_path__ + \"static/media/manninen_center_area_3_thumb.e7cc20dd.jpg\";","module.exports = __webpack_public_path__ + \"static/media/manninen_center_area_4.8dde0ba5.jpg\";","module.exports = __webpack_public_path__ + \"static/media/manninen_center_area_5.629298dd.jpg\";","module.exports = __webpack_public_path__ + \"static/media/manninen_center_area_5_thumb.2b26625a.jpg\";","module.exports = __webpack_public_path__ + \"static/media/manninen_center_area_8.dc3145a1.jpg\";","module.exports = __webpack_public_path__ + \"static/media/manninen_center_area_9.d1bf6b73.jpg\";","module.exports = __webpack_public_path__ + \"static/media/wax_academic_center_area_3.42bc0fb3.jpg\";","module.exports = __webpack_public_path__ + \"static/media/wax_academic_center_area_3_thumb.b88849e7.jpg\";","module.exports = __webpack_public_path__ + \"static/media/nursing_area_1.3b52c085.jpg\";","module.exports = __webpack_public_path__ + \"static/media/nursing_area_10.31fa6be2.jpg\";","module.exports = __webpack_public_path__ + \"static/media/nursing_area_10_thumb.29acbd80.jpg\";","module.exports = __webpack_public_path__ + \"static/media/nursing_area_11.e3f546fa.jpg\";","module.exports = __webpack_public_path__ + \"static/media/nursing_area_11_thumb.e41948ca.jpg\";","module.exports = __webpack_public_path__ + \"static/media/nursing_area_12.0e7a3213.jpg\";","module.exports = __webpack_public_path__ + \"static/media/nursing_area_1_thumb.3b9e6560.jpg\";","module.exports = __webpack_public_path__ + \"static/media/nursing_area_2.1f7dc31a.jpg\";","module.exports = __webpack_public_path__ + \"static/media/nursing_area_3.56605fc2.jpg\";","module.exports = __webpack_public_path__ + \"static/media/nursing_area_3_thumb.7b48f61f.jpg\";","module.exports = __webpack_public_path__ + \"static/media/nursing_area_4.5167d20f.jpg\";","module.exports = __webpack_public_path__ + \"static/media/nursing_area_5.09608c58.jpg\";","module.exports = __webpack_public_path__ + \"static/media/nursing_area_6.0ccfabf5.jpg\";","module.exports = __webpack_public_path__ + \"static/media/nursing_area_6_thumb.13b6c65a.jpg\";","module.exports = __webpack_public_path__ + \"static/media/nursing_area_7.23857d95.jpg\";","module.exports = __webpack_public_path__ + \"static/media/nursing_area_7_thumb.859e572b.jpg\";","module.exports = __webpack_public_path__ + \"static/media/nursing_area_8.06e9ab7c.jpg\";","module.exports = __webpack_public_path__ + \"static/media/nursing_area_8_thumb.b5f25c22.jpg\";","module.exports = __webpack_public_path__ + \"static/media/nursing_area_9.0d2d84c5.jpg\";","module.exports = __webpack_public_path__ + \"static/media/nursing_area_9_thumb.fab8dd67.jpg\";","module.exports = __webpack_public_path__ + \"static/media/sport_science_area_1.71b23df3.jpg\";","module.exports = __webpack_public_path__ + \"static/media/sport_science_area_1_thumb.4e6ee818.jpg\";","module.exports = __webpack_public_path__ + \"static/media/sport_science_area_2.69dfe1a4.jpg\";","module.exports = __webpack_public_path__ + \"static/media/sport_science_area_2_thumb.495fd621.jpg\";","module.exports = __webpack_public_path__ + \"static/media/sport_science_area_3.a6256c37.jpg\";","module.exports = __webpack_public_path__ + \"static/media/sport_science_area_3_thumb.98c5d8ec.jpg\";","module.exports = __webpack_public_path__ + \"static/media/post_center_area_1.2d6499d4.jpg\";","module.exports = __webpack_public_path__ + \"static/media/post_center_area_10.99e4c6e0.jpg\";","module.exports = __webpack_public_path__ + \"static/media/post_center_area_11.59a52e3c.jpg\";","module.exports = __webpack_public_path__ + \"static/media/post_center_area_12.850d5dde.jpg\";","module.exports = __webpack_public_path__ + \"static/media/post_center_area_12_thumb.7dc2401c.jpg\";","module.exports = __webpack_public_path__ + \"static/media/post_center_area_1_thumb.0b341cbc.jpg\";","module.exports = __webpack_public_path__ + \"static/media/post_center_area_2.0e88b290.jpg\";","module.exports = __webpack_public_path__ + \"static/media/post_center_area_3.1cd18d57.jpg\";","module.exports = __webpack_public_path__ + \"static/media/post_center_area_3_thumb.0f581042.jpg\";","module.exports = __webpack_public_path__ + \"static/media/post_center_area_4.230b4365.jpg\";","module.exports = __webpack_public_path__ + \"static/media/post_center_area_4_thumb.b4c2b6ef.jpg\";","module.exports = __webpack_public_path__ + \"static/media/post_center_area_5.86119fc5.jpg\";","module.exports = __webpack_public_path__ + \"static/media/post_center_area_5_thumb.b539d51e.jpg\";","module.exports = __webpack_public_path__ + \"static/media/post_center_area_6.6ace97ba.jpg\";","module.exports = __webpack_public_path__ + \"static/media/post_center_area_6_thumb.67d84a37.jpg\";","module.exports = __webpack_public_path__ + \"static/media/post_center_area_7.ef6faee8.jpg\";","module.exports = __webpack_public_path__ + \"static/media/post_center_area_8.14fab510.jpg\";","module.exports = __webpack_public_path__ + \"static/media/post_center_area_9.55741da1.jpg\";","module.exports = __webpack_public_path__ + \"static/media/reynolds_hall_area_1.e8bc0657.jpg\";","module.exports = __webpack_public_path__ + \"static/media/standish_hall_area_1.bac670bb.jpg\";","module.exports = __webpack_public_path__ + \"static/media/standish_hall_area_2.e8808a0f.jpg\";","module.exports = __webpack_public_path__ + \"static/media/standish_hall_area_3.c97a3f3a.jpg\";","module.exports = __webpack_public_path__ + \"static/media/standish_hall_area_3_thumb.f9ad747b.jpg\";","module.exports = __webpack_public_path__ + \"static/media/standish_hall_area_4.fa6ccd80.jpg\";","module.exports = __webpack_public_path__ + \"static/media/standish_hall_area_5.e8db6b76.jpg\";","module.exports = __webpack_public_path__ + \"static/media/wax_academic_center_area_1.a6f92c7f.jpg\";","module.exports = __webpack_public_path__ + \"static/media/wax_academic_center_area_2.18fff404.jpg\";","module.exports = __webpack_public_path__ + \"static/media/wax_academic_center_area_2_thumb.87a3c190.jpg\";","module.exports = __webpack_public_path__ + \"static/media/wax_academic_center_area_3.42bc0fb3.jpg\";","module.exports = __webpack_public_path__ + \"static/media/wax_academic_center_area_3_thumb.b88849e7.jpg\";","module.exports = __webpack_public_path__ + \"static/media/wax_academic_center_area_5.2a4c1afa.jpg\";","module.exports = __webpack_public_path__ + \"static/media/wax_academic_center_area_6.09e292b3.jpg\";","module.exports = __webpack_public_path__ + \"static/media/wax_academic_center_area_7.507b9bc5.jpg\";","module.exports = __webpack_public_path__ + \"static/media/wax_academic_center_area_7_thumb.4e1ecd04.jpg\";","module.exports = __webpack_public_path__ + \"static/media/wax_academic_center_area_8.b8cd886d.jpg\";","module.exports = __webpack_public_path__ + \"static/media/wax_academic_center_area_8_thumb.58d5d961.jpg\";","module.exports = __webpack_public_path__ + \"static/media/wax_academic_center_area_9.43ac5aa4.jpg\";","module.exports = __webpack_public_path__ + \"static/media/wax_academic_center_area_9_thumb.e3428212.jpg\";","module.exports = __webpack_public_path__ + \"static/media/wax_academic_center_new_building_int.908a5e1f.jpg\";","module.exports = __webpack_public_path__ + \"static/media/utopiastd-bold.8687d60b.otf\";","module.exports = __webpack_public_path__ + \"static/media/home-bg.d675fd57.png\";","module.exports = __webpack_public_path__ + \"static/media/minus.a181fb23.svg\";","module.exports = __webpack_public_path__ + \"static/media/CallahanCenter.9ae117d9.png\";","module.exports = __webpack_public_path__ + \"static/media/college_hall_1.3f3d1be9.jpg\";","module.exports = __webpack_public_path__ + \"static/media/mingo_beach_1.9c3d66f5.jpg\";","module.exports = __webpack_public_path__ + \"static/media/softball_complex_1.4f654739.jpg\";","module.exports = __webpack_public_path__ + \"static/media/the_lodge_1.8b10b0d4.jpg\";","module.exports = __webpack_public_path__ + \"static/media/plus.ce703963.svg\";","module.exports = __webpack_public_path__ + \"static/media/points-1.5fe6ac3b.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/bayview_hotspot_1.019fdc13.jpg\";","module.exports = __webpack_public_path__ + \"static/media/callahan-center_pano.1e8d9815.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Chapel_1126.f4ac8be4.jpg\";","module.exports = __webpack_public_path__ + \"static/media/chapel_area_1.80cedd06.jpg\";","module.exports = __webpack_public_path__ + \"static/media/chapel_area_1_thumb.7587d52e.jpg\";","module.exports = __webpack_public_path__ + \"static/media/chapel_area_2.89e433e6.jpg\";","module.exports = __webpack_public_path__ + \"static/media/chapel_area_2_thumb.9a25edb2.jpg\";","module.exports = __webpack_public_path__ + \"static/media/chapel_hotspot_1.e51a332c.jpg\";","module.exports = __webpack_public_path__ + \"static/media/chapel_hotspot_2.39bc4943.jpg\";","module.exports = __webpack_public_path__ + \"static/media/college_hall_hotspot_1.03144918.jpg\";","module.exports = __webpack_public_path__ + \"static/media/college_hall_hotspot_2.dedc9f97.jpg\";","module.exports = __webpack_public_path__ + \"static/media/college_hall_hotspot_3.aa299efa.jpg\";","module.exports = __webpack_public_path__ + \"static/media/college_hall_hotspot_3_thumb.cef27a1a.jpg\";","module.exports = __webpack_public_path__ + \"static/media/college_hall_pano.6036b9c7.jpg\";","module.exports = __webpack_public_path__ + \"static/media/college_hall_pano_thumb.b7b8830e.jpg\";","module.exports = __webpack_public_path__ + \"static/media/first_year_quad.f902a729.jpg\";","module.exports = __webpack_public_path__ + \"static/media/first_year_quad_thumb.e35667c6.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Front_Gate167.12b0bc3f.jpg\";","module.exports = __webpack_public_path__ + \"static/media/front-gate_pano.4570d697.jpg\";","module.exports = __webpack_public_path__ + \"static/media/gerrish-school_pano.ddb66c53.jpg\";","module.exports = __webpack_public_path__ + \"static/media/gerrish-school_thumb.dd9250f7.jpg\";","module.exports = __webpack_public_path__ + \"static/media/ginger-judge_thumb.3e24f69c.jpg\";","module.exports = __webpack_public_path__ + \"static/media/ginger-jusge_pano.12eafee8.jpg\";","module.exports = __webpack_public_path__ + \"static/media/halle-library_pano.5ea8d16d.jpg\";","module.exports = __webpack_public_path__ + \"static/media/hamilton_wenham_hotspot_1.773d604f.jpg\";","module.exports = __webpack_public_path__ + \"static/media/hamilton_wenham_hotspot_2.1e074dd1.jpg\";","module.exports = __webpack_public_path__ + \"static/media/hempstead_stadium_hotspot_1.b11446ea.jpg\";","module.exports = __webpack_public_path__ + \"static/media/hempstead_stadium_hotspot_2.e69a30fc.jpg\";","module.exports = __webpack_public_path__ + \"static/media/lakes_amphitheater_hotspot_1.8cfbe797.jpg\";","module.exports = __webpack_public_path__ + \"static/media/lakes_amphitheater_hotspot_2.3401d960.jpg\";","module.exports = __webpack_public_path__ + \"static/media/lodge_hotspot_1.13b1a470.jpg\";","module.exports = __webpack_public_path__ + \"static/media/lodge_hotspot_2.520ffd5b.jpg\";","module.exports = __webpack_public_path__ + \"static/media/lodge_hotspot_3.97db4f68.jpg\";","module.exports = __webpack_public_path__ + \"static/media/the_lodge_pano.3891fbf7.jpg\";","module.exports = __webpack_public_path__ + \"static/media/the_lodge_pano_thumb.c81166df.jpg\";","module.exports = __webpack_public_path__ + \"static/media/manninen-center_pano.27152e7f.jpg\";","module.exports = __webpack_public_path__ + \"static/media/marblehead_hotspot_1.ea535500.jpg\";","module.exports = __webpack_public_path__ + \"static/media/mingo_beach_pano.572eb92b.jpg\";","module.exports = __webpack_public_path__ + \"static/media/mingo_beach_pano_thumb.9791e1f6.jpg\";","module.exports = __webpack_public_path__ + \"static/media/mingobeach_hotspot_1.4c4b7b61.jpg\";","module.exports = __webpack_public_path__ + \"static/media/mingobeach_hotspot_2.843d2c5d.jpg\";","module.exports = __webpack_public_path__ + \"static/media/mingobeach_hotspot_3.332bb356.jpg\";","module.exports = __webpack_public_path__ + \"static/media/mingobeach_hotspot_4.d01bf636.jpg\";","module.exports = __webpack_public_path__ + \"static/media/misselwood_hotspot_1.6e2449d2.jpg\";","module.exports = __webpack_public_path__ + \"static/media/misselwood_hotspot_2.b3b866aa.jpg\";","module.exports = __webpack_public_path__ + \"static/media/misselwood_hotspot_3.5ce79f9d.jpg\";","module.exports = __webpack_public_path__ + \"static/media/misselwood_related_1.9e719d72.jpg\";","module.exports = __webpack_public_path__ + \"static/media/misselwood_related_2.5b7c289e.jpg\";","module.exports = __webpack_public_path__ + \"static/media/northfield_basepoint.94d42a7f.jpg\";","module.exports = __webpack_public_path__ + \"static/media/northfield_basepoint_thumb.e8b4c84b.jpg\";","module.exports = __webpack_public_path__ + \"static/media/northfield_hotspot_1.1bd84e7a.jpg\";","module.exports = __webpack_public_path__ + \"static/media/northfield_hotspot_2.7aa76bb1.jpg\";","module.exports = __webpack_public_path__ + \"static/media/nursing_pano.0f4b392b.jpg\";","module.exports = __webpack_public_path__ + \"static/media/nursing_thumb.4b4c6aa2.jpg\";","module.exports = __webpack_public_path__ + \"static/media/post-sport_pano.97f62ed5.jpg\";","module.exports = __webpack_public_path__ + \"static/media/public_safety_hotspot_1.11fc375b.jpg\";","module.exports = __webpack_public_path__ + \"static/media/public_safety_hotspot_2.21cba8cb.jpg\";","module.exports = __webpack_public_path__ + \"static/media/softball_basepoint.20e94983.jpg\";","module.exports = __webpack_public_path__ + \"static/media/softball_basepoint_thumb.aca77014.jpg\";","module.exports = __webpack_public_path__ + \"static/media/softball_complex_hotspot_1.ecf94cfb.jpg\";","module.exports = __webpack_public_path__ + \"static/media/stoneridge_hotspot_1.d84c0f80.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Tupper_Lawn157.80bf9485.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Tupper_Lawn158.606b2bad.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Tupper_Lawn159.0f9f6643.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Tupper_Lawn160.775cf2bb.jpg\";","module.exports = __webpack_public_path__ + \"static/media/tupperlawn_hotspot_1.915725be.jpg\";","module.exports = __webpack_public_path__ + \"static/media/wax-acacemic-center_pano.42b6be93.jpg\";","module.exports = __webpack_public_path__ + \"static/media/wax-acacemic-center_thumb.7b908e1e.jpg\";","export type TourPointType = {\n  [index: string]: string;\n  slug: string;\n};\n\nexport enum CampusTourKeys {\n  frontGate = \"front-gate\",\n  policeBuilding = \"safety-police-building\",\n  centerForBelonging = \"center-for-belonging\",\n  collegeHall = \"college-hall\",\n  amphitheater = \"amphitheater\",\n  hempsteadStadium = \"hempstead-stadium\",\n  softballComplex = \"softball-complex\",\n  northField = \"north-field\",\n  stoneridge = \"stoneridge\",\n  marblehead = \"marblehead\",\n  bayview = \"bayview\",\n  firstYearQuad = \"first-year-quad\",\n  hamilton = \"hamilton-wenham\",\n  misselwood = \"misselwood\",\n  mingoBeach = \"mingo-beach\",\n  tupperLawn = \"tupper-lawn\",\n  theLodge = \"the-lodge\",\n  dianeLibrary = 'halle-library',\n  centerForArts = \"center-for-the-arts\",\n  nursing = \"nursing\",\n  callahanCenter = 'callahan-center',\n  gerrishSchool = 'gerrish-school-of-business',\n  gingerJudge = \"ginger-judge-science-center\",\n  postSportScience = \"post-sport-science-and-fitness-center\",\n  waxAcacemic = \"wax-academic-center\",\n}\n\nexport const campusTourPoints: TourPointType[] = [\n  { slug: CampusTourKeys.frontGate },\n  { slug: CampusTourKeys.policeBuilding },\n  { slug: CampusTourKeys.callahanCenter },\n  { slug: CampusTourKeys.centerForBelonging },\n  { slug: CampusTourKeys.gerrishSchool },\n  { slug: CampusTourKeys.gingerJudge },\n  // { slug: CampusTourKeys.collegeHall },\n  // { slug: CampusTourKeys.amphitheater },\n  { slug: CampusTourKeys.hempsteadStadium },\n  { slug: CampusTourKeys.postSportScience },\n  { slug: CampusTourKeys.nursing },\n  { slug: CampusTourKeys.waxAcacemic },\n  // { slug: CampusTourKeys.softballComplex },\n  { slug: CampusTourKeys.dianeLibrary },\n  { slug: CampusTourKeys.centerForArts },\n  { slug: CampusTourKeys.theLodge },\n  { slug: CampusTourKeys.firstYearQuad },\n  { slug: CampusTourKeys.misselwood },\n  { slug: CampusTourKeys.collegeHall },\n  { slug: CampusTourKeys.mingoBeach },\n  { slug: CampusTourKeys.stoneridge },\n  { slug: CampusTourKeys.marblehead },\n  { slug: CampusTourKeys.bayview },\n  { slug: CampusTourKeys.northField },\n  // { slug: CampusTourKeys.hamilton },\n  // { slug: CampusTourKeys.tupperLawn },\n];\n\nexport enum BuildingTourKeys {\n  callahanCenter = \"callahan-center\",\n  centerForBelonging = \"center-for-belonging\",\n  businessSchool = \"ginger-judge-science-center\",\n  judgeCenter = \"judge-science-center\",\n  waxAcademicCenter = \"wax-academic-center\",\n  hempsteadCommons = \"hempstead-commons\",\n  postCenter = \"post-sport-science-and-fitness-center\",\n  gullys = \"gullys\",\n  halleLibrarya = \"halle-library\",\n  manninenCenterForArts = \"center-for-the-arts\",\n  nursingBuilding = \"nursing\",\n  bourqueArena = \"bourque-arena\",\n  fratesHall = \"frates-hall\",\n  reynoldsHall = \"reynolds-hall\",\n  stadishHall = \"stadish-hall\",\n  artsCenter = \"arts-center\",\n  athletics = \"athletics\",\n}\n","import React from \"react\";\n\nexport const Tour = ({ width = '40', height = '40', className = \"\" }) => (\n  <svg width={width} height={height} className={className} fill=\"#00325B\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 128 128\"><path d=\"M 94 13 C 85.7 13 79 19.7 79 28 C 79 31.2 80.000391 34.200781 81.900391 36.800781 L 91.599609 50 C 92.199609 50.8 93.1 51.199219 94 51.199219 C 95 51.199219 95.800391 50.7 96.400391 50 L 106.09961 36.800781 C 107.99961 34.200781 109 31.2 109 28 C 109 19.7 102.3 13 94 13 z M 94 19 C 99 19 103 23 103 28 C 103 29.9 102.40078 31.699219 101.30078 33.199219 L 94 43.099609 L 86.699219 33.199219 C 85.599219 31.699219 85 29.9 85 28 C 85 23 89 19 94 19 z M 34 53 C 20.2 53 9 64.2 9 78 C 9 83.3 10.599219 88.399609 13.699219 92.599609 C 13.799219 92.799609 13.999609 92.899609 14.099609 93.099609 L 31.599609 116.80078 C 32.199609 117.50078 33 118 34 118 C 35 118 35.800391 117.50078 36.400391 116.80078 L 53.900391 93.099609 L 54.199219 92.699219 L 54.300781 92.599609 C 57.400781 88.299609 59 83.3 59 78 C 59 64.2 47.8 53 34 53 z M 88.664062 53.707031 C 87.702148 53.665039 86.724609 54.087891 86.099609 54.900391 L 84.300781 57.300781 C 83.300781 58.600781 83.500391 60.5 84.900391 61.5 C 85.400391 61.9 86.099219 62.099609 86.699219 62.099609 C 87.599219 62.099609 88.499609 61.700391 89.099609 60.900391 L 90.900391 58.5 C 91.900391 57.2 91.600781 55.300781 90.300781 54.300781 C 89.813281 53.925781 89.241211 53.732227 88.664062 53.707031 z M 34 59 C 44.5 59 53 67.5 53 78 C 53 82 51.800391 85.899609 49.400391 89.099609 L 49.400391 89.199219 L 34 110 L 18.900391 89.5 C 18.800391 89.4 18.699609 89.299609 18.599609 89.099609 C 16.199609 85.899609 15 82 15 78 C 15 67.5 23.5 59 34 59 z M 79.664062 65.707031 C 78.702148 65.665039 77.724609 66.087891 77.099609 66.900391 L 75.300781 69.300781 C 74.300781 70.600781 74.600391 72.5 75.900391 73.5 C 76.400391 73.9 77.099219 74.099609 77.699219 74.099609 C 78.599219 74.099609 79.499609 73.700391 80.099609 72.900391 L 81.900391 70.5 C 82.900391 69.2 82.600781 67.300781 81.300781 66.300781 C 80.813281 65.925781 80.241211 65.732227 79.664062 65.707031 z M 34 68 A 10 10 0 0 0 24 78 A 10 10 0 0 0 34 88 A 10 10 0 0 0 44 78 A 10 10 0 0 0 34 68 z M 76.337891 77.537109 C 75.575391 77.499609 74.799219 77.750781 74.199219 78.300781 C 72.899219 79.300781 72.8 81.2 74 82.5 L 76 84.699219 C 76.6 85.299219 77.399219 85.699219 78.199219 85.699219 C 78.899219 85.699219 79.699219 85.400391 80.199219 84.900391 C 81.399219 83.800391 81.500391 81.899219 80.400391 80.699219 L 78.400391 78.5 C 77.850391 77.9 77.100391 77.574609 76.337891 77.537109 z M 86.4375 88.537109 C 85.675 88.499609 84.900781 88.750781 84.300781 89.300781 C 83.100781 90.400781 82.999609 92.3 84.099609 93.5 L 86.099609 95.699219 C 86.699609 96.299219 87.500781 96.699219 88.300781 96.699219 C 89.000781 96.699219 89.800781 96.400391 90.300781 95.900391 C 91.500781 94.800391 91.6 92.899219 90.5 91.699219 L 88.5 89.5 C 87.95 88.9 87.2 88.574609 86.4375 88.537109 z M 96.636719 99.537109 C 95.874219 99.499609 95.1 99.750781 94.5 100.30078 C 93.3 101.40078 93.200781 103.3 94.300781 104.5 L 96.300781 106.69922 C 96.900781 107.29922 97.7 107.69922 98.5 107.69922 C 99.2 107.69922 100 107.40039 100.5 106.90039 C 101.7 105.80039 101.79922 103.89922 100.69922 102.69922 L 98.699219 100.5 C 98.149219 99.9 97.399219 99.574609 96.636719 99.537109 z M 106.83789 110.53711 C 106.07539 110.49961 105.29922 110.75078 104.69922 111.30078 C 103.69922 112.20078 103.49961 113.70039 104.09961 114.90039 L 104.09961 115 C 104.09961 116.7 105.39961 118 107.09961 118 L 108.09961 118 C 109.29961 118 110.40078 117.29922 110.80078 116.19922 C 111.30078 115.09922 111.10078 113.8 110.30078 113 L 108.90039 111.5 C 108.35039 110.9 107.60039 110.57461 106.83789 110.53711 z M 47 112 C 45.3 112 44 113.3 44 115 C 44 116.7 45.3 118 47 118 L 50 118 C 51.7 118 53 116.7 53 115 C 53 113.3 51.7 112 50 112 L 47 112 z M 62 112 C 60.3 112 59 113.3 59 115 C 59 116.7 60.3 118 62 118 L 65 118 C 66.7 118 68 116.7 68 115 C 68 113.3 66.7 112 65 112 L 62 112 z M 77 112 C 75.3 112 74 113.3 74 115 C 74 116.7 75.3 118 77 118 L 80 118 C 81.7 118 83 116.7 83 115 C 83 113.3 81.7 112 80 112 L 77 112 z M 92 112 C 90.3 112 89 113.3 89 115 C 89 116.7 90.3 118 92 118 L 95 118 C 96.7 118 98 116.7 98 115 C 98 113.3 96.7 112 95 112 L 92 112 z\" /></svg>\n)\n\nexport const Wayfinding = ({ width = '40', height = '40', className = \"\" }) => (\n  <svg width={width} height={height} className={className} fill=\"#00325B\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\"><path d=\"M 50.501953 12 A 1.0001 1.0001 0 0 0 49.607422 12.548828 L 12.107422 86.548828 A 1.0001 1.0001 0 0 0 13.257812 87.966797 L 50.5 78.035156 L 87.742188 87.966797 A 1.0001 1.0001 0 0 0 88.892578 86.548828 L 51.392578 12.548828 A 1.0001 1.0001 0 0 0 50.501953 12 z M 50 16.199219 L 50 58.5 A 0.50005 0.50005 0 1 0 51 58.5 L 51 16.199219 L 86.097656 85.457031 L 51 76.097656 L 51 73.5 A 0.50005 0.50005 0 0 0 50.492188 72.992188 A 0.50005 0.50005 0 0 0 50 73.5 L 50 76.097656 L 14.902344 85.457031 L 50 16.199219 z M 50.492188 60.992188 A 0.50005 0.50005 0 0 0 50 61.5 L 50 66.5 A 0.50005 0.50005 0 1 0 51 66.5 L 51 61.5 A 0.50005 0.50005 0 0 0 50.492188 60.992188 z M 50.492188 68.992188 A 0.50005 0.50005 0 0 0 50 69.5 L 50 70.5 A 0.50005 0.50005 0 1 0 51 70.5 L 51 69.5 A 0.50005 0.50005 0 0 0 50.492188 68.992188 z\" /></svg>\n)\n\nexport const YourPath = ({ width = '40', height = '40', className = \"\" }) => (\n  <svg width={width} height={height} className={className} fill=\"#00325B\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 64 64\"><path d=\"M 32.167969 2.625 C 31.71875 2.625 31.269531 2.699219 30.839844 2.84375 L 16.363281 7.8125 C 15.636719 8.0625 15.171875 8.722656 15.171875 9.492188 C 15.171875 10.257813 15.636719 10.917969 16.363281 11.167969 L 19.046875 12.085938 C 17.835938 12.269531 16.496094 12.664063 15.5 13.3125 C 12.925781 13.453125 11.097656 15.347656 10.8125 18.214844 C 10.636719 19.960938 10.800781 21.257813 10.898438 22.03125 C 10.929688 22.265625 10.96875 22.558594 10.964844 22.625 C 10.957031 22.671875 10.949219 22.714844 10.941406 22.761719 C 10.910156 22.769531 10.882813 22.777344 10.855469 22.78125 C 10.132813 22.976563 9.613281 23.617188 9.421875 24.546875 C 9.28125 25.25 9.324219 26.097656 9.546875 26.9375 C 9.917969 28.316406 10.664063 29.34375 11.527344 29.742188 C 11.921875 30.90625 12.457031 32.03125 13.097656 33.050781 L 4.578125 38.5625 C 1.710938 40.421875 0 43.558594 0 46.980469 L 0 50.1875 C 0 51.738281 1.261719 53 2.8125 53 L 8 53 L 8 55 C 8 56.648438 9.351563 58 11 58 L 53 58 C 54.648438 58 56 56.648438 56 55 L 56 53 L 61.109375 53 C 62.660156 53 63.921875 51.738281 63.921875 50.1875 L 63.921875 46.980469 C 63.921875 43.558594 62.199219 40.421875 59.339844 38.5625 L 51.570313 33.53125 C 52.351563 32.390625 53 31.089844 53.449219 29.738281 C 54.320313 29.339844 55.058594 28.308594 55.429688 26.929688 C 55.980469 24.878906 55.429688 23.128906 54.128906 22.78125 C 54.101563 22.78125 54.070313 22.769531 54.039063 22.761719 C 53.960938 22.25 53.828125 21.742188 53.621094 21.140625 C 53.71875 21.171875 53.820313 21.199219 53.910156 21.238281 C 54.25 21.378906 54.648438 21.320313 54.929688 21.078125 C 55.21875 20.851563 55.347656 20.46875 55.269531 20.097656 C 54.191406 15.148438 50.578125 12.144531 45.578125 11.984375 L 47.96875 11.167969 C 48.695313 10.917969 49.164063 10.257813 49.164063 9.492188 C 49.164063 8.722656 48.695313 8.0625 47.96875 7.8125 L 33.496094 2.84375 C 33.066406 2.699219 32.617188 2.625 32.167969 2.625 Z M 32.167969 4.625 C 32.398438 4.625 32.625 4.660156 32.84375 4.734375 L 46.691406 9.488281 L 32.84375 14.238281 C 32.40625 14.390625 31.925781 14.390625 31.488281 14.238281 L 17.640625 9.488281 L 31.488281 4.734375 C 31.707031 4.660156 31.9375 4.625 32.167969 4.625 Z M 37.515625 6.84375 C 37.382813 6.832031 37.25 6.84375 37.121094 6.886719 L 31.867188 8.535156 C 31.339844 8.699219 31.046875 9.261719 31.214844 9.789063 C 31.347656 10.214844 31.742188 10.488281 32.167969 10.488281 C 32.265625 10.488281 32.367188 10.476563 32.46875 10.441406 L 37.71875 8.796875 C 38.246094 8.628906 38.539063 8.066406 38.375 7.539063 C 38.25 7.144531 37.902344 6.878906 37.515625 6.84375 Z M 22.140625 13.148438 L 30.839844 16.136719 C 31.269531 16.28125 31.71875 16.355469 32.167969 16.355469 C 32.617188 16.355469 33.066406 16.28125 33.496094 16.136719 L 42.175781 13.15625 L 42.773438 17.050781 L 38.855469 17.019531 C 37.628906 17.027344 36.375 17.296875 35.265625 17.855469 L 32.34375 19.3125 C 32.144531 19.414063 31.902344 19.414063 31.699219 19.3125 L 28.78125 17.855469 C 27.671875 17.296875 26.421875 17.027344 25.1875 17.019531 L 21.546875 17.050781 Z M 44.488281 13.96875 L 45.160156 13.96875 C 48.890625 13.96875 51.628906 15.792969 52.871094 19.019531 C 52.488281 19.050781 52.128906 19.171875 51.847656 19.453125 C 51.578125 19.710938 51.191406 20.292969 51.570313 21.34375 C 51.96875 22.421875 52.109375 23.0625 52.160156 23.960938 C 52.171875 24.320313 52.410156 24.621094 52.730469 24.792969 C 52.980469 24.921875 53.300781 24.921875 53.570313 24.820313 C 53.648438 25.089844 53.710938 25.652344 53.5 26.421875 C 53.230469 27.421875 52.75 27.882813 52.660156 27.921875 C 52.21875 27.921875 51.832031 28.210938 51.710938 28.640625 C 51.289063 30.03125 50.660156 31.351563 49.871094 32.480469 C 49.507813 33 49.121094 33.492188 48.699219 33.921875 C 48.410156 34.222656 48.109375 34.492188 47.8125 34.730469 C 47.378906 35.070313 47.308594 35.699219 47.652344 36.128906 C 47.851563 36.378906 48.140625 36.511719 48.429688 36.511719 C 48.648438 36.511719 48.871094 36.441406 49.050781 36.300781 C 49.492188 35.949219 49.921875 35.5625 50.320313 35.109375 L 58.25 40.238281 C 60.550781 41.730469 61.921875 44.25 61.921875 46.980469 L 61.921875 50.1875 C 61.921875 50.640625 61.558594 51 61.109375 51 L 56 51 L 56 49.921875 C 56 45.300781 53.511719 40.980469 49.511719 38.671875 L 40.789063 33.621094 C 41.890625 32.058594 42.761719 30.300781 43.339844 28.53125 C 44.417969 28.097656 45.378906 26.8125 45.847656 25.050781 C 46.128906 24.011719 46.191406 22.96875 46.011719 22.097656 C 45.789063 21.019531 45.1875 20.269531 44.371094 20.050781 C 44.308594 20.03125 44.230469 20.019531 44.152344 20 C 44.136719 19.429688 44.117188 18.980469 44.097656 18.640625 C 44.1875 18.566406 44.273438 18.492188 44.347656 18.402344 C 44.703125 17.988281 44.855469 17.445313 44.777344 16.90625 L 44.328125 13.976563 C 44.382813 13.976563 44.4375 13.96875 44.488281 13.96875 Z M 19.988281 13.988281 L 19.542969 16.90625 C 19.460938 17.445313 19.617188 17.992188 19.96875 18.402344 C 19.96875 18.402344 19.972656 18.40625 19.972656 18.40625 C 19.941406 18.78125 19.917969 19.296875 19.890625 20 C 19.8125 20.019531 19.738281 20.03125 19.671875 20.050781 C 18.148438 20.460938 17.53125 22.5625 18.1875 25.050781 C 18.667969 26.8125 19.621094 28.097656 20.699219 28.53125 C 21.289063 30.289063 22.148438 32.039063 23.238281 33.597656 L 14.488281 38.671875 C 10.488281 40.980469 8 45.300781 8 49.921875 L 8 51 L 2.8125 51 C 2.359375 51 2 50.640625 2 50.1875 L 2 46.980469 C 2 44.25 3.371094 41.730469 5.671875 40.238281 L 14.277344 34.671875 C 14.550781 34.996094 14.828125 35.308594 15.121094 35.589844 C 15.316406 35.777344 15.566406 35.871094 15.816406 35.871094 C 16.078125 35.871094 16.339844 35.769531 16.535156 35.566406 C 16.917969 35.167969 16.910156 34.535156 16.511719 34.152344 C 15.085938 32.773438 13.90625 30.765625 13.277344 28.636719 C 13.148438 28.210938 12.8125 27.929688 12.371094 27.929688 C 12.230469 27.882813 11.75 27.417969 11.480469 26.417969 C 11.277344 25.65625 11.332031 25.101563 11.410156 24.828125 C 11.6875 24.949219 12.007813 24.945313 12.28125 24.804688 C 12.601563 24.640625 12.808594 24.320313 12.824219 23.964844 C 12.839844 23.628906 12.875 23.296875 12.933594 22.972656 C 12.992188 22.636719 12.945313 22.277344 12.882813 21.78125 C 12.789063 21.042969 12.648438 19.933594 12.796875 18.410156 C 12.996094 16.4375 14.09375 15.304688 15.824219 15.304688 C 16.039063 15.304688 16.253906 15.234375 16.425781 15.105469 C 17.179688 14.539063 18.664063 14.085938 19.988281 13.988281 Z M 25.203125 19.019531 C 26.160156 19.035156 27.0625 19.226563 27.890625 19.640625 L 30.808594 21.097656 C 31.1875 21.289063 31.605469 21.386719 32.023438 21.386719 C 32.441406 21.386719 32.859375 21.289063 33.238281 21.097656 L 36.15625 19.640625 C 36.984375 19.226563 37.910156 19.007813 38.839844 19.019531 L 42.113281 19.046875 C 42.136719 19.582031 42.15625 20.25 42.171875 20.621094 L 42.199219 21.28125 C 42.210938 21.632813 42.417969 21.960938 42.738281 22.121094 C 43.058594 22.28125 43.4375 22.261719 43.738281 22.070313 C 43.796875 22.03125 43.839844 22.011719 43.859375 22 C 44.039063 22.210938 44.289063 23.140625 43.921875 24.53125 C 43.53125 25.992188 42.789063 26.671875 42.558594 26.691406 C 42.117188 26.691406 41.730469 26.980469 41.597656 27.402344 C 41.058594 29.21875 40.1875 31.0625 39.078125 32.628906 C 38.6875 33.191406 38.257813 33.722656 37.796875 34.203125 C 36.167969 35.960938 34.167969 37.128906 32.019531 37.128906 C 29.898438 37.128906 27.898438 35.941406 26.25 34.171875 C 25.796875 33.683594 25.367188 33.160156 24.96875 32.601563 C 23.847656 31.023438 22.96875 29.191406 22.4375 27.402344 C 22.328125 27.011719 21.886719 26.722656 21.488281 26.691406 C 21.257813 26.671875 20.519531 25.992188 20.128906 24.53125 C 19.730469 23.070313 20.039063 22.101563 20.140625 21.988281 C 20.140625 21.988281 20.1875 22 20.308594 22.070313 C 20.609375 22.261719 20.988281 22.28125 21.308594 22.121094 C 21.628906 21.960938 21.828125 21.628906 21.847656 21.28125 L 21.871094 20.671875 C 21.882813 20.289063 21.90625 19.601563 21.933594 19.046875 Z M 24.480469 35.1875 C 26.539063 37.53125 29.148438 39.128906 32.019531 39.128906 C 34.878906 39.128906 37.488281 37.539063 39.539063 35.210938 L 48.511719 40.402344 C 51.898438 42.359375 54 46.011719 54 49.921875 L 54 55 C 54 55.550781 53.550781 56 53 56 L 11 56 C 10.449219 56 10 55.550781 10 55 L 10 49.921875 C 10 46.011719 12.101563 42.359375 15.488281 40.402344 Z M 24.0625 39 C 23.671875 38.976563 23.292969 39.183594 23.105469 39.550781 C 22.859375 40.046875 23.058594 40.648438 23.550781 40.894531 L 31.550781 44.894531 C 31.695313 44.964844 31.847656 45 32 45 C 32.152344 45 32.308594 44.964844 32.449219 44.894531 L 40.449219 40.894531 C 40.941406 40.648438 41.140625 40.046875 40.894531 39.550781 C 40.648438 39.058594 40.046875 38.859375 39.550781 39.105469 L 32 42.882813 L 24.449219 39.105469 C 24.324219 39.042969 24.191406 39.011719 24.0625 39 Z M 12 50 C 11.449219 50 11 50.449219 11 51 L 11 53 C 11 53.550781 11.449219 54 12 54 C 12.550781 54 13 53.550781 13 53 L 13 51 C 13 50.449219 12.550781 50 12 50 Z M 17 50 C 16.449219 50 16 50.449219 16 51 L 16 53 C 16 53.550781 16.449219 54 17 54 C 17.550781 54 18 53.550781 18 53 L 18 51 C 18 50.449219 17.550781 50 17 50 Z M 22 50 C 21.449219 50 21 50.449219 21 51 L 21 53 C 21 53.550781 21.449219 54 22 54 C 22.550781 54 23 53.550781 23 53 L 23 51 C 23 50.449219 22.550781 50 22 50 Z M 27 50 C 26.449219 50 26 50.449219 26 51 L 26 53 C 26 53.550781 26.449219 54 27 54 C 27.550781 54 28 53.550781 28 53 L 28 51 C 28 50.449219 27.550781 50 27 50 Z M 32 50 C 31.449219 50 31 50.449219 31 51 L 31 53 C 31 53.550781 31.449219 54 32 54 C 32.550781 54 33 53.550781 33 53 L 33 51 C 33 50.449219 32.550781 50 32 50 Z M 37 50 C 36.449219 50 36 50.449219 36 51 L 36 53 C 36 53.550781 36.449219 54 37 54 C 37.550781 54 38 53.550781 38 53 L 38 51 C 38 50.449219 37.550781 50 37 50 Z M 42 50 C 41.449219 50 41 50.449219 41 51 L 41 53 C 41 53.550781 41.449219 54 42 54 C 42.550781 54 43 53.550781 43 53 L 43 51 C 43 50.449219 42.550781 50 42 50 Z M 47 50 C 46.449219 50 46 50.449219 46 51 L 46 53 C 46 53.550781 46.449219 54 47 54 C 47.550781 54 48 53.550781 48 53 L 48 51 C 48 50.449219 47.550781 50 47 50 Z M 52 50 C 51.449219 50 51 50.449219 51 51 L 51 53 C 51 53.550781 51.449219 54 52 54 C 52.550781 54 53 53.550781 53 53 L 53 51 C 53 50.449219 52.550781 50 52 50 Z\" /></svg>\n)\n\nexport const CampusLiving = ({ width = '40', height = '40', className = \"\" }) => (\n  <svg width={width} height={height} className={className} fill=\"#00325B\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M 15.5 11 C 12.449219 11 9.808594 12.042969 7.9375 13.90625 C 6.066406 15.769531 5 18.445313 5 21.53125 L 5 22.1875 C 2.140625 22.867188 0 25.4375 0 28.5 C 0 31.546875 2.15625 33.992188 5 34.6875 L 5 40.3125 C 5 43.042969 6.648438 45.402344 9 46.4375 L 9 49 C 9 49.550781 9.449219 50 10 50 L 16 50 C 16.550781 50 17 49.550781 17 49 L 17 47 L 33 47 L 33 49 C 33 49.550781 33.449219 50 34 50 L 40 50 C 40.550781 50 41 49.550781 41 49 L 41 46.4375 C 43.351563 45.402344 45 43.042969 45 40.3125 L 45 34.6875 C 47.84375 33.996094 50 31.546875 50 28.5 C 50 25.4375 47.859375 22.867188 45 22.1875 L 45 21.53125 C 45 18.445313 43.933594 15.769531 42.0625 13.90625 C 40.191406 12.042969 37.550781 11 34.5 11 Z M 15.5 13 L 34.5 13 C 37.101563 13 39.1875 13.847656 40.65625 15.3125 C 42.125 16.777344 43 18.894531 43 21.53125 L 43 22.03125 C 39.65625 22.292969 37 25.09375 37 28.5 C 37 29.617188 36.746094 31.101563 36.125 32.1875 C 35.503906 33.273438 34.667969 34 33 34 L 17 34 C 15.332031 34 14.496094 33.273438 13.875 32.1875 C 13.253906 31.101563 13 29.617188 13 28.5 C 13 25.09375 10.34375 22.292969 7 22.03125 L 7 21.53125 C 7 18.894531 7.875 16.777344 9.34375 15.3125 C 10.8125 13.847656 12.898438 13 15.5 13 Z M 6.5 24 C 8.996094 24 11 26.003906 11 28.5 C 11 29.882813 11.246094 31.648438 12.125 33.1875 C 13.003906 34.726563 14.667969 36 17 36 L 33 36 C 35.332031 36 36.996094 34.726563 37.875 33.1875 C 38.753906 31.648438 39 29.882813 39 28.5 C 39 26.003906 41.003906 24 43.5 24 C 43.609375 24 43.707031 24.023438 43.8125 24.03125 C 46.160156 24.195313 48 26.109375 48 28.5 C 48 30.867188 46.1875 32.773438 43.875 32.96875 L 42.84375 33.0625 L 42.96875 34.09375 C 42.988281 34.269531 43 34.421875 43 34.59375 L 43 40.3125 C 43 42.457031 41.578125 44.214844 39.625 44.78125 C 39.582031 44.800781 39.539063 44.820313 39.5 44.84375 C 39.117188 44.941406 38.726563 45 38.3125 45 L 11.6875 45 C 11.273438 45 10.882813 44.941406 10.5 44.84375 C 10.488281 44.832031 10.480469 44.824219 10.46875 44.8125 C 10.445313 44.808594 10.429688 44.789063 10.40625 44.78125 C 10.324219 44.75 10.242188 44.730469 10.15625 44.71875 C 8.316406 44.089844 7 42.378906 7 40.3125 L 7 34.59375 C 7 34.421875 7.011719 34.265625 7.03125 34.09375 L 7.15625 33.0625 L 6.125 32.96875 C 3.8125 32.773438 2 30.867188 2 28.5 C 2 26.003906 4.003906 24 6.5 24 Z M 11 46.96875 C 11.222656 46.992188 11.457031 47 11.6875 47 L 15 47 L 15 48 L 11 48 Z M 39 46.96875 L 39 48 L 35 48 L 35 47 L 38.3125 47 C 38.542969 47 38.777344 46.992188 39 46.96875 Z\" /></svg>\n)\n\nexport const ArtsCenter = ({ width = '40', height = '40', className = \"\" }) => (\n  <svg width={width} height={height} className={className} fill=\"#00325B\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M 20.75 0 C 20.300781 0 19.835938 0.0273438 19.34375 0.0625 C 17.371094 0.199219 15.027344 0.636719 12.28125 1.5625 C 6.742188 3.460938 3.648438 5.886719 1.96875 7.90625 C 1.128906 8.914063 0.65625 9.800781 0.375 10.46875 C 0.09375 11.136719 0 11.65625 0 11.65625 L -0.03125 11.90625 L 0.0625 12.125 C 5.136719 27.449219 12.984375 32.609375 18.0625 34.21875 C 17.777344 37.105469 17.976563 39.578125 18.4375 41.625 C 19.621094 46.890625 22.53125 49.46875 22.53125 49.46875 L 22.71875 49.59375 L 22.90625 49.65625 C 22.90625 49.65625 26.667969 50.765625 31.84375 49.03125 C 37.019531 47.296875 43.683594 42.769531 49.875 31.90625 L 50 31.6875 L 50 31.46875 C 50 31.46875 50.019531 30.953125 49.875 30.25 C 49.730469 29.546875 49.414063 28.570313 48.78125 27.4375 C 47.515625 25.167969 44.953125 22.257813 39.875 19.4375 C 36.300781 17.433594 33.332031 16.519531 30.96875 16.1875 C 30.796875 12.347656 30.058594 7.800781 28.25 2.5625 L 28.15625 2.34375 L 28 2.1875 C 28 2.1875 27.625 1.835938 27 1.46875 C 26.375 1.101563 25.457031 0.671875 24.1875 0.375 C 23.234375 0.152344 22.09375 0 20.75 0 Z M 20.75 2 C 21.945313 2 22.917969 2.125 23.71875 2.3125 C 24.785156 2.5625 25.539063 2.917969 26 3.1875 C 26.316406 3.375 26.335938 3.410156 26.40625 3.46875 C 28.046875 8.296875 28.78125 12.492188 28.96875 16.03125 C 28.765625 16.03125 28.5625 16.023438 28.375 16.03125 C 27.0625 16.078125 26.0625 16.328125 25.375 16.5625 C 24.6875 16.796875 24.25 17.0625 24.25 17.0625 L 24.0625 17.1875 L 23.9375 17.40625 C 23.171875 18.761719 22.503906 20.078125 21.90625 21.34375 C 21.066406 21.386719 20.097656 21.507813 19 21.84375 L 18.96875 21.84375 C 14.917969 23.265625 13.5625 26.4375 13.5625 26.4375 C 13.355469 26.957031 13.605469 27.542969 14.125 27.75 C 14.644531 27.957031 15.230469 27.707031 15.4375 27.1875 C 15.4375 27.1875 16.269531 24.929688 19.59375 23.75 C 19.605469 23.746094 19.613281 23.753906 19.625 23.75 C 20.09375 23.605469 20.527344 23.535156 20.9375 23.46875 C 19.585938 26.683594 18.75 29.59375 18.3125 32.1875 C 13.832031 30.664063 6.859375 26.023438 2.0625 11.78125 C 2.078125 11.707031 2.058594 11.628906 2.21875 11.25 C 2.425781 10.753906 2.820313 10.039063 3.53125 9.1875 C 4.949219 7.484375 7.667969 5.238281 12.90625 3.4375 C 12.917969 3.433594 12.925781 3.441406 12.9375 3.4375 C 16.179688 2.351563 18.757813 1.996094 20.75 2 Z M 19.40625 12.3125 C 18.644531 12.335938 18.09375 12.40625 18.09375 12.40625 C 18.09375 12.40625 19.292969 15.386719 21.59375 15.6875 C 23.195313 15.886719 25.5 13.3125 25.5 13.3125 C 25.5 13.3125 23.898438 12.605469 22 12.40625 C 21.148438 12.304688 20.167969 12.289063 19.40625 12.3125 Z M 14 13.6875 C 14 13.6875 12.105469 14.894531 10.90625 16.09375 C 9.507813 17.492188 8.6875 18.90625 8.6875 18.90625 C 8.6875 18.90625 12.085938 19.699219 13.1875 18.5 C 14.789063 16.800781 14 13.6875 14 13.6875 Z M 28.46875 18.03125 C 30.691406 17.949219 34.136719 18.511719 38.90625 21.1875 C 43.726563 23.867188 45.96875 26.5 47.03125 28.40625 C 47.5625 29.359375 47.800781 30.140625 47.90625 30.65625 C 47.980469 31.007813 47.96875 31.035156 47.96875 31.125 C 42.007813 41.46875 35.855469 45.570313 31.21875 47.125 C 26.789063 48.609375 24.015625 47.867188 23.71875 47.78125 C 23.507813 47.59375 21.421875 45.695313 20.40625 41.1875 C 19.960938 39.210938 19.773438 36.761719 20.125 33.8125 C 20.1875 33.652344 20.210938 33.480469 20.1875 33.3125 C 20.59375 30.386719 21.539063 26.953125 23.3125 23.03125 C 23.324219 23.011719 23.335938 22.988281 23.34375 22.96875 C 23.347656 22.957031 23.371094 22.949219 23.375 22.9375 C 23.492188 22.792969 23.570313 22.621094 23.59375 22.4375 C 24.160156 21.222656 24.796875 19.96875 25.53125 18.65625 C 25.609375 18.613281 25.65625 18.5625 26.03125 18.4375 C 26.546875 18.261719 27.355469 18.070313 28.46875 18.03125 Z M 28.71875 25.625 C 27.003906 25.597656 25.09375 26.40625 25.09375 26.40625 C 25.09375 26.40625 26.695313 27.386719 28.59375 28.1875 C 30.394531 28.988281 32.40625 29.6875 32.40625 29.6875 C 32.40625 29.6875 31.8125 26.898438 30.3125 26 C 29.863281 25.75 29.289063 25.632813 28.71875 25.625 Z M 37.21875 30.625 C 36.0625 30.699219 35 31.09375 35 31.09375 L 38.1875 33.6875 C 39.886719 34.886719 41.59375 35.6875 41.59375 35.6875 C 41.59375 35.6875 40.988281 32 39.1875 31 C 38.625 30.664063 37.914063 30.582031 37.21875 30.625 Z M 24.34375 30.90625 C 23.945313 30.96875 23.625 31.265625 23.53125 31.65625 C 23.53125 31.65625 23.007813 33.75 23.0625 36.21875 C 23.117188 38.6875 23.75 41.773438 26.40625 43.28125 C 29.066406 44.792969 32.027344 43.738281 34.1875 42.5 C 36.347656 41.261719 37.90625 39.71875 37.90625 39.71875 C 38.167969 39.460938 38.265625 39.078125 38.160156 38.726563 C 38.054688 38.375 37.765625 38.105469 37.40625 38.03125 C 37.40625 38.03125 32.671875 36.953125 30.5625 35.8125 C 28.496094 34.691406 25.25 31.21875 25.25 31.21875 C 25.019531 30.96875 24.679688 30.847656 24.34375 30.90625 Z M 25.28125 34.125 C 26.445313 35.28125 27.984375 36.703125 29.625 37.59375 C 31.285156 38.492188 33.332031 39.0625 34.9375 39.46875 C 34.347656 39.960938 34.183594 40.210938 33.1875 40.78125 C 31.296875 41.867188 29.144531 42.519531 27.40625 41.53125 C 25.660156 40.539063 25.109375 38.34375 25.0625 36.1875 C 25.039063 35.082031 25.167969 34.871094 25.28125 34.125 Z\" /></svg>\n)\n\nexport const Athletics = ({ width = '40', height = '40', className = \"\" }) => (\n  <svg width={width} height={height} className={className} fill=\"#00325B\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 64 64\"><path d=\"M 31 2 C 20.609375 2 11.480469 7.496094 6.359375 15.734375 C 6.332031 15.773438 6.300781 15.808594 6.28125 15.855469 C 3.566406 20.265625 2 25.453125 2 31 C 2 46.992188 15.007813 60 31 60 C 46.992188 60 60 46.992188 60 31 C 60 23.667969 57.261719 16.96875 52.757813 11.859375 C 52.746094 11.835938 52.742188 11.816406 52.726563 11.796875 C 52.699219 11.761719 52.664063 11.746094 52.632813 11.714844 C 47.316406 5.757813 39.589844 2 31 2 Z M 31.324219 4.007813 C 38.832031 4.097656 45.613281 7.265625 50.460938 12.3125 C 44.355469 17.359375 41 23.953125 41 31 C 41 31.867188 41.054688 32.726563 41.15625 33.578125 C 36.515625 34.519531 31.78125 35 27 35 C 26.703125 35 26.414063 34.984375 26.117188 34.984375 C 26.046875 33.660156 26 32.332031 26 31 C 26 21.652344 27.796875 12.574219 31.324219 4.007813 Z M 29.152344 4.070313 C 25.746094 12.636719 24 21.683594 24 31 C 24 32.320313 24.042969 33.632813 24.109375 34.9375 C 20.636719 34.800781 17.195313 34.398438 13.800781 33.761719 C 13.917969 32.847656 14 31.929688 14 31 C 14 25.699219 12.066406 20.605469 8.429688 16.207031 C 12.941406 9.347656 20.488281 4.660156 29.152344 4.070313 Z M 51.796875 13.800781 C 55.671875 18.476563 58 24.472656 58 31 C 58 37.527344 55.671875 43.523438 51.796875 48.199219 C 47.355469 44.542969 44.480469 40.023438 43.441406 35.136719 C 45.390625 34.6875 47.316406 34.164063 49.222656 33.554688 C 49.75 33.386719 50.039063 32.824219 49.871094 32.296875 C 49.703125 31.773438 49.140625 31.480469 48.613281 31.652344 C 46.804688 32.226563 44.972656 32.726563 43.125 33.15625 C 43.046875 32.441406 43 31.726563 43 31 C 43 24.539063 46.121094 18.46875 51.796875 13.800781 Z M 7.328125 18.027344 C 10.378906 21.933594 12 26.386719 12 31 C 12 31.796875 11.933594 32.585938 11.839844 33.371094 C 9.191406 32.796875 6.578125 32.066406 4.007813 31.1875 C 4.003906 31.125 4 31.0625 4 31 C 4 26.300781 5.207031 21.878906 7.328125 18.027344 Z M 55.15625 29.796875 C 55.027344 29.773438 54.894531 29.777344 54.761719 29.808594 L 52.808594 30.238281 C 52.269531 30.359375 51.929688 30.894531 52.046875 31.433594 C 52.152344 31.898438 52.566406 32.21875 53.023438 32.21875 C 53.09375 32.21875 53.167969 32.210938 53.238281 32.191406 L 55.191406 31.761719 C 55.730469 31.640625 56.070313 31.105469 55.953125 30.566406 C 55.859375 30.164063 55.539063 29.871094 55.15625 29.796875 Z M 4.105469 33.320313 C 6.535156 34.121094 9 34.804688 11.496094 35.34375 C 10.808594 38.394531 9.402344 41.308594 7.328125 43.96875 C 5.5625 40.761719 4.433594 37.152344 4.105469 33.320313 Z M 52.144531 35.441406 C 51.761719 35.496094 51.425781 35.777344 51.316406 36.175781 C 51.175781 36.707031 51.492188 37.257813 52.027344 37.402344 L 53.957031 37.921875 C 54.042969 37.941406 54.132813 37.953125 54.21875 37.953125 C 54.65625 37.953125 55.0625 37.660156 55.183594 37.214844 C 55.324219 36.679688 55.007813 36.128906 54.472656 35.984375 L 52.542969 35.46875 C 52.410156 35.433594 52.273438 35.425781 52.144531 35.441406 Z M 41.484375 35.554688 C 42.609375 40.859375 45.695313 45.746094 50.460938 49.6875 C 45.613281 54.734375 38.832031 57.902344 31.316406 57.992188 C 28.550781 51.265625 26.867188 44.222656 26.265625 36.984375 C 26.511719 36.988281 26.753906 37 27 37 C 31.894531 37 36.738281 36.511719 41.484375 35.554688 Z M 13.457031 35.730469 C 17.011719 36.394531 20.617188 36.808594 24.257813 36.941406 C 24.835938 44.167969 26.472656 51.199219 29.148438 57.929688 C 20.492188 57.339844 12.945313 52.65625 8.429688 45.796875 C 10.96875 42.726563 12.664063 39.316406 13.457031 35.730469 Z M 50.308594 40.507813 C 49.921875 40.460938 49.527344 40.640625 49.320313 41 C 49.042969 41.476563 49.207031 42.089844 49.6875 42.363281 L 51.417969 43.363281 C 51.574219 43.457031 51.75 43.5 51.917969 43.5 C 52.265625 43.5 52.597656 43.320313 52.78125 43 C 53.058594 42.523438 52.898438 41.910156 52.417969 41.636719 L 50.6875 40.636719 C 50.566406 40.566406 50.4375 40.523438 50.308594 40.507813 Z M 43.375 47.191406 C 43.246094 47.210938 43.121094 47.25 43 47.320313 C 42.519531 47.597656 42.359375 48.210938 42.636719 48.6875 L 43.636719 50.421875 C 43.820313 50.742188 44.15625 50.921875 44.5 50.921875 C 44.671875 50.921875 44.84375 50.875 45 50.785156 C 45.480469 50.507813 45.640625 49.898438 45.363281 49.421875 L 44.363281 47.6875 C 44.15625 47.328125 43.761719 47.144531 43.375 47.191406 Z M 38.574219 49.292969 C 38.445313 49.273438 38.308594 49.28125 38.175781 49.316406 C 37.640625 49.460938 37.324219 50.011719 37.46875 50.546875 L 37.984375 52.476563 C 38.105469 52.921875 38.507813 53.21875 38.953125 53.21875 C 39.035156 53.21875 39.125 53.207031 39.210938 53.183594 C 39.746094 53.039063 40.0625 52.492188 39.917969 51.957031 L 39.402344 50.027344 C 39.292969 49.625 38.957031 49.347656 38.574219 49.292969 Z\" /></svg>\n)\n\nexport const StudentsCenter = ({ width = '40', height = '40', className = \"\" }) => (\n  <svg width={width} height={height} className={className} fill=\"#00325B\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 80 80\"><path d=\"M 40 7.9433594 L 7 19.287109 L 7 27.359375 L 8.2988281 26.955078 L 9 26.736328 L 9 73 L 71 73 L 71 26.734375 L 73 27.359375 L 73 19.287109 L 40 7.9433594 z M 40 10.056641 L 71 20.712891 L 71 24.638672 L 40 14.953125 L 9 24.638672 L 9 20.712891 L 40 10.056641 z M 40 17.046875 L 69 26.109375 L 69 71 L 11 71 L 11 26.111328 L 40 17.046875 z M 40 29.998047 C 39.648146 29.998047 39.296292 30.063532 38.962891 30.193359 L 38.960938 30.193359 L 17.185547 38.691406 C 16.473363 38.968836 16 39.664025 16 40.427734 L 16 41.427734 L 16.310547 41.427734 C 16.519317 41.752335 16.81378 42.018853 17.1875 42.164062 L 17.199219 42.167969 L 19 42.818359 L 19 56.1875 C 17.842679 56.604868 17 57.706873 17 59 C 17 59.577909 17.174533 60.019371 17.378906 60.552734 C 17.583279 61.086097 17.84387 61.655406 18.101562 62.185547 C 18.616951 63.245828 19.128906 64.15625 19.128906 64.15625 L 20 65.708984 L 20.871094 64.15625 C 20.871094 64.15625 21.38305 63.245828 21.898438 62.185547 C 22.15613 61.655406 22.416721 61.086097 22.621094 60.552734 C 22.825467 60.019371 23 59.577909 23 59 C 23 57.706873 22.157321 56.604868 21 56.1875 L 21 43.539062 L 27 45.703125 L 27 52.214844 L 27.035156 52.214844 C 27.01616 52.309438 27 52.404655 27 52.505859 C 27 53.003017 27.252112 53.425363 27.53125 53.708984 C 27.810388 53.992606 28.133617 54.191984 28.501953 54.373047 C 29.238624 54.735173 30.175135 55.011976 31.310547 55.248047 C 33.581372 55.720189 36.630108 56 40 56 C 43.369892 56 46.418628 55.720189 48.689453 55.248047 C 49.824865 55.011976 50.761376 54.735173 51.498047 54.373047 C 51.866383 54.191984 52.189612 53.992606 52.46875 53.708984 C 52.747888 53.425363 53 53.003017 53 52.505859 C 53 52.404655 52.98384 52.309438 52.964844 52.214844 L 53 52.214844 L 53 45.703125 L 62.800781 42.166016 L 62.8125 42.162109 C 63.18551 42.016737 63.480738 41.750021 63.689453 41.425781 L 64 41.425781 L 64 40.425781 C 64 39.661542 63.525509 38.966496 62.8125 38.689453 L 41.037109 30.193359 C 40.703708 30.063532 40.351854 29.998047 40 29.998047 z M 40 32 C 40.105463 32 40.209949 32.019419 40.310547 32.058594 L 40.310547 32.056641 L 61.746094 40.421875 L 52.919922 43.603516 C 52.756195 42.952396 52.314299 42.389429 51.669922 42.123047 L 51.669922 42.125 C 50.021644 41.4417 45.871784 40.009766 40 40.009766 C 34.128216 40.009766 29.977548 41.441189 28.330078 42.123047 C 27.687061 42.390352 27.244198 42.952663 27.080078 43.603516 L 18.251953 40.421875 L 39.6875 32.058594 C 39.788098 32.019419 39.894537 32 40 32 z M 40 33 A 1 1 0 0 0 39 34 A 1 1 0 0 0 40 35 A 1 1 0 0 0 41 34 A 1 1 0 0 0 40 33 z M 40 37 A 1 1 0 0 0 39 38 A 1 1 0 0 0 40 39 A 1 1 0 0 0 41 38 A 1 1 0 0 0 40 37 z M 40 42.009766 C 45.546216 42.009766 49.440577 43.365909 50.904297 43.972656 C 50.952997 43.992786 51 44.045896 51 44.140625 L 51 50.419922 C 50.352367 50.161141 49.585055 49.947929 48.689453 49.761719 C 46.418628 49.289576 43.369892 49.009766 40 49.009766 C 36.630108 49.009766 33.581372 49.289576 31.310547 49.761719 C 30.414945 49.947929 29.647633 50.161141 29 50.419922 L 29 44.140625 C 29 44.045905 29.047226 43.991664 29.097656 43.970703 C 30.562954 43.364358 34.455045 42.009766 40 42.009766 z M 40 51.009766 C 43.257525 51.009766 46.208929 51.289833 48.28125 51.720703 C 49.317411 51.936138 50.13744 52.196771 50.615234 52.431641 C 50.679374 52.463171 50.679734 52.474246 50.730469 52.503906 C 50.679449 52.533766 50.679869 52.546355 50.615234 52.578125 C 50.13744 52.812995 49.317411 53.075581 48.28125 53.291016 C 46.208929 53.72188 43.257525 54 40 54 C 36.742475 54 33.791071 53.721886 31.71875 53.291016 C 30.682589 53.075581 29.86256 52.812995 29.384766 52.578125 C 29.320136 52.546355 29.320546 52.533766 29.269531 52.503906 C 29.320271 52.474246 29.320631 52.463171 29.384766 52.431641 C 29.86256 52.196771 30.682589 51.936138 31.71875 51.720703 C 33.791071 51.289833 36.742475 51.009766 40 51.009766 z M 20 58 C 20.56503 58 21 58.43497 21 59 C 21 58.97459 20.92453 59.392597 20.753906 59.837891 C 20.583279 60.283184 20.34387 60.812063 20.101562 61.310547 C 20.050892 61.414793 20.050182 61.405247 20 61.505859 C 19.94982 61.405244 19.94911 61.414789 19.898438 61.310547 C 19.65613 60.812063 19.416721 60.283184 19.246094 59.837891 C 19.075467 59.392597 19 58.974591 19 59 C 19 58.43497 19.43497 58 20 58 z\" /></svg>\n)\nexport const Exit = ({ width = '15', height = '15', className = \"\" }) => (\n  <svg width={width} height={height} className={className} fill=\"#00325B\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512.001 512.001\">\n    <path d=\"M284.286 256.002L506.143 34.144c7.811-7.811 7.811-20.475 0-28.285-7.811-7.81-20.475-7.811-28.285 0L256 227.717 34.143 5.859c-7.811-7.811-20.475-7.811-28.285 0-7.81 7.811-7.811 20.475 0 28.285l221.857 221.857L5.858 477.859c-7.811 7.811-7.811 20.475 0 28.285a19.938 19.938 0 0014.143 5.857 19.94 19.94 0 0014.143-5.857L256 284.287l221.857 221.857c3.905 3.905 9.024 5.857 14.143 5.857s10.237-1.952 14.143-5.857c7.811-7.811 7.811-20.475 0-28.285L284.286 256.002z\" />\n  </svg>\n)\n\nexport const NotFound = () => (\n  <svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"user-lock\" className=\"svg-inline--fa fa-user-lock fa-w-20\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\">\n    <path fill=\"#00325B\" d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 128c-40.2 0-78 17.7-103.8 48.6-8.5 10.2-7.1 25.3 3.1 33.8 10.2 8.4 25.3 7.1 33.8-3.1 16.6-19.9 41-31.4 66.9-31.4s50.3 11.4 66.9 31.4c8.1 9.7 23.1 11.9 33.8 3.1 10.2-8.5 11.5-23.6 3.1-33.8C326 321.7 288.2 304 248 304z\">\n    </path>\n  </svg>\n)\n\nexport const View360 = ({ width = '32', height = '32', className = \"\" }) => (\n  <svg fill=\"#043056\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\" width={width} height={height} className={className}><path d=\"M 44 9 C 42.343 9 41 10.343 41 12 C 41 13.657 42.343 15 44 15 C 45.657 15 47 13.657 47 12 C 47 10.343 45.657 9 44 9 z M 44 11 C 44.552 11 45 11.448 45 12 C 45 12.552 44.552 13 44 13 C 43.448 13 43 12.552 43 12 C 43 11.448 43.448 11 44 11 z M 14.207031 12.964844 C 11.784031 12.964844 10.223484 14.287719 10.146484 16.386719 L 12.292969 16.386719 C 12.353969 15.425719 13.067531 14.818359 14.144531 14.818359 C 15.229531 14.818359 15.921875 15.387297 15.921875 16.279297 C 15.921875 17.186297 15.206344 17.800781 14.152344 17.800781 L 12.798828 17.800781 L 12.798828 19.53125 L 14.175781 19.53125 C 15.421781 19.53125 16.183594 20.130609 16.183594 21.099609 C 16.183594 22.045609 15.375844 22.699219 14.214844 22.699219 C 13.022844 22.699219 12.229156 22.107922 12.160156 21.169922 L 9.9394531 21.169922 C 10.039453 23.260922 11.714406 24.630859 14.191406 24.630859 C 16.721406 24.630859 18.552734 23.223344 18.552734 21.277344 C 18.552734 19.817344 17.598172 18.801813 16.076172 18.632812 L 16.076172 18.494141 C 17.314172 18.240141 18.121094 17.239078 18.121094 15.955078 C 18.121094 14.210078 16.483031 12.964844 14.207031 12.964844 z M 25.019531 12.964844 C 22.127531 12.964844 20.390625 15.194906 20.390625 18.878906 C 20.390625 20.401906 20.705313 21.677047 21.320312 22.623047 C 22.082312 23.923047 23.374422 24.630859 24.982422 24.630859 C 27.466422 24.630859 29.226562 22.992547 29.226562 20.685547 C 29.226563 18.562547 27.681219 17.001953 25.574219 17.001953 C 24.282219 17.001953 23.251141 17.592672 22.744141 18.638672 L 22.605469 18.638672 C 22.559469 16.339672 23.481906 14.871094 25.003906 14.871094 C 25.872906 14.871094 26.56525 15.3315 26.78125 16.0625 L 29.080078 16.0625 C 28.764078 14.2095 27.126531 12.964844 25.019531 12.964844 z M 35.59375 12.964844 C 32.86375 12.964844 31.1875 15.101344 31.1875 18.777344 C 31.1875 22.461344 32.84875 24.630859 35.59375 24.630859 C 38.33875 24.630859 39.998047 22.453156 39.998047 18.785156 C 39.998047 15.102156 38.31575 12.964844 35.59375 12.964844 z M 35.59375 14.863281 C 36.86175 14.863281 37.646484 16.193344 37.646484 18.777344 C 37.646484 21.377344 36.86975 22.738281 35.59375 22.738281 C 34.32575 22.738281 33.541016 21.369344 33.541016 18.777344 C 33.541016 16.201344 34.33275 14.863281 35.59375 14.863281 z M 24.964844 18.792969 C 26.126844 18.792969 26.972656 19.622906 26.972656 20.753906 C 26.972656 21.869906 26.096031 22.723656 24.957031 22.722656 C 23.819031 22.722656 22.949219 21.861469 22.949219 20.730469 C 22.949219 19.623469 23.802844 18.792969 24.964844 18.792969 z M 42.800781 21.316406 A 1.0001 1.0001 0 0 0 42.443359 23.228516 C 44.268049 24.075795 45.698524 25.050491 46.632812 26.046875 C 47.567102 27.043259 48 28.017889 48 29 C 48 30.0565 47.49681 31.11112 46.412109 32.179688 C 45.327409 33.248255 43.674151 34.278354 41.585938 35.148438 C 37.409511 36.888604 31.514914 38 25 38 C 18.485086 38 12.590489 36.888604 8.4140625 35.148438 C 6.3258493 34.278354 4.6725909 33.248255 3.5878906 32.179688 C 2.5031903 31.11112 2 30.0565 2 29 C 2 28.047369 2.4052409 27.104226 3.2832031 26.136719 C 4.1611654 25.169211 5.5078474 24.218608 7.2324219 23.382812 A 1.0002021 1.0002021 0 1 0 6.3613281 21.582031 C 4.4729026 22.497236 2.9200221 23.559773 1.8027344 24.791016 C 0.68544659 26.022258 -1.4802974e-16 27.462631 0 29 C 0 30.705 0.83938775 32.281255 2.1835938 33.605469 C 3.5277996 34.929682 5.3896196 36.054599 7.6445312 36.994141 C 12.154355 38.873223 18.259914 40 25 40 C 31.740086 40 37.845645 38.873223 42.355469 36.994141 C 44.610381 36.054599 46.4722 34.929682 47.816406 33.605469 C 49.160612 32.281255 50 30.705 50 29 C 50 27.415111 49.271507 25.93585 48.091797 24.677734 C 46.912087 23.419619 45.27642 22.337784 43.287109 21.414062 A 1.0001 1.0001 0 0 0 42.800781 21.316406 z\" /></svg>\n)\n\nexport const Camera = ({ width = '32', height = '32', className = \"\" }) => (\n  <svg fill=\"#043056\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\" width={width} height={height} className={className}><path d=\"M 17 24 C 12.041484 24 8 28.041484 8 33 L 8 67 C 8 71.958516 12.041484 76 17 76 L 62 76 C 66.958516 76 71 71.958516 71 67 L 71 63.082031 L 83.279297 72.904297 C 84.16601 73.614668 85.267472 74 86.402344 74 L 91 74 A 1.0001 1.0001 0 0 0 92 73 L 92 27 A 1.0001 1.0001 0 0 0 91 26 L 86.402344 26 C 85.267472 26 84.166251 26.38614 83.279297 27.095703 L 71 36.917969 L 71 33 C 71 28.041484 66.958516 24 62 24 L 17 24 z M 17 26 L 62 26 C 65.877484 26 69 29.122516 69 33 L 69 67 C 69 70.877484 65.877484 74 62 74 L 17 74 C 13.122516 74 10 70.877484 10 67 L 10 33 C 10 29.122516 13.122516 26 17 26 z M 86.402344 28 L 90 28 L 90 72 L 86.402344 72 C 86.266935 72 86.132934 71.98487 86 71.966797 L 86 40.5 A 0.50005 0.50005 0 0 0 85.492188 39.992188 A 0.50005 0.50005 0 0 0 85 40.5 L 85 71.646484 C 84.835604 71.559147 84.676212 71.459495 84.529297 71.341797 L 71 60.519531 L 71 39.480469 L 84.529297 28.658203 C 84.676699 28.540281 84.835544 28.440881 85 28.353516 L 85 32.5 A 0.50005 0.50005 0 1 0 86 32.5 L 86 28.033203 C 86.132836 28.015175 86.266935 28 86.402344 28 z M 14.492188 33.992188 A 0.50005 0.50005 0 0 0 14 34.5 L 14 35.5 A 0.50005 0.50005 0 1 0 15 35.5 L 15 34.5 A 0.50005 0.50005 0 0 0 14.492188 33.992188 z M 85.492188 34.992188 A 0.50005 0.50005 0 0 0 85 35.5 L 85 37.5 A 0.50005 0.50005 0 1 0 86 37.5 L 86 35.5 A 0.50005 0.50005 0 0 0 85.492188 34.992188 z M 14.492188 38.992188 A 0.50005 0.50005 0 0 0 14 39.5 L 14 43.5 A 0.50005 0.50005 0 1 0 15 43.5 L 15 39.5 A 0.50005 0.50005 0 0 0 14.492188 38.992188 z M 14.492188 45.992188 A 0.50005 0.50005 0 0 0 14 46.5 L 14 65.5 A 0.50005 0.50005 0 1 0 15 65.5 L 15 46.5 A 0.50005 0.50005 0 0 0 14.492188 45.992188 z\" /></svg>\n)\n\nexport const Gallery = ({ width = '32', height = '32', className = \"\" }) => (\n  <svg fill=\"#043056\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\" width={width} height={height} className={className}><path d=\"M 27 19 C 20.384534 19 15 24.384534 15 31 L 15 69 C 15 75.615466 20.384534 81 27 81 L 73 81 C 79.615466 81 85 75.615466 85 69 L 85 31 C 85 24.384534 79.615466 19 73 19 L 27 19 z M 27 21 L 73 21 C 78.534534 21 83 25.465466 83 31 L 83 69 C 83 74.534534 78.534534 79 73 79 L 27 79 C 21.465466 79 17 74.534534 17 69 L 17 31 C 17 25.465466 21.465466 21 27 21 z M 27 24 C 23.139805 24 20 27.139805 20 31 L 20 56.429688 A 0.50005 0.50005 0 0 0 20 56.591797 L 20 69 C 20 72.860195 23.139805 76 27 76 L 67.429688 76 A 0.50005 0.50005 0 0 0 67.591797 76 L 73 76 C 76.860195 76 80 72.860195 80 69 L 80 64.595703 A 0.50005 0.50005 0 0 0 80 64.425781 L 80 53.5 A 0.50005 0.50005 0 1 0 79 53.5 L 79 63.292969 L 66.558594 50.851562 C 65.991762 50.284731 65.243958 50 64.5 50 C 63.756042 50 63.008238 50.284731 62.441406 50.851562 L 53 60.292969 L 36.558594 43.851562 C 35.991762 43.284731 35.243958 43 34.5 43 C 33.756042 43 33.008238 43.284731 32.441406 43.851562 L 21 55.292969 L 21 31 C 21 27.680195 23.680195 25 27 25 L 68.5 25 A 0.50005 0.50005 0 1 0 68.5 24 L 27 24 z M 66.5 32 C 64.708334 32 63.301922 32.689878 62.376953 33.730469 C 61.451984 34.77106 61 36.138889 61 37.5 C 61 38.861111 61.451984 40.22894 62.376953 41.269531 C 63.301922 42.310122 64.708334 43 66.5 43 C 69.531645 43 72 40.531643 72 37.5 C 72 34.468357 69.531645 32 66.5 32 z M 66.5 33 C 68.991206 33 71 35.008796 71 37.5 C 71 39.991204 68.991206 42 66.5 42 C 64.958334 42 63.864743 41.439878 63.123047 40.605469 C 62.38135 39.77106 62 38.638889 62 37.5 C 62 36.361111 62.38135 35.22894 63.123047 34.394531 C 63.864743 33.560122 64.958334 33 66.5 33 z M 79.492188 40.992188 A 0.50005 0.50005 0 0 0 79 41.5 L 79 43.5 A 0.50005 0.50005 0 1 0 80 43.5 L 80 41.5 A 0.50005 0.50005 0 0 0 79.492188 40.992188 z M 34.5 44 C 34.990042 44 35.476395 44.183426 35.851562 44.558594 L 52.576172 61.283203 A 0.50005 0.50005 0 0 0 52.720703 61.425781 L 66.292969 75 L 27 75 C 23.680195 75 21 72.319805 21 69 L 21 56.707031 L 33.148438 44.558594 C 33.523605 44.183426 34.009958 44 34.5 44 z M 79.492188 45.992188 A 0.50005 0.50005 0 0 0 79 46.5 L 79 50.5 A 0.50005 0.50005 0 1 0 80 50.5 L 80 46.5 A 0.50005 0.50005 0 0 0 79.492188 45.992188 z M 64.5 51 C 64.990042 51 65.476395 51.183426 65.851562 51.558594 L 79 64.707031 L 79 69 C 79 72.319805 76.319805 75 73 75 L 67.707031 75 L 53.707031 61 L 63.148438 51.558594 C 63.523605 51.183426 64.009958 51 64.5 51 z\" /></svg>\n)\n\nexport const Stop = ({ width = '35', height = '35', className = \"\" }) => (\n  <svg width={width} height={height} className={className} fill=\"#fff\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n    <path d=\"M256 0C114.617 0 0 114.617 0 256s114.617 256 256 256 256-114.617 256-256S397.383 0 256 0zm80 320c0 8.836-7.156 16-16 16H192c-8.844 0-16-7.164-16-16V192c0-8.836 7.156-16 16-16h128c8.844 0 16 7.164 16 16v128z\" />\n  </svg>\n)\n\nexport const Play = ({ width = '35', height = '35', className = \"\" }) => (\n  <svg width={width} height={height} className={className} fill=\"#fff\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n    <path d=\"M256 0C114.617 0 0 114.617 0 256s114.617 256 256 256 256-114.617 256-256S397.383 0 256 0zm88.484 269.57l-128 80A16.011 16.011 0 01208 352c-2.672 0-5.344-.664-7.75-2.008A15.985 15.985 0 01192 336V176c0-5.82 3.156-11.172 8.25-13.992 5.047-2.844 11.281-2.656 16.234.422l128 80c4.672 2.93 7.516 8.055 7.516 13.57s-2.844 10.641-7.516 13.57z\" />\n  </svg>\n)","import React from \"react\";\n\ninterface IMenuContext {\n  showMenu: (slug: string) => void\n  closeMenu: () => void\n}\n\nconst MenuContext = React.createContext<IMenuContext>({} as IMenuContext);\n\nexport default MenuContext;","import React from 'react'\nimport { NavLink, Link } from 'react-router-dom'\n\nimport SimpleBar from 'simplebar-react';\nimport 'simplebar/dist/simplebar.min.css';\n\nimport { Tour, Wayfinding, YourPath, StudentsCenter, ArtsCenter, Athletics } from '../../../content/svgIcons'\nimport Logo from '../../../assets/Endicott.svg'\n\nimport { BuildingTourKeys } from '../../../common/models/WayPoints';\nimport MenuContext from '../../../context/menu-context';\n\nconst Sidebar: React.SFC = () => {\n  const context = React.useContext(MenuContext)\n  const { showMenu, closeMenu } = context\n\n  const handleMenuChanges = (e: React.MouseEvent, slug: string, state: boolean): void => {\n    e.preventDefault()\n    state ? showMenu(slug) : closeMenu()\n  }\n\n  const isActive = (match: any, location: any): boolean => {\n    if (match?.url === '/buildings') {\n      return ![BuildingTourKeys.artsCenter as string, BuildingTourKeys.athletics as string].some(i => location.pathname.includes(i))\n    } else {\n      return false\n    }\n  }\n\n  const linkClassNames = \"nav-link d-flex flex-column align-items-center justify-content-center\"\n\n  return (\n    <aside className=\"position-fixed w-100\">\n      <SimpleBar style={{ maxHeight: '100vh' }} forceVisible=\"y\">\n        <nav className=\"d-flex flex-row flex-lg-column\">\n          <ul className=\"nav flex-row justify-content-between flex-lg-column pt-lg-3 w-100 px-3 px-lg-0\">\n            <li className=\"text-center nav-item d-none d-lg-inline\">\n              <Link className=\"nav-link navbar-brand mr-0\" to=\"/\" onMouseOver={() => closeMenu()}>\n                <img src={Logo} alt=\"Endicott logo\" />\n              </Link>\n            </li>\n            <li className=\"text-center nav-item hasSubMenu\">\n              <NavLink activeClassName='is-active' to=\"/campus-tour/\" className={linkClassNames}\n                onClick={e => handleMenuChanges(e, 'campusTour', true)}\n                onMouseOver={e => handleMenuChanges(e, 'campusTour', true)}\n              >\n                <Tour className={\"mb-1\"} />\n                <span className=\"text-primary\">Campus Tour</span>\n              </NavLink>\n            </li>\n            <li className=\"text-center nav-item\">\n              <NavLink activeClassName='is-active' to=\"/wayfinding\" className={linkClassNames}\n                onClick={e => closeMenu()}\n                onMouseOver={e => closeMenu()}\n              >\n                <Wayfinding className={\"mb-1\"} />\n                <span className=\"text-primary\">Wayfinding</span>\n              </NavLink>\n            </li>\n            <li className=\"text-center nav-item hasSubMenu\">\n              <NavLink activeClassName='is-active' to=\"/your-path/\" className={linkClassNames}\n                onMouseOver={e => handleMenuChanges(e, 'yourPath', true)}\n                onClick={e => handleMenuChanges(e, 'yourPath', true)}\n              >\n                <YourPath className={\"mb-1\"} />\n                <span className=\"text-primary\">Your Path</span>\n              </NavLink>\n            </li>\n            <li className=\"text-center nav-item hasSubMenu\">\n              <NavLink activeClassName='is-active' to=\"/buildings/\" className={linkClassNames}\n                onMouseOver={e => handleMenuChanges(e, 'studentLife', true)}\n                onClick={e => handleMenuChanges(e, 'studentLife', true)}\n                isActive={(match, location) => isActive(match, location)}\n              >\n                <StudentsCenter className={\"mb-1\"} />\n                <span className=\"text-primary\">Student Life</span>\n              </NavLink>\n            </li>\n            <li className=\"text-center nav-item\">\n              <NavLink activeClassName='is-active' to={`/buildings/${BuildingTourKeys.artsCenter}`} className={linkClassNames}\n                onClick={e => closeMenu()}\n                onMouseOver={e => closeMenu()}\n              >\n                <ArtsCenter className={\"mb-1\"} />\n                <span className=\"text-primary\">Arts</span>\n              </NavLink>\n            </li>\n            <li className=\"text-center nav-item\">\n              <NavLink activeClassName='is-active' to={`/buildings/${BuildingTourKeys.athletics}`} className={linkClassNames}\n                onClick={e => closeMenu()}\n                onMouseOver={e => closeMenu()}\n              >\n                <Athletics className={\"mb-1\"} />\n                <span className=\"text-primary\">Athletics</span>\n              </NavLink>\n            </li>\n          </ul>\n          <small className=\"text-center d-none d-lg-block text-primary mt-auto\">© { new Date().getFullYear() } Endicott College</small>\n        </nav>\n      </SimpleBar>\n    </aside>\n  )\n}\n\nexport default Sidebar\n","import ILoadIndicator from \"../../common/interfaces/ILoadIndicator\";\n\nexport default class LoadIndicatorService implements ILoadIndicator{\n  observers: any;\n\n  private static instance: LoadIndicatorService;\n\n  constructor() {\n    this.observers = [];\n  }\n\n  static getInstance() {\n    if (!LoadIndicatorService.instance) {\n      LoadIndicatorService.instance = new LoadIndicatorService();\n    }\n    return LoadIndicatorService.instance;\n  }\n\n  subscribe(f:(visible: boolean) => void): void {\n    this.observers.push(f)\n  }\n\n  notify(status: boolean) {\n    this.observers.forEach((observer: any) => observer(status))\n  }\n}\n\n","export enum MenuTypes {\n  path = 'yourPath',\n  campus = 'campusTour',\n  student = 'studentLife',\n  uncategorized = 'uncategorized'\n}","import React from \"react\";\nimport ILoadIndicator from \"../interfaces/ILoadIndicator\";\nimport LoadingService from '../utils/LoadingService'\n\nexport default class BaseComponent<P, S> extends React.Component<P, S> {\n  protected loadIndicator: ILoadIndicator = LoadingService.getInstance();\n  \n  constructor(props: P) {\n    super(props)\n    this.state = this.getInitialState();\n  }\n\n  getInitialState(): S {\n    return {} as S;\n  }\n\n  protected showLoading = (show: boolean): any => this.loadIndicator.notify(show);\n}","import React from 'react'\n\nconst FlyMenuExternalLinks: React.FC = () => \n  <ul className=\"list-unstyled flyMenu__externalLinks\">\n    <li>\n      <a href=\"https://apply.endicott.edu/account/register\" target=\"_blank\" rel=\"noopener noreferrer\">Learn More</a>\n    </li>\n    <li>\n      <a href=\"https://www.endicott.edu/admission/plan-a-visit\" target=\"_blank\" rel=\"noopener noreferrer\">Schedule A Visit</a>\n    </li>\n    <li>\n      <a href=\"https://apply.endicott.edu/apply/\" target=\"_blank\" rel=\"noopener noreferrer\">Apply Online</a>\n    </li>\n  </ul>\n\nexport default FlyMenuExternalLinks\n","import React from 'react'\nimport { MenuItem } from '../../common/models/Category'\nimport { NavLink } from 'react-router-dom'\nimport { MenuTypes } from '../../common/models/Menu'\n\ntype Props = {\n  links: MenuItem[]\n  onClose: () => void\n  menuType: string\n}\n\nconst FlyMenuItems: React.FC<Props> = ({ links, onClose, menuType }) => {\n\n  const baseUrl = (menuType: string) => {\n    switch (menuType) {\n      case MenuTypes.path:\n        return '/your-path'\n      case MenuTypes.student:\n        return '/buildings'\n      case MenuTypes.campus:\n        return '/campus-tour'\n      default:\n        return '/your-path'\n    }\n  }\n\n  return (\n    <ul className=\"nav flyMenu__menuItems flex-column flex-nowrap\">\n      {\n        links && links.map((link: MenuItem) => \n          !link.showInFly &&\n           (\n            <li className={`nav-item ${link.inlineItems ? 'd-flex inline-links' : ''}`} key={link.title} onClick={() => onClose()}>\n              { link.externalLink ? <a className=\"nav-link text-primary text-decoration-none pl-0\" href={link.externalLink} target=\"_blank\" rel=\"noopener noreferrer\">{link.title}</a> \n              : <>\n                {link.inlineItems ? (\n                  link.inlineItems.map(item => (\n                    <NavLink activeClassName=\"is-active\" exact to={`${baseUrl(menuType)}/${item.slug}`} className=\"nav-link text-primary text-decoration-none pl-0\" >\n                      {item.title}\n                    </NavLink>\n                  ))\n                ) : (\n                    <NavLink activeClassName=\"is-active\" exact to={`${baseUrl(menuType)}/${link.slug}`} className=\"nav-link text-primary text-decoration-none pl-0\" >\n                      {link.title}\n                    </NavLink>\n                  )}\n                </>\n                }\n            </li>\n           )\n        )\n      }\n    </ul>\n  )\n}\n\nexport default FlyMenuItems\n","import React from 'react'\nimport BaseComponent from '../../common/base-classes/BaseComponent'\nimport SimpleBar from 'simplebar-react'\nimport { IFlyMenuBody } from '../../common/models/Category'\nimport { Exit } from '../../content/svgIcons'\nimport FlyMenuExternalLinks from './fly-menu-external-links'\nimport FlyMenuItems from './fly-menu-items'\nimport MenuContext from '../../context/menu-context'\n\ntype FlyMenuState = {}\n\ntype FlyMenuProps = {\n  isOpen: boolean;\n  data: IFlyMenuBody\n  activeMenu: string;\n}\n\nexport default class FlyMenu extends BaseComponent<FlyMenuProps, FlyMenuState> {\n  static contextType = MenuContext\n\n  render() {\n    const { isOpen, data, activeMenu } = this.props;\n    const { closeMenu } = this.context\n\n    return (\n      <div\n        className={`flyMenu position-fixed ${isOpen && 'flyMenu--show'}`}\n        onMouseLeave={() => closeMenu()}\n      >\n        <SimpleBar style={{ maxHeight: '100vh' }} >\n          <nav className=\"position-relative\">\n            <button className=\"btn btn-transparent position-absolute flyMenu__close\"\n              onClick={() => closeMenu()}\n            >\n              <Exit />\n            </button>\n            <div className=\"flyMenu__title\">\n              <h2 className=\"text-primary\">{data.title}</h2>\n            </div>\n            <div className=\"flyMenu__info\">\n              <p className=\"text-primary mb-0\">\n                {data.description}\n              </p>\n            </div>\n            <FlyMenuItems\n              links={data.menuItems}\n              onClose={() => closeMenu()}\n              menuType={activeMenu}\n            />\n            <FlyMenuExternalLinks />\n          </nav>\n        </SimpleBar>\n      </div>\n    )\n  }\n}\n","export type MenuItem = {\n  title: string;\n  slug: string;\n  categoryName?: string;\n  description?: string;\n  externalLink?: string;\n  showInFly?: boolean;\n  inlineItems?: Array<{\n    title: string;\n    slug: string;\n  }>;\n};\n\nexport interface IFlyMenu {\n  [index: string]: IFlyMenuBody;\n}\n\nexport interface IFlyMenuBody {\n  [index: string]: any;\n  title: string;\n  description: string;\n  menuItems: MenuItem[];\n}\n\nexport enum Categories {\n  studentLife = \"Student Life\",\n  visualAndArts = \"Visual & Performing Arts\",\n  scienceAndtechnology = \"Science & Technology\",\n  education = \"Education\",\n  communications = \"Social Sciences, Communication & Humanities\",\n  business = \"Business\",\n  sport = \"Sport Science\",\n  nursing = \"Cummings School of Nursing and Health Sciences\",\n  hospitality = \"Hospitality\",\n  softballStadium = \"Softball Stadium\",\n  sportsCenter = \"Sports Center\"\n}\n","import { IFlyMenu, Categories } from \"../common/models/Category\";\nimport { MenuTypes } from \"../common/models/Menu\";\nimport { CampusTourKeys, BuildingTourKeys } from \"../common/models/WayPoints\";\n\nexport const flyMenuData: IFlyMenu = {\n  [MenuTypes.path]: {\n    title: \"Choose Your Path…\",\n    description:\n      \"Interested in a particular field of study? Experience the possibilities by viewing areas of our campus by your school of study. \",\n    menuItems: [\n      {\n        title: \"Science & Technology\",\n        slug: \"science-technology\",\n        categoryName: Categories.scienceAndtechnology,\n        description:\n          \"The School Science & Technology provides opportunities to develop skills in independent and critical thinking, effective communication, and problem-solving.\",\n      },\n      {\n        title: \"Business\",\n        slug: \"business\",\n        categoryName: Categories.business,\n        description:\n          \"The Curtis L. Gerrish School of Business’ entrepreneurial spirit is rooted in academics and experiential learning with an eye toward the global business world.\",\n      },\n      {\n        title: \"Social Sciences, Communication & Humanities\",\n        slug: \"communication\",\n        categoryName: Categories.communications,\n        description:\n          \"he School of Social Science, Communication, and Humanities, teaches students to think critically and creatively, communicate effectively orally and in writing, and make connections across a wide range of disciplines.\",\n      },\n      {\n        title: \"Education\",\n        slug: \"education\",\n        categoryName: Categories.education,\n        description:\n          \"Through a deep understanding of best practices and theories, the School of Education prepares tomorrow’s educators to make a difference in the world.\",\n      },\n      {\n        title: \"Cummings School of Nursing and Health Sciences\",\n        slug: \"cummings-school-of-nursing-and-health-sciences\",\n        categoryName: Categories.nursing,\n        description:\n          \"In the School of Nursing, students learn the skills needed for fulfilling careers in the complex and ever-changing field of health care.\",\n      },\n      {\n        title: \"Sport Science\",\n        slug: \"sport-sciences\",\n        categoryName: Categories.sport,\n        description:\n          \"Through rigorous academics, faculty mentoring, and clinical experiences, the School of Sport Science prepares students for the competitive industry.\",\n      },\n      {\n        title: \"Student Life\",\n        slug: \"student-life\",\n        categoryName: Categories.studentLife,\n        description:\n          \"Welcome to the best years of your life. At Endicott, our student affairs, residence life, and campus activities staff are here to help you at every turn.\",\n      },\n      {\n        title: \"Visual & Performing Arts\",\n        slug: \"visual-and-performing-arts\",\n        categoryName: Categories.visualAndArts,\n        description:\n          \"The School of Visual & Performing arts incorporates dynamic arts and design education, leading to new ways of thinking—critically, thoughtfully, and creatively. \",\n      },\n      {\n        title: \"Institute for Applied Behavioral Science\",\n        slug: \"institute-for-applied-behavioral-sciences\",\n        description: \"\",\n        externalLink: \"https://www.endicott.edu/academics/schools/institute-for-applied-behavioral-science\"\n      },\n    ],\n  },\n  [MenuTypes.campus]: {\n    title: \"Campus Tour\",\n    description:\n      \"Enjoy our campus tour—feel free to explore our campus and transport yourself a number of different ways. \",\n    menuItems: [\n      {\n        title: \"Welcome\",\n        slug: CampusTourKeys.frontGate + '?intro=true',\n      },\n      {\n        title: \"Department of Public Safety & Police\",\n        slug: CampusTourKeys.policeBuilding,\n      },\n      {\n        title: \"Callahan Center\",\n        slug: CampusTourKeys.callahanCenter,\n      },\n      {\n        title: \"Center for Belonging\",\n        slug: CampusTourKeys.centerForBelonging,\n      },\n      {\n        title: \"Curtis L. Gerrish School of Business\",\n        slug: CampusTourKeys.gerrishSchool,\n      },\n      {\n        title: \"Ginger Judge Science Center\",\n        slug: CampusTourKeys.gingerJudge,\n      },\n      // {\n      //   title: \"Endicott Lakes/Amphitheater\",\n      //   slug: CampusTourKeys.amphitheater,\n      // },\n      {\n        title: \"Melissa Hempstead '69 Stadium\",\n        slug: CampusTourKeys.hempsteadStadium,\n      },\n      {\n        title: \"North Field\",\n        slug: CampusTourKeys.northField,\n      },\n      {\n        title: \"Post Sport Science & Fitness Center\",\n        slug: CampusTourKeys.postSportScience,\n      },\n      {\n        title: \"Cummings School of Nursing and Health Sciences\",\n        slug: CampusTourKeys.nursing,\n      },\n      {\n        title: \"Samuel C. Wax Academic Center and Hempstead Commons\",\n        slug: CampusTourKeys.waxAcacemic,\n      },\n      // {\n      //   title: \"Softball Complex\",\n      //   slug: CampusTourKeys.softballComplex,\n      // },\n      {\n        title: \"Diane M. Halle Library\",\n        slug: CampusTourKeys.dianeLibrary,\n      },\n      {\n        title: \"Walter J. Manninen Center for the Arts\",\n        slug: CampusTourKeys.centerForArts,\n      },\n      {\n        title: \"The Lodge\",\n        slug: CampusTourKeys.theLodge,\n      },\n      {\n        title: \"First Year Quad\",\n        slug: CampusTourKeys.firstYearQuad,\n      },\n      {\n        title: \"Misselwood\",\n        slug: CampusTourKeys.misselwood,\n      },\n      {\n        title: \"College Hall\",\n        slug: CampusTourKeys.collegeHall,\n      },\n      {\n        title: \"Mingo Beach\",\n        slug: CampusTourKeys.mingoBeach,\n      },\n      {\n        inlineItems: [\n          {\n            title: \"Stoneridge\",\n            slug: CampusTourKeys.stoneridge,\n          },\n          {\n            title: \"Marblehead\",\n            slug: CampusTourKeys.marblehead,\n          },\n          {\n            title: \"Bayview\",\n            slug: CampusTourKeys.bayview,\n          },\n        ],\n        title: \"\",\n        slug: \"\",\n      },\n      // {\n      //   title: \"Hamilton/Wenham\",\n      //   slug: CampusTourKeys.hamilton,\n      // },\n      // {\n      //   title: \"Tupper Lawn\",\n      //   slug: CampusTourKeys.tupperLawn,\n      // }\n    ],\n  },\n  [MenuTypes.student]: {\n    title: \"Student Life\",\n    description:\n      \"Welcome to the best years of your life. At Endicott, you'll find camaraderie and community at every turn on campus.\",\n    menuItems: [\n      {\n        title: \"Callahan Center\",\n        slug: BuildingTourKeys.callahanCenter,\n        description:\n          \"The Callahan Center is a hub for student activities. It houses dining facilities, health and counseling services, a mail center, the bookstore, and the Office of Student Affairs. \",\n      },\n      {\n        title: \"Center for Belonging\",\n        slug: BuildingTourKeys.centerForBelonging,\n        description:\n          \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, \",\n      },\n      {\n        title: \"Walter J. Manninen Center for the Arts\",\n        slug: BuildingTourKeys.manninenCenterForArts,\n        description:\n          \"The Manninen Center is where creativity blooms. It includes outstanding instructional space and venues for performance, exhibition, and presentations.\",\n      },\n      {\n        title: \"Diane M. Halle Library\",\n        slug: BuildingTourKeys.halleLibrarya,\n        description:\n          \"The Halle Library is a major academic support unit for students and a hub of information resources along with a gathering place for students, staff, and faculty alike.\",\n      },\n      {\n        title: \"Samuel C. Wax Academic Center\",\n        slug: BuildingTourKeys.waxAcademicCenter,\n        description:\n          \"The Wax Academic Center is home to the School of Communication, School of Education, School of Arts & Sciences (humanities and social sciences programs), and Endicott’s Van Loan School of Professional Studies.\",\n      },\n      {\n        title: \"Hempstead Commons\",\n        slug: BuildingTourKeys.hempsteadCommons,\n        description:\n          \"Hempstead Commons was completed in late 2020 and features seminar rooms, a cafe, and the Cleary Lecture Hall.\",\n      },\n      {\n        title: \"Curtis L. Gerrish School of Business\",\n        slug: BuildingTourKeys.businessSchool,\n        description:\n          \"The Curtis L. Gerrish School of Business exemplifies Endicott’s model of collaborative learning, as it mirrors the innovative practices characteristic of today’s corporate settings.\",\n      },\n      {\n        title: \"Ginger Judge Science Center\",\n        slug: BuildingTourKeys.judgeCenter,\n        description:\n          \"The Judge Science Center contains modern science laboratories that include a next-generation DNA sequencing center, virtual dissection table, a 3D printing Makerspace, and more.\",\n      },\n      {\n        title: \"Post Sport Science & Fitness Center\",\n        slug: BuildingTourKeys.postCenter,\n        description:\n          \"The Post Center is a 90,000 square-foot facility that houses the Sport Science, Fitness, and Athletic Training Center. \",\n      },\n      {\n        title: \"Raymond J. Bourque Arena\",\n        slug: BuildingTourKeys.bourqueArena,\n        description:\n          \"The Raymond J. Bourque Arena is home to our men's and women's ice hockey programs that have risen to national prominence in only a few years of NCAA Division III eligibility.\",\n      },\n      {\n        title: \"Cummings School of Nursing and Health Sciences\",\n        slug: BuildingTourKeys.nursingBuilding,\n        description:\n          \"The Center for Nursing houses classrooms and simulation labs for our nursing students to practice skills in a hospital environment prior to their clinical learning experience. \",\n      },\n      {\n        title: \"Peter Frates Hall\",\n        slug: BuildingTourKeys.fratesHall,\n        description:\n          \"This first-year residence hall is dedicated to Peter Frates, who inspired the Ice Bucket Challenge for ALS research.\",\n      },\n      {\n        title: \"Reynolds Hall\",\n        slug: BuildingTourKeys.reynoldsHall,\n        description:\n          \"Located in a converted property dating back to 1900, this communal living space provides a unique first-year experience. \",\n      },\n      {\n        title: \"Standish Hall\",\n        slug: BuildingTourKeys.stadishHall,\n        description:\n          \"Standish Hall is a 52-unit building that houses 294 students in apartments. \",\n      },\n      {\n        title: \"Gully’s\",\n        slug: BuildingTourKeys.gullys,\n        description:\n          \"Gully’s is a popular spot on campus for students and faculty to grab coffee before class or hang out late night for a variety of events. \",\n      },\n    ],\n  },\n  [MenuTypes.uncategorized]: {\n    title: \"Uncategorized\",\n    description: \"\",\n    menuItems: [\n      {\n        title: \"Walter J. Manninen Center for the Arts\",\n        slug: BuildingTourKeys.artsCenter,\n        description:\n          \"Discover arts and culture at Endicott. We invite you to experience a world—class exhibit from a visiting artist or enjoy an exciting performance.\",\n      },\n      {\n        title: \"Athletics\",\n        slug: BuildingTourKeys.athletics,\n        description:\n          \"Broaden your collegiate experience by involvement in Endicott's overall health and wellness opportunities. Whether you want to compete in NCAA Division III athletics, club sports, recreational activities, or join an intramural team to have fun and make friends, we encourage you to get involved!\",\n      },\n    ],\n  },\n};\n","export enum MediaTypes {\n  pano = 'panorama',\n  youtube = 'youtube',\n  vimeo = 'vimeo',\n  img = 'image',\n  webgl = 'webGLpano'\n}","import React from 'react'\nimport TransitionGroup from 'react-transition-group/TransitionGroup'\n\nimport { IFlyMenuBody } from '../../../common/models/Category'\n\nimport Sidebar from '../sidebar/sidebar'\nimport FlyMenu from '../../fly-menu/fly-menu'\n\nimport { flyMenuData } from '../../../content/menuData'\n\nimport MenuContext from '../../../context/menu-context'\n\ntype LayoutProps = {\n  children: React.ReactNode\n}\n\nconst Layout: React.SFC<LayoutProps> = ({ children }) => {\n  const [isOpenFlyMenu, setFlyMenu] = React.useState(false)\n  const [menuItems, setMenuItems] = React.useState<IFlyMenuBody>({} as IFlyMenuBody)\n  const [activeMenu, setActiveMenu] = React.useState('')\n\n  const showMenu = (slug: string) => {\n    setFlyMenu(true)\n\n    setActiveMenu(slug)\n\n    setMenuItems(flyMenuData[slug])\n  }\n\n  const closeMenu = () => {\n    setFlyMenu(false)\n  }\n\n  return (\n    <MenuContext.Provider value={{ showMenu, closeMenu }}>\n      <div className=\"container-fluid px-0\">\n        <Sidebar />\n        <main className={`${isOpenFlyMenu ? 'blur-content' : ''}`}>\n          <TransitionGroup>\n            {Object.keys(menuItems).length !== 0 &&\n              <FlyMenu\n                isOpen={isOpenFlyMenu}\n                data={menuItems}\n                activeMenu={activeMenu}\n              />\n            }\n            {children}\n          </TransitionGroup>\n        </main>\n      </div>\n    </MenuContext.Provider>\n  )\n}\n\nexport default Layout\n","import React from 'react'\nimport LoaderIcon from '../../assets/loader.gif'\n\nconst Loader = ( show: boolean ): JSX.Element => \n  <div className={`d-flex align-items-center justify-content-center loader ${show ? 'show' : ''}`}>\n    <img src={LoaderIcon} alt=\"Loader Icon\"/>\n  </div>\n\nexport default Loader\n","import React from 'react'\n\nconst ActionBtns: React.FC = () => \n  <div className=\"btn-group btn-group--light position-absolute bg-transparent d-none d-md-inline-flex\" role=\"group\" aria-label=\"feedback actions\">\n    <a href=\"https://apply.endicott.edu/apply/\" target=\"_blank\" rel=\"noopener noreferrer\" className=\"btn btn-light d-block\">Apply</a>\n    <a href=\"https://www.endicott.edu/admission/plan-a-visit\" target=\"_blank\" rel=\"noopener noreferrer\" className=\"btn btn-light d-block\">Plan a Visit</a>\n    <a href=\"https://apply.endicott.edu/account/register\" target=\"_blank\" rel=\"noopener noreferrer\" className=\"btn btn-light d-block\">Learn More</a>\n  </div>\n\nexport default ActionBtns\n","import { BuildingTourKeys } from \"../common/models/WayPoints\";\nimport { StreetView } from \"../common/interfaces/IMaps\";\nimport { Categories } from \"../common/models/Category\";\nimport { MediaTypes } from \"../common/models/Media\";\n\nexport const data: StreetView = {\n  [BuildingTourKeys.callahanCenter]: {\n    title: \"Callahan Center\",\n    assets: [\n      {\n        mediaType: MediaTypes.webgl,\n        imageName: \"callahan_center_area_1.jpg\",\n        thumbNail: \"callahan_center_area_1_thumb.jpg\",\n        title: \"Callahan Center Dining Area\",\n        subtitle: \"\",\n        description:\n          \"On the upper level of the Callahan Center you will find the main dining hall, which offers a wide variety of freshly prepared meals.\",\n      },\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"callahan_center_area_2.jpg\",\n        title: \"Callahan Center\",\n        subtitle: \"\",\n        description:\n          \"Renovated in 2014, the Callahan Center is the hub of campus. \",\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        imageName: \"callahan_center_area_6.jpg\",\n        thumbNail: \"callahan_center_area_6_thumb.jpg\",\n        title: \"Lower Callahan\",\n        subtitle: \"\",\n        description:\n          \"On the lower level, you will find Student Affairs, Student Activities, Community Service, Residence Life, Health Services, and our Counseling Center. \",\n      },\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"callahan_center_area_3.jpg\",\n        title: \"Lower Callahan\",\n        subtitle: \"\",\n        description: \"\"\n        // description: \"On the lower level, you will find Student Affairs, Student Activities, Community Service, Residence Life, Health Services and our Counseling Center. \",\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        imageName: \"callahan_center_area_4.jpg\",\n        thumbNail: \"callahan_center_area_4_thumb.jpg\",\n        title: \"Wellness Center\",\n        subtitle: \"\",\n        description: \"\",\n      },\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"callahan_center_area_5.jpg\",\n        title: \"Cafeteria\",\n        subtitle: \"\",\n        description:\n          \"On the upper level of the Callahan Center you will find students enjoying the main dining experience.\",\n      },\n    ],\n    basePath: \"buildings/callahan-center/\",\n    category: [Categories.studentLife],\n    panoConfiguration: {\n      lat: 42.5533198,\n      lng: -70.8427623,\n      pov: {\n        zoom: 1.2,\n        heading: 270.32,\n        pitch: 4.5,\n      },\n    },\n  },\n  [BuildingTourKeys.centerForBelonging]: {\n    title: \"Center for Belonging\",\n    assets: [\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"center_for_belonging_area_1.jpg\",\n        thumbNail: \"center_for_belonging_area_1_thumb.jpg\",\n        title: \"Exterior\",\n        subtitle: \"\",\n        description: \"Unveiled in the fall of 2022, the newly renovated Center for Belonging is the campus hub for inclusive programming and activities, as well as all things spiritual life.\",\n      },\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"center_for_belonging_area_2.jpg\",\n        thumbNail: \"center_for_belonging_area_2_thumb.jpg\",\n        title: \"Dance Class\",\n        subtitle: \"\",\n        description: \"Endicott College is committed to fostering an environment that honors all individuals. We celebrate diversity and hold it as our responsibility to move our community toward becoming a stronger reflection of our interconnected world.\",\n      },\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"center_for_belonging_area_3.jpg\",\n        thumbNail: \"center_for_belonging_area_3_thumb.jpg\",\n        title: \"Yoga Class\",\n        subtitle: \"\",\n        description: \"The Center for Belonging offers a variety of mindfulness activities to help students reflect intentionally, make better decisions, and become more self confident by learning more about themselves.\",\n      },\n    ],\n    basePath: \"buildings/center-for-belonging/\",\n    category: [Categories.studentLife],\n    panoConfiguration: {\n      lat: 42.5533198,\n      lng: -70.8427623,\n      pov: {\n        zoom: 1.2,\n        heading: 270.32,\n        pitch: 4.5,\n      },\n    },\n  },\n  [BuildingTourKeys.manninenCenterForArts]: {\n    title: \"Manninen Center for the Arts\",\n    assets: [\n      {\n        mediaType: MediaTypes.webgl,\n        imageName: \"manninen_center_area_1.jpg\",\n        thumbNail: \"manninen_center_area_1_thumb.jpg\",\n        title: \"Atrium\",\n        subtitle: \"\",\n        description:\n          \"Elements of “green” design make the Walter J. Manninen Center for the Arts environmentally friendly and aesthetically pleasing.\",\n      },\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"manninen_center_area_2.jpg\",\n        title: \"Exterior\",\n        subtitle: \"\",\n        description:\n          \"This state-of-the-art facility opened in January 2009. It includes outstanding instructional space and venues for performance, exhibition, and presentations. \",\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        imageName: \"manninen_center_area_3.jpg\",\n        thumbNail: \"manninen_center_area_3_thumb.jpg\",\n        title: \"Rose Theater\",\n        subtitle: \"\",\n        description:\n          \"The Rose Theater hosts dance and music concerts and theatrical performances. The acoustically superb venue makes for an excellent experience for patrons.\",\n      },\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"manninen_center_area_4.jpg\",\n        title: \"Photo Studio\",\n        subtitle: \"\",\n        description:\n          \"Endicott's photography program emphasizes art practice and commercial applications.\",\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        imageName: \"manninen_center_area_5.jpg\",\n        thumbNail: \"manninen_center_area_5_thumb.jpg\",\n        title: \"Heftler Visiting Artist Gallery\",\n        subtitle: \"\",\n        description:\n          \"The Heftler Visiting Artist Gallery is a museum quality gallery featuring well known and specially selected artists and themes that pertain to students' majors.\",\n      },\n      {\n        mediaType: MediaTypes.youtube,\n        videoUrl: \"3hHfUcTK2-0\",\n        title: \"Arts Video\",\n        subtitle: \"\",\n        description:\n          \"Explore the sights, sounds, and allure of the Endicott College School of Visual and Performing Arts.\",\n      },\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"manninen_center_area_8.jpg\",\n        title: \"Rose Theater\",\n        subtitle: \"\",\n        description:\n          \"The Rose Theater hosts dance and music concerts and theatrical performances. The acoustically superb venue makes for an excellent experience for patrons.\",\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        imageName: \"wax_academic_center_area_3.jpg\",\n        thumbNail: \"wax_academic_center_area_3_thumb.jpg\",\n        title: \"Recording Studio\",\n        subtitle: \"\",\n        description:\n          \"Studio audio production helps students learn the fundamentals of operating a recording studio.\",\n      },\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"manninen_center_area_9.jpg\",\n        title: \"Atrium\",\n        subtitle: \"\",\n        description: \"\",\n      },\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"manninen_center_area_10.jpg\",\n        title: \"Art Gallery \",\n        subtitle: \"\",\n        description: \"\",\n      },\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"manninen_center_area_11.jpg\",\n        title: \"Classroom\",\n        subtitle: \"\",\n        description: \"\",\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        imageName: \"manninen_center_area_12.jpg\",\n        thumbNail: \"manninen_center_area_12_thumb.jpg\",\n        title: \"Pottery\",\n        subtitle: \"\",\n        description: \"\",\n      },\n    ],\n    basePath: \"buildings/manninen-center/\",\n    video: \"https://youtu.be/5uJJmnbyLBY\",\n    category: [Categories.visualAndArts],\n    panoConfiguration: {\n      lat: 42.5527061,\n      lng: -70.8389014,\n      pov: {\n        zoom: 1.8,\n        heading: 245.02,\n        pitch: 3.4,\n      },\n    },\n  },\n  [BuildingTourKeys.halleLibrarya]: {\n    title: \"Halle Library\",\n    assets: [\n      {\n        mediaType: MediaTypes.webgl,\n        imageName: \"halle_library_area_1.jpg\",\n        thumbNail: \"halle_library_area_1_thumb.jpg\",\n        title: \"Diane M. Halle Library\",\n        subtitle: \"\",\n        description:\n          \"The Halle Library is also home to academic services such as the writing and tutoring centers, the International Education department, Internship & Career Center, Cyber Cafe (open 24/7), and classrooms.\",\n      },\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"halle_library_area_2.jpg\",\n        title: \"Upper Floor Stacks\",\n        subtitle: \"\",\n        description: \"\",\n      },\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"halle_library_area_3.jpg\",\n        title: \"Exterior\",\n        subtitle: \"\",\n        description: \"\",\n      },\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"halle_library_area_4.jpg\",\n        title: \"Diane M. Halle Library\",\n        subtitle: \"\",\n        description:\n          \"The Halle Library is also home to academic services such as the writing and tutoring centers, the International Education department, Internship & Career Center, Cyber Cafe (open 24/7), and classrooms.\",\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        imageName: \"halle_library_area_5.jpg\",\n        thumbNail: \"halle_library_area_5_thumb.jpg\",\n        title: \"Academic Success\",\n        subtitle: \"\",\n        description:\n          \"No two students learn the same way. The Division of Academic Success provides services and programs to help students become happier, more successful Gulls!\",\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        imageName: \"halle_library_area_6.jpg\",\n        thumbNail: \"halle_library_area_6_thumb.jpg\",\n        title: \"International Education & Internship & Career\",\n        subtitle: \"\",\n        description:\n          \"Developing skills in your area of study within a global context will help you grow and improve your decision-making in the workplace once you graduate.\",\n      },\n    ],\n    basePath: \"buildings/halle-library/\",\n    video: \"https://youtu.be/5uJJmnbyLBY\",\n    category: [Categories.studentLife],\n    panoConfiguration: {\n      lat: 42.5531918,\n      lng: -70.8408093,\n      pov: {\n        zoom: 1,\n        heading: 51.16,\n        pitch: 7.5,\n      },\n    },\n  },\n  [BuildingTourKeys.waxAcademicCenter]: {\n    title: \"Wax Academic Center\",\n    assets: [\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"wax_academic_center_area_1.jpg\",\n        title: \"Wax Academic Center Exterior\",\n        subtitle: \"\",\n        description: \"\",\n        category: Categories.education\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        imageName: \"wax_academic_center_area_2.jpg\",\n        thumbNail: \"wax_academic_center_area_2_thumb.jpg\",\n        title: \"TV Studio\",\n        subtitle: \"\",\n        description:\n          \"In TV/Film Production you'll gain an understanding of the creative, technical, and business aspects of delivering content across a variety of platforms.\",\n        category: Categories.communications\n      },\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"wax_academic_center_area_5.jpg\",\n        title: \"TV Control Room\",\n        subtitle: \"\",\n        description: \"\",\n        category: Categories.communications\n      },\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"wax_academic_center_area_6.jpg\",\n        title: \"TV Studio\",\n        subtitle: \"\",\n        description: \"\",\n        category: Categories.communications\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        imageName: \"wax_academic_center_area_7.jpg\",\n        thumbNail: \"wax_academic_center_area_7_thumb.jpg\",\n        title: \"Wax Academic Center Classroom\",\n        subtitle: \"\",\n        description: \"\",\n        category: Categories.education\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        imageName: \"wax_academic_center_area_8.jpg\",\n        thumbNail: \"wax_academic_center_area_8_thumb.jpg\",\n        title: \"Wax Academic Center Main Lobby\",\n        subtitle: \"\",\n        description: \"\",\n        category: Categories.education\n      },\n    ],\n    basePath: \"buildings/wax-center/\",\n    category: [\n      // Categories.scienceAndtechnology,\n      Categories.education,\n      Categories.communications,\n    ],\n    panoConfiguration: {\n      lat: 42.5519815,\n      lng: -70.8361278,\n      pov: {\n        zoom: -0.3,\n        heading: 143.15,\n        pitch: 7.5,\n      },\n    },\n  },\n  [BuildingTourKeys.hempsteadCommons]: {\n    title: \"Hempstead Commons\",\n    assets: [\n      {\n        mediaType: MediaTypes.webgl,\n        imageName: \"hempstead-commons_area_1.jpg\",\n        thumbNail: \"hempstead-commons_area_1_thumb.jpg\",\n        title: \"Cleary Lecture Hall\",\n        subtitle: \"\",\n        description: \"With plenty of seating, the Cleary Lecture Hall is the premier venue for events on campus and for the Endicott community to gather.\",\n        category: Categories.education,\n        cameraConfig: {\n          startPoint: [0, 0, -70],\n        },\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        imageName: \"hempstead-commons_area_2.jpg\",\n        thumbNail: \"hempstead-commons_area_2_thumb.jpg\",\n        title: \"EAT Cafe\",\n        subtitle: \"\",\n        description: \"The cafe offers items such as fresh fruit and vegetables along with easy meal items and ready-to-eat-foods. We also offer a Boars Head Deli and local coffee roasters Atomic Coffee.\",\n        category: Categories.education,\n        cameraConfig: {\n          startPoint: [0, 0, 70],\n        },\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        imageName: \"hempstead-commons_area_3.jpg\",\n        thumbNail: \"hempstead-commons_area_3_thumb.jpg\",\n        title: \"Wingback Chairs\",\n        subtitle: \"\",\n        description: \"Hempstead Commons offers plenty of seating to study and collaborate with stunning views of campus.\",\n        category: Categories.education,\n        cameraConfig: {\n          startPoint: [-70, 0, -70],\n        },\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        imageName: \"hempstead-commons_area_4.jpg\",\n        thumbNail: \"hempstead-commons_area_4_thumb.jpg\",\n        title: \"Gulls at work\",\n        subtitle: \"\",\n        description: \"The Internship & Career Center at Endicott is a resource to help students understand the relationship between academic experiences, internship opportunities, and career choices. We provide individual career advising, training seminars, employer events, on campus recruiting, an alumni mentor program, and career assessments to help students and alumni prepare for their future.\",\n        category: Categories.education,\n        cameraConfig: {\n          startPoint: [0, 0, -70],\n        },\n      },\n    ],\n    basePath: \"buildings/hempstead-commons/\",\n    category: [\n      // Categories.scienceAndtechnology,\n      Categories.education,\n      Categories.communications,\n    ],\n    panoConfiguration: {\n      lat: 42.5519815,\n      lng: -70.8361278,\n      pov: {\n        zoom: -0.3,\n        heading: 143.15,\n        pitch: 7.5,\n      },\n    },\n  },\n  [BuildingTourKeys.businessSchool]: {\n    title: \"Gerrish School of Business\",\n    assets: [\n      {\n        mediaType: MediaTypes.webgl,\n        imageName: \"gerrish_school_of_business_area_1.jpg\",\n        thumbNail: \"gerrish_school_of_business_area_1_thumb.jpg\",\n        title: \"Post Center Main Lobby\",\n        subtitle: \"\",\n        description:\n          \"The Curtis L. Gerrish School of Business houses high-tech resources, state-of-the-art team building labs, interactive multimedia classrooms, and dedicated internship and career support services. \",\n      },\n\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"gerrish_school_of_business_area_3.jpg\",\n        title: \"Exterior\",\n        subtitle: \"\",\n        description: \"\",\n      },\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"gerrish_school_of_business_area_4.jpg\",\n        title: \"Einstein's Bagel Patio\",\n        subtitle: \"\",\n        description:\n          \"Einstein Bros®—known for their bagels and coffee heritage—will introduce an exceptional morning alternative that's fast, hot, and packed with flavor.\",\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        imageName: \"gerrish_school_of_business_area_5.jpg\",\n        thumbNail: \"gerrish_school_of_business_area_5_thumb.jpg\",\n        title: \"Center for Entrepreneurship\",\n        subtitle: \"\",\n        description: `Startups begin with asking, \"What if...?\" At Endicott, that question is encouraged, pushed, proto-typed and, if done successfully, launched into a startup!`,\n      },\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"gerrish_school_of_business_area_6.jpg\",\n        title: \"Post Center Main Lobby\",\n        subtitle: \"\",\n        description: \"\",\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        imageName: \"gerrish_school_of_business_area_7.jpg\",\n        thumbNail: \"gerrish_school_of_business_area_7_thumb.jpg\",\n        title: \"Classroom\",\n        subtitle: \"\",\n        description: \"\",\n      },\n    ],\n    basePath: \"buildings/gerrish-school/\",\n    category: [Categories.business],\n    panoConfiguration: {\n      lat: 42.5519815,\n      lng: -70.8361278,\n      pov: {\n        zoom: -0.3,\n        heading: 143.15,\n        pitch: 7.5,\n      },\n    },\n  },\n  [BuildingTourKeys.judgeCenter]: {\n    title: \"Judge Science Center\",\n    assets: [\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"judge_science_center_area_0.jpg\",\n        title: \"Ginger Judge Science Center Exterior\",\n        description: \"\",\n      },\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"judge_science_center_area_1.jpg\",\n        title: \"Ginger Judge Science Center\",\n        subtitle:\n          \"The Judge Science Center has dedicated science classrooms, dry and wet labs, prep rooms, and a robotics lab. \",\n        description: \"\",\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        imageName: \"judge_science_center_area_2.jpg\",\n        thumbNail: \"judge_science_center_area_2_thumb.jpg\",\n        title: \"Science Lab\",\n        subtitle: \"\",\n        description: \"\",\n      },\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"gerrish_school_of_business_area_2.jpg\",\n        title: \"Makerspace\",\n        subtitle: \"\",\n        description:\n          \"Students bring their ideas into focus—by bringing them to life.\",\n      },\n    ],\n    basePath: \"buildings/judgeScienceCenter/\",\n    category: [Categories.scienceAndtechnology],\n    panoConfiguration: {\n      lat: 42.5538405,\n      lng: -70.8431892,\n      pov: {\n        zoom: 0.5,\n        heading: 82.94,\n        pitch: 6,\n      },\n    },\n  },\n  [BuildingTourKeys.postCenter]: {\n    title: \"Post Center\",\n    assets: [\n      {\n        mediaType: MediaTypes.webgl,\n        imageName: \"post_center_area_1.jpg\",\n        thumbNail: \"post_center_area_1_thumb.jpg\",\n        title: \"MacDonald Gymnasium\",\n        subtitle: \"\",\n        description:\n          \"MacDonald Gymnasium, with a capacity of 1,200 spectators, is the perfect place to watch the Endicott men's and women's basketball and men's and women's volleyball teams compete. \",\n      },\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"post_center_area_2.jpg\",\n        title: \"Post Sport Science & Fitness Center\",\n        subtitle: \"\",\n        description: \"\",\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        imageName: \"post_center_area_3.jpg\",\n        thumbNail: \"post_center_area_3_thumb.jpg\",\n        title: \"Aerobics Studio\",\n        subtitle: \"\",\n        description:\n          \"Endicott’s aerobics studio offers a wide array of opportunities to increase fitness and personal health. Each class consists of a series of exercises that stress different parts of your body, particularly the large muscle groups, for a prolonged period.  \",\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        imageName: \"post_center_area_4.jpg\",\n        thumbNail: \"post_center_area_4_thumb.jpg\",\n        title: \"Field House\",\n        subtitle: \"\",\n        description:\n          \"The Field House is the home of Endicott’s intramural programs, in which 80% of the student body participates. \",\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        imageName: \"post_center_area_5.jpg\",\n        thumbNail: \"post_center_area_5_thumb.jpg\",\n        title: \"Athletic Training/ Exercise Science Lab\",\n        subtitle: \"\",\n        description:\n          \"The athletic training room features state-of-the-art equipment and care. The staff is complemented by Endicott’s athletic training students who gain valuable experience. \",\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        imageName: \"post_center_area_6.jpg\",\n        thumbNail: \"post_center_area_6_thumb.jpg\",\n        title: \"Strength & Conditioning Spaces\",\n        subtitle: \"\",\n        description:\n          \"The Post Sport Science & Fitness Center has new rubberized flooring throughout the entire facility, several new treadmills, spin bikes, elliptical machines, weight lifting equipment, free weights, and abdominal equipment.\",\n      },\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"post_center_area_7.jpg\",\n        title: \"Aerobics Studio\",\n        subtitle: \"\",\n        description:\n          \"Aerobics classes include cardio kickboxing, high intensity interval training, total body toning, and more. Classes are held in the Post Sport Science & Fitness Center.\",\n      },\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"post_center_area_8.jpg\",\n        title: \"MacDonald Gymnasium\",\n        subtitle: \"\",\n        description:\n          \"The MacDonald Gymnasium is available to the general student population for pickup games. The College also holds numerous large-capacity events in the gym throughout the year.\",\n      },\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"post_center_area_9.jpg\",\n        title: \"Strength & Conditioning\",\n        subtitle: \"\",\n        description:\n          \"Endicott Strength & Conditioning focuses on the long-term development and performance of Endicott's student-athletes. The staff collaborates with Endicott Athletic Training to coordinate rehabilitation, nutrition, and analytics.\",\n      },\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"post_center_area_10.jpg\",\n        title: \"Athletic Training/ Exercise Science Lab\",\n        subtitle: \"\",\n        description:\n          \"The athletic training department employs sports medicine personnel who coordinate the care for every varsity athlete. The department is housed in the Post Sport Science & Fitness Center. \",\n      },\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"post_center_area_11.jpg\",\n        title: \"Field House\",\n        subtitle: \"\",\n        description:\n          \"The Field House has two racquetball courts, two batting cages, a running track, and a climbing wall. \",\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        imageName: \"post_center_area_12.jpg\",\n        thumbNail: \"post_center_area_12_thumb.jpg\",\n        title: \"Post Center Main Lobby\",\n        subtitle: \"\",\n        description: \"\",\n      },\n    ],\n    basePath: \"buildings/post-center/\",\n    category: [Categories.studentLife, Categories.sport],\n    panoConfiguration: {\n      lat: 42.5552741,\n      lng: -70.8401628,\n      pov: {\n        zoom: -0.3,\n        heading: 123.66,\n        pitch: 7.5,\n      },\n    },\n  },\n  [BuildingTourKeys.bourqueArena]: {\n    title: \"Bourque Arena\",\n    assets: [\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"bourque_center_area_1.jpg\",\n        title: \"Athletic Training\",\n        subtitle: \"\",\n        description: \"\",\n      },\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"bourque_center_area_2.jpg\",\n        title: \"Raymond J. Bourque Arena Exterior\",\n        subtitle: \"\",\n        description:\n          \"This state-of-the-art facility provides both the Endicott and surrounding North Shore communities with a home for collegiate and high school competition and practice, intramurals, student activities, formal speaking events, and events that bring people together.\",\n      },\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"bourque_center_area_3.jpg\",\n        title: \"Raymond J. Bourque Arena Center Ice\",\n        subtitle: \"\",\n        description: \"\",\n      },\n    ],\n    basePath: \"buildings/bourque-arena/\",\n    category: [Categories.studentLife, Categories.sport],\n    panoImage: require(\"../assets/pano/Bourque_Arena_1078.jpg\"),\n  },\n  [BuildingTourKeys.nursingBuilding]: {\n    title: \"Cummings School of Nursing and Health Sciences\",\n    assets: [\n      {\n        mediaType: MediaTypes.webgl,\n        imageName: \"nursing_area_6.jpg\",\n        thumbNail: \"nursing_area_6_thumb.jpg\",\n        title: \"Top Floor Balcony\",\n        subtitle: \"\",\n        description: \"The balcony on the Cummings School of Nursing & Health Sciences provides stunning views of the Lakes and the Ayune Michel Academic Quad.\",\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        imageName: \"nursing_area_7.jpg\",\n        thumbNail: \"nursing_area_7_thumb.jpg\",\n        title: \"Endicott Hospital Lab\",\n        subtitle: \"\",\n        description: \"With state-of-the-art labs, Endicott prepares students for positions in a wide range of clinical areas. The College’s affiliations include more than 70 Boston and local area hospitals and community-based care settings.\",\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        imageName: \"nursing_area_8.jpg\",\n        thumbNail: \"nursing_area_8_thumb.jpg\",\n        title: \"Sport Science Lab\",\n        subtitle: \"\",\n        description:\"Athletic training and exercise science students will build and strengthen their clinical skills in state-of-the-art laboratory spaces, including the human performance lab, therapeutic lab, and modalities lab with a hydrotherapy room.\",\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        imageName: \"nursing_area_9.jpg\",\n        thumbNail: \"nursing_area_9_thumb.jpg\",\n        title: \"Sport Science Common Area\",\n        subtitle: \"\",\n        description:\"The fourth floor includes breakout rooms, a flex learning space for classes, and a multipurpose room. Offices can also be found throughout this area.\",\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        imageName: \"nursing_area_10.jpg\",\n        thumbNail: \"nursing_area_10_thumb.jpg\",\n        title: \"First Floor Lobby\",\n        subtitle: \"\",\n        description:\"The first-floor features Endicott Hospital, a pair of fundamental labs, as well as simulation spaces and a bridge that connects to the Curtis L. Gerrish School of Business & Ginger Judge Science Center.\",\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        imageName: \"nursing_area_11.jpg\",\n        thumbNail: \"nursing_area_11_thumb.jpg\",\n        title: \"Cummings School of Nursing & Health Sciences Exterior\",\n        subtitle: \"\",\n        description:\"The Cummings School is a modern expression of academic excellence with four floors featuring contemporary flourishes and soaring views over campus and the Atlantic Ocean. Critically, the building also brings together nursing and sport science students for collaborative opportunities, allying the health sciences under one roof.\",\n        cameraConfig: {\n          startPoint: [-10, 0, -40],\n          markerScale: [8,8,8],\n        }\n      },\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"nursing_area_12.jpg\",\n        title: \"Cummings School of Nursing & Health Sciences Exterior\",\n        subtitle: \"\",\n        description:\"The Cummings School is a modern expression of academic excellence with four floors featuring contemporary flourishes and soaring views over campus and the Atlantic Ocean. Critically, the building also brings together nursing and sport science students for collaborative opportunities, allying the health sciences under one roof.\",\n      },\n      {\n        mediaType: MediaTypes.img,\n        title: \"Sport Science Human Performance Lab\",\n        description: \"Students in sport management and esports management will hone their entrepreneurial skills and engage in learning about the intricacies of the global and expanding sports and esports industries in boardroom-style learning spaces with the most updated technology.\",\n        imageName: \"sport_science_area_1.jpg\",\n        thumbNail: \"sport_science_area_1_thumb.jpg\",\n      },\n      {\n          mediaType: MediaTypes.img,\n          title: \"Sport Science Classroom\",\n          description: \"Endicott College’s School of Sport Science allows students to engage in a global and expanding industry that combines extensive knowledge and intricacies of sport with administration, finance, analytics, management, technology, and law.\",\n          imageName: \"sport_science_area_2.jpg\",\n          thumbNail: \"sport_science_area_2_thumb.jpg\",\n      },\n      {\n          mediaType: MediaTypes.img,\n          title: \"Sport Science Therapeutic Lab\",\n          description: \"Students will study human movement from many perspectives as they prepare for a career in a variety of fields, such as strength and conditioning, fitness, recreation, rehabilitation, or corporate wellness.\",\n          imageName: \"sport_science_area_3.jpg\",\n          thumbNail: \"sport_science_area_3_thumb.jpg\",\n      },\n    ],\n    basePath: \"buildings/nursing/\",\n    category: [Categories.nursing],\n    panoImage: require(\"../assets/pano/Bourque_Arena_1078.jpg\"),\n  },\n  [BuildingTourKeys.fratesHall]: {\n    title: \"Frates Hall\",\n    assets: [\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"frates_hall_area_1.jpg\",\n        title: \"Peter Frates Hall\",\n        subtitle: \"\",\n        description: `Opened in 2016, Peter Frates Hall is a co-ed, first-year residence hall with triple and quadruple occupancy room options. Frates Hall has air conditioning, beautiful open common spaces, and many rooms overlooking the ocean.`,\n      },\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"frates_hall_area_2.jpg\",\n        title: \"Ice Bucket Challenge\",\n        subtitle: \"\",\n        description:\n          \"On September 14, 2016, the College dedicated the new Peter Frates Hall with a commemorative Ice Bucket Challenge\",\n      },\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"frates_hall_area_3.jpg\",\n        title: \"Room Interior\",\n        subtitle: \"\",\n        description: \"\",\n      },\n    ],\n    basePath: \"buildings/frates-hall/\",\n    category: [Categories.studentLife],\n    panoImage: require(\"../assets/pano/Bourque_Arena_1078.jpg\"),\n  },\n  [BuildingTourKeys.reynoldsHall]: {\n    title: \"Reynolds Hall\",\n    assets: [\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"reynolds_hall_area_1.jpg\",\n        title: \"Reynolds Hall Exterior\",\n        subtitle: \"\",\n        description: `The co-ed, first-year Reynolds Hall offers common laundry, kitchen, and lounge space. Reynolds Hall is a Gull Leadership Living Learning Community (LLC) for first-year students looking to develop the skills and knowledge to become student leaders and to successfully transition to college life.`,\n      },\n    ],\n    basePath: \"buildings/reynolds-hall/\",\n    category: [Categories.studentLife],\n    panoImage: require(\"../assets/pano/Bourque_Arena_1078.jpg\"),\n  },\n  [BuildingTourKeys.stadishHall]: {\n    title: \"Standish Hall\",\n    assets: [\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"standish_hall_area_1.jpg\",\n        title: \"Standish Hall Exterior\",\n        subtitle: \"\",\n        description: `Standish Hall is a 52-unit building that houses 294 students in apartments. With priority given to seniors, Standish Hall units have two or three bedrooms, a living room, private bath, and full kitchen.`,\n      },\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"standish_hall_area_2.jpg\",\n        title: \"Standish Hall Lobby\",\n        subtitle: \"\",\n        description: \"\",\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        imageName: \"standish_hall_area_3.jpg\",\n        thumbNail: \"standish_hall_area_3_thumb.jpg\",\n        title: \"Lower Callahan Common Area\",\n        subtitle: \"\",\n        description: ``,\n      },\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"standish_hall_area_4.jpg\",\n        title: \"Room Interior\",\n        subtitle: \"\",\n        description: ``,\n      },\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"standish_hall_area_5.jpg\",\n        title: \"Residence Hall Common Area\",\n        subtitle: \"\",\n        description: ``,\n      },\n    ],\n    basePath: \"buildings/standish-hall/\",\n    category: [Categories.studentLife],\n    panoImage: require(\"../assets/pano/Bourque_Arena_1078.jpg\"),\n  },\n  [BuildingTourKeys.gullys]: {\n    title: \"Gully’s\",\n    assets: [\n      {\n        mediaType: MediaTypes.webgl,\n        imageName: \"gullys_area_1.jpg\",\n        thumbNail: \"gullys_area_1_thumb.jpg\",\n        title: \"Gully's\",\n        subtitle: \"\",\n        description: `Since first opening in 1995 as \"The Pub,\" Gully’s has been an Endicott College institution. There have been many changes since then, but Gully’s will always be a place for the Endicott community to get together and have a good time. `,\n      },\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"gullys_area_2.jpg\",\n        title: \"Gully’s Seating Areas\",\n        subtitle: \"\",\n        description: \"\",\n      },\n      {\n        mediaType: MediaTypes.img,\n        imageName: \"gullys_area_3.jpg\",\n        title: \"Gully’s Bar Area\",\n        subtitle: \"\",\n        description: \"\",\n      },\n    ],\n    basePath: \"buildings/gullys/\",\n    category: [Categories.studentLife],\n    panoImage: require(\"../assets/pano/Bourque_Arena_1078.jpg\"),\n  },\n};\n\nexport default data;\n","import {\n    StreetView,\n} from \"../common/interfaces/IMaps\";\nimport { CampusTourKeys } from \"../common/models/WayPoints\";\nimport { MediaTypes } from \"../common/models/Media\";\nimport { Categories } from \"../common/models/Category\";\n\nexport const newToursData: StreetView = {\n  [CampusTourKeys.callahanCenter]: {\n      title: \"Callahan Center\",\n      basePath: \"waypoints/callahan-center/\",\n      category: [Categories.studentLife],\n      scaleX: true,\n      cameraConfig: {\n        startPoint: [-45, 0, 0],\n        markerScale: [15,15,15],\n      },\n      panoImage: \"callahan-center_pano.jpg\",\n      panoMarkers: [\n        {\n          mediaType: MediaTypes.webgl,\n          title: \"Dining Area\",\n          description:\n            \"On the upper level of the Callahan Center you will find the main dining hall, which offers a wide variety of freshly prepared meals. \",\n          imageName: \"buildings/callahan-center/callahan_center_area_1.jpg\",\n          thumbNail: \"buildings/callahan-center/callahan_center_area_1_thumb.jpg\",\n          ignoreBasePath: true,\n          x: 75,\n          y: 2,\n          z: -20,\n        },\n        {\n          mediaType: MediaTypes.webgl,\n          title: \"Lower Callahan\",\n          description: \"Lower Callahan hosts daily events and is a great place for students to hang out. You will also find that it is home to EC Radio, our student run on-campus radio network!\",\n          imageName: \"buildings/callahan-center/callahan_center_area_6.jpg\",\n          thumbNail: \"buildings/callahan-center/callahan_center_area_6_thumb.jpg\",\n          ignoreBasePath: true,\n          x: 80,\n          y: 2,\n          z: 10,\n        },\n      ],\n      relatedPoints: [\n        {\n          mediaType: MediaTypes.img,\n          description: \"\",\n          title: \"Gully’s Seating Areas\",\n          imageName: \"buildings/gullys/gullys_area_2.jpg\",\n          ignoreBasePath: true,\n          category: `${Categories.studentLife}`\n        },\n        {\n          mediaType: MediaTypes.img,\n          description: \"Located between the Post Center and Tower Hall, the Lodge provides a variety of breakfast, lunch, and late-night dining options.\",\n          title: \"The Lodge\",\n          imageName: \"waypoints/lodge/lodge_hotspot_1.jpg\",\n          ignoreBasePath: true,\n          category: `${Categories.studentLife}`\n        },\n        {\n          mediaType: MediaTypes.webgl,\n          description: `Built in 2019, the Wax Academic Center is home to the Schools of Education, Science & Technology, Social Sciences, Communication, & Humanities, and the Van Loan School of\n          Professional Studies. Phase II of the New Academic Center was completed in late 2020 and features seminar rooms, a cafe, and the Cleary Lecture Hall.`,\n          title: \"Samuel C. Wax Academic Center and Hempstead Commons\",\n          imageName: \"waypoints/wax-acacemic-center/wax-acacemic-center_pano.jpg\",\n          thumbNail: \"waypoints/wax-acacemic-center/wax-acacemic-center_thumb.jpg\",\n          ignoreBasePath: true,\n          category: `${Categories.studentLife}`\n        }\n      ],\n    },\n  [CampusTourKeys.gerrishSchool]: {\n    title: \"Curtis L. Gerrish School of Business\",\n    basePath: \"waypoints/gerrish-school-of-business/\",\n    category: [Categories.business],\n    scaleX: true,\n    cameraConfig: {\n      startPoint: [-45, 0, -1],\n      markerScale: [15,15,15],\n    },\n    panoImage: \"gerrish-school_pano.jpg\",\n    panoMarkers: [\n      {\n        mediaType: MediaTypes.webgl,\n        title: \"Post Center Main Lobby\",\n        description:\n          \"As you enter the Gerrish Business & Judge Science Center, you will find the main lobby where students enjoy hanging out and studying in between classes.\",\n        imageName: \"buildings/gerrish-school/gerrish_school_of_business_area_1.jpg\",\n        thumbNail: \"buildings/gerrish-school/gerrish_school_of_business_area_1_thumb.jpg\",\n        ignoreBasePath: true,\n        x: 75,\n        y: 2,\n        z: -20,\n        cameraConfig: {\n          startPoint: [0, 0, -80],\n        },\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        title: \"Center for Entrepreneurship\",\n        description: `Startups begin with asking, \"What if...?\" At Endicott, that question is encouraged, pushed, prototyped, and, if done successfully, launched into a startup!`,\n        imageName: \"buildings/gerrish-school/gerrish_school_of_business_area_5.jpg\",\n        thumbNail: \"buildings/gerrish-school/gerrish_school_of_business_area_5_thumb.jpg\",\n        ignoreBasePath: true,\n        ignoreOnGallery: true,\n        x: 80,\n        y: 2,\n        z: 10,\n      },\n    ],\n    relatedPoints: [\n      {\n        mediaType: MediaTypes.webgl,\n        description: \"At the Ginger Judge Science Center, you’ll find state-of-the-art classrooms, dry and wet labs, prep rooms, a robotics lab, and more.\",\n        title: \"Ginger Judge Science Center\",\n        imageName: \"waypoints/ginger-judge/ginger-jusge_pano.jpg\",\n        thumbNail: \"waypoints/ginger-judge/ginger-judge_thumb.jpg\",\n        ignoreBasePath: true,\n        category: `${Categories.business}`,\n        cameraConfig: {\n          startPoint: [-10, 0, -10],\n        },\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        description: `Built in 2019, the Wax Academic Center is home to the Schools of Education, Science & Technology, Social Sciences, Communication, & Humanities, and the Van Loan School of\n        Professional Studies. Phase II of the New Academic Center was completed in late 2020 and features seminar rooms, a cafe, and the Cleary Lecture Hall.`,\n        title: \"Samuel C. Wax Academic Center and Hempstead Commons\",\n        imageName: \"waypoints/wax-acacemic-center/wax-acacemic-center_pano.jpg\",\n        thumbNail: \"waypoints/wax-acacemic-center/wax-acacemic-center_thumb.jpg\",\n        ignoreBasePath: true,\n        category: `${Categories.business}`\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        description: `Startups begin by asking, \"What if...?\" At Endicott, that question is encouraged, pushed, prototyped, and, if done successfully, launched into a startup!`,\n        title: \"Center for Entrepreneurship\",\n        imageName: \"buildings/gerrish-school/gerrish_school_of_business_area_5.jpg\",\n        thumbNail: \"buildings/gerrish-school/gerrish_school_of_business_area_5_thumb.jpg\",\n        ignoreBasePath: true,\n        category: `${Categories.business}`\n      }\n    ],\n  },\n  [CampusTourKeys.gingerJudge]: {\n    title: \"Ginger Judge Science Center\",\n    basePath: \"waypoints/ginger-judge/\",\n    category: [Categories.scienceAndtechnology],\n    scaleX: true,\n    cameraConfig: {\n      startPoint: [-30, 0, -7],\n      markerScale: [8,8,8],\n    },\n    panoImage: \"ginger-jusge_pano.jpg\",\n    panoMarkers: [\n      {\n        mediaType: MediaTypes.webgl,\n        title: \"Science Lab\",\n        description:\n          \"Walk around the facility for a glimpse of our MakerSpace, 3D printers, teambuilding classrooms, and cutting-edge laboratories.\",\n        imageName: \"buildings/judgeScienceCenter/judge_science_center_area_2.jpg\",\n        thumbNail: \"buildings/judgeScienceCenter/judge_science_center_area_2_thumb.jpg\",\n        ignoreBasePath: true,\n        x: 40,\n        y: 2,\n        z: 0,\n      },\n      {\n        mediaType: MediaTypes.img,\n        title: \"Makerspace\",\n        description: `Students bring their ideas into focus—by bringing them to life.`,\n        imageName: \"buildings/gerrish-school/gerrish_school_of_business_area_2.jpg\",\n        ignoreBasePath: true,\n        x: 30,\n        y: -5,\n        z: -15,\n      },\n    ],\n    relatedPoints: [\n      {\n        mediaType: MediaTypes.webgl,\n        description: \"In the School of Nursing, students learn the skills needed for fulfilling careers in the complex and ever-changing field of health care.\",\n        title: \"Cummings School of Nursing and Health Sciences\",\n        imageName: \"waypoints/nursing/nursing_pano.jpg\",\n        thumbNail: \"waypoints/nursing/nursing_thumb.jpg\",\n        ignoreBasePath: true,\n        category: `${Categories.scienceAndtechnology}`,\n        cameraConfig: {\n          startPoint: [-10, 0, -40],\n          markerScale: [8,8,8],\n        },\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        description: \"The Post Center is home to the School of Sport Science, the MacDonald Gymnasium, the field house, and a full-service fitness center.\",\n        title: \"Post Center\",\n        imageName: \"buildings/post-center/post_center_area_1.jpg\",\n        thumbNail: \"buildings/post-center/post_center_area_1_thumb.jpg\",\n        ignoreBasePath: true,\n        category: `${Categories.scienceAndtechnology}`\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        description: \"The Curtis L. Gerrish School of Business houses high-tech resources, team building labs, interactive multimedia classrooms, and dedicated internship and career development support services.\",\n        title: \"Curtis L. Gerrish School of Business\",\n        imageName: \"waypoints/gerrish-school-of-business/gerrish-school_pano.jpg\",\n        thumbNail: \"waypoints/gerrish-school-of-business/gerrish-school_thumb.jpg\",\n        ignoreBasePath: true,\n        category: `${Categories.scienceAndtechnology}`\n      }\n    ],\n  },\n  [CampusTourKeys.postSportScience]: {\n    title: \"Post Sport Science & Fitness Center\",\n    basePath: \"waypoints/post-sport/\",\n    category: [Categories.sport],\n    scaleX: true,\n    cameraConfig: {\n      startPoint: [-30, 0, -7],\n      markerScale: [8,8,8],\n    },\n    panoImage: \"post-sport_pano.jpg\",\n    panoMarkers: [\n      {\n        mediaType: MediaTypes.webgl,\n        title: \"Post Center Main Lobby\",\n        description: \"The Post Center is home to the School of Sport Science, the MacDonald Gymnasium, the field house, and a full-service fitness center. \",\n        imageName: \"buildings/post-center/post_center_area_12.jpg\",\n        thumbNail: \"buildings/post-center/post_center_area_12_thumb.jpg\",\n        ignoreBasePath: true,\n        x: 45,\n        y: 2,\n        z: 0,\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        title: \"MacDonald Gymnasium\",\n        description: `MacDonald Gymnasium, with a capacity of 1,200 spectators, is the perfect place to watch the Endicott men's and women's basketball and men's and women's volleyball teams compete.`,\n        imageName: \"buildings/post-center/post_center_area_1.jpg\",\n        thumbNail: \"buildings/post-center/post_center_area_1_thumb.jpg\",\n        ignoreBasePath: true,\n        x: 30,\n        y: -5,\n        z: -15,\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        title: \"Strength & Conditioning Spaces\",\n        description: `Endicott Strength & Conditioning focuses on the long-term development and performance of Endicott's student-athletes. The staff collaborates with Endicott Athletic Training to coordinate rehabilitation, nutrition, and analytics.`,\n        imageName: \"buildings/post-center/post_center_area_6.jpg\",\n        thumbNail: \"buildings/post-center/post_center_area_6_thumb.jpg\",\n        ignoreBasePath: true,\n        x: 40,\n        y: 5,\n        z: 10,\n      },\n    ],\n    relatedPoints: [\n      {\n        mediaType: MediaTypes.img,\n        description: \"This state-of-the-art facility provides both the Endicott and surrounding North Shore communities with a home for collegiate and high school competition and practice, intramurals, student activities, formal speaking events, and events that bring people together.\",\n        title: \"Raymond J. Bourque Arena Exterior\",\n        imageName: \"buildings/bourque-arena/bourque_center_area_2.jpg\",\n        ignoreBasePath: true,\n        category: `${Categories.sport}`\n      },\n      {\n        mediaType: MediaTypes.img,\n        description: \"North Field serves as a practice field for Endicott’s varsity programs and as a hub for intramural sports. The facility can accommodate up to 600 spectators.\",\n        title: \"North Field Aerial\",\n        imageName: \"waypoints/north-field/northfield_hotspot_2.jpg\",\n        ignoreBasePath: true,\n        category: `${Categories.sport}`\n      },\n      {\n        mediaType: MediaTypes.img,\n        description: \"Built in 2003, Hempstead Stadium is home to Endicott’s football, men’s lacrosse, women’s lacrosse, rugby, men’s soccer, and women’s soccer programs\",\n        title: \"Hempstead Stadium\",\n        imageName: \"waypoints/hempstead-stadium/hempstead_stadium_hotspot_1.jpg\",\n        ignoreBasePath: true,\n        category: `${Categories.sport}`\n      }\n    ],\n  },\n  [CampusTourKeys.waxAcacemic]: {\n    title: \"Samuel C. Wax Academic Center and Hempstead Commons\",\n    basePath: \"waypoints/wax-acacemic-center/\",\n    category: [Categories.scienceAndtechnology],\n    scaleX: true,\n    cameraConfig: {\n      startPoint: [-10, 0, -7],\n      markerScale: [4,4,4],\n    },\n    panoImage: \"wax-acacemic-center_pano.jpg\",\n    panoMarkers: [\n      {\n        mediaType: MediaTypes.webgl,\n        title: \"TV Studio\",\n        description:\n          \"In TV/Film Production you'll gain an understanding of the creative, technical, and business aspects of delivering content across a variety of platforms.\",\n        imageName: \"buildings/wax-center/wax_academic_center_area_2.jpg\",\n        thumbNail: \"buildings/wax-center/wax_academic_center_area_2_thumb.jpg\",\n        ignoreBasePath: true,\n        x: 20,\n        y: 2,\n        z: 10,\n      },\n      {\n        mediaType: MediaTypes.img,\n        title: \"Hempstead Commons\",\n        description: `Hempstead Commons was completed in late 2020 and features seminar rooms, a cafe, and the Cleary Lecture Hall.`,\n        imageName: \"buildings/wax-center/wax_academic_center_new_building_int.jpg\",\n        ignoreBasePath: true,\n        x: 20,\n        y: 8,\n        z: -40,\n      },\n    ],\n    relatedPoints: [\n      {\n        mediaType: MediaTypes.webgl,\n        description: \"In TV/Film Production you'll gain an understanding of the creative, technical, and business aspects of delivering content across a variety of platforms.\",\n        title: \"Digital Media Center\",\n        imageName: \"buildings/wax-center/wax_academic_center_area_2.jpg\",\n        thumbNail: \"buildings/wax-center/wax_academic_center_area_2_thumb.jpg\",\n        ignoreBasePath: true,\n        category: `${Categories.scienceAndtechnology}`\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        description: \"The Curtis L. Gerrish School of Business houses high-tech resources, team building labs, interactive multimedia classrooms, and dedicated internship and career development support services.\",\n        title: \"Curtis L. Gerrish School of Business\",\n        imageName: \"waypoints/gerrish-school-of-business/gerrish-school_pano.jpg\",\n        thumbNail: \"waypoints/gerrish-school-of-business/gerrish-school_thumb.jpg\",\n        ignoreBasePath: true,\n        category: `${Categories.scienceAndtechnology}`\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        description: \"At the Ginger Judge Science Center, you’ll find state-of-the-art classrooms, dry and wet labs, prep rooms, a robotics lab, and more.\",\n        title: \"Ginger Judge Science Center\",\n        imageName: \"waypoints/ginger-judge/ginger-jusge_pano.jpg\",\n        thumbNail: \"waypoints/ginger-judge/ginger-judge_thumb.jpg\",\n        ignoreBasePath: true,\n        category: `${Categories.scienceAndtechnology}`,\n        cameraConfig: {\n          startPoint: [-10, 0, -10],\n        },\n      }\n    ],\n  },\n  [CampusTourKeys.nursing]: {\n    title: \"Cummings School of Nursing and Health Sciences\",\n    basePath: \"waypoints/nursing/\",\n    category: [Categories.nursing],\n    scaleX: true,\n    cameraConfig: {\n      startPoint: [-10, 0, -40],\n      markerScale: [8,8,8],\n    },\n    panoImage: \"nursing_pano.jpg\",\n    panoMarkers: [\n      {\n        mediaType: MediaTypes.webgl,\n        imageName: \"buildings/nursing/nursing_area_8.jpg\",\n        thumbNail: \"buildings/nursing/nursing_area_8_thumb.jpg\",\n        title: \"Sports Science Lab\",\n        subtitle: \"\",\n        description:\"\",\n        ignoreBasePath: true,\n        x: -40,\n        y: 2,\n        z: 50,\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        imageName: \"buildings/nursing/nursing_area_7.jpg\",\n        thumbNail: \"buildings/nursing/nursing_area_7_thumb.jpg\",\n        title: \"Endicott Hospital Lab\",\n        subtitle: \"\",\n        description: \"With state-of-the-art labs, Endicott prepares students for positions in a wide range of clinical areas. The College’s affiliations include more than 70 Boston and local area hospitals and community-based care settings.\",\n        ignoreBasePath: true,\n        x: -10,\n        y: 2,\n        z: 20,\n      },\n    ],\n    relatedPoints: [\n      {\n        mediaType: MediaTypes.webgl,\n        description: \"At the Ginger Judge Science Center, you’ll find state-of-the-art classrooms, dry and wet labs, prep rooms, a robotics lab, and more.\",\n        title: \"Ginger Judge Science Center\",\n        imageName: \"buildings/gerrish-school/gerrish_school_of_business_area_8.jpg\",\n        thumbNail: \"buildings/gerrish-school/gerrish_school_of_business_area_8_thumb.jpg\",\n        ignoreBasePath: true,\n        category: `${Categories.nursing}`,\n        cameraConfig: {\n          startPoint: [-10, 0, -10],\n        },\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        description: \"The Post Center is home to the School of Sport Science, the MacDonald Gymnasium, the field house, and a full-service fitness center.\",\n        title: \"Post Center\",\n        imageName: \"buildings/post-center/post_center_area_1.jpg\",\n        thumbNail: \"buildings/post-center/post_center_area_1_thumb.jpg\",\n        ignoreBasePath: true,\n        category: `${Categories.nursing}`\n      },\n    ],\n  },\n  [CampusTourKeys.dianeLibrary]: {\n    title: \"Diane M. Halle Library\",\n    basePath: \"waypoints/halle-library/\",\n    category: [Categories.studentLife],\n    scaleX: true,\n    cameraConfig: {\n      startPoint: [-20, 0, -9],\n      markerScale: [8,8,8],\n    },\n    panoImage: \"halle-library_pano.jpg\",\n    panoMarkers: [\n      {\n        mediaType: MediaTypes.webgl,\n        title: \"Diane M. Halle Library\",\n        description:\n          \"The Halle Library is home to academic services such as the writing and tutoring centers, the International Education department, Internship & Career Center, Cyber Cafe (open 24/7), and classrooms.\",\n        imageName: \"buildings/halle-library/halle_library_area_1.jpg\",\n        thumbNail: \"buildings/halle-library/halle_library_area_1_thumb.jpg\",\n        ignoreBasePath: true,\n        x: 30,\n        y: -10,\n        z: 50,\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        title: \"International Education & Internship & Career\",\n        description: \"Developing skills in your area of study within a global context will help you grow and improve your decision-making in the workplace once you graduate.\",\n        imageName: \"buildings/halle-library/halle_library_area_6.jpg\",\n        thumbNail: \"buildings/halle-library/halle_library_area_6_thumb.jpg\",\n        ignoreBasePath: true,\n        x: 50,\n        y: 0,\n        z: 50,\n      }\n    ],\n    relatedPoints: [\n      {\n        mediaType: MediaTypes.webgl,\n        description: \"Built in 1916, College Hall is home to our administrative offices—including the Office of the President, Office of Admission, financial aid, registrar, bursar, Information Technology Support, and business office.\",\n        title: \"College Hall\",\n        imageName: \"waypoints/college-hall/college_hall_pano.jpg\",\n        thumbNail: \"waypoints/college-hall/college_hall_pano_thumb.jpg\",\n        ignoreBasePath: true,\n        category: `${Categories.studentLife}`\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        description: \"Center for Belonging, which was built by the founders of Endicott College in 1978, serves students, staff, and faculty of all faiths\",\n        title: \"Center for Belonging\",\n        imageName: \"waypoints/chapel/chapel_area_1.jpg\",\n        thumbNail: \"waypoints/chapel/chapel_area_1_thumb.jpg\",\n        ignoreBasePath: true,\n        category: `${Categories.studentLife}`,\n        cameraConfig: {\n          startPoint: [100, 0, -50],\n        },\n      },\n      // {\n      //   mediaType: MediaTypes.pano,\n      //   description: \"The Interfaith Chapel, which was built by the founders of Endicott College in 1978, serves students, staff, and faculty of all faiths. It is the meeting place for our various religious groups and hosts events involving many traditions.\",\n      //   title: \"Interfaith Chapel\",\n      //   googlePanoImgLink: \"size=400x200&heading=-125&pitch=0&fov=100\",\n      //   panoId: \"qE_YZcAC6sWtGqkNaHnLOQ\",\n      //   category: `${Categories.studentLife}`,\n      //   pov: {\n      //     zoom: 0.8,\n      //     heading: 233.79,\n      //     pitch: 3.7,\n      //   },\n      // },\n      {\n        mediaType: MediaTypes.webgl,\n        description: \"Developing skills in your area of study within a global context will help you grow and improve your decision-making in the workplace once you graduate.\",\n        title: \"International Education & Internship & Career\",\n        imageName: \"buildings/halle-library/halle_library_area_6.jpg\",\n        thumbNail: \"buildings/halle-library/halle_library_area_6_thumb.jpg\",\n        ignoreBasePath: true,\n        category: `${Categories.studentLife}`\n      }\n    ],\n  },\n  [CampusTourKeys.centerForArts]: {\n    title: \"Walter J. Manninen Center for the Arts\",\n    basePath: \"waypoints/manninen-center-of-arts/\",\n    category: [Categories.visualAndArts],\n    scaleX: true,\n    cameraConfig: {\n      startPoint: [80, 1.1, 5],\n      markerScale: [8,8,8],\n    },\n    panoImage: \"manninen-center_pano.jpg\",\n    panoMarkers: [\n      {\n        mediaType: MediaTypes.webgl,\n        title: \"Artrium\",\n        description:\n          \"Elements of “green” design make the Walter J. Manninen Center for the Arts environmentally friendly and aesthetically pleasing.\",\n        imageName: \"buildings/manninen-center/manninen_center_area_1.jpg\",\n        thumbNail: \"buildings/manninen-center/manninen_center_area_1_thumb.jpg\",\n        ignoreBasePath: true,\n        x: 1,\n        y: 2,\n        z: 15,\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        title: \"Rose Theater\",\n        description: \"The Rose Theater hosts dance and music concerts and theatrical performances. The acoustically superb venue makes for an excellent experience for patrons.\",\n        imageName: \"buildings/manninen-center/manninen_center_area_3.jpg\",\n        thumbNail: \"buildings/manninen-center/manninen_center_area_3_thumb.jpg\",\n        ignoreBasePath: true,\n        x: 5,\n        y: 2,\n        z: 0,\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        title: \"Heftler Gallery\",\n        description: \"The Heftler Visiting Artist Gallery is a museum quality gallery featuring well known and specially selected artists and themes that pertain to students' majors.\",\n        imageName: \"buildings/manninen-center/manninen_center_area_5.jpg\",\n        thumbNail: \"buildings/manninen-center/manninen_center_area_5_thumb.jpg\",\n        ignoreBasePath: true,\n        x: 10,\n        y: 2,\n        z: -15,\n      },\n    ],\n    relatedPoints: [\n      {\n        mediaType: MediaTypes.webgl,\n        description: `Built in 2019, the Wax Academic Center is home to the Schools of Education, Science & Technology, Social Sciences, Communication, & Humanities, and the Van Loan School of\n            Professional Studies. Phase II of the New Academic Center was completed in late 2020 and features seminar rooms, a cafe, and the Cleary Lecture Hall.`,\n        title: \"Samuel C. Wax Academic Center and Hempstead Commons\",\n        imageName: \"buildings/wax-center/wax_academic_center_area_9.jpg\",\n        thumbNail: \"buildings/wax-center/wax_academic_center_area_9_thumb.jpg\",\n        ignoreBasePath: true,\n        category: `${Categories.nursing}`\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        description: \"The Halle Library is also home to academic services such as the writing and tutoring centers, the International Education department, Internship & Career Center, Cyber Cafe (open 24/7), and classrooms.\",\n        title: \"Diane M. Halle Library\",\n        imageName: \"buildings/halle-library/halle_library_area_1.jpg\",\n        thumbNail: \"buildings/halle-library/halle_library_area_1_thumb.jpg\",\n        ignoreBasePath: true,\n        category: `${Categories.studentLife}, ${Categories.sport}`\n      },\n    ],\n  },\n}","import {\n  StreetViewOptions,\n  MapsContainerStyle,\n  StreetView,\n} from \"../common/interfaces/IMaps\";\nimport { CampusTourKeys } from \"../common/models/WayPoints\";\nimport { MediaTypes } from \"../common/models/Media\";\nimport { Categories } from \"../common/models/Category\";\nimport { newToursData } from \"./waypointsData-newTours\";\n\nexport const data: StreetView = {\n  [CampusTourKeys.frontGate]: {\n    title: \"Welcome\",\n    basePath: \"waypoints/frontGate/\",\n    category: [Categories.studentLife],\n    scaleX: true,\n    cameraConfig: {\n      startPoint: [-50, 0, -10],\n      markerScale: [15,15,15],\n    },\n    panoImage: \"front-gate_pano.jpg\",\n    panoMarkers: [\n      {\n        mediaType: MediaTypes.youtube,\n        title: \"Welcome to Endicott College\",\n        description:\n          \"The journey to Endicott—a destination for higher learning, career preparation, and lifelong connections—begins with you.\",\n        videoUrl: \"5uJJmnbyLBY\",\n        // lat: 42.55249,\n        // lng: -70.842365,\n        x: 50,\n        y: 0,\n        z: 70,\n      },\n    ],\n    relatedPoints: [\n      {\n        mediaType: MediaTypes.webgl,\n        description: \"Built in 1916, College Hall is home to our administrative offices—including the Office of the President, Office of Admission, financial aid, registrar, bursar, Information Technology Support, and business office.\",\n        title: \"College Hall\",\n        imageName: \"waypoints/college-hall/college_hall_pano.jpg\",\n        thumbNail: \"waypoints/college-hall/college_hall_pano_thumb.jpg\",\n        ignoreBasePath: true,\n        category: `${Categories.studentLife}`,\n        cameraConfig: {\n          startPoint: [0, 0, -70],\n        },\n      },\n      {\n        wayPointKey: CampusTourKeys.amphitheater,\n        hotspotNum: 1,\n      },\n      {\n        wayPointKey: CampusTourKeys.amphitheater,\n        hotspotNum: 2,\n      },\n    ],\n    panoConfiguration: {\n      lat: 42.5523381,\n      lng: -70.8424198,\n      pov: {\n        zoom: 1.3,\n        heading: 23.09,\n        pitch: 0,\n      },\n    },\n  },\n  [CampusTourKeys.centerForBelonging]: {\n    title: \"Center for Belonging\",\n    basePath: \"waypoints/chapel/\",\n    category: [Categories.studentLife],\n    cameraConfig: {\n      startPoint: [130, 0, 0],\n      markerScale: [8,8,8],\n    },\n    panoImage: \"chapel_area_1.jpg\",\n    panoImageThumb: \"chapel_area_1_thumb.jpg\",\n    panoMarkers: [\n      {\n        mediaType: MediaTypes.webgl,\n        title: \"Center for Belonging Exterior\",\n        description: \"This building, which was built by the founders of Endicott College in 1978, serves students, staff, and faculty of all faiths. In 2022, the building was renovated to expand its use for our students as a Center for Belonging.\",\n        imageName: \"chapel_area_1.jpg\",\n        thumbNail: \"chapel_area_1_thumb.jpg\",\n        cameraConfig: {\n          startPoint: [100, 0, -50],\n        },\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        title: \"Center for Belonging Interior\",\n        description: \"This building, which was built by the founders of Endicott College in 1978, serves students, staff, and faculty of all faiths. In 2022, the building was renovated to expand its use for our students as a Center for Belonging.\",\n        imageName: \"chapel_area_2.jpg\",\n        thumbNail: \"chapel_area_2_thumb.jpg\",\n        x: 10,\n        y: 2,\n        z: -20,\n      },\n    ],\n    relatedPoints: [\n      {\n        ignoreBasePath: true,\n        mediaType: MediaTypes.img,\n        imageName: \"buildings/center-for-belonging/center_for_belonging_area_1.jpg\",\n        thumbNail: \"buildings/center-for-belonging/center_for_belonging_area_1_thumb.jpg\",\n        title: \"Center for Belonging\",\n        description: \"Unveiled in the fall of 2022, the newly renovated Center for Belonging is the campus hub for inclusive programming and activities, as well as all things spiritual life.\",\n      },\n      {\n        ignoreBasePath: true,\n        mediaType: MediaTypes.img,\n        imageName: \"buildings/center-for-belonging/center_for_belonging_area_2.jpg\",\n        thumbNail: \"buildings/center-for-belonging/center_for_belonging_area_2_thumb.jpg\",\n        title: \"Dance Class\",\n        description: \"Endicott College is committed to fostering an environment that honors all individuals. We celebrate diversity and hold it as our responsibility to move our community toward becoming a stronger reflection of our interconnected world.\",\n      },\n      {\n        ignoreBasePath: true,\n        mediaType: MediaTypes.img,\n        imageName: \"buildings/center-for-belonging/center_for_belonging_area_3.jpg\",\n        thumbNail: \"buildings/center-for-belonging/center_for_belonging_area_3_thumb.jpg\",\n        title: \"Yoga Class\",\n        description: \"The Center for Belonging offers a variety of mindfulness activities to help students reflect intentionally, make better decisions, and become more self confident by learning more about themselves.\",\n      },\n    ],\n  },\n  [CampusTourKeys.stoneridge]: {\n    title: \"Stoneridge\",\n    basePath: \"waypoints/stone-ridge/\",\n    category: [Categories.studentLife],\n    panoMarkers: [\n      {\n        mediaType: MediaTypes.img,\n        title: \"Stoneridge Exterior\",\n        description:\n          \"Stoneridge Hall features a plethora of green elements, including a water refill station, bicycle parking, high efficiency appliances, and recycling facilities.\",\n        imageName: \"stoneridge_hotspot_1.jpg\",\n        lat: 42.554594,\n        lng: -70.846218,\n      },\n    ],\n    relatedPoints: [\n      {\n        mediaType: MediaTypes.img,\n        description: \"Standish Hall is a 52-unit building that houses 294 students in apartments. With priority given to seniors,Standish Hall units have two or three bedrooms, a living room, private bath, and full kitchen.\",\n        title: \"Standish Hall Exterior\",\n        imageName: \"buildings/standish-hall/standish_hall_area_1.jpg\",\n        thumbNail: \"buildings/standish-hall/standish_hall_area_1.jpg\",\n        ignoreBasePath: true,\n        category: `${Categories.studentLife}`\n      },\n      {\n        mediaType: MediaTypes.img,\n        description: \"Opened in 2016, Peter Frates Hall is a co-ed, first-year residence hall with triple and quadruple occupancy room options. Frates Hall has air conditioning, beautiful open common spaces, and many rooms overlooking the ocean.\",\n        title: \"Peter Frates Hall\",\n        imageName: \"buildings/frates-hall/frates_hall_area_1.jpg\",\n        thumbNail: \"buildings/frates-hall/frates_hall_area_1.jpg\",\n        ignoreBasePath: true,\n        category: `${Categories.studentLife}`\n      },\n      {\n        mediaType: MediaTypes.pano,\n        description: \"Hamilton and Wenham Halls are oceanfront and co-ed residence halls open to first-year students who choose a healthy lifestyle.\",\n        title: \"Hamilton / Wenham\",\n        googlePanoImgLink: \"size=400x200&heading=143.15&pitch=7.5&fov=100\",\n        panoId: \"8XMePqDK7P1jSwbnsyUK3w\",\n        category: `${Categories.studentLife}`,\n        pov: {\n          zoom: -0.3,\n          heading: 143.15,\n          pitch: 7.5,\n        },\n      },\n    ],\n    panoConfiguration: {\n      lat: 42.5546089,\n      lng: -70.8458864,\n      pov: {\n        zoom: 1.4,\n        heading: 264.66,\n        pitch: 3.75,\n      },\n    },\n  },\n  [CampusTourKeys.marblehead]: {\n    title: \"Marblehead\",\n    basePath: \"waypoints/marblehead/\",\n    category: [Categories.studentLife],\n    panoMarkers: [\n      {\n        mediaType: MediaTypes.img,\n        title: \"Marblehead Exterior\",\n        description:\n          \"The four-story, 260-bed Marblehead Hall was built in 2011 and has many amenities, including a fitness center.\",\n        imageName: \"marblehead_hotspot_1.jpg\",\n        lat: 42.553774,\n        lng: -70.846261,\n      },\n    ],\n    relatedPoints: [\n      {\n        mediaType: MediaTypes.img,\n        description: \"Standish Hall is a 52-unit building that houses 294 students in apartments. With priority given to seniors,Standish Hall units have two or three bedrooms, a living room, private bath, and full kitchen.\",\n        title: \"Standish Hall Exterior\",\n        imageName: \"buildings/standish-hall/standish_hall_area_1.jpg\",\n        thumbNail: \"buildings/standish-hall/standish_hall_area_1.jpg\",\n        ignoreBasePath: true,\n        category: `${Categories.studentLife}`\n      },\n      {\n        mediaType: MediaTypes.img,\n        description: \"Opened in 2016, Peter Frates Hall is a co-ed, first-year residence hall with triple and quadruple occupancy room options. Frates Hall has air conditioning, beautiful open common spaces, and many rooms overlooking the ocean.\",\n        title: \"Peter Frates Hall\",\n        imageName: \"buildings/frates-hall/frates_hall_area_1.jpg\",\n        thumbNail: \"buildings/frates-hall/frates_hall_area_1.jpg\",\n        ignoreBasePath: true,\n        category: `${Categories.studentLife}`\n      },\n      {\n        mediaType: MediaTypes.pano,\n        description: \"Hamilton and Wenham Halls are oceanfront and co-ed residence halls open to first-year students who choose a healthy lifestyle.\",\n        title: \"Hamilton / Wenham\",\n        googlePanoImgLink: \"size=400x200&heading=143.15&pitch=7.5&fov=100\",\n        panoId: \"8XMePqDK7P1jSwbnsyUK3w\",\n        category: `${Categories.studentLife}`,\n        pov: {\n          zoom: -0.3,\n          heading: 143.15,\n          pitch: 7.5,\n        },\n      },\n    ],\n    panoConfiguration: {\n      lat: 42.5538981,\n      lng: -70.8461563,\n      pov: {\n        zoom: 0.5,\n        heading: 196.39,\n        pitch: 0,\n      },\n    },\n  },\n  [CampusTourKeys.bayview]: {\n    title: \"Bayview\",\n    basePath: \"waypoints/bayview/\",\n    category: [Categories.studentLife],\n    panoMarkers: [\n      {\n        mediaType: MediaTypes.img,\n        title: \"Bayview Exterior\",\n        description:\n          \"Bayview Hall is a co-ed residence hall that includes spaces for students in either double, triple, or quadruple occupancy, all with private bathrooms.\",\n        imageName: \"bayview_hotspot_1.jpg\",\n        lat: 42.554126,\n        lng: -70.846596,\n      },\n    ],\n    relatedPoints: [\n      {\n        mediaType: MediaTypes.img,\n        description: \"Standish Hall is a 52-unit building that houses 294 students in apartments. With priority given to seniors,Standish Hall units have two or three bedrooms, a living room, private bath, and full kitchen.\",\n        title: \"Standish Hall Exterior\",\n        imageName: \"buildings/standish-hall/standish_hall_area_1.jpg\",\n        thumbNail: \"buildings/standish-hall/standish_hall_area_1.jpg\",\n        ignoreBasePath: true,\n        category: `${Categories.studentLife}`\n      },\n      {\n        mediaType: MediaTypes.img,\n        description: \"Opened in 2016, Peter Frates Hall is a co-ed, first-year residence hall with triple and quadruple occupancy room options. Frates Hall has air conditioning, beautiful open common spaces, and many rooms overlooking the ocean.\",\n        title: \"Peter Frates Hall\",\n        imageName: \"buildings/frates-hall/frates_hall_area_1.jpg\",\n        thumbNail: \"buildings/frates-hall/frates_hall_area_1.jpg\",\n        ignoreBasePath: true,\n        category: `${Categories.studentLife}`\n      },\n      {\n        mediaType: MediaTypes.pano,\n        description: \"Hamilton and Wenham Halls are oceanfront and co-ed residence halls open to first-year students who choose a healthy lifestyle.\",\n        title: \"Hamilton / Wenham\",\n        googlePanoImgLink: \"size=400x200&heading=143.15&pitch=7.5&fov=100\",\n        panoId: \"8XMePqDK7P1jSwbnsyUK3w\",\n        category: `${Categories.studentLife}`,\n        pov: {\n          zoom: -0.3,\n          heading: 143.15,\n          pitch: 7.5,\n        },\n      },\n    ],\n    panoConfiguration: {\n      lat: 42.5540628,\n      lng: -70.8464078,\n      pov: {\n        zoom: -1,\n        heading: 320.28,\n        pitch: 9,\n      },\n    },\n  },\n  [CampusTourKeys.tupperLawn]: {\n    title: \"Tupper Lawn\",\n    basePath: \"waypoints/tupper/\",\n    category: [Categories.studentLife],\n    panoMarkers: [\n      {\n        mediaType: MediaTypes.img,\n        title: \"Tupper Lawn Fountain\",\n        description:\n          \"Completed in 2005, the Fountain at Water’s Edge was commissioned by Endicott in honor of the Post family—longtime supporters of the College. \",\n        imageName: \"tupperlawn_hotspot_1.jpg\",\n        lat: 42.553441,\n        lng: -70.848854,\n      },\n    ],\n    relatedPoints: [\n      {\n        wayPointKey: CampusTourKeys.misselwood,\n        hotspotNum: 1,\n      },\n      {\n        wayPointKey: CampusTourKeys.mingoBeach,\n        hotspotNum: 1,\n      },\n      {\n        wayPointKey: CampusTourKeys.amphitheater,\n        hotspotNum: 1,\n      },\n    ],\n    panoConfiguration: {\n      lat: 42.5536424,\n      lng: -70.848969,\n      pov: {\n        zoom: 1.4,\n        heading: 167.76,\n        pitch: 3.7,\n      },\n    },\n  },\n  [CampusTourKeys.northField]: {\n    title: \"North Field\",\n    basePath: \"waypoints/north-field/\",\n    category: [Categories.studentLife, Categories.sport],\n    panoMarkers: [\n      {\n        mediaType: MediaTypes.img,\n        title: \"North Field\",\n        description:\n          \"North Field is the home of Endicott’s baseball and field hockey teams. In 2012, a new turf surface was added along with new lights to allow for extended use. \",\n        imageName: \"northfield_hotspot_1.jpg\",\n        x: 0,\n        y: 1,\n        z: -2,\n      },\n      {\n        mediaType: MediaTypes.img,\n        title: \"North Field Aerial\",\n        imageName: \"northfield_hotspot_2.jpg\",\n        description:\n          \"North Field serves as a practice field for Endicott’s varsity programs and as a hub for intramural sports. The facility can accommodate up to 600 spectators.\",\n        x: -3,\n        y: 2,\n        z: -3,\n      },\n    ],\n    relatedPoints: [\n      {\n        wayPointKey: CampusTourKeys.hempsteadStadium,\n        hotspotNum: 1,\n      },\n      {\n        wayPointKey: CampusTourKeys.softballComplex,\n        hotspotNum: 1,\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        description: \"The Post Center is home to the School of Sport Science, the MacDonald Gymnasium, the field house, and a full-service fitness center.\",\n        title: \"Post Center\",\n        imageName: \"buildings/post-center/post_center_area_1.jpg\",\n        thumbNail: \"buildings/post-center/post_center_area_1_thumb.jpg\",\n        ignoreBasePath: true,\n        category: `${Categories.studentLife}, ${Categories.sport}`\n      }\n    ],\n    panoImage: \"northfield_basepoint.jpg\",\n    panoImageThumb: \"northfield_basepoint_thumb.jpg\",\n  },\n  [CampusTourKeys.theLodge]: {\n    title: \"The Lodge\",\n    basePath: \"waypoints/lodge/\",\n    category: [Categories.studentLife],\n    scaleX: true,\n    cameraConfig: {\n      startPoint: [-80, 1.1, 5],\n      markerScale: [8,8,8],\n    },\n    panoImage: \"the_lodge_pano.jpg\",\n    panoImageThumb: \"the_lodge_pano_thumb.jpg\",\n    panoMarkers: [\n      {\n        mediaType: MediaTypes.img,\n        title: \"The Lodge\",\n        description:\n          \"Located between the Post Center and Tower Hall, the Lodge provides a variety of breakfast, lunch, and late-night dining options. \",\n        imageName: \"lodge_hotspot_1.jpg\",\n        x: 10,\n        y: 2,\n        z: -20,\n      },\n      {\n        mediaType: MediaTypes.img,\n        title: \"Lodge Fireplace\",\n        description:\n          \"With plenty of comfortable seating, games, a wood stove, and more; the Lodge is one of the most popular places on campus for students to get together. \",\n        imageName: \"lodge_hotspot_2.jpg\",\n        x: 10,\n        y: 2,\n        z: 0,\n      },\n      {\n        mediaType: MediaTypes.img,\n        title: \"Lodge Pool Table\",\n        description:\n          \"As a way to exercise the mind between studies, the Lodge offers a game of pool for the students.\",\n        imageName: \"lodge_hotspot_3.jpg\",\n        x: 10,\n        y: 2,\n        z: 20,\n      },\n    ],\n    relatedPoints: [\n      {\n        mediaType: MediaTypes.img,\n        description: \"\",\n        title: \"Gully’s Seating Areas\",\n        imageName: \"buildings/gullys/gullys_area_2.jpg\",\n        thumbNail: \"buildings/gullys/gullys_area_2.jpg\",\n        ignoreBasePath: true,\n        category: `${Categories.studentLife}`\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        description: \"On the upper level of the Callahan Center you will find the main dining hall, which offers a wide variety of freshly prepared meals.\",\n        title: \"Callahan Center Dining Area\",\n        imageName: \"buildings/callahan-center/callahan_center_area_1.jpg\",\n        thumbNail: \"buildings/callahan-center/callahan_center_area_1_thumb.jpg\",\n        ignoreBasePath: true,\n        category: `${Categories.studentLife}`\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        description: \"On the upper level of the Callahan Center you will find the main dining hall, which offers a wide variety of freshly prepared meals.\",\n        title: \"Samuel C. Wax Academic Center and Hempstead Commons\",\n        imageName: \"buildings/wax-center/wax_academic_center_area_9.jpg\",\n        thumbNail: \"buildings/wax-center/wax_academic_center_area_9_thumb.jpg\",\n        ignoreBasePath: true,\n        category: `${Categories.studentLife}`\n      },\n    ],\n  },\n  [CampusTourKeys.firstYearQuad]: {\n    title: \"First-Year Quad\",\n    basePath: \"waypoints/first-year/\",\n    category: [Categories.studentLife],\n    panoMarkers: [\n      {\n        mediaType: MediaTypes.youtube,\n        title: \"First-Year Area\",\n        description:\n          \"The First-Year Area provides new students the opportunity to adjust to college together in a supportive and vibrant environment with focused programming and college support.\",\n        videoUrl: \"q4lOcrhsaBo\",\n        x: 0,\n        y: -2,\n        z: -4,\n      },\n    ],\n    relatedPoints: [\n      {\n        mediaType: MediaTypes.pano,\n        description: \"Hamilton and Wenham Halls are oceanfront and co-ed residence halls open to first-year students who choose a healthy lifestyle.\",\n        title: \"Hamilton / Wenham\",\n        googlePanoImgLink: \"size=400x200&heading=143.15&pitch=7.5&fov=100\",\n        panoId: \"8XMePqDK7P1jSwbnsyUK3w\",\n        category: `${Categories.studentLife}`,\n        pov: {\n          zoom: -0.3,\n          heading: 143.15,\n          pitch: 7.5,\n        },\n      },\n      {\n        mediaType: MediaTypes.img,\n        description: \"The co-ed, first-year Reynolds Hall offers common laundry, kitchen, and lounge space. Reynolds Hall is a Gull Leadership Living Learning Community (LLC) for first-year students looking to develop the skills and knowledge to become student leaders and to successfully transition to college life.\",\n        title: \"Reynolds Hall Exterior\",\n        imageName: \"buildings/reynolds-hall/reynolds_hall_area_1.jpg\",\n        thumbNail: \"buildings/reynolds-hall/reynolds_hall_area_1.jpg\",\n        ignoreBasePath: true,\n        category: `${Categories.studentLife}`\n      },\n      {\n        mediaType: MediaTypes.pano,\n        description: `The four-story, 260-bed Marblehead Hall was built in 2011 and has many amenities, including a fitness center.\n        It includes spacious lounges, kitchenettes on every floor, study nooks, and a fitness center.`,\n        title: \"Marblehead\",\n        googlePanoImgLink: \"size=400x200&heading=196.39&pitch=0&fov=100\",\n        panoId: \"INdhlUpJcxk3X4sTx-FkAQ\",\n        category: `${Categories.studentLife}`,\n        pov: {\n          zoom: 0.5,\n          heading: 196.39,\n          pitch: 0,\n        },\n      },\n    ],\n    panoImage: \"first_year_quad.jpg\",\n    panoImageThumb: \"first_year_quad_thumb.jpg\",\n  },\n  [CampusTourKeys.misselwood]: {\n    title: \"Misselwood\",\n    basePath: \"waypoints/misselwood/\",\n    category: [Categories.studentLife],\n    panoMarkers: [\n      {\n        mediaType: MediaTypes.img,\n        title: \"Misselwood\",\n        description:\n          \"This 4.5 acre oceanfront estate houses various events, as well as our non-traditional classroom, La Chanterelle\",\n        imageName: \"misselwood_hotspot_1.jpg\",\n        lat: 42.550786,\n        lng: -70.838295,\n      },\n      {\n        mediaType: MediaTypes.img,\n        title: \"Misselwood Exterior\",\n        imageName: \"misselwood_hotspot_2.jpg\",\n        description:\n          \"The Misselwood Estate is the perfect venue for weddings, corporate events, or social meetings and gatherings. It also hosts the Misselwood Concours d’Elegance.\",\n        lat: 42.550796,\n        lng: -70.838206,\n      },\n      {\n        mediaType: MediaTypes.img,\n        title: \"Misselwood Summer Concert\",\n        imageName: \"misselwood_hotspot_3.jpg\",\n        description:\n          \"Misselwood and its beautiful oceanside lawn is the perfect venue for all types of events, including our annual Summer Concert Series. \",\n        lat: 42.550732,\n        lng: -70.838371,\n      },\n    ],\n    relatedPoints: [\n      {\n        title: \"Misselwood Coast\",\n        description:\n          \"With panoramic view of the Atlantic Ocean and Boston’s historic North Shore, Misselwood is a place you won’t soon forget.\",\n        imageName: \"misselwood_related_1.jpg\",\n      },\n      {\n        title: \"Misselwood Wedding\",\n        description:\n          \"As the prime location on the North Shore for weddings, Misselwood offers a particularly beautiful and stunning setting for ceremonies and receptions.\",\n        imageName: \"misselwood_related_2.jpg\",\n      },\n      {\n        mediaType: MediaTypes.pano,\n        description: \"Completed in 2005, the Fountain at Water’s Edge was commissioned by Endicott in honor of the Post family—longtime supporters of the College.\",\n        title: \"Tupper Lawn\",\n        googlePanoImgLink: \"size=400x200&heading=167.76&pitch=3.7&fov=100\",\n        panoId: \"lD0qbY7VXQAncF7nDxyVYQ\",\n        category: `${Categories.studentLife}`,\n        pov: {\n          zoom: 1.4,\n          heading: 167.76,\n          pitch: 3.7,\n        },\n      }\n    ],\n    panoConfiguration: {\n      lat: 42.550863,\n      lng: -70.8383515,\n      pov: {\n        zoom: 0,\n        heading: 167.65,\n        pitch: 7.5,\n      },\n    },\n  },\n  [CampusTourKeys.mingoBeach]: {\n    title: \"Mingo Beach\",\n    basePath: \"waypoints/mingo-beach/\",\n    category: [Categories.studentLife],\n    panoMarkers: [\n      {\n        mediaType: MediaTypes.youtube,\n        title: \"Mingo Beach\",\n        description:\n          \"One of three private beaches on campus, Mingo Beach is a popular place for students to relax and hang out. \",\n        thumbNail: \"mingobeach_hotspot_1.jpg\",\n        imageName: \"mingobeach_hotspot_1.jpg\",\n        videoUrl: \"xZBDJrFfAEg\",\n        x: -2,\n        y: -2,\n        z: -4,\n      },\n      {\n        mediaType: MediaTypes.img,\n        title: \"Beach Sunset\",\n        imageName: \"mingobeach_hotspot_2.jpg\",\n        description:\n          \"On the other side of Misselwood sits Endicott Beach, which features a grassy lawn overlooking the water, a boat house, and a beach volleyball court. \",\n        x: 1,\n        y: -2,\n        z: -4,\n      },\n      {\n        mediaType: MediaTypes.img,\n        title: \"Beach Sunrise\",\n        imageName: \"mingobeach_hotspot_3.jpg\",\n        description:\n          \"Endicott’s three private beaches are ideal spots to watch breathtaking sunrises.\",\n        x: 3,\n        y: 0,\n        z: -4,\n      },\n      {\n        mediaType: MediaTypes.img,\n        title: \"Patch Beach\",\n        imageName: \"mingobeach_hotspot_4.jpg\",\n        description:\n          \"Patch Beach—commonly referred to as Tupper Beach—is a long stretch of sandy beach beyond Tupper Manor and the Wylie Inn & Conference Center. \",\n        x: 6,\n        y: 0,\n        z: -4,\n      },\n    ],\n    relatedPoints: [\n      {\n        wayPointKey: CampusTourKeys.misselwood,\n        hotspotNum: 1,\n      },\n      {\n        wayPointKey: CampusTourKeys.tupperLawn,\n        hotspotNum: 1,\n      },\n      {\n        wayPointKey: CampusTourKeys.amphitheater,\n        hotspotNum: 1,\n      },\n    ],\n    panoImage: \"mingo_beach_pano.jpg\",\n    panoImageThumb: \"mingo_beach_pano_thumb.jpg\",\n  },\n  [CampusTourKeys.amphitheater]: {\n    title: \"Endicott Lakes/Amphitheater\",\n    basePath: \"waypoints/lakes/\",\n    category: [Categories.studentLife],\n    panoMarkers: [\n      {\n        mediaType: MediaTypes.img,\n        title: \"Endicott Lakes\",\n        imageName: \"lakes_amphitheater_hotspot_1.jpg\",\n        description:\n          \"The Lakes sit at the heart of Endicott College’s campus and are a constant source of beauty for walks around campus and the annual regatta. \",\n        lat: 42.5537,\n        lng: -70.841429,\n      },\n      {\n        mediaType: MediaTypes.img,\n        title: \"Amphitheater\",\n        imageName: \"lakes_amphitheater_hotspot_2.jpg\",\n        description:\n          \"The brick and stone Amphitheater graces the lawn overlooking The Lakes. The venue is a favorite spot for classes, gatherings, and quiet study on beautiful days. \",\n        lat: 42.553784,\n        lng: -70.841482,\n      },\n    ],\n    relatedPoints: [\n      {\n        wayPointKey: CampusTourKeys.mingoBeach,\n        hotspotNum: 1,\n      },\n      {\n        ignoreBasePath: true,\n        mediaType: MediaTypes.img,\n        imageName: \"buildings/center-for-belonging/center_for_belonging_area_1.jpg\",\n        thumbNail: \"buildings/center-for-belonging/center_for_belonging_area_1_thumb.jpg\",\n        title: \"Center for Belonging\",\n        description: \"Unveiled in the fall of 2022, the newly renovated Center for Belonging is the campus hub for inclusive programming and activities, as well as all things spiritual life.\",\n      },\n      {\n        wayPointKey: CampusTourKeys.collegeHall,\n        hotspotNum: 1,\n      },\n    ],\n    panoConfiguration: {\n      lat: 42.5538399,\n      lng: -70.8412685,\n      pov: {\n        zoom: -2,\n        heading: 190,\n        pitch: -5,\n      },\n    },\n  },\n  [CampusTourKeys.collegeHall]: {\n    title: \"College Hall\",\n    basePath: \"waypoints/college-hall/\",\n    video: \"https://youtu.be/5uJJmnbyLBY\",\n    category: [Categories.studentLife],\n    cameraConfig: {\n      startPoint: [300, 1.1, 5],\n      markerScale: [30, 30, 30],\n    },\n    panoMarkers: [\n      {\n        mediaType: MediaTypes.img,\n        title: \"College Hall\",\n        description:\n          \"Built in 1916, College Hall is home to our administrative offices—including the Office of the President, Office of Admission, financial aid, registrar, bursar, Information Technology Support, and business office. \",\n        imageName: \"college_hall_hotspot_1.jpg\",\n        x: 0,\n        y: 0,\n        z: -40,\n      },\n      {\n        mediaType: MediaTypes.img,\n        title: \"College Hall Lobby\",\n        imageName: \"college_hall_hotspot_2.jpg\",\n        x: 0,\n        y: 0,\n        z: 0,\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        title: \"College Hall Coastal View\",\n        imageName: \"college_hall_hotspot_3.jpg\",\n        thumbNail: \"college_hall_hotspot_3_thumb.jpg\",\n        x: 20,\n        y: 0,\n        z: 60,\n      },\n    ],\n    relatedPoints: [\n      {\n        wayPointKey: CampusTourKeys.policeBuilding,\n        hotspotNum: 1,\n      },\n      {\n        ignoreBasePath: true,\n        mediaType: MediaTypes.img,\n        imageName: \"buildings/center-for-belonging/center_for_belonging_area_1.jpg\",\n        thumbNail: \"buildings/center-for-belonging/center_for_belonging_area_1_thumb.jpg\",\n        title: \"Center for Belonging\",\n        description: \"Unveiled in the fall of 2022, the newly renovated Center for Belonging is the campus hub for inclusive programming and activities, as well as all things spiritual life.\",\n      },\n      {\n        mediaType: MediaTypes.pano,\n        description: \"The Lakes sit at the heart of Endicott College’s campus and are a constant source of beauty for walks around campus and the annual regatta.\",\n        title: \"Endicott Lakes/Amphitheater\",\n        googlePanoImgLink: \"size=400x200&heading=190&pitch=-5&fov=100\",\n        panoId: \"MhvKhoe_z4e4HG0N4mDDCQ\",\n        category: `${Categories.studentLife}`,\n        pov: {\n          zoom: -2,\n          heading: 190,\n          pitch: -5,\n        },\n      }\n    ],\n    panoImage: \"college_hall_pano.jpg\",\n    panoImageThumb: \"college_hall_pano_thumb.jpg\",\n  },\n  [CampusTourKeys.hempsteadStadium]: {\n    title: \"Melissa Hempstead '69 Stadium\",\n    basePath: \"waypoints/hempstead-stadium/\",\n    category: [Categories.studentLife, Categories.sport],\n    panoMarkers: [\n      {\n        mediaType: MediaTypes.img,\n        title: \"Hempstead Stadium\",\n        description:\n          \"Built in 2003, Hempstead Stadium is home to Endicott’s football, men’s lacrosse, women’s lacrosse, rugby, men’s soccer, and women’s soccer programs. \",\n        imageName: \"hempstead_stadium_hotspot_1.jpg\",\n        lat: 42.554865,\n        lng: -70.841693,\n      },\n      {\n        mediaType: MediaTypes.img,\n        title: \"Hempstead Stadium Entrance\",\n        description:\n          \"The stadium is equipped with a FieldTurf surface and has seating for 3,000 spectators, including new visitor stands with an 800-person capacity built in 2012. \",\n        imageName: \"hempstead_stadium_hotspot_2.jpg\",\n        lat: 42.55488,\n        lng: -70.841664,\n      },\n    ],\n    relatedPoints: [\n      {\n        wayPointKey: CampusTourKeys.softballComplex,\n        hotspotNum: 1,\n      },\n      {\n        wayPointKey: CampusTourKeys.northField,\n        hotspotNum: 1,\n      },\n      {\n        mediaType: MediaTypes.webgl,\n        description: \"The Post Center is home to the School of Sport Science, the MacDonald Gymnasium, the field house, and a full-service fitness center.\",\n        title: \"Post Center\",\n        imageName: \"buildings/post-center/post_center_area_1.jpg\",\n        thumbNail: \"buildings/post-center/post_center_area_1_thumb.jpg\",\n        ignoreBasePath: true,\n        category: `${Categories.studentLife}, ${Categories.sport}`\n      }\n    ],\n    panoConfiguration: {\n      lat: 42.5548107,\n      lng: -70.8416129,\n      pov: {\n        zoom: -0.5,\n        heading: 336.99,\n        pitch: 7.5,\n      },\n    },\n  },\n  [CampusTourKeys.policeBuilding]: {\n    title: \"Department of Public Safety & Police\",\n    basePath: \"waypoints/public-safety/\",\n    category: [Categories.studentLife],\n    panoMarkers: [\n      {\n        mediaType: MediaTypes.img,\n        title: \"Public Safety\",\n        imageName: \"public_safety_hotspot_1.jpg\",\n        description:\n          \"With a staff of public safety officers as well as sworn police officers, our commitment to safety is a top priority.\",\n        lat: 42.552193,\n        lng: -70.842744,\n      },\n      {\n        mediaType: MediaTypes.img,\n        title: \"Public Safety Sign\",\n        imageName: \"public_safety_hotspot_2.jpg\",\n        description:\n          \"Endicott’s emergency blue light network, visible throughout the campus, adds an extra layer of security for students in need of immediate assistance.\",\n        lat: 42.552225,\n        lng: -70.842705,\n      },\n      {\n        mediaType: MediaTypes.img,\n        title: \"Public Safety Exterior\",\n        imageName: \"public_safety_hotspot_1.jpg\",\n        description:\n          \"The department also oversees emergency medical response, fire safety and detection, and parking enforcement, as well as other community policing functions.\",\n        lat: 42.552293,\n        lng: -70.842682,\n      },\n    ],\n    relatedPoints: [\n      {\n        ignoreBasePath: true,\n        mediaType: MediaTypes.img,\n        imageName: \"buildings/center-for-belonging/center_for_belonging_area_1.jpg\",\n        thumbNail: \"buildings/center-for-belonging/center_for_belonging_area_1_thumb.jpg\",\n        title: \"Center for Belonging\",\n        description: \"Unveiled in the fall of 2022, the newly renovated Center for Belonging is the campus hub for inclusive programming and activities, as well as all things spiritual life.\",\n      },\n      {\n        wayPointKey: CampusTourKeys.collegeHall,\n        hotspotNum: 1,\n      },\n      {\n        wayPointKey: CampusTourKeys.theLodge,\n        hotspotNum: 1,\n      },\n    ],\n    panoConfiguration: {\n      lat: 42.5521103,\n      lng: -70.8425188,\n      pov: {\n        zoom: -0.5,\n        heading: 322.03,\n        pitch: 7.5,\n      },\n    },\n  },\n  [CampusTourKeys.softballComplex]: {\n    title: \"Softball Complex\",\n    basePath: \"waypoints/softball/\",\n    category: [Categories.studentLife, Categories.sport],\n    panoMarkers: [\n      {\n        mediaType: MediaTypes.img,\n        title: \"Softball Complex\",\n        description:\n          \"Surfaced with a “Fenway Mix” infield and a bluegrass/ryegrass combination outfield. The playing surface is state-of-the-art. The facility can accommodate 1,500 patrons\",\n        imageName: \"softball_complex_hotspot_1.jpg\",\n        x: -4,\n        y: 0,\n        z: -2,\n      },\n    ],\n    relatedPoints: [\n      {\n        wayPointKey: CampusTourKeys.northField,\n        hotspotNum: 1,\n      },\n      {\n        wayPointKey: CampusTourKeys.hempsteadStadium,\n        hotspotNum: 1,\n      },\n      {\n        wayPointKey: CampusTourKeys.tupperLawn,\n        hotspotNum: 1,\n      },\n    ],\n    panoImage: \"softball_basepoint.jpg\",\n    panoImageThumb: \"softball_basepoint_thumb.jpg\",\n  },\n  [CampusTourKeys.hamilton]: {\n    title: \"Hamilton/Wenham\",\n    basePath: \"waypoints/hamilton/\",\n    category: [Categories.studentLife],\n    panoMarkers: [\n      {\n        mediaType: MediaTypes.img,\n        title: \"Wenham Exterior\",\n        description:\n          \"Wenham Hall is a Healthy Living Learning Community (LLC). A former carriage house and stable, the first-year residence building was renovated in 2009 to make room for Endicott's growing student population.\",\n        imageName: \"hamilton_wenham_hotspot_1.jpg\",\n        lat: 42.551894,\n        lng: -70.835933,\n      },\n      {\n        mediaType: MediaTypes.img,\n        title: \"Hamilton Exterior\",\n        description:\n          \"Hamilton Hall is a Healthy Living Learning Community (LLC) open to first-year students. Located in a converted Dutch colonial house, Hamilton Hall is just steps from the beach.\",\n        imageName: \"hamilton_wenham_hotspot_2.jpg\",\n        lat: 42.55183,\n        lng: -70.836084,\n      },\n    ],\n    relatedPoints: [\n      {\n        wayPointKey: CampusTourKeys.marblehead,\n        hotspotNum: 1,\n      },\n      {\n        wayPointKey: CampusTourKeys.bayview,\n        hotspotNum: 1,\n      },\n      {\n        wayPointKey: CampusTourKeys.stoneridge,\n        hotspotNum: 1,\n      },\n    ],\n    panoConfiguration: {\n      lat: 42.5519815,\n      lng: -70.8361278,\n      pov: {\n        zoom: -0.3,\n        heading: 143.15,\n        pitch: 7.5,\n      },\n    },\n  },\n};\n\nexport default { ...data, ...newToursData } ;\n\nexport const panoOptions: StreetViewOptions = {\n  fullscreenControl: false,\n  addressControl: false,\n  motionTracking: false,\n  visible: true,\n  linksControl: true,\n  enableCloseButton: false,\n  standAlone: true,\n  showRoadLabels: false,\n  zoomControl: true,\n  clickToGo: true,\n};\n// https://developers.google.com/maps/documentation/javascript/reference?hl=en#StreetViewPanoramaOptions\n\nexport const mapContainerStyle: MapsContainerStyle = {\n  height: \"100vh\",\n  width: \"100%\",\n};\n","import { WayPointAsset } from './../common/interfaces/IMaps';\nimport { BuildingTourKeys, CampusTourKeys } from \"../common/models/WayPoints\";\nimport { IMarker } from \"../common/interfaces/IMaps\";\nimport { flyMenuData } from './menuData'\nimport { MenuTypes } from \"../common/models/Menu\";\nimport { data as buildingData } from \"./buildingsData\";\nimport { data as waypointsData } from \"./waypointsData\";\n\ntype MarkerType = {\n  [idx: number]: string;\n};\n\nconst buildingIcon = require(\"../assets/wayfinding/map_pin_buildings.svg\");\nconst waypointIcon = require(\"../assets/wayfinding/map_pin_waypoints.svg\");\nexport const markerType: MarkerType = {\n  1: \"buildings\",\n  2: \"campus-tour\",\n};\n\nconst getMarkerImg = (slug: string, assetIdx: number, type: string) => {\n  let path: string = '';\n  if (type === 'building') {\n    const current = buildingData[slug]\n    const basePath = current.basePath;\n    const imagePath = (current.assets as WayPointAsset[])[assetIdx].imageName\n    path = require(`../assets/${basePath}${imagePath}`)\n  }\n\n  if (type === 'destination') {\n    const panoScreen = (lat: number, lng: number, h: number) =>\n      `https://maps.googleapis.com/maps/api/streetview?size=260x450&location=${lat},${lng}&fov=80&heading=${h}&pitch=0&key=${process.env.REACT_APP_MAP_KEY}`;\n\n    const current = waypointsData[slug]\n    const basePath = current.basePath;\n    path = current?.panoImageThumb ? require(`../assets/${basePath}${current.panoImageThumb}`) : panoScreen(current.panoConfiguration?.lat as number, current.panoConfiguration?.lng as number, current.panoConfiguration?.pov.heading as number)\n  }\n  return path\n}\n\nexport const buildingMarkers: IMarker[] = [\n  {\n    title: flyMenuData[MenuTypes.student].menuItems[0].title,\n    image: getMarkerImg(BuildingTourKeys.callahanCenter, 1, 'building'),\n    lat: 42.553318,\n    lng: -70.843389,\n    iconPath: buildingIcon,\n    slug: BuildingTourKeys.callahanCenter,\n    type: markerType[1],\n  },\n  {\n    title: flyMenuData[MenuTypes.student].menuItems[2].title,\n    image: getMarkerImg(BuildingTourKeys.manninenCenterForArts, 1, 'building'),\n    lat: 42.552649,\n    lng: -70.83953,\n    iconPath: buildingIcon,\n    slug: BuildingTourKeys.manninenCenterForArts,\n    type: markerType[1],\n  },\n  {\n    title: flyMenuData[MenuTypes.student].menuItems[3].title,\n    image: getMarkerImg(BuildingTourKeys.halleLibrarya, 2, 'building'),\n    lat: 42.553184,\n    lng: -70.840865,\n    iconPath: buildingIcon,\n    slug: BuildingTourKeys.halleLibrarya,\n    type: markerType[1],\n  },\n  {\n    title: flyMenuData[MenuTypes.student].menuItems[4].title,\n    image: getMarkerImg(BuildingTourKeys.waxAcademicCenter, 0, 'building'),\n    lat: 42.554204,\n    lng: -70.840648,\n    iconPath: buildingIcon,\n    slug: BuildingTourKeys.waxAcademicCenter,\n    type: markerType[1],\n  },\n  {\n    title: flyMenuData[MenuTypes.student].menuItems[6].title,\n    image: getMarkerImg(BuildingTourKeys.businessSchool, 1, 'building'),\n    lat: 42.553772,\n    lng: -70.842843,\n    iconPath: buildingIcon,\n    slug: BuildingTourKeys.businessSchool,\n    type: markerType[1],\n  },\n  {\n    title: flyMenuData[MenuTypes.student].menuItems[7].title,\n    image: getMarkerImg(BuildingTourKeys.judgeCenter, 0, 'building'),\n    lat: 42.553789,\n    lng: -70.842567,\n    iconPath: buildingIcon,\n    slug: BuildingTourKeys.judgeCenter,\n    type: markerType[1],\n  },\n  {\n    title: flyMenuData[MenuTypes.student].menuItems[8].title,\n    image: getMarkerImg(BuildingTourKeys.postCenter, 1, 'building'),\n    lat: 42.555021,\n    lng: -70.839789,\n    iconPath: buildingIcon,\n    slug: BuildingTourKeys.postCenter,\n    type: markerType[1],\n  },\n  {\n    title: flyMenuData[MenuTypes.student].menuItems[9].title,\n    image: getMarkerImg(BuildingTourKeys.bourqueArena, 1, 'building'),\n    lat: 42.556988,\n    lng: -70.847434,\n    iconPath: buildingIcon,\n    slug: BuildingTourKeys.bourqueArena,\n    type: markerType[1],\n  },\n  {\n    title: flyMenuData[MenuTypes.student].menuItems[10].title,\n    image: getMarkerImg(BuildingTourKeys.nursingBuilding, 6, 'building'),\n    lat: 42.5545331361293,\n    lng: -70.84173528794518,\n    iconPath: buildingIcon,\n    slug: BuildingTourKeys.nursingBuilding,\n    type: markerType[1],\n  },\n  {\n    title: flyMenuData[MenuTypes.student].menuItems[11].title,\n    image: getMarkerImg(BuildingTourKeys.fratesHall, 0, 'building'),\n    lat: 42.55169,\n    lng: -70.838013,\n    iconPath: buildingIcon,\n    slug: BuildingTourKeys.fratesHall,\n    type: markerType[1],\n  },\n  {\n    title: flyMenuData[MenuTypes.student].menuItems[12].title,\n    image: getMarkerImg(BuildingTourKeys.reynoldsHall, 0, 'building'),\n    lat: 42.552931,\n    lng: -70.838156,\n    iconPath: buildingIcon,\n    slug: BuildingTourKeys.reynoldsHall,\n    type: markerType[1],\n  },\n  {\n    title: flyMenuData[MenuTypes.student].menuItems[13].title,\n    image: getMarkerImg(BuildingTourKeys.stadishHall, 0, 'building'),\n    lat: 42.556002,\n    lng: -70.845346,\n    iconPath: buildingIcon,\n    slug: BuildingTourKeys.stadishHall,\n    type: markerType[1],\n  },\n  {\n    title: flyMenuData[MenuTypes.student].menuItems[14].title,\n    image: getMarkerImg(BuildingTourKeys.gullys, 2, 'building'),\n    lat: 42.5542746,\n    lng: -70.8423543,\n    iconPath: buildingIcon,\n    slug: BuildingTourKeys.gullys,\n    type: markerType[1],\n  },\n];\n\n// Start Waypoints\nexport const waypointMarkers: IMarker[] = [\n  {\n    title: \"Welcome\",\n    image: getMarkerImg(CampusTourKeys.frontGate, 1, 'destination'),\n    lat: 42.552296,\n    lng: -70.842506,\n    iconPath: waypointIcon,\n    slug: CampusTourKeys.frontGate,\n    type: markerType[2],\n  },\n  {\n    title: \"Center for Belonging\",\n    image: getMarkerImg(CampusTourKeys.centerForBelonging, 1, 'destination'),\n    lat: 42.5529921,\n    lng: -70.8425502,\n    iconPath: waypointIcon,\n    slug: CampusTourKeys.centerForBelonging,\n    type: markerType[2],\n  },\n  {\n    title: \"Stoneridge\",\n    image: getMarkerImg(CampusTourKeys.stoneridge, 1, 'destination'),\n    lat: 42.5546089,\n    lng: -70.8458864,\n    iconPath: waypointIcon,\n    slug: CampusTourKeys.stoneridge,\n    type: markerType[2],\n  },\n  {\n    title: \"Marblehead\",\n    image: getMarkerImg(CampusTourKeys.marblehead, 1, 'destination'),\n    lat: 42.5538981,\n    lng: -70.8461563,\n    iconPath: waypointIcon,\n    slug: CampusTourKeys.marblehead,\n    type: markerType[2],\n  },\n  {\n    title: \"Bayview\",\n    image: getMarkerImg(CampusTourKeys.bayview, 1, 'destination'),\n    lat: 42.5540628,\n    lng: -70.8464078,\n    iconPath: waypointIcon,\n    slug: CampusTourKeys.bayview,\n    type: markerType[2],\n  },\n  // {\n  //   title: \"Tupper Lawn\",\n  //   image: getMarkerImg(CampusTourKeys.tupperLawn, 1, 'destination'),\n  //   lat: 42.5536424,\n  //   lng: -70.848969,\n  //   iconPath: waypointIcon,\n  //   slug: CampusTourKeys.tupperLawn,\n  //   type: markerType[2],\n  // },\n  {\n    title: \"North Field\",\n    image: getMarkerImg(CampusTourKeys.northField, 1, 'destination'),\n    lat: 42.556106,\n    lng: -70.839572,\n    iconPath: waypointIcon,\n    slug: CampusTourKeys.northField,\n    type: markerType[2],\n  },\n  {\n    title: \"The Lodge\",\n    image: getMarkerImg(CampusTourKeys.theLodge, 1, 'destination'),\n    lat: 42.553612,\n    lng: -70.838247,\n    iconPath: waypointIcon,\n    slug: CampusTourKeys.theLodge,\n    type: markerType[2],\n  },\n  // {\n  //   title: \"First-Year Quad\",\n  //   image: getMarkerImg(CampusTourKeys.firstYearQuad, 1, 'destination'),\n  //   lat: 42.553611,\n  //   lng: -70.838247,\n  //   iconPath: waypointIcon,\n  //   slug: CampusTourKeys.firstYearQuad,\n  // },\n  {\n    title: \"Misselwood\",\n    image: getMarkerImg(CampusTourKeys.misselwood, 1, 'destination'),\n    lat: 42.550863,\n    lng: -70.8383515,\n    iconPath: waypointIcon,\n    slug: CampusTourKeys.misselwood,\n    type: markerType[2],\n  },\n  {\n    title: \"Mingo Beach\",\n    image: getMarkerImg(CampusTourKeys.mingoBeach, 1, 'destination'),\n    lat: 42.55054,\n    lng: -70.840065,\n    iconPath: waypointIcon,\n    slug: CampusTourKeys.mingoBeach,\n    type: markerType[2],\n  },\n  // {\n  //   title: \"Endicott Lakes/Amphitheater\",\n  //   image: getMarkerImg(CampusTourKeys.amphitheater, 1, 'destination'),\n  //   lat: 42.5538796,\n  //   lng: -70.8413227,\n  //   iconPath: waypointIcon,\n  //   slug: CampusTourKeys.amphitheater,\n  //   type: markerType[2],\n  // },\n  {\n    title: \"College Hall\",\n    image: getMarkerImg(CampusTourKeys.collegeHall, 1, 'destination'),\n    lat: 42.551296,\n    lng: -70.839913,\n    iconPath: waypointIcon,\n    slug: CampusTourKeys.collegeHall,\n    type: markerType[2],\n  },\n  {\n    title: \"Hempstead Stadium\",\n    image: getMarkerImg(CampusTourKeys.hempsteadStadium, 1, 'destination'),\n    lat: 42.5548107,\n    lng: -70.8416129,\n    iconPath: waypointIcon,\n    slug: CampusTourKeys.hempsteadStadium,\n    type: markerType[2],\n  },\n  {\n    title: \"Public Safety & Police Building\",\n    image: getMarkerImg(CampusTourKeys.policeBuilding, 1, 'destination'),\n    lat: 42.5521103,\n    lng: -70.8425188,\n    iconPath: waypointIcon,\n    slug: CampusTourKeys.policeBuilding,\n    type: markerType[2],\n  },\n  // {\n  //   title: \"Softball Complex\",\n  //   image: getMarkerImg(CampusTourKeys.softballComplex, 1, 'destination'),\n  //   lat: 42.555903,\n  //   lng: -70.840851,\n  //   iconPath: waypointIcon,\n  //   slug: CampusTourKeys.softballComplex,\n  //   type: markerType[2],\n  // },\n  // {\n  //   title: \"Hamilton/Wenham\",\n  //   image: getMarkerImg(CampusTourKeys.hamilton, 1, 'destination'),\n  //   lat: 42.5519815,\n  //   lng: -70.8361278,\n  //   iconPath: waypointIcon,\n  //   slug: CampusTourKeys.hamilton,\n  //   type: markerType[2],\n  // },\n];\n","export const syncLastDest = {\n  store: (keyName: string, value: string) =>\n    localStorage.setItem(keyName, value)\n  ,\n  get: (keyName: string) => {\n    const res = localStorage.getItem(keyName)\n    return res ? res : null\n  }\n}","/*global google*/\n\nimport React from \"react\"\nimport { GoogleMap, LoadScript, Marker, InfoWindow } from \"@react-google-maps/api\"\nimport mapStyles from \"../content/mapStyles.json\"\nimport ActionBtns from \"../components/action-btns/action-btns\"\nimport BtnArrow from '../assets/infoModalArrow.png'\n\nimport { buildingMarkers, waypointMarkers, markerType } from '../content/wayfindingMarkers'\nimport { IMarker, DefaultCenter, MapsContainerStyle } from \"../common/interfaces/IMaps\"\nimport BaseComponent from \"../common/base-classes/BaseComponent\"\nimport { mapContainerStyle } from '../content/waypointsData'\nimport * as H from 'history';\nimport { syncLastDest } from \"../common/utils/StoreLastDestination\"\n\ntype WayfindingState = {\n  markers: IMarker[]\n  defaultCenter: DefaultCenter\n  mapContainerStyle: MapsContainerStyle\n  showInfoModal: boolean;\n  showActiveInfoModal: boolean\n  infoModalIdx: number\n  activeMarker: IMarker;\n  gsLoaded: boolean\n}\n\ntype WayfindingProps = {\n  history: H.History;\n}\n\nclass Wayfinding extends BaseComponent<WayfindingProps, WayfindingState> {\n\n  getInitialState() {\n    return {\n      markers: [] as IMarker[],\n      showInfoModal: false,\n      showActiveInfoModal: false,\n      mapContainerStyle: mapContainerStyle,\n      infoModalIdx: 0,\n      gsLoaded: false,\n      defaultCenter: {\n        lat: 42.553951,\n        lng: -70.8433606\n      },\n      activeMarker: {} as IMarker\n    } as WayfindingState\n  }\n\n  componentDidMount() {\n    this.setState({ markers: this.mergeMarkers() }, () => this.activateMarker())\n  }\n\n  mergeMarkers = (): IMarker[] => [...waypointMarkers, ...buildingMarkers];\n\n  handleMarkerClick = (slug: string | undefined, type: string): void  => {\n    slug && this.props.history.push(`/${type}/${slug}`);\n    (slug && slug === markerType[1]) && syncLastDest.store('activeDestination', slug);\n  }\n\n  handleMouseEvent = (state: boolean, idx?: number): void => {\n    if (idx) {\n      this.setState({ showInfoModal: state, infoModalIdx: idx })\n    } else {\n      this.setState({ showActiveInfoModal: state })\n    }\n  }\n\n  setMapVisibilty = (state: boolean): void => this.setState({ gsLoaded: state })\n\n  activateMarker = (): void  => {\n    const { markers } = this.state\n    const destSlug = syncLastDest.get('activeDestination')\n    const setDefaultMarker = () => this.setState({ activeMarker: markers[0] })\n\n    if (destSlug) {\n      const marker = markers.find(marker => marker.slug === destSlug);\n\n      if (marker) {\n        marker.lat = marker ? marker.lat : markers[0].lat;\n        marker.lng = marker ? marker.lng : markers[0].lng;\n        this.setState({ activeMarker: marker })\n      } else {\n        setDefaultMarker()\n      }\n      return\n    } else {\n      setDefaultMarker()\n    }\n  }\n\n  infoModal = (marker: IMarker): JSX.Element => \n    <InfoWindow\n      options={{ maxWidth: 500 }}\n      onCloseClick={() => this.handleMouseEvent(false)}\n    >\n      <div className={`map-info-window d-flex flex-column`}\n        style={{ animation: `${marker.slug ? \"fadeIn\" : \"\"} 1s` }}\n      >\n        <h5>{marker.title}</h5>\n        <img\n          onClick={() => this.handleMarkerClick(marker.slug, marker.type as string)}\n          className=\"map-info-window__thumb\" src={marker.image} alt={marker.title}\n        />\n        <button\n          onClick={() => this.handleMarkerClick(marker.slug, marker.type as string)}\n          className=\"btn btn-transparent map-info-window__link pb-0 px-0 ml-auto d-flex justify-content-end\"\n        >\n          <img src={BtnArrow} alt=\"Arrow btn\" />\n        </button>\n      </div>\n    </InfoWindow>\n\n  markerOpts = (marker: IMarker) => ({\n    position: { lat: marker.lat, lng: marker.lng },\n    icon: {\n      url: marker.image ? marker.image : marker.iconPath,\n      size: new google.maps.Size(60, 60),\n    },\n    onClick: () => this.handleMarkerClick(marker.slug, marker.type as string),\n  })\n\n  render() {\n    const { markers, defaultCenter, mapContainerStyle, showInfoModal,\n      infoModalIdx, activeMarker, gsLoaded, showActiveInfoModal\n    } = this.state;\n    const { markerOpts } = this\n\n    return (\n      <React.Fragment>\n        <ActionBtns />\n        <LoadScript googleMapsApiKey={process.env.REACT_APP_MAP_KEY || ''} onLoad={() => this.setMapVisibilty(true)}>\n          {\n            gsLoaded &&\n              <div \n              style={{ animation: `${gsLoaded ? \"fadeIn\" : \"\"} 1s` }}>\n              <GoogleMap\n                mapContainerStyle={mapContainerStyle}\n                zoom={16.85}\n                center={defaultCenter}\n                options={{\n                  styles: mapStyles as google.maps.MapTypeStyle[],\n                  streetViewControl: false\n                }}\n                id=\"wayfinding\"\n                onLoad={() => this.showLoading(false)}\n              >\n                <Marker\n                  position={markerOpts(activeMarker).position}\n                  icon={markerOpts(activeMarker).icon}\n                  onClick={markerOpts(activeMarker).onClick}\n                  zIndex={1000}\n                  onMouseOver={() => this.handleMouseEvent(true)}\n                  onMouseOut={() => this.handleMouseEvent(false)}\n                  animation={google.maps.Animation.DROP}\n                  onLoad={() => this.setState({ showActiveInfoModal: true })}\n                >\n                  { showActiveInfoModal && this.infoModal(activeMarker) }\n                </Marker>\n                {\n                  markers.length !== 0 && markers.map((marker: IMarker, idx: number) =>\n                    (activeMarker.slug !== marker.slug) &&\n                    <React.Fragment>\n                      <Marker\n                      key={idx}\n                      position={markerOpts(marker).position}\n                      icon={markerOpts(marker).icon}\n                      onClick={markerOpts(marker).onClick}\n                      onMouseOver={() => this.handleMouseEvent(true, idx)}\n                      onMouseOut={() => this.handleMouseEvent(false, idx)}\n                      animation={google.maps.Animation.DROP}\n                      >\n                        {\n                          (showInfoModal && idx === infoModalIdx) && this.infoModal(marker)\n                        }\n                      </Marker>\n                    </React.Fragment>\n                  )\n                }\n              </GoogleMap>\n            </div>\n          }\n        </LoadScript>\n      </React.Fragment >\n    )\n  }\n}\n\nexport default Wayfinding","const toggleModalClasses = () => {\n  return {\n    open: () => {\n      document.body.style.overflowY = 'hidden';\n      document.body.classList.add('modal-open');\n    },\n    close: () => {\n      document.body.style.overflowY = 'auto';\n      document.body.classList.remove('modal-open');\n    }\n  }\n}\nexport default toggleModalClasses;","import React from 'react'\nimport View360Icon from '../../assets/View360.png'\n\ntype TProps = {\n  stopRotation?: () => void\n  pausePano?: () => void\n}\n\nconst PanoHelper: React.FC<TProps> = ({ stopRotation, pausePano }) => {  \n  return (\n    <div className=\"panorama-caption\"\n      onClick={() => {\n        stopRotation && stopRotation()\n        pausePano && pausePano()\n      }}\n    >\n      <div className=\"panorama-caption_img\">\n        <img src={View360Icon} alt=\"360 view icon\" />\n      </div>\n      <div className=\"panorama-caption_text\">\n        <p className=\"mb-0 text-white\">\n          Drag left and right to look around\n        </p>\n      </div>\n    </div>\n  )\n}\n\nexport default PanoHelper","import React, { useState } from 'react'\n\nimport { useThree, useFrame, extend, ReactThreeFiber } from 'react-three-fiber'\n\nimport { OrbitControls } from 'three/examples/jsm/controls/OrbitControls'\nimport * as THREE from 'three'\n\ntype Props = {\n  [x: string]: any;\n}\n\nextend({ OrbitControls })\n\ndeclare global {\n  namespace JSX {\n    interface IntrinsicElements {\n      'orbitControls': ReactThreeFiber.Object3DNode<OrbitControls, typeof OrbitControls>;\n    }\n  }\n}\n\nconst WebglControls: React.FC<Props> = (props) => {\n  const { camera, gl } = useThree()\n  const ref = React.useRef()\n  const [cameraIsSet, setCameraIsSet] = useState<boolean | undefined>(false)\n\n  useFrame(() => {\n    ref && (ref.current as any).update()\n  })\n\n  React.useEffect(() => {\n    const canvas = document.querySelector<HTMLCanvasElement>('canvas')\n    canvas && canvas.addEventListener('wheel', (e) => onWheel(e))\n    \n    if (props.startPoint && props.startPoint.length === 3) {\n      setCameraIsSet(true)\n      if (cameraIsSet) return;\n\n      camera.position.set(props.startPoint[0], props.startPoint[1], props.startPoint[2])\n      camera.updateProjectionMatrix()\n    }\n\n    return document.removeEventListener('wheel', (e) => onWheel(e))\n  })\n\n  const onWheel = (event: WheelEvent) => {\n    event.stopPropagation();\n    \n    if (event.deltaY < 0) {\n      camera.zoom += 0.3\n    }\n    if (event.deltaY > 0) {\n      camera.zoom -= 0.3\n    }\n    if (camera.zoom < 0.8) {\n      camera.zoom = 0.8\n    }\n    if (camera.zoom > 10) {\n      camera.zoom = 10\n    }\n    camera.updateProjectionMatrix()\n  }\n\n  return <orbitControls\n    ref={ref}\n    target={new THREE.Vector3(0, 0, 0)}\n    args={[camera, gl.domElement]}\n    {...props}\n  />\n}\n\nexport default WebglControls\n","import React from \"react\";\n\ninterface IWebGLContext {\n  playPano?: () => void\n  pausePano?: () => void\n  stopRotation?: () => void\n  panoIsRotating: boolean\n}\n\nconst WebGLContext = React.createContext<IWebGLContext>({} as IWebGLContext);\n\nexport default WebGLContext;","import { WayPointAsset } from './../common/interfaces/IMaps';\nimport React from \"react\";\n\ninterface IHotspotsContext {\n  handleModal: (state: boolean, hotspot: WayPointAsset) => void\n  markers: WayPointAsset[]\n}\n\nconst HotspotsContext = React.createContext<IHotspotsContext>({} as IHotspotsContext);\n\nexport default HotspotsContext;","import React, { Suspense, lazy, useMemo } from 'react'\nimport { Canvas } from 'react-three-fiber'\n\nimport WebglControls from './webgl-controls'\nimport WebGLContext from '../../context/webgl-context'\nimport HotspotsContext from '../../context/hotspots-context'\n\nimport { CameraConfig } from '../../common/interfaces/IMaps'\n\nconst WebglDome = lazy(() => import('./webgl-dome'))\n\ntype Props = {\n  imagePath: string\n  onLoaded: () => void\n  cameraConfig?: CameraConfig\n}\n\nconst WebglPanorama: React.FC<Props> = ({ imagePath, onLoaded, cameraConfig }) => {\n  const context = React.useContext(WebGLContext)\n  const contextHotposts = React.useContext(HotspotsContext)\n  const { panoIsRotating } = context\n  const { markers, handleModal } = contextHotposts\n\n  return (\n    <Canvas\n      id=\"webgl-canvas\"\n    >\n      {\n        useMemo(() => \n          <WebglControls\n            enableZoom={false}\n            enablePan={false}\n            enableDamping={true}\n            dampingFactor={0.2}\n            autoRotate={panoIsRotating}\n            autoRotateSpeed={0.7}\n            rotateSpeed={-0.5}\n            startPoint={cameraConfig?.startPoint}\n          />\n        , [cameraConfig, panoIsRotating])\n      }\n     \n      <Suspense fallback={null}>\n        {\n          useMemo(() => \n            <WebglDome\n              imagePath={imagePath}\n              markers={markers}\n              handleMarker={(_s, marker) => handleModal(true, marker)}\n              onLoaded={() => onLoaded()}\n              markerScale={cameraConfig?.markerScale}\n            />\n          , [cameraConfig, handleModal, imagePath, markers, onLoaded])\n        }\n      </Suspense>\n    </Canvas>\n  )\n}\n\nexport default WebglPanorama","import React from 'react'\nimport { CSSTransition } from 'react-transition-group'\nimport Img from 'react-cool-img'\n\nimport { WayPointAsset } from '../../common/interfaces/IMaps'\nimport { MediaTypes } from '../../common/models/Media'\n\nimport Placeholder from '../../assets/placeholder.png'\nimport LoadingIcon from '../../assets/loader.gif'\n\nimport PanoHelper from './pano-details-helper'\nimport WebglPanorama from '../webgl-panorama/webgl-panorama'\n\nimport WebGLContext from '../../context/webgl-context'\nimport { Play, Stop } from '../../content/svgIcons'\nimport { GoogleMap, StreetViewPanorama } from '@react-google-maps/api'\nimport { mapContainerStyle } from '../../content/waypointsData'\n\ntype Props = {\n  asset: WayPointAsset\n  activeSlide: number\n  isLoading: boolean\n  showPanoTooltip: boolean\n  onLoad: (type?: string) => void\n  stopRotation: () => void\n  panoOpts: any\n}\n\nconst DetailsItem: React.FC<Props> = ({ asset, onLoad, showPanoTooltip,\n  isLoading, stopRotation, panoOpts }) => {\n  const iframeRef = React.createRef<HTMLIFrameElement>()\n  const youtubeBaseUrl = process.env.REACT_APP_YOUTUBE\n  const vimeoBaseUrl = process.env.REACT_APP_VIMEO\n  const context = React.useContext(WebGLContext)\n  const assetsMapper = (asset: WayPointAsset): React.ReactElement => {\n    switch (asset.mediaType) {\n      case MediaTypes.pano:\n        return (\n          <GoogleMap\n              zoom={14}\n              mapContainerStyle={mapContainerStyle}\n              options={{ streetViewControl: true }}\n              id={'panorama'}\n            >\n              <StreetViewPanorama\n                options={panoOpts}\n                onLoad={() => onLoad(MediaTypes.pano)}\n              />\n          </GoogleMap>\n        )\n      case MediaTypes.img:\n        return (\n          <Img\n            placeholder={Placeholder}\n            src={require(`../../assets/${asset.imageName}`)}\n            alt={asset.title}\n            loading=\"lazy\"\n            onLoad={() => onLoad()}\n          />\n        )\n      case MediaTypes.youtube:\n      case MediaTypes.vimeo:\n        const url = asset.mediaType === MediaTypes.youtube ? youtubeBaseUrl : vimeoBaseUrl\n        return (\n          <iframe\n            ref={iframeRef}\n            title={asset.title}\n            src={`${url}${asset.videoUrl}?controls=1`}\n            allowFullScreen\n            onLoad={() => onLoad()}\n          ></iframe>\n        )\n      case MediaTypes.webgl:\n        return (\n          <React.Fragment>\n            <WebglPanorama\n              imagePath={require(`../../assets/${asset.imageName}`)}\n              onLoaded={() => onLoad(MediaTypes.webgl)}\n              cameraConfig={asset.cameraConfig}\n            />\n            {!panoIsRotating && <div className=\"detailsCarousel__item_play position-absolute ml-auto mt-auto\" >\n              <button className=\"btn btn-transparent p-0\" onClick={() => playPano && playPano()}><Play /></button>\n            </div>}\n            {panoIsRotating && <div className=\"detailsCarousel__item_pause position-absolute ml-auto mt-auto\" onClick={() => pausePano && pausePano()}>\n              <button className=\"btn btn-transparent p-0\" onClick={() => pausePano && pausePano()}><Stop /></button>\n            </div>}\n          </React.Fragment>\n        )\n\n      default:\n        return (\n          <Img\n            placeholder={Placeholder}\n            src={require(`../../assets/${asset.imageName}`)}\n            alt={asset.title}\n            loading=\"lazy\"\n            onLoad={() => onLoad()}\n          />\n        )\n    }\n  }\n\n  const handleClick = (e: React.MouseEvent<HTMLDivElement>) => {\n    const targ = e.target as HTMLDivElement;\n    const parentClick = targ.tagName === 'CANVAS'\n\n    stopRotation()\n    parentClick && pausePano && pausePano()\n  }\n\n  const { pausePano, playPano, panoIsRotating } = context\n\n  return (\n    <React.Fragment>\n      <CSSTransition\n        in={isLoading}\n        timeout={100}\n        classNames=\"slide\"\n        key={asset.title}\n      >\n        <div className=\"detailsCarousel__item position-relative\"\n          onClick={e => handleClick(e)}\n        >\n          {Object.keys(asset).length !== 0 && assetsMapper(asset)}\n          {showPanoTooltip && asset.mediaType === MediaTypes.webgl && <PanoHelper\n            pausePano={() => pausePano && pausePano()}\n            stopRotation={() => stopRotation()}\n          />}\n          <div className={`placeholder ${isLoading ? 'loading' : ''} d-flex align-items-center justify-content-center`}>\n            <img src={LoadingIcon} alt=\"loading icon\" />\n          </div>\n        </div>\n      </CSSTransition>\n    </React.Fragment>\n  )\n}\n\nexport default DetailsItem","import React from 'react'\nimport { CSSTransition } from 'react-transition-group';\n\nimport BaseComponent from '../../common/base-classes/BaseComponent';\nimport { IModalProps } from '../../common/interfaces/IModal';\nimport { MediaTypes } from '../../common/models/Media';\nimport { PanoConfiguration, WayPointAsset } from '../../common/interfaces/IMaps';\nimport toggleModalClasses from '../../common/utils/ToggleModalClasses';\n\nimport DetailsItem from '../gallery/details-item';\n\nimport WebGLContext from '../../context/webgl-context';\nimport { panoOptions } from '../../content/waypointsData';\n\ntype ModalState = {\n  activeSlide: number\n  captionHeight: number\n  showModal: boolean\n  slideContent: WayPointAsset\n  showPanoTooltip: boolean\n  detailsIsLoading: boolean\n  activateRotation: boolean\n  panoIsRotating: boolean\n  panoOpts: PanoConfiguration\n}\n\ninterface ModalProps extends IModalProps {\n  content: WayPointAsset[];\n  activeSlide: number;\n  categories?: Array<string>\n}\n\nclass BuildingDetailsModal extends BaseComponent<ModalProps, ModalState> {\n  private timer: any;\n  private interval: any\n  private captionRef: React.RefObject<HTMLDivElement>;\n\n  constructor(props: ModalProps) {\n    super(props)\n    this.captionRef = React.createRef<HTMLDivElement>()\n  }\n\n  getInitialState() {\n    return {\n      activeSlide: this.props.activeSlide,\n      captionHeight: 0,\n      showModal: this.props.show,\n      slideContent: {} as WayPointAsset,\n      showPanoTooltip: false,\n      detailsIsLoading: true,\n      activateRotation: true,\n      panoIsRotating: true\n    } as ModalState\n  }\n\n  componentDidMount() {\n    toggleModalClasses().open()\n    this.setState({ activeSlide: this.props.activeSlide }, () => {\n      this.setCurrentSlide()\n    })\n  }\n\n  componentWillUnmount() {\n    toggleModalClasses().close()\n  }\n\n  getCaptionHeight = () => {\n    const caption = this.captionRef.current\n\n    setTimeout(() => {\n      this.setState({ captionHeight: caption ? caption.clientHeight : 0 })\n    }, 10)\n  }\n\n  slideControls = (type: string): void => {\n    const { activeSlide } = this.state;\n    const { content } = this.props;\n\n    this.setState({\n      showPanoTooltip: false,\n      detailsIsLoading: true,\n      activateRotation: true,\n      panoIsRotating: true\n    })\n\n    if (type === 'next') {\n      if (activeSlide + 1 === content.length) {\n        this.setState({ activeSlide: 0 }, () => this.setCurrentSlide())\n        return\n      } else {\n        this.setState({ activeSlide: activeSlide + 1 }, () => this.setCurrentSlide())\n      }\n    }\n\n    if (type === 'prev') {\n      if (activeSlide - 1 < 0) {\n        this.setState({ activeSlide: content.length - 1 }, () => this.setCurrentSlide())\n        return\n      } else {\n        this.setState({ activeSlide: activeSlide - 1 }, () => this.setCurrentSlide())\n      }\n    }\n  }\n\n  setCurrentSlide = () => {\n    const { activeSlide } = this.state;\n    const { content } = this.props;\n    this.setState({\n      slideContent: content[activeSlide],\n    },\n      () => {\n        if (this.state.slideContent.mediaType === MediaTypes.pano) {\n          let options: any = { ...this.state.panoOpts }\n          options = {\n            pano: this.state.slideContent.panoId,\n            ...panoOptions,\n            pov: this.state.slideContent.pov\n          }\n          this.setState({ panoOpts: options },\n            () => this.setState({\n              showPanoTooltip: true\n            }, () =>\n              this.timer = setTimeout(() =>\n                this.setState({ showPanoTooltip: false })\n                , 4000)\n            )\n          )\n        }\n        this.getCaptionHeight()\n      }\n    )\n  }\n\n  onClose = (): void => {\n    this.setState({ showModal: false })\n    setTimeout(() => { this.props.onClose() }, 150)\n  }\n\n  detailsIsLoaded = (mediaType?: string): void => {\n    clearTimeout(this.timer);\n\n    this.setState({ detailsIsLoading: false })\n    \n    if (mediaType && mediaType === MediaTypes.webgl) {\n      this.setState({ showPanoTooltip: true })\n      this.timer = setTimeout(() =>\n        this.setState({ showPanoTooltip: false })\n        , 5000)\n    }\n  }\n\n  stopRotation = () => {\n    clearInterval(this.interval)\n  }\n\n  playPano = () => this.setState({ panoIsRotating: true })\n  pausePano = () => this.setState({ panoIsRotating: false })\n\n  render() {\n    const { content, categories } = this.props;\n    const { activeSlide, captionHeight, showModal, slideContent, panoIsRotating } = this.state\n    const { playPano, pausePano, stopRotation } = this\n\n    return (\n      <React.Fragment>\n        <CSSTransition\n          in={showModal}\n          timeout={300}\n          classNames=\"modal\"\n          key={'baseModal'}\n        >\n          <div className={`modal modal-details dark-modal show d-block`} role=\"dialog\">\n            <div className=\"modal-dialog modal-dialog-centered\">\n              <div className=\"modal-content\">\n                <div className=\"modal-body d-flex flex-column flex-lg-row align-items-start justify-content-lg-center position-relative\">\n                  <button\n                    type=\"button\"\n                    className=\"close d-lg-none d-flex align-items-center\"\n                    data-dismiss=\"modal\"\n                    aria-label=\"Close\"\n                    onClick={() => this.onClose()}\n                  >\n                    <span className=\"text-uppercase\" aria-hidden=\"true\">Close</span>\n                    <svg fill=\"#043056\" className=\"ml-3\" width=\"16\" height=\"16\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512.001 512.001\">\n                      <path d=\"M284.286 256.002L506.143 34.144c7.811-7.811 7.811-20.475 0-28.285-7.811-7.81-20.475-7.811-28.285 0L256 227.717 34.143 5.859c-7.811-7.811-20.475-7.811-28.285 0-7.81 7.811-7.811 20.475 0 28.285l221.857 221.857L5.858 477.859c-7.811 7.811-7.811 20.475 0 28.285a19.938 19.938 0 0014.143 5.857 19.94 19.94 0 0014.143-5.857L256 284.287l221.857 221.857c3.905 3.905 9.024 5.857 14.143 5.857s10.237-1.952 14.143-5.857c7.811-7.811 7.811-20.475 0-28.285L284.286 256.002z\" />\n                    </svg>\n                  </button>\n                  <div\n                    className=\"detailsCarousel__description__caption__mobile d-lg-none text-center position-relative w-100\"\n                    ref={this.captionRef}\n                  >\n                    <h2>{slideContent.title}</h2>\n                    {slideContent.subtitle !== '' && <h5>{slideContent.subtitle}</h5>}\n                    {slideContent.description !== '' && <p>{slideContent.description}</p>}\n                  </div>\n\n                  <WebGLContext.Provider value={{ playPano, pausePano, panoIsRotating, stopRotation }}>\n                    {\n                      Object.keys(slideContent).length !== 0 &&\n                      <DetailsItem\n                        panoOpts={this.state.panoOpts}\n                        asset={slideContent}\n                        activeSlide={activeSlide}\n                        isLoading={this.state.detailsIsLoading}\n                        showPanoTooltip={this.state.showPanoTooltip}\n                        onLoad={type => this.detailsIsLoaded(type)}\n                        stopRotation={() => {\n                          this.stopRotation()\n                          this.setState({ showPanoTooltip: false })\n                        }}\n                      />\n                    }\n                  </WebGLContext.Provider>\n                  <div\n                    className=\"detailsCarousel__description__caption d-none d-lg-block text-right\"\n                    ref={this.captionRef}\n                  >\n                    <h2 className=\"text-white\">{slideContent.title}</h2>\n                    {slideContent.subtitle !== '' && <h5 className=\"text-white\">{slideContent.subtitle}</h5>}\n                    {slideContent.description !== '' && <p className=\"text-white ml-auto\">{slideContent.description}</p>}\n                  </div>\n\n                  <div className=\"detailsCarousel__description d-flex flex-row justify-content-between justify-content-lg-start flex-lg-column\">\n                    <button\n                      type=\"button\"\n                      className=\"close d-lg-flex d-none align-items-center\"\n                      data-dismiss=\"modal\"\n                      aria-label=\"Close\"\n                      onClick={() => this.onClose()}\n                    >\n                      <span className=\"text-uppercase\" aria-hidden=\"true\">Close</span>\n                      <svg fill=\"#043056\" className=\"ml-3\" width=\"16\" height=\"16\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512.001 512.001\">\n                        <path d=\"M284.286 256.002L506.143 34.144c7.811-7.811 7.811-20.475 0-28.285-7.811-7.81-20.475-7.811-28.285 0L256 227.717 34.143 5.859c-7.811-7.811-20.475-7.811-28.285 0-7.81 7.811-7.811 20.475 0 28.285l221.857 221.857L5.858 477.859c-7.811 7.811-7.811 20.475 0 28.285a19.938 19.938 0 0014.143 5.857 19.94 19.94 0 0014.143-5.857L256 284.287l221.857 221.857c3.905 3.905 9.024 5.857 14.143 5.857s10.237-1.952 14.143-5.857c7.811-7.811 7.811-20.475 0-28.285L284.286 256.002z\" />\n                      </svg>\n                    </button>\n                    <div\n                      className=\"detailsCarousel__description__info pl-1\"\n                      style={{ marginTop: `${captionHeight + 150}px` }}\n                    >\n                      <ul className=\"list-unstyled mt-3 mt-lg-0 mb-0 text-left text-lg-right d-flex flex-row flex-lg-column\">\n                        <li>\n                          <h6 className=\"text-uppercase\">tour categories</h6>\n                          <p className=\"mb-0 mb-lg-3\">\n                            { \n                              categories ? categories.map((cat, idx) => (\n                                <span key={cat}>{cat}{categories.length !== (idx + 1) && ', '}</span>\n                              )) : slideContent.category\n                            }\n                          </p>\n                        </li>\n                      </ul>\n                    </div>\n\n                    <div className=\"detailsCarousel__description__controls mt-lg-auto d-flex align-items-center justify-content-lg-end\">\n                      {\n                        content.length > 1 && <button className=\"btn btn-transparent p-0\" onClick={() => this.slideControls('prev')}>\n                          <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"#043056\" width=\"20\" height=\"15\" viewBox=\"0 0 443.52 443.52\">\n                            <path d=\"M143.492 221.863L336.226 29.129c6.663-6.664 6.663-17.468 0-24.132-6.665-6.662-17.468-6.662-24.132 0l-204.8 204.8c-6.662 6.664-6.662 17.468 0 24.132l204.8 204.8c6.78 6.548 17.584 6.36 24.132-.42 6.387-6.614 6.387-17.099 0-23.712L143.492 221.863z\" />\n                          </svg>\n                        </button>\n                      }\n                      <div className=\"detailsCarousel__description__controls__slides\">\n                        <span className=\"active-slide\">{activeSlide >= 9 ? '' : '0'}{activeSlide + 1}</span>\n                        <span className=\"dash\"></span>\n                        <span className=\"all-slides\">{content ? content.length : 0}</span>\n                      </div>\n\n                      {\n                        content.length > 1 && (\n                          <button className=\"btn btn-transparent p-0\" onClick={() => this.slideControls('next')}>\n                            <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"#043056\" width=\"20\" height=\"15\" viewBox=\"0 0 512.002 512.002\">\n                              <path d=\"M388.425 241.951L151.609 5.79c-7.759-7.733-20.321-7.72-28.067.04-7.74 7.759-7.72 20.328.04 28.067l222.72 222.105-222.728 222.104c-7.759 7.74-7.779 20.301-.04 28.061a19.8 19.8 0 0014.057 5.835 19.79 19.79 0 0014.017-5.795l236.817-236.155c3.737-3.718 5.834-8.778 5.834-14.05s-2.103-10.326-5.834-14.051z\" />\n                            </svg>\n                          </button>\n                        )\n                      }\n\n                    </div>\n                  </div>\n\n                </div>\n\n              </div>\n            </div>\n          </div>\n        </CSSTransition>\n        <div className={`modal-backdrop fade ${showModal ? 'show' : 'd-none'}`}></div>\n      </React.Fragment>\n    )\n  }\n}\n\nexport default BuildingDetailsModal\n","import React from 'react'\nimport { NotFound } from '../content/svgIcons'\nimport LoadingService from '../common/utils/LoadingService'\nimport ILoadIndicator from '../common/interfaces/ILoadIndicator';\n\nconst NoMatch = () => {\n  const loadIndicator: ILoadIndicator = LoadingService.getInstance();\n\n  React.useEffect(() => {\n    loadIndicator.notify(false)\n  })\n\n  return (\n    <main className=\"error-page\">\n      <section className=\"container\">\n        <div className=\"row align-items-center justify-content-center\">\n          <div className=\"col-lg-7 col-xl-5 order-2 order-lg-1\">\n            <div className=\"text text-center text-lg-left\">\n              <h1 className=\"text-primary\">404</h1>\n              <h2 className=\"text-primary\">Page not found</h2>\n              <p className=\"text-primary\">The page you are looking for was removed, renamed or might never existed</p>\n            </div>\n          </div>\n          <div className=\"col-lg-3 col-xl-2 text-center emojii mb-4 mb-lg-0 order-1 order-lg-2\">\n            <NotFound />\n          </div>\n        </div>\n      </section>\n    </main>\n  )\n}\n\nexport default NoMatch\n","import React from 'react'\n\nimport { MediaTypes } from '../../common/models/Media'\n\nimport { Gallery, View360, Camera } from '../../content/svgIcons'\n\ntype Props = {\n  title: string\n  categories: string[]\n  mediaType: string\n}\n\nconst GalleryItemSubtle: React.FC<Props> = ({ title, categories, mediaType }) => {\n\n  const iconType = (mediaType: string) => {\n    switch (mediaType) {\n      case MediaTypes.img:\n        return <Gallery />\n      case MediaTypes.pano:\n      case MediaTypes.webgl:\n        return <View360 />\n      case MediaTypes.youtube:\n        return <Camera />\n      case MediaTypes.vimeo:\n        return <Camera />\n      default:\n        return <Gallery />\n    }\n  }\n\n  return (\n    <div className=\"gallery__masonry__item__subtle d-flex align-items-start justify-content-between\">\n      <div className=\"text-left pt-2\">\n        <h6>{title}</h6>\n        <p className=\"mb-0\">\n          {categories && categories.map((cat, idx) => (\n            <span key={cat}>{cat}{categories.length !== (idx + 1) && ', '}</span>\n          ))}\n        </p>\n      </div>\n      <div>\n        {iconType(mediaType)}\n      </div>\n    </div>\n  )\n}\n\nexport default GalleryItemSubtle\n","import React from 'react'\nimport Img from 'react-cool-img'\n\nimport { WayPointAsset } from '../../common/interfaces/IMaps'\nimport { MediaTypes } from '../../common/models/Media'\n\nimport Placeholder from '../../assets/placeholder.png'\n\nimport GalleryItemSubtle from './gallery-item-subtle'\n\ntype Props = {\n  assets: WayPointAsset[]\n  categories: Array<string>\n  onClick: (e: React.MouseEvent, idx: number) => void\n}\n\nconst GalleryItem: React.FC<Props> = ({ assets, onClick, categories }) => {\n  const assetsMapper = (asset: WayPointAsset): React.ReactElement => {\n    switch (asset.mediaType) {\n      case MediaTypes.img:\n      case MediaTypes.webgl:\n        return (\n          <Img\n            placeholder={Placeholder}\n            src={require(`../../assets/${asset.thumbNail}`)}\n            alt={asset.title}\n          />\n        )\n      case MediaTypes.youtube:\n      case MediaTypes.vimeo:\n      case MediaTypes.pano:\n        return (\n          <Img\n            placeholder={Placeholder}\n            src={asset.thumbNail as string}\n            alt={asset.title}\n          />\n        )\n      default:\n        return (\n          <Img\n            placeholder={Placeholder}\n            src={require(`../../assets/${asset.thumbNail}`)}\n            alt={asset.title}\n          />\n        )\n    }\n  }\n\n  return (\n    <React.Fragment>\n      {\n        assets.map((asset, idx: number) => (\n          <div key={idx} className='gallery__masonry__item'>\n            <button\n              className='btn btn-transparent p-0'\n              onClick={e => onClick(e, idx)}\n            >\n              {assetsMapper(asset)}\n              <GalleryItemSubtle\n                title={asset.title}\n                categories={categories}\n                mediaType={asset.mediaType}\n              />\n            </button>\n          </div>\n        )\n        )\n      }\n    </React.Fragment>\n  )\n}\n\nexport default GalleryItem\n","export default class DataService {\n  protected headers: HeadersInit = { \"Content-Type\": \"application/json\" }\n\n  async fetch(\n    url: string,\n    method: string = \"GET\",\n    body: any = null,\n  ): Promise<any> {\n\n    let options: any = {\n      method: method,\n    }\n\n    if (method !== \"GET\") {\n      options.body = body\n    }\n\n    try {\n      const response = await fetch(url, options);\n      return response\n    } catch (error) {\n      throw new Error(error)\n    }\n  }\n}","import { RelatedPoint, WayPointAsset } from './../interfaces/IMaps';\nimport { MediaTypes } from '../models/Media';\nimport DataService from './data-service';\n\ntype IMediaSrc = {\n  imageName?: string\n  thumbNail?: string\n}\n\nclass ThumbnailsService {\n\n  private svc = new DataService();\n\n  handleType = (asset: WayPointAsset | RelatedPoint, basePath?: string, queryParam?: string): IMediaSrc => {\n    switch (asset.mediaType) {\n      case MediaTypes.img:\n      case MediaTypes.webgl:\n        const body = {} as IMediaSrc\n        asset.thumbNail\n          ?\n          (body.thumbNail = (asset.ignoreBasePath ? \"\" : basePath as string) + asset.thumbNail)\n          :\n          (body.thumbNail = (asset.ignoreBasePath ? \"\" : basePath as string) + asset.imageName)\n        body.imageName = (asset.ignoreBasePath ? \"\" : basePath as string) + asset.imageName\n        return body\n      case MediaTypes.pano:\n        return {\n          thumbNail: `https://maps.googleapis.com/maps/api/streetview?${queryParam || ''}&pano=${asset?.panoId || ''}&key=${process.env.REACT_APP_MAP_KEY}`,\n        }\n      case MediaTypes.youtube:\n        return {\n          thumbNail: `https://img.youtube.com/vi/${asset?.videoUrl || ''}/hqdefault.jpg`\n        }\n      default:\n        return {\n          imageName: '',\n          thumbNail: ''\n        };\n    }\n  }\n}\n\nexport default ThumbnailsService","export const getQueryParams = (props: any, keyName: string) => {\n    let queryParams = new URLSearchParams(props.location.search)\n    const param = queryParams.get(keyName)\n    return param\n}\n","import React from \"react\"\nimport BaseComponent from \"../common/base-classes/BaseComponent\"\nimport Masonry from \"react-masonry-component\"\nimport BuildingDetailsModal from \"../components/modals/building-details-modal\"\nimport InfiniteScroll from \"react-infinite-scroll-component\"\nimport NoMatch from \"./NoMatch\";\nimport GalleryItem from \"../components/gallery/gallery-item\";\nimport * as H from 'history';\n\nimport waypointsData from '../content/waypointsData'\nimport buildingsData from '../content/buildingsData'\nimport { flyMenuData } from '../content/menuData'\nimport { IFlyMenu, MenuItem, Categories } from \"../common/models/Category\"\nimport { WayPointAsset, WayPointBody, StreetView } from \"../common/interfaces/IMaps\";\nimport { IMatch } from \"../common/interfaces/IProps\"\nimport { BuildingTourKeys } from \"../common/models/WayPoints\"\nimport { LoadScript } from \"@react-google-maps/api\"\nimport ThumbnailsService from \"../common/services/thumbnails-service\"\nimport { getQueryParams } from \"../common/utils/QueryParams\"\n\ntype GalleryState = {\n  show: boolean\n  galleryItems: WayPointAsset[]\n  data: WayPointAsset[]\n  showGallery: boolean;\n  showLoader: boolean;\n  hasMore: boolean;\n  title: string;\n  description: string;\n  imagesLoaded: boolean;\n  clickedImgIndx: number\n  categories: Array<string>;\n  pageTexts: MenuItem;\n  notFound: boolean\n}\n\ntype GalleryProps = {\n  match: IMatch\n  history: H.History;\n}\n\nclass Gallery extends BaseComponent<GalleryProps, GalleryState> {\n  private thumbSvc = new ThumbnailsService()\n\n  getInitialState() {\n    return {\n      galleryItems: [] as WayPointAsset[],\n      show: false,\n      showGallery: false,\n      showLoader: false,\n      hasMore: false,\n      title: '',\n      description: '',\n      data: [],\n      imagesLoaded: false,\n      clickedImgIndx: 0,\n      categories: [],\n      pageTexts: {} as MenuItem,\n      notFound: false,\n    } as GalleryState\n  }\n\n  componentDidMount() {\n    const { params, url } = this.props.match\n\n    this.filterByCategory(params.slug as string, url)\n  }\n\n  UNSAFE_componentWillReceiveProps(props: GalleryProps) {\n    if (this.props.match.params.slug !== props.match.params.slug) {\n      const { params, url } = props.match\n      window.scroll(0, 0)\n\n      this.filterByCategory(params.slug as string, url)\n    }\n  }\n\n  filterByCategory = (slug: string, url: string) => {\n    this.setState({ showGallery: false })\n    this.showLoading(true)\n\n    let pageTexts: MenuItem | undefined;\n    const waypoints = JSON.parse(JSON.stringify(waypointsData)) as StreetView\n    const buildings = JSON.parse(JSON.stringify(buildingsData)) as StreetView\n    let images: WayPointAsset[] = []\n    const isBuildingPage = url.includes('buildings') ? true : (url.includes('your-path') ? false : true)\n\n    for (let [, value] of Object.entries(flyMenuData as IFlyMenu)) {\n      pageTexts === undefined && (\n        pageTexts = value.menuItems.find(cat => cat.slug === slug) as MenuItem\n      )\n    }\n\n    if (!pageTexts) {\n      this.setState({ notFound: true })\n      this.showLoading(false)\n      return\n    }\n\n    console.log('pageTexts', pageTexts)\n\n    this.setState({ pageTexts: pageTexts as MenuItem, notFound: false })\n\n    const updImgPath = (waypoint: WayPointBody) => {\n      const item = JSON.parse(JSON.stringify(waypoint)) as WayPointBody\n      const assets = item.assets ? item.assets : item.panoMarkers as WayPointAsset[];\n      const imgsWithPath = assets\n        .filter(asset => !asset.ignoreBasePath)\n        .map(asset => {\n        asset.thumbNail = this.thumbSvc.handleType(asset, item.basePath).thumbNail\n        asset.imageName = this.thumbSvc.handleType(asset, item.basePath).imageName\n        return asset\n      })\n\n      images = [...images, ...imgsWithPath]\n\n      if (!isBuildingPage) {\n        images = images.filter(img => \n          (!img.category || img.category === [pageTexts?.title][0]) && img\n        )\n      }\n    }\n\n    if (!isBuildingPage) {\n      this.setState({ categories: [pageTexts.title] })\n\n      const assets = { ...waypoints, ...buildings }\n      for (let [, item] of Object.entries(assets)) {\n        if (item.category?.includes(pageTexts?.categoryName as string)) {\n          updImgPath(item)\n        }\n      }\n    }\n\n    // TODO: Refactor logic matching and searching related buildings\n    if (url.includes('buildings') && !url.includes(BuildingTourKeys.artsCenter) && !url.includes(BuildingTourKeys.athletics)) {\n      this.setState({ categories: buildingsData[slug].category })\n      updImgPath(buildingsData[slug])\n    }\n\n    const isArtsCenter = url.includes(BuildingTourKeys.artsCenter);\n    const isAthletics = url.includes(BuildingTourKeys.athletics);\n\n    const setArtsAndAthleticItems = (categories: string[]): void => {\n      for (let [, item] of Object.entries(buildings)) {\n        categories\n          .some(cat => item.category.includes(cat)) && \n          updImgPath(item)\n      }\n      this.setState({ categories })\n    }\n\n    isArtsCenter && setArtsAndAthleticItems([Categories.visualAndArts])\n\n    isAthletics && setArtsAndAthleticItems([Categories.sport])\n\n    this.setState({\n      title: pageTexts?.title as string,\n      description: pageTexts?.description as string,\n      galleryItems: Array.from(images.slice(0, 9)),\n      data: images\n    }, () => {\n      this.handleQueryParamas()\n      const allItemsLength = this.state.data.length\n      const shownItemsLength = this.state.galleryItems.length\n      allItemsLength !== shownItemsLength ? this.setState({ hasMore: true }, () => document.querySelector('.infinite-scroll-component__outerdiv')?.classList.remove('noMoreItems'))\n        : this.setState({ hasMore: false }, () => document.querySelector('.infinite-scroll-component__outerdiv')?.classList.add('noMoreItems'))\n      this.showLoading(false)\n    })\n  }\n\n  handleQueryParamas = () => {\n    const param = getQueryParams(this.props, 'item')\n    if (param) {\n      const res = this.state.data.findIndex(image => image?.thumbNail?.includes(param))\n      this.setState({ clickedImgIndx: res, show: true })\n      return param\n    }\n  }\n\n  handleDetails = (e: React.MouseEvent | null, idx?: number) => {\n    const { show } = this.state\n\n    e !== null && e.preventDefault()\n    const param = getQueryParams(this.props, 'item');\n\n    if (param) {\n      this.props.history.goBack()\n    }\n\n    this.setState({\n      clickedImgIndx: idx as number,\n      show: !show\n    })\n  }\n\n  handleImagesLoaded = () => {\n    const { showGallery } = this.state;\n    !showGallery && setTimeout(() =>\n      this.setState({ showGallery: true, imagesLoaded: true })\n      , 100)\n  }\n\n  loadMore = () => {\n    const { galleryItems, data } = this.state;\n    this.setState({ showLoader: true })\n    const size = galleryItems.length\n    const items = Array.from(data.slice(size, size + 9))\n\n    size !== data.length ? (\n      this.setState({\n        ...this.state,\n        galleryItems: [...this.state.galleryItems, ...items],\n      }, () => this.setState({ showLoader: false, hasMore: true }))\n    ) : this.setState({ hasMore: false }, () => document.querySelector('.infinite-scroll-component__outerdiv')?.classList.add('noMoreItems'))\n  }\n\n  render() {\n    const { show, galleryItems, showGallery, showLoader, hasMore, title, description, data, clickedImgIndx, categories, notFound } = this.state\n\n    return (\n      <React.Fragment>\n        <LoadScript googleMapsApiKey={process.env.REACT_APP_MAP_KEY || ''}>\n          {\n            !notFound ? (\n              <div className='gallery d-flex flex-column flex-xl-row align-items-start px-3 px-md-0 content-area'>\n                <div className='gallery__description text-center text-xl-left w-100'>\n                  <h2>{title}</h2>\n                  {description !== '' && <p>{description}</p>}\n                </div>\n                {galleryItems.length !== 0 ?\n                  <InfiniteScroll\n                    dataLength={galleryItems.length}\n                    next={() => this.loadMore()}\n                    hasMore={hasMore}\n                    loader={\n                      <span className={`loader ${!showLoader && 'invisible'}`}>Loading.....</span>\n                    }\n                    className={`${showGallery && 'show'}`}\n                  >\n                    <div className={`scroll-down ${hasMore ? 'show' : ''}`}>\n                      <span>Scroll Down</span>\n                    </div>\n                    <Masonry\n                      className={`gallery__masonry`}\n                      updateOnEachImageLoad={false}\n                      onImagesLoaded={() => this.handleImagesLoaded()}\n                      options={{\n                        initLayout: true,\n                        transitionDuration: 100,\n                      }}\n                    >\n                      <GalleryItem\n                        assets={galleryItems}\n                        onClick={(ev, idx) => this.handleDetails(ev, idx)}\n                        categories={categories}\n                      />\n                    </Masonry>\n                  </InfiniteScroll>\n                  : <h2 className=\"gallery__notfound text0-center py-3\">Images Not found</h2>\n                }\n\n                {show && (\n                  <BuildingDetailsModal\n                    show={show}\n                    onClose={() => this.handleDetails(null)}\n                    content={data}\n                    activeSlide={clickedImgIndx}\n                    categories={categories}\n                  />\n                )}\n              </div>\n            ) : <NoMatch />\n          }\n        </LoadScript>\n      </React.Fragment>\n    )\n  }\n}\n\nexport default Gallery\n","import React, { useCallback, useState } from 'react'\nimport { IModalProps } from '../../common/interfaces/IModal'\nimport LoadingIcon from '../../assets/loader.gif'\nimport { CSSTransition } from 'react-transition-group'\nimport { WayPointAsset } from '../../common/interfaces/IMaps'\nimport { MediaTypes } from '../../common/models/Media'\nimport WebglPanorama from '../webgl-panorama/webgl-panorama'\nimport PanoHelper from '../gallery/pano-details-helper'\nimport WebGLContext from '../../context/webgl-context'\n\ninterface IProps extends IModalProps {\n  basePath: string\n  data: WayPointAsset\n}\n\nconst MarkerModal: React.SFC<IProps> = ({ show, onClose, data, basePath }) => {\n  const nodeRef = React.useRef(null);\n\n  const [imageVisibility, setVisibility] = React.useState<boolean>(false)\n\n  const [showModal, setModal] = React.useState<boolean>(false)\n\n  const youtubeBaseUrl = process.env.REACT_APP_YOUTUBE\n  const vimeoBaseUrl = process.env.REACT_APP_VIMEO\n  const videoUrl = data.mediaType === MediaTypes.youtube ? youtubeBaseUrl : vimeoBaseUrl\n\n  let timer: ReturnType<typeof setTimeout>;\n  const [panoIsRotating, setPanoRotation] = useState<any>(true)\n  const [showPanoHelper, setShowPanoHelper] = useState<any>(false)\n\n  const stopRotation = () => {\n    setShowPanoHelper(false)\n    setPanoRotation(false)\n  }\n  const playPano = () => setPanoRotation(true)\n  const pausePano = () => setPanoRotation(false)\n  \n  const panoIsLoaded = (): void => {\n    setVisibility(true)\n    clearTimeout(timer);\n    setShowPanoHelper(true)\n    timer = setTimeout(() => {\n      setShowPanoHelper(false)\n    } , 5000)\n  }\n\n  const handleClose = useCallback(\n    () => {\n      setModal(false)\n      setTimeout(() => { onClose() }, 150)\n    },\n    [onClose],\n  )\n\n  const handleOutsideClick = useCallback(\n    (e: any) => \n      (nodeRef.current && nodeRef.current === e.target)\n        && handleClose()\n    ,\n    [handleClose],\n  )\n\n  const handlePanoClick = (e: React.MouseEvent<HTMLDivElement>) => {\n    const targ = e.target as HTMLDivElement;\n    const parentClick = targ.tagName === 'CANVAS'\n\n    stopRotation()\n    parentClick && pausePano()\n  }\n\n  React.useEffect(() => {\n    setModal(show)\n    document.addEventListener('click', (e) => handleOutsideClick(e), false)\n    return document.removeEventListener('click', (e) => handleOutsideClick(e), false)\n  }, [show, handleOutsideClick])\n\n  const renderMedia = (mediaType: string) => {\n    switch (mediaType) {\n      case MediaTypes.img:\n        return   <img\n        onLoad={() => setVisibility(true)}\n        className={`${imageVisibility ? 'show' : 'loadig'}`}\n        src={require(`../../assets/${!data.ignoreBasePath ? basePath : ''}${data.imageName}`)}\n        alt={data.title}\n      />\n      case MediaTypes.youtube:\n      case MediaTypes.vimeo:\n        return <iframe\n        className={`${imageVisibility ? 'show' : 'loadig'}`}\n        title={data.title} src={`${videoUrl}${data.videoUrl}?controls=1`}\n        onLoad={() => setVisibility(true)}\n        allowFullScreen></iframe>\n        case MediaTypes.webgl:\n        return (\n          <WebGLContext.Provider value={{ playPano, pausePano, panoIsRotating, stopRotation }}>\n            <div className=\"position-relative\" onClick={e => handlePanoClick(e)}>\n              <WebglPanorama\n                imagePath={require(`../../assets/${!data.ignoreBasePath ? basePath : ''}${data.imageName}`)}\n                onLoaded={() => panoIsLoaded()}\n                cameraConfig={data.cameraConfig}\n              />\n              {imageVisibility && showPanoHelper && <PanoHelper pausePano={() => pausePano()} stopRotation={() => stopRotation()}/>}\n            </div>\n          </WebGLContext.Provider>\n        )\n      default:\n        return null;\n    }\n  }\n\n  const lgModalClass = (mediaType: string) => mediaType === MediaTypes.webgl ? 'modal-large' : ''\n\n  return (\n    <React.Fragment>\n      <CSSTransition\n        in={showModal}\n        timeout={300}\n        classNames=\"modal\"\n        key={'baseModal'}\n      >\n        <div\n          ref={nodeRef}\n          className={`modal ${lgModalClass(data.mediaType)} modal-marker ${show ? 'show d-block' : ''}`}\n          role=\"dialog\"\n        >\n          <div className=\"modal-dialog modal-dialog-centered\">\n            <div className=\"modal-content\">\n\n              <div className=\"modal-body d-flex flex-column\">\n                <div className=\"d-flex flex-row align-items-center justify-content-between mb-2\">\n                  <h6 className=\"mb-0 pr-2\">{data?.title}</h6>\n                  <button\n                    type=\"button\"\n                    className=\"close d-flex\"\n                    data-dismiss=\"modal\"\n                    aria-label=\"Close\"\n                    onClick={() => handleClose()}\n                  >\n                    <svg fill=\"#000\" className=\"ml-3\" width=\"16\" height=\"16\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512.001 512.001\">\n                      <path d=\"M284.286 256.002L506.143 34.144c7.811-7.811 7.811-20.475 0-28.285-7.811-7.81-20.475-7.811-28.285 0L256 227.717 34.143 5.859c-7.811-7.811-20.475-7.811-28.285 0-7.81 7.811-7.811 20.475 0 28.285l221.857 221.857L5.858 477.859c-7.811 7.811-7.811 20.475 0 28.285a19.938 19.938 0 0014.143 5.857 19.94 19.94 0 0014.143-5.857L256 284.287l221.857 221.857c3.905 3.905 9.024 5.857 14.143 5.857s10.237-1.952 14.143-5.857c7.811-7.811 7.811-20.475 0-28.285L284.286 256.002z\" />\n                    </svg>\n                  </button>\n                </div>\n                <div className={`placeholder ${!imageVisibility && 'loading'} d-flex align-items-center justify-content-center`}>\n                  <img src={LoadingIcon} alt=\"loading icon\" />\n                </div>\n                { renderMedia(data.mediaType) }\n                {data?.description && <p className=\"description mt-2 mb-0\">{data?.description}</p>}\n              </div>\n\n            </div>\n          </div>\n        </div>\n      </CSSTransition>\n      <div className={`modal-backdrop fade ${showModal ? 'show' : 'd-none'}`}></div>\n    </React.Fragment>\n  )\n}\n\nexport default MarkerModal\n","import React from \"react\";\nimport ControlsIcon from \"../../assets/pano/nextDestination.png\";\n\ntype Props = {\n  type: string;\n  handleClick: (activeDest: string) => void;\n  activeDest: string;\n  show: boolean\n};\n\nconst DestinationControls: React.FC<Props> = ({\n  handleClick,\n  type,\n  activeDest,\n  show\n}) => {\n  const [shouldRender, setRender] = React.useState(show);\n\n  React.useEffect(() => {\n    if (show) setRender(true);\n  }, [show]);\n\n  const onAnimationEnd = () => {\n    if (!show) setRender(false);\n  };\n\n  return (\n    shouldRender ? (\n      <div\n        className={`pano-controls pano-${type} d-flex flex-row align-items-center`}\n        onAnimationEnd={onAnimationEnd}\n        style={{ animation: `${show ? \"fadeIn\" : \"fadeOut\"} 0.5s` }}\n      >\n        <button\n          className=\"btn btn-transparent d-flex flex-row align-items-center p-0\"\n          onClick={() => handleClick(activeDest)}\n        >\n          <p className=\"mr-3 mb-0 d-none d-md-block\">\n            {type === \"next\" ? \"Next Destination\" : \"Prev Destination\"}\n          </p>\n          <img src={ControlsIcon} alt=\"Destination Controls Icon\" />\n        </button>\n      </div>\n    ) : null\n  );\n};\n\nexport default DestinationControls;\n","import React from 'react'\nimport { StreetViewPanorama, GoogleMap, LoadScript, Marker } from '@react-google-maps/api';\n\nimport BaseComponent from '../../common/base-classes/BaseComponent';\nimport { DefaultCenter, MapsContainerStyle, StreetView, PanoConfigurationPov, PanoConfiguration, WayPointAsset, CameraConfig } from '../../common/interfaces/IMaps';\n\nimport PanoMarker from '../../assets/pano/panoMarker.png'\n\nimport MarkerModal from '../modals/marker-modal';\nimport DestinationControls from './destination-controls';\nimport WebglPanorama from '../webgl-panorama/webgl-panorama';\n\nimport { mapContainerStyle, panoOptions } from '../../content/waypointsData';\nimport MenuContext from '../../context/menu-context';\nimport HotspotsContext from '../../context/hotspots-context';\nimport WebGLContext from '../../context/webgl-context';\n\ntype StreetViewState = {\n  mapContainerStyle: MapsContainerStyle\n  options: PanoConfiguration\n  center: DefaultCenter\n  showModal: boolean;\n  showOverlayItems: boolean;\n  panoImage: string;\n  cameraConfig: CameraConfig | undefined\n  markers: WayPointAsset[]\n  modalData: WayPointAsset;\n  imgBasePath: string\n}\n\ntype StreetViewProps = {\n  activeDestination: string\n  title?: string;\n  autoRotation: boolean\n  data: StreetView\n  show?: boolean;\n  showTitle?: boolean;\n  showNext?: boolean\n  showPrev?: boolean\n  handleNextDest?: (activeDestination?: string) => void\n  handlePrevDest?: (activeDestination?: string) => void\n  handlePanoClick?: () => void\n  activeIndx?: number\n}\n\nclass SreetViewPano extends BaseComponent<StreetViewProps, StreetViewState> {\n\n  private intervalId: any;\n  static contextType = MenuContext\n\n  getInitialState() {\n    return {\n      mapContainerStyle: mapContainerStyle,\n      options: {} as PanoConfiguration,\n      center: {} as DefaultCenter,\n      showModal: false,\n      showOverlayItems: false,\n      panoImage: '',\n      imgBasePath: '',\n      markers: [] as WayPointAsset[],\n      modalData: {} as WayPointAsset,\n      cameraConfig: undefined\n    } as StreetViewState\n  }\n\n  componentDidMount() {\n    this.showLoading(true);\n    this.initStreetView(this.props)\n  }\n\n  UNSAFE_componentWillReceiveProps(props: StreetViewProps) {\n    if (this.props.activeDestination !== props.activeDestination) {\n      this.initStreetView(props)\n    }\n  }\n\n  panoRotation = (rotate: boolean) => {\n    const { activeIndx } = this.props;\n\n    (activeIndx === 0 && rotate) ? setTimeout(() => {\n      this.intervalId = setInterval(() => {\n        if (this.state.showOverlayItems) {\n          let options = { ...this.state.options }\n          options = {\n            lat: options.lat,\n            lng: options.lng,\n            pov: {\n              ...options.pov,\n              heading: options.pov.heading + 0.2,\n            }\n          }\n          this.setState({ options: options })\n        }\n      }, 100)\n    }, 1500) : this.stopRotation()\n  }\n\n  stopRotation = () => {\n    const { handlePanoClick } = this.props\n\n    handlePanoClick && handlePanoClick()\n    clearInterval(this.intervalId)\n  }\n\n  initStreetView = (props: StreetViewProps) => {\n    const { data, activeDestination } = props;\n\n    if (data[activeDestination].panoConfiguration) {\n      const center = {\n        lat: data[activeDestination].panoConfiguration?.lat as number,\n        lng: data[activeDestination].panoConfiguration?.lng as number\n      }\n      const pov = data[activeDestination].panoConfiguration?.pov as PanoConfigurationPov\n      const optionsObj: any = {\n        ...panoOptions,\n        ...{ position: center },\n        ...{ pov: pov }\n      }\n\n      this.setState({\n        options: optionsObj,\n        center: center,\n      })\n    }\n\n    this.panoRotation(props.autoRotation)\n\n    const hotspots = data[activeDestination].panoMarkers\n\n    this.setState({ markers: hotspots ? hotspots : [] as WayPointAsset[] })\n\n    if (data[activeDestination].panoImage) {\n      this.setState({ \n        panoImage: data[activeDestination].basePath + data[activeDestination].panoImage as string,\n        cameraConfig: data[activeDestination].cameraConfig\n      }, () => {\n        this.setState({ showOverlayItems: true })\n      })\n    } else { this.setState({ panoImage: '' }) }\n  }\n\n  handleModal = (state: boolean, hotspot?: WayPointAsset) => {\n    const { data } = this.props\n    const { activeDestination } = this.props\n\n    this.setState({\n      showModal: state,\n      imgBasePath: data[activeDestination].basePath,\n      modalData: hotspot ? hotspot : {} as WayPointAsset\n    })\n  }\n\n  handleClickControls = (activeDest: string, type: string) => {\n    const { handleNextDest, handlePrevDest } = this.props;\n\n    type === 'prev' ? (\n      handlePrevDest && handlePrevDest(activeDest)\n    ) : (\n        handleNextDest && handleNextDest(activeDest)\n      )\n  }\n\n  panoLoaded = () => {\n    this.setState({ showOverlayItems: true }, () => {\n      this.showLoading(false)\n    })\n  }\n\n  render() {\n    const { mapContainerStyle, options, center, showModal, showOverlayItems, panoImage, markers, modalData, cameraConfig } = this.state\n    const { showNext, data, activeDestination, showPrev, autoRotation, show } = this.props;\n    const { handleModal } = this\n    return (\n      <div\n        style={{ \n          width: '100%', height: '100vh', \n          animation: `${show ? \"fadeIn\" : \"fadeOut\"} 1s`\n        }}\n      >\n        {\n          autoRotation &&\n          <div\n            onClick={() => this.stopRotation()}\n            className=\"welcome-overlay position-absolute w-100 h-100\"\n          >\n          </div>\n        }\n\n        <LoadScript googleMapsApiKey={process.env.REACT_APP_MAP_KEY || ''}>\n          {\n            showOverlayItems && (\n              <React.Fragment>\n                <div\n                  className={`pano-title px-4 py-3 ${!autoRotation ? '' : 'invisible'} `}\n                  style={{ animation: `${!autoRotation ? \"fadeIn\" : \"fadeOut\"} 0.5s` }}\n                >\n                  <h1 className=\"mb-0\">{data[activeDestination].title}</h1>\n                </div>\n                <DestinationControls\n                  activeDest={activeDestination}\n                  type=\"prev\"\n                  show={!autoRotation && showPrev as boolean}\n                  handleClick={() => this.handleClickControls(activeDestination, \"prev\")}\n                />\n                <DestinationControls\n                  activeDest={activeDestination}\n                  type=\"next\"\n                  show={!autoRotation && showNext as boolean}\n                  handleClick={() => this.handleClickControls(activeDestination, \"next\")}\n                />\n              </React.Fragment>\n            )\n          }\n          {\n            panoImage !== '' ?\n              (\n                <HotspotsContext.Provider value={{ markers, handleModal }}>\n                  <WebGLContext.Provider value={{ panoIsRotating: autoRotation }}>\n                    <WebglPanorama\n                      imagePath={require(`../../assets/${panoImage}`)}\n                      cameraConfig={cameraConfig}\n                      onLoaded={() => this.showLoading(false)}\n                    />\n                  </WebGLContext.Provider>\n                </HotspotsContext.Provider>\n              )\n              : (\n                <GoogleMap\n                  zoom={14}\n                  center={center}\n                  mapContainerStyle={mapContainerStyle}\n                  options={{\n                    streetViewControl: true,\n                  }}\n                  id={'panorama'}\n                >\n                  <StreetViewPanorama\n                    onLoad={() => this.panoLoaded()}\n                    options={options}\n                  />\n                  {\n                    markers && markers.map((marker, idx) =>\n                      <Marker\n                        key={marker.lat as number}\n                        position={{\n                          lat: marker.lat as number,\n                          lng: marker.lng as number\n                        }}\n                        visible={showOverlayItems}\n                        title={marker.title}\n                        icon={{ url: PanoMarker }}\n                        onClick={x => handleModal(true, marker)}\n                      />\n                    )\n                  }\n                </GoogleMap>\n              )}\n        </LoadScript>\n        {showModal && (\n          <MarkerModal\n            show={showModal}\n            onClose={() => handleModal(false)}\n            data={modalData}\n            basePath={this.state.imgBasePath}\n          />\n        )}\n      </div>\n    )\n  }\n}\n\nexport default SreetViewPano","export const carouselSettings = (slidesToShowInit?: number) => ({\n    dots: false,\n    arrows: false,\n    infinite: true,\n    slidesToShow: slidesToShowInit ? slidesToShowInit : 3,\n    slidesToScroll: 1,\n    className: \"relatedPoints__carousel\",\n    draggable: false,\n    responsive: [\n      {\n        breakpoint: 1199,\n        settings: {\n          slidesToShow: 2,\n        },\n      },\n      {\n        breakpoint: 767,\n        settings: {\n          slidesToShow: 2,\n          centerMode: true,\n          centerPadding: '10%',\n        }\n      },\n      {\n        breakpoint: 575,\n        settings: {\n          slidesToShow: 1,\n          centerMode: true,\n          centerPadding: '13%',\n        },\n      },\n    ],\n});\n\nexport default carouselSettings","import React from 'react'\nimport Img from 'react-cool-img'\nimport Placeholder from \"../../assets/placeholder.png\";\nimport { WayPointAsset, RelatedPoint } from '../../common/interfaces/IMaps'\nimport { MediaTypes } from '../../common/models/Media';\nimport ThumbnailsService from '../../common/services/thumbnails-service';\n\ntype Props = {\n    relatedPoint: WayPointAsset | RelatedPoint\n    onClick: () => void\n}\n\nconst RelatedPointsSlide: React.FC<Props> = ({ relatedPoint, onClick }) => {\n    const renderImagePath = () => {\n        const svc = new ThumbnailsService();\n        let src = '';\n\n        if (relatedPoint.mediaType === MediaTypes.pano) {\n            src = svc.handleType(relatedPoint, undefined, relatedPoint.googlePanoImgLink).thumbNail || ''\n        } else {\n            src = relatedPoint.thumbNail ?\n            ( relatedPoint.ignoreBasePath ? require(`../../assets/${relatedPoint.thumbNail}`) :\n            relatedPoint.thumbNail) : require(`../../assets/${relatedPoint.imageName}`)\n        }\n\n        return src\n    }\n\n    return <div\n        key={relatedPoint.title}\n        className=\"relatedPoints__carousel__item d-flex flex-column\"\n        onClick={() => onClick()}\n    >\n        <h6 className=\"text-white mb-1\">{relatedPoint.title}</h6>\n        <p className=\"mb-0 text-white\">{relatedPoint.description}</p>\n        <Img\n        placeholder={Placeholder}\n        src={ renderImagePath() }\n        alt={relatedPoint.title}\n        loading=\"lazy\"\n        />\n    </div>\n}\n\nexport default RelatedPointsSlide\n","import React from \"react\";\nimport Slider, { Settings } from \"react-slick\";\nimport { withRouter, RouteComponentProps } from \"react-router-dom\";\n\nimport BaseComponent from \"../../common/base-classes/BaseComponent\";\nimport ThumbnailsService from \"../../common/services/thumbnails-service\";\n\nimport {\n  StreetView,\n  WayPointAsset,\n  RelatedPoint,\n} from \"../../common/interfaces/IMaps\";\n\nimport BuildingDetailsModal from \"../modals/building-details-modal\";\n\nimport Arrow from \"../../assets/pano/nextDestination.png\";\n\nimport carouselSettings from \"./related-points-settings\";\nimport RelatedPointsSlide from \"./related-points-slide\";\n\ninterface IRelatedPointsProps extends RouteComponentProps {\n  data: StreetView;\n  activeDestination: string;\n};\n\ntype RelatedPointsState = {\n  relatedPoints: (WayPointAsset | RelatedPoint)[] ;\n  showControls: boolean;\n  showDetailsModal: boolean\n  clickedImgIndx: number\n};\n\nclass RelatedPoints extends BaseComponent<\n  IRelatedPointsProps,\n  RelatedPointsState\n  > {\n  private slider: Slider;\n  private settings: Settings;\n  private svc = new ThumbnailsService();\n\n  constructor(props: IRelatedPointsProps) {\n    super(props);\n    this.settings = carouselSettings(this.props.data[props.activeDestination]?.relatedPoints?.length as number || 3)\n    this.slider = new Slider(this.settings);\n  }\n\n  getInitialState() {\n    return {\n      relatedPoints: [] as WayPointAsset[],\n      showControls: false,\n      showDetailsModal: false,\n      clickedImgIndx: 0\n    } as RelatedPointsState;\n  }\n\n  componentDidMount() {\n    this.setRelatedPoints(this.props);\n  }\n\n  componentWillReceiveProps(props: IRelatedPointsProps) {\n    if (this.props.activeDestination !== props.activeDestination) {\n      this.settings = carouselSettings(this.props.data[props.activeDestination]?.relatedPoints?.length as number || 3);\n      this.setRelatedPoints(props);\n    }\n  }\n\n  setRelatedPoints = (props: IRelatedPointsProps): void => {\n    const { data } = props;\n    const activeDest = data[props.activeDestination]\n    let relatedPoints = activeDest.relatedPoints;\n    if (relatedPoints) {\n      relatedPoints = relatedPoints.map((point) => {\n        const key = point.wayPointKey;\n        const num = point.hotspotNum\n        let panoMarker = {} as WayPointAsset;\n\n        if (key && num) {\n          const panoMarkers = JSON.parse(\n            JSON.stringify(data[key].panoMarkers as WayPointAsset[])\n          );\n\n          panoMarkers && (panoMarker = panoMarkers[num - 1]);\n          if (panoMarker?.ignoreBasePath) return panoMarker;\n\n          panoMarker.imageName &&\n            (panoMarker.imageName = data[key].basePath + panoMarker.imageName);\n\n          panoMarker.videoUrl &&\n            (panoMarker.thumbNail = this.svc.handleType(panoMarker).thumbNail);\n\n          panoMarker.category = activeDest.category.join(', ')\n\n          return panoMarker;\n        } else {\n          if (point.ignoreBasePath) {\n            return point\n          } else {\n            if (point.imageName?.includes(activeDest.basePath)) { return point }\n            point.imageName =\n              activeDest.basePath + point.imageName;\n  \n            point.category = activeDest.category.join(', ')\n  \n            return point;\n          }\n        }\n      });\n    }\n\n    this.setState({\n      showControls: (relatedPoints && relatedPoints.length < 3) ? \n        false : \n        true,\n      relatedPoints: relatedPoints ? relatedPoints : ([] as WayPointAsset[])\n    });\n  };\n\n  handleModal = (show: boolean, idx?: number): void => {\n    idx !== undefined ? \n      this.setState({ clickedImgIndx: idx }, () => this.setState({ showDetailsModal: show })) :\n      this.setState({ showDetailsModal: show })\n  }\n\n  render() {\n    const { relatedPoints, showControls, showDetailsModal, clickedImgIndx } = this.state;\n\n    return (\n      <React.Fragment>\n        <div\n          className={`\n            relatedPoints d-flex flex-column flex-md-row align-items-md-center\n            ${relatedPoints.length === 0 ? 'relatedPoints--invisbile' : ''}\n          `}\n        >\n          <h4 className=\"text-white text-left d-md-none px-2 px-md-0\">\n            Related Points of interest\n          </h4>\n\n          <div className=\"relatedPoints__title px-md-3 d-flex flex-column align-items-center justify-content-center\">\n            <h4 className=\"text-white text-right d-md-block d-none\">\n              Related Points of interest\n            </h4>\n            {showControls && (\n              <div className=\"d-none d-md-flex d-xl-none justify-content-center\">\n                <button\n                  onClick={() => this.slider.slickPrev()}\n                  className=\"btn btn-transparent btn-prev btn-controls mr-2 text-white p-0\"\n                >\n                  <img src={Arrow} alt=\"Prev Destination Icon\" />\n                </button>\n                <button\n                  onClick={() => this.slider.slickNext()}\n                  className=\"btn btn-transparent btn-next btn-controls text-white p-0\"\n                >\n                  <img src={Arrow} alt=\"Next Destination Icon\" />\n                </button>\n              </div>\n            )}\n          </div>\n          <Slider\n            {...this.settings}\n            ref={(c) => (this.slider = c as Slider)}\n          >\n            {\n              relatedPoints.length !== 0 && relatedPoints.map((point: WayPointAsset | RelatedPoint, idx: number) => \n                <RelatedPointsSlide \n                  key={point.title}\n                  relatedPoint={point}\n                  onClick={() => this.handleModal(true, idx)}\n                />\n              )\n            }\n          </Slider>\n        </div>\n        {\n          showDetailsModal && \n            <BuildingDetailsModal\n              show={showDetailsModal}\n              onClose={() => this.handleModal(false)}\n              content={relatedPoints as WayPointAsset[]}\n              activeSlide={clickedImgIndx}\n            />\n        }\n      </React.Fragment>\n    );\n  }\n}\n\nexport default withRouter(RelatedPoints);\n","import React from 'react'\nimport * as H from 'history';\n\nimport BaseComponent from '../common/base-classes/BaseComponent'\nimport SreetViewPano from '../components/street-view/street-view'\nimport RelatedPoints from '../components/related-points/related-points';\nimport ActionBtns from '../components/action-btns/action-btns';\nimport NoMatch from './NoMatch';\n\nimport { campusTourPoints } from '../common/models/WayPoints';\nimport { syncLastDest } from '../common/utils/StoreLastDestination';\nimport { getQueryParams } from '../common/utils/QueryParams';\nimport { IMatch } from '../common/interfaces/IProps';\n\nimport JumpTo from '../assets/google_jump.png'\nimport data from '../content/waypointsData'\n\ntype CampusTourState = {\n  panoSlug: string\n  activeDestIndx: number\n  showNext: boolean,\n  showPrev: boolean,\n  showCaption: boolean\n  autoRotation: boolean\n  dataIsReady: boolean\n  notFound: boolean\n}\n\ntype CampusTourProps = {\n  match: IMatch\n  history: H.History;\n}\n\nexport default class CampusTour extends BaseComponent<CampusTourProps, CampusTourState> {\n\n  getInitialState() {\n    return {\n      panoSlug: '',\n      showNext: true,\n      showPrev: false,\n      activeDestIndx: 0,\n      notFound: false,\n      showCaption: true,\n      autoRotation: false,\n      dataIsReady: false,\n    } as CampusTourState\n  }\n\n  componentDidMount() {\n    const { params } = this.props.match\n\n    this.setActiveDestination(params.slug as string)\n  }\n\n  UNSAFE_componentWillReceiveProps(props: CampusTourProps) {\n    const { params } = props.match\n\n    if (params.slug !== this.props.match.params.slug) {\n      this.setActiveDestination(params.slug as string)\n    }\n  }\n  \n  setActiveDestination = (slug: string): void => {\n    const { params } = this.props.match\n\n    syncLastDest.store('activeDestination', params.slug as string);\n\n    this.setState({\n      panoSlug: slug,\n      activeDestIndx: this.findDestIndx(slug),\n      dataIsReady: false,\n      notFound: this.findDestIndx(slug) === -1 ? true : false,\n    }, () => {\n      this.controlsState()\n      this.handleIntro(this.state.activeDestIndx)\n    })\n  }\n\n  handleIntro = (activeDestIndx: number): void => {\n    const param = getQueryParams(this.props, 'intro')\n    const { history } = this.props\n    const pathName = history.location.pathname;\n\n    if (Boolean(param)) {\n      this.setState({ autoRotation: activeDestIndx === 0 ? true : false });\n    } else {\n      this.stopRotation()\n    }\n\n    history.replace(pathName)\n\n    this.setState({ dataIsReady: true })\n  }\n\n  findDestIndx = (slug: string): number => campusTourPoints.findIndex(point => point.slug === slug)\n\n  showPrevControls = (): boolean => this.state.activeDestIndx === 0\n\n  showNextControls = (): boolean => this.state.activeDestIndx === (campusTourPoints.length - 1)\n\n  changeDest = (type: string): void => {\n    const { activeDestIndx } = this.state;\n    const checkDirection = (idx: number) => type === 'next' ? idx + 1 : idx - 1\n\n    this.setState({ activeDestIndx: checkDirection(activeDestIndx) }, () => {\n      this.controlsState()\n      this.setState({\n        panoSlug: campusTourPoints[this.state.activeDestIndx].slug,\n      },\n        () => {\n          this.updUrl(this.state.panoSlug)\n          this.handleIntro(this.state.activeDestIndx)\n        })\n    })\n  }\n\n  updUrl = (slug: string): void => {\n    const { history } = this.props\n\n    history.push(`/campus-tour/${slug}`)\n  }\n\n  controlsState = (): void => (\n    this.setState({\n      showPrev: !this.showPrevControls(),\n      showNext: !this.showNextControls()\n    })\n  )\n\n  stopRotation = (): void => {\n    const { activeDestIndx } = this.state\n\n    activeDestIndx === 0 && this.setState({ showNext: true })\n    this.setState({ autoRotation: false })\n  }\n\n  render() {\n\n    const { panoSlug, showNext, showPrev, notFound, autoRotation, activeDestIndx, dataIsReady } = this.state\n\n    return (\n      <React.Fragment>\n        {\n          !notFound ? (\n            <React.Fragment>\n              <ActionBtns />\n              {\n                dataIsReady  && (\n                  <SreetViewPano\n                    activeDestination={panoSlug}\n                    data={data}\n                    showNext={showNext}\n                    showPrev={showPrev}\n                    handleNextDest={() => this.changeDest('next')}\n                    handlePrevDest={() => this.changeDest('prev')}\n                    autoRotation={autoRotation}\n                    handlePanoClick={() => this.stopRotation()}\n                    activeIndx={activeDestIndx}\n                    show={dataIsReady}\n                  />\n                )\n              }\n              {\n                (panoSlug !== '' && !autoRotation) &&\n                <RelatedPoints\n                  data={data}\n                  activeDestination={panoSlug}\n                />\n              }\n              <div className={`welcome-text ${!autoRotation ? 'welcome-text--invisible' : ''}`}>\n                <h1>\n                  Welcome to Endicott College\n                    <br />  &mdash;choose your path…\n                  </h1>\n                <div className=\"text-center d-flex flex-column justify-content-center align-items-center\">\n                  <img src={JumpTo} alt=\"Start your tour icon\" />\n                  <small className=\"d-block pt-3\">Start your tour</small>\n                </div>\n              </div>\n            </React.Fragment>\n          ) : <NoMatch />\n        }\n      </React.Fragment>\n    )\n  }\n}\n","import React from 'react';\nimport { HashRouter as Router, Switch, Route, Redirect } from 'react-router-dom';\n\nimport Layout from './components/common/layout/layout';\nimport Loader from './components/loader/loader';\n\nimport { CampusTourKeys } from './common/models/WayPoints';\nimport BaseComponent from './common/base-classes/BaseComponent';\n\nimport Wayfinding from './pages/Wayfinding';\nimport Gallery from './pages/Gallery';\nimport CampusTour from './pages/CampusTour';\nimport NoMatch from './pages/NoMatch';\n\ntype AppState = {\n  showLoader: boolean\n}\n\ntype AppProps = {}\n\nclass App extends BaseComponent<AppProps, AppState> {\n\n  constructor(props: AppProps) {\n    super(props)\n\n    this.state = {\n      showLoader: false,\n    } as AppState;\n  }\n\n  componentDidMount() {\n    this.loadIndicator.subscribe((visible: boolean) => this.setState({ showLoader: visible }));\n  }\n\n  render() {\n    const { showLoader } = this.state\n\n    return (\n      <Router>\n        <Layout>\n          <Switch>\n            <Route exact path=\"/\">\n              <Redirect to={`/campus-tour/${CampusTourKeys.frontGate}?intro=true`} />\n            </Route>\n            <Route exact path=\"/wayfinding\" component={Wayfinding} />\n            <Route exact path=\"/your-path/:slug\" component={Gallery} />\n            <Route exact path=\"/buildings/:slug\" component={Gallery} />\n            <Route exact path=\"/campus-tour/:slug\" component={CampusTour} />\n            <Route component={NoMatch} />\n          </Switch>\n        </Layout>\n        {showLoader && Loader(showLoader)}\n      </Router>\n    );\n  }\n}\n\nexport default App;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n  window.location.hostname === 'localhost' ||\n    // [::1] is the IPv6 localhost address.\n    window.location.hostname === '[::1]' ||\n    // 127.0.0.0/8 are considered localhost for IPv4.\n    window.location.hostname.match(\n      /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n    )\n);\n\ntype Config = {\n  onSuccess?: (registration: ServiceWorkerRegistration) => void;\n  onUpdate?: (registration: ServiceWorkerRegistration) => void;\n};\n\nexport function register(config?: Config) {\n  if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n    // The URL constructor is available in all browsers that support SW.\n    const publicUrl = new URL(\n      process.env.PUBLIC_URL,\n      window.location.href\n    );\n    if (publicUrl.origin !== window.location.origin) {\n      // Our service worker won't work if PUBLIC_URL is on a different origin\n      // from what our page is served on. This might happen if a CDN is used to\n      // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n      return;\n    }\n\n    window.addEventListener('load', () => {\n      const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n      if (isLocalhost) {\n        // This is running on localhost. Let's check if a service worker still exists or not.\n        checkValidServiceWorker(swUrl, config);\n\n        // Add some additional logging to localhost, pointing developers to the\n        // service worker/PWA documentation.\n        navigator.serviceWorker.ready.then(() => {\n          console.log(\n            'This web app is being served cache-first by a service ' +\n              'worker. To learn more, visit https://bit.ly/CRA-PWA'\n          );\n        });\n      } else {\n        // Is not localhost. Just register service worker\n        registerValidSW(swUrl, config);\n      }\n    });\n  }\n}\n\nfunction registerValidSW(swUrl: string, config?: Config) {\n  navigator.serviceWorker\n    .register(swUrl)\n    .then(registration => {\n      registration.onupdatefound = () => {\n        const installingWorker = registration.installing;\n        if (installingWorker == null) {\n          return;\n        }\n        installingWorker.onstatechange = () => {\n          if (installingWorker.state === 'installed') {\n            if (navigator.serviceWorker.controller) {\n              // At this point, the updated precached content has been fetched,\n              // but the previous service worker will still serve the older\n              // content until all client tabs are closed.\n              console.log(\n                'New content is available and will be used when all ' +\n                  'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n              );\n\n              // Execute callback\n              if (config && config.onUpdate) {\n                config.onUpdate(registration);\n              }\n            } else {\n              // At this point, everything has been precached.\n              // It's the perfect time to display a\n              // \"Content is cached for offline use.\" message.\n              console.log('Content is cached for offline use.');\n\n              // Execute callback\n              if (config && config.onSuccess) {\n                config.onSuccess(registration);\n              }\n            }\n          }\n        };\n      };\n    })\n    .catch(error => {\n      console.error('Error during service worker registration:', error);\n    });\n}\n\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\n  // Check if the service worker can be found. If it can't reload the page.\n  fetch(swUrl, {\n    headers: { 'Service-Worker': 'script' }\n  })\n    .then(response => {\n      // Ensure service worker exists, and that we really are getting a JS file.\n      const contentType = response.headers.get('content-type');\n      if (\n        response.status === 404 ||\n        (contentType != null && contentType.indexOf('javascript') === -1)\n      ) {\n        // No service worker found. Probably a different app. Reload the page.\n        navigator.serviceWorker.ready.then(registration => {\n          registration.unregister().then(() => {\n            window.location.reload();\n          });\n        });\n      } else {\n        // Service worker found. Proceed as normal.\n        registerValidSW(swUrl, config);\n      }\n    })\n    .catch(() => {\n      console.log(\n        'No internet connection found. App is running in offline mode.'\n      );\n    });\n}\n\nexport function unregister() {\n  if ('serviceWorker' in navigator) {\n    navigator.serviceWorker.ready\n      .then(registration => {\n        registration.unregister();\n      })\n      .catch(error => {\n        console.error(error.message);\n      });\n  }\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './map.css';\nimport './index.scss';\nimport App from './App';\nimport { BrowserRouter } from 'react-router-dom';\nimport * as serviceWorker from './serviceWorker';\nimport TagManager from \"react-gtm-module\";\n\nconst tagManagerArgs = {\n  gtmId: process.env.REACT_APP_GTM_ID!,\n};\n\nTagManager.initialize(tagManagerArgs);\n\nReactDOM.render(\n  <BrowserRouter>\n    <App />\n  </BrowserRouter>,\n  document.getElementById('root')\n);\n\nserviceWorker.unregister();\n"],"sourceRoot":""}