UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

59 lines 9.64 kB
import { Component, Inject, Optional, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core'; import { InventoryService } from '@c8y/client'; import { AlertService, ContextRouteService } from '@c8y/ngx-components'; import { Router } from '@angular/router'; import { MAP_DEFAULT_CONFIG, defaultMapConfig } from '@c8y/ngx-components/map'; import { Observable, of } from 'rxjs'; import { first } from 'rxjs/operators'; import * as i0 from "@angular/core"; import * as i1 from "@c8y/client"; import * as i2 from "@c8y/ngx-components"; import * as i3 from "@angular/router"; import * as i4 from "rxjs"; export class AddLocationComponent { constructor(inventoryService, contextRouteService, defaultConfig$, router, alertService, vcRef) { this.inventoryService = inventoryService; this.contextRouteService = contextRouteService; this.defaultConfig$ = defaultConfig$; this.router = router; this.alertService = alertService; this.vcRef = vcRef; } ngOnInit() { this.vcRef.createEmbeddedView(this.templateCopy); } onClick() { const mapConfig$ = this.defaultConfig$ || of(defaultMapConfig); mapConfig$.pipe(first()).subscribe(async (config) => { const context = this.contextRouteService.activatedContextData; context.contextData.c8y_Position = { lat: config.center[0], lng: config.center[1] }; try { await this.inventoryService.update(context.contextData); } catch (ex) { this.alertService.addServerFailure(ex); } const route = this.contextRouteService.getContextRoute(context); this.contextRouteService.refreshContext(); this.router.navigateByUrl(route + '/location'); }); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AddLocationComponent, deps: [{ token: i1.InventoryService }, { token: i2.ContextRouteService }, { token: MAP_DEFAULT_CONFIG, optional: true }, { token: i3.Router }, { token: i2.AlertService }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AddLocationComponent, selector: "c8y-add-location", viewQueries: [{ propertyName: "templateCopy", first: true, predicate: ["templateCopy"], descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<ng-template #templateCopy>\n <button\n class=\"btn btn-link\"\n [title]=\"'Add location' | translate\"\n (click)=\"onClick()\"\n >\n <i c8yIcon=\"location-arrow\"></i>\n <span translate>Add location</span>\n </button>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }] }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AddLocationComponent, decorators: [{ type: Component, args: [{ selector: 'c8y-add-location', template: "<ng-template #templateCopy>\n <button\n class=\"btn btn-link\"\n [title]=\"'Add location' | translate\"\n (click)=\"onClick()\"\n >\n <i c8yIcon=\"location-arrow\"></i>\n <span translate>Add location</span>\n </button>\n</ng-template>\n" }] }], ctorParameters: () => [{ type: i1.InventoryService }, { type: i2.ContextRouteService }, { type: i4.Observable, decorators: [{ type: Optional }, { type: Inject, args: [MAP_DEFAULT_CONFIG] }] }, { type: i3.Router }, { type: i2.AlertService }, { type: i0.ViewContainerRef }], propDecorators: { templateCopy: [{ type: ViewChild, args: ['templateCopy', { read: TemplateRef, static: true }] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWxvY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xvY2F0aW9uL2FkZC1sb2NhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi9sb2NhdGlvbi9hZGQtbG9jYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBRU4sUUFBUSxFQUNSLFdBQVcsRUFDWCxTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBa0IsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXhFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQU12QyxNQUFNLE9BQU8sb0JBQW9CO0lBRy9CLFlBQ1UsZ0JBQWtDLEVBQ2xDLG1CQUF3QyxFQUd4QyxjQUE0QyxFQUM1QyxNQUFjLEVBQ2QsWUFBMEIsRUFDMUIsS0FBdUI7UUFQdkIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBR3hDLG1CQUFjLEdBQWQsY0FBYyxDQUE4QjtRQUM1QyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsVUFBSyxHQUFMLEtBQUssQ0FBa0I7SUFDOUIsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsT0FBTztRQUNMLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDL0QsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUMsTUFBTSxFQUFDLEVBQUU7WUFDaEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLG9CQUFvQixDQUFDO1lBQzlELE9BQU8sQ0FBQyxXQUFXLENBQUMsWUFBWSxHQUFHO2dCQUNqQyxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQ3JCLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQzthQUN0QixDQUFDO1lBQ0YsSUFBSSxDQUFDO2dCQUNILE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBNkIsQ0FBQyxDQUFDO1lBQzVFLENBQUM7WUFBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO2dCQUNaLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDekMsQ0FBQztZQUVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDaEUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQzFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUMsQ0FBQztRQUNqRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBcENVLG9CQUFvQixxRkFPckIsa0JBQWtCO21HQVBqQixvQkFBb0IsaUpBQ0ksV0FBVywyQ0N0QmhELGdRQVVBOzs0RkRXYSxvQkFBb0I7a0JBSmhDLFNBQVM7K0JBQ0Usa0JBQWtCOzswQkFTekIsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyxrQkFBa0I7d0hBTm9DLFlBQVk7c0JBQTNFLFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbmplY3QsXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJTWFuYWdlZE9iamVjdCwgSW52ZW50b3J5U2VydmljZSB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IEFsZXJ0U2VydmljZSwgQ29udGV4dFJvdXRlU2VydmljZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBNYXBEZWZhdWx0Q29uZmlnIH0gZnJvbSAnQGM4eS9vcHRpb25zJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBNQVBfREVGQVVMVF9DT05GSUcsIGRlZmF1bHRNYXBDb25maWcgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL21hcCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1hZGQtbG9jYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vYWRkLWxvY2F0aW9uLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBZGRMb2NhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBWaWV3Q2hpbGQoJ3RlbXBsYXRlQ29weScsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KSB0ZW1wbGF0ZUNvcHk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBpbnZlbnRvcnlTZXJ2aWNlOiBJbnZlbnRvcnlTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29udGV4dFJvdXRlU2VydmljZTogQ29udGV4dFJvdXRlU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoTUFQX0RFRkFVTFRfQ09ORklHKVxuICAgIHByaXZhdGUgZGVmYXVsdENvbmZpZyQ6IE9ic2VydmFibGU8TWFwRGVmYXVsdENvbmZpZz4sXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgdmNSZWY6IFZpZXdDb250YWluZXJSZWZcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudmNSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGVDb3B5KTtcbiAgfVxuXG4gIG9uQ2xpY2soKTogdm9pZCB7XG4gICAgY29uc3QgbWFwQ29uZmlnJCA9IHRoaXMuZGVmYXVsdENvbmZpZyQgfHwgb2YoZGVmYXVsdE1hcENvbmZpZyk7XG4gICAgbWFwQ29uZmlnJC5waXBlKGZpcnN0KCkpLnN1YnNjcmliZShhc3luYyBjb25maWcgPT4ge1xuICAgICAgY29uc3QgY29udGV4dCA9IHRoaXMuY29udGV4dFJvdXRlU2VydmljZS5hY3RpdmF0ZWRDb250ZXh0RGF0YTtcbiAgICAgIGNvbnRleHQuY29udGV4dERhdGEuYzh5X1Bvc2l0aW9uID0ge1xuICAgICAgICBsYXQ6IGNvbmZpZy5jZW50ZXJbMF0sXG4gICAgICAgIGxuZzogY29uZmlnLmNlbnRlclsxXVxuICAgICAgfTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHRoaXMuaW52ZW50b3J5U2VydmljZS51cGRhdGUoY29udGV4dC5jb250ZXh0RGF0YSBhcyBJTWFuYWdlZE9iamVjdCk7XG4gICAgICB9IGNhdGNoIChleCkge1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRTZXJ2ZXJGYWlsdXJlKGV4KTtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgcm91dGUgPSB0aGlzLmNvbnRleHRSb3V0ZVNlcnZpY2UuZ2V0Q29udGV4dFJvdXRlKGNvbnRleHQpO1xuICAgICAgdGhpcy5jb250ZXh0Um91dGVTZXJ2aWNlLnJlZnJlc2hDb250ZXh0KCk7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHJvdXRlICsgJy9sb2NhdGlvbicpO1xuICAgIH0pO1xuICB9XG59XG4iLCI8bmctdGVtcGxhdGUgI3RlbXBsYXRlQ29weT5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rXCJcbiAgICBbdGl0bGVdPVwiJ0FkZCBsb2NhdGlvbicgfCB0cmFuc2xhdGVcIlxuICAgIChjbGljayk9XCJvbkNsaWNrKClcIlxuICA+XG4gICAgPGkgYzh5SWNvbj1cImxvY2F0aW9uLWFycm93XCI+PC9pPlxuICAgIDxzcGFuIHRyYW5zbGF0ZT5BZGQgbG9jYXRpb248L3NwYW4+XG4gIDwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==