/**
 * Created by jd on 04/07/2016.
 */

import {Injectable, ComponentResolver, ViewContainerRef} from "@angular/core";
import {IDynamicComponent} from "../models/IDynamicComponent";

declare var System:any;

@Injectable()
export class DynamicComponentLoader {
    constructor(private resolver:ComponentResolver) {

    }

    public load = (container:ViewContainerRef, dynamicContent:IDynamicComponent):void => {
        System.import(dynamicContent.path).then(c => c[dynamicContent.className]).then((result)=> {
            this.resolver.resolveComponent(result).then(factory => {
                container.createComponent(factory, 0, container.injector);
            });

        });

    };

}