UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

44 lines 11.4 kB
import { Component } from '@angular/core'; import { BsModalService } from 'ngx-bootstrap/modal'; import { LoginService } from '../login'; import { UserEditModalComponent } from './user-edit-modal.component'; import { UserMenuService } from './user-menu.service'; import { HeaderService } from '../header'; import { AppStateService } from '../common'; import * as i0 from "@angular/core"; import * as i1 from "../common"; import * as i2 from "ngx-bootstrap/modal"; import * as i3 from "../login"; import * as i4 from "./user-menu.service"; import * as i5 from "../header"; import * as i6 from "../common/outlet.directive"; import * as i7 from "@angular/common"; import * as i8 from "./user-menu-item.component"; import * as i9 from "../i18n/c8y-translate.pipe"; export class UserMenuOutletComponent { constructor(ui, bsModalService, loginService, userMenu, headerService) { this.ui = ui; this.bsModalService = bsModalService; this.loginService = loginService; this.userMenu = userMenu; this.headerService = headerService; this.items$ = this.userMenu.items$; this.open$ = this.headerService.rightDrawerOpen$; } async editUser() { this.bsModalService.show(UserEditModalComponent, { ariaDescribedby: 'modal-body', ariaLabelledBy: 'modal-title' }); } async logout() { await this.loginService.logout(); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserMenuOutletComponent, deps: [{ token: i1.AppStateService }, { token: i2.BsModalService }, { token: i3.LoginService }, { token: i4.UserMenuService }, { token: i5.HeaderService }], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UserMenuOutletComponent, selector: "c8y-user-menu-outlet", ngImport: i0, template: "<ng-container *ngIf=\"items$ | async as items\">\n <div\n class=\"p-t-8 p-b-8\"\n *ngIf=\"items.length\"\n >\n <ul class=\"list-unstyled m-b-0\">\n <ng-container *ngFor=\"let item of items\">\n <ng-container *ngIf=\"item.template\">\n <ng-container *c8yOutlet=\"item.template\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!item.template\">\n <li>\n <button\n class=\"c8y-right-drawer__link\"\n [attr.aria-label]=\"item.label | translate\"\n [attr.tabindex]=\"(open$ | async) ? '0' : '-1'\"\n type=\"button\"\n (click)=\"item.click()\"\n [attr.href]=\"item.link\"\n [attr.target]=\"item.target\"\n >\n {{ item.label | translate }}\n </button>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n </div>\n</ng-container>\n\n<!-- the default items -->\n<c8y-user-menu-item\n [icon]=\"'user-menu-male'\"\n *ngIf=\"(ui.currentUser | async) && (ui.currentUser | async).id !== 'NO_LOGIN'\"\n [label]=\"'User settings' | translate\"\n [priority]=\"20\"\n [dataCy]=\"'user-menu-user-settings-button'\"\n (click)=\"editUser()\"\n></c8y-user-menu-item>\n<c8y-user-menu-item\n [icon]=\"'sign-out'\"\n *ngIf=\"(ui.currentUser | async) && (ui.currentUser | async).id !== 'NO_LOGIN'\"\n [label]=\"'Logout' | translate\"\n [dataCy]=\"'user-menu-logout-button'\"\n (click)=\"logout()\"\n></c8y-user-menu-item>\n", dependencies: [{ kind: "directive", type: i6.OutletDirective, selector: "[c8yOutlet]", inputs: ["c8yOutlet", "c8yOutletProperties", "c8yOutletInjector"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i8.UserMenuItemComponent, selector: "c8y-user-menu-item", inputs: ["icon", "label", "link", "target", "priority", "dataCy"], outputs: ["click"] }, { kind: "pipe", type: i9.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }] }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserMenuOutletComponent, decorators: [{ type: Component, args: [{ selector: 'c8y-user-menu-outlet', template: "<ng-container *ngIf=\"items$ | async as items\">\n <div\n class=\"p-t-8 p-b-8\"\n *ngIf=\"items.length\"\n >\n <ul class=\"list-unstyled m-b-0\">\n <ng-container *ngFor=\"let item of items\">\n <ng-container *ngIf=\"item.template\">\n <ng-container *c8yOutlet=\"item.template\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!item.template\">\n <li>\n <button\n class=\"c8y-right-drawer__link\"\n [attr.aria-label]=\"item.label | translate\"\n [attr.tabindex]=\"(open$ | async) ? '0' : '-1'\"\n type=\"button\"\n (click)=\"item.click()\"\n [attr.href]=\"item.link\"\n [attr.target]=\"item.target\"\n >\n {{ item.label | translate }}\n </button>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n </div>\n</ng-container>\n\n<!-- the default items -->\n<c8y-user-menu-item\n [icon]=\"'user-menu-male'\"\n *ngIf=\"(ui.currentUser | async) && (ui.currentUser | async).id !== 'NO_LOGIN'\"\n [label]=\"'User settings' | translate\"\n [priority]=\"20\"\n [dataCy]=\"'user-menu-user-settings-button'\"\n (click)=\"editUser()\"\n></c8y-user-menu-item>\n<c8y-user-menu-item\n [icon]=\"'sign-out'\"\n *ngIf=\"(ui.currentUser | async) && (ui.currentUser | async).id !== 'NO_LOGIN'\"\n [label]=\"'Logout' | translate\"\n [dataCy]=\"'user-menu-logout-button'\"\n (click)=\"logout()\"\n></c8y-user-menu-item>\n" }] }], ctorParameters: () => [{ type: i1.AppStateService }, { type: i2.BsModalService }, { type: i3.LoginService }, { type: i4.UserMenuService }, { type: i5.HeaderService }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1tZW51LW91dGxldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL3VzZXIvdXNlci1tZW51LW91dGxldC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL3VzZXIvdXNlci1tZW51LW91dGxldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBR3JFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7Ozs7Ozs7O0FBTTVDLE1BQU0sT0FBTyx1QkFBdUI7SUFJbEMsWUFDUyxFQUFtQixFQUNsQixjQUE4QixFQUM5QixZQUEwQixFQUMxQixRQUF5QixFQUN6QixhQUE0QjtRQUo3QixPQUFFLEdBQUYsRUFBRSxDQUFpQjtRQUNsQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFDekIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFFcEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUNuQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUM7SUFDbkQsQ0FBQztJQUVELEtBQUssQ0FBQyxRQUFRO1FBQ1osSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUU7WUFDL0MsZUFBZSxFQUFFLFlBQVk7WUFDN0IsY0FBYyxFQUFFLGFBQWE7U0FDOUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNO1FBQ1YsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ25DLENBQUM7K0dBeEJVLHVCQUF1QjttR0FBdkIsdUJBQXVCLDREQ2RwQyxtZ0RBOENBOzs0RkRoQ2EsdUJBQXVCO2tCQUpuQyxTQUFTOytCQUNFLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnNNb2RhbFNlcnZpY2UgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmltcG9ydCB7IExvZ2luU2VydmljZSB9IGZyb20gJy4uL2xvZ2luJztcbmltcG9ydCB7IFVzZXJFZGl0TW9kYWxDb21wb25lbnQgfSBmcm9tICcuL3VzZXItZWRpdC1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXNlck1lbnVJdGVtIH0gZnJvbSAnLi91c2VyLm1vZGVsJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFVzZXJNZW51U2VydmljZSB9IGZyb20gJy4vdXNlci1tZW51LnNlcnZpY2UnO1xuaW1wb3J0IHsgSGVhZGVyU2VydmljZSB9IGZyb20gJy4uL2hlYWRlcic7XG5pbXBvcnQgeyBBcHBTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktdXNlci1tZW51LW91dGxldCcsXG4gIHRlbXBsYXRlVXJsOiAnLi91c2VyLW1lbnUtb3V0bGV0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBVc2VyTWVudU91dGxldENvbXBvbmVudCB7XG4gIGl0ZW1zJDogT2JzZXJ2YWJsZTxVc2VyTWVudUl0ZW1bXT47XG4gIG9wZW4kOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB1aTogQXBwU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgYnNNb2RhbFNlcnZpY2U6IEJzTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgbG9naW5TZXJ2aWNlOiBMb2dpblNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1c2VyTWVudTogVXNlck1lbnVTZXJ2aWNlLFxuICAgIHByaXZhdGUgaGVhZGVyU2VydmljZTogSGVhZGVyU2VydmljZVxuICApIHtcbiAgICB0aGlzLml0ZW1zJCA9IHRoaXMudXNlck1lbnUuaXRlbXMkO1xuICAgIHRoaXMub3BlbiQgPSB0aGlzLmhlYWRlclNlcnZpY2UucmlnaHREcmF3ZXJPcGVuJDtcbiAgfVxuXG4gIGFzeW5jIGVkaXRVc2VyKCkge1xuICAgIHRoaXMuYnNNb2RhbFNlcnZpY2Uuc2hvdyhVc2VyRWRpdE1vZGFsQ29tcG9uZW50LCB7XG4gICAgICBhcmlhRGVzY3JpYmVkYnk6ICdtb2RhbC1ib2R5JyxcbiAgICAgIGFyaWFMYWJlbGxlZEJ5OiAnbW9kYWwtdGl0bGUnXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBsb2dvdXQoKSB7XG4gICAgYXdhaXQgdGhpcy5sb2dpblNlcnZpY2UubG9nb3V0KCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtcyQgfCBhc3luYyBhcyBpdGVtc1wiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJwLXQtOCBwLWItOFwiXG4gICAgKm5nSWY9XCJpdGVtcy5sZW5ndGhcIlxuICA+XG4gICAgPHVsIGNsYXNzPVwibGlzdC11bnN0eWxlZCBtLWItMFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS50ZW1wbGF0ZVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKmM4eU91dGxldD1cIml0ZW0udGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXRlbS50ZW1wbGF0ZVwiPlxuICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJjOHktcmlnaHQtZHJhd2VyX19saW5rXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJpdGVtLmxhYmVsIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwiKG9wZW4kIHwgYXN5bmMpID8gJzAnIDogJy0xJ1wiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiaXRlbS5jbGljaygpXCJcbiAgICAgICAgICAgICAgW2F0dHIuaHJlZl09XCJpdGVtLmxpbmtcIlxuICAgICAgICAgICAgICBbYXR0ci50YXJnZXRdPVwiaXRlbS50YXJnZXRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBpdGVtLmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvdWw+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG5cbjwhLS0gdGhlIGRlZmF1bHQgaXRlbXMgLS0+XG48Yzh5LXVzZXItbWVudS1pdGVtXG4gIFtpY29uXT1cIid1c2VyLW1lbnUtbWFsZSdcIlxuICAqbmdJZj1cIih1aS5jdXJyZW50VXNlciB8IGFzeW5jKSAmJiAodWkuY3VycmVudFVzZXIgfCBhc3luYykuaWQgIT09ICdOT19MT0dJTidcIlxuICBbbGFiZWxdPVwiJ1VzZXIgc2V0dGluZ3MnIHwgdHJhbnNsYXRlXCJcbiAgW3ByaW9yaXR5XT1cIjIwXCJcbiAgW2RhdGFDeV09XCIndXNlci1tZW51LXVzZXItc2V0dGluZ3MtYnV0dG9uJ1wiXG4gIChjbGljayk9XCJlZGl0VXNlcigpXCJcbj48L2M4eS11c2VyLW1lbnUtaXRlbT5cbjxjOHktdXNlci1tZW51LWl0ZW1cbiAgW2ljb25dPVwiJ3NpZ24tb3V0J1wiXG4gICpuZ0lmPVwiKHVpLmN1cnJlbnRVc2VyIHwgYXN5bmMpICYmICh1aS5jdXJyZW50VXNlciB8IGFzeW5jKS5pZCAhPT0gJ05PX0xPR0lOJ1wiXG4gIFtsYWJlbF09XCInTG9nb3V0JyB8IHRyYW5zbGF0ZVwiXG4gIFtkYXRhQ3ldPVwiJ3VzZXItbWVudS1sb2dvdXQtYnV0dG9uJ1wiXG4gIChjbGljayk9XCJsb2dvdXQoKVwiXG4+PC9jOHktdXNlci1tZW51LWl0ZW0+XG4iXX0=