Connect with us

POLITICA

El informe regional alerta que el antisemitismo en internet sigue en niveles históricamente altos

Published

on



El antisemitismo digital continuó en niveles históricamente elevados y no regresó a los valores previos al ataque terrorista perpetrado por Hamas contra Israel el 7 de octubre de 2023. Esa fue una de las principales conclusiones del Informe Anual sobre Antisemitismo en Internet 2025, elaborado por el Observatorio Web y el Congreso Judío Latinoamericano, que analizó más de 118 millones de contenidos publicados en español en redes sociales, plataformas digitales, buscadores y portales de noticias.

La investigación, presentada esta semana, constituyó uno de los relevamientos más extensos realizados en la región sobre discursos de odio en Internet. A través de herramientas de monitoreo digital, análisis automatizado y revisión humana especializada, los investigadores relevaron publicaciones en Google, YouTube, X, Facebook y comentarios realizados por usuarios en medios digitales para medir la evolución del antisemitismo en el ecosistema digital de habla hispana.

Advertisement

El informe sobre antisemitismo en Internet del 2025

El estudio concluyó que, aunque disminuyó la intensidad de las conversaciones vinculadas directamente con la guerra entre Israel y Hamas, el volumen de mensajes antisemitas siguió muy por encima de los niveles registrados antes de octubre de 2023.

Los resultados mostraron que el fenómeno experimentó una transformación profunda a partir del 7 de octubre de 2023. Según el informe, el conflicto en Medio Oriente no creó el antisemitismo digital, pero actuó como un acelerador: profundizó tendencias preexistentes y elevó de manera significativa la circulación de contenidos hostiles hacia los judíos.

“Hace algunos años se viene comentando sobre el aumento de antisemitismo. Con este informe podemos cuantificarlo para entender su evolución. Surge el interrogante sobre cómo afectará principalmente a los usuarios más jóvenes, que pasan mucho tiempo en redes sociales, esta exposición de casi tres años de alto antisemitismo”, afirmó Claudio Epelman, director ejecutivo del Congreso Judío Latinoamericano.

Advertisement

La preocupación expresada por Epelman encontró respaldo en los datos del estudio. Los investigadores detectaron que, aun cuando disminuyó la intensidad de las conversaciones vinculadas directamente con la guerra entre Israel y Hamas, el volumen de mensajes antisemitas siguió muy por encima de los niveles previos a octubre de 2023.

El informe, elaborado por Ariel Seidler y Ariel Grosman, destacó que “el cese de la violencia en Medio Oriente precedió a un descenso significativo en la cantidad de mensajes antisemitas analizados”, pero advirtió que esa disminución no debía interpretarse como un retorno a la situación anterior. Por el contrario, sostuvo que “el nivel de antisemitismo continúa muy por encima del registrado antes del 7 de octubre de 2023”.

Los registros de los últimos diez años del antisemitismo en Internet

El punto de quiebre que identificó la investigación coincidió con los ataques perpetrados por Hamas contra Israel el 7 de octubre de 2023. Ese día, miles de integrantes de la organización terrorista irrumpieron en territorio israelí desde la Franja de Gaza, atacaron bases militares, localidades y un festival de música electrónica cercano a la frontera. La ofensiva dejó alrededor de 1.200 muertos —la mayoría civiles—, miles de heridos y más de 250 personas secuestradas, que fueron trasladadas a Gaza como rehenes. La masacre desencadenó la guerra más extensa entre Israel y Hamas desde la creación del Estado israelí y se convirtió también en un punto de inflexión para la conversación digital global sobre Israel, el judaísmo y Medio Oriente.

Advertisement

De hecho, los autores del informe consideraron que aquel episodio marcó una ruptura estadística y discursiva en la evolución del antisemitismo en Internet. “Así como el inicio de los ataques del 7 de octubre de 2023 marcó un punto de inflexión en términos de antisemitismo”, sostuvo el documento, que identificó desde entonces un crecimiento sostenido tanto en la cantidad de contenidos de odio como en su alcance potencial entre los usuarios de las distintas plataformas digitales.

Los números ayudaron a dimensionar la magnitud del fenómeno. Antes del ataque terrorista, en septiembre de 2023, el Observatorio Web recopilaba en promedio unos 4.000 mensajes antisemitas diarios en la red social X. El mismo 7 de octubre, esa cifra se disparó hasta aproximadamente 200.000 publicaciones en una sola jornada.

