;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Esse conteúdo é antigo

Presidentes do Congresso e do TSE reagem a ameaças de Bolsonaro às eleições

Bolsonaro xingou Barroso e ameaçou eleições na manhã de hoje - Alan Santos/PR
Bolsonaro xingou Barroso e ameaçou eleições na manhã de hoje Imagem: Alan Santos/PR

Do UOL, em São Paulo

09/07/2021 20h23Atualizada em 09/07/2021 21h15

Os presidentes do Congresso Nacional, Rodrigo Pacheco (DEM-MG), e do TSE (Tribunal Superior Eleitoral), Luís Roberto Barroso, reagiram hoje (9) às ameaças do presidente Jair Bolsonaro (sem partido) contra as eleições de 2022.

Pacheco fez um pronunciamento na tarde de hoje, no qual afirmou, sem mencionar Bolsonaro, que "todo aquele que pretender algum retrocesso ao Estado democrático de direito, esteja certo, será apontado pelo povo brasileiro e pela história como inimigo da nação.

Em sua fala, Pacheco aproveitou para se manifestar novamente acerca da carta assinada por militares e divulgada na última quarta-feira (7). No dia, ele já havia falado sobre o assunto, mas seu posicionamento foi questionado por não ter afirmado veementemente que o Senado não se submeteria a outras instituições.

"Quero aqui afirmar a independência do Parlamento brasileiro. A independência do Congresso Nacional, composto por suas duas Casas, o Senado Federal e a Câmara dos Deputados, que não itirá qualquer atentado a esta sua independência e, sobretudo, às prerrogativas dos parlamentares: de palavras, opiniões e votos, que naturalmente devem ser resguardados em uma democracia".

Já Luís Roberto Barroso, que foi pessoalmente ofendido por Bolsonaro na manhã de hoje, divulgou um comunicado pelo TSE. Barroso, que foi chamado de "imbecil" e "idiota", disse em nota que "qualquer atuação no sentido de impedir" a realização das eleições "viola princípios constitucionais e configura crime de responsabilidade".

No texto, Barroso afirma ainda que Bolsonaro foi convocado a apresentar provas das supostas fraudes ocorridas nas eleições de 2018, mas não respondeu. No último dia 22, o corregedor-geral do TSE, ministro Luís Felipe Salomão, mandou um ofício a Bolsonaro pedindo que explicasse em até 15 dias suas declarações sobre supostas fraudes nas urnas eletrônicas.

Posteriormente, o presidente do TSE fez uma postagem irônica em seu perfil no Twitter. Sem citar Bolsonaro, Barroso recomendou o livro "A ditadura escancarada", de Elio Gaspari, e a música "Cálice" —composição de Chico Buarque e Gilberto Gil censurada durante o regime militar.

Na mesma publicação, o ministro compartilhou um pensamento: "Quando um homem de bem responde um insulto com outro insulto, ele permite que o mal vença. Não é preciso responder. O mal consome a si mesmo".