console.log('[HeurekaWidget] loaded'); (function () { function sleep(ms){ return new Promise(r => setTimeout(r, ms)); } function escapeHtml(str){ return String(str) .replace(/&/g,'&') .replace(//g,'>') .replace(/"/g,'"') .replace(/'/g,'''); } async function fetchData(){ const res = await fetch('https://firemnivino.winehouse.cz/wp-content/heureka/reviews.php', { cache: 'no-store' }); if (!res.ok) throw new Error('fetch failed: ' + res.status); const data = await res.json(); if (!data?.items?.length) throw new Error('no items'); return data; } function ensureTarget(block){ const host = block.querySelector('.heureka__reviews__block__outer') || block; let target = host.querySelector('.heureka__reviews__dynamic'); if (!target) { target = document.createElement('div'); target.className = 'heureka__reviews__dynamic'; const overview = host.querySelector('.heureka__reviews__block__overview'); if (overview && overview.parentNode) { overview.insertAdjacentElement('afterend', target); } else { host.appendChild(target); } } return target; } function render(target, items){ target.innerHTML = items.slice(0,3).map(r => `
${escapeHtml(r.text || '')}
${escapeHtml(r.author || 'Ověřený zákazník')}