Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | 1x 6x 6x 6x 6x 11x 1x 7x 7x 7x 1x 1x | import { Component, DoCheck, OnInit, ViewChild, ViewContainerRef } from '@angular/core';
import { DynamicFormInput } from '../dynamic-form-input/dynamic-form-input';
import { DynamicFormValidationService } from '../dynamic-form-validation/dynamic-form-validation.service';
import { DynamicFormComponentFactory } from '../dynamic-form/dynamic-form-component.factory';
import { DynamicFormControl } from './dynamic-form-control';
import { DynamicFormControlBase } from './dynamic-form-control-base';
import { DynamicFormControlDefinition } from './dynamic-form-control-definition';
import { DynamicFormControlTemplate } from './dynamic-form-control-template';
@Component({
selector: 'dynamic-form-control',
templateUrl: './dynamic-form-control.component.html',
})
export class DynamicFormControlComponent<
Value = any,
Input extends DynamicFormInput<Value> = DynamicFormInput<Value>,
Template extends DynamicFormControlTemplate<Value, Input> = DynamicFormControlTemplate<Value, Input>,
Definition extends DynamicFormControlDefinition<Value, Input, Template> = DynamicFormControlDefinition<Value, Input, Template>,
Control extends DynamicFormControl<Value, Input, Template, Definition> = DynamicFormControl<Value, Input, Template, Definition>
> extends DynamicFormControlBase<Value, Input, Template, Definition, Control> implements OnInit, DoCheck {
private _initialized: boolean;
private _inputType: string;
@ViewChild('container', { read: ViewContainerRef, static: true })
container: ViewContainerRef;
constructor(
protected componentFactory: DynamicFormComponentFactory,
protected override validationService: DynamicFormValidationService,
) {
super(validationService);
}
ngOnInit(): void {
this.initContainer();
}
ngDoCheck(): void {
if (this._initialized && this._inputType !== this.inputType) {
this.updateContainer();
}
}
private initContainer(): void {
this._initialized = true;
this._inputType = this.inputType;
this.componentFactory.createInputComponent(this.container, this.field);
}
private updateContainer(): void {
this.container.clear();
this.initContainer();
}
}
|