import { Component, EventEmitter, Input, OnChanges, Output } from '@angular/core'; import { ApplicationAttachmentService } from '@features/application-view/application-attachments/application-attachments.service'; import { TypeaheadSelectOption } from '@yourcause/common'; import { I18nService } from '@yourcause/common/i18n'; @Component({ selector: 'gc-attachment-visibility-selector', templateUrl: './attachment-visibility-selector.component.html', styleUrls: ['./attachment-visibility-selector.component.scss'] }) export class AttachmentVisibilitySelectorComponent implements OnChanges { @Input() isNomination = false; @Input() isExternal = false; @Input() applicantCanViewHidden = false; @Output() onChange = new EventEmitter(); documentVisibilityOptions: TypeaheadSelectOption[] = []; optionLabel: string; constructor ( private applicationAttachmentService: ApplicationAttachmentService, private i18n: I18nService ) { } ngOnChanges () { this.setOptionLabel(); this.documentVisibilityOptions = this.applicationAttachmentService.getDocumentVisibilityOptions( this.isNomination ); } setOptionLabel () { if (this.isNomination) { this.optionLabel = this.i18n.translate( this.isExternal ? 'GLOBAL:textNominatorCanViewFile' : 'GLOBAL:textNominatorCanViewDocument', {}, this.isExternal ? 'Nominator can view file' : 'Nominator can view document' ); } else { this.optionLabel = this.i18n.translate( this.isExternal ? 'GLOBAL:textApplicantCanViewFile' : 'GLOBAL:textApplicantCanViewDocument', {}, this.isExternal ? 'Applicant can view file' : 'Applicant can view document' ); } } }