{"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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"}