{"version":3,"sources":["mapbox.js"],"names":["jQuery","getScriptAndCache","url","options","$","extend","dataType","cache","ajax","getStyleAndCache","mapBox","elements","pop","pin","instances","init","length","done","script","textStatus","style","appendTo","each","index","target","this","varName","attr","data","window","mapboxgl","accessToken","apikey","name","container","pins","site","isTouch","matchMedia","bp","desktop","matches","dragPan","Map","scrollZoom","disable","addControl","NavigationControl","showCompass","features","marker","title","parseHTML","properties","message","html","element","on","e","type","which","setTimeout","Popup","offset","anchor","setLngLat","geometry","coordinates","setHTML","addTo","px","project","_lngLat","y","_container","clientHeight","panTo","unproject","animate","focus","closest","prev","Marker","console","log","doc","keyup","keyCode","utils","checkOnScreen","get","remove"],"mappings":"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","file":"mapbox-d1849cb5f0.min.js","sourcesContent":["jQuery.getScriptAndCache = function (url, options) {\r\n\r\n\t// allow user to set any option except for dataType, cache, and url\r\n\r\n\toptions = $.extend(options || {}, {\r\n\t\tdataType: 'script',\r\n\t\tcache: true,\r\n\t\turl: url\r\n\t});\r\n\r\n\t// use $.ajax() since it is more flexible than $.getScript\r\n\t// return the jqXHR object so we can chain callbacks\r\n\r\n\treturn jQuery.ajax(options);\r\n\r\n};\r\n\r\njQuery.getStyleAndCache = function (url, options) {\r\n\r\n\t// allow user to set any option except for dataType, cache, and url\r\n\r\n\toptions = $.extend(options || {}, {\r\n\t\tdataType: 'text',\r\n\t\tcache: true,\r\n\t\turl: url\r\n\t});\r\n\r\n\t// use $.ajax() since it is more flexible than $.getScript\r\n\t// return the jqXHR object so we can chain callbacks\r\n\r\n\treturn jQuery.ajax(options);\r\n\r\n};\r\n\r\nvar mapBox = {\r\n\r\n\r\n\r\n\telements: $('[data-mapbox]'),\r\n\r\n\r\n\r\n\tpop: null,\r\n\r\n\r\n\r\n\tpin: null,\r\n\r\n\r\n\r\n\tinstances: {},\r\n\r\n\r\n\r\n\tinit: function () {\r\n\r\n\r\n\r\n\t\tif (mapBox.elements.length) {\r\n\r\n\r\n\r\n\t\t\t$.getScriptAndCache('https://api.mapbox.com/mapbox-gl-js/v0.47.0/mapbox-gl.js').done(function (script, textStatus) {\r\n\r\n\r\n\r\n\t\t\t\t$.getStyleAndCache('https://api.mapbox.com/mapbox-gl-js/v0.47.0/mapbox-gl.css').done(function (style, textStatus) {\r\n\r\n\r\n\r\n\t\t\t\t\t$('').appendTo('head'); \r\n\r\n\r\n\r\n\t\t\t\t\tmapBox.elements.each(function (index) {\r\n\r\n\r\n\r\n\t\t\t\t\t\tvar target = $(this),\r\n\r\n\t\t\t\t\t\tvarName = target.attr('data-mapbox'),\r\n\r\n\t\t\t\t\t\tdata = window[varName] || false;\r\n\r\n\r\n\r\n\t\t\t\t\t\tif (data) {\r\n\r\n\r\n\r\n\t\t\t\t\t\t\tmapboxgl.accessToken = data.apikey;\r\n\r\n\t\t\t\t\t\t\tif (data.apikey || false) delete data.apikey;\r\n\r\n\r\n\r\n\t\t\t\t\t\t\tvar name = 'mapbox-' + varName + '-' + index;\r\n\r\n\t\t\t\t\t\t\ttarget.attr('id', name);\r\n\r\n\t\t\t\t\t\t\tdata.container = name;\r\n\r\n\r\n\r\n\t\t\t\t\t\t\tvar pins = data.pins || false;\r\n\r\n\t\t\t\t\t\t\tif (pins) { delete data.pins; }\r\n\r\n\r\n\r\n\t\t\t\t\t\t\tif (site.isTouch() && window.matchMedia('(max-width: ' + (site.bp.desktop - 1) + 'px)').matches) { data.dragPan = false; }\r\n\r\n\r\n\r\n\t\t\t\t\t\t\tmapBox.instances[name] = new mapboxgl.Map(data);\r\n\r\n\t\t\t\t\t\t\tmapBox.instances[name].scrollZoom.disable();\r\n\r\n\t\t\t\t\t\t\tmapBox.instances[name].addControl(new mapboxgl.NavigationControl({ showCompass: false }));\r\n\r\n\r\n\r\n\t\t\t\t\t\t\tif (pins) {\r\n\r\n\r\n\r\n\t\t\t\t\t\t\t\t$.each(pins.features, function (index, marker) {\r\n\r\n\r\n\r\n\t\t\t\t\t\t\t\t\tvar title = $($.parseHTML(marker.properties.message)[0]).html();\r\n\r\n\r\n\r\n\t\t\t\t\t\t\t\t\tvar element = $('
');\r\n\r\n\r\n\r\n\t\t\t\t\t\t\t\t\telement.attr('tabindex', 0);\r\n\r\n\t\t\t\t\t\t\t\t\telement.attr('role', 'link');\r\n\r\n\t\t\t\t\t\t\t\t\telement.attr('aria-label', title);\r\n\r\n\r\n\r\n\t\t\t\t\t\t\t\t\telement.on('click keypress', function (e) {\r\n\r\n\r\n\r\n\t\t\t\t\t\t\t\t\t\tif ((e.type == 'keypress') && (e.which !== 13)) { return false; } // bail out for keypress unless enter key\r\n\r\n\r\n\r\n\t\t\t\t\t\t\t\t\t\tmapBox.pin = $(this); // cache active pin\r\n\r\n\r\n\r\n\t\t\t\t\t\t\t\t\t\tsetTimeout(function () {\r\n\r\n\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tmapBox.pop = new mapboxgl.Popup({ offset: [0, -60], anchor: 'bottom' }).setLngLat(marker.geometry.coordinates).setHTML('
' + marker.properties.message + '
').addTo(mapBox.instances[name]);\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tvar px = mapBox.instances[name].project(mapBox.pop._lngLat); // find the pixel location on the map where the popup anchor is\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tpx.y -= (mapBox.pop._container.clientHeight + 60) / 2 // find the height of the popup container, divide by 2, subtract from the Y axis of marker location\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tmapBox.instances[name].panTo(mapBox.instances[name].unproject(px), { animate: true }); // pan to new center\r\n\r\n\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t$('.m-mapbox__popup').focus();\r\n\r\n\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t$('.m-mapbox__popup__focus-loop').focus(function () {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t$(this).closest('.m-mapbox__popup').prev('.mapboxgl-popup-close-button').focus();\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t});\r\n\r\n\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tmapBox.pop.on('close', function () { mapBox.pin.focus(); }); // focus on last active pin\r\n\r\n\r\n\r\n\t\t\t\t\t\t\t\t\t\t}, 100);\r\n\r\n\r\n\r\n\t\t\t\t\t\t\t\t\t});\r\n\r\n\r\n\r\n\t\t\t\t\t\t\t\t\tnew mapboxgl.Marker(element[0]).setLngLat(marker.geometry.coordinates).addTo(mapBox.instances[name]);\r\n\r\n\r\n\r\n\t\t\t\t\t\t\t\t});\r\n\r\n\r\n\r\n\t\t\t\t\t\t\t}\r\n\r\n\r\n\r\n\t\t\t\t\t\t} else {\r\n\r\n\r\n\r\n\t\t\t\t\t\t\tconsole.log('No valid data for map ' + varName);\r\n\r\n\r\n\r\n\t\t\t\t\t\t}\r\n\r\n\r\n\r\n\t\t\t\t\t});\r\n\r\n\r\n\r\n\t\t\t\t\tsite.doc.keyup(function (e) {\r\n\r\n\r\n\r\n\t\t\t\t\t\tif (e.keyCode == 27) {\r\n\r\n\r\n\r\n\t\t\t\t\t\t\tif (utils.checkOnScreen(mapBox.elements.get(0))) {\r\n\r\n\r\n\r\n\t\t\t\t\t\t\t\tif (mapBox.pop) { mapBox.pop.remove(); }\r\n\r\n\r\n\r\n\t\t\t\t\t\t\t}\r\n\r\n\r\n\r\n\t\t\t\t\t\t}\r\n\r\n\r\n\r\n\t\t\t\t\t});\r\n\r\n\r\n\r\n\t\t\t\t});\r\n\r\n\r\n\r\n\t\t\t});\r\n\r\n\r\n\r\n\t\t}\r\n\r\n\r\n\r\n\t}\r\n\r\n\r\n\r\n};\r\n\r\n\r\n\r\n$(function () {\r\n\r\n\tmapBox.init();\r\n\r\n});"]}