Oooops! Sua rede está offline. Esta é uma versão previamente em cache da página que você está visitando, talvez o conteúdo não esteja atualizado.
';
let tabContentHTML = '';
const tabsOrder = ['Planos Participativos','Conferências', 'Consultas Públicas', 'Conselhos e Colegiados', 'Fóruns de Participação'];
// Renderiza as 3 primeiras abas (tipos de processos)
processTypes.forEach((type, index) => {
const tabId = `home-tab-${index}`;
const isFirstTab = index === 0;
const activeClass = isFirstTab ? "active" : "";
const tabName = tabsOrder[index];
const ariaSelected = isFirstTab ? "true" : "false";
tabHeadersHTML += `
${tabName}
`;
const validProcesses = type.processes.filter((process) => process);
const typeKey = orderedTypes[index].key;
const sortedProcesses = sortProcessesWithFeatured(validProcesses, typeKey);
const cardsHTML = sortedProcesses.length > 0
? sortedProcesses.map((process) => {
const imageUrl = process.heroImage ? `${cleanImageSource}/${process.heroImage.replace(/^\//, "")}` : defaultImage;
const title = process.title.translation;
function formatDateUTC(dateString) {
if (!dateString) return 'Data não definida';
// Força a interpretação como UTC
const date = new Date(dateString);
const utcDate = new Date(Date.UTC(
date.getUTCFullYear(),
date.getUTCMonth(),
date.getUTCDate()
));
return utcDate.toLocaleDateString("pt-BR", {
timeZone: "UTC",
year: "numeric",
month: "2-digit",
day: "2-digit"
});
}
const formattedStartDate = formatDateUTC(process.startDate || process.publishedAt);
const formattedEndDate = formatDateUTC(process.endDate);
const isFeatured = isProcessFeatured(process, typeKey);
const featuredClass = isFeatured ? " home-process-card-featured" : "";
return `
`;
}).join("\n")
: '
Nenhum processo encontrado para este tipo.';
const activeContentClass = isFirstTab ? "active" : "";
tabContentHTML += `
`;
});
// Renderiza as abas 4 e 5 (Conselhos e Colegiados, Fóruns)
const conselhosTabId = 'home-tab-conselhos';
const forunsTabId = 'home-tab-forums';
tabHeadersHTML += `
${tabsOrder[3]}
`;
tabHeadersHTML += `
${tabsOrder[4]}
`;
// Filtrar assemblies apenas com parent null e separar por tipo
const validAssemblies = assemblies.filter(assembly => assembly.parent === null);
const conselhosAssemblies = validAssemblies.filter(assembly =>
assembly.assemblyType &&
assembly.assemblyType.title &&
assembly.assemblyType.title.translation === "Conselhos e Colegiados"
);
const forunsAssemblies = validAssemblies.filter(assembly =>
assembly.assemblyType &&
assembly.assemblyType.title &&
assembly.assemblyType.title.translation === "Fóruns"
);
const sortedConselhos = sortProcessesWithFeatured(conselhosAssemblies, 'conselhos');
const sortedForuns = sortProcessesWithFeatured(forunsAssemblies, 'forums');
// Gerar HTML para Conselhos e Colegiados
const conselhosCardsHTML = sortedConselhos.length > 0
? sortedConselhos.map((assembly) => {
const imageUrl = assembly.heroImage ? `${cleanImageSource}/${assembly.heroImage.replace(/^\//, "")}` : defaultImage;
const title = assembly.title.translation;
const isFeatured = isProcessFeatured(assembly, 'conselhos');
const featuredClass = isFeatured ? " home-process-card-featured" : "";
return `
`;
}).join("\n")
: '
Nenhum conselho encontrado.';
// Gerar HTML para Fóruns
const forunsCardsHTML = sortedForuns.length > 0
? sortedForuns.map((assembly) => {
const imageUrl = assembly.heroImage ? `${cleanImageSource}/${assembly.heroImage.replace(/^\//, "")}` : defaultImage;
const title = assembly.title.translation;
const isFeatured = isProcessFeatured(assembly, 'forums');
const featuredClass = isFeatured ? " home-process-card-featured" : "";
return `
`;
}).join("\n")
: '
Nenhum fórum encontrado.';
// Adicionar conteúdo das abas
tabContentHTML += `
`;
tabContentHTML += `
`;
tabHeadersHTML += '
';
return `