File

projects/ng-dynamic-forms/core/src/lib/component/dynamic-form.component.ts

Implements

OnInit OnDestroy

Index

Properties
Methods

Constructor

Protected constructor(changeDetectorRef: ChangeDetectorRef, componentService: DynamicFormComponentService)
Parameters :
Name Type Optional
changeDetectorRef ChangeDetectorRef No
componentService DynamicFormComponentService No

Properties

blur
Type : EventEmitter<DynamicFormControlEvent>
change
Type : EventEmitter<DynamicFormControlEvent>
components
Type : QueryList<DynamicFormControlContainerComponent>
focus
Type : EventEmitter<DynamicFormControlEvent>
group
Type : FormGroup
layout
Type : DynamicFormLayout
model
Type : DynamicFormModel
templates
Type : QueryList<DynamicTemplateDirective>

Methods

detectChanges
detectChanges()
Returns : void
markForCheck
markForCheck()
Returns : void
ngOnDestroy
ngOnDestroy()
Returns : void
ngOnInit
ngOnInit()
Returns : void
onBlur
onBlur($event: DynamicFormControlEvent)
Parameters :
Name Type Optional
$event DynamicFormControlEvent No
Returns : void
onChange
onChange($event: DynamicFormControlEvent)
Parameters :
Name Type Optional
$event DynamicFormControlEvent No
Returns : void
onCustomEvent
onCustomEvent($event: DynamicFormControlEvent, customEventEmitter: EventEmitter)
Parameters :
Name Type Optional
$event DynamicFormControlEvent No
customEventEmitter EventEmitter<DynamicFormControlEvent> No
Returns : void
onFocus
onFocus($event: DynamicFormControlEvent)
Parameters :
Name Type Optional
$event DynamicFormControlEvent No
Returns : void
trackByFn
trackByFn(_index: number, model: DynamicFormControlModel)
Parameters :
Name Type Optional
_index number No
model DynamicFormControlModel No
Returns : string
import { ChangeDetectorRef, EventEmitter, OnDestroy, OnInit, QueryList } from "@angular/core";
import { FormGroup } from "@angular/forms";
import { DynamicFormControlContainerComponent } from "./dynamic-form-control-container.component";
import { DynamicFormControlEvent } from "./dynamic-form-control-event";
import { DynamicFormControlModel } from "../model/dynamic-form-control.model";
import { DynamicFormModel } from "../model/dynamic-form.model";
import { DynamicTemplateDirective } from "../directive/dynamic-template.directive";
import { DynamicFormLayout } from "../service/dynamic-form-layout.service";
import { DynamicFormComponentService } from "../service/dynamic-form-component.service";

export abstract class DynamicFormComponent implements OnInit, OnDestroy {

    group: FormGroup;
    model: DynamicFormModel;
    layout: DynamicFormLayout;

    components: QueryList<DynamicFormControlContainerComponent>;
    templates: QueryList<DynamicTemplateDirective>;

    blur: EventEmitter<DynamicFormControlEvent>;
    change: EventEmitter<DynamicFormControlEvent>;
    focus: EventEmitter<DynamicFormControlEvent>;

    protected constructor(protected changeDetectorRef: ChangeDetectorRef,
                          protected componentService: DynamicFormComponentService) {
    }

    ngOnInit(): void {
        this.componentService.registerForm(this);
    }

    ngOnDestroy(): void {
        this.componentService.unregisterForm(this);
    }

    trackByFn(_index: number, model: DynamicFormControlModel): string {
        return model.id;
    }

    markForCheck(): void {
        this.changeDetectorRef.markForCheck();

        if (this.components instanceof QueryList) {
            this.components.forEach(component => component.markForCheck());
        }
    }

    detectChanges(): void {
        this.changeDetectorRef.detectChanges();
    }

    onBlur($event: DynamicFormControlEvent) {
        this.blur.emit($event);
    }

    onChange($event: DynamicFormControlEvent) {
        this.change.emit($event);
    }

    onFocus($event: DynamicFormControlEvent) {
        this.focus.emit($event);
    }

    onCustomEvent($event: DynamicFormControlEvent, customEventEmitter: EventEmitter<DynamicFormControlEvent>) {
        customEventEmitter.emit($event);
    }
}

result-matching ""

    No results matching ""