';
}
function status(v) {
if (v === 'loading') return loading();
if (v === 'nao' || v === false) return xmark();
return check();
}
function badge(text, type) {
let cls = 'badge-gray';
if (type === 'green' || text === 'SIM' || text.includes('Sim') || text.includes('Parcial') || text === '7 dias') cls = 'badge-green';
if (text.includes('Segredo')) cls = 'badge-yellow';
return `
${text}`;
}
function render(data) {
document.getElementById('tableBody').innerHTML = data.map(t => `
${t.nome}
${stars(t.melhores)}
${t.quantidade}
${badge(t.dadosPartes, 'green')}
${badge(t.calculos, 'green')}
${badge(t.oficio)}
${t.valorCausa}
${badge(t.periodicidade)}
${status(t.a2024)}
${status(t.a2025)}
${status(t.a2026)}
${status(t.a2027)}
${status(t.a2028)}
`).join('');
}
function setFilter(f, btn) {
currentFilter = f;
document.querySelectorAll('.filter-btn').forEach(b => b.classList.remove('active'));
btn.classList.add('active');
applyFilters();
}
function setSort(s, btn) {
if (currentSort === s) {
sortDir = sortDir === 'asc' ? 'desc' : 'asc';
} else {
currentSort = s;
sortDir = 'desc';
}
document.querySelectorAll('.sort-btn').forEach(b => {
b.classList.remove('active');
b.querySelector('.sort-direction').textContent = '';
});
btn.classList.add('active');
btn.querySelector('.sort-direction').textContent = sortDir === 'desc' ? '↓' : '↑';
clearSortBtn.classList.add('visible');
applyFilters();
}
function clearSort() {
currentSort = null;
sortDir = 'desc';
document.querySelectorAll('.sort-btn').forEach(b => {
b.classList.remove('active');
b.querySelector('.sort-direction').textContent = '';
});
clearSortBtn.classList.remove('visible');
applyFilters();
}
function applyFilters() {
const search = document.getElementById('searchInput').value.toLowerCase();
let data = [...tribunais];
if (search) data = data.filter(t => t.nome.toLowerCase().includes(search));
if (currentFilter !== 'all') data = data.filter(t => t.tipo === currentFilter);
if (currentSort) {
data.sort((a, b) => {
let av, bv;
if (currentSort === 'melhores') { av = a.melhores; bv = b.melhores; }
else if (currentSort === 'quantidade') { av = a.qVal; bv = b.qVal; }
else if (currentSort === 'periodicidade') { av = a.pVal; bv = b.pVal; }
return sortDir === 'asc' ? av - bv : bv - av;
});
}
render(data);
}
setupFixedHeaderFallback();
render(tribunais);
setTimeout(updateScrollbarWidth, 100);