UNPKG

angular-cesium

Version:
64 lines (61 loc) 6.61 kB
import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from '@angular/core'; import { PlonterService } from '../../services/plonter/plonter.service'; import { CoordinateConverter } from '../../services/coordinate-converter/coordinate-converter.service'; export class AcDefaultPlonterComponent { constructor(plonterService, cd, geoConverter) { this.plonterService = plonterService; this.cd = cd; this.geoConverter = geoConverter; } ngOnInit() { this.plonterService.plonterChangeNotifier.subscribe(() => this.cd.detectChanges()); } get plonterPosition() { if (this.plonterService.plonterShown) { const screenPos = this.plonterService.plonterClickPosition.endPosition; return this.geoConverter.screenToCartesian3(screenPos); } } chooseEntity(entity) { this.plonterService.resolvePlonter(entity); } } AcDefaultPlonterComponent.decorators = [ { type: Component, args: [{ selector: 'ac-default-plonter', template: ` <ac-html *ngIf="plonterService.plonterShown" [props]="{ position: plonterPosition }"> <div class="plonter-context-menu"> <div *ngFor="let entity of plonterService.entitesToPlonter"> <div class="plonter-item" (click)="chooseEntity(entity)">{{ entity?.name || entity?.id }} </div> </div> </div> </ac-html> `, changeDetection: ChangeDetectionStrategy.OnPush, providers: [CoordinateConverter], styles: [` .plonter-context-menu { background-color: rgba(250, 250, 250, 0.8); box-shadow: 1px 1px 5px 0px rgba(0, 0, 0, 0.15); } .plonter-item { cursor: pointer; padding: 2px 15px; text-align: start; } .plonter-item:hover { background-color: rgba(0, 0, 0, 0.15); } `] },] } ]; AcDefaultPlonterComponent.ctorParameters = () => [ { type: PlonterService }, { type: ChangeDetectorRef }, { type: CoordinateConverter } ]; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWMtZGVmYXVsdC1wbG9udGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY2VzaXVtL3NyYy9saWIvYW5ndWxhci1jZXNpdW0vY29tcG9uZW50cy9hYy1kZWZhdWx0LXBsb250ZXIvYWMtZGVmYXVsdC1wbG9udGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQXNDdkcsTUFBTSxPQUFPLHlCQUF5QjtJQUVwQyxZQUFtQixjQUE4QixFQUM3QixFQUFxQixFQUNyQixZQUFpQztRQUZsQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDN0IsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDckIsaUJBQVksR0FBWixZQUFZLENBQXFCO0lBQ3JELENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDakIsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRTtZQUNwQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQztZQUN2RSxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDeEQ7SUFDSCxDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQVc7UUFDdEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0MsQ0FBQzs7O1lBeERGLFNBQVMsU0FDUjtnQkFDRSxRQUFRLEVBQUUsb0JBQW9CO2dCQUM5QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7O0tBV1Q7Z0JBa0JELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2dCQUMvQyxTQUFTLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQzt5QkFsQnZCOzs7Ozs7Ozs7Ozs7Ozs7O0tBZ0JSO2FBR0Y7OztZQXJDTSxjQUFjO1lBRFcsaUJBQWlCO1lBRTFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUGxvbnRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wbG9udGVyL3Bsb250ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IENvb3JkaW5hdGVDb252ZXJ0ZXIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb29yZGluYXRlLWNvbnZlcnRlci9jb29yZGluYXRlLWNvbnZlcnRlci5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoXHJcbiAge1xyXG4gICAgc2VsZWN0b3I6ICdhYy1kZWZhdWx0LXBsb250ZXInLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgPGFjLWh0bWwgKm5nSWY9XCJwbG9udGVyU2VydmljZS5wbG9udGVyU2hvd25cIiBbcHJvcHNdPVwie1xyXG4gICAgICAgIHBvc2l0aW9uOiBwbG9udGVyUG9zaXRpb25cclxuICAgICAgfVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwbG9udGVyLWNvbnRleHQtbWVudVwiPlxyXG4gICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZW50aXR5IG9mIHBsb250ZXJTZXJ2aWNlLmVudGl0ZXNUb1Bsb250ZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBsb250ZXItaXRlbVwiIChjbGljayk9XCJjaG9vc2VFbnRpdHkoZW50aXR5KVwiPnt7IGVudGl0eT8ubmFtZSB8fCBlbnRpdHk/LmlkIH19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvYWMtaHRtbD5cclxuICAgIGAsXHJcbiAgICBzdHlsZXM6IFtgXHJcbiAgICAgICAgLnBsb250ZXItY29udGV4dC1tZW51IHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTAsIDI1MCwgMjUwLCAwLjgpO1xyXG4gICAgICAgICAgICBib3gtc2hhZG93OiAxcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5wbG9udGVyLWl0ZW0ge1xyXG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDJweCAxNXB4O1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBzdGFydDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5wbG9udGVyLWl0ZW06aG92ZXIge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICBgXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgcHJvdmlkZXJzOiBbQ29vcmRpbmF0ZUNvbnZlcnRlcl0sXHJcbiAgfVxyXG4pXHJcbmV4cG9ydCBjbGFzcyBBY0RlZmF1bHRQbG9udGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHBsb250ZXJTZXJ2aWNlOiBQbG9udGVyU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICAgICAgICBwcml2YXRlIGdlb0NvbnZlcnRlcjogQ29vcmRpbmF0ZUNvbnZlcnRlcikge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnBsb250ZXJTZXJ2aWNlLnBsb250ZXJDaGFuZ2VOb3RpZmllci5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHBsb250ZXJQb3NpdGlvbigpIHtcclxuICAgIGlmICh0aGlzLnBsb250ZXJTZXJ2aWNlLnBsb250ZXJTaG93bikge1xyXG4gICAgICBjb25zdCBzY3JlZW5Qb3MgPSB0aGlzLnBsb250ZXJTZXJ2aWNlLnBsb250ZXJDbGlja1Bvc2l0aW9uLmVuZFBvc2l0aW9uO1xyXG4gICAgICByZXR1cm4gdGhpcy5nZW9Db252ZXJ0ZXIuc2NyZWVuVG9DYXJ0ZXNpYW4zKHNjcmVlblBvcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaG9vc2VFbnRpdHkoZW50aXR5OiBhbnkpIHtcclxuICAgIHRoaXMucGxvbnRlclNlcnZpY2UucmVzb2x2ZVBsb250ZXIoZW50aXR5KTtcclxuICB9XHJcbn1cclxuIl19