import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; import { CommonModule } from '@angular/common'; import { suitSymbols, Suit } from '../../models/blackjack.model'; @Component({ selector: 'app-playing-card', standalone: true, imports: [CommonModule], template: `
@if (!hidden) { {{ getDisplayRank(rank) }} } @if (!hidden) { {{ getSuitSymbol(suit) }} } @if (!hidden) { {{ getDisplayRank(rank) }} }
`, changeDetection: ChangeDetectionStrategy.OnPush, }) export class PlayingCardComponent { @Input({ required: true }) rank!: string; @Input({ required: true }) suit!: Suit; @Input({ required: true }) hidden!: boolean; protected getSuitSymbol(suit: Suit): string { return suitSymbols[suit]; } protected getDisplayRank(rank: string): string { const rankMap: Record = { TWO: '2', THREE: '3', FOUR: '4', FIVE: '5', SIX: '6', SEVEN: '7', EIGHT: '8', NINE: '9', TEN: '10', JACK: 'J', QUEEN: 'Q', KING: 'K', ACE: 'A', }; return rankMap[rank] || rank; } }