import { Pipe, PipeTransform } from '@angular/core'; import { AvailabilityOptions } from '@features/configure-forms/form.typing'; import { I18nService } from '@yourcause/common/i18n'; @Pipe({ name: 'ycFormAvailability' }) export class FormAvailabilityPipe implements PipeTransform { constructor ( private i18n: I18nService ) { } transform ( availabilityType: AvailabilityOptions, returnParam: 'icon'|'display' ) { const availabilityTypeObj = this.getAvailabilityTypeObj(availabilityType); return availabilityTypeObj[returnParam]; } getAvailabilityTypeObj (availabilityType: AvailabilityOptions) { switch (availabilityType) { case AvailabilityOptions.AUTO: return { icon: 'bolt', display: this.i18n.translate( 'PROGRAM:textAutomaticallySentToApplicant', {}, 'Automatically sent to applicant' ) }; case AvailabilityOptions.MANUAL: return { icon: 'hand-pointer', display: this.i18n.translate( 'PROGRAM:textCanBeManuallySentToApplicant', {}, 'Can be manually sent to applicant' ) }; case AvailabilityOptions.DATE: case AvailabilityOptions.DYNAMIC_DATE: return { icon: 'calendar', display: this.i18n.translate( 'common:textScheduledToBeSentToApplicant', {}, 'Scheduled to be sent to applicant' ) }; } } }