@ng-maps/google
Version:
**@ng-maps/google** is a simple, modular and tree-shakable library for displaying google-maps inside an angular application
91 lines • 12.1 kB
JavaScript
import { Injectable, NgZone } from '@angular/core';
import { Observable } from 'rxjs';
import { InfoWindowManager, MapsApiWrapper, MarkerManager, } from '@ng-maps/core';
import * as i0 from "@angular/core";
import * as i1 from "@ng-maps/core";
export class GoogleInfoWindowManager extends InfoWindowManager {
constructor(_mapsWrapper, _zone, _markerManager) {
super(_mapsWrapper, _zone, _markerManager);
}
async deleteInfoWindow(infoWindow) {
const iWindow = await this._infoWindows.get(infoWindow);
if (iWindow == null) {
// info window already deleted
return;
}
else {
return this._zone.run(() => {
iWindow.close();
this._infoWindows.delete(infoWindow);
});
}
}
setPosition(infoWindow) {
if (!infoWindow.latitude || !infoWindow.longitude) {
return;
}
const i = this._infoWindows.get(infoWindow);
i?.setPosition({
lat: infoWindow.latitude,
lng: infoWindow.longitude,
});
}
setZIndex(infoWindow) {
if (!infoWindow.zIndex) {
return;
}
const i = this._infoWindows.get(infoWindow);
i?.setZIndex(infoWindow.zIndex);
}
async open(infoWindow) {
const w = this._infoWindows.get(infoWindow);
const map = await this._mapsWrapper.getNativeMap();
if (infoWindow.hostMarker != null) {
const marker = await this._markerManager.getNativeMarker(infoWindow.hostMarker);
w?.open(map, marker);
}
else {
w?.open(map);
}
}
close(infoWindow) {
const w = this._infoWindows.get(infoWindow);
w?.close();
}
setOptions(infoWindow, options) {
const i = this._infoWindows.get(infoWindow);
i?.setOptions(options);
}
async addInfoWindow(infoWindow) {
const options = {
content: infoWindow.content?.nativeElement,
maxWidth: infoWindow.maxWidth,
zIndex: infoWindow.zIndex,
disableAutoPan: infoWindow.disableAutoPan,
};
const center = typeof infoWindow.latitude === 'number' &&
typeof infoWindow.longitude === 'number'
? {
lat: infoWindow.latitude,
lng: infoWindow.longitude,
}
: null;
const instance = await this._mapsWrapper.createInfoWindow(center, options);
this._infoWindows.set(infoWindow, instance);
}
/**
* Creates a Google Maps event listener for the given InfoWindow as an Observable
*/
createEventObservable(eventName, infoWindow) {
const i = this._infoWindows.get(infoWindow);
return new Observable((observer) => {
i?.addListener(eventName, (e) => this._zone.run(() => observer.next(e)));
});
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GoogleInfoWindowManager, deps: [{ token: i1.MapsApiWrapper }, { token: i0.NgZone }, { token: i1.MarkerManager }], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GoogleInfoWindowManager }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GoogleInfoWindowManager, decorators: [{
type: Injectable
}], ctorParameters: () => [{ type: i1.MapsApiWrapper }, { type: i0.NgZone }, { type: i1.MarkerManager }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mby13aW5kb3cubWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZ29vZ2xlL3NyYy9saWIvbWFuYWdlcnMvaW5mby13aW5kb3cubWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0sTUFBTSxDQUFDO0FBRTVDLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsY0FBYyxFQUNkLGFBQWEsR0FFZCxNQUFNLGVBQWUsQ0FBQzs7O0FBR3ZCLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxpQkFBeUM7SUFDcEYsWUFDRSxZQUE0QixFQUM1QixLQUFhLEVBQ2IsY0FBNkI7UUFFN0IsS0FBSyxDQUFDLFlBQVksRUFBRSxLQUFLLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVNLEtBQUssQ0FBQyxnQkFBZ0IsQ0FDM0IsVUFBcUM7UUFFckMsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4RCxJQUFJLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNwQiw4QkFBOEI7WUFDOUIsT0FBTztRQUNULENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3pCLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDdkMsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVNLFdBQVcsQ0FBQyxVQUFxQztRQUN0RCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVB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LENBQUMsUUFBcUIsRUFBRSxFQUFFO1lBQzlDLENBQUMsRUFBRSxXQUFXLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBSSxFQUFFLEVBQUUsQ0FDakMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUN2QyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQXRHVSx1QkFBdUI7a0hBQXZCLHVCQUF1Qjs7MkZBQXZCLHVCQUF1QjtrQkFEbkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgT2JzZXJ2ZXIgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgR2VvUG9pbnQsXG4gIEluZm9XaW5kb3dNYW5hZ2VyLFxuICBNYXBzQXBpV3JhcHBlcixcbiAgTWFya2VyTWFuYWdlcixcbiAgTmdNYXBzSW5mb1dpbmRvd0NvbXBvbmVudCxcbn0gZnJvbSAnQG5nLW1hcHMvY29yZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBHb29nbGVJbmZvV2luZG93TWFuYWdlciBleHRlbmRzIEluZm9XaW5kb3dNYW5hZ2VyPGdvb2dsZS5tYXBzLkluZm9XaW5kb3c+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgX21hcHNXcmFwcGVyOiBNYXBzQXBpV3JhcHBlcixcbiAgICBfem9uZTogTmdab25lLFxuICAgIF9tYXJrZXJNYW5hZ2VyOiBNYXJrZXJNYW5hZ2VyLFxuICApIHtcbiAgICBzdXBlcihfbWFwc1dyYXBwZXIsIF96b25lLCBfbWFya2VyTWFuYWdlcik7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGVsZXRlSW5mb1dpbmRvdyhcbiAgICBpbmZvV2luZG93OiBOZ01hcHNJbmZvV2luZG93Q29tcG9uZW50LFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBpV2luZG93ID0gYXdhaXQgdGhpcy5faW5mb1dpbmRvd3MuZ2V0KGluZm9XaW5kb3cpO1xuICAgIGlmIChpV2luZG93ID09IG51bGwpIHtcbiAgICAgIC8vIGluZm8gd2luZG93IGFscmVhZHkgZGVsZXRlZFxuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5fem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICBpV2luZG93LmNsb3NlKCk7XG4gICAgICAgIHRoaXMuX2luZm9XaW5kb3dzLmRlbGV0ZShpbmZvV2luZG93KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRQb3NpdGlvbihpbmZvV2luZG93OiBOZ01hcHNJbmZvV2luZG93Q29tcG9uZW50KTogdm9pZCB7XG4gICAgaWYgKCFpbmZvV2luZG93LmxhdGl0dWRlIHx8ICFpbmZvV2luZG93LmxvbmdpdHVkZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBpID0gdGhpcy5faW5mb1dpbmRvd3MuZ2V0KGluZm9XaW5kb3cpO1xuICAgIGk/LnNldFBvc2l0aW9uKHtcbiAgICAgIGxhdDogaW5mb1dpbmRvdy5sYXRpdHVkZSxcbiAgICAgIGxuZzogaW5mb1dpbmRvdy5sb25naXR1ZGUsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc2V0WkluZGV4KGluZm9XaW5kb3c6IE5nTWFwc0luZm9XaW5kb3dDb21wb25lbnQpOiB2b2lkIHtcbiAgICBpZiAoIWluZm9XaW5kb3cuekluZGV4KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGkgPSB0aGlzLl9pbmZvV2luZG93cy5nZXQoaW5mb1dpbmRvdyk7XG4gICAgaT8uc2V0WkluZGV4KGluZm9XaW5kb3cuekluZGV4KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBvcGVuKGluZm9XaW5kb3c6IE5nTWFwc0luZm9XaW5kb3dDb21wb25lbnQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB3ID0gdGhpcy5faW5mb1dpbmRvd3MuZ2V0KGluZm9XaW5kb3cpO1xuICAgIGNvbnN0IG1hcCA9IGF3YWl0IHRoaXMuX21hcHNXcmFwcGVyLmdldE5hdGl2ZU1hcCgpO1xuICAgIGlmIChpbmZvV2luZG93Lmhvc3RNYXJrZXIgIT0gbnVsbCkge1xuICAgICAgY29uc3QgbWFya2VyID0gYXdhaXQgdGhpcy5fbWFya2VyTWFuYWdlci5nZXROYXRpdmVNYXJrZXIoXG4gICAgICAgIGluZm9XaW5kb3cuaG9zdE1hcmtlcixcbiAgICAgICk7XG4gICAgICB3Py5vcGVuKG1hcCwgbWFya2VyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdz8ub3BlbihtYXApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjbG9zZShpbmZvV2luZG93OiBOZ01hcHNJbmZvV2luZG93Q29tcG9uZW50KTogdm9pZCB7XG4gICAgY29uc3QgdyA9IHRoaXMuX2luZm9XaW5kb3dzLmdldChpbmZvV2luZG93KTtcbiAgICB3Py5jbG9zZSgpO1xuICB9XG5cbiAgcHVibGljIHNldE9wdGlvbnMoXG4gICAgaW5mb1dpbmRvdzogTmdNYXBzSW5mb1dpbmRvd0NvbXBvbmVudCxcbiAgICBvcHRpb25zOiBnb29nbGUubWFwcy5JbmZvV2luZG93T3B0aW9ucyxcbiAgKSB7XG4gICAgY29uc3QgaSA9IHRoaXMuX2luZm9XaW5kb3dzLmdldChpbmZvV2luZG93KTtcbiAgICBpPy5zZXRPcHRpb25zKG9wdGlvbnMpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGFkZEluZm9XaW5kb3coaW5mb1dpbmRvdzogTmdNYXBzSW5mb1dpbmRvd0NvbXBvbmVudCkge1xuICAgIGNvbnN0IG9wdGlvbnM6IGdvb2dsZS5tYXBzLkluZm9XaW5kb3dPcHRpb25zID0ge1xuICAgICAgY29udGVudDogaW5mb1dpbmRvdy5jb250ZW50Py5uYXRpdmVFbGVtZW50LFxuICAgICAgbWF4V2lkdGg6IGluZm9XaW5kb3cubWF4V2lkdGgsXG4gICAgICB6SW5kZXg6IGluZm9XaW5kb3cuekluZGV4LFxuICAgICAgZGlzYWJsZUF1dG9QYW46IGluZm9XaW5kb3cuZGlzYWJsZUF1dG9QYW4sXG4gICAgfTtcbiAgICBjb25zdCBjZW50ZXI6IEdlb1BvaW50IHwgbnVsbCA9XG4gICAgICB0eXBlb2YgaW5mb1dpbmRvdy5sYXRpdHVkZSA9PT0gJ251bWJlcicgJiZcbiAgICAgIHR5cGVvZiBpbmZvV2luZG93LmxvbmdpdHVkZSA9PT0gJ251bWJlcidcbiAgICAgICAgPyB7XG4gICAgICAgICAgICBsYXQ6IGluZm9XaW5kb3cubGF0aXR1ZGUsXG4gICAgICAgICAgICBsbmc6IGluZm9XaW5kb3cubG9uZ2l0dWRlLFxuICAgICAgICAgIH1cbiAgICAgICAgOiBudWxsO1xuXG4gICAgY29uc3QgaW5zdGFuY2UgPSBhd2FpdCB0aGlzLl9tYXBzV3JhcHBlci5jcmVhdGVJbmZvV2luZG93KGNlbnRlciwgb3B0aW9ucyk7XG4gICAgdGhpcy5faW5mb1dpbmRvd3Muc2V0KGluZm9XaW5kb3csIGluc3RhbmNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgR29vZ2xlIE1hcHMgZXZlbnQgbGlzdGVuZXIgZm9yIHRoZSBnaXZlbiBJbmZvV2luZG93IGFzIGFuIE9ic2VydmFibGVcbiAgICovXG4gIHB1YmxpYyBjcmVhdGVFdmVudE9ic2VydmFibGU8VD4oXG4gICAgZXZlbnROYW1lOiBzdHJpbmcsXG4gICAgaW5mb1dpbmRvdzogTmdNYXBzSW5mb1dpbmRvd0NvbXBvbmVudCxcbiAgKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgY29uc3QgaSA9IHRoaXMuX2luZm9XaW5kb3dzLmdldChpbmZvV2luZG93KTtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKG9ic2VydmVyOiBPYnNlcnZlcjxUPikgPT4ge1xuICAgICAgaT8uYWRkTGlzdGVuZXIoZXZlbnROYW1lLCAoZTogVCkgPT5cbiAgICAgICAgdGhpcy5fem9uZS5ydW4oKCkgPT4gb2JzZXJ2ZXIubmV4dChlKSksXG4gICAgICApO1xuICAgIH0pO1xuICB9XG59XG4iXX0=