UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

40 lines 7.84 kB
import { Component, Input, Output, EventEmitter } from '@angular/core'; import { UserService } from '@c8y/client'; import { AlertService } from '../alert/alert.service'; import { gettext } from '../i18n/gettext'; import * as i0 from "@angular/core"; import * as i1 from "@c8y/client"; import * as i2 from "../alert/alert.service"; import * as i3 from "../common/icon.directive"; import * as i4 from "../i18n/c8y-translate.directive"; import * as i5 from "ngx-bootstrap/popover"; import * as i6 from "../i18n/c8y-translate.pipe"; export class UserTotpRevokeComponent { constructor(users, alert) { this.users = users; this.alert = alert; this.revokeEmitter = new EventEmitter(); } async revoke() { try { await this.users.totpRevokeSecret(this.user); this.alert.success(gettext('User TOTP secret revoked.')); this.revokeEmitter.next(); } catch (e) { this.alert.addServerFailure(e); } } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserTotpRevokeComponent, deps: [{ token: i1.UserService }, { token: i2.AlertService }], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UserTotpRevokeComponent, selector: "c8y-user-totp-revoke", inputs: { user: "user" }, outputs: { revokeEmitter: "revoke" }, ngImport: i0, template: "<button\n class=\"btn btn-default\"\n type=\"button\"\n [popoverTitle]=\"'Revoke TOTP secret' | translate\"\n [popover]=\"confirm\"\n #popover=\"bs-popover\"\n placement=\"bottom\"\n>\n <i c8yIcon=\"key\"></i>\n {{ 'Revoke TOTP secret' | translate }}\n</button>\n\n<ng-template #confirm>\n <p class=\"m-b-16\" translate>\n This action will revoke the user's stored TOTP secret which will require a new setup.\n </p>\n <button\n class=\"btn btn-default\"\n type=\"button\"\n title=\"{{ 'Cancel' | translate }}\"\n (click)=\"popover.hide()\"\n translate\n >\n Cancel\n </button>\n <button\n class=\"btn btn-danger\"\n type=\"button\"\n title=\"{{ 'Revoke' | translate }}\"\n (click)=\"revoke(); popover.hide()\"\n translate\n >\n Revoke\n </button>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i4.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i5.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "pipe", type: i6.C8yTranslatePipe, name: "translate" }] }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserTotpRevokeComponent, decorators: [{ type: Component, args: [{ selector: 'c8y-user-totp-revoke', template: "<button\n class=\"btn btn-default\"\n type=\"button\"\n [popoverTitle]=\"'Revoke TOTP secret' | translate\"\n [popover]=\"confirm\"\n #popover=\"bs-popover\"\n placement=\"bottom\"\n>\n <i c8yIcon=\"key\"></i>\n {{ 'Revoke TOTP secret' | translate }}\n</button>\n\n<ng-template #confirm>\n <p class=\"m-b-16\" translate>\n This action will revoke the user's stored TOTP secret which will require a new setup.\n </p>\n <button\n class=\"btn btn-default\"\n type=\"button\"\n title=\"{{ 'Cancel' | translate }}\"\n (click)=\"popover.hide()\"\n translate\n >\n Cancel\n </button>\n <button\n class=\"btn btn-danger\"\n type=\"button\"\n title=\"{{ 'Revoke' | translate }}\"\n (click)=\"revoke(); popover.hide()\"\n translate\n >\n Revoke\n </button>\n</ng-template>\n" }] }], ctorParameters: () => [{ type: i1.UserService }, { type: i2.AlertService }], propDecorators: { user: [{ type: Input }], revokeEmitter: [{ type: Output, args: ['revoke'] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci10b3RwLXJldm9rZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL3VzZXIvdXNlci10b3RwLXJldm9rZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL3VzZXIvdXNlci10b3RwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFTLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7OztBQU0xQyxNQUFNLE9BQU8sdUJBQXVCO0lBR2xDLFlBQ1UsS0FBa0IsRUFDbEIsS0FBbUI7UUFEbkIsVUFBSyxHQUFMLEtBQUssQ0FBYTtRQUNsQixVQUFLLEdBQUwsS0FBSyxDQUFjO1FBSFgsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBSXhELENBQUM7SUFFSixLQUFLLENBQUMsTUFBTTtRQUNWLElBQUksQ0FBQztZQUNILE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLDJCQUEyQixDQUFDLENBQUMsQ0FBQztZQUN6RCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzVCLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqQyxDQUFDO0lBQ0gsQ0FBQzsrR0FoQlUsdUJBQXVCO21HQUF2Qix1QkFBdUIsNEhDVHBDLHF6QkFtQ0E7OzRGRDFCYSx1QkFBdUI7a0JBSm5DLFNBQVM7K0JBQ0Usc0JBQXNCOzJHQUl2QixJQUFJO3NCQUFaLEtBQUs7Z0JBQ1ksYUFBYTtzQkFBOUIsTUFBTTt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElVc2VyLCBVc2VyU2VydmljZSB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4uL2FsZXJ0L2FsZXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHsgZ2V0dGV4dCB9IGZyb20gJy4uL2kxOG4vZ2V0dGV4dCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS11c2VyLXRvdHAtcmV2b2tlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXItdG90cC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgVXNlclRvdHBSZXZva2VDb21wb25lbnQge1xuICBASW5wdXQoKSB1c2VyOiBJVXNlcjtcbiAgQE91dHB1dCgncmV2b2tlJykgcmV2b2tlRW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB1c2VyczogVXNlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydDogQWxlcnRTZXJ2aWNlXG4gICkge31cblxuICBhc3luYyByZXZva2UoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMudXNlcnMudG90cFJldm9rZVNlY3JldCh0aGlzLnVzZXIpO1xuICAgICAgdGhpcy5hbGVydC5zdWNjZXNzKGdldHRleHQoJ1VzZXIgVE9UUCBzZWNyZXQgcmV2b2tlZC4nKSk7XG4gICAgICB0aGlzLnJldm9rZUVtaXR0ZXIubmV4dCgpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMuYWxlcnQuYWRkU2VydmVyRmFpbHVyZShlKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxidXR0b25cbiAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHRcIlxuICB0eXBlPVwiYnV0dG9uXCJcbiAgW3BvcG92ZXJUaXRsZV09XCInUmV2b2tlIFRPVFAgc2VjcmV0JyB8IHRyYW5zbGF0ZVwiXG4gIFtwb3BvdmVyXT1cImNvbmZpcm1cIlxuICAjcG9wb3Zlcj1cImJzLXBvcG92ZXJcIlxuICBwbGFjZW1lbnQ9XCJib3R0b21cIlxuPlxuICA8aSBjOHlJY29uPVwia2V5XCI+PC9pPlxuICB7eyAnUmV2b2tlIFRPVFAgc2VjcmV0JyB8IHRyYW5zbGF0ZSB9fVxuPC9idXR0b24+XG5cbjxuZy10ZW1wbGF0ZSAjY29uZmlybT5cbiAgPHAgY2xhc3M9XCJtLWItMTZcIiB0cmFuc2xhdGU+XG4gICAgVGhpcyBhY3Rpb24gd2lsbCByZXZva2UgdGhlIHVzZXIncyBzdG9yZWQgVE9UUCBzZWNyZXQgd2hpY2ggd2lsbCByZXF1aXJlIGEgbmV3IHNldHVwLlxuICA8L3A+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdFwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgdGl0bGU9XCJ7eyAnQ2FuY2VsJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgKGNsaWNrKT1cInBvcG92ZXIuaGlkZSgpXCJcbiAgICB0cmFuc2xhdGVcbiAgPlxuICAgIENhbmNlbFxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwiYnRuIGJ0bi1kYW5nZXJcIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIHRpdGxlPVwie3sgJ1Jldm9rZScgfCB0cmFuc2xhdGUgfX1cIlxuICAgIChjbGljayk9XCJyZXZva2UoKTsgcG9wb3Zlci5oaWRlKClcIlxuICAgIHRyYW5zbGF0ZVxuICA+XG4gICAgUmV2b2tlXG4gIDwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==