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;
}
}