UNPKG

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
/** * @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