-
Notifications
You must be signed in to change notification settings - Fork 4
/
js-marker-clusterer.umd.js.map
1 lines (1 loc) · 36.2 KB
/
js-marker-clusterer.umd.js.map
1
{"version":3,"file":"js-marker-clusterer.umd.js","sources":["../core/services/maps-api-loader/maps-api-loader.js","../core/services/google-maps-api-wrapper.js","../core/services/managers/marker-manager.js","services/managers/cluster-manager.js","directives/marker-cluster.js","js-marker-clusterer.module.js","index.js"],"sourcesContent":["import { Injectable } from '@angular/core';\nvar MapsAPILoader = (function () {\n function MapsAPILoader() {\n }\n return MapsAPILoader;\n}());\nexport { MapsAPILoader };\nMapsAPILoader.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nMapsAPILoader.ctorParameters = function () { return []; };\n//# sourceMappingURL=maps-api-loader.js.map","import { Injectable, NgZone } from '@angular/core';\nimport { Observable } from 'rxjs/Observable';\nimport { MapsAPILoader } from './maps-api-loader/maps-api-loader';\n/**\n * Wrapper class that handles the communication with the Google Maps Javascript\n * API v3\n */\nvar GoogleMapsAPIWrapper = (function () {\n function GoogleMapsAPIWrapper(_loader, _zone) {\n var _this = this;\n this._loader = _loader;\n this._zone = _zone;\n this._map =\n new Promise(function (resolve) { _this._mapResolver = resolve; });\n }\n GoogleMapsAPIWrapper.prototype.createMap = function (el, mapOptions) {\n var _this = this;\n return this._loader.load().then(function () {\n var map = new google.maps.Map(el, mapOptions);\n _this._mapResolver(map);\n return;\n });\n };\n GoogleMapsAPIWrapper.prototype.setMapOptions = function (options) {\n this._map.then(function (m) { m.setOptions(options); });\n };\n /**\n * Creates a google map marker with the map context\n */\n GoogleMapsAPIWrapper.prototype.createMarker = function (options, addToMap) {\n if (options === void 0) { options = {}; }\n if (addToMap === void 0) { addToMap = true; }\n return this._map.then(function (map) {\n if (addToMap) {\n options.map = map;\n }\n return new google.maps.Marker(options);\n });\n };\n GoogleMapsAPIWrapper.prototype.createInfoWindow = function (options) {\n return this._map.then(function () { return new google.maps.InfoWindow(options); });\n };\n /**\n * Creates a google.map.Circle for the current map.\n */\n GoogleMapsAPIWrapper.prototype.createCircle = function (options) {\n return this._map.then(function (map) {\n options.map = map;\n return new google.maps.Circle(options);\n });\n };\n GoogleMapsAPIWrapper.prototype.createPolyline = function (options) {\n return this.getNativeMap().then(function (map) {\n var line = new google.maps.Polyline(options);\n line.setMap(map);\n return line;\n });\n };\n GoogleMapsAPIWrapper.prototype.createPolygon = function (options) {\n return this.getNativeMap().then(function (map) {\n var polygon = new google.maps.Polygon(options);\n polygon.setMap(map);\n return polygon;\n });\n };\n /**\n * Creates a new google.map.Data layer for the current map\n */\n GoogleMapsAPIWrapper.prototype.createDataLayer = function (options) {\n return this._map.then(function (m) {\n var data = new google.maps.Data(options);\n data.setMap(m);\n return data;\n });\n };\n /**\n * Determines if given coordinates are insite a Polygon path.\n */\n GoogleMapsAPIWrapper.prototype.containsLocation = function (latLng, polygon) {\n return google.maps.geometry.poly.containsLocation(latLng, polygon);\n };\n GoogleMapsAPIWrapper.prototype.subscribeToMapEvent = function (eventName) {\n var _this = this;\n return Observable.create(function (observer) {\n _this._map.then(function (m) {\n m.addListener(eventName, function (arg) { _this._zone.run(function () { return observer.next(arg); }); });\n });\n });\n };\n GoogleMapsAPIWrapper.prototype.setCenter = function (latLng) {\n return this._map.then(function (map) { return map.setCenter(latLng); });\n };\n GoogleMapsAPIWrapper.prototype.getZoom = function () { return this._map.then(function (map) { return map.getZoom(); }); };\n GoogleMapsAPIWrapper.prototype.getBounds = function () {\n return this._map.then(function (map) { return map.getBounds(); });\n };\n GoogleMapsAPIWrapper.prototype.setZoom = function (zoom) {\n return this._map.then(function (map) { return map.setZoom(zoom); });\n };\n GoogleMapsAPIWrapper.prototype.getCenter = function () {\n return this._map.then(function (map) { return map.getCenter(); });\n };\n GoogleMapsAPIWrapper.prototype.panTo = function (latLng) {\n return this._map.then(function (map) { return map.panTo(latLng); });\n };\n GoogleMapsAPIWrapper.prototype.panBy = function (x, y) {\n return this._map.then(function (map) { return map.panBy(x, y); });\n };\n GoogleMapsAPIWrapper.prototype.fitBounds = function (latLng) {\n return this._map.then(function (map) { return map.fitBounds(latLng); });\n };\n GoogleMapsAPIWrapper.prototype.panToBounds = function (latLng) {\n return this._map.then(function (map) { return map.panToBounds(latLng); });\n };\n /**\n * Returns the native Google Maps Map instance. Be careful when using this instance directly.\n */\n GoogleMapsAPIWrapper.prototype.getNativeMap = function () { return this._map; };\n /**\n * Triggers the given event name on the map instance.\n */\n GoogleMapsAPIWrapper.prototype.triggerMapEvent = function (eventName) {\n return this._map.then(function (m) { return google.maps.event.trigger(m, eventName); });\n };\n return GoogleMapsAPIWrapper;\n}());\nexport { GoogleMapsAPIWrapper };\nGoogleMapsAPIWrapper.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nGoogleMapsAPIWrapper.ctorParameters = function () { return [\n { type: MapsAPILoader, },\n { type: NgZone, },\n]; };\n//# sourceMappingURL=google-maps-api-wrapper.js.map","import { Injectable, NgZone } from '@angular/core';\nimport { Observable } from 'rxjs/Observable';\nimport { GoogleMapsAPIWrapper } from './../google-maps-api-wrapper';\nvar MarkerManager = (function () {\n function MarkerManager(_mapsWrapper, _zone) {\n this._mapsWrapper = _mapsWrapper;\n this._zone = _zone;\n this._markers = new Map();\n }\n MarkerManager.prototype.deleteMarker = function (marker) {\n var _this = this;\n var m = this._markers.get(marker);\n if (m == null) {\n // marker already deleted\n return Promise.resolve();\n }\n return m.then(function (m) {\n return _this._zone.run(function () {\n m.setMap(null);\n _this._markers.delete(marker);\n });\n });\n };\n MarkerManager.prototype.updateMarkerPosition = function (marker) {\n return this._markers.get(marker).then(function (m) { return m.setPosition({ lat: marker.latitude, lng: marker.longitude }); });\n };\n MarkerManager.prototype.updateTitle = function (marker) {\n return this._markers.get(marker).then(function (m) { return m.setTitle(marker.title); });\n };\n MarkerManager.prototype.updateLabel = function (marker) {\n return this._markers.get(marker).then(function (m) { m.setLabel(marker.label); });\n };\n MarkerManager.prototype.updateDraggable = function (marker) {\n return this._markers.get(marker).then(function (m) { return m.setDraggable(marker.draggable); });\n };\n MarkerManager.prototype.updateIcon = function (marker) {\n return this._markers.get(marker).then(function (m) { return m.setIcon(marker.iconUrl); });\n };\n MarkerManager.prototype.updateOpacity = function (marker) {\n return this._markers.get(marker).then(function (m) { return m.setOpacity(marker.opacity); });\n };\n MarkerManager.prototype.updateVisible = function (marker) {\n return this._markers.get(marker).then(function (m) { return m.setVisible(marker.visible); });\n };\n MarkerManager.prototype.updateZIndex = function (marker) {\n return this._markers.get(marker).then(function (m) { return m.setZIndex(marker.zIndex); });\n };\n MarkerManager.prototype.updateClickable = function (marker) {\n return this._markers.get(marker).then(function (m) { return m.setClickable(marker.clickable); });\n };\n MarkerManager.prototype.addMarker = function (marker) {\n var markerPromise = this._mapsWrapper.createMarker({\n position: { lat: marker.latitude, lng: marker.longitude },\n label: marker.label,\n draggable: marker.draggable,\n icon: marker.iconUrl,\n opacity: marker.opacity,\n visible: marker.visible,\n zIndex: marker.zIndex,\n title: marker.title,\n clickable: marker.clickable\n });\n this._markers.set(marker, markerPromise);\n };\n MarkerManager.prototype.getNativeMarker = function (marker) {\n return this._markers.get(marker);\n };\n MarkerManager.prototype.createEventObservable = function (eventName, marker) {\n var _this = this;\n return Observable.create(function (observer) {\n _this._markers.get(marker).then(function (m) {\n m.addListener(eventName, function (e) { return _this._zone.run(function () { return observer.next(e); }); });\n });\n });\n };\n return MarkerManager;\n}());\nexport { MarkerManager };\nMarkerManager.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nMarkerManager.ctorParameters = function () { return [\n { type: GoogleMapsAPIWrapper, },\n { type: NgZone, },\n]; };\n//# sourceMappingURL=marker-manager.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { Injectable, NgZone } from '@angular/core';\nimport 'js-marker-clusterer-universal';\nimport { MarkerManager } from '../../../core/services/managers/marker-manager';\nimport { GoogleMapsAPIWrapper } from '../../../core/services/google-maps-api-wrapper';\nvar ClusterManager = (function (_super) {\n __extends(ClusterManager, _super);\n function ClusterManager(_mapsWrapper, _zone) {\n var _this = _super.call(this, _mapsWrapper, _zone) || this;\n _this._mapsWrapper = _mapsWrapper;\n _this._zone = _zone;\n _this._clustererInstance = new Promise(function (resolver) {\n _this._resolver = resolver;\n });\n return _this;\n }\n ClusterManager.prototype.init = function (options) {\n var _this = this;\n this._mapsWrapper.getNativeMap().then(function (map) {\n var clusterer = new MarkerClusterer(map, [], options);\n _this._resolver(clusterer);\n });\n };\n ClusterManager.prototype.addMarker = function (marker) {\n var clusterPromise = this._clustererInstance;\n var markerPromise = this._mapsWrapper\n .createMarker({\n position: {\n lat: marker.latitude,\n lng: marker.longitude\n },\n label: marker.label,\n draggable: marker.draggable,\n icon: marker.iconUrl,\n opacity: marker.opacity,\n visible: marker.visible,\n zIndex: marker.zIndex,\n title: marker.title,\n clickable: marker.clickable,\n }, false);\n Promise\n .all([clusterPromise, markerPromise])\n .then(function (_a) {\n var cluster = _a[0], marker = _a[1];\n return cluster.addMarker(marker);\n });\n this._markers.set(marker, markerPromise);\n };\n ClusterManager.prototype.deleteMarker = function (marker) {\n var _this = this;\n var m = this._markers.get(marker);\n if (m == null) {\n // marker already deleted\n return Promise.resolve();\n }\n return m.then(function (m) {\n _this._zone.run(function () {\n _this._clustererInstance.then(function (cluster) {\n cluster.removeMarker(m);\n _this._markers.delete(marker);\n });\n });\n });\n };\n ClusterManager.prototype.clearMarkers = function () {\n return this._clustererInstance.then(function (cluster) {\n cluster.clearMarkers();\n });\n };\n ClusterManager.prototype.setGridSize = function (c) {\n this._clustererInstance.then(function (cluster) {\n cluster.setGridSize(c.gridSize);\n });\n };\n ClusterManager.prototype.setMaxZoom = function (c) {\n this._clustererInstance.then(function (cluster) {\n cluster.setMaxZoom(c.maxZoom);\n });\n };\n ClusterManager.prototype.setStyles = function (c) {\n this._clustererInstance.then(function (cluster) {\n cluster.setStyles(c.styles);\n });\n };\n ClusterManager.prototype.setZoomOnClick = function (c) {\n this._clustererInstance.then(function (cluster) {\n if (c.zoomOnClick !== undefined) {\n cluster.zoomOnClick_ = c.zoomOnClick;\n }\n });\n };\n ClusterManager.prototype.setAverageCenter = function (c) {\n this._clustererInstance.then(function (cluster) {\n if (c.averageCenter !== undefined) {\n cluster.averageCenter_ = c.averageCenter;\n }\n });\n };\n ClusterManager.prototype.setImagePath = function (c) {\n this._clustererInstance.then(function (cluster) {\n if (c.imagePath !== undefined) {\n cluster.imagePath_ = c.imagePath;\n }\n });\n };\n ClusterManager.prototype.setMinimumClusterSize = function (c) {\n this._clustererInstance.then(function (cluster) {\n if (c.minimumClusterSize !== undefined) {\n cluster.minimumClusterSize_ = c.minimumClusterSize;\n }\n });\n };\n ClusterManager.prototype.setImageExtension = function (c) {\n this._clustererInstance.then(function (cluster) {\n if (c.imageExtension !== undefined) {\n cluster.imageExtension_ = c.imageExtension;\n }\n });\n };\n return ClusterManager;\n}(MarkerManager));\nexport { ClusterManager };\nClusterManager.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nClusterManager.ctorParameters = function () { return [\n { type: GoogleMapsAPIWrapper, },\n { type: NgZone, },\n]; };\n//# sourceMappingURL=cluster-manager.js.map","import { Directive, Input } from '@angular/core';\nimport { ClusterManager } from '../services/managers/cluster-manager';\nimport { MarkerManager, InfoWindowManager } from '@agm/core';\n/**\n * AgmMarkerCluster clusters map marker if they are near together\n *\n * ### Example\n * ```typescript\n * import { Component } from '@angular/core';\n *\n * @Component({\n * selector: 'my-map-cmp',\n * styles: [`\n * agm-map {\n * height: 300px;\n * }\n * `],\n * template: `\n * <agm-map [latitude]=\"lat\" [longitude]=\"lng\" [zoom]=\"zoom\">\n * <agm-marker-cluster>\n * <agm-marker [latitude]=\"lat\" [longitude]=\"lng\" [label]=\"'M'\">\n * </agm-marker>\n * <agm-marker [latitude]=\"lat2\" [longitude]=\"lng2\" [label]=\"'N'\">\n * </agm-marker>\n * </agm-marker-cluster>\n * </agm-map>\n * `\n * })\n * ```\n */\nvar AgmMarkerCluster = (function () {\n function AgmMarkerCluster(_clusterManager) {\n this._clusterManager = _clusterManager;\n }\n /** @internal */\n AgmMarkerCluster.prototype.ngOnDestroy = function () {\n this._clusterManager.clearMarkers();\n };\n /** @internal */\n AgmMarkerCluster.prototype.ngOnChanges = function (changes) {\n if (changes['gridSize']) {\n this._clusterManager.setGridSize(this);\n }\n if (changes['maxZoom']) {\n this._clusterManager.setMaxZoom(this);\n }\n if (changes['styles']) {\n this._clusterManager.setStyles(this);\n }\n if (changes['zoomOnClick']) {\n this._clusterManager.setZoomOnClick(this);\n }\n if (changes['averageCenter']) {\n this._clusterManager.setAverageCenter(this);\n }\n if (changes['minimumClusterSize']) {\n this._clusterManager.setMinimumClusterSize(this);\n }\n if (changes['styles']) {\n this._clusterManager.setStyles(this);\n }\n if (changes['imagePath']) {\n this._clusterManager.setImagePath(this);\n }\n if (changes['imageExtension']) {\n this._clusterManager.setImageExtension(this);\n }\n };\n /** @internal */\n AgmMarkerCluster.prototype.ngOnInit = function () {\n this._clusterManager.init({\n gridSize: this.gridSize,\n maxZoom: this.maxZoom,\n zoomOnClick: this.zoomOnClick,\n averageCenter: this.averageCenter,\n minimumClusterSize: this.minimumClusterSize,\n styles: this.styles,\n imagePath: this.imagePath,\n imageExtension: this.imageExtension,\n });\n };\n return AgmMarkerCluster;\n}());\nexport { AgmMarkerCluster };\nAgmMarkerCluster.decorators = [\n { type: Directive, args: [{\n selector: 'agm-marker-cluster',\n providers: [\n ClusterManager,\n { provide: MarkerManager, useExisting: ClusterManager },\n InfoWindowManager,\n ]\n },] },\n];\n/** @nocollapse */\nAgmMarkerCluster.ctorParameters = function () { return [\n { type: ClusterManager, },\n]; };\nAgmMarkerCluster.propDecorators = {\n 'gridSize': [{ type: Input },],\n 'maxZoom': [{ type: Input },],\n 'zoomOnClick': [{ type: Input },],\n 'averageCenter': [{ type: Input },],\n 'minimumClusterSize': [{ type: Input },],\n 'styles': [{ type: Input },],\n 'imagePath': [{ type: Input },],\n 'imageExtension': [{ type: Input },],\n};\n//# sourceMappingURL=marker-cluster.js.map","import { NgModule } from '@angular/core';\nimport { AgmCoreModule } from '@agm/core';\nimport { AgmMarkerCluster } from './directives/marker-cluster';\nvar AgmJsMarkerClustererModule = (function () {\n function AgmJsMarkerClustererModule() {\n }\n return AgmJsMarkerClustererModule;\n}());\nexport { AgmJsMarkerClustererModule };\nAgmJsMarkerClustererModule.decorators = [\n { type: NgModule, args: [{\n imports: [AgmCoreModule],\n declarations: [AgmMarkerCluster],\n exports: [AgmMarkerCluster]\n },] },\n];\n/** @nocollapse */\nAgmJsMarkerClustererModule.ctorParameters = function () { return []; };\n//# sourceMappingURL=js-marker-clusterer.module.js.map","// main modules\nexport * from './directives';\nexport * from './services';\n// we explicitly export the module here to prevent this Ionic 2 bug:\n// http://stevemichelotti.com/integrate-angular-2-google-maps-into-ionic-2/\nexport { AgmJsMarkerClustererModule } from './js-marker-clusterer.module';\n//# sourceMappingURL=index.js.map"],"names":["Injectable","Observable","NgZone","MarkerManager","this","Directive","InfoWindowManager","Input","NgModule","AgmCoreModule"],"mappings":"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"}