Durante octubre de 2023 se registraron cerca de 5,9 millones de contenidos antisemitas. Dos años más tarde, cuando la guerra se acercaba a su final, el volumen siguió siendo extraordinariamente alto: septiembre de 2025 acumuló alrededor de 4,9 millones de mensajes de odio y diciembre de ese mismo año, ya con el conflicto finalizado, todavía registró cerca de un millón de contenidos antisemitas.

Advertisement

La comparación permitió observar el fenómeno que más preocupó a los investigadores. Aunque el volumen disminuyó respecto de los momentos más intensos de la guerra, el antisemitismo digital quedó instalado en un escalón muy superior al que existía previamente. En otras palabras, el fenómeno no regresó al punto de partida.

Esa conclusión apareció desarrollada en varios pasajes del informe. Los autores sostuvieron que, tras dos años de conflicto y exposición permanente a narrativas hostiles, una parte de esos discursos dejó de depender exclusivamente de acontecimientos coyunturales y se incorporó de manera más estable a la conversación digital.

La investigación utilizó una definición para describir el proceso: determinadas formas de antisemitismo “se han normalizado como parte del paisaje digital”.

Advertisement

Los espacios donde más circuló el odio

El estudio mostró diferencias entre las plataformas analizadas.

X volvió a registrar los niveles más altos de antisemitismo. El 20,68% de los contenidos relevados fue clasificado dentro de esa categoría. Esto significó que aproximadamente uno de cada cinco mensajes vinculados a temas judíos, Israel, Holocausto o cuestiones relacionadas contenía expresiones antisemitas.

Los investigadores destacaron que la plataforma consolidó una tendencia ascendente observada desde 2020 y que continuó siendo el espacio digital donde el fenómeno alcanzó su mayor intensidad.

Advertisement

Facebook ocupó el segundo lugar con un 14,98% de comentarios clasificados como antisemitas. Según el informe, se trató del nivel más alto registrado desde que comenzó la serie histórica de mediciones.

Los comentarios en medios digitales alcanzaron un 15,16%, por encima de Facebook, mientras que en YouTube el porcentaje de antisemitismo en comentarios llegó al 11,58%.

Google presentó los niveles más bajos del estudio, con un promedio anual del 3,92%.

Advertisement

A partir de esta comparación, el informe identificó una tendencia: el antisemitismo encontró mayor espacio en entornos más abiertos, virales y orientados a la interacción inmediata, mientras que los espacios más estructurados o vinculados a búsquedas específicas presentaron niveles menores.

El documento resumió esa conclusión: “El análisis comparado de las plataformas relevadas muestra que el antisemitismo digital se concentró con mayor fuerza en los entornos más abiertos, virales y orientados a la interacción inmediata, mientras que los espacios más estructurados o mediados por lógicas de búsqueda presentaron niveles relativamente menores”.

Del antisemitismo al antisionismo

Otro de los hallazgos centrales fue la transformación de las formas que adoptó el antisemitismo contemporáneo.

Advertisement

A diferencia de décadas anteriores, el fenómeno ya no apareció dominado por la negación del Holocausto o por los estereotipos clásicos sobre los judíos. Aunque esos elementos siguieron presentes, el grueso de los contenidos relevados se vinculó con discursos relacionados con Israel y el conflicto en Medio Oriente.

En X, por ejemplo, el 87,63% del contenido antisemita identificado fue clasificado dentro de la categoría “antisionista”. Los mensajes que compararon al sionismo o al Estado de Israel con el nazismo representaron otro 12,76%.

La negación, banalización o distorsión del Holocausto apenas alcanzó el 0,39% de los contenidos antisemitas relevados en esa plataforma.

Advertisement

Los investigadores observaron además una tendencia creciente al uso de términos como “sionista” o “sionismo” para sustituir la palabra “judío” y eludir los mecanismos de moderación implementados por las plataformas.

Según el informe, una parte importante del antisemitismo actual se expresó a través de acusaciones de genocidio, apartheid, limpieza étnica, conspiraciones globales o comparaciones entre Israel y la Alemania nazi.

En YouTube, por ejemplo, predominaron las acusaciones de genocidio y apartheid, seguidas por teorías conspirativas contra los judíos. El informe destacó “el encadenamiento de discursos entre ideas conspirativas y críticas a la coyuntura de Medio Oriente”, donde muchos usuarios utilizaron la guerra como vía para difundir prejuicios históricos.

Advertisement

Los países donde el fenómeno tuvo mayor presencia

El trabajo también ofreció una radiografía regional.

