/**
 * This JS file was auto-generated via Terser.
 *
 * Contributors should avoid editing this file, but instead edit the associated
 * non minified file file. For more information, check out our engineering docs
 * on how we handle JS minification in our engineering docs.
 *
 * @see: https://evnt.is/dev-docs-minification
 */

tribe.events=tribe.events||{},tribe.events.views=tribe.events.views||{},tribe.events.views.mapProviderGoogleMaps={},function($,obj){"use strict";var $document=$(document);obj.selectors={map:'[data-js="tribe-events-pro-map-map"]',googleMapsDefault:'[data-js="tribe-events-pro-map-google-maps-default"]',googleMapsPremium:'[data-js="tribe-events-pro-map-google-maps-premium"]',eventCardWrapper:'[data-js="tribe-events-pro-map-event-card-wrapper"]',eventTooltipTemplate:'[data-js="tribe-events-pro-map-event-tooltip-template"]',eventTooltipSlider:'[data-js="tribe-events-pro-map-event-tooltip-slider"]',eventTooltipSlide:'[data-js="tribe-events-pro-map-event-tooltip-slide"]',eventTooltipPrevButton:'[data-js="tribe-events-pro-map-event-tooltip-prev-button"]',eventTooltipNextButton:'[data-js="tribe-events-pro-map-event-tooltip-next-button"]',eventTooltipButtonDisabledClass:".tribe-events-pro-map__event-tooltip-navigation-button--disabled",eventActionLinkDetails:'[data-js="tribe-events-pro-map-event-actions-link-details"]',tribeCommonA11yHiddenClass:".tribe-common-a11y-hidden"},obj.state={mapsScriptLoaded:void 0!==window.google&&void 0!==window.google.maps,zoom:10},obj.handleTooltipSlideChange=function($container,state){return function(){var eventId=$(state.slider.slides[state.slider.activeIndex]).attr("data-event-id"),mapEventsSelectors=tribe.events.views.mapEvents.selectors,activeEventCardWrapperSelector='[data-event-id="'+eventId+'"]',$buttons=$container.find(mapEventsSelectors.eventCardButton),$eventCardWrapper=$container.find(mapEventsSelectors.eventCardWrapper+activeEventCardWrapperSelector),$button=$eventCardWrapper.find(mapEventsSelectors.eventCardButton);tribe.events.views.mapEvents.deselectAllEvents($buttons),tribe.events.views.mapEvents.selectEvent($button),tribe.events.views.mapEventsScroller.isWithinScrollView($container,$eventCardWrapper)||tribe.events.views.mapEventsScroller.scrollTo($container,$eventCardWrapper)}},obj.getEventFromState=function(state,eventId){var eventObjects=state.events.filter((function(event){return event.eventId==eventId}));return!!eventObjects.length&&eventObjects[0]},obj.deinitTooltipSlider=function(slider){slider&&!slider.destroyed&&(slider.off("slideChange"),slider.destroy())},obj.initTooltipSlider=function($container){var $googleMapsPremium=$container.find(obj.selectors.googleMapsPremium),$tooltipSlider=$googleMapsPremium.find(obj.selectors.eventTooltipSlider);if($tooltipSlider.length){var state=$googleMapsPremium.data("tribeEventsState"),activeEventTooltipSlideSelector='[data-event-id="'+state.activeEventId+'"]',$initialSlide=$tooltipSlider.find(obj.selectors.eventTooltipSlide+activeEventTooltipSlideSelector);state.slider=new Swiper($tooltipSlider[0],{initialSlide:$initialSlide.attr("data-slide-index"),speed:0,resistanceRatio:0,allowTouchMove:!1,containerModifierClass:"tribe-swiper-container-",wrapperClass:"tribe-swiper-wrapper",slideClass:"tribe-swiper-slide",navigation:{prevEl:$tooltipSlider.find(obj.selectors.eventTooltipPrevButton)[0],nextEl:$tooltipSlider.find(obj.selectors.eventTooltipNextButton)[0],disabledClass:obj.selectors.eventTooltipButtonDisabledClass.className()}}),state.slider.on("slideChange",obj.handleTooltipSlideChange($container,state))}},obj.closeTooltip=function(state){obj.deinitTooltipSlider(state.slider),state.tooltip.close()},obj.openTooltip=function(tooltip,template,map,marker){tooltip.setContent(template),tooltip.open(map,marker)},obj.handleEventClick=function(event,$container,$button){var $eventCardWrapper,detailsLink;if($container.find(obj.selectors.map).data("tribeEventsState").isPremium){var $googleMapsPremium=$container.find(obj.selectors.googleMapsPremium),state=$googleMapsPremium.data("tribeEventsState"),eventId=($eventCardWrapper=$button.closest(obj.selectors.eventCardWrapper)).attr("data-event-id"),eventObject=obj.getEventFromState(state,eventId);if(obj.closeTooltip(state),$container.trigger("closeNoVenueModal.tribeEvents"),eventObject){var $tooltipTemplate=$eventCardWrapper.find(obj.selectors.eventTooltipTemplate);obj.openTooltip(state.tooltip,$tooltipTemplate[0].textContent,state.map,eventObject.marker),state.activeEventId=eventId,$googleMapsPremium.data("tribeEventsState",state),state.map.panTo(eventObject.marker.getPosition())}else detailsLink=$eventCardWrapper.find(obj.selectors.eventActionLinkDetails).attr("href"),$container.trigger("openNoVenueModal.tribeEvents"),$container.trigger("setNoVenueModalLink.tribeEvents",[detailsLink])}else{var $googleMapsDefault=$container.find(obj.selectors.googleMapsDefault);$eventCardWrapper=$button.closest(obj.selectors.eventCardWrapper);var currentSrc=$googleMapsDefault.attr("src"),src=$eventCardWrapper.attr("data-src");$container.trigger("closeNoVenueModal.tribeEvents"),src&&currentSrc!==src?$googleMapsDefault.attr("src",src):src||(detailsLink=$eventCardWrapper.find(obj.selectors.eventActionLinkDetails).attr("href"),$container.trigger("openNoVenueModal.tribeEvents"),$container.trigger("setNoVenueModalLink.tribeEvents",[detailsLink]))}},obj.handleMarkerClick=function($container,marker){return function(){var $googleMapsPremium=$container.find(obj.selectors.googleMapsPremium),state=$googleMapsPremium.data("tribeEventsState"),eventIds=marker.get("eventIds"),position=marker.getPosition(),mapEventsSelectors=tribe.events.views.mapEvents.selectors,activeEventCardWrapperSelector='[data-event-id="'+eventIds[0]+'"]',$buttons=$container.find(mapEventsSelectors.eventCardButton),$eventCardWrapper=$container.find(mapEventsSelectors.eventCardWrapper+activeEventCardWrapperSelector),$button=$eventCardWrapper.find(mapEventsSelectors.eventCardButton);tribe.events.views.mapEvents.deselectAllEvents($buttons),tribe.events.views.mapEvents.selectEvent($button),tribe.events.views.mapEventsScroller.isWithinScrollView($container,$eventCardWrapper)||tribe.events.views.mapEventsScroller.scrollTo($container,$eventCardWrapper);var $tooltipTemplate=$eventCardWrapper.find(obj.selectors.eventTooltipTemplate);obj.closeTooltip(state),obj.openTooltip(state.tooltip,$tooltipTemplate[0].textContent,state.map,marker),state.activeEventId=eventIds[0],$googleMapsPremium.data("tribeEventsState",state),state.map.panTo(position)}},obj.handleMapClick=function($container,map){return function(){var $googleMapsPremium=$container.find(obj.selectors.googleMapsPremium),state=$googleMapsPremium.data("tribeEventsState");obj.closeTooltip(state),state.activeEventId=null,$googleMapsPremium.data("tribeEventsState",state);var $buttons=$container.find(tribe.events.views.mapEvents.selectors.eventCardButton);tribe.events.views.mapEvents.deselectAllEvents($buttons)}},obj.handleTooltipCloseClick=function($container){return function(){var $googleMapsPremium=$container.find(obj.selectors.googleMapsPremium),state=$googleMapsPremium.data("tribeEventsState");state.activeEventId=null,$googleMapsPremium.data("tribeEventsState",state),obj.deinitTooltipSlider(state.slider);var $buttons=$container.find(tribe.events.views.mapEvents.selectors.eventCardButton);tribe.events.views.mapEvents.deselectAllEvents($buttons)}},obj.handleTooltipDomReady=function($container){return function(){obj.initTooltipSlider($container)}},obj.unsetMarkers=function($container){var $googleMapsPremium=$container.find(obj.selectors.googleMapsPremium),state=$googleMapsPremium.data("tribeEventsState");state.markers.forEach((function(marker){google.maps.event.clearInstanceListeners(marker),marker.setMap(null)})),state.markers=[],state.events=[],$googleMapsPremium.data("tribeEventsState",state)},obj.setMarkers=function($container,data){var $googleMapsPremium=$container.find(obj.selectors.googleMapsPremium),state=$googleMapsPremium.data("tribeEventsState"),bounds=new google.maps.LatLngBounds;$.each(data.events_by_venue,(function(venueId,venue){if(venue.geolocation){var marker=new google.maps.Marker({position:new google.maps.LatLng(venue.geolocation.latitude,venue.geolocation.longitude),map:state.map,eventIds:venue.event_ids,icon:data.map_provider.map_pin_url});marker.addListener("click",obj.handleMarkerClick($container,marker)),bounds.extend(marker.getPosition()),state.markers.push(marker),venue.event_ids.forEach((function(eventId,eventIdIndex){state.events.push({eventId:eventId,marker:marker,index:eventIdIndex})}))}})),1===state.markers.length?(state.map.setCenter(state.markers[0].getPosition()),state.map.setZoom(obj.state.zoom)):(state.map.fitBounds(bounds),google.maps.event.addListenerOnce(state.map,"idle",(function(){state.map.getZoom()>obj.state.zoom&&state.map.setZoom(obj.state.zoom)}))),$googleMapsPremium.data("tribeEventsState",state)},obj.initMapState=function($googleMapsPremium){$googleMapsPremium.data("tribeEventsState",{map:null,tooltip:null,slider:null,activeEventId:null,events:[],markers:[]})},obj.deinitTooltip=function(state){google.maps.event.clearInstanceListeners(state.tooltip)},obj.initTooltip=function($container){var state=$container.find(obj.selectors.googleMapsPremium).data("tribeEventsState");state.tooltip.addListener("closeclick",obj.handleTooltipCloseClick($container)),state.tooltip.addListener("domready",obj.handleTooltipDomReady($container))},obj.createTooltip=function($container){var $googleMapsPremium=$container.find(obj.selectors.googleMapsPremium),state=$googleMapsPremium.data("tribeEventsState");state.tooltip=new google.maps.InfoWindow,state.tooltip.addListener("closeclick",obj.handleTooltipCloseClick($container)),state.tooltip.addListener("domready",obj.handleTooltipDomReady($container)),$googleMapsPremium.data("tribeEventsState",state)},obj.createNewMap=function($container){var $googleMapsPremium=$container.find(obj.selectors.googleMapsPremium),state=$googleMapsPremium.data("tribeEventsState");state.map=new google.maps.Map($googleMapsPremium[0],{zoom:obj.state.zoom,center:new google.maps.LatLng(0,0)}),state.map.addListener("click",obj.handleMapClick($container,state.map)),$googleMapsPremium.data("tribeEventsState",state)},obj.cacheMap=function($container){$container.find(obj.selectors.googleMapsPremium).addClass(obj.selectors.tribeCommonA11yHiddenClass.className()).insertAfter($container)},obj.getCachedMap=function($container){var $googleMapsPremium=$container.siblings(obj.selectors.googleMapsPremium).removeClass(obj.selectors.tribeCommonA11yHiddenClass.className());$container.find(obj.selectors.googleMapsPremium).replaceWith($googleMapsPremium)},obj.isMapCached=function($container){return 0!==$container.siblings(obj.selectors.googleMapsPremium).length},obj.deinitMap=function($container){var $googleMapsPremium=$container.find(obj.selectors.googleMapsPremium);if($googleMapsPremium.length&&"undefined"!=typeof google){var state=$googleMapsPremium.data("tribeEventsState");obj.unsetMarkers($container),obj.closeTooltip(state),obj.deinitTooltip(state),state.activeEventId=null,$googleMapsPremium.data("tribeEventsState",state),obj.cacheMap($container)}},obj.initMap=function($container,data){var $googleMapsPremium=$container.find(obj.selectors.googleMapsPremium);$googleMapsPremium.length&&"undefined"!=typeof google&&(obj.isMapCached($container)?(obj.getCachedMap($container),obj.initTooltip($container)):(obj.initMapState($googleMapsPremium),obj.createTooltip($container),obj.createNewMap($container)),obj.setMarkers($container,data))},obj.handleMapsScriptLoadedSuccess=function($container,data){return function(script,textStatus,jqXHR){obj.state.mapsScriptLoaded=!0,obj.initMap($container,data),$container.on("afterMapEventClick.tribeEvents",obj.handleEventClick),$container.on("mapDeinit.tribeEvents",{container:$container},obj.deinit)}},obj.setIsPremium=function($container,data){var state={isPremium:data.map_provider.is_premium};return $container.find(obj.selectors.map).data("tribeEventsState",state),state.isPremium},obj.deinit=function(event,jqXHR,settings){var $container=event.data.container;obj.deinitMap($container),$container.off("afterMapEventClick.tribeEvents",obj.handleEventClick),$container.off("mapDeinit.tribeEvents",obj.deinit)},obj.init=function(event,index,$container,data){if("map"===data.slug)if(obj.state.zoom=data.map_provider.zoom,obj.setIsPremium($container,data))if(obj.state.mapsScriptLoaded)obj.initMap($container,data),$container.on("afterMapEventClick.tribeEvents",obj.handleEventClick),$container.on("mapDeinit.tribeEvents",{container:$container},obj.deinit);else{var url=data.map_provider.javascript_url+"?key="+data.map_provider.api_key+"&callback="+encodeURIComponent(data.map_provider.callback);$.ajax({url:url,dataType:"script",success:obj.handleMapsScriptLoadedSuccess($container,data)})}else $container.on("afterMapEventClick.tribeEvents",obj.handleEventClick),$container.on("mapDeinit.tribeEvents",{container:$container},obj.deinit)},obj.ready=function(){$document.on("mapInit.tribeEvents",tribe.events.views.manager.selectors.container,obj.init)},$(obj.ready)}(jQuery,tribe.events.views.mapProviderGoogleMaps);