ngx-diagrams
Version:
> Light Weight, Modular, Typed Diagram Engine for Angular
36 lines • 3.39 kB
JavaScript
import { Directive, Input, TemplateRef, ViewContainerRef, } from '@angular/core';
class TemplateVarContext {
}
export class TemplateVarDirective {
constructor(vcRef, templateRef) {
this.vcRef = vcRef;
this.templateRef = templateRef;
this.context = new TemplateVarContext();
}
set templateVar(context) {
this.context.$implicit = this.context.templateVar = context;
this.updateView();
}
updateView() {
if (!this.view) {
this.vcRef.clear();
this.view = this.vcRef.createEmbeddedView(this.templateRef, this.context);
}
else {
this.view.markForCheck();
}
}
}
TemplateVarDirective.decorators = [
{ type: Directive, args: [{
selector: '[templateVar]',
},] }
];
TemplateVarDirective.ctorParameters = () => [
{ type: ViewContainerRef },
{ type: TemplateRef }
];
TemplateVarDirective.propDecorators = {
templateVar: [{ type: Input }]
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtdmFyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9saWJzL25neC1kaWFncmFtcy9zcmMvIiwic291cmNlcyI6WyJsaWIvdXRpbHMvdGVtcGxhdGUtdmFyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULEtBQUssRUFDTCxXQUFXLEVBQ1gsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE1BQU0sa0JBQWtCO0NBR3ZCO0FBS0QsTUFBTSxPQUFPLG9CQUFvQjtJQVcvQixZQUNZLEtBQXVCLEVBQ3ZCLFdBQTZCO1FBRDdCLFVBQUssR0FBTCxLQUFLLENBQWtCO1FBQ3ZCLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQVYvQixZQUFPLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO0lBVzFDLENBQUM7SUFUSixJQUNJLFdBQVcsQ0FBQyxPQUFZO1FBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQztRQUM1RCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQU9ELFVBQVU7UUFDUixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNkLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzNFO2FBQU07WUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQzFCO0lBQ0gsQ0FBQzs7O1lBMUJGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsZUFBZTthQUMxQjs7O1lBVkMsZ0JBQWdCO1lBRGhCLFdBQVc7OzswQkFpQlYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgRW1iZWRkZWRWaWV3UmVmLFxuICBJbnB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5jbGFzcyBUZW1wbGF0ZVZhckNvbnRleHQge1xuICAkaW1wbGljaXQ6IGFueTtcbiAgdGVtcGxhdGVWYXI6IGFueTtcbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3RlbXBsYXRlVmFyXScsXG59KVxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlVmFyRGlyZWN0aXZlIHtcbiAgdmlldzogRW1iZWRkZWRWaWV3UmVmPGFueT47XG5cbiAgcHJvdGVjdGVkIGNvbnRleHQgPSBuZXcgVGVtcGxhdGVWYXJDb250ZXh0KCk7XG5cbiAgQElucHV0KClcbiAgc2V0IHRlbXBsYXRlVmFyKGNvbnRleHQ6IGFueSkge1xuICAgIHRoaXMuY29udGV4dC4kaW1wbGljaXQgPSB0aGlzLmNvbnRleHQudGVtcGxhdGVWYXIgPSBjb250ZXh0O1xuICAgIHRoaXMudXBkYXRlVmlldygpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHZjUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByb3RlY3RlZCB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PlxuICApIHt9XG5cbiAgdXBkYXRlVmlldygpIHtcbiAgICBpZiAoIXRoaXMudmlldykge1xuICAgICAgdGhpcy52Y1JlZi5jbGVhcigpO1xuICAgICAgdGhpcy52aWV3ID0gdGhpcy52Y1JlZi5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZVJlZiwgdGhpcy5jb250ZXh0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52aWV3Lm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxufVxuIl19