angular-leaflet
Version:
Collection of angular components to build map views faster and with minimal configuration using the most popular library **LeafletJS**.
68 lines • 4.74 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, forwardRef, Input } from '@angular/core';
import { divIcon, marker } from 'leaflet';
import { BaseLayer } from '../core/base-layer';
export class MarkerComponent extends BaseLayer {
/**
* @param {?} value
* @return {?}
*/
set latLng(value) {
this._latLng = value;
this.prepareLayer();
}
/**
* @private
* @return {?}
*/
prepareLayer() {
if (this.mapRef && this._latLng) {
if (this.layerRef) {
this.layerRef.setLatLng(this._latLng);
}
else {
this.createLayer();
}
}
}
/**
* @private
* @return {?}
*/
createLayer() {
this.layerRef = marker(this._latLng, {
icon: divIcon()
});
this.mapRef.addLayer(this.layerRef);
this.initHandlers();
}
/**
* @param {?} map
* @return {?}
*/
addTo(map) {
super.addTo(map);
this.prepareLayer();
}
}
MarkerComponent.decorators = [
{ type: Component, args: [{
selector: 'ngl-marker',
template: '',
providers: [{ provide: BaseLayer, useExisting: forwardRef((/**
* @return {?}
*/
() => MarkerComponent)) }]
}] }
];
MarkerComponent.propDecorators = {
latLng: [{ type: Input }]
};
if (false) {
/** @type {?} */
MarkerComponent.prototype._latLng;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItbGVhZmxldC8iLCJzb3VyY2VzIjpbIm1hcmtlci9tYXJrZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLE9BQU8sRUFBcUMsTUFBTSxFQUFVLE1BQU0sU0FBUyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQU8vQyxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxTQUFpQjs7Ozs7SUFDcEQsSUFBYSxNQUFNLENBQUMsS0FBdUI7UUFDekMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7Ozs7O0lBSU8sWUFBWTtRQUNsQixJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUMvQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUN2QztpQkFBTTtnQkFDTCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7YUFDcEI7U0FDRjtJQUNILENBQUM7Ozs7O0lBRU8sV0FBVztRQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ25DLElBQUksRUFBRSxPQUFPLEVBQUU7U0FDaEIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDOzs7OztJQUVELEtBQUssQ0FBQyxHQUFxQjtRQUN6QixLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDOzs7WUFsQ0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxZQUFZO2dCQUN0QixRQUFRLEVBQUUsRUFBRTtnQkFDWixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFVBQVU7Ozt3QkFBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLEVBQUMsRUFBRSxDQUFDO2FBQ3BGOzs7cUJBRUUsS0FBSzs7OztJQUtOLGtDQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRpdkljb24sIExhdExuZ0V4cHJlc3Npb24sIExheWVyR3JvdXAsIE1hcCwgbWFya2VyLCBNYXJrZXIgfSBmcm9tICdsZWFmbGV0JztcbmltcG9ydCB7IEJhc2VMYXllciB9IGZyb20gJy4uL2NvcmUvYmFzZS1sYXllcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nbC1tYXJrZXInLFxuICB0ZW1wbGF0ZTogJycsXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQmFzZUxheWVyLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBNYXJrZXJDb21wb25lbnQpIH1dXG59KVxuZXhwb3J0IGNsYXNzIE1hcmtlckNvbXBvbmVudCBleHRlbmRzIEJhc2VMYXllcjxNYXJrZXI+IHtcbiAgQElucHV0KCkgc2V0IGxhdExuZyh2YWx1ZTogTGF0TG5nRXhwcmVzc2lvbikge1xuICAgIHRoaXMuX2xhdExuZyA9IHZhbHVlO1xuICAgIHRoaXMucHJlcGFyZUxheWVyKCk7XG4gIH1cblxuICBfbGF0TG5nOiBMYXRMbmdFeHByZXNzaW9uO1xuXG4gIHByaXZhdGUgcHJlcGFyZUxheWVyKCkge1xuICAgIGlmICh0aGlzLm1hcFJlZiAmJiB0aGlzLl9sYXRMbmcpIHtcbiAgICAgIGlmICh0aGlzLmxheWVyUmVmKSB7XG4gICAgICAgIHRoaXMubGF5ZXJSZWYuc2V0TGF0TG5nKHRoaXMuX2xhdExuZyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNyZWF0ZUxheWVyKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVMYXllcigpIHtcbiAgICB0aGlzLmxheWVyUmVmID0gbWFya2VyKHRoaXMuX2xhdExuZywge1xuICAgICAgaWNvbjogZGl2SWNvbigpXG4gICAgfSk7XG4gICAgdGhpcy5tYXBSZWYuYWRkTGF5ZXIodGhpcy5sYXllclJlZik7XG4gICAgdGhpcy5pbml0SGFuZGxlcnMoKTtcbiAgfVxuXG4gIGFkZFRvKG1hcDogTWFwIHwgTGF5ZXJHcm91cCk6IHZvaWQge1xuICAgIHN1cGVyLmFkZFRvKG1hcCk7XG4gICAgdGhpcy5wcmVwYXJlTGF5ZXIoKTtcbiAgfVxufVxuIl19