Nenhum contrato encontrado com os filtros informados.

'; downloadFile(html, 'text/html', 'html'); break; case 'csv': const lines = [headers.join(',')]; rows.forEach(row => { lines.push(headers.map(h => escapeCsv(row[h] ?? '')).join(',')); }); downloadFile(lines.join('\n'), 'text/csv', 'csv'); break; case 'txt': const blocks = rows.map(r => headers.map(k => `${k}: ${r[k]}`).join('\n')); downloadFile(blocks.join('\n\n'), 'text/plain', 'txt'); break; default: alert('Formato não suportado.'); } } if (exportBtn && exportMenu) { exportBtn.addEventListener('click', function (ev) { ev.preventDefault(); exportMenu.classList.toggle('is-open'); }); exportMenu.addEventListener('click', function (ev) { const btn = ev.target.closest('button[data-format]'); if (!btn) return; exportMenu.classList.remove('is-open'); exportData(btn.getAttribute('data-format')); }); } })();
Acessar o conteúdo