import { ViewContainerRef, ComponentFactoryResolver, ComponentRef, Type, Component } from '@angular/core'; import { ConfigObjectScreenOptions } from '../types/object-screen-types'; export class ConfigObjectScreenFactory { constructor(private componentType: Type<{}>, private componentFactoryResolver: ComponentFactoryResolver, private containerRef: ViewContainerRef) { } create(options: ConfigObjectScreenOptions): ComponentRef<{}> { let cmpRef; let factory = this.componentFactoryResolver.resolveComponentFactory(this.componentType); cmpRef = this.containerRef.createComponent(factory); cmpRef.instance.options = options; return cmpRef; } }