ng2-bingmaps
Version:
Angular 2 components for Bing Maps
70 lines (68 loc) • 2.92 kB
JavaScript
/**
* 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