Al analizar los 10 países con mayor volumen de publicaciones en X, los investigadores encontraron que cinco se ubicaron por encima del promedio general de antisemitismo registrado en la plataforma.

Se trató de España, Uruguay, Colombia, México y Chile.

Advertisement

España apareció además como el país con mayor cantidad absoluta de contenidos recopilados en idioma español dentro de la muestra analizada, lo que le otorgó un peso relevante en la conversación digital.

La situación presentó diferencias cuando se observaron los comentarios en medios digitales.

En este apartado, que incluyó el análisis de contenidos provenientes de Argentina, Brasil, Chile, Colombia, Panamá y Uruguay, los investigadores detectaron que Uruguay y Brasil se ubicaron por encima del promedio general de antisemitismo.

Advertisement

El caso uruguayo fue uno de los más llamativos. Aunque el volumen total de comentarios fue relativamente bajo en comparación con otros países, más de una cuarta parte de los mensajes relevados fue clasificada como antisemita.

El informe señaló además que, por quinto año consecutivo, uno de los principales medios digitales uruguayos volvió a registrar el porcentaje más alto de comentarios antisemitas dentro de la muestra regional.

Javier Milei participó en el plenario de la Alianza Internacional para el Recuerdo del Holocausto (IHRA) sobre antisemitismo

El caso argentino

Argentina formó parte del universo analizado en el capítulo dedicado a comentarios en medios digitales y aportó elementos relevantes.

Advertisement

El informe mostró que el 15,16% de los comentarios relevados en medios digitales fue clasificado como antisemita. Sin embargo, más importante que el porcentaje general resultó la temática sobre la cual se concentraron esos discursos.

Según los investigadores, el 70,19% de los comentarios antisemitas apareció en notas relacionadas con Israel y, especialmente, con la guerra en Gaza.

Esto significó que el antisemitismo actual no se manifestó principalmente alrededor de temas vinculados a la vida comunitaria judía local, sino asociado a la cobertura internacional del conflicto en Medio Oriente.

Advertisement

El segundo tema más asociado a contenidos antisemitas fue el Holocausto, que concentró el 14,14% de los comentarios discriminatorios detectados.

Los autores advirtieron además sobre el crecimiento de expresiones que presentaron a los judíos o a los sionistas como equivalentes a los nazis, una narrativa recurrente en distintos países y plataformas.

De hecho, una de las observaciones del informe fue el aumento de comentarios que utilizaron términos como “genocidio”, “fascismo”, “nazismo” o “apartheid” para referirse indistintamente a Israel, al sionismo o directamente a los judíos. Los investigadores consideraron que este tipo de discursos se convirtió en una de las principales vías de circulación del antisemitismo contemporáneo.

Advertisement

Al mismo tiempo, el informe identificó una particularidad en los espacios de comentarios de medios digitales: la presencia de contenidos positivos alcanzó el 33,34% del total y se convirtió en la categoría más numerosa.

Dentro de ese grupo se incluyeron expresiones de apoyo a las comunidades judías, recordatorios del Holocausto, mensajes de solidaridad y defensas del derecho de Israel a existir.

Para los investigadores, este dato mostró que los espacios de comentarios no estuvieron dominados exclusivamente por el odio, sino que constituyeron ámbitos donde convivieron posiciones muy contrapuestas respecto de las temáticas vinculadas al judaísmo y a Israel.

Advertisement

El director ejecutivo del Congreso Judío Latinoamericano, Claudio Epelman, alertó sobre el impacto del antisemitismo en entornos digitales

Un fenómeno que trascendió la coyuntura

Más allá de los porcentajes específicos de cada plataforma, la principal conclusión del informe apuntó a una transformación más profunda.

Los autores sostuvieron que el conflicto en Medio Oriente elevó de manera significativa la exposición de millones de usuarios a contenidos antisemitas y modificó la escala del fenómeno en Internet.

La preocupación ya no se limitó a la existencia de grupos marginales que produjeron discursos de odio, sino a la capacidad que esos mensajes tuvieron para circular de manera masiva y alcanzar audiencias cada vez más amplias.

Advertisement

El informe recordó que durante 2025 los contenidos antisemitas en X acumularon más de 313 millones de impresiones potenciales, una cifra que permitió dimensionar la magnitud de la exposición.

Por eso, más allá de la evolución mensual de los indicadores, el interrogante que atravesó todo el estudio fue qué efectos pudo generar una exposición prolongada a este tipo de contenidos, especialmente entre los usuarios más jóvenes.

