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

Eduardo Bolsonaro responde a "traíras do PSL" e fala em plano covarde

27.nov.2019 - O deputado Eduardo Bolsonaro (PSL-SP) durante discussão com representantes do setor de telecomunicações - Maandel Ngan - 30.ago.19/AFP
27.nov.2019 - O deputado Eduardo Bolsonaro (PSL-SP) durante discussão com representantes do setor de telecomunicações Imagem: Maandel Ngan - 30.ago.19/AFP

Do UOL, em São Paulo

04/12/2019 08h09

Eduardo Bolsonaro (PSL-SP) se pronunciou na madrugada de hoje sobre a punição que o PSL impôs a ele e a mais 17 parlamentares que tentaram afastar o presidente do partido, Luciano Bivar (PE), do comando. Após levar a maior pena, com um ano sem exercer atividades partidárias, ele chamou integrantes da sigla de traíras e disse que eles executaram um plano de forma covarde.

"Fui suspenso por me manter igual a como me elegi. Os traíras de dentro do PSL mostram sua cara após eleitos. Não aceitaram o conselho de que um mandato é uma maratona, não uma corrida de 100 m", disse o filho do presidente Jair Bolsonaro (sem partido), no Twitter.

"Além disso ainda esperaram covardemente minha saída do país em virtude de missão oficial da CREDN para executar seu plano. Não me preocupo. O tratamento que recebo em aeroportos, que marcaram a trajetória de JB, certamente é diferente do tratamento dispensado aos traíras", tuitou.

"Sigo minha caminhada com pé no chão, sabendo quem sou, que devo minha excelente votação ao trabalho do meu pai - e isso não me envergonha, pelo contrário, me orgulha - trabalhando por satisfação própria e certo de que fazendo o bem Deus me guardará em todos os lugares que eu for", postou ele, com uma foto ao lado de Jair.

Eduardo Bolsonaro está em missão oficial da Câmara no Oriente Médio e até ontem não havia sido comunicado oficialmente pelo partido.

Entenda o caso

O PSL confirmou ontem a punição ao deputado Eduardo Bolsonaro (PSL-SP) e outros 17 parlamentares que tentaram afastar o presidente do partido, Luciano Bivar (PE), do comando da sigla. O filho do presidente pegou a maior punição e vai ficar um ano sem exercer atividades partidárias.

Na prática, o filho do presidente vai perder a liderança do PSL na Casa e todas as cadeiras que ocupa nas comissões temáticas da Casa, como na MI das Fake News, onde tem sido uma espécie de advogado de defesa do presidente Jair Bolsonaro.

O parlamentar só mantém o comando da Comissão de Relações Exteriores e Defesa Nacional (Creden) até o final do ano porque foi eleito presidente e, pelo regimento da Casa, fica imune a quaisquer alterações feita pelo partido. Em 2020, ele fica impedido de disputar cadeiras nos colegiados.

Ouça o podcast Baixo Clero com análises políticas de blogueiros do UOL.

Os podcasts do UOL estão disponíveis no Spotify, Apple Podcasts, Google Podcasts e outras plataformas de áudio.