tribe.events=tribe.events||{},tribe.events.views=tribe.events.views||{},tribe.events.views.mapProviderGoogleMaps={},function(e,t){"use strict";var i=e(document);t.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"},t.state={mapsScriptLoaded:void 0!==window.google&&void 0!==window.google.maps,zoom:10},t.handleTooltipSlideChange=function(t,i){return function(){var n=e(i.slider.slides[i.slider.activeIndex]).attr("data-event-id"),o=tribe.events.views.mapEvents.selectors,a='[data-event-id="'+n+'"]',s=t.find(o.eventCardButton),r=t.find(o.eventCardWrapper+a),l=r.find(o.eventCardButton);tribe.events.views.mapEvents.deselectAllEvents(s),tribe.events.views.mapEvents.selectEvent(l),tribe.events.views.mapEventsScroller.isWithinScrollView(t,r)||tribe.events.views.mapEventsScroller.scrollTo(t,r)}},t.getEventFromState=function(e,t){var i=e.events.filter((function(e){return e.eventId==t}));return!!i.length&&i[0]},t.deinitTooltipSlider=function(e){e&&!e.destroyed&&(e.off("slideChange"),e.destroy())},t.initTooltipSlider=function(e){var i=e.find(t.selectors.googleMapsPremium),n=i.find(t.selectors.eventTooltipSlider);if(n.length){var o=i.data("tribeEventsState"),a='[data-event-id="'+o.activeEventId+'"]',s=n.find(t.selectors.eventTooltipSlide+a);o.slider=new Swiper(n[0],{initialSlide:s.attr("data-slide-index"),speed:0,resistanceRatio:0,allowTouchMove:!1,containerModifierClass:"tribe-swiper-container-",wrapperClass:"tribe-swiper-wrapper",slideClass:"tribe-swiper-slide",navigation:{prevEl:n.find(t.selectors.eventTooltipPrevButton)[0],nextEl:n.find(t.selectors.eventTooltipNextButton)[0],disabledClass:t.selectors.eventTooltipButtonDisabledClass.className()}}),o.slider.on("slideChange",t.handleTooltipSlideChange(e,o))}},t.closeTooltip=function(e){t.deinitTooltipSlider(e.slider),e.tooltip.close()},t.openTooltip=function(e,t,i,n){e.setContent(t),e.open(i,n)},t.handleEventClick=function(e,i,n){var o,a;if(i.find(t.selectors.map).data("tribeEventsState").isPremium){var s=i.find(t.selectors.googleMapsPremium),r=s.data("tribeEventsState"),l=(o=n.closest(t.selectors.eventCardWrapper)).attr("data-event-id"),d=t.getEventFromState(r,l);if(t.closeTooltip(r),i.trigger("closeNoVenueModal.tribeEvents"),d){var p=o.find(t.selectors.eventTooltipTemplate);t.openTooltip(r.tooltip,p[0].textContent,r.map,d.marker),r.activeEventId=l,s.data("tribeEventsState",r),r.map.panTo(d.marker.getPosition())}else a=o.find(t.selectors.eventActionLinkDetails).attr("href"),i.trigger("openNoVenueModal.tribeEvents"),i.trigger("setNoVenueModalLink.tribeEvents",[a])}else{var v=i.find(t.selectors.googleMapsDefault);o=n.closest(t.selectors.eventCardWrapper);var c=v.attr("src"),m=o.attr("data-src");i.trigger("closeNoVenueModal.tribeEvents"),m&&c!==m?v.attr("src",m):m||(a=o.find(t.selectors.eventActionLinkDetails).attr("href"),i.trigger("openNoVenueModal.tribeEvents"),i.trigger("setNoVenueModalLink.tribeEvents",[a]))}},t.handleMarkerClick=function(e,i){return function(){var n=e.find(t.selectors.googleMapsPremium),o=n.data("tribeEventsState"),a=i.get("eventIds"),s=i.getPosition(),r=tribe.events.views.mapEvents.selectors,l='[data-event-id="'+a[0]+'"]',d=e.find(r.eventCardButton),p=e.find(r.eventCardWrapper+l),v=p.find(r.eventCardButton);tribe.events.views.mapEvents.deselectAllEvents(d),tribe.events.views.mapEvents.selectEvent(v),tribe.events.views.mapEventsScroller.isWithinScrollView(e,p)||tribe.events.views.mapEventsScroller.scrollTo(e,p);var c=p.find(t.selectors.eventTooltipTemplate);t.closeTooltip(o),t.openTooltip(o.tooltip,c[0].textContent,o.map,i),o.activeEventId=a[0],n.data("tribeEventsState",o),o.map.panTo(s)}},t.handleMapClick=function(e,i){return function(){var i=e.find(t.selectors.googleMapsPremium),n=i.data("tribeEventsState");t.closeTooltip(n),n.activeEventId=null,i.data("tribeEventsState",n);var o=e.find(tribe.events.views.mapEvents.selectors.eventCardButton);tribe.events.views.mapEvents.deselectAllEvents(o)}},t.handleTooltipCloseClick=function(e){return function(){var i=e.find(t.selectors.googleMapsPremium),n=i.data("tribeEventsState");n.activeEventId=null,i.data("tribeEventsState",n),t.deinitTooltipSlider(n.slider);var o=e.find(tribe.events.views.mapEvents.selectors.eventCardButton);tribe.events.views.mapEvents.deselectAllEvents(o)}},t.handleTooltipDomReady=function(e){return function(){t.initTooltipSlider(e)}},t.unsetMarkers=function(e){var i=e.find(t.selectors.googleMapsPremium),n=i.data("tribeEventsState");n.markers.forEach((function(e){google.maps.event.clearInstanceListeners(e),e.setMap(null)})),n.markers=[],n.events=[],i.data("tribeEventsState",n)},t.setMarkers=function(i,n){var o=i.find(t.selectors.googleMapsPremium),a=o.data("tribeEventsState"),s=new google.maps.LatLngBounds;e.each(n.events_by_venue,(function(e,o){if(o.geolocation){var r=new google.maps.Marker({position:new google.maps.LatLng(o.geolocation.latitude,o.geolocation.longitude),map:a.map,eventIds:o.event_ids,icon:n.map_provider.map_pin_url});r.addListener("click",t.handleMarkerClick(i,r)),s.extend(r.getPosition()),a.markers.push(r),o.event_ids.forEach((function(e,t){a.events.push({eventId:e,marker:r,index:t})}))}})),1===a.markers.length?(a.map.setCenter(a.markers[0].getPosition()),a.map.setZoom(t.state.zoom)):(a.map.fitBounds(s),google.maps.event.addListenerOnce(a.map,"idle",(function(){a.map.getZoom()>t.state.zoom&&a.map.setZoom(t.state.zoom)}))),o.data("tribeEventsState",a)},t.initMapState=function(e){e.data("tribeEventsState",{map:null,tooltip:null,slider:null,activeEventId:null,events:[],markers:[]})},t.deinitTooltip=function(e){google.maps.event.clearInstanceListeners(e.tooltip)},t.initTooltip=function(e){var i=e.find(t.selectors.googleMapsPremium).data("tribeEventsState");i.tooltip.addListener("closeclick",t.handleTooltipCloseClick(e)),i.tooltip.addListener("domready",t.handleTooltipDomReady(e))},t.createTooltip=function(e){var i=e.find(t.selectors.googleMapsPremium),n=i.data("tribeEventsState");n.tooltip=new google.maps.InfoWindow,n.tooltip.addListener("closeclick",t.handleTooltipCloseClick(e)),n.tooltip.addListener("domready",t.handleTooltipDomReady(e)),i.data("tribeEventsState",n)},t.createNewMap=function(e){var i=e.find(t.selectors.googleMapsPremium),n=i.data("tribeEventsState");n.map=new google.maps.Map(i[0],{zoom:t.state.zoom,center:new google.maps.LatLng(0,0)}),n.map.addListener("click",t.handleMapClick(e,n.map)),i.data("tribeEventsState",n)},t.cacheMap=function(e){e.find(t.selectors.googleMapsPremium).addClass(t.selectors.tribeCommonA11yHiddenClass.className()).insertAfter(e)},t.getCachedMap=function(e){var i=e.siblings(t.selectors.googleMapsPremium).removeClass(t.selectors.tribeCommonA11yHiddenClass.className());e.find(t.selectors.googleMapsPremium).replaceWith(i)},t.isMapCached=function(e){return 0!==e.siblings(t.selectors.googleMapsPremium).length},t.deinitMap=function(e){var i=e.find(t.selectors.googleMapsPremium);if(i.length&&"undefined"!=typeof google){var n=i.data("tribeEventsState");t.unsetMarkers(e),t.closeTooltip(n),t.deinitTooltip(n),n.activeEventId=null,i.data("tribeEventsState",n),t.cacheMap(e)}},t.initMap=function(e,i){var n=e.find(t.selectors.googleMapsPremium);n.length&&"undefined"!=typeof google&&(t.isMapCached(e)?(t.getCachedMap(e),t.initTooltip(e)):(t.initMapState(n),t.createTooltip(e),t.createNewMap(e)),t.setMarkers(e,i))},t.handleMapsScriptLoadedSuccess=function(e,i){return function(n,o,a){t.state.mapsScriptLoaded=!0,t.initMap(e,i),e.on("afterMapEventClick.tribeEvents",t.handleEventClick),e.on("mapDeinit.tribeEvents",{container:e},t.deinit)}},t.setIsPremium=function(e,i){var n={isPremium:i.map_provider.is_premium};return e.find(t.selectors.map).data("tribeEventsState",n),n.isPremium},t.deinit=function(e,i,n){var o=e.data.container;t.deinitMap(o),o.off("afterMapEventClick.tribeEvents",t.handleEventClick),o.off("mapDeinit.tribeEvents",t.deinit)},t.init=function(i,n,o,a){if("map"===a.slug)if(t.state.zoom=a.map_provider.zoom,t.setIsPremium(o,a))if(t.state.mapsScriptLoaded)t.initMap(o,a),o.on("afterMapEventClick.tribeEvents",t.handleEventClick),o.on("mapDeinit.tribeEvents",{container:o},t.deinit);else{var s=a.map_provider.javascript_url+"?key="+a.map_provider.api_key+"&callback="+encodeURIComponent(a.map_provider.callback);e.ajax({url:s,dataType:"script",success:t.handleMapsScriptLoadedSuccess(o,a)})}else o.on("afterMapEventClick.tribeEvents",t.handleEventClick),o.on("mapDeinit.tribeEvents",{container:o},t.deinit)},t.ready=function(){i.on("mapInit.tribeEvents",tribe.events.views.manager.selectors.container,t.init)},e(t.ready)}(jQuery,tribe.events.views.mapProviderGoogleMaps),window.tec=window.tec||{},window.tec.eventsPro=window.tec.eventsPro||{},window.tec.eventsPro.views=window.tec.eventsPro.views||{},window.tec.eventsPro.views.mapProviderGoogleMaps={};