A casi tres años del ataque del 7 de octubre de 2023, la principal conclusión del Congreso Judío Latinoamericano y el Observatorio Web fue que el antisemitismo digital siguió instalado en niveles históricamente elevados y que, aun cuando la guerra dejó de ocupar el centro de la agenda internacional, el fenómeno permaneció muy por encima de los registros previos a aquel punto de inflexión.

Advertisement

cartel conmemoración atentado mutua judía amia,mujer

POLITICA

Santilli se reunió los gobernadores de Jujuy y Tierra del Fuego para seguir las negociaciones por el Presupuesto 2027 y la reforma electoral

Published

on


El jefe de Gabinete, Diego Santilli, se reunió este jueves con el gobernador de Jujuy, Carlos Sadir, y por la tarde recibió al de Tierra del Fuego, Gustavo Melella, en medio de las negociaciones que profundizó con las provincias para reunir apoyos al Presupuesto 2027 y a la reforma electoral que impulsa el oficialismo en el Congreso.

El primero de los dos encuentros se celebró entre las 10 y las 12 en el Ministerio de Economía junto Luis Caputo y otros funcionarios de la cartera: el secretario de Coordinación de Infraestructura, Fernando Herrmann; y el secretario de Obras Públicas, Bernardo Heredia.

Advertisement

Según aseguró Sadir en sus redes, la reunión fue “positiva” y sirvió para plantear las “necesidades y urgencias” de su provincia, junto con los proyectos y las obras públicas que reclama su gestión. “Seguimos trabajando para avanzar en soluciones concretas y mejorar la calidad de vida de nuestra gente”, señaló el jujeño.

Por su parte, fuentes oficiales agregaron que Santilli y Caputo repasaron los principales temas de la agenda conjunta entre el Gobierno nacional y la provincia, así como los proyectos legislativos y el estado general de la relación entre ambas jurisdicciones.

Diego Santilli, Luis Caputo y funcionarios de Economía se reunieron con el gobernador de Jujuy, Carlos Sadir. (Foto: X @carlossadirjuy)

La ronda de encuentros continuó por la tarde, cuando el ministro coordinador recibió a las 17 a Melella en la Casa Rosada. Se trata de uno de los gobernadores enfrentados políticamente con el Gobierno, aunque con mejor diálogo con el oficialismo que otras figuras del kirchnerismo como Axel Kicillof o Gildo Insfrán. De hecho, el fueguino viene de recibir al canciller Pablo Quirno y al ministro de Defensa, Carlos Presti, el viernes pasado en la gobernación de Ushuaia, durante la visita de los funcionarios a la Base Naval Integrada que el Gobierno prevé construir en esa ciudad.

Advertisement

Tras el encuentro, Melella confirmó que acompañará el proyecto de Mavilnas y el Presupuesto 2027 presentados por el Gobierno nacional. También confirmó que está a favor de eliminar las PASO. Los votos de los legisladores fueguinos son clave para el avance de las iniciativas del oficialismo en el Congreso.

“Creo que hay que acompañar el Presupuesto. Es una herramienta que uno presenta y que se trabaja entre todos, pero se pueden corregir los puntos de discapacidad y universidades públicas”, planteó Melella al finalizar la reunión con Santilli. También confirmó que “el proyecto de Malvinas la idea es acompañarlo en el Congreso”.

Respecto del vínculo de Tierra del Fuego con la Administración central, dijo que su planteo es financiero. “Bajó la coparticipación y la recaudación propia; la industria está muy lastimada y eso son menos recursos; también tenés menos acciones del Gobierno que asume la provincia, entonces también aumenta la demanda. Hay un reordenamiento fiscal, pero necesitamos el reacomodamiento de la coparticipación”, afirmó.

Advertisement

Inicialmente, la jornada también preveía un encuentro con el gobernador de Chaco, Leandro Zdero. Sin embargo, a último momento la reunión fue postergada para el 24 de septiembre, debido a que el mandatario radical tiene previsto encabezar este mismo jueves una reunión del Comité de Emergencia de su gestión junto a funcionarios provinciales, organizaciones no gubernamentales e instituciones locales, para coordinar las acciones frente al fenómeno climático “El Niño”.

Diego Santilli viene de recibir a os gobernadores Raúl Jalil (Catamarca), Osvaldo Jaldo (Tucumán), Gustavo Sáenz (Salta) y Juan Pablo Valdés (Corrientes). (Foto: Jefatura de Gabinete)
Diego Santilli viene de recibir a os gobernadores Raúl Jalil (Catamarca), Osvaldo Jaldo (Tucumán), Gustavo Sáenz (Salta) y Juan Pablo Valdés (Corrientes). (Foto: Jefatura de Gabinete)

