import { Pipe, PipeTransform } from '@angular/core'; import { LoadStatuConstants } from '../constants/load-status.constants'; @Pipe({ name: 'statusTextClass', standalone: true, }) export class StatusTextClassPipe implements PipeTransform { transform( value: string, index: number, displayString: string[], isTitleCardDropdown: boolean, isDark: boolean, statusId: number, isNoStatesColor: boolean, isStatusCard: boolean, isStatusFocused: boolean, fontSize?: number ): { [key: string]: boolean } { const defaultFontSize = 11; const isNumeric = /^[+-]?\d+(\.\d+)?$/.test(value); const lowerCaseValue = value.toLowerCase(); const textSizeClass = `text-size-${fontSize ?? defaultFontSize}`; const isDarkVersion = isTitleCardDropdown || isDark; const isPickupStatus = LoadStatuConstants.pickupStatuses.includes(statusId); const isDeliveriStatus = LoadStatuConstants.deliveriStatuses.includes(statusId); const isDefaultPickupNumber = isNumeric && isPickupStatus && (isNoStatesColor || (isStatusCard && isStatusFocused)); const isDefaultDeliverNumber = isNumeric && isDeliveriStatus && (isNoStatesColor || (isStatusCard && isStatusFocused)); const isDifferentNumber = isDefaultPickupNumber || isDefaultDeliverNumber; return { 'background-green-3 text-color-green-2': isDefaultPickupNumber, 'background-orange-7 text-color-orange-1': isDefaultDeliverNumber, 'background-bw6-2': (lowerCaseValue === 'r' || isNumeric) && !isDarkVersion && !isDifferentNumber, 'background-light-gray-2': (lowerCaseValue === 'r' || isNumeric) && isDarkVersion && !isDifferentNumber, 'background-red-19': lowerCaseValue === 't', 'background-blue-13': lowerCaseValue === 'f', 'background-purple-4': lowerCaseValue === 's', 'background-gold-bold': lowerCaseValue === 'i', 'background-green-2': lowerCaseValue === 'l', 'd-flex justify-content-center align-items-center badge font-size-11 line-height-12': value.length === 1, 'm-r-4': index !== displayString.length - 1, [textSizeClass]: value.length > 1, 'text-color-black-2': value.length === 1 && (isTitleCardDropdown || isDark), 'text-color-white': (value.length === 1 && !isDarkVersion) || (value.length > 1 && isDark), 'status-text-dropdown': value.length > 1 && isTitleCardDropdown, }; } }