10/10/2026 21:26
Eduardo Castex 12°
Titulares
Un ave rehabilitada volvió a volar en libertad tiempo después de haber sido rescatada en mal estado de salud Puerto Vallarta se prepara para llegada de huracán Simón, que alcanza la categoría 4 Embajador Martini: Salud no renovará el contrato de una médica por el presunto uso indebido de redes sociales durante su horario de trabajo Messi le pasa alguna factura a Tapia, que en cualquier momento pide su Honoris Causa Es oficial | Texas confirmó que los taxis aéreos empezarán a funcionar desde esta fecha El debate secreto de los hermanos Milei En la década de 1980, Michael Keaton estaba en la cima de Hollywood con "Batman" y compró un rancho ganadero de 1000 acres en Montana; durmió en una tienda de campaña mientras construía una mansión de montaña desde cero En la década de 1940, James Cagney compró 500 acres de tierra en California como refugio privado; décadas después, se convirtió en un santuario de vida silvestre Un ave rehabilitada volvió a volar en libertad tiempo después de haber sido rescatada en mal estado de salud Puerto Vallarta se prepara para llegada de huracán Simón, que alcanza la categoría 4 Embajador Martini: Salud no renovará el contrato de una médica por el presunto uso indebido de redes sociales durante su horario de trabajo Messi le pasa alguna factura a Tapia, que en cualquier momento pide su Honoris Causa Es oficial | Texas confirmó que los taxis aéreos empezarán a funcionar desde esta fecha El debate secreto de los hermanos Milei En la década de 1980, Michael Keaton estaba en la cima de Hollywood con "Batman" y compró un rancho ganadero de 1000 acres en Montana; durmió en una tienda de campaña mientras construía una mansión de montaña desde cero En la década de 1940, James Cagney compró 500 acres de tierra en California como refugio privado; décadas después, se convirtió en un santuario de vida silvestre
Impacto Castex
NACIONALES

Uno por uno, cómo votaron los diputados la reforma de la Carta Orgánica del Banco Central

Uno por uno, cómo votaron los diputados la reforma de la Carta Orgánica del Banco Central

La iniciativa del oficialismo tuvo 144 votos a favor, 102 en contra y 9 abstenciones. La votación del peronismo, La Libertad Avanza, el PRO, la UCR y los bloques provinciales. Quié

La Cámara de Diputados aprobó el proyecto de ley de reforma de la Carta Orgánica del Banco Central que impulsó el gobierno de Javier Milei. La iniciativa, que busca que la "misión primaria" de la entidad sea "preservar el valor de la moneda", tuvo 144 votos a favor, 102 en contra y 9 abstenciones

La propuesta restringe en gran parte el poder de maniobra de la autoridad monetaria para financiar al Tesoro y apunta a "blindar" el mandato de sus autoridades. Ahora, tras el respaldo en la Cámara baja, deberá debatirse en el Senado. Allí puede convertirse en ley.

Tal como se preveía, el oficialismo consiguió el acompañamiento del PRO, el Movimiento de Integración y Desarrollo (MID) y de la Unión Cívica Radical (UCR). El rechazo llegó de parte de Unión por la Patria (UP) y de los integrantes del Frente de Izquierda.

Uno por uno, así votaron los diputados la reforma a la Carta Orgánica del Banco Central

Negativo

0

Abstención

0

Ausente

0

Por provincia

Provincia...

Por bloque

Bloque...

${status}

`; } function createCard(item, borderColor) { const card = document.createElement("div"); card.className = "vd2__card"; const fotoWrap = document.createElement("div"); fotoWrap.className = "vd2__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-diputado"; img.src = photoBase + (item.url_foto || ""); img.addEventListener("error", () => { img.style.opacity = "0.35"; }, { once: true }); fotoWrap.appendChild(img); const nombre = document.createElement("p"); nombre.className = "vd2__nombre"; nombre.textContent = String(item.nombres || "").toLowerCase(); const apellido = document.createElement("p"); apellido.className = "vd2__apellido"; apellido.textContent = String(item.apellido || "").toLowerCase(); const bloque = document.createElement("span"); bloque.className = "vd2__bloque"; bloque.textContent = String(item.bloque || ""); card.appendChild(fotoWrap); card.appendChild(nombre); card.appendChild(apellido); card.appendChild(bloque); return card; } function seatClass(kind) { if (kind === "AFIRMATIVO") return "vd2__seat--afirmativo"; if (kind === "NEGATIVO") return "vd2__seat--negativo"; if (kind === "ABSTENCIÓN") return "vd2__seat--abstencion"; if (kind === "AUSENTE") return "vd2__seat--ausente"; return "vd2__seat--empty"; } function hemicicloParams(which) { // Basado en la distribución original para Diputados (257) const seatsPerRow = [38, 36, 33, 30, 27, 24, 21, 19, 16, 13]; // suma 257 if (which === "big") { return { centerX: 300, baseY: 450, rows: 10, seatsPerRow, verticalOffset: 2, radiusStart: 300, radiusStep: 30 }; } return { centerX: 300, baseY: 450, rows: 10, seatsPerRow, verticalOffset: 2, radiusStart: 170, radiusStep: 16 }; } 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 }; 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); 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]; 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); 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 = "vd2__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; 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); }); 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 }; 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)); // 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); }); } 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 = `

Error: falta data-csv-url

`; return; } try { const Papa = await ensurePapa(); 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 }; 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]); }); // hemiciclo + summary renderHemiciclo("big", counts); renderHemiciclo("small", counts); renderSummary(counts); // filtros + ui populateFilters(data); wireUI(data); setLoaded(true); // 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)}

`; } } } init(); })();

Comentarios

Debes iniciar sesion o registrarte con una cuenta de lector para comentar.

Todavia no hay comentarios aprobados.

Radio Impacto 99.9
Radio Impacto 99.9 En vivo