;(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

Ciro diz que apoiador de Bolsonaro tentou agredi-lo; equipe registra B.O

23.ago.2022 - O presidenciável Ciro Gomes (PDT) durante entrevista no Jornal Nacional, da TV Globo - Reprodução/TV Globo
23.ago.2022 - O presidenciável Ciro Gomes (PDT) durante entrevista no Jornal Nacional, da TV Globo Imagem: Reprodução/TV Globo

Colaboração para o UOL

10/09/2022 19h23Atualizada em 10/09/2022 19h38

A equipe de campanha do presidenciável Ciro Gomes (PDT) divulgou uma nota hoje afirmando que um homem, apoiador do presidente Jair Bolsonaro (PL), tentou agredir o candidato durante o evento "Acampamento Farroupilha", em Porto Alegre (RS).

Segundo o comunicado, o homem, identificado pela campanha como Lisandro Vargas Vila Nova, disse estar armado, e tentou agredir também a equipe do presidenciável. Apesar da alegação do suposto agressor, policiais o revistaram e não encontraram nenhuma arma.

Policiais federais que fazem parte da equipe de segurança de Ciro Gomes teriam retirado o homem do local para evitar um incidente mais grave. A equipe jurídica de Ciro registrou boletim de ocorrência para que o caso seja apurado e as medidas legais contra o agressor sejam cumpridas.

A reportagem do UOL tenta localizar o suposto agressor para posicionamento sobre o caso. Caso haja resposta, o texto será atualizado.

Boulos denuncia ameaça

O candidato a deputado federal Guilherme Boulos (PSOL-SP) disse hoje ter sido ameaçado por um apoiador do presidente Jair Bolsonaro (PL) armado durante um ato de campanha em São Bernardo do Campo, na Grande São Paulo, na tarde de sexta-feira.

O líder do Movimento dos Trabalhadores Sem-Teto (MTST) e candidato a deputado federal estava distribuindo panfletos junto com a candidata a deputada estadual Ediane Maria (PSOL-SP) e um grupo de cerca de 30 pessoas.

Enquanto avam pela Rua Marechal Deodoro, no centro da cidade, um homem teria gritado "Aqui é Bolsonaro", ao recusar um panfleto oferecido pelo grupo.

O caso foi revelado em entrevista à colunista Mônica Bergamo e relatado por Boulos em suas redes sociais. Boulos disse que tentou dialogar com o homem que, então, afirmou estar armado, levantou a camisa e colocou a mão no cabo da arma.

Evento de Lula tem confusão com bolsonarista

Uma confusão envolvendo um bolsonarista na manhã de ontem marcou o início do evento do ex-presidente Luiz Inácio Lula da Silva (PT) com evangélicos em São Gonçalo, na região metropolitana do Rio de Janeiro. O homem —identificado como Rodrigo— já havia gravado um vídeo ontem (8) prometendo "fazer protesto" no local com carro adesivado.

Lula ainda não havia chegado ao evento quando o tumulto aconteceu. Na porta do Clube Tamoio, apoiadores se reuniam com bandeiras de candidatos do PT quando um carro adesivado com a imagem do presidente Jair Bolsonaro (PL) dirigindo e uma foto de Lula atrás de grades ou com velocidade reduzida.

Os apoiadores do petista entenderam como provocação e um deles deu um tapa no veículo. Neste momento, Rodrigo saiu do carro com celular em punho procurando quem tinha dado o tapa.