Una semana de encuentros con gobernadores

La reunión con Sadir y Melella se suma a una serie de encuentros que Santilli viene sosteniendo con mandatarios provinciales desde el inicio de la semana. El martes, el jefe de Gabinete y Caputo recibieron en el Ministerio de Economía al gobernador de Neuquén, Rolando Figueroa, para firmar convenios de mantenimiento y mejora de obras viales en su distrito; además, le ratificaron que la provincia patagónica seguirá bajo el paraguas de subsidios del régimen de Zona Fría.

Al día siguiente, Santilli recibió en Casa Rosada a otros cuatro gobernadores: Raúl Jalil (Catamarca), Osvaldo Jaldo (Tucumán), Gustavo Sáenz (Salta) y Juan Pablo Valdés (Corrientes). Ese encuentro se centró en reclamos regionales, como el estado de las rutas nacionales en sus provincias y la creación de una Zona Cálida —un régimen de subsidios a la electricidad durante el verano— que los mandatarios del Norte Grande condicionan a acompañar la reducción del régimen de Zona Fría que impulsa el oficialismo. Jaldo, el único que habló con la prensa tras esa reunión, pidió que el Presupuesto tenga “carácter federal” y contemple partidas específicas para obras en las provincias.

Advertisement
Continue Reading

POLITICA

Maximiliano Pullaro armó una cumbre de gobernadores aliados en Rosario en plena discusión por el presupuesto y las PASO

Published

on



ROSARIO.-Rosario fue este jueves algo más que la capital del deporte suramericano. Al mediodía, el gobernador de Santa Fe, Maximiliano Pullaro, recibió a un grupo de pares provinciales para recorrer las nuevas sedes de los Juegos Suramericanos Santa Fe 2026 y, sobre todo, para dejar registrada una imagen con lectura política inequívoca.

Concurrieron el cordobés Martín Llaryora, el chubutense Ignacio “Nacho” Torres y el correntino Juan Pablo Valdés. A ellos se había sumado, en la ceremonia inaugural del sábado por la noche, el entrerriano Rogelio Frigerio, un habitué de este círculo de mandatarios. La agenda incluyó una recorrida por los estadios y las obras ejecutadas para la competencia, más una foto conjunta.

Advertisement
La inauguración de los Juegos Suramericanos de Santa Fe 2026 Marcelo Manera

La ciudad atraviesa los Juegos con estadios colmados, tribunas llenas y familias acompañando a los atletas, la postal que Pullaro busca exhibir ante sus colegas: la de una provincia capaz de organizar un megaevento internacional de manera ordenada. Pero detrás del envoltorio deportivo, la reunión tuvo un contenido político que ninguno de los protagonistas disimula.

Los gobernadores que llegaron a Rosario provienen de extracciones partidarias distintas —Torres es de Pro, Valdés es radical y Llaryora tiene raíz peronista—, pero comparten una buena sintonía con el anfitrión. No es un dato menor: todos integraron el espacio de Provincias Unidas, el intento de construir una alternativa a los dos polos que hoy dominan la escena nacional, el peronismo y el oficialismo libertario.

El encuentro no ocurrió en el vacío. Se dio casi en simultáneo con la ronda de reuniones que la Casa Rosada abrió tras la presentación del presupuesto nacional 2027. En esa mesa paralela, el jefe de Gabinete, Diego Santilli, ya recibió a los gobernadores de Catamarca, Corrientes, Salta y Tucumán, y tiene previstos nuevos encuentros en las próximas horas.

Advertisement

Sobre ese tablero también pesa la reforma política que discute el Congreso, que incluye la incorporación de la Ficha Limpia y la eventual derogación o suspensión de las elecciones primarias (PASO). Para varios de los mandatarios que rodearán a Pullaro, la definición de esas reglas de juego no es abstracta: buscarán su reelección y necesitan un escenario electoral previsible.

Pullaro, junto a Torres, Valdés y CornejoMarcelo Manera –

La convocatoria rosarina apuntó, en el fondo, a consolidar una comunión de gobernadores del llamado interior productivo, en un momento en que las provincias ganan peso como garantes de la gobernabilidad y la gestión frente a un Estado nacional en repliegue. La Región Centro —Santa Fe, Córdoba y Entre Ríos— vuelve a asomar como un núcleo de poder con capacidad de incidir en la agenda.

