UNPKG

@universis/common

Version:

Universis - common directives and services

53 lines (52 loc) 4.69 kB
import { Directive, ViewContainerRef, TemplateRef, Input } from "@angular/core"; import { DiagnosticsService } from "../services/diagnostics.service"; export class IfServiceDirective { constructor(view, template, diagnosticsService) { this.view = view; this.template = template; this.diagnosticsService = diagnosticsService; } 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.diagnosticsService.hasService(this.$implicit).then((result) => { if (result == true) { this.view.createEmbeddedView(this.template); } else { this.view.clear(); } }); } } IfServiceDirective.decorators = [ { type: Directive, args: [{ selector: '[if-service]' },] } ]; /** @nocollapse */ IfServiceDirective.ctorParameters = () => [ { type: ViewContainerRef }, { type: TemplateRef }, { type: DiagnosticsService } ]; IfServiceDirective.propDecorators = { assign: [{ type: Input, args: ['if-service',] }] }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWYtc2VydmljZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdW5pdmVyc2lzL2NvbW1vbi8iLCJzb3VyY2VzIjpbInNoYXJlZC9kaXJlY3RpdmVzL2lmLXNlcnZpY2UuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQTRCLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFNckUsTUFBTTtJQUlKLFlBQ1UsSUFBc0IsRUFDdEIsUUFBMEIsRUFDMUIsa0JBQXNDO1FBRnRDLFNBQUksR0FBSixJQUFJLENBQWtCO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQWtCO1FBQzFCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7SUFDN0MsQ0FBQztJQUVKLFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNqQztJQUNILENBQUM7SUFFRCxJQUF5QixNQUFNLENBQUMsS0FBYTtRQUMzQyxJQUFJLEtBQUssRUFBRTtZQUNULE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFO2dCQUNsQixTQUFTLEVBQUUsS0FBSzthQUNqQixDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRCxJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQVcsS0FBSyxDQUFDLEtBQWE7UUFDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNqRSxJQUFJLE1BQU0sSUFBSSxJQUFJLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzdDO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDbkI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OztZQTNDRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGNBQWM7YUFDekI7Ozs7WUFONkMsZ0JBQWdCO1lBQUUsV0FBVztZQUNsRSxrQkFBa0I7OztxQkFzQnhCLEtBQUssU0FBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIFZpZXdDb250YWluZXJSZWYsIFRlbXBsYXRlUmVmLCBJbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBEaWFnbm9zdGljc1NlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvZGlhZ25vc3RpY3Muc2VydmljZVwiO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2lmLXNlcnZpY2VdJ1xufSlcbmV4cG9ydCBjbGFzcyBJZlNlcnZpY2VEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlICRpbXBsaWNpdDogc3RyaW5nO1xuICBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHZpZXc6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PixcbiAgICBwcml2YXRlIGRpYWdub3N0aWNzU2VydmljZTogRGlhZ25vc3RpY3NTZXJ2aWNlXG4gICkge31cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KCdpZi1zZXJ2aWNlJykgc2V0IGFzc2lnbih2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMsIHtcbiAgICAgICAgJGltcGxpY2l0OiB2YWx1ZVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCB2YWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy4kaW1wbGljaXQ7XG4gIH1cblxuICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLiRpbXBsaWNpdCA9IHZhbHVlO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZGlhZ25vc3RpY3NTZXJ2aWNlLmhhc1NlcnZpY2UodGhpcy4kaW1wbGljaXQpLnRoZW4oKHJlc3VsdCkgPT4ge1xuICAgICAgaWYgKHJlc3VsdCA9PSB0cnVlKSB7XG4gICAgICAgIHRoaXMudmlldy5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnZpZXcuY2xlYXIoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG59XG4iXX0=