Cobertura de Precatórios

Miner Precatórios

Cobertura completa e atualizada

Confira quais tribunais e LOAs que estão disponíveis no Miner Precatórios e explore os períodos de cobertura de forma rápida e fácil.

'; } 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);