Pullaro se ocupó de bajarle el tono a la especulación sobre su proyección personal. Esta semana desmintió ser una opción electoral, aunque no ocultó su ambición colectiva: dijo esperar que el gobierno escuche a las provincias y que este bloque pueda ser “un polo de poder también y de decisión” sobre el rumbo del país.

Advertisement

Puertas adentro, sin embargo, la fotografía de Rosario alimentó una hipótesis que circula con fuerza en el mundo político: la de que estos gobernadores podrían terminar articulando una tercera vía para las elecciones presidenciales de 2027, por fuera del kirchnerismo y del mileísmo.

Santilli recibió ayer a Valdés, Sáenz, Jalil y Jaldo en la Casa RosadaPresidencia

En esa línea empieza a deslizarse una idea todavía embrionaria, pero que ya se comenta en despachos y mesas de dirigentes: que el espacio resuelva su candidatura presidencial mediante una interna o primaria entre sus propias figuras. El mecanismo permitiría dirimir sin fracturas quién encabeza la boleta —Pullaro y Llaryora asoman como los nombres más mencionados— y, a la vez, dotar de épica y volumen a una construcción que hoy es más una aspiración que una estructura.

Nada de eso está cerrado, y la propia discusión sobre el futuro de las PASO condiciona el formato que podría adoptar esa eventual competencia. Pero la escena de este jueves en Rosario, con varios gobernadores caminando juntos entre estadios llenos, funciona como un ensayo de lo que sus impulsores imaginan para dentro de dos años.

Advertisement



presentación del presupuesto,recibió,la reforma política,Germán de los Santos,Conforme a

Continue Reading

POLITICA

Uno por uno, así votaron los senadores el proyecto de Inocencia Fiscal II

Published

on



Uno por uno, así votaron los senadores el proyecto de Inocencia Fiscal II

Advertisement

Advertisement


${status}

