'use strict'; /* admin → stats section */ (function () { 'use strict'; let inited = false; async function load() { try { const s = await LS.adminGetStats(); document.getElementById('stats-grid').innerHTML = `
${s.totalUsers}
Пользователей
${s.totalTests}
Тестов пройдено
${s.avgScore ?? '—'}%
Средний результат
`; if (window.lucide) lucide.createIcons(); const subjEl = document.getElementById('subj-stats'); if (!s.bySubject?.length) { subjEl.innerHTML = '
Нет данных
'; return; } subjEl.innerHTML = s.bySubject.map(b => { const pct = b.avg_pct ?? 0; const barColor = pct >= 75 ? 'var(--green)' : pct >= 50 ? 'var(--amber)' : 'var(--pink)'; return `
${esc(b.name)}
${b.tests} тестов
${b.avg_pct ?? '—'}%
`; }).join(''); } catch (e) { LS.state.error(document.getElementById('stats-grid'), e, load); } } window.AdminSections = window.AdminSections || {}; window.AdminSections.stats = { init: async () => { if (inited) return; inited = true; await load(); }, reload: load, }; })();