UNPKG

@ng-maps/google

Version:

**@ng-maps/google** is a simple, modular and tree-shakable library for displaying google-maps inside an angular application

97 lines 12.7 kB
import { Injectable, NgZone } from '@angular/core'; import { Observable } from 'rxjs'; import { MapsApiWrapper, MarkerManager, } from '@ng-maps/core'; import { isValidMarkerIcon } from '../util/is-valid-marker-icon'; import * as i0 from "@angular/core"; import * as i1 from "@ng-maps/core"; export class GoogleMapsMarkerManager extends MarkerManager { constructor(_mapsWrapper, _zone) { super(_mapsWrapper, _zone); this._markers = new Map(); } deleteMarker(marker) { const m = this._markers.get(marker); if (m == null) { // marker already deleted return; } else { return this._zone.run(() => { m.setMap(null); this._markers.delete(marker); }); } } updateMarkerPosition(marker) { if (typeof marker.latitude !== 'number' || typeof marker.longitude !== 'number') { return; } const m = this._markers.get(marker); m?.setPosition({ lat: marker.latitude, lng: marker.longitude }); } updateTitle(marker) { const m = this._markers.get(marker); m?.setTitle(marker.title); } updateLabel(marker) { const m = this._markers.get(marker); m?.setLabel(marker.label); } updateDraggable(marker) { const m = this._markers.get(marker); m?.setDraggable(marker.draggable); } updateIconLegacy(marker) { const m = this._markers.get(marker); m?.setIcon(marker.iconUrl); } updateOpacity(marker) { const m = this._markers.get(marker); m?.setOpacity(marker.opacity); } updateVisible(marker) { const m = this._markers.get(marker); m?.setVisible(marker.visible); } updateZIndex(marker) { const m = this._markers.get(marker); m?.setZIndex(marker.zIndex); } updateClickable(marker) { const m = this._markers.get(marker); m?.setClickable(marker.clickable); } updateAnimation(marker) { const m = this._markers.get(marker); if (typeof marker.animation === 'string') { m?.setAnimation(google.maps.Animation[marker.animation]); } else { m?.setAnimation(marker.animation); } } createEventObservable(eventName, marker) { return new Observable((observer) => { const m = this._markers.get(marker); if (typeof eventName === 'string') { eventName = [eventName]; } eventName.forEach((event) => { m?.addListener(event, (e) => this._zone.run(() => observer.next(e))); }); }); } updateIcon(marker) { const m = this._markers.get(marker); if (m && isValidMarkerIcon(marker.icon)) { m.setIcon(marker.icon); } } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GoogleMapsMarkerManager, deps: [{ token: i1.MapsApiWrapper }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GoogleMapsMarkerManager }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GoogleMapsMarkerManager, decorators: [{ type: Injectable }], ctorParameters: () => [{ type: i1.MapsApiWrapper }, { type: i0.NgZone }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2VyLm1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2dvb2dsZS9zcmMvbGliL21hbmFnZXJzL21hcmtlci5tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxNQUFNLENBQUM7QUFFNUMsT0FBTyxFQUNMLGNBQWMsRUFDZCxhQUFhLEdBRWQsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7OztBQUdqRSxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsYUFBaUM7SUFJNUUsWUFBWSxZQUE0QixFQUFFLEtBQWE7UUFDckQsS0FBSyxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUpWLGFBQVEsR0FDekIsSUFBSSxHQUFHLEVBQTZDLENBQUM7SUFJdkQsQ0FBQztJQUVNLFlBQVksQ0FBQyxNQUE2QjtRQUMvQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNkLHlCQUF5QjtZQUN6QixPQUFPO1FBQ1QsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtnQkFDekIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDZixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMvQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRU0sb0JBQW9CLENBQUMsTUFBNkI7UUFDdkQsSUFDRSxPQUFPLE1BQU0sQ0FBQyxRQUFR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O1FBRTdCLE9BQU8sSUFBSSxVQUFVLENBQUMsQ0FBQyxRQUFxQixFQUFFLEVBQUU7WUFDOUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDcEMsSUFBSSxPQUFPLFNBQVMsS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDbEMsU0FBUyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDMUIsQ0FBQztZQUNELFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDMUIsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzFFLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sVUFBVSxDQUFDLE1BQTZCO1FBQzdDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxJQUFJLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3hDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLENBQUM7SUFDSCxDQUFDOzhHQXJHVSx1QkFBdUI7a0hBQXZCLHVCQUF1Qjs7MkZBQXZCLHVCQUF1QjtrQkFEbkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgT2JzZXJ2ZXIgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgTWFwc0FwaVdyYXBwZXIsXG4gIE1hcmtlck1hbmFnZXIsXG4gIE5nTWFwc01hcmtlckNvbXBvbmVudCxcbn0gZnJvbSAnQG5nLW1hcHMvY29yZSc7XG5cbmltcG9ydCB7IGlzVmFsaWRNYXJrZXJJY29uIH0gZnJvbSAnLi4vdXRpbC9pcy12YWxpZC1tYXJrZXItaWNvbic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBHb29nbGVNYXBzTWFya2VyTWFuYWdlciBleHRlbmRzIE1hcmtlck1hbmFnZXI8Z29vZ2xlLm1hcHMuTWFya2VyPiB7XG4gIHByb3RlY3RlZCBvdmVycmlkZSBfbWFya2VyczogTWFwPE5nTWFwc01hcmtlckNvbXBvbmVudCwgZ29vZ2xlLm1hcHMuTWFya2VyPiA9XG4gICAgbmV3IE1hcDxOZ01hcHNNYXJrZXJDb21wb25lbnQsIGdvb2dsZS5tYXBzLk1hcmtlcj4oKTtcblxuICBjb25zdHJ1Y3RvcihfbWFwc1dyYXBwZXI6IE1hcHNBcGlXcmFwcGVyLCBfem9uZTogTmdab25lKSB7XG4gICAgc3VwZXIoX21hcHNXcmFwcGVyLCBfem9uZSk7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlTWFya2VyKG1hcmtlcjogTmdNYXBzTWFya2VyQ29tcG9uZW50KTogdm9pZCB7XG4gICAgY29uc3QgbSA9IHRoaXMuX21hcmtlcnMuZ2V0KG1hcmtlcik7XG4gICAgaWYgKG0gPT0gbnVsbCkge1xuICAgICAgLy8gbWFya2VyIGFscmVhZHkgZGVsZXRlZFxuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5fem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICBtLnNldE1hcChudWxsKTtcbiAgICAgICAgdGhpcy5fbWFya2Vycy5kZWxldGUobWFya2VyKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVNYXJrZXJQb3NpdGlvbihtYXJrZXI6IE5nTWFwc01hcmtlckNvbXBvbmVudCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIHR5cGVvZiBtYXJrZXIubGF0aXR1ZGUgIT09ICdudW1iZXInIHx8XG4gICAgICB0eXBlb2YgbWFya2VyLmxvbmdpdHVkZSAhPT0gJ251bWJlcidcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgbSA9IHRoaXMuX21hcmtlcnMuZ2V0KG1hcmtlcik7XG4gICAgbT8uc2V0UG9zaXRpb24oeyBsYXQ6IG1hcmtlci5sYXRpdHVkZSwgbG5nOiBtYXJrZXIubG9uZ2l0dWRlIH0pO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVRpdGxlKG1hcmtlcjogTmdNYXBzTWFya2VyQ29tcG9uZW50KTogdm9pZCB7XG4gICAgY29uc3QgbSA9IHRoaXMuX21hcmtlcnMuZ2V0KG1hcmtlcik7XG4gICAgbT8uc2V0VGl0bGUobWFya2VyLnRpdGxlKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVMYWJlbChtYXJrZXI6IE5nTWFwc01hcmtlckNvbXBvbmVudCk6IHZvaWQge1xuICAgIGNvbnN0IG0gPSB0aGlzLl9tYXJrZXJzLmdldChtYXJrZXIpO1xuICAgIG0/LnNldExhYmVsKG1hcmtlci5sYWJlbCk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlRHJhZ2dhYmxlKG1hcmtlcjogTmdNYXBzTWFya2VyQ29tcG9uZW50KTogdm9pZCB7XG4gICAgY29uc3QgbSA9IHRoaXMuX21hcmtlcnMuZ2V0KG1hcmtlcik7XG4gICAgbT8uc2V0RHJhZ2dhYmxlKG1hcmtlci5kcmFnZ2FibGUpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUljb25MZWdhY3kobWFya2VyOiBOZ01hcHNNYXJrZXJDb21wb25lbnQpOiB2b2lkIHtcbiAgICBjb25zdCBtID0gdGhpcy5fbWFya2Vycy5nZXQobWFya2VyKTtcbiAgICBtPy5zZXRJY29uKG1hcmtlci5pY29uVXJsKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVPcGFjaXR5KG1hcmtlcjogTmdNYXBzTWFya2VyQ29tcG9uZW50KTogdm9pZCB7XG4gICAgY29uc3QgbSA9IHRoaXMuX21hcmtlcnMuZ2V0KG1hcmtlcik7XG4gICAgbT8uc2V0T3BhY2l0eShtYXJrZXIub3BhY2l0eSk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlVmlzaWJsZShtYXJrZXI6IE5nTWFwc01hcmtlckNvbXBvbmVudCk6IHZvaWQge1xuICAgIGNvbnN0IG0gPSB0aGlzLl9tYXJrZXJzLmdldChtYXJrZXIpO1xuICAgIG0/LnNldFZpc2libGUobWFya2VyLnZpc2libGUpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVpJbmRleChtYXJrZXI6IE5nTWFwc01hcmtlckNvbXBvbmVudCk6IHZvaWQge1xuICAgIGNvbnN0IG0gPSB0aGlzLl9tYXJrZXJzLmdldChtYXJrZXIpO1xuICAgIG0/LnNldFpJbmRleChtYXJrZXIuekluZGV4KTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVDbGlja2FibGUobWFya2VyOiBOZ01hcHNNYXJrZXJDb21wb25lbnQpOiB2b2lkIHtcbiAgICBjb25zdCBtID0gdGhpcy5fbWFya2Vycy5nZXQobWFya2VyKTtcbiAgICBtPy5zZXRDbGlja2FibGUobWFya2VyLmNsaWNrYWJsZSk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlQW5pbWF0aW9uKG1hcmtlcjogTmdNYXBzTWFya2VyQ29tcG9uZW50KTogdm9pZCB7XG4gICAgY29uc3QgbSA9IHRoaXMuX21hcmtlcnMuZ2V0KG1hcmtlcik7XG4gICAgaWYgKHR5cGVvZiBtYXJrZXIuYW5pbWF0aW9uID09PSAnc3RyaW5nJykge1xuICAgICAgbT8uc2V0QW5pbWF0aW9uKGdvb2dsZS5tYXBzLkFuaW1hdGlvblttYXJrZXIuYW5pbWF0aW9uXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG0/LnNldEFuaW1hdGlvbihtYXJrZXIuYW5pbWF0aW9uKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlRXZlbnRPYnNlcnZhYmxlPFQ+KFxuICAgIGV2ZW50TmFtZTogc3RyaW5nIHwgQXJyYXk8c3RyaW5nPixcbiAgICBtYXJrZXI6IE5nTWFwc01hcmtlckNvbXBvbmVudCxcbiAgKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcjogT2JzZXJ2ZXI8VD4pID0+IHtcbiAgICAgIGNvbnN0IG0gPSB0aGlzLl9tYXJrZXJzLmdldChtYXJrZXIpO1xuICAgICAgaWYgKHR5cGVvZiBldmVudE5hbWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGV2ZW50TmFtZSA9IFtldmVudE5hbWVdO1xuICAgICAgfVxuICAgICAgZXZlbnROYW1lLmZvckVhY2goKGV2ZW50KSA9PiB7XG4gICAgICAgIG0/LmFkZExpc3RlbmVyKGV2ZW50LCAoZTogVCkgPT4gdGhpcy5fem9uZS5ydW4oKCkgPT4gb2JzZXJ2ZXIubmV4dChlKSkpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlSWNvbihtYXJrZXI6IE5nTWFwc01hcmtlckNvbXBvbmVudCk6IHZvaWQge1xuICAgIGNvbnN0IG0gPSB0aGlzLl9tYXJrZXJzLmdldChtYXJrZXIpO1xuICAgIGlmIChtICYmIGlzVmFsaWRNYXJrZXJJY29uKG1hcmtlci5pY29uKSkge1xuICAgICAgbS5zZXRJY29uKG1hcmtlci5pY29uKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==