{"version":3,"sources":["webpack:///./node_modules/aurelia-google-maps/dist/native-modules/configure.js","webpack:///./node_modules/aurelia-google-maps/dist/native-modules/google-maps-api.js","webpack:///./node_modules/aurelia-google-maps/dist/native-modules/marker-clustering.js","webpack:///./node_modules/aurelia-google-maps/dist/native-modules/events.js","webpack:///./node_modules/aurelia-google-maps/dist/native-modules/index.js","webpack:///./node_modules/aurelia-google-maps/dist/native-modules/google-maps.js"],"names":["Configure","this","_config","apiScript","apiKey","clientId","apiLibraries","region","language","options","markerCluster","enable","src","imagePath","imageExtension","prototype","obj","Object","assign","get","key","set","val","__decorate","decorators","target","desc","d","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__metadata","k","v","metadata","GoogleMapsAPI","config","_scriptPromise","getMapsInstance","undefined","window","google","maps","script_1","document","createElement","params","type","async","defer","join","body","appendChild","Promise","resolve","reject","aureliaGoogleMapsCallback","onerror","error","MarkerClustering","isEnabled","clearMarkers","markerClusterer","loadScript","script","renderClusters","map","markers","MarkerClusterer","Events","BOUNDSCHANGED","MAPCLICK","MAPOVERLAYCOMPLETE","MARKERRENDERED","MARKERCLICK","MARKERMOUSEOVER","MARKERMOUSEOUT","POLYGONCLICK","POLYGONRENDERED","INFOWINDOWSHOW","INFOWINDOWCLOSE","START_MARKER_HIGHLIGHT","STOP_MARKER_HIGHLIGHT","PAN_TO_MARKER","CLEAR_MARKERS","configure","aurelia","configCallback","instance","container","injectStyles","globalResources","__assign","t","s","n","p","hasOwnProperty","call","apply","logger","GoogleMaps","element","taskQueue","bindingEngine","googleMapsApi","markerClustering","_this","_currentInfoWindow","longitude","latitude","zoom","disableDefaultUi","autoUpdateBounds","autoInfoWindow","mapType","drawEnabled","drawMode","polygons","_renderedMarkers","_markersSubscription","_mapPromise","_mapResolve","drawingManager","_renderedPolygons","_polygonsSubscription","self","then","addEventListener","data","marker","detail","index","setIcon","custom","altIcon","setZIndex","Marker","MAX_ZINDEX","defaultIcon","panTo","position","setZoom","forEach","setMap","attached","evt","preventDefault","zoomToMarkerBounds","latLng","LatLng","parseFloat","mapTypeId","getMapTypeId","center","parseInt","disableDefaultUI","Map","mapLoaded","addListener","e","dispatchEvent","close","infoWindow","sendBoundsEvent","bounds","getBounds","renderMarker","markerLatLng","createMarker","createdMarker","open","icon","label","setLabel","title","setTitle","draggable","setDraggable","InfoWindow","content","pixelOffset","maxWidth","parentMarker","push","setOptions","getCenter","setCenter","latLong","updateCenter","latitudeChanged","queueMicroTask","longitudeChanged","zoomChanged","newValue","zoomValue","markersChanged","dispose","_i","_a","collectionObserver","subscribe","splices","markerCollectionChange","all","queueTask","renderPromises","splices_1","splice","removed","_b","removedObj","markerIndex","renderedMarker","lat","toFixed","lng","addedCount","_c","addedMarkers_1","slice","addedMarker","force","LatLngBounds","isNaN","console","warn","extend","getPath","fitBounds","toUpperCase","MapTypeId","HYBRID","SATELLITE","TERRAIN","ROADMAP","initDrawingManager","drawingMode","getOverlayType","drawingControl","drawingControlOptions","drawing","DrawingManager","path","overlay","getArray","x","encode","encodePath","destroyDrawingManager","OverlayType","POLYGON","POLYLINE","RECTANGLE","CIRCLE","MARKER","drawEnabledChanged","newval","oldval","drawModeChanged","geometry","encoding","decodePath","polyline","renderPolygon","polygonObject","paths","Array","isArray","polygon","Polygon","parentPolygon","polygonsChanged","polygonCollectionChange","bind","splices_2","polygonIndex","strRendered","renderedPolygon","removedPaths","addedPolygons_1","addedPolygon","Number","Boolean","Element","name","bubbles","changeEvent","CustomEvent","createEvent","initCustomEvent"],"mappings":"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","file":"assets/npm.aurelia-google-maps.3b45b37940cf43166521.js","sourcesContent":["var Configure = (function () {\r\n function Configure() {\r\n this._config = {\r\n apiScript: 'https://maps.googleapis.com/maps/api/js',\r\n apiKey: '',\r\n clientId: '',\r\n apiLibraries: '',\r\n region: '',\r\n language: '',\r\n options: {},\r\n markerCluster: {\r\n enable: false,\r\n src: 'https://cdn.rawgit.com/googlemaps/v3-utility-library/99a385c1/markerclusterer/src/markerclusterer.js',\r\n imagePath: 'https://raw.githubusercontent.com/googlemaps/v3-utility-library/99a385c1/markerclusterer/images/m',\r\n imageExtension: 'png',\r\n }\r\n };\r\n }\r\n Configure.prototype.options = function (obj) {\r\n Object.assign(this._config, obj, {\r\n markerCluster: Object.assign({}, this._config.markerCluster, obj.markerCluster)\r\n });\r\n };\r\n Configure.prototype.get = function (key) {\r\n return this._config[key];\r\n };\r\n Configure.prototype.set = function (key, val) {\r\n this._config[key] = val;\r\n return this._config[key];\r\n };\r\n return Configure;\r\n}());\r\nexport { Configure };\r\n//# sourceMappingURL=configure.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __metadata = (this && this.__metadata) || function (k, v) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n};\r\nimport { inject } from 'aurelia-dependency-injection';\r\nimport { Configure } from './configure';\r\nvar GoogleMapsAPI = (function () {\r\n function GoogleMapsAPI(config) {\r\n this._scriptPromise = null;\r\n this.config = config;\r\n }\r\n GoogleMapsAPI.prototype.getMapsInstance = function () {\r\n if (this._scriptPromise !== null) {\r\n return this._scriptPromise;\r\n }\r\n if (window.google === undefined || window.google.maps === undefined) {\r\n var script_1 = document.createElement('script');\r\n var params = [\r\n this.config.get('apiKey') ? \"key=\" + this.config.get('apiKey') + \"&\" : '',\r\n this.config.get('clientId') ? \"clientId=\" + this.config.get('clientId') : '',\r\n this.config.get('apiLibraries') ? \"libraries=\" + this.config.get('apiLibraries') : '',\r\n this.config.get('language') ? \"language=\" + this.config.get('language') : '',\r\n this.config.get('region') ? \"region=\" + this.config.get('region') : '',\r\n 'callback=aureliaGoogleMapsCallback',\r\n ];\r\n script_1.type = 'text/javascript';\r\n script_1.async = true;\r\n script_1.defer = true;\r\n script_1.src = this.config.get('apiScript') + \"?\" + params.join('&');\r\n document.body.appendChild(script_1);\r\n this._scriptPromise = new Promise(function (resolve, reject) {\r\n window.aureliaGoogleMapsCallback = function () {\r\n resolve();\r\n };\r\n script_1.onerror = function (error) {\r\n reject(error);\r\n };\r\n });\r\n return this._scriptPromise;\r\n }\r\n if (window.google && window.google.maps) {\r\n this._scriptPromise = new Promise(function (resolve) { resolve(); });\r\n return this._scriptPromise;\r\n }\r\n return false;\r\n };\r\n GoogleMapsAPI = __decorate([\r\n inject(Configure),\r\n __metadata(\"design:paramtypes\", [Object])\r\n ], GoogleMapsAPI);\r\n return GoogleMapsAPI;\r\n}());\r\nexport { GoogleMapsAPI };\r\n//# sourceMappingURL=google-maps-api.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __metadata = (this && this.__metadata) || function (k, v) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n};\r\nimport { inject } from 'aurelia-dependency-injection';\r\nimport { Configure } from './configure';\r\nvar MarkerClustering = (function () {\r\n function MarkerClustering(config) {\r\n this.config = config;\r\n }\r\n MarkerClustering.prototype.isEnabled = function () {\r\n return this.config.get('markerCluster') && this.config.get('markerCluster').enable;\r\n };\r\n MarkerClustering.prototype.clearMarkers = function () {\r\n if (this.markerClusterer) {\r\n this.markerClusterer.clearMarkers();\r\n }\r\n };\r\n MarkerClustering.prototype.loadScript = function () {\r\n if (!this.isEnabled()) {\r\n return;\r\n }\r\n var script = document.createElement('script');\r\n script.type = 'text/javascript';\r\n script.src = this.config.get('markerCluster').src;\r\n document.body.appendChild(script);\r\n };\r\n MarkerClustering.prototype.renderClusters = function (map, markers) {\r\n if (!this.isEnabled()) {\r\n return;\r\n }\r\n this.markerClusterer = new window.MarkerClusterer(map, markers, this.config.get('markerCluster'));\r\n };\r\n MarkerClustering = __decorate([\r\n inject(Configure),\r\n __metadata(\"design:paramtypes\", [Object])\r\n ], MarkerClustering);\r\n return MarkerClustering;\r\n}());\r\nexport { MarkerClustering };\r\n//# sourceMappingURL=marker-clustering.js.map","var Events = (function () {\r\n function Events() {\r\n }\r\n Events.BOUNDSCHANGED = \"bounds-change\";\r\n Events.MAPCLICK = 'map-click';\r\n Events.MAPOVERLAYCOMPLETE = 'map-overlay-complete';\r\n Events.MARKERRENDERED = 'marker-render';\r\n Events.MARKERCLICK = 'marker-click';\r\n Events.MARKERMOUSEOVER = 'marker-mouse-over';\r\n Events.MARKERMOUSEOUT = 'marker-mouse-out';\r\n Events.POLYGONCLICK = 'polygon-click';\r\n Events.POLYGONRENDERED = 'polygon-render';\r\n Events.INFOWINDOWSHOW = 'info-window-show';\r\n Events.INFOWINDOWCLOSE = 'info-window-close';\r\n Events.START_MARKER_HIGHLIGHT = 'start-marker-highlight';\r\n Events.STOP_MARKER_HIGHLIGHT = 'stop-marker-highlight';\r\n Events.PAN_TO_MARKER = 'pan-to-marker';\r\n Events.CLEAR_MARKERS = 'clear-markers';\r\n return Events;\r\n}());\r\nexport { Events };\r\n//# sourceMappingURL=events.js.map","import { PLATFORM, DOM } from 'aurelia-pal';\r\nimport { Configure } from './configure';\r\nimport { GoogleMaps } from './google-maps';\r\nimport { GoogleMapsAPI } from './google-maps-api';\r\nexport function configure(aurelia, configCallback) {\r\n var instance = aurelia.container.get(Configure);\r\n DOM.injectStyles(\"google-map { display: block; height: 350px; }\");\r\n if (configCallback !== undefined && typeof (configCallback) === 'function') {\r\n configCallback(instance);\r\n }\r\n aurelia.globalResources([\r\n PLATFORM.moduleName('./google-maps')\r\n ]);\r\n}\r\nexport { Configure };\r\nexport { GoogleMaps };\r\nexport { GoogleMapsAPI };\r\n//# sourceMappingURL=index.js.map","var __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __metadata = (this && this.__metadata) || function (k, v) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n};\r\nimport { inject } from 'aurelia-dependency-injection';\r\nimport { bindable, customElement, noView } from 'aurelia-templating';\r\nimport { TaskQueue } from 'aurelia-task-queue';\r\nimport { BindingEngine } from 'aurelia-binding';\r\nimport { getLogger } from 'aurelia-logging';\r\nimport { Configure } from './configure';\r\nimport { GoogleMapsAPI } from './google-maps-api';\r\nimport { MarkerClustering } from './marker-clustering';\r\nimport { Events } from './events';\r\nvar logger = getLogger('aurelia-google-maps');\r\nvar GoogleMaps = (function () {\r\n function GoogleMaps(element, taskQueue, config, bindingEngine, googleMapsApi, markerClustering) {\r\n var _this = this;\r\n this._currentInfoWindow = null;\r\n this.longitude = 0;\r\n this.latitude = 0;\r\n this.zoom = 8;\r\n this.disableDefaultUi = false;\r\n this.markers = [];\r\n this.autoUpdateBounds = false;\r\n this.autoInfoWindow = true;\r\n this.mapType = 'ROADMAP';\r\n this.options = {};\r\n this.drawEnabled = false;\r\n this.drawMode = 'MARKER';\r\n this.polygons = [];\r\n this.map = null;\r\n this._renderedMarkers = [];\r\n this._markersSubscription = null;\r\n this._scriptPromise = null;\r\n this._mapPromise = null;\r\n this._mapResolve = null;\r\n this.drawingManager = null;\r\n this._renderedPolygons = [];\r\n this._polygonsSubscription = null;\r\n this.element = element;\r\n this.taskQueue = taskQueue;\r\n this.config = config;\r\n this.bindingEngine = bindingEngine;\r\n this.googleMapsApi = googleMapsApi;\r\n this.markerClustering = markerClustering;\r\n if (!config.get('apiScript')) {\r\n logger.error('No API script is defined.');\r\n }\r\n if ((!config.get('apiKey') && config.get('apiKey') !== false) || (!config.get('clientId') && config.get('clientId') !== false)) {\r\n logger.error('No API key or client ID has been specified.');\r\n }\r\n this.markerClustering.loadScript();\r\n this._scriptPromise = this.googleMapsApi.getMapsInstance();\r\n var self = this;\r\n this._mapPromise = this._scriptPromise.then(function () {\r\n return new Promise(function (resolve) {\r\n self._mapResolve = resolve;\r\n });\r\n });\r\n this.element.addEventListener(Events.START_MARKER_HIGHLIGHT, function (data) {\r\n var marker = self._renderedMarkers[data.detail.index];\r\n marker.setIcon(marker.custom.altIcon);\r\n marker.setZIndex(window.google.maps.Marker.MAX_ZINDEX + 1);\r\n });\r\n this.element.addEventListener(Events.STOP_MARKER_HIGHLIGHT, function (data) {\r\n var marker = self._renderedMarkers[data.detail.index];\r\n marker.setIcon(marker.custom.defaultIcon);\r\n });\r\n this.element.addEventListener(Events.PAN_TO_MARKER, function (data) {\r\n self.map.panTo(self._renderedMarkers[data.detail.index].position);\r\n self.map.setZoom(17);\r\n });\r\n this.element.addEventListener(Events.CLEAR_MARKERS, function () {\r\n _this.clearMarkers();\r\n });\r\n }\r\n GoogleMaps.prototype.clearMarkers = function () {\r\n if (!this._renderedMarkers) {\r\n return;\r\n }\r\n this._renderedMarkers.forEach(function (marker) {\r\n marker.setMap(null);\r\n });\r\n this._renderedMarkers = [];\r\n if (this.markerClustering) {\r\n this.markerClustering.clearMarkers();\r\n }\r\n };\r\n GoogleMaps.prototype.attached = function () {\r\n var _this = this;\r\n this.element.addEventListener('dragstart', function (evt) {\r\n evt.preventDefault();\r\n });\r\n this.element.addEventListener('zoom_to_bounds', function () {\r\n _this.zoomToMarkerBounds(true);\r\n });\r\n this._scriptPromise.then(function () {\r\n var latLng = new window.google.maps.LatLng(parseFloat(_this.latitude), parseFloat(_this.longitude));\r\n var mapTypeId = _this.getMapTypeId();\r\n var options = Object.assign({}, _this.options, _this.config.get('options'), {\r\n center: latLng,\r\n zoom: parseInt(_this.zoom, 10),\r\n disableDefaultUI: _this.disableDefaultUi,\r\n mapTypeId: mapTypeId\r\n });\r\n _this.map = new window.google.maps.Map(_this.element, options);\r\n if (_this.mapLoaded) {\r\n _this.mapLoaded(_this.map);\r\n }\r\n _this._mapResolve();\r\n _this.map.addListener('click', function (e) {\r\n dispatchEvent(Events.MAPCLICK, e, _this.element);\r\n if (!_this.autoInfoWindow)\r\n return;\r\n if (_this._currentInfoWindow) {\r\n _this._currentInfoWindow.close();\r\n dispatchEvent(Events.INFOWINDOWCLOSE, { infoWindow: _this._currentInfoWindow }, _this.element);\r\n }\r\n });\r\n _this.map.addListener('dragend', function () {\r\n _this.sendBoundsEvent();\r\n });\r\n _this.map.addListener('zoom_changed', function () {\r\n _this.sendBoundsEvent();\r\n });\r\n });\r\n };\r\n GoogleMaps.prototype.sendBoundsEvent = function () {\r\n var bounds = this.map.getBounds();\r\n if (!bounds)\r\n return;\r\n dispatchEvent(Events.BOUNDSCHANGED, { bounds: bounds }, this.element);\r\n };\r\n GoogleMaps.prototype.renderMarker = function (marker) {\r\n var _this = this;\r\n return this._mapPromise.then(function () {\r\n var markerLatLng = new window.google.maps.LatLng(parseFloat(marker.latitude), parseFloat(marker.longitude));\r\n _this.createMarker({\r\n map: _this.map,\r\n position: markerLatLng\r\n }).then(function (createdMarker) {\r\n createdMarker.addListener('click', function () {\r\n dispatchEvent(Events.MARKERCLICK, { marker: marker, createdMarker: createdMarker }, _this.element);\r\n if (!_this.autoInfoWindow)\r\n return;\r\n if (_this._currentInfoWindow) {\r\n _this._currentInfoWindow.close();\r\n }\r\n if (!createdMarker.infoWindow) {\r\n _this._currentInfoWindow = null;\r\n return;\r\n }\r\n _this._currentInfoWindow = createdMarker.infoWindow;\r\n createdMarker.infoWindow.open(_this.map, createdMarker);\r\n });\r\n createdMarker.addListener('mouseover', function () {\r\n dispatchEvent(Events.MARKERMOUSEOVER, { marker: createdMarker }, _this.element);\r\n createdMarker.setZIndex(window.google.maps.Marker.MAX_ZINDEX + 1);\r\n });\r\n createdMarker.addListener('mouseout', function () {\r\n dispatchEvent(Events.MARKERMOUSEOUT, { marker: createdMarker }, _this.element);\r\n });\r\n createdMarker.addListener('dblclick', function () {\r\n _this.map.setZoom(15);\r\n _this.map.panTo(createdMarker.position);\r\n });\r\n if (marker.icon) {\r\n createdMarker.setIcon(marker.icon);\r\n }\r\n if (marker.label) {\r\n createdMarker.setLabel(marker.label);\r\n }\r\n if (marker.title) {\r\n createdMarker.setTitle(marker.title);\r\n }\r\n if (marker.draggable) {\r\n createdMarker.setDraggable(marker.draggable);\r\n }\r\n if (marker.infoWindow) {\r\n createdMarker.infoWindow = new window.google.maps.InfoWindow({\r\n content: marker.infoWindow.content,\r\n pixelOffset: marker.infoWindow.pixelOffset,\r\n position: marker.infoWindow.position,\r\n maxWidth: marker.infoWindow.maxWidth,\r\n parentMarker: __assign({}, marker)\r\n });\r\n createdMarker.infoWindow.addListener('domready', function () {\r\n dispatchEvent(Events.INFOWINDOWSHOW, { infoWindow: createdMarker.infoWindow }, _this.element);\r\n });\r\n createdMarker.infoWindow.addListener('closeclick', function () {\r\n dispatchEvent(Events.INFOWINDOWCLOSE, { infoWindow: createdMarker.infoWindow }, _this.element);\r\n });\r\n }\r\n if (marker.custom) {\r\n createdMarker.custom = marker.custom;\r\n }\r\n _this._renderedMarkers.push(createdMarker);\r\n dispatchEvent(Events.MARKERRENDERED, { createdMarker: createdMarker, marker: marker }, _this.element);\r\n });\r\n });\r\n };\r\n GoogleMaps.prototype.setOptions = function (options) {\r\n if (!this.map) {\r\n return;\r\n }\r\n this.map.setOptions(options);\r\n };\r\n GoogleMaps.prototype.createMarker = function (options) {\r\n return this._scriptPromise.then(function () {\r\n return Promise.resolve(new window.google.maps.Marker(options));\r\n });\r\n };\r\n GoogleMaps.prototype.getCenter = function () {\r\n var _this = this;\r\n this._mapPromise.then(function () {\r\n return Promise.resolve(_this.map.getCenter());\r\n });\r\n };\r\n GoogleMaps.prototype.setCenter = function (latLong) {\r\n var _this = this;\r\n this._mapPromise.then(function () {\r\n _this.map.setCenter(latLong);\r\n _this.sendBoundsEvent();\r\n });\r\n };\r\n GoogleMaps.prototype.updateCenter = function () {\r\n var _this = this;\r\n this._mapPromise.then(function () {\r\n var latLng = new window.google.maps.LatLng(parseFloat(_this.latitude), parseFloat(_this.longitude));\r\n _this.setCenter(latLng);\r\n });\r\n };\r\n GoogleMaps.prototype.latitudeChanged = function () {\r\n var _this = this;\r\n this._mapPromise.then(function () {\r\n _this.taskQueue.queueMicroTask(function () {\r\n _this.updateCenter();\r\n });\r\n });\r\n };\r\n GoogleMaps.prototype.longitudeChanged = function () {\r\n var _this = this;\r\n this._mapPromise.then(function () {\r\n _this.taskQueue.queueMicroTask(function () {\r\n _this.updateCenter();\r\n });\r\n });\r\n };\r\n GoogleMaps.prototype.zoomChanged = function (newValue) {\r\n var _this = this;\r\n this._mapPromise.then(function () {\r\n _this.taskQueue.queueMicroTask(function () {\r\n var zoomValue = parseInt(newValue, 10);\r\n _this.map.setZoom(zoomValue);\r\n });\r\n });\r\n };\r\n GoogleMaps.prototype.markersChanged = function (newValue) {\r\n var _this = this;\r\n if (this._markersSubscription !== null) {\r\n this._markersSubscription.dispose();\r\n for (var _i = 0, _a = this._renderedMarkers; _i < _a.length; _i++) {\r\n var marker = _a[_i];\r\n marker.setMap(null);\r\n }\r\n this._renderedMarkers = [];\r\n }\r\n this._markersSubscription = this.bindingEngine\r\n .collectionObserver(this.markers)\r\n .subscribe(function (splices) { _this.markerCollectionChange(splices); });\r\n if (!newValue.length)\r\n return;\r\n var markerPromises = [];\r\n this._mapPromise.then(function () {\r\n markerPromises = newValue.map(function (marker) {\r\n return _this.renderMarker(marker);\r\n });\r\n return markerPromises;\r\n }).then(function (p) {\r\n Promise.all(p).then(function () {\r\n _this.taskQueue.queueTask(function () {\r\n _this.markerClustering.renderClusters(_this.map, _this._renderedMarkers);\r\n _this.zoomToMarkerBounds();\r\n });\r\n });\r\n });\r\n };\r\n GoogleMaps.prototype.markerCollectionChange = function (splices) {\r\n var _this = this;\r\n if (!splices.length) {\r\n return;\r\n }\r\n var renderPromises = [];\r\n for (var _i = 0, splices_1 = splices; _i < splices_1.length; _i++) {\r\n var splice = splices_1[_i];\r\n if (splice.removed.length) {\r\n for (var _a = 0, _b = splice.removed; _a < _b.length; _a++) {\r\n var removedObj = _b[_a];\r\n for (var markerIndex in this._renderedMarkers) {\r\n if (!this._renderedMarkers.hasOwnProperty(markerIndex)) {\r\n continue;\r\n }\r\n var renderedMarker = this._renderedMarkers[markerIndex];\r\n if (renderedMarker.position.lat().toFixed(12) !== removedObj.latitude.toFixed(12) ||\r\n renderedMarker.position.lng().toFixed(12) !== removedObj.longitude.toFixed(12)) {\r\n continue;\r\n }\r\n renderedMarker.setMap(null);\r\n this._renderedMarkers.splice(markerIndex, 1);\r\n break;\r\n }\r\n }\r\n }\r\n if (splice.addedCount) {\r\n var addedMarkers = this.markers.slice(splice.index, splice.index + splice.addedCount);\r\n for (var _c = 0, addedMarkers_1 = addedMarkers; _c < addedMarkers_1.length; _c++) {\r\n var addedMarker = addedMarkers_1[_c];\r\n renderPromises.push(this.renderMarker(addedMarker));\r\n }\r\n }\r\n }\r\n Promise.all(renderPromises).then(function () {\r\n _this.markerClustering.renderClusters(_this.map, _this._renderedMarkers);\r\n _this.taskQueue.queueTask(function () {\r\n _this.zoomToMarkerBounds();\r\n });\r\n });\r\n };\r\n GoogleMaps.prototype.zoomToMarkerBounds = function (force) {\r\n var _this = this;\r\n if (force === void 0) { force = false; }\r\n if (typeof force === 'undefined') {\r\n force = false;\r\n }\r\n if (!force && (!this._renderedMarkers || !this.autoUpdateBounds)) {\r\n return;\r\n }\r\n this._mapPromise.then(function () {\r\n var bounds = new window.google.maps.LatLngBounds();\r\n for (var _i = 0, _a = _this._renderedMarkers; _i < _a.length; _i++) {\r\n var marker = _a[_i];\r\n var lat = parseFloat(marker.position.lat());\r\n var lng = parseFloat(marker.position.lng());\r\n if (isNaN(lat) || isNaN(lng)) {\r\n console.warn(\"Marker returned NaN for lat/lng\", { marker: marker, lat: lat, lng: lng });\r\n return;\r\n }\r\n var markerLatLng = new window.google.maps.LatLng(parseFloat(marker.position.lat()), parseFloat(marker.position.lng()));\r\n bounds.extend(markerLatLng);\r\n }\r\n for (var _b = 0, _c = _this._renderedPolygons; _b < _c.length; _b++) {\r\n var polygon = _c[_b];\r\n polygon.getPath().forEach(function (element) {\r\n bounds.extend(element);\r\n });\r\n }\r\n _this.map.fitBounds(bounds);\r\n });\r\n };\r\n GoogleMaps.prototype.getMapTypeId = function () {\r\n if (this.mapType.toUpperCase() === 'HYBRID') {\r\n return window.google.maps.MapTypeId.HYBRID;\r\n }\r\n else if (this.mapType.toUpperCase() === 'SATELLITE') {\r\n return window.google.maps.MapTypeId.SATELLITE;\r\n }\r\n else if (this.mapType.toUpperCase() === 'TERRAIN') {\r\n return window.google.maps.MapTypeId.TERRAIN;\r\n }\r\n return window.google.maps.MapTypeId.ROADMAP;\r\n };\r\n GoogleMaps.prototype.initDrawingManager = function (options) {\r\n var _this = this;\r\n if (options === void 0) { options = {}; }\r\n return this._mapPromise.then(function () {\r\n if (_this.drawingManager)\r\n return Promise.resolve();\r\n var config = Object.assign({}, {\r\n drawingMode: _this.getOverlayType(_this.drawMode),\r\n drawingControl: _this.drawingControl,\r\n drawingControlOptions: _this.drawingControlOptions\r\n }, options);\r\n _this.drawingManager = new window.google.maps.drawing.DrawingManager(config);\r\n _this.drawingManager.addListener('overlaycomplete', function (evt) {\r\n if (evt.type.toUpperCase() == 'POLYGON' || evt.type.toUpperCase() == 'POLYLINE') {\r\n Object.assign(evt, {\r\n path: evt.overlay.getPath().getArray().map(function (x) { return { latitude: x.lat(), longitude: x.lng() }; }),\r\n encode: _this.encodePath(evt.overlay.getPath())\r\n });\r\n }\r\n dispatchEvent(Events.MAPOVERLAYCOMPLETE, evt, _this.element);\r\n });\r\n return Promise.resolve();\r\n });\r\n };\r\n GoogleMaps.prototype.destroyDrawingManager = function () {\r\n if (!this.drawingManager)\r\n return;\r\n this.drawingManager.setMap(null);\r\n this.drawingManager = null;\r\n };\r\n GoogleMaps.prototype.getOverlayType = function (type) {\r\n if (type === void 0) { type = ''; }\r\n switch (type.toUpperCase()) {\r\n case 'POLYGON':\r\n return window.google.maps.drawing.OverlayType.POLYGON;\r\n case 'POLYLINE':\r\n return window.google.maps.drawing.OverlayType.POLYLINE;\r\n case 'RECTANGLE':\r\n return window.google.maps.drawing.OverlayType.RECTANGLE;\r\n case 'CIRCLE':\r\n return window.google.maps.drawing.OverlayType.CIRCLE;\r\n case 'MARKER':\r\n return window.google.maps.drawing.OverlayType.MARKER;\r\n default:\r\n return null;\r\n }\r\n };\r\n GoogleMaps.prototype.drawEnabledChanged = function (newval, oldval) {\r\n var _this = this;\r\n this.initDrawingManager()\r\n .then(function () {\r\n if (newval && !oldval) {\r\n _this.drawingManager.setMap(_this.map);\r\n }\r\n else if (oldval && !newval) {\r\n _this.destroyDrawingManager();\r\n }\r\n });\r\n };\r\n GoogleMaps.prototype.drawModeChanged = function (newval) {\r\n var _this = this;\r\n if (newval === void 0) { newval = ''; }\r\n this.initDrawingManager()\r\n .then(function () {\r\n _this.drawingManager.setOptions({\r\n drawingMode: _this.getOverlayType(newval)\r\n });\r\n });\r\n };\r\n GoogleMaps.prototype.encodePath = function (path) {\r\n if (path === void 0) { path = []; }\r\n return window.google.maps.geometry.encoding.encodePath(path);\r\n };\r\n GoogleMaps.prototype.decodePath = function (polyline) {\r\n return window.google.maps.geometry.encoding.decodePath(polyline);\r\n };\r\n GoogleMaps.prototype.renderPolygon = function (polygonObject) {\r\n var _this = this;\r\n if (polygonObject === void 0) { polygonObject = []; }\r\n var paths = polygonObject.paths;\r\n if (!paths)\r\n return;\r\n if (Array.isArray(paths)) {\r\n paths = paths.map(function (x) {\r\n return new window.google.maps.LatLng(x.latitude, x.longitude);\r\n });\r\n }\r\n var polygon = new window.google.maps.Polygon(Object.assign({}, polygonObject, { paths: paths }));\r\n polygon.addListener('click', function () {\r\n dispatchEvent(Events.POLYGONCLICK, { polygon: polygon }, _this.element);\r\n });\r\n polygon.setMap(this.map);\r\n if (polygonObject.infoWindow) {\r\n polygon.infoWindow = new window.google.maps.InfoWindow({\r\n content: polygonObject.infoWindow.content,\r\n pixelOffset: polygonObject.infoWindow.pixelOffset,\r\n position: polygonObject.infoWindow.position,\r\n maxWidth: polygonObject.infoWindow.maxWidth,\r\n parentPolygon: __assign({}, polygonObject)\r\n });\r\n }\r\n dispatchEvent(Events.POLYGONRENDERED, { polygon: polygon, polygonObject: polygonObject }, this.element);\r\n this._renderedPolygons.push(polygon);\r\n };\r\n GoogleMaps.prototype.polygonsChanged = function (newValue) {\r\n var _this = this;\r\n if (this._polygonsSubscription !== null) {\r\n this._polygonsSubscription.dispose();\r\n for (var _i = 0, _a = this._renderedPolygons; _i < _a.length; _i++) {\r\n var polygon = _a[_i];\r\n polygon.setMap(null);\r\n }\r\n this._renderedPolygons = [];\r\n }\r\n this._polygonsSubscription = this.bindingEngine\r\n .collectionObserver(this.polygons)\r\n .subscribe(function (splices) { _this.polygonCollectionChange(splices); });\r\n if (!newValue.length)\r\n return;\r\n this._mapPromise.then(function () {\r\n Promise.all(newValue.map(function (polygon) {\r\n if (typeof polygon === 'string') {\r\n return _this.decodePath(polygon);\r\n }\r\n return polygon;\r\n })).then(function (polygons) {\r\n return Promise.all(polygons.map(_this.renderPolygon.bind(_this)));\r\n }).then(function () {\r\n _this.taskQueue.queueTask(function () {\r\n _this.zoomToMarkerBounds();\r\n });\r\n });\r\n });\r\n };\r\n GoogleMaps.prototype.polygonCollectionChange = function (splices) {\r\n var _this = this;\r\n if (!splices.length) {\r\n return;\r\n }\r\n this._mapPromise.then(function () {\r\n for (var _i = 0, splices_2 = splices; _i < splices_2.length; _i++) {\r\n var splice = splices_2[_i];\r\n if (splice.removed.length) {\r\n for (var _a = 0, _b = splice.removed; _a < _b.length; _a++) {\r\n var removedObj = _b[_a];\r\n for (var polygonIndex in _this._renderedPolygons) {\r\n if (!_this._renderedPolygons.hasOwnProperty(polygonIndex)) {\r\n continue;\r\n }\r\n var renderedPolygon = _this._renderedPolygons[polygonIndex];\r\n var strRendered = void 0, strRemoved = void 0;\r\n strRendered = _this.encodePath(renderedPolygon.getPath());\r\n var removedPaths = removedObj.paths.map(function (x) {\r\n return new window.google.maps.LatLng(x.latitude, x.longitude);\r\n });\r\n strRemoved = _this.encodePath(removedPaths);\r\n if (strRendered !== strRemoved) {\r\n continue;\r\n }\r\n renderedPolygon.setMap(null);\r\n _this._renderedPolygons.splice(polygonIndex, 1);\r\n break;\r\n }\r\n }\r\n }\r\n if (splice.addedCount) {\r\n var addedPolygons = _this.polygons.slice(splice.index, splice.index + splice.addedCount);\r\n for (var _c = 0, addedPolygons_1 = addedPolygons; _c < addedPolygons_1.length; _c++) {\r\n var addedPolygon = addedPolygons_1[_c];\r\n _this.renderPolygon(addedPolygon);\r\n }\r\n }\r\n }\r\n }).then(function () {\r\n _this.taskQueue.queueTask(function () {\r\n _this.zoomToMarkerBounds();\r\n });\r\n });\r\n };\r\n __decorate([\r\n bindable,\r\n __metadata(\"design:type\", Number)\r\n ], GoogleMaps.prototype, \"longitude\", void 0);\r\n __decorate([\r\n bindable,\r\n __metadata(\"design:type\", Number)\r\n ], GoogleMaps.prototype, \"latitude\", void 0);\r\n __decorate([\r\n bindable,\r\n __metadata(\"design:type\", Number)\r\n ], GoogleMaps.prototype, \"zoom\", void 0);\r\n __decorate([\r\n bindable,\r\n __metadata(\"design:type\", Boolean)\r\n ], GoogleMaps.prototype, \"disableDefaultUi\", void 0);\r\n __decorate([\r\n bindable,\r\n __metadata(\"design:type\", Object)\r\n ], GoogleMaps.prototype, \"markers\", void 0);\r\n __decorate([\r\n bindable,\r\n __metadata(\"design:type\", Boolean)\r\n ], GoogleMaps.prototype, \"autoUpdateBounds\", void 0);\r\n __decorate([\r\n bindable,\r\n __metadata(\"design:type\", Boolean)\r\n ], GoogleMaps.prototype, \"autoInfoWindow\", void 0);\r\n __decorate([\r\n bindable,\r\n __metadata(\"design:type\", Object)\r\n ], GoogleMaps.prototype, \"mapType\", void 0);\r\n __decorate([\r\n bindable,\r\n __metadata(\"design:type\", Object)\r\n ], GoogleMaps.prototype, \"options\", void 0);\r\n __decorate([\r\n bindable,\r\n __metadata(\"design:type\", Object)\r\n ], GoogleMaps.prototype, \"mapLoaded\", void 0);\r\n __decorate([\r\n bindable,\r\n __metadata(\"design:type\", Boolean)\r\n ], GoogleMaps.prototype, \"drawEnabled\", void 0);\r\n __decorate([\r\n bindable,\r\n __metadata(\"design:type\", Object)\r\n ], GoogleMaps.prototype, \"drawMode\", void 0);\r\n __decorate([\r\n bindable,\r\n __metadata(\"design:type\", Object)\r\n ], GoogleMaps.prototype, \"polygons\", void 0);\r\n __decorate([\r\n bindable,\r\n __metadata(\"design:type\", Boolean)\r\n ], GoogleMaps.prototype, \"drawingControl\", void 0);\r\n __decorate([\r\n bindable,\r\n __metadata(\"design:type\", Object)\r\n ], GoogleMaps.prototype, \"drawingControlOptions\", void 0);\r\n GoogleMaps = __decorate([\r\n noView(),\r\n customElement('google-map'),\r\n inject(Element, TaskQueue, Configure, BindingEngine, GoogleMapsAPI, MarkerClustering),\r\n __metadata(\"design:paramtypes\", [Element,\r\n TaskQueue,\r\n Configure,\r\n BindingEngine,\r\n GoogleMapsAPI,\r\n MarkerClustering])\r\n ], GoogleMaps);\r\n return GoogleMaps;\r\n}());\r\nexport { GoogleMaps };\r\nfunction dispatchEvent(name, detail, target, bubbles) {\r\n if (bubbles === void 0) { bubbles = true; }\r\n var changeEvent;\r\n if (window.CustomEvent) {\r\n changeEvent = new CustomEvent(name, { detail: detail, bubbles: bubbles });\r\n }\r\n else {\r\n changeEvent = document.createEvent('CustomEvent');\r\n changeEvent.initCustomEvent(name, bubbles, true, { data: detail });\r\n }\r\n target.dispatchEvent(changeEvent);\r\n}\r\n//# sourceMappingURL=google-maps.js.map"],"sourceRoot":""}