{"version":3,"file":"MapLoad.chunk-475191.js","mappings":"4JAKIA,ECMAC,EACAD,E,uEDLAE,EAAiBC,OAAOC,OAAO,CAClCC,IAAK,WACLC,IAAK,WACLC,OAAQ,cACRC,KAAM,cAGHC,EAAa,CAChBC,KAAM,SAASC,GACdX,EAAQW,EAAMC,OAAO,6BAErBH,EAAWI,oBACZ,EAEAA,mBAAoB,YACnBC,EAAAA,EAAAA,IAAU,iBAAkBL,EAAWM,aACxC,EAEAA,aAAc,WAEb,IAAK,IAAIC,EAAI,EAAGA,EAAIhB,EAAMiB,OAAQD,IAAK,CACtC,IAeIT,EAfAW,EAAYlB,EAAMgB,GAClBG,EAAWnB,EAAMoB,GAAGJ,GAEpBR,EAAOa,SAASF,EAASG,KAAKpB,EAAeM,MAAO,KAAO,GAE3De,EAAWC,WAAWL,EAASG,KAAKpB,EAAeG,MACnDoB,EAAYD,WAAWL,EAASG,KAAKpB,EAAeI,MAGpDoB,EAASP,EAASG,KAAKpB,EAAeK,QAE1CmB,GADAA,EAASA,EAAOC,MAAM,MACNC,KAAI,SAAUC,GAC7B,OAAOL,WAAWK,EAAGC,OACtB,IASA,IAAIC,EAAa,CAChBvB,KAAMA,GAAQ,GACdwB,OAPAzB,EADGgB,GAAYE,EACN,IAAIxB,OAAOgC,KAAKC,OAAOX,EAAUE,GAEjC,IAAIxB,OAAOgC,KAAKC,OAAOR,EAAO,GAAIA,EAAO,IAMlDS,WAAYC,OAAOC,WAAW,qBAAqBC,QACnDC,mBAAmB,EACnBC,aAAa,EACbC,gBAAgB,EAChBC,YAAY,EACZC,kBAAmB,CAClBC,SAAU3C,OAAOgC,KAAKY,gBAAgBC,aAEvCC,aAAa,EACbC,mBAAoB,CACnBC,MAAOhD,OAAOgC,KAAKiB,iBAAiBC,MACpCP,SAAU3C,OAAOgC,KAAKY,gBAAgBO,eAIpCxB,EAAM,IAAI3B,OAAOgC,KAAKoB,IAAInC,EAAWa,GAE5B,IAAI9B,OAAOgC,KAAKqB,OAAO,CACnCV,SAAUrC,EACVqB,IAAKA,GAEP,CACD,GClEG2B,EAASnB,OAAOoB,cAChBC,GAAY,EAIZC,EAAU,CACbhD,KAAM,SAASC,GACd,GAAK4C,EAAL,CAOA,IAAII,GAFJ3D,EAAQW,GAEcS,GAAG,GAKrBpB,EAAMiB,SACY,IAAjBjB,EAAMiB,QAAoD,gBAApC0C,EAAUrC,KAAK,kBAGxCb,EAAWC,KAAKV,GAEjB0D,EAAQE,UAfT,CAiBD,EAGAA,QAAS,WACRC,IAAAA,UAAY,gCAAgC,WAC3CzB,OAAOnC,OAAO6D,KAAK,OAAQ,IAAK,CAC/BC,aAAc,QAAUR,EACxBS,SAAUN,EAAQO,cAEpB,GACD,EAGAA,aAAc,WACbR,GAAY,EACZxD,EAASmC,OAAOnC,QAEhBiE,EAAAA,EAAAA,IAAQ,iBACT,EAGAC,gBAAiB,WAChB,MAAO,CACNC,OAAQX,EACRxD,OAAQA,EAEV,E,uBC7DD,IAAI4D,EAAI,EAAQ,MACZQ,EAAO,YAQXR,EAAE,CAAES,OAAQ,QAASC,OAAO,EAAMC,QAPC,EAAQ,KAEjBC,CAA6B,QAKW,CAChE7C,IAAK,SAAa8C,GAChB,OAAOL,EAAKM,KAAMD,EAAYE,UAAU3D,OAAS,EAAI2D,UAAU,QAAKC,EACtE,G","sources":["webpack://BellGully/../http/content/scripts/src/app/ui/map/map.control.js","webpack://BellGully/../http/content/scripts/src/app/ui/map/map.load.js","webpack://BellGully/./node_modules/core-js/modules/es.array.map.js"],"sourcesContent":["/* app/ui/map/map.control */\r\n\r\nimport $ from 'jquery';\r\nimport { subscribe } from 'Util/pubsub';\r\n\r\nvar $maps;\r\n\r\nvar dataAttributes = Object.freeze({\r\n\tlat: 'data-lat',\r\n\tlng: 'data-lng',\r\n\tlatLng: 'data-latlng',\r\n\tzoom: 'data-zoom'\r\n});\r\n\r\nvar MapControl = {\r\n\tinit: function($elms) {\r\n\t\t$maps = $elms.filter('[data-map-type=\"control\"]');\r\n\r\n\t\tMapControl._initSubscriptions();\r\n\t},\r\n\r\n\t_initSubscriptions: function () {\r\n\t\tsubscribe('/map/apiLoaded', MapControl._processMaps);\r\n\t},\r\n\r\n\t_processMaps: function () {\r\n\r\n\t\tfor (var i = 0; i < $maps.length; i++) {\r\n\t\t\tvar mapCanvas = $maps[i];\r\n\t\t\tvar $thisMap = $maps.eq(i);\r\n\r\n\t\t\tvar zoom = parseInt($thisMap.attr(dataAttributes.zoom), 10) || 16;\r\n\r\n\t\t\tvar latitude = parseFloat($thisMap.attr(dataAttributes.lat));\r\n\t\t\tvar longitude = parseFloat($thisMap.attr(dataAttributes.lng));\r\n\r\n\t\t\t// Sometimes data-lat and data-lng aren't there, but data-latlng is\r\n\t\t\tvar coords = $thisMap.attr(dataAttributes.latLng);\r\n\t\t\tcoords = coords.split(',');\r\n\t\t\tcoords = coords.map(function (el) {\r\n\t\t\t\treturn parseFloat(el.trim());\r\n\t\t\t});\r\n\r\n\t\t\tvar latLng;\r\n\t\t\tif (latitude && longitude) {\r\n\t\t\t\tlatLng = new google.maps.LatLng(latitude, longitude);\r\n\t\t\t} else {\r\n\t\t\t\tlatLng = new google.maps.LatLng(coords[0], coords[1]);\r\n\t\t\t}\r\n\r\n\t\t\tvar mapOptions = {\r\n\t\t\t\tzoom: zoom || 12,\r\n\t\t\t\tcenter: latLng,\r\n\t\t\t\tdraggable: !window.matchMedia('(pointer: coarse)').matches,\r\n\t\t\t\tstreetViewControl: false,\r\n\t\t\t\tscrollwheel: false,\r\n\t\t\t\tmapTypeControl: true,\r\n\t\t\t\tpanControl: false,\r\n\t\t\t\tpanControlOptions: {\r\n\t\t\t\t\tposition: google.maps.ControlPosition.LEFT_CENTER\r\n\t\t\t\t},\r\n\t\t\t\tzoomControl: true,\r\n\t\t\t\tzoomControlOptions: {\r\n\t\t\t\t\tstyle: google.maps.ZoomControlStyle.LARGE,\r\n\t\t\t\t\tposition: google.maps.ControlPosition.RIGHT_BOTTOM\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\tvar map = new google.maps.Map(mapCanvas, mapOptions);\r\n\r\n\t\t\tvar marker = new google.maps.Marker({\r\n\t\t\t\tposition: latLng,\r\n\t\t\t\tmap: map\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n};\r\n\r\nexport { MapControl };\r\n","/* app/ui/map/map.load */\r\n\r\nimport $ from 'jquery';\r\nimport { MapControl } from 'App/map/map.control';\r\nimport { MapInteractive } from 'App/map/map.interactive';\r\nimport { publish } from 'Util/pubsub';\r\n\r\n// We use the 'Whitesite' account in the Terabyte Stats Google account Developer console\r\n// This needs to be updated to a client account attached to their billing account before go-live\r\nvar apiKey = window._googleApiKey;\r\nvar apiLoaded = false;\r\nvar google;\r\nvar $maps;\r\n\r\nvar MapLoad = {\r\n\tinit: function($elms) {\r\n\t\tif (!apiKey) {\r\n\t\t\t// Can't do anything without an API Key\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t$maps = $elms;\r\n\r\n\t\tvar $firstMap = $maps.eq(0);\r\n\r\n\t\t// If only interactive map is on page initialise the module for this\r\n\t\t// The MapInteractive module will only load the API code if the map is toggled to display\r\n\t\t// Otherwise load API and init MapControl module\r\n\t\tif ($maps.length) {\r\n\t\t\tif ($maps.length === 1 && $firstMap.attr('data-map-type') === 'interactive') {\r\n\t\t\t\tMapInteractive.init($firstMap);\r\n\t\t\t} else {\r\n\t\t\t\tMapControl.init($maps);\r\n\t\t\t}\r\n\t\t\tMapLoad.loadApi();\r\n\t\t}\r\n\t},\r\n\r\n\t// Load Google Maps API version 3\r\n\tloadApi: function() {\r\n\t\t$.getScript('https://www.google.com/jsapi', function() {\r\n\t\t\twindow.google.load('maps', '3', {\r\n\t\t\t\tother_params: '&key=' + apiKey,\r\n\t\t\t\tcallback: MapLoad.mapApiLoaded\r\n\t\t\t});\r\n\t\t});\r\n\t},\r\n\r\n\t// Callback function once API is loaded\r\n\tmapApiLoaded: function() {\r\n\t\tapiLoaded = true;\r\n\t\tgoogle = window.google;\r\n\r\n\t\tpublish('/map/apiLoaded');\r\n\t},\r\n\r\n\t// Utility function to return API status and google object\r\n\tgetMapApiStatus: function () {\r\n\t\treturn {\r\n\t\t\tloaded: apiLoaded,\r\n\t\t\tgoogle: google\r\n\t\t};\r\n\t}\r\n};\r\n\r\nexport { MapLoad };\r\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n"],"names":["$maps","google","dataAttributes","Object","freeze","lat","lng","latLng","zoom","MapControl","init","$elms","filter","_initSubscriptions","subscribe","_processMaps","i","length","mapCanvas","$thisMap","eq","parseInt","attr","latitude","parseFloat","longitude","coords","split","map","el","trim","mapOptions","center","maps","LatLng","draggable","window","matchMedia","matches","streetViewControl","scrollwheel","mapTypeControl","panControl","panControlOptions","position","ControlPosition","LEFT_CENTER","zoomControl","zoomControlOptions","style","ZoomControlStyle","LARGE","RIGHT_BOTTOM","Map","Marker","apiKey","_googleApiKey","apiLoaded","MapLoad","$firstMap","loadApi","$","load","other_params","callback","mapApiLoaded","publish","getMapApiStatus","loaded","$map","target","proto","forced","arrayMethodHasSpeciesSupport","callbackfn","this","arguments","undefined"],"sourceRoot":""}