container.appendChild(el);
});
}
/**
* Verarbeitet die Zeilenauswahl
*/
function selectCoin(id) {
selectedCoinId = id;
/ Zeilen visuell aktualisieren
const rows = container.children;
Array.from(rows).forEach(row => {
const rowId = parseInt(row.getAttribute(‚data-id‘));
if (rowId === id) {
row.classList.add(‚ring-2‘, ‚ring-offset-2‘, ‚ring-blue-500‘, ‚bg-blue-50‘);
row.classList.remove(‚bg-white‘);
} else {
row.classList.remove(‚ring-2‘, ‚ring-offset-2‘, ‚ring-blue-500‘, ‚bg-blue-50‘);
row.classList.add(‚bg-white‘);
}
});
updateCalculator();
}
/**
* Berechnet und aktualisiert die Anzeige der Werte
*/
function updateCalculator() {
if (!selectedCoinId) return;
const coin = coinData.find(c => c.id === selectedCoinId);
const qty = parseInt(quantityInput.value) || 0;
/ Statusanzeige aktualisieren
displayState.textContent = coin.state;
displayState.className = „text-blue-600 font-bold text-lg mb-4 h-6 animate-pulse-once“;
/ Gesamtbetrag berechnen
const total = coin.priceValue * qty;
/ In französischer Währung formatieren
const formatter = new Intl.NumberFormat(‚fr-FR‘, {
style: ‚currency‘,
currency: ‚EUR‘
});
displayTotal.textContent = formatter.format(total);
/ Animation des Gesamtbetrags
displayTotal.classList.remove(’scale-100′);