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(); } } |