import { Component, Input } from '@angular/core'; import { UntypedFormGroup } from '@angular/forms'; import { IsActive } from '@app/core/common/enum/is-active.enum'; import { DescriptionTemplate } from '@app/core/model/description-template/description-template'; import { Description } from '@app/core/model/description/description'; import { DmpBlueprintDefinitionSection } from '@app/core/model/dmp-blueprint/dmp-blueprint'; import { Dmp, DmpDescriptionTemplate } from '@app/core/model/dmp/dmp'; import { DescriptionTemplateService } from '@app/core/services/description-template/description-template.service'; import { DescriptionService } from '@app/core/services/description/description.service'; import { DmpBlueprintService } from '@app/core/services/dmp/dmp-blueprint.service'; import { BaseComponent } from '@common/base/base.component'; import { takeUntil } from 'rxjs/operators'; @Component({ selector: 'app-description-base-fields-editor-component', templateUrl: 'description-base-fields-editor.component.html', styleUrls: ['./description-base-fields-editor.component.scss'] }) export class DescriptionBaseFieldsEditorComponent extends BaseComponent { @Input() formGroup: UntypedFormGroup; @Input() description: Description; availableDescriptionTemplates: DescriptionTemplate[] = []; viewOnly = false; //TODO: not used. constructor( ) { super(); } ngOnInit() { const dmpDescriptionTemplates: DmpDescriptionTemplate[] = this.description.dmp.dmpDescriptionTemplates.filter(x => x.sectionId == this.description.dmpDescriptionTemplate.sectionId && x.isActive == IsActive.Active); const currentVersionsOfDescriptionTemplates = dmpDescriptionTemplates.map(x => x.currentDescriptionTemplate); //Check if the used tempalte in included in the current list. If not add it. if (this.description.descriptionTemplate && currentVersionsOfDescriptionTemplates.find(x => x.id == this.description?.descriptionTemplate?.id) == null) { this.availableDescriptionTemplates.push(this.description.descriptionTemplate) } this.availableDescriptionTemplates.push(...currentVersionsOfDescriptionTemplates); } public compareWith(object1: any, object2: any) { return object1 && object2 && object1.id === object2.id; } }