dynamic-mat-table
Version:
dynamic-mat-table is an Angular component for presenting large and complex data with a lightning fast performance (at least 10x faster) and excellent level of control over the presentation.
34 lines • 2.85 kB
JavaScript
import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';
export class TemplateOrStringDirective {
constructor(defaultTpl, vcr) {
this.defaultTpl = defaultTpl;
this.vcr = vcr;
}
set templateOrString(content) {
let template = content instanceof TemplateRef ? content : this.defaultTpl;
this.vcr.clear();
this.vcr.createEmbeddedView(template);
}
}
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
TemplateOrStringDirective.decorators = [
{ type: Directive, args: [{
selector: '[templateOrString]'
},] }
];
/**
* @type {function(): !Array<(null|{
* type: ?,
* decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>),
* })>}
* @nocollapse
*/
TemplateOrStringDirective.ctorParameters = () => [
{ type: TemplateRef },
{ type: ViewContainerRef }
];
/** @type {!Object<string, !Array<{type: !Function, args: (undefined|!Array<?>)}>>} */
TemplateOrStringDirective.propDecorators = {
templateOrString: [{ type: Input }]
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtb3Itc3RyaW5nLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2R5bmFtaWMtbWF0LXRhYmxlL3NyYy9saWIvdG9vbHRpcC90ZW1wbGF0ZS1vci1zdHJpbmcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUtoRixNQUFNLE9BQU8seUJBQXlCO0lBUXBDLFlBQW9CLFVBQTRCLEVBQVUsR0FBcUI7UUFBM0QsZUFBVSxHQUFWLFVBQVUsQ0FBa0I7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFrQjtJQUFJLENBQUM7SUFOcEYsSUFBYSxnQkFBZ0IsQ0FBQyxPQUFrQztRQUM5RCxJQUFJLFFBQVEsR0FBRyxPQUFPLFlBQVksV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDMUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7Ozs7WUFURixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjthQUMvQjs7Ozs7Ozs7OztZQUowQixXQUFXO1lBQUUsZ0JBQWdCOzs7OytCQU9yRCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW3RlbXBsYXRlT3JTdHJpbmddJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVPclN0cmluZ0RpcmVjdGl2ZSB7XHJcblxyXG4gIEBJbnB1dCgpIHNldCB0ZW1wbGF0ZU9yU3RyaW5nKGNvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4pIHtcclxuICAgIGxldCB0ZW1wbGF0ZSA9IGNvbnRlbnQgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZiA/IGNvbnRlbnQgOiB0aGlzLmRlZmF1bHRUcGw7XHJcbiAgICB0aGlzLnZjci5jbGVhcigpO1xyXG4gICAgdGhpcy52Y3IuY3JlYXRlRW1iZWRkZWRWaWV3KHRlbXBsYXRlKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGVmYXVsdFRwbDogVGVtcGxhdGVSZWY8YW55PiwgcHJpdmF0ZSB2Y3I6IFZpZXdDb250YWluZXJSZWYpIHsgfVxyXG5cclxufVxyXG4iXX0=