ngx-dynamic-compiler
Version:
155 lines • 10.7 kB
JavaScript
/**
* @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==