UNPKG

ng2-bingmaps

Version:
70 lines (68 loc) 2.92 kB
/** * ng2-bingmaps - Angular 2 components for Bing Maps * @version v0.2.0 * @link https://github.com/youjustgo/ng2-bingmaps * @license MIT */ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; import { Injectable, NgZone } from '@angular/core'; import { BingMapsAPIWrapper } from './bing-maps-api-wrapper'; export let InfoWindowManager = class InfoWindowManager { constructor(_mapsWrapper, _zone) { this._mapsWrapper = _mapsWrapper; this._zone = _zone; } setPosition(infoWindow) { return this._mapsWrapper.getInfoWindow().then((i) => i.setPosition({ lat: infoWindow.latitude, lng: infoWindow.longitude })); } // open(infoWindow: BingMapInfoWindow): Promise<void> { // return this._infoWindows.get(infoWindow).then((w) => { // w.open(); // }); // } close() { return this._mapsWrapper.getInfoWindow().then((w) => w.close()); } setOptions(options) { return this._mapsWrapper.getInfoWindow().then((w) => w.setOptions(options)); } open(infoWindow) { const options = { title: infoWindow.title, description: infoWindow.description, height: +infoWindow.height, width: +infoWindow.width }; if (typeof infoWindow.latitude === 'number' && typeof infoWindow.longitude === 'number') { options.position = { lat: infoWindow.latitude, lng: infoWindow.longitude }; } if (typeof infoWindow.infoWindowActions !== 'undefined' && infoWindow.infoWindowActions.length > 0) { options.actions = []; infoWindow.infoWindowActions.forEach((infoWindowAction) => { options.actions.push({ label: infoWindowAction.label, eventHandler: () => { infoWindowAction.actionClicked.emit(null); } }); }); } return this._mapsWrapper.getInfoWindow(options).then(i => { i.open(); }); } }; InfoWindowManager = __decorate([ Injectable(), __metadata('design:paramtypes', [BingMapsAPIWrapper, NgZone]) ], InfoWindowManager); //# sourceMappingURL=info-window-manager.js.map