{"version":3,"sources":["priory.locationBlock.js"],"names":["LocationBlock","[object Object]","el","this","scope","mapWrapper","querySelector","mapToggle","coords","dataset","split","id","locationId","map","getDirectionLinks","querySelectorAll","bindEvents","options","locations","latitude","parseFloat","longitude","nodeId","openWindow","zoomControl","fullscreenControl","addEventListener","GoogleMap","forEach","link","getDirections","navigator","permissions","query","name","then","result","mapURL","failure","redirect","state","geolocation","getCurrentPosition","position","url","test","userAgent","window","location","replace","open","ControlBinders","register"],"mappings":"AAAA,MAAMA,cACJC,YAAYC,GACVC,KAAKC,MAAQF,EACbC,KAAKE,WAAaH,EAAGI,cAAc,sBACnCH,KAAKI,UAAYL,EAAGI,cAAc,qBAClCH,KAAKK,OAASL,KAAKE,WAAWI,QAAQD,OAAOE,MAAM,KACnDP,KAAKQ,GAAKR,KAAKE,WAAWI,QAAQG,WAClCT,KAAKU,IAAM,KACXV,KAAKW,kBAAoBZ,EAAGa,iBAAiB,yBACzB,OAAhBZ,KAAKK,QAA+B,OAAZL,KAAKQ,IAC/BR,KAAKa,aAGTf,aACE,IAAIgB,EAAU,CACZC,UAAW,CACTA,UAAW,CAAC,CACVC,SAAYC,WAAWjB,KAAKK,OAAO,IACnCa,UAAaD,WAAWjB,KAAKK,OAAO,IACpCc,OAAQnB,KAAKQ,MAGjBY,YAAY,EACZC,aAAa,EACbC,mBAAmB,GAErBtB,KAAKI,UAAUmB,iBAAiB,QAAS,KACvCvB,KAAKU,IAAM,IAAIc,UAAUxB,KAAKE,WAAYY,KAE5Cd,KAAKW,kBAAkBc,QAAQC,IAC7BA,EAAKH,iBAAiB,QAAS,IAAM1B,cAAc8B,cAAc3B,KAAKK,WAG1EP,qBAAqBO,GACnBuB,UAAUC,YAAYC,MAAM,CAC1BC,KAAM,gBACLC,KAAKC,IACN,IAAIC,EAAS,mCACb,SAASC,IACPC,KAAYF,KAAU7B,MAEH,YAAjB4B,EAAOI,OAAwC,WAAjBJ,EAAOI,MACvCT,UAAUU,YAAYC,mBAAmBC,IACvCJ,KAAYF,IAAS,CAACM,EAASnC,OAAOW,SAAUwB,EAASnC,OAAOa,cAAcb,OAC7E8B,GAEHA,MAGJ,MAAMC,EAAWK,IACX,mBAAmBC,KAAKd,UAAUe,WACpCC,OAAOC,SAASC,QAAQL,GAExBG,OAAOG,KAAKN,KAKpBO,eAAeC,SAAS,wBAAyBlD,GAAM,IAAIF,cAAcE","sourcesContent":["class LocationBlock {\r\n constructor(el) {\r\n this.scope = el;\r\n this.mapWrapper = el.querySelector(\"[data-map-wrapper]\");\r\n this.mapToggle = el.querySelector(\"[data-map-toggle]\");\r\n this.coords = this.mapWrapper.dataset.coords.split(\",\");\r\n this.id = this.mapWrapper.dataset.locationId;\r\n this.map = null;\r\n this.getDirectionLinks = el.querySelectorAll(\"[data-get-directions]\");\r\n if(this.coords !== null && this.id !== null){\r\n this.bindEvents();\r\n }\r\n }\r\n bindEvents() {\r\n let options = {\r\n locations: {\r\n locations: [{\r\n \"latitude\": parseFloat(this.coords[0]),\r\n \"longitude\": parseFloat(this.coords[1]),\r\n nodeId: this.id\r\n }]\r\n },\r\n openWindow: true,\r\n zoomControl: true,\r\n fullscreenControl: true\r\n };\r\n this.mapToggle.addEventListener(\"click\", () => {\r\n this.map = new GoogleMap(this.mapWrapper, options);\r\n });\r\n this.getDirectionLinks.forEach(link =>{\r\n link.addEventListener(\"click\", ()=> LocationBlock.getDirections(this.coords));\r\n })\r\n }\r\n \r\n static getDirections(coords){\r\n navigator.permissions.query({ name: \"geolocation\" }).then((result) => {\r\n let mapURL = \"https://www.google.com/maps/dir/\";\r\n function failure(){\r\n redirect(`${mapURL}/${coords}/`)\r\n }\r\n if (result.state === \"granted\" || result.state === \"prompt\") {\r\n navigator.geolocation.getCurrentPosition((position) => {\r\n redirect(`${mapURL}${[position.coords.latitude, position.coords.longitude]}/${coords}/`);\r\n }, failure);\r\n } else {\r\n failure();\r\n }\r\n });\r\n const redirect = (url) =>{\r\n if (/iPad|iPhone|iPod/.test(navigator.userAgent)) {\r\n window.location.replace(url);\r\n }else{\r\n window.open(url);\r\n }\r\n }\r\n }\r\n}\r\nControlBinders.register(`[data-location-block]`, el => new LocationBlock(el));\r\n"],"file":"priory.locationBlock-min.js"}