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

Ex-deputado Jean Wyllys anuncia saída do PSOL e filiação ao PT

Morando na Espanha, Jean Wyllys desabafa sobre ameaças de morte no Brasil -
Morando na Espanha, Jean Wyllys desabafa sobre ameaças de morte no Brasil

Do UOL, em São Paulo

20/05/2021 20h20Atualizada em 27/05/2021 12h14

Após cerca de onze anos no partido, o ex-deputado federal Jean Wyllys, 47, anunciou hoje a sua saída do PSOL (Partido Socialismo e Liberdade) e a filiação ao PT (Partido dos Trabalhadores) em entrevista concedida à revista Veja. Um evento online para o anúncio oficial está previsto para ocorrer na próxima segunda-feira (24). Os ex-presidentes Luiz Inácio Lula da Silva e Dilma Rousseff devem participar do encontro virtual.

"Só quero saber do que pode dar certo. Não tenho tempo a perder", resumiu ele, nas redes sociais. O PT, por sua vez, deu as boas vindas ao novo integrante do partido.

Durante a entrevista, Wyllys demonstrou entusiasmo com desempenho de Lula nas pesquisas eleitorais e disse que a esquerda precisa se unir para derrotar o presidente Jair Bolsonaro (sem partido).

"As pesquisas mostram que Lula é o único capaz de tirar Bolsonaro do poder. Agora é hora formar uma frente democrática, não fragmentá-la", avaliou. Na semana ada, o Datafolha divulgou pesquisa que mostra Lula com 41% das intenções de voto no primeiro turno, enquanto Bolsonaro tem 23%. Em um eventual segundo turno, o petista derrotaria o atual presidente por 55% a 32%.

Questionado pela publicação, Wyllys disse que não pretende voltar a se candidatar a um cargo eletivo nem vislumbra ser nomeado para cargos no governo de Lula, caso seja eleito.

"Da política ampla não vou sair nunca, até porque sou um estudioso que analisa o que vem acontecendo no Brasil, mas não tenho o desejo de voltar a concorrer. Hoje, o que quero é ajudar a reconstruir o Brasil e abraçar a minha mãe."

Em 2019, Wyllys decidiu abrir mão do novo mandato legislativo devido a quantidade de ameaças que vinha recebendo. Segundo ele, o número de mensagens hostis aumentou consideravelmente depois do assassinato de sua correligionária Marielle Franco, no Rio, em março de 2018. Desde então, o então parlamentar vivia sob escolta policial.

Após deixar o cargo, Wyllys foi morar fora do Brasil, mas o seu paradeiro se tornou uma incógnita durante algum tempo. Agora vive na Espanha, onde se dedica ao doutorado em Ciências Política na Universidade de Barcelona.

"Há quem diga que renunciei ao meu terceiro mandato e saí do país porque quis, mas a verdade é que estava sendo vítima de uma série de ataques. Fui obrigado a deixar o país porque a Marielle, minha amiga e companheira de partido que vivia na mesma cidade que eu, foi executada sem receber uma ameaça de morte sequer e eu tinha várias delas. O exílio tirou de mim o convívio com os amigos e a família", ressaltou ele.

Errata: este conteúdo foi atualizado
Diferentemente do informado na legenda da foto em versão anterior desta reportagem, destacada na Home-page do UOL, Jean Wyllys vive atualmente na Espanha, e não na Alemanha. A informação foi corrigida.