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

Em revés para filiação de Bolsonaro, TSE afasta presidente do Patriota

Jair Bolsonaro durante cerimônia no Palácio do Planalto, em Brasília (DF) - Adriano Machado/Reuters
Jair Bolsonaro durante cerimônia no Palácio do Planalto, em Brasília (DF) Imagem: Adriano Machado/Reuters

Lauriberto Pompeu

Do Estadão Conteúdo

08/07/2021 21h05

O presidente do TSE (Tribunal Superior Eleitoral), Luís Roberto Barroso, decidiu acatar um pedido da ala do Patriota contrária à filiação de Jair Bolsonaro (sem partido) e afastar Adilson Barroso do comando do partido. A decisão é ível de recurso, mas já significa um revés para Bolsonaro, que quer se filiar ao Patriota para lançar sua candidatura ao segundo mandato.

"Foram anuladas todas as atitudes dele [Adilson Barroso], que nós chamamos de irregulares. Estão voltando todos os delegados [afastados pelo presidente e contrários a filiação de Bolsonaro]. Está afastando Adilson e Ovasco Resende assume a presidência", afirmou Jorcelino Braga, secretário-geral do Patriota, ao jornal "O Estado de S. Paulo".

Uma convenção nacional do Patriota decidiu, no dia 24 de junho, afastar por 90 dias Adilson Barroso da presidência do partido. A reunião foi convocada pelo vice-presidente da sigla, Ovasco Resende, que assume o comando de forma interina. A mudança ocorre no momento em que o presidente Jair Bolsonaro negocia a filiação à legenda para lançar sua campanha à reeleição. Barroso é a favor da entrada de Bolsonaro no partido e Resende, contra.

A articulação de Bolsonaro para se filiar ao Patriota e controlar diretórios estratégicos deflagrou uma guerra entre correligionários. Barroso, por exemplo, já promoveu duas convenções com o objetivo de abrir caminho para a filiação de Bolsonaro, mas uma ala contestou a validade dos encontros por delegados da Executiva Nacional terem sido trocados. A convenção do último dia 24 foi a terceira em menos de um mês.

Resende disse a "O Estado de S. Paulo" que Bolsonaro está exigindo o comando dos diretórios do Patriota em São Paulo, Rio e Minas Gerais, os três maiores colégios eleitorais do país. Desde que deixou o PSL, em novembro de 2019, o presidente procura uma sigla para abrigar sua candidatura a um novo mandato, em 2022. Tentou montar o Aliança pelo Brasil, mas a empreitada não deu certo.