UNPKG

16.7 kBSource Map (JSON)View Raw
1{"version":3,"file":"agm-js-marker-clusterer.js","sources":["ng://@agm/js-marker-clusterer/services/managers/cluster-manager.ts","ng://@agm/js-marker-clusterer/directives/marker-cluster.ts","ng://@agm/js-marker-clusterer/js-marker-clusterer.module.ts","ng://@agm/js-marker-clusterer/index.ts","ng://@agm/js-marker-clusterer/agm-js-marker-clusterer.ts"],"sourcesContent":["import { Injectable, NgZone } from '@angular/core';\nimport { Observable, Observer } from 'rxjs';\n\nimport 'js-marker-clusterer';\n\nimport { AgmMarker, GoogleMapsAPIWrapper, MarkerManager } from '@agm/core';\nimport { Marker } from '@agm/core/services/google-maps-types';\nimport { AgmMarkerCluster } from '../../directives/marker-cluster';\nimport { ClusterOptions, MarkerClustererInstance } from '../google-clusterer-types';\n\ndeclare var MarkerClusterer: any;\n\n@Injectable()\nexport class ClusterManager extends MarkerManager {\n private _clustererInstance: Promise<MarkerClustererInstance>;\n private _resolver: Function;\n\n constructor(protected _mapsWrapper: GoogleMapsAPIWrapper, protected _zone: NgZone) {\n super(_mapsWrapper, _zone);\n this._clustererInstance = new Promise<MarkerClustererInstance>((resolver) => {\n this._resolver = resolver;\n });\n }\n\n init(options: ClusterOptions): void {\n this._mapsWrapper.getNativeMap().then(map => {\n const clusterer = new MarkerClusterer(map, [], options);\n this._resolver(clusterer);\n });\n }\n\n getClustererInstance(): Promise<MarkerClustererInstance> {\n return this._clustererInstance;\n }\n\n addMarker(marker: AgmMarker): void {\n const clusterPromise: Promise<MarkerClustererInstance> = this.getClustererInstance();\n const 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\n Promise\n .all([clusterPromise, markerPromise])\n .then(([cluster, marker]) => {\n return cluster.addMarker(marker);\n });\n this._markers.set(marker, markerPromise);\n }\n\n deleteMarker(marker: AgmMarker): Promise<void> {\n const m = this._markers.get(marker);\n if (m == null) {\n // marker already deleted\n return Promise.resolve();\n }\n return m.then((m: Marker) => {\n this._zone.run(() => {\n m.setMap(null);\n this.getClustererInstance().then(cluster => {\n cluster.removeMarker(m);\n this._markers.delete(marker);\n });\n });\n });\n }\n\n clearMarkers(): Promise<void> {\n return this.getClustererInstance().then(cluster => {\n cluster.clearMarkers();\n });\n }\n\n setGridSize(c: AgmMarkerCluster): void {\n this.getClustererInstance().then(cluster => {\n cluster.setGridSize(c.gridSize);\n });\n }\n\n setMaxZoom(c: AgmMarkerCluster): void {\n this.getClustererInstance().then(cluster => {\n cluster.setMaxZoom(c.maxZoom);\n });\n }\n\n setStyles(c: AgmMarkerCluster): void {\n this.getClustererInstance().then(cluster => {\n cluster.setStyles(c.styles);\n });\n }\n\n setZoomOnClick(c: AgmMarkerCluster): void {\n this.getClustererInstance().then(cluster => {\n if (c.zoomOnClick !== undefined) {\n cluster.zoomOnClick_ = c.zoomOnClick;\n }\n });\n }\n\n setAverageCenter(c: AgmMarkerCluster): void {\n this.getClustererInstance().then(cluster => {\n if (c.averageCenter !== undefined) {\n cluster.averageCenter_ = c.averageCenter;\n }\n });\n }\n\n setImagePath(c: AgmMarkerCluster): void {\n this.getClustererInstance().then(cluster => {\n if (c.imagePath !== undefined) {\n cluster.imagePath_ = c.imagePath;\n }\n });\n }\n\n setMinimumClusterSize(c: AgmMarkerCluster): void {\n this.getClustererInstance().then(cluster => {\n if (c.minimumClusterSize !== undefined) {\n cluster.minimumClusterSize_ = c.minimumClusterSize;\n }\n });\n }\n\n setImageExtension(c: AgmMarkerCluster): void {\n this.getClustererInstance().then(cluster => {\n if (c.imageExtension !== undefined) {\n cluster.imageExtension_ = c.imageExtension;\n }\n });\n }\n\n createClusterEventObservable<T>(eventName: string): Observable<T> {\n return Observable.create((observer: Observer<T>) => {\n this._zone.runOutsideAngular(() => {\n this._clustererInstance.then((m: MarkerClustererInstance) => {\n m.addListener(eventName, (e: T) => this._zone.run(() => observer.next(e)));\n });\n });\n });\n }\n\n setCalculator (c: AgmMarkerCluster): void {\n this.getClustererInstance().then(cluster => {\n if (typeof c.calculator === 'function') {\n cluster.setCalculator(c.calculator);\n }\n });\n }\n}\n","import { Directive, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChange } from '@angular/core';\n\nimport { InfoWindowManager, MarkerManager } from '@agm/core';\nimport { ClusterManager } from '../services/managers/cluster-manager';\n\nimport { CalculateFunction, ClusterOptions, ClusterStyle } from '../services/google-clusterer-types';\n\nimport { Subscription } from 'rxjs';\n\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 */\n@Directive({\n selector: 'agm-marker-cluster',\n providers: [\n ClusterManager,\n { provide: MarkerManager, useExisting: ClusterManager },\n InfoWindowManager,\n ],\n})\nexport class AgmMarkerCluster implements OnDestroy, OnChanges, OnInit, ClusterOptions {\n /**\n * The grid size of a cluster in pixels\n */\n @Input() gridSize: number;\n\n /**\n * The maximum zoom level that a marker can be part of a cluster.\n */\n @Input() maxZoom: number;\n\n /**\n * Whether the default behaviour of clicking on a cluster is to zoom into it.\n */\n @Input() zoomOnClick: boolean;\n\n /**\n * Whether the center of each cluster should be the average of all markers in the cluster.\n */\n @Input() averageCenter: boolean;\n\n /**\n * The minimum number of markers to be in a cluster before the markers are hidden and a count is shown.\n */\n @Input() minimumClusterSize: number;\n\n /**\n * An object that has style properties.\n */\n @Input() styles: ClusterStyle[];\n\n /**\n * A function that calculates the cluster style and text based on the markers in the cluster.\n */\n @Input() calculator: CalculateFunction;\n\n @Input() imagePath: string;\n @Input() imageExtension: string;\n\n @Output() clusterClick: EventEmitter<void> = new EventEmitter<void>();\n\n private _observableSubscriptions: Subscription[] = [];\n constructor(private _clusterManager: ClusterManager) { }\n\n /** @internal */\n ngOnDestroy() {\n this._clusterManager.clearMarkers();\n this._observableSubscriptions.forEach((s) => s.unsubscribe());\n }\n\n /** @internal */\n ngOnChanges(changes: { [key: string]: SimpleChange }) {\n if (changes['gridSize']) {\n this._clusterManager.setGridSize(this);\n }\n if (changes['maxZoom']) {\n this._clusterManager.setMaxZoom(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['imagePath']) {\n this._clusterManager.setImagePath(this);\n }\n if (changes['imageExtension']) {\n this._clusterManager.setImageExtension(this);\n }\n if (changes['calculator']) {\n this._clusterManager.setCalculator(this);\n }\n if (changes['styles']) {\n this._clusterManager.setStyles(this);\n }\n }\n\n private _addEventListeners() {\n const handlers = [\n {\n name: 'clusterclick',\n handler: () => this.clusterClick.emit(),\n },\n ];\n handlers.forEach((obj) => {\n const os = this._clusterManager.createClusterEventObservable(obj.name).subscribe(obj.handler);\n this._observableSubscriptions.push(os);\n });\n }\n\n /** @internal */\n ngOnInit() {\n this._addEventListeners();\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 calculator: this.calculator,\n });\n }\n}\n","import { AgmCoreModule } from '@agm/core';\nimport { NgModule } from '@angular/core';\nimport { AgmMarkerCluster } from './directives/marker-cluster';\n\n@NgModule({\n imports: [AgmCoreModule],\n declarations: [AgmMarkerCluster],\n exports: [AgmMarkerCluster],\n})\nexport class AgmJsMarkerClustererModule {\n}\n","// main modules\nexport * from './directives';\nexport * from './services';\n\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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["tslib_1.__decorate"],"mappings":"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"}
\No newline at end of file