ngx-dynamic
Version:
dynamic contents projection in Angular
60 lines (57 loc) • 1.95 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var core_1 = require("@angular/core");
var platform_browser_dynamic_1 = require("@angular/platform-browser-dynamic");
var dynamic_component_directive_1 = require("./dynamic-component.directive");
var options_1 = require("./options");
function createJitCompiler(options) {
options = options || [];
var factory = new platform_browser_dynamic_1.JitCompilerFactory();
/*
WARNING - this will probably crash in the future
*/
factory['_defaultOptions'] = factory['_defaultOptions'].filter(Boolean);
return factory.createCompiler(options);
}
exports.createJitCompiler = createJitCompiler;
/**
* Setup for DynamicComponentDirective
*
* ```ts
* @NgModule({
* imports: [
* DynamicComponentModule.forRoot({
* imports: [CommonModule]
* })
* ],
* })
* class AppModule {}
* ```
*/
var DynamicComponentModule = (function () {
function DynamicComponentModule() {
}
DynamicComponentModule.forRoot = function (metadata) {
return {
ngModule: DynamicComponentModule,
providers: [
{
provide: core_1.Compiler, useFactory: createJitCompiler, deps: [[core_1.Optional(), core_1.COMPILER_OPTIONS]]
},
{
provide: options_1.DynamicComponentOptions, useValue: {
ngModuleMetadata: metadata,
}
},
],
};
};
DynamicComponentModule.decorators = [
{ type: core_1.NgModule, args: [{
declarations: [dynamic_component_directive_1.DynamicComponentDirective],
exports: [dynamic_component_directive_1.DynamicComponentDirective],
},] },
];
return DynamicComponentModule;
}());
exports.DynamicComponentModule = DynamicComponentModule;