UNPKG

@universis/common

Version:

Universis - common directives and services

60 lines 7.27 kB
import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core'; import { ActivatedUser } from '../../auth/services/activated-user.service'; import { AuthGuard } from '../../auth/guards/auth.guard'; import * as i0 from "@angular/core"; import * as i1 from "../../auth/services/activated-user.service"; import * as i2 from "../../auth/guards/auth.guard"; // tslint:disable directive-selector export class IfLocationDirective { constructor(activateUser, view, authGuard, template) { this.activateUser = activateUser; this.view = view; this.authGuard = authGuard; this.template = template; } ngOnDestroy() { if (this.subscription) { this.subscription.unsubscribe(); } } set assign(value) { if (value) { Object.assign(this, { $implicit: value }); } } get value() { return this.$implicit; } set value(value) { this.$implicit = value; } ngAfterViewInit() { this.subscription = this.activateUser.user.subscribe((user) => { if (this.$implicit == null) { return this.view.clear(); } const locationPermission = this.authGuard.canActivateLocation(this.$implicit, user); const mask = locationPermission && locationPermission.mask; if (mask != null && ((mask & 1) === 0)) { this.view.clear(); } else { this.view.createEmbeddedView(this.template); } }); } } IfLocationDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: IfLocationDirective, deps: [{ token: i1.ActivatedUser }, { token: i0.ViewContainerRef }, { token: i2.AuthGuard }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); IfLocationDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: IfLocationDirective, selector: "[if-location]", inputs: { assign: ["if-location", "assign"] }, ngImport: i0 }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: IfLocationDirective, decorators: [{ type: Directive, args: [{ selector: '[if-location]' }] }], ctorParameters: function () { return [{ type: i1.ActivatedUser }, { type: i0.ViewContainerRef }, { type: i2.AuthGuard }, { type: i0.TemplateRef }]; }, propDecorators: { assign: [{ type: Input, args: ['if-location'] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWYtbG9jYXRpb24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NoYXJlZC9kaXJlY3RpdmVzL2lmLWxvY2F0aW9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxLQUFLLEVBQWEsV0FBVyxFQUFFLGdCQUFnQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7QUFHekQsb0NBQW9DO0FBSXBDLE1BQU0sT0FBTyxtQkFBbUI7SUFLNUIsWUFBb0IsWUFBMkIsRUFDbkMsSUFBc0IsRUFDdEIsU0FBb0IsRUFDcEIsUUFBMEI7UUFIbEIsaUJBQVksR0FBWixZQUFZLENBQWU7UUFDbkMsU0FBSSxHQUFKLElBQUksQ0FBa0I7UUFDdEIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixhQUFRLEdBQVIsUUFBUSxDQUFrQjtJQUV0QyxDQUFDO0lBQ0QsV0FBVztRQUNQLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ25DO0lBQ0wsQ0FBQztJQUVELElBQTBCLE1BQU0sQ0FBQyxLQUFhO1FBQzFDLElBQUksS0FBSyxFQUFFO1lBQ1AsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7Z0JBQ2hCLFNBQVMsRUFBRSxLQUFLO2FBQ25CLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQztJQUVELElBQVcsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBVyxLQUFLLENBQUMsS0FBeUI7UUFDdEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQzFELElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUU7Z0JBQ3hCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUM1QjtZQUNELE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3BGLE1BQU0sSUFBSSxHQUFHLGtCQUFrQixJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQztZQUMzRCxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUNyQjtpQkFBTTtnQkFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUMvQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7aUhBOUNRLG1CQUFtQjtxR0FBbkIsbUJBQW1COzRGQUFuQixtQkFBbUI7a0JBSC9CLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGVBQWU7aUJBQzVCO3FMQWtCNkIsTUFBTTtzQkFBL0IsS0FBSzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIElucHV0LCBPbkRlc3Ryb3ksIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFVzZXIgfSBmcm9tICcuLi8uLi9hdXRoL3NlcnZpY2VzL2FjdGl2YXRlZC11c2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXV0aEd1YXJkIH0gZnJvbSAnLi4vLi4vYXV0aC9ndWFyZHMvYXV0aC5ndWFyZCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuLy8gdHNsaW50OmRpc2FibGUgZGlyZWN0aXZlLXNlbGVjdG9yXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tpZi1sb2NhdGlvbl0nXG59KVxuZXhwb3J0IGNsYXNzIElmTG9jYXRpb25EaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgcHJpdmF0ZSAkaW1wbGljaXQ/OiBzdHJpbmc7XG4gICAgc3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBhY3RpdmF0ZVVzZXI6IEFjdGl2YXRlZFVzZXIsXG4gICAgICAgIHByaXZhdGUgdmlldzogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgcHJpdmF0ZSBhdXRoR3VhcmQ6IEF1dGhHdWFyZCxcbiAgICAgICAgcHJpdmF0ZSB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgICAgICBcbiAgICB9XG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCgnaWYtbG9jYXRpb24nKSBzZXQgYXNzaWduKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIHtcbiAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IHZhbHVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdmFsdWUoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuJGltcGxpY2l0O1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLiRpbXBsaWNpdCA9IHZhbHVlO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmFjdGl2YXRlVXNlci51c2VyLnN1YnNjcmliZSgodXNlcikgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuJGltcGxpY2l0ID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy52aWV3LmNsZWFyKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBsb2NhdGlvblBlcm1pc3Npb24gPSB0aGlzLmF1dGhHdWFyZC5jYW5BY3RpdmF0ZUxvY2F0aW9uKHRoaXMuJGltcGxpY2l0LCB1c2VyKTtcbiAgICAgICAgICAgIGNvbnN0IG1hc2sgPSBsb2NhdGlvblBlcm1pc3Npb24gJiYgbG9jYXRpb25QZXJtaXNzaW9uLm1hc2s7XG4gICAgICAgICAgICBpZiAobWFzayAhPSBudWxsICYmICgobWFzayAmIDEpID09PSAwKSkge1xuICAgICAgICAgICAgICAgIHRoaXMudmlldy5jbGVhcigpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZpZXcuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbn1cbi8vIHRzbGludDplbmFibGUgZGlyZWN0aXZlLXNlbGVjdG9yXG4iXX0=