{"version":3,"sources":["getting-to-the-show.js"],"names":["window","BoatShows","$","Drupal","GettingToTheShow","CustomMarker","latlng","map","args","setMap","initMap","$thisMap","$filteredLocations","$thisMapContainer","find","latLng","google","maps","LatLng","data","gmapOptions","zoom","center","gmap","Map","get","each","$thisLocation","markerLatLng","marker","marker_id","CustomMarkerSetup","prototype","OverlayView","draw","self","markerDiv","div","document","createElement","markerDivContent","appendChild","className","style","position","dataset","innerHTML","panes","getPanes","overlayImage","point","getProjection","fromLatLngToDivPixel","left","x","top","y","remove","parentNode","removeChild","getPosition","behaviors","gettingToTheShow","attach","context","settings","once","gmapAPIKey","gmapScriptUrl","s","src","type","async","head","$maps","$arrivalLocations","onload","filter","jQuery"],"mappings":"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","file":"getting-to-the-show.js","sourcesContent":["window.BoatShows = window.BoatShows || {};\n\n(function($, Drupal, BoatShows) {\n 'use strict';\n\n var GettingToTheShow = function() {\n\n function CustomMarker(latlng, map, args) {\n this.latlng = latlng;\n this.args = args;\n this.setMap(map);\n }\n\n function initMap($thisMap, $filteredLocations) {\n var $thisMapContainer = $thisMap.find('.map-container');\n var latLng = new google.maps.LatLng($thisMap.data('lat'), $thisMap.data('lng'));\n var gmapOptions = {\n zoom: $thisMap.data('map-zoom'),\n center: latLng,\n // disableDefaultUI: true\n }\n\n // The map, centered on the location\n var gmap = new google.maps.Map($thisMapContainer.get(0), gmapOptions);\n\n // The markers, positioned on the location\n $filteredLocations.each(function() {\n var $thisLocation = $(this);\n var markerLatLng = new google.maps.LatLng($thisLocation.data('lat'), $thisLocation.data('lng'));\n var marker = new CustomMarker(markerLatLng, gmap, {marker_id: $thisLocation.data('marker-label')});\n });\n }\n\n // Custom HTML marker prototype extend\n function CustomMarkerSetup() {\n CustomMarker.prototype = new google.maps.OverlayView();\n\n CustomMarker.prototype.draw = function() {\n var self = this;\n var markerDiv = self.div;\n if (!markerDiv) {\n markerDiv = self.div = document.createElement('div');\n var markerDivContent = document.createElement('div');\n markerDiv.appendChild(markerDivContent);\n markerDiv.className = 'map-marker-label';\n markerDivContent.className = 'marker-label-content';\n markerDiv.style.position = 'absolute';\n\n if (typeof(self.args.marker_id) !== 'undefined') {\n markerDiv.dataset.marker_id = self.args.marker_id;\n markerDivContent.innerHTML = self.args.marker_id;\n }\n\n var panes = self.getPanes();\n panes.overlayImage.appendChild(markerDiv);\n }\n\n var point = self.getProjection().fromLatLngToDivPixel(self.latlng);\n\n if (point) {\n markerDiv.style.left = (point.x - 14) + 'px';\n markerDiv.style.top = (point.y - 41) + 'px';\n }\n };\n\n CustomMarker.prototype.remove = function() {\n if (this.div) {\n this.div.parentNode.removeChild(this.div);\n this.div = null;\n }\n };\n\n CustomMarker.prototype.getPosition = function() {\n return this.latlng;\n };\n }\n\n Drupal.behaviors.gettingToTheShow = {\n attach: function(context, settings) {\n $(context).once('getting-to-the-show').each(function() {\n var gmapAPIKey = 'AIzaSyCDlZzpLTpVIxteGhmpaA2Iglm0_zp_dbg';\n var gmapScriptUrl = 'https://maps.googleapis.com/maps/api/js?key=' + gmapAPIKey; // + '&callback=initMap';\n var s = document.createElement(\"script\");\n s.src = gmapScriptUrl;\n s.type = \"text/javascript\";\n s.async = false;\n document.head.appendChild(s);\n\n var $maps = $(context).find('.brick--type--map');\n var $arrivalLocations = $(context).find('.brick--type--arrival-location');\n\n // Initialize map when gmaps script is loaded\n s.onload = function() {\n // Set up marker prototype overrides\n CustomMarkerSetup();\n\n // Loop maps\n $maps.each(function() {\n var $thisMap = $(this);\n\n // Filter for arrival locations with same ID as map\n var $filteredLocations = $arrivalLocations.filter(function() {\n return $(this).data('map-id') === $thisMap.data('map-id');\n });\n\n initMap($thisMap, $filteredLocations);\n });\n }\n });\n }\n };\n };\n\n BoatShows.GettingToTheShow = new GettingToTheShow();\n})(jQuery, Drupal, BoatShows);\n"]}