(() => { let ws = null; let reconnectTimer = null; function normalizeToken(value) { const token = String(value || '').trim(); if (!token) return ''; if (token.toLowerCase().startsWith('bearer ')) { return token.slice(7).trim(); } return token; } function getCookie(name) { const cookie = document.cookie || ''; const parts = cookie.split(';').map(p => p.trim()); const match = parts.find(p => p.startsWith(`${name}=`)); if (!match) return ''; return decodeURIComponent(match.slice(name.length + 1)); } function getToken() { const fromLocal = normalizeToken(localStorage.getItem('access_token')); if (fromLocal) return fromLocal; const fromSession = normalizeToken(sessionStorage.getItem('access_token')); if (fromSession) return fromSession; const fromCookie = normalizeToken(getCookie('access_token')); return fromCookie; } function ensureContainer() { let container = document.getElementById('telefoni-toast-container'); if (!container) { container = document.createElement('div'); container.id = 'telefoni-toast-container'; container.setAttribute('aria-live', 'polite'); container.setAttribute('aria-atomic', 'true'); container.style.cssText = ` position: fixed; top: 20px; right: 20px; z-index: 9999; width: 420px; max-width: 90%; `; document.body.appendChild(container); } return container; } function escapeHtml(str) { return String(str ?? '') .replaceAll('&', '&') .replaceAll('<', '<') .replaceAll('>', '>') .replaceAll('"', '"') .replaceAll("'", '''); } function showIncomingCallToast(data) { const container = ensureContainer(); const contact = data.contact || null; const number = data.number || ''; const title = contact?.name ? contact.name : 'Ukendt nummer'; const company = contact?.company ? contact.company : ''; const callId = data.call_id; const toastEl = document.createElement('div'); toastEl.className = 'toast align-items-stretch'; toastEl.setAttribute('role', 'alert'); toastEl.setAttribute('aria-live', 'assertive'); toastEl.setAttribute('aria-atomic', 'true'); const openContactBtn = contact?.id ? `` : ''; toastEl.innerHTML = `