// Channel data structure class Channel constructor(id, number, name, category, source, frequency, serviceId, logo)
@keyframes slideDown from transform: translateY(-50px); opacity: 0;
.channel-item:hover background: #f8f9fa;
.icon-btn background: none; border: none; cursor: pointer; font-size: 18px; padding: 5px; transition: transform 0.2s;
.channel-source text-transform: capitalize;
exportChannels() const dataStr = JSON.stringify(this.channels, null, 2); const blob = new Blob([dataStr], type: 'application/json' ); const url = URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = `samsung_channels_$new Date().toISOString().split('T')[0].json`; a.click(); URL.revokeObjectURL(url);
escapeHtml(text) const div = document.createElement('div'); div.textContent = text; return div.innerHTML;
// Channel data structure class Channel constructor(id, number, name, category, source, frequency, serviceId, logo)
@keyframes slideDown from transform: translateY(-50px); opacity: 0;
.channel-item:hover background: #f8f9fa;
.icon-btn background: none; border: none; cursor: pointer; font-size: 18px; padding: 5px; transition: transform 0.2s;
.channel-source text-transform: capitalize;
exportChannels() const dataStr = JSON.stringify(this.channels, null, 2); const blob = new Blob([dataStr], type: 'application/json' ); const url = URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = `samsung_channels_$new Date().toISOString().split('T')[0].json`; a.click(); URL.revokeObjectURL(url);
escapeHtml(text) const div = document.createElement('div'); div.textContent = text; return div.innerHTML;