import { Pipe, PipeTransform } from '@angular/core'; import { BatchStatuses, PaymentStatus } from '@core/typings/status.typing'; import { AddressRequestStatus } from '@features/platform-admin/address-requests/address-requests.typing'; @Pipe({ name: 'gcCanEditSpecialHandling' }) export class CanEditSpecialHandlingPipe implements PipeTransform { transform ( paymentStatus: PaymentStatus, batchStatus: BatchStatuses, addressRequestStatus: AddressRequestStatus, isInternational: boolean, showSpecialHandling: boolean, isClientProcessed = false ) { if (showSpecialHandling && (!isInternational || isClientProcessed)) { const batchOpen = isClientProcessed ? !batchStatus || [ BatchStatuses.Open, BatchStatuses.Reviewed ].includes(batchStatus) : !batchStatus; const paymentEditable = isClientProcessed ? [ PaymentStatus.Pending, PaymentStatus.Scheduled ].includes(paymentStatus) : paymentStatus === PaymentStatus.Pending; return batchOpen && paymentEditable && !addressRequestStatus; } return false; } }