@universis/common
Version:
Universis - common directives and services
60 lines • 7.27 kB
JavaScript
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=