PageSourceSearch

https://tasmania.com/wp-content/cache/min/1/wp-content/themes/tasmania/js/custom-map-2.js?ver=1789141823

js tasmania.com collected 2026-09-24 18:41:34 UTC 6,376 bytes, 16 lines download raw bytes

1(function($,data,PrintMapControl){$(window).on('load',init);var iconBase=data.template_directory_uri+'/img/';function init(){$('.custom-map-2').each(initMap);bindSidebarButtons();blockPanelLinks();bindPanelToggle();bindPanelItems()}
2function initMap(){var _this=this;var $mapContainer=$(_this);var markersArray=[];var infoWindow=new google.maps.InfoWindow({});var $mapDataEl=$mapContainer.find('#custom-map-data');if($mapDataEl.length==0)return;var mapData=null;try{mapData=JSON.parse(urldecode($mapDataEl.val()))}catch(e){}
3$mapDataEl.remove();if(!mapData)return;var $map=$mapContainer.find('.custom-map-2--map');var $panel=$mapContainer.find('.custom-map-2--panel');if($map.length==0||$panel.length==0)return;var dataMapCentre=$map.data('map-centre');if(!dataMapCentre)return;dataMapCentre=dataMapCentre.split(',');if(dataMapCentre.length!==2)return;var mapCentre={lat:parseFloat(dataMapCentre[0]),lng:parseFloat(dataMapCentre[1])};var zoomlevel=16;if($map.data('map-zoom')){zoomlevel=parseFloat($map.data('map-zoom'))||zoomlevel}
4this.map=renderGoogleMap($map[0],mapCentre,zoomlevel);this.filterType=null;this.filterMap=function(type){if(type==_this.filterType){_this.showPanel();return}
5_this.filterType=type;var renderData=mapData.filter(function(item){return(type==='all'?true:(item.type===type))});_this.renderList(renderData);_this.renderMarkers(renderData);_this.showPanel()};this.showPanel=function(){if(!_this.filterType){_this.filterMap('all')}
6$panel.addClass('active');_this.panelActive=!0};this.hidePanel=function(){$panel.removeClass('active');_this.panelActive=!1};this.setActiveButton=function($button){$mapContainer.find('.custom-map-2--sidebar .map-button').removeClass('active');$button.addClass('active')};this.renderList=function(data){var $panelInner=$panel.find('.panel-inner');var output='';$.each(data,function(index,item){output+='<button type="button" class="list-group-item list-group-item-action custom-map--sidebar-marker '+item.type+'" data-id="'+item.id+'">';output+='<span class="container d-block">';output+='<span class="row">';output+='<span class="custom-map--sidebar-marker-thumb '+item.type+' d-block">';output+='<span class="image-container--cover d-block"><img src="'+item.thumbUrl+'" class="d-block"></span>';output+='</span>';output+='<span class="col pl-2 pr-1">';output+='<h6 class="mb-1 marker-title">'+item.title+'</h6>';if(item.short_location&&item.short_location.length>0)
7output+='<small>'+item.short_location+'</small>';output+='</span>';output+='<span class="d-block"><a href="#" data-href="'+item.url+'"><span class="icon-circle alt-black"><i class="fas fa-arrow-right"></i></span></a></span>';output+='</span>';output+='</span>';output+='</button>'});$panelInner.html(output)};this.renderMarkers=function(data){_this.clearMarkers();$.each(data,function(index,item){var lat=parseFloat(item.lat);var lng=parseFloat(item.lng);var id=item.id;var icon=null;if(item.type=='activity'){icon=iconBase+'marker-red.png'}else if(item.type=='accommodation'){icon=iconBase+'marker-green.png'}
8var gMarker=new google.maps.Marker({position:{lat:lat,lng:lng},map:_this.map,title:item.title,icon:icon});gMarker.addListener('click',function(){_this.openInfoWindow({gMarker:gMarker,data:item});_this.hidePanel()});markersArray.push({gMarker:gMarker,data:item,id:item.id,_position:{lat:lat,lng:lng}})})};this.infoWindowContent=function(marker){var iwContent='<div class="map-iw-content">';iwContent+='<div class="container"><div class="row">';iwContent+='<div class="custom-map--marker-thumb '+marker.type+'"><div class="image-container--cover">';if(marker.thumbUrl)iwContent+='<img src="'+marker.thumbUrl+'">';iwContent+='</div></div>';iwContent+='<div class="col">';iwContent+='<h6 class="py-2 mb-1 marker-title">'+marker.title+'</h6>';if(marker.short_location)iwContent+='<p class="custom-map--marker-desc">'+marker.short_location+'</p>';iwContent+='</div>';if(marker.url)iwContent+='<div class="align-self-center"><a href="'+marker.url+'" ><span class="planning-your-trip-button--icon"><i class="fas fa-arrow-right"></i></span></a></div>';iwContent+='</div>';
8iwContent+='</div>';return iwContent};this.openInfoWindow=function(data){var markerData={};var gMarker={};if(data.id){var found=!1;$.each(markersArray,function(i,item){if(item.id==data.id){markerData=item.data;gMarker=item.gMarker;found=!0;return!1}});if(!found)return}else if(data.gMarker&&data.data){gMarker=data.gMarker;markerData=data.data}else{return}
9infoWindow.setContent(_this.infoWindowContent(markerData));infoWindow.open(_this.map,gMarker);_this.map.setCenter({lat:gMarker.position.lat(),lng:gMarker.position.lng()})};this.clearMarkers=function(){for(var i=0;i<markersArray.length;i++){markersArray[i].gMarker.setMap(null)}
10markersArray.length=0}}
11function bindPanelItems(){$(document.body).on('click','.custom-map-2 .custom-map-2--panel button.custom-map--sidebar-marker',function(e){var $this=$(this);var $parentContainer=$this.closest('.custom-map-2');$parentContainer[0].hidePanel();$parentContainer[0].openInfoWindow({id:$this.data('id')})})}
12function bindPanelToggle(){$(document.body).on('click','.custom-map-2 .custom-map-2--panel button.button-panel-toggler',function(e){var $this=$(this);var $parentContainer=$this.closest('.custom-map-2');if($parentContainer[0].panelActive){$parentContainer[0].hidePanel()}else{$parentContainer[0].showPanel()}})}
13function bindSidebarButtons(){$(document.body).on('click','.custom-map-2 .custom-map-2--panel .custom-map-2--panel-side .map-button',function(e){var $this=$(this);if(!$this.data('map-toggle'))return;var $parentContainer=$this.closest('.custom-map-2');$parentContainer[0].setActiveButton($this);$parentContainer[0].filterMap($this.data('map-toggle'))})}
14function blockPanelLinks(){$(document.body).on('click','.custom-map-2 .custom-map-2--panel a[data-href]',function(e){e.preventDefault();window.location.href=$(this).data('href')})}
15function renderGoogleMap(el,centre,zoomlevel){var map=new google.maps.Map(el,{zoom:zoomlevel,center:centre,disableDefaultUI:!0,zoomControl:!0,mapTypeControl:!1,scaleControl:!1,streetViewControl:!1,rotateControl:!1,fullscreenControl:!1,styles:tasmania_custom_map_styles()});map.controls[google.maps.ControlPosition.TOP_RIGHT].push(new PrintMapControl(map));return map}
16function urldecode(url){return decodeURIComponent(url.replace(/\+/g,' '))}})(jQuery,_data,PrintMapControl)

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.