import { Component, Input, OnInit } from '@angular/core'; import { Validators } from '@angular/forms'; import { CommunicationVisibility } from '@features/communications/communications.typing'; import { DocumentTemplateService } from '@features/document-templates/document-template.service'; import { DocumentTemplatesResolver } from '@features/document-templates/resolvers/document-templates.resolver'; import { TypeaheadSelectOption, TypeSafeFormBuilder, TypeSafeFormGroup } from '@yourcause/common'; import { AnalyticsService, EventType } from '@yourcause/common/analytics'; import { YCModalComponent } from '@yourcause/common/modals'; import { MergeDocumenteModalResponse, MergeDocumentFormGroup } from '../application-attachments.typing'; @Component({ selector: 'gc-merge-document-modal', templateUrl: './merge-document-modal.component.html', styleUrls: ['./merge-document-modal.component.scss'] }) export class MergeDocumentModalComponent extends YCModalComponent implements OnInit { @Input() isNomination = false; @Input() applicationId: number; formGroup: TypeSafeFormGroup; documentTemplateOptions: TypeaheadSelectOption[] = []; constructor ( private formBuilder: TypeSafeFormBuilder, private documentTemplateService: DocumentTemplateService, private documentTemplateResolver: DocumentTemplatesResolver, private analyticsService: AnalyticsService ) { super(); } async ngOnInit () { await this.documentTemplateResolver.resolve(); this.documentTemplateOptions = this.documentTemplateService.documentTemplateOptions; this.formGroup = this.formBuilder.group({ documentTemplateId: [null, Validators.required], documentVisibility: CommunicationVisibility.ALL_GRANT_MANAGERS, applicantCanView: false }); } save (addAnother = false) { this.closeModal.emit({ ...this.formGroup.value, addAnother }); this.analyticsService.emitEvent({ eventName: 'Add merge document', eventType: EventType.Click, extras: null }); } }