import {Component, OnInit, Output, EventEmitter, Host, ViewEncapsulation} from "@angular/core";
import {FORM_DIRECTIVES, ControlGroup, Control} from "@angular/common";

/**
 * Created by jd on 04/02/2016.
 */

@Component(
    {
        selector: 'core-form',
        template: `
            <form #f="ngForm" [ngFormModel]="form" (ngSubmit)="onSubmit(f.form)" novalidate class="odisseia-form">
                <ng-content></ng-content>
            </form>
            `,
        encapsulation: ViewEncapsulation.None,
        styleUrls: ['node_modules/bia-framework/components/odisseia-form/odisseia-form.css'],
        directives: [FORM_DIRECTIVES]
    }
)
export class CoreForm implements OnInit
{
    form:ControlGroup = new ControlGroup({});

    @Output()
    sub = new EventEmitter();
//@Host() ngForm:ControlGroup
    constructor()
    {
        // this.form = new ControlGroup({});
    }

    public addControl = (name:string, control:Control):void =>
    {
        if (this.form == null)
        {
            //this.form = new ControlGroup({});
            this.form.addControl(name, control);
        }
        else
        {
            this.form.addControl(name, control)
        }
    };

    ngOnInit():any
    {
        return undefined;
    }

    public onSubmit = (data:ControlGroup):void =>
    {
        if (this.form && this.form.valid)
        {
            this.sub.emit(data);
        }

    };
}
