import { Pipe, PipeTransform } from '@angular/core'; @Pipe({ name: 'dropdownLoadStatusColor', standalone: true, }) export class DropdownLoadStatusColorPipe implements PipeTransform { transform( status: string, isBadge?: boolean ): { color: string; backgroundColor?: string } { const adjustedStatus = status.replace(/\s+/g, ''); const statusGreyColorCondition = adjustedStatus === 'Booked'; const statusDarkGreyColorCondition = adjustedStatus === 'Unassigned'; const darkGrey = [ 'Claim' ].includes(adjustedStatus) const statusDarkGrey2ColorCondition = [ 'InvoicedHold', 'Hold', 'HoldFactoring', 'Revised', 'RevisedFactoring', ].includes(adjustedStatus); const statusGreenColorCondition = adjustedStatus === 'Assigned' || adjustedStatus === 'Available'; const statusBlueColorCondition = [ 'RepairDispatched', 'Dispatched', ].includes(adjustedStatus); const statusTurquoiseColorCondition = [ 'Arrived', 'ArrivedPickup', 'CheckedInPickup', 'CheckedIn', 'Loading', ].includes(adjustedStatus); const statusDarkTurquoiseColorCondition = [ 'Loaded', 'RepairLoaded', ].includes(adjustedStatus); const statusRedColorCondition = [ 'ArrivedDelivery', 'CheckedInDelivery', 'Offloading', 'Checked-In', 'Tonu', ].includes(adjustedStatus); const statusDarkRedColorCondition = [ 'Offloaded', 'RepairOffloaded', ].includes(adjustedStatus); const statusDarkRed2ColorCondition = [ 'Cancelled', 'Split', 'LoadCancelled', ].includes(adjustedStatus); const statusOrangeColorCondition = adjustedStatus === 'Delivered'; const statusYellowColorCondition = [ 'Invoiced', 'Paid', 'InvoicedFactoring', 'TonuInvoiced', 'TonuInvoicedFactoring', ].includes(adjustedStatus); const statusDarkYellowColorCondition = [ 'Unpaid', 'ShortPaid', 'TonuUnpaid', 'TonuClaim', 'TonuClaimFactoring', 'ClaimFactoring', 'UnpaidFactoring', 'RevisedUnpaid', 'RevisedUnpaidFactoring', 'RevisedClaim', 'RevisedClaimFactoring', 'TonuUnpaidFactoring', ].includes(adjustedStatus); const statusMildDarkYellowColorCondition = [ 'ShortPaidFactoring', 'RevisedPaid', 'RevisedShortPaidFactoring', 'RevisedShortPaid', 'TonuShortPaid', 'TonuShortPaidFactoring', 'TonuPaid', 'TonuPaidFactoring', 'RevisedPaidFactoring', 'PaidFactoring', ].includes(adjustedStatus); if (statusGreyColorCondition) { return isBadge ? { color: '#2F2F2F', backgroundColor: '#919191' } : { color: '#919191' }; } else if (statusDarkGreyColorCondition) { return isBadge ? { color: '#2F2F2F', backgroundColor: '#CCCCCC' } : { color: '#CCCCCC' }; } else if (statusGreenColorCondition) { return isBadge ? { color: '#2F2F2F', backgroundColor: '#77BF56' } : { color: '#77BF56' }; } else if (statusBlueColorCondition) { return isBadge ? { color: '#2F2F2F', backgroundColor: '#6692F1' } : { color: '#6692F1' }; } else if (statusTurquoiseColorCondition) { return isBadge ? { color: '#2F2F2F', backgroundColor: '#259F94' } : { color: '#259F94' }; } else if (statusDarkTurquoiseColorCondition) { return isBadge ? { color: '#2F2F2F', backgroundColor: '#86C9C3' } : { color: '#86C9C3' }; } else if (statusRedColorCondition) { return isBadge ? { color: '#2F2F2F', backgroundColor: '#FF7043' } : { color: '#FF7043' }; } else if (statusDarkRedColorCondition) { return isBadge ? { color: '#2F2F2F', backgroundColor: '#ED9292' } : { color: '#ED9292' }; } else if (statusOrangeColorCondition) { return isBadge ? { color: '#2F2F2F', backgroundColor: '#FAB15C' } : { color: '#FAB15C' }; } else if (statusYellowColorCondition) { return isBadge ? { color: '#2F2F2F', backgroundColor: '#CF961D' } : { color: '#CF961D' }; } else if (statusDarkYellowColorCondition) { return isBadge ? { color: '#2F2F2F', backgroundColor: '#E4C481' } : { color: '#E4C481' }; } else if (statusDarkRed2ColorCondition) { return isBadge ? { color: '#2F2F2F', backgroundColor: '#E66767' } : { color: '#F4BEBE' }; } else if (statusMildDarkYellowColorCondition) { return isBadge ? { color: '#2F2F2F', backgroundColor: '#CDB255' } : { color: '#CDB255' }; } else if(statusDarkGrey2ColorCondition) { return isBadge ? { color: '#fff', backgroundColor: '#E5E5E5' } : { color: '#E5E5E5' }; }else if(darkGrey) { return isBadge ? { color: '#fff', backgroundColor: '#AAAAAA' } : { color: '#E5E5E5' }; } return { color: '' }; } }