`;
}

Advertisement

function createCard(item, borderColor) {
const card = document.createElement(«div»);
card.className = «vs2__card»;

const fotoWrap = document.createElement(«div»);
fotoWrap.className = «vs2__foto»;
if (borderColor) {
fotoWrap.style.borderColor = borderColor;
} else {
fotoWrap.style.opacity = «0.3»;
fotoWrap.style.border = «none»;
}

const img = document.createElement(«img»);
img.loading = «lazy»;
img.decoding = «async»;
img.alt = «foto-senador»;
img.src = » + (item.url_foto || «»);
img.addEventListener(«error», () => {
img.style.opacity = «0.35»;
}, {
once: true
});

Advertisement

fotoWrap.appendChild(img);

const nombre = document.createElement(«p»);
nombre.className = «vs2__nombre»;
nombre.textContent = String(item.nombres || «»).toLowerCase();

const apellido = document.createElement(«p»);
apellido.className = «vs2__apellido»;
apellido.textContent = String(item.apellido || «»).toLowerCase();

Advertisement

const bloque = document.createElement(«span»);
bloque.className = «vs2__bloque»;
bloque.textContent = String(item.bloque || «»);

card.appendChild(fotoWrap);
card.appendChild(nombre);
card.appendChild(apellido);
card.appendChild(bloque);

return card;
}

Advertisement

function seatClass(kind) {
if (kind === «AFIRMATIVO») return «vs2__seat–afirmativo»;
if (kind === «NEGATIVO») return «vs2__seat–negativo»;
if (kind === «ABSTENCIÓN») return «vs2__seat–abstencion»;
if (kind === «AUSENTE») return «vs2__seat–ausente»;
return «vs2__seat–empty»;
}

function hemicicloParams(which) {
if (which === «big») {
return {
centerX: 300,
baseY: 450,
rows: 5,
seatsPerRow: [21, 18, 16, 11, 6],
verticalOffset: 2,
radiusStart: 300,
radiusStep: 55
};
}
return {
centerX: 300,
baseY: 450,
rows: 5,
seatsPerRow: [21, 18, 16, 12, 7],
verticalOffset: 0,
radiusStart: 170,
radiusStep: 30
};
}

function computeRowSeatCounts(seatsPerRow, totals) {
const totalSeats = seatsPerRow.reduce((a, b) => a + b, 0);
return seatsPerRow.map(seatsInRow => {
const exact = {
AFIRMATIVO: (totals.AFIRMATIVO / totalSeats) * seatsInRow,
NEGATIVO: (totals.NEGATIVO / totalSeats) * seatsInRow,
«ABSTENCIÓN»: (totals[«ABSTENCIÓN»] / totalSeats) * seatsInRow,
AUSENTE: (totals.AUSENTE / totalSeats) * seatsInRow
};

Advertisement

const floor = {
AFIRMATIVO: Math.floor(exact.AFIRMATIVO),
NEGATIVO: Math.floor(exact.NEGATIVO),
«ABSTENCIÓN»: Math.floor(exact[«ABSTENCIÓN»]),
AUSENTE: Math.floor(exact.AUSENTE)
};

let assigned = floor.AFIRMATIVO + floor.NEGATIVO + floor[«ABSTENCIÓN»] + floor.AUSENTE;
let diff = seatsInRow – assigned;

const rems = [{
k: «AFIRMATIVO»,
r: exact.AFIRMATIVO – floor.AFIRMATIVO
},
{
k: «NEGATIVO»,
r: exact.NEGATIVO – floor.NEGATIVO
},
{
k: «ABSTENCIÓN»,
r: exact[«ABSTENCIÓN»] – floor[«ABSTENCIÓN»]
},
{
k: «AUSENTE»,
r: exact.AUSENTE – floor.AUSENTE
},
].sort((a, b) => b.r – a.r);

Advertisement

while (diff > 0) {
for (const it of rems) {
if (diff <= 0) break;
floor[it.k] += 1;
diff–;
}
}
return floor;
});
}

function renderHemiciclo(which, totals) {
const el = byRole(which === «big» ? «hemiciclo-big» : «hemiciclo-small»);
if (!el) return;
el.innerHTML = «»;

const p = hemicicloParams(which);
let rowSeatCounts = computeRowSeatCounts(p.seatsPerRow, totals);
const maxSeatsInRow = p.seatsPerRow[0];

Advertisement

for (let col = 0; col < maxSeatsInRow; col++) {
for (let row = 0; row < p.rows; row++) {
if (col >= p.seatsPerRow[row]) continue;

const seatsInThisRow = p.seatsPerRow[row];
const radius = p.radiusStart – row * (p.radiusStep – p.verticalOffset);
const angleRange = Math.PI;
const angleStep = (seatsInThisRow > 1) ? angleRange / (seatsInThisRow – 1) : 0;
const angle = (Math.PI – angleRange) / 2 + col * angleStep;

const x = p.centerX + radius * Math.cos(angle);
const y = p.baseY – radius * Math.sin(angle);

Advertisement

let kind = «EMPTY»;
if (rowSeatCounts[row].AFIRMATIVO > 0) {
kind = «AFIRMATIVO»;
rowSeatCounts[row].AFIRMATIVO–;
} else if (rowSeatCounts[row].NEGATIVO > 0) {
kind = «NEGATIVO»;
rowSeatCounts[row].NEGATIVO–;
} else if (rowSeatCounts[row][«ABSTENCIÓN»] > 0) {
kind = «ABSTENCIÓN»;
rowSeatCounts[row][«ABSTENCIÓN»]–;
} else if (rowSeatCounts[row].AUSENTE > 0) {
kind = «AUSENTE»;
rowSeatCounts[row].AUSENTE–;
}

const seat = document.createElement(«div»);
seat.className = «vs2__seat » + seatClass(kind);
seat.style.left = x + «px»;
seat.style.top = y + «px»;
el.appendChild(seat);
}
}
}

function populateFilters(data) {
const selProv = byRole(«select-provincia»);
const selBloq = byRole(«select-bloque»);
if (!selProv || !selBloq) return;

Advertisement

const provSet = new Set();
const bloqSet = new Map(); // bloque -> full

data.forEach(r => {
if (r.provincia) provSet.add(r.provincia);
if (r.bloque) bloqSet.set(r.bloque, r.bloque_full || r.bloque);
});

Array.from(provSet).sort().forEach(p => {
const opt = document.createElement(«option»);
opt.value = p;
opt.textContent = p;
selProv.appendChild(opt);
});

Advertisement

Array.from(bloqSet.entries())
.sort((a, b) => String(a[0]).localeCompare(String(b[0])))
.forEach(([code, full]) => {
const opt = document.createElement(«option»);
opt.value = code;
opt.textContent = `${full} (${code})`;
selBloq.appendChild(opt);
});
}

function renderFiltered(data, field, value, targetEl) {
targetEl.innerHTML = «»;
const rows = data.filter(r => value === «all» || r[field] === value);

const order = [«AFIRMATIVO», «NEGATIVO», «ABSTENCIÓN», «AUSENTE»];
const colorBy = {
AFIRMATIVO: «#00A377»,
NEGATIVO: «#c90808»,
«ABSTENCIÓN»: «#444″,
AUSENTE: null
};

Advertisement

order.forEach(voto => {
rows.filter(r => normalizeVoto(r.voto) === voto).forEach(r => {
targetEl.appendChild(createCard(r, colorBy[voto]));
});
});
}

function wireUI(data) {
// toggles
$$(‘[data-role=»section»], [data-role=»filter-provincia»], [data-role=»filter-bloque»]’).forEach(sec => {
const btn = sec.querySelector(‘[data-role=»toggle»]’);
if (!btn) return;
btn.addEventListener(«click», () => {
const open = sec.getAttribute(«data-open») !== «true»;
openPanel(sec, open);
});
});

// abrir por defecto secciones principales, y dejar filtros cerrados
$$(‘[data-role=»section»]’).forEach(sec => openPanel(sec, true));
$$(‘[data-role=»filter-provincia»], [data-role=»filter-bloque»]’).forEach(sec => openPanel(sec, false));

Advertisement

// go top
const goTop = byRole(«go-top»);
if (goTop) {
goTop.addEventListener(«click», () => root.scrollIntoView({
behavior: «smooth»
}));
const obs = new IntersectionObserver((entries) => {
entries.forEach(e => {
goTop.style.display = e.isIntersecting ? «block» : «none»;
});
}, {
threshold: 0.1
});
obs.observe(root);
}

// filtros
const selProv = byRole(«select-provincia»);
const selBloq = byRole(«select-bloque»);
const provOut = byRole(«provincia-results»);
const bloqOut = byRole(«bloque-results»);

if (selProv && provOut) {
selProv.addEventListener(«change», (e) => {
renderFiltered(data, «provincia», e.target.value, provOut);
const sec = byRole(«filter-provincia»);
if (sec) openPanel(sec, true);
});
}

Advertisement

if (selBloq && bloqOut) {
selBloq.addEventListener(«change», (e) => {
renderFiltered(data, «bloque», e.target.value, bloqOut);
const sec = byRole(«filter-bloque»);
if (sec) openPanel(sec, true);
});
}
}

async function init() {
setLoaded(false);

const csvUrl = root.dataset.csvUrl;
if (!csvUrl) {
const summary = byRole(«summary»);
if (summary) summary.innerHTML = `

Advertisement

Error: falta data-csv-url

`;
return;
}

try {
const Papa = await ensurePapa();

Advertisement

Papa.parse(csvUrl, {
download: true,
header: true,
skipEmptyLines: true,
complete: function(res) {
const data = (res && res.data) ? res.data : [];

// panels por voto
const panelByVote = {};
$$(‘[data-role=»section»]’).forEach(sec => {
const voto = sec.getAttribute(«data-voto»);
const panel = sec.querySelector(‘[data-role=»panel»]’);
if (voto && panel) panelByVote[voto] = panel;
});

const counts = {
AFIRMATIVO: 0,
NEGATIVO: 0,
«ABSTENCIÓN»: 0,
AUSENTE: 0
};
const colorBy = {
AFIRMATIVO: «#00A377»,
NEGATIVO: «#c90808»,
«ABSTENCIÓN»: «#444″,
AUSENTE: null
};

Advertisement

data.forEach(row => {
const voto = normalizeVoto(row.voto);
if (!counts.hasOwnProperty(voto)) return;
counts[voto]++;

const panel = panelByVote[voto];
if (panel) {
panel.appendChild(createCard(row, colorBy[voto]));
}
});

// counts en UI
$$(‘[data-role=»count»]’).forEach(el => {
const k = el.getAttribute(«data-kind»);
if (k && counts.hasOwnProperty(k)) el.textContent = String(counts[k]);
});

Advertisement

// hemiciclo + summary
renderHemiciclo(«big», counts);
renderHemiciclo(«small», counts);
renderSummary(counts);

// filtros + ui
populateFilters(data);
wireUI(data);

setLoaded(true);

Advertisement

// recalcular heights en secciones abiertas
$$(‘[data-role=»section»]’).forEach(sec => openPanel(sec, true));
}
});

} catch (err) {
console.error(err);
const summary = byRole(«summary»);
if (summary) {
summary.innerHTML = `

Error: ${escapeHtml(err.message || err)}

Advertisement

`;
}
}
}

init();
})();

Advertisement
Continue Reading

Tendencias