UNPKG

ngx-dynamic-compiler

Version:

155 lines 10.7 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Component, ViewChild, ViewContainerRef, Compiler, NgModule, Input, Output, EventEmitter } from '@angular/core'; import { CommonModule } from '@angular/common'; var NgxDynamicCompilerComponent = /** @class */ (function () { function NgxDynamicCompilerComponent(compiler) { this.compiler = compiler; this.Data = {}; this.Template = ''; this.Output = new EventEmitter(); this.html = ''; this.returnUrl = '/'; this.showFilter = true; } /** * @return {?} */ NgxDynamicCompilerComponent.prototype.ngOnInit = /** * @return {?} */ function () { this.compileTemplate(this.Data); }; /** * @return {?} */ NgxDynamicCompilerComponent.prototype.ngOnChanges = /** * @return {?} */ function () { }; /** * @param {?} data * @return {?} */ NgxDynamicCompilerComponent.prototype.compileTemplate = /** * @param {?} data * @return {?} */ function (data) { /** @type {?} */ var metaData = { // template:this.template, template: this.Template, selector: 'ptv-template' }; /** @type {?} */ var factory = this.createComponentFactorySync(this.compiler, metaData, null, data); if (this.componentRef) { this.componentRef.destroy(); this.componentRef = null; } this.componentRef = this.container.createComponent(factory); }; /** * @param {?} compiler * @param {?} metadata * @param {?} componentClass * @param {?} data * @return {?} */ NgxDynamicCompilerComponent.prototype.createComponentFactorySync = /** * @param {?} compiler * @param {?} metadata * @param {?} componentClass * @param {?} data * @return {?} */ function (compiler, metadata, componentClass, data) { /** @type {?} */ var cmpClass = componentClass || /** @class */ (function () { function RuntimeComponent() { this.Data = data; } return RuntimeComponent; }()); /** @type {?} */ var decoratedCmp = Component(metadata)(cmpClass); var RuntimeModule = /** @class */ (function () { function RuntimeModule() { } RuntimeModule.decorators = [ { type: NgModule, args: [{ imports: [CommonModule], declarations: [decoratedCmp] },] }, ]; return RuntimeModule; }()); /** @type {?} */ var module = compiler.compileModuleAndAllComponentsSync(RuntimeModule); console.log(JSON.stringify(module.componentFactories)); return module.componentFactories.find((/** * @param {?} el * @return {?} */ function (el) { return el.componentType == decoratedCmp; })); }; /** * @return {?} */ NgxDynamicCompilerComponent.prototype.ngOnDestroy = /** * @return {?} */ function () { if (this.componentRef) { this.componentRef.destroy(); this.componentRef = null; ; } }; NgxDynamicCompilerComponent.decorators = [ { type: Component, args: [{ selector: 'ngx-dc', template: "\n <div #container>\n\n </div>\n " }] } ]; /** @nocollapse */ NgxDynamicCompilerComponent.ctorParameters = function () { return [ { type: Compiler } ]; }; NgxDynamicCompilerComponent.propDecorators = { container: [{ type: ViewChild, args: ['container', { read: ViewContainerRef },] }], Data: [{ type: Input }], Template: [{ type: Input }], Output: [{ type: Output }] }; return NgxDynamicCompilerComponent; }()); export { NgxDynamicCompilerComponent }; if (false) { /** @type {?} */ NgxDynamicCompilerComponent.prototype.container; /** @type {?} */ NgxDynamicCompilerComponent.prototype.id; /** @type {?} */ NgxDynamicCompilerComponent.prototype.Data; /** @type {?} */ NgxDynamicCompilerComponent.prototype.Template; /** @type {?} */ NgxDynamicCompilerComponent.prototype.Output; /** @type {?} */ NgxDynamicCompilerComponent.prototype.html; /** @type {?} */ NgxDynamicCompilerComponent.prototype.returnUrl; /** @type {?} */ NgxDynamicCompilerComponent.prototype.showFilter; /** @type {?} */ NgxDynamicCompilerComponent.prototype.componentRef; /** * @type {?} * @private */ NgxDynamicCompilerComponent.prototype.compiler; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWR5bmFtaWMtY29tcGlsZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWR5bmFtaWMtY29tcGlsZXIvIiwic291cmNlcyI6WyJsaWIvbmd4LWR5bmFtaWMtY29tcGlsZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVSLFNBQVMsRUFDVCxnQkFBZ0IsRUFHaEIsUUFBUSxFQUVSLFFBQVEsRUFFUixLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQ7SUFtQkUscUNBRVUsUUFBaUI7UUFBakIsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQVRsQixTQUFJLEdBQU0sRUFBRSxDQUFDO1FBQ2IsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNiLFdBQU0sR0FBRSxJQUFJLFlBQVksRUFBTyxDQUFBO1FBQ3pDLFNBQUksR0FBSyxFQUFFLENBQUM7UUFDWixjQUFTLEdBQUcsR0FBRyxDQUFDO1FBQ2hCLGVBQVUsR0FBRSxJQUFJLENBQUM7SUFJYyxDQUFDOzs7O0lBRWhDLDhDQUFROzs7SUFBUjtRQUNFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ2pDLENBQUM7Ozs7SUFDRCxpREFBVzs7O0lBQVg7SUFFQSxDQUFDOzs7OztJQUtELHFEQUFlOzs7O0lBQWYsVUFBZ0IsSUFBSTs7WUFDZCxRQUFRLEdBQUc7O1lBRWIsUUFBUSxFQUFDLElBQUksQ0FBQyxRQUFRO1lBQ3RCLFFBQVEsRUFBQyxjQUFjO1NBQ3hCOztZQUNFLE9BQU8sR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsSUFBSSxFQUFDLElBQUksQ0FBQztRQUMvRSxJQUFHLElBQUksQ0FBQyxZQUFZLEVBQUM7WUFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztTQUMxQjtRQUNELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0QsQ0FBQzs7Ozs7Ozs7SUFFRCxnRUFBMEI7Ozs7Ozs7SUFBMUIsVUFBMkIsUUFBaUIsRUFBQyxRQUFZLEVBQUMsY0FBa0IsRUFBQyxJQUFJOztZQUN6RSxRQUFRLEdBQUcsY0FBYztZQUFJO2dCQUF5QixTQUFJLEdBQUMsSUFBSSxDQUFBO1lBQUEsQ0FBQztZQUFELHVCQUFDO1FBQUQsQ0FBQyxBQUFuQyxHQUFtQzs7WUFDaEUsWUFBWSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFFbEQ7WUFBQTtZQUVBLENBQUM7O3dCQUZBLFFBQVEsU0FBQyxFQUFDLE9BQU8sRUFBQyxDQUFDLFlBQVksQ0FBQyxFQUFDLFlBQVksRUFBQyxDQUFDLFlBQVksQ0FBQyxFQUFDOztZQUU5RCxvQkFBQztTQUFBLEFBRkQsSUFFQzs7WUFDRyxNQUFNLEdBQU8sUUFBUSxDQUFDLGlDQUFpQyxDQUFDLGFBQWEsQ0FBQztRQUUxRSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztRQUN2RCxPQUFPLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJOzs7O1FBQUMsVUFBQSxFQUFFLElBQUUsT0FBQSxFQUFFLENBQUMsYUFBYSxJQUFFLFlBQVksRUFBOUIsQ0FBOEIsRUFBQyxDQUFDO0lBRTVFLENBQUM7Ozs7SUFJRCxpREFBVzs7O0lBQVg7UUFDRSxJQUFHLElBQUksQ0FBQyxZQUFZLEVBQUM7WUFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztZQUFBLENBQUM7U0FDM0I7SUFDSCxDQUFDOztnQkFwRUYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxRQUFRO29CQUNsQixRQUFRLEVBQUUsdUNBSVQ7aUJBRUY7Ozs7Z0JBakJFLFFBQVE7Ozs0QkFtQlIsU0FBUyxTQUFDLFdBQVcsRUFBQyxFQUFDLElBQUksRUFBQyxnQkFBZ0IsRUFBQzt1QkFFN0MsS0FBSzsyQkFDTCxLQUFLO3lCQUNMLE1BQU07O0lBdURULGtDQUFDO0NBQUEsQUFyRUQsSUFxRUM7U0E1RFksMkJBQTJCOzs7SUFDdEMsZ0RBQTRFOztJQUM1RSx5Q0FBUTs7SUFDUiwyQ0FBc0I7O0lBQ3RCLCtDQUF1Qjs7SUFDdkIsNkNBQXlDOztJQUN6QywyQ0FBWTs7SUFDWixnREFBZ0I7O0lBQ2hCLGlEQUFpQjs7SUFDakIsbURBQStCOzs7OztJQUc3QiwrQ0FBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gICBPbkluaXQsXG4gICBWaWV3Q2hpbGQsXG4gICBWaWV3Q29udGFpbmVyUmVmLFxuICAgQ29tcG9uZW50UmVmLFxuICAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgQ29tcGlsZXIsXG4gICBDb21wb25lbnRGYWN0b3J5LFxuICAgTmdNb2R1bGUsXG4gICBPbkNoYW5nZXMsXG4gICBJbnB1dCxcbiAgIE91dHB1dCxcbiAgIEV2ZW50RW1pdHRlclxuICAgIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG4gICAgaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25neC1kYycsXG4gIHRlbXBsYXRlOiBgXG4gIDxkaXYgICNjb250YWluZXI+XG5cbiAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW11cbn0pXG5leHBvcnQgY2xhc3MgTmd4RHluYW1pY0NvbXBpbGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LE9uQ2hhbmdlcyB7XG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicse3JlYWQ6Vmlld0NvbnRhaW5lclJlZn0pIGNvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZjtcbiAgaWQ6bnVsbDtcbiAgQElucHV0KCkgRGF0YTphbnkgPXt9O1xuICBASW5wdXQoKSBUZW1wbGF0ZSA9ICcnO1xuICBAT3V0cHV0KCkgT3V0cHV0PSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuICBodG1sOmFueT0nJztcbiAgcmV0dXJuVXJsID0gJy8nO1xuICBzaG93RmlsdGVyID10cnVlO1xuICBjb21wb25lbnRSZWY6Q29tcG9uZW50UmVmPGFueT47XG4gIGNvbnN0cnVjdG9yKFxuXG4gICAgcHJpdmF0ZSBjb21waWxlcjpDb21waWxlcikgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jb21waWxlVGVtcGxhdGUodGhpcy5EYXRhKVxuICB9XG4gIG5nT25DaGFuZ2VzKCkge1xuXG4gIH1cblxuXG5cblxuICBjb21waWxlVGVtcGxhdGUoZGF0YSl7XG4gICAgbGV0IG1ldGFEYXRhID0ge1xuICAgICAgLy8gdGVtcGxhdGU6dGhpcy50ZW1wbGF0ZSxcbiAgICAgIHRlbXBsYXRlOnRoaXMuVGVtcGxhdGUsXG4gICAgICBzZWxlY3RvcjoncHR2LXRlbXBsYXRlJ1xuICAgIH1cbiAgIGxldCBmYWN0b3J5ID0gdGhpcy5jcmVhdGVDb21wb25lbnRGYWN0b3J5U3luYyh0aGlzLmNvbXBpbGVyLG1ldGFEYXRhLG51bGwsZGF0YSk7XG4gICBpZih0aGlzLmNvbXBvbmVudFJlZil7XG4gICAgIHRoaXMuY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICAgdGhpcy5jb21wb25lbnRSZWYgPSBudWxsO1xuICAgfVxuICAgdGhpcy5jb21wb25lbnRSZWYgPSB0aGlzLmNvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoZmFjdG9yeSk7XG4gIH1cblxuICBjcmVhdGVDb21wb25lbnRGYWN0b3J5U3luYyhjb21waWxlcjpDb21waWxlcixtZXRhZGF0YTphbnksY29tcG9uZW50Q2xhc3M6YW55LGRhdGEpOkNvbXBvbmVudEZhY3Rvcnk8YW55PntcbiAgICBjb25zdCBjbXBDbGFzcyA9IGNvbXBvbmVudENsYXNzIHx8IGNsYXNzIFJ1bnRpbWVDb21wb25lbnQgeyBEYXRhPWRhdGF9O1xuICAgIGNvbnN0IGRlY29yYXRlZENtcCA9IENvbXBvbmVudChtZXRhZGF0YSkoY21wQ2xhc3MpO1xuXG4gICAgQE5nTW9kdWxlKHtpbXBvcnRzOltDb21tb25Nb2R1bGVdLGRlY2xhcmF0aW9uczpbZGVjb3JhdGVkQ21wXX0pXG4gICAgY2xhc3MgUnVudGltZU1vZHVsZXtcbiAgICB9XG4gICAgbGV0IG1vZHVsZTphbnkgPSBjb21waWxlci5jb21waWxlTW9kdWxlQW5kQWxsQ29tcG9uZW50c1N5bmMoUnVudGltZU1vZHVsZSk7XG5cbiAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShtb2R1bGUuY29tcG9uZW50RmFjdG9yaWVzKSk7XG4gICAgcmV0dXJuIG1vZHVsZS5jb21wb25lbnRGYWN0b3JpZXMuZmluZChlbD0+ZWwuY29tcG9uZW50VHlwZT09ZGVjb3JhdGVkQ21wKTtcblxuICB9XG5cblxuXG4gIG5nT25EZXN0cm95KCl7XG4gICAgaWYodGhpcy5jb21wb25lbnRSZWYpe1xuICAgICAgdGhpcy5jb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgICAgdGhpcy5jb21wb25lbnRSZWYgPSBudWxsOztcbiAgICB9XG4gIH1cbn1cbiJdfQ==