@tangential/admin-console
Version:
A basic administration console
67 lines • 7.84 kB
JavaScript
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
import { AuthPermission, AuthUser } from '@tangential/authorization-service';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
import * as i2 from "@angular/material/button";
export class UserPermissionEditorComponent {
constructor() {
this.userGrantedPermissions = {};
this.userEffectivePermissions = {};
this.change = new EventEmitter(false);
}
doChange(event) {
console.log('UserPermissionEditorComponent', 'doChange');
this.change.emit(event);
}
getColor() {
let color = this.isGranted() ? 'primary' : null;
if (this.isExplicitlyGranted()) {
color = 'accent';
}
return color;
}
isGranted() {
return this.userEffectivePermissions[this.permission.$key];
}
isExplicitlyGranted() {
return this.userGrantedPermissions[this.permission.$key];
}
}
UserPermissionEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: UserPermissionEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
UserPermissionEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.10", type: UserPermissionEditorComponent, selector: "tanj-user-permission-editor", inputs: { user: "user", permission: "permission", userGrantedPermissions: "userGrantedPermissions", userEffectivePermissions: "userEffectivePermissions" }, outputs: { change: "change" }, ngImport: i0, template: `
<button mat-raised-button
*ngIf="permission"
color="{{getColor()}}"
(click)="doChange($event)"
[class.tanj-explicitly-granted]="isExplicitlyGranted()"
>{{permission.$key}}
</button>
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: UserPermissionEditorComponent, decorators: [{
type: Component,
args: [{
selector: 'tanj-user-permission-editor',
template: `
<button mat-raised-button
*ngIf="permission"
color="{{getColor()}}"
(click)="doChange($event)"
[class.tanj-explicitly-granted]="isExplicitlyGranted()"
>{{permission.$key}}
</button>
`,
changeDetection: ChangeDetectionStrategy.OnPush,
encapsulation: ViewEncapsulation.None
}]
}], ctorParameters: function () { return []; }, propDecorators: { user: [{
type: Input
}], permission: [{
type: Input
}], userGrantedPermissions: [{
type: Input
}], userEffectivePermissions: [{
type: Input
}], change: [{
type: Output
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wZXJtaXNzaW9uLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nZW50aWFsL2FkbWluLWNvbnNvbGUvc3JjL2xpYi9wYWdlcy91c2Vycy91c2VyLXBlcm1pc3Npb24tZWRpdG9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFBO0FBQ2hILE9BQU8sRUFBQyxjQUFjLEVBQUUsUUFBUSxFQUFDLE1BQU0sbUNBQW1DLENBQUE7Ozs7QUFrQjFFLE1BQU0sT0FBTyw2QkFBNkI7SUFTeEM7UUFMUywyQkFBc0IsR0FBb0IsRUFBRSxDQUFBO1FBQzVDLDZCQUF3QixHQUFvQixFQUFFLENBQUE7UUFFN0MsV0FBTSxHQUF3QixJQUFJLFlBQVksQ0FBUSxLQUFLLENBQUMsQ0FBQztJQUd2RSxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQVk7UUFDbkIsT0FBTyxDQUFDLEdBQUcsQ0FBQywrQkFBK0IsRUFBRSxVQUFVLENBQUMsQ0FBQTtRQUN4RCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUN6QixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUE7UUFDL0MsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsRUFBRTtZQUM5QixLQUFLLEdBQUcsUUFBUSxDQUFBO1NBQ2pCO1FBQ0QsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDNUQsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzFELENBQUM7OzJIQS9CVSw2QkFBNkI7K0dBQTdCLDZCQUE2Qiw4UEFadkI7Ozs7Ozs7O29CQVFDOzRGQUlQLDZCQUE2QjtrQkFkekMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQVMsNkJBQTZCO29CQUM5QyxRQUFRLEVBQVM7Ozs7Ozs7O29CQVFDO29CQUNsQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsYUFBYSxFQUFJLGlCQUFpQixDQUFDLElBQUk7aUJBQ3hDOzBFQUdVLElBQUk7c0JBQVosS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyx3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBRUksTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtBdXRoUGVybWlzc2lvbiwgQXV0aFVzZXJ9IGZyb20gJ0B0YW5nZW50aWFsL2F1dGhvcml6YXRpb24tc2VydmljZSdcbmltcG9ydCB7T2JqTWFwfSBmcm9tICdAdGFuZ2VudGlhbC9jb3JlJ1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogICAgICAgICd0YW5qLXVzZXItcGVybWlzc2lvbi1lZGl0b3InLFxuICB0ZW1wbGF0ZTogICAgICAgIGBcbiAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJwZXJtaXNzaW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJ7e2dldENvbG9yKCl9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkb0NoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnRhbmotZXhwbGljaXRseS1ncmFudGVkXT1cImlzRXhwbGljaXRseUdyYW50ZWQoKVwiXG4gICAgICAgICAgICAgICAgICAgICA+e3twZXJtaXNzaW9uLiRrZXl9fVxuICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246ICAgVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBVc2VyUGVybWlzc2lvbkVkaXRvckNvbXBvbmVudCB7XG5cbiAgQElucHV0KCkgdXNlcjogQXV0aFVzZXJcbiAgQElucHV0KCkgcGVybWlzc2lvbjogQXV0aFBlcm1pc3Npb25cbiAgQElucHV0KCkgdXNlckdyYW50ZWRQZXJtaXNzaW9uczogT2JqTWFwPGJvb2xlYW4+ID0ge31cbiAgQElucHV0KCkgdXNlckVmZmVjdGl2ZVBlcm1pc3Npb25zOiBPYmpNYXA8Ym9vbGVhbj4gPSB7fVxuXG4gIEBPdXRwdXQoKSBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PihmYWxzZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cblxuICBkb0NoYW5nZShldmVudDogRXZlbnQpIHtcbiAgICBjb25zb2xlLmxvZygnVXNlclBlcm1pc3Npb25FZGl0b3JDb21wb25lbnQnLCAnZG9DaGFuZ2UnKVxuICAgIHRoaXMuY2hhbmdlLmVtaXQoZXZlbnQpXG4gIH1cblxuICBnZXRDb2xvcigpOiBzdHJpbmcge1xuICAgIGxldCBjb2xvciA9IHRoaXMuaXNHcmFudGVkKCkgPyAncHJpbWFyeScgOiBudWxsXG4gICAgaWYgKHRoaXMuaXNFeHBsaWNpdGx5R3JhbnRlZCgpKSB7XG4gICAgICBjb2xvciA9ICdhY2NlbnQnXG4gICAgfVxuICAgIHJldHVybiBjb2xvclxuICB9XG5cbiAgaXNHcmFudGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnVzZXJFZmZlY3RpdmVQZXJtaXNzaW9uc1t0aGlzLnBlcm1pc3Npb24uJGtleV1cbiAgfVxuXG4gIGlzRXhwbGljaXRseUdyYW50ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMudXNlckdyYW50ZWRQZXJtaXNzaW9uc1t0aGlzLnBlcm1pc3Npb24uJGtleV1cbiAgfVxufVxuIl19