import { Directive, Host, Inject, Input, TemplateRef, ViewContainerRef } from '@angular/core';
import { HypermediaField } from 'first-npm-package-nicule/core';
import { HypermediaForm } from '../components';
import { PARENT_FORM } from '../components/parent-form';

@Directive({
    selector: '[hmDefaultFieldNamed]'
})
export class DefaultFieldDirective {
    @Input() set hmDefaultFieldNamed(named: string) {
        this.viewContainerRef.createEmbeddedView(this.templateRef, { $implicit: this.form.getField(named) }, 0);
    }

    constructor(
        @Inject(PARENT_FORM) @Host()
        private form: HypermediaForm,
        private templateRef: TemplateRef<{ $implicit: HypermediaField }>,
        private viewContainerRef: ViewContainerRef) {

    }
}
