{"version":3,"file":"elements-map.cfa459ec04bd1567014a.js","mappings":"+GAAA,MAAMA,EAAQC,SAASC,eAAe,YAelCF,GAbsBG,MACpBF,SAASC,eAAe,uBAC1BD,SAASC,eAAe,sBAAsBE,SAGhD,MAAMC,EAAMJ,SAASK,cAAc,UACnCD,EAAIE,IAAO,+CAA8CP,EAAMQ,QAAQC,uBACvEJ,EAAIK,GAAK,qBAET,MAAMC,EAAiBV,SAASW,qBAAqB,UAAU,GAC/DD,EAAeE,WAAWC,aAAaT,EAAKM,EAAe,EAI3DR,GAGFY,OAAOC,QAAU,KACf,MAAMC,EAASF,OAAOE,OAChBjB,EAAQC,SAASC,eAAe,YAEtC,IAAKF,EACH,OAGF,MAAMkB,EAAajB,SAASkB,cAAc,oBACpCC,EAAOC,KAAKC,MAAMtB,EAAMQ,QAAQe,MAEhCC,EAAa,CACjBC,OAAQ,IAAIR,EAAOS,KAAKC,OAAOP,EAAKQ,IAAKR,EAAKS,KAC9CC,KAAM,GACNC,UAAWd,EAAOS,KAAKM,UAAUC,QACjCC,kBAAkB,EAClBC,aAAa,EACbC,gBAAiB,OACjBC,OAAQ,CACN,CACEC,YAAa,MACbC,YAAa,SACbC,QAAS,CAAC,CAAEC,WAAY,WAKxBC,EAAM,IAAIzB,EAAOS,KAAKiB,IAAI3C,EAAOwB,GACjCoB,EAAS,IAAI3B,EAAOS,KAAKmB,aAE/B5B,EAAOS,KAAKoB,MAAMC,gBAAgBL,EAAK,eAAe,KACpD,MAAMM,EAAY,CAChBC,IAAK,m2BACLC,WAAY,IAAIjC,EAAOS,KAAKyB,KAAK,GAAI,KAEjCC,EAAS,IAAInC,EAAOS,KAAK2B,OAAO,CACpCX,IAAKA,EACLY,MAAOlC,EAAKkC,MACZC,SAAU,IAAItC,EAAOS,KAAKC,OAAOP,EAAKQ,IAAKR,EAAKS,KAChD2B,YAAa,IAAIvC,EAAOS,KAAKC,OAAOP,EAAKQ,IAAKR,EAAKS,KACnD4B,KAAMT,IAGR/B,EAAOS,KAAKoB,MAAMY,YAAYN,EAAQ,SAAS,KAC7CrC,OAAO4C,KAAKvC,EAAK6B,IAAK,SAAS,IAGjChC,EAAOS,KAAKoB,MAAMY,YAAYN,EAAQ,aAAa,WACjDQ,KAAKC,aAAa5C,EAAOS,KAAKoC,UAAUC,OAC1C,IAEA9C,EAAOS,KAAKoB,MAAMY,YAAYN,EAAQ,YAAY,WAChDQ,KAAKC,aAAa,KACpB,IAEAjB,EAAOoB,OAAOZ,EAAOa,eAErB,MAAMC,EAAmBC,SAASjD,EAAWkD,cAEzCrD,OAAOsD,WAAW,sBAAsBC,QAC1C5B,EAAI6B,OAAO,IAAK,IAEhB7B,EAAI6B,MAAM,GAAuB,IAApBL,EACf,GACA,C","sources":["webpack://silverstripe-base/./themes/app/src/elements/map.js"],"sourcesContent":["const mapEl = document.getElementById('park-map')\n\nconst loadGoogleMapsApi = () => {\n if (document.getElementById('google-maps-api-js')) {\n document.getElementById('google-maps-api-js').remove()\n }\n\n const tag = document.createElement('script')\n tag.src = `https://maps.googleapis.com/maps/api/js?key=${mapEl.dataset.key}&callback=initMap`\n tag.id = 'google-maps-api-js'\n\n const firstScriptTag = document.getElementsByTagName('script')[0]\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag)\n}\n\nif (mapEl) {\n loadGoogleMapsApi()\n}\n\nwindow.initMap = () => {\n const google = window.google\n const mapEl = document.getElementById('park-map')\n\n if (!mapEl) {\n return\n }\n\n const infoWindow = document.querySelector('.map-info-window')\n const data = JSON.parse(mapEl.dataset.json)\n\n const mapOptions = {\n center: new google.maps.LatLng(data.lat, data.lng),\n zoom: 16,\n mapTypeId: google.maps.MapTypeId.ROADMAP,\n disableDefaultUI: true,\n scrollwheel: false,\n gestureHandling: 'none',\n styles: [\n {\n featureType: 'poi',\n elementType: 'labels',\n stylers: [{ visibility: 'off' }],\n },\n ],\n }\n\n const map = new google.maps.Map(mapEl, mapOptions)\n const bounds = new google.maps.LatLngBounds()\n\n google.maps.event.addListenerOnce(map, 'tilesloaded', () => {\n const mapMarker = {\n url: \"data:image/svg+xml,%3Csvg viewBox='0 0 63 92' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M31.037.5c16.83 0 30.538 13.706 30.538 30.537 0 12.11-5.034 19.75-11.386 29.392-1.5 2.276-3.072 4.663-4.669 7.247L31.037 90.944 16.555 67.678v-.001c-1.598-2.584-3.17-4.971-4.67-7.247C5.534 50.787.5 43.147.5 31.037.5 14.207 14.206.5 31.037.5Zm17.607 29.315c0-9.558-7.795-17.607-17.607-17.607-9.811 0-17.607 8.049-17.607 17.607 0 9.807 7.8 17.607 17.607 17.607 9.807 0 17.607-7.8 17.607-17.607Z' fill='url(%23a)' stroke='%23fff'/%3E%3Cdefs%3E%3ClinearGradient id='a' x1='31.035' y1='91.895' x2='31.035' y2='0' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2300859E'/%3E%3Cstop offset='.14' stop-color='%23008D8D'/%3E%3Cstop offset='.53' stop-color='%2300A35F'/%3E%3Cstop offset='.72' stop-color='%2300AC4E'/%3E%3C/linearGradient%3E%3C/defs%3E%3C/svg%3E\",\n scaledSize: new google.maps.Size(50, 74),\n }\n const marker = new google.maps.Marker({\n map: map,\n title: data.title,\n position: new google.maps.LatLng(data.lat, data.lng),\n panposition: new google.maps.LatLng(data.lat, data.lng),\n icon: mapMarker,\n })\n\n google.maps.event.addListener(marker, 'click', () => {\n window.open(data.url, '_blank')\n })\n\n google.maps.event.addListener(marker, 'mouseover', function () {\n this.setAnimation(google.maps.Animation.BOUNCE)\n })\n\n google.maps.event.addListener(marker, 'mouseout', function () {\n this.setAnimation(null)\n })\n\n bounds.extend(marker.getPosition())\n\n const infoWindowHeight = parseInt(infoWindow.offsetHeight)\n\n if (window.matchMedia('(min-width: 768px)').matches) {\n map.panBy(-60, -40)\n } else {\n map.panBy(0, infoWindowHeight * -1.1)\n }\n })\n}\n"],"names":["mapEl","document","getElementById","loadGoogleMapsApi","remove","tag","createElement","src","dataset","key","id","firstScriptTag","getElementsByTagName","parentNode","insertBefore","window","initMap","google","infoWindow","querySelector","data","JSON","parse","json","mapOptions","center","maps","LatLng","lat","lng","zoom","mapTypeId","MapTypeId","ROADMAP","disableDefaultUI","scrollwheel","gestureHandling","styles","featureType","elementType","stylers","visibility","map","Map","bounds","LatLngBounds","event","addListenerOnce","mapMarker","url","scaledSize","Size","marker","Marker","title","position","panposition","icon","addListener","open","this","setAnimation","Animation","BOUNCE","extend","getPosition","infoWindowHeight","parseInt","offsetHeight","matchMedia","matches","panBy"],"sourceRoot":""}