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

Presidente do PDT-SP refuta aliança com Haddad: "A menos que apoiem Ciro"

Antonio Neto, presidente do PDT-SP - Jorge Araujo/Folhapress
Antonio Neto, presidente do PDT-SP Imagem: Jorge Araujo/Folhapress

Lucas Borges Teixeira

Do UOL, em São Paulo

16/11/2021 18h12

O presidente do PDT de São Paulo, Antonio Neto, refutou hoje uma possível aliança com o ex-prefeito Fernando Haddad (PT) na sua candidatura ao governo do estado em 2022. Segundo ele, uma união teria de ar pelo apoio petista a Ciro Gomes (PDT) nacionalmente.

Em entrevista ao UOL News, programa do Canal UOL, hoje, Haddad afirmou não ver razão para não haver uma conversa entre os dois partidos. Carlos Lupi (PDT), presidente nacional do partido e ex-ministro de Lula (PT), também já falou em apoiar o ex-presidente, mas só em um eventual segundo turno.

"Essa conversa [entre PDT e PT] não tem nem como existir. Não tem razão de conversar com o PT em São Paulo para dar palanque ao Haddad, a menos que conversemos na tentativa de viabilizar a candidatura [nacional] do Ciro Gomes", afirmou Neto.

Para ele, a fala de Haddad faz parte de uma "estratégia antiga do PT de jogar névoa sobre outras alianças".

"Eles querem ser amplos, formar frente ampla, mas desde que em torno deles. [Falar em aliança] é jogar para a torcida. No PDT paulista, está muito claro o Projeto Nacional de Desenvolvimento [de Ciro], qualquer coisa longe disso é conversa", disse o pedetista.

Questionado, na entrevista, se essas possíveis negociações poderiam envolver Ciro, que, desde 2018, tem feito críticas públicas ao PT, Haddad disse que também "não teria razão para não conversar com ele".

Segundo o ex-prefeito, ele estaria mantendo conversas com Lupi. "Se não der para estarmos juntos no primeiro turno, vamos estar no segundo", disse.

Lupi adotou tom semelhante em entrevista ao UOL na semana ada. Segundo ele, caso Lula, primeiro colocado nas pesquisas para o Planalto em 2022, vá ao segundo turno e Ciro, não, o PDT ficará ao lado do petista.

Em 2018, após ficar em terceiro lugar e fora do segundo turno, Ciro viajou para Paris e não declarou voto nem em Haddad nem em Jair Bolsonaro (sem partido).

Para 2022, em São Paulo, o partido tem se aproximado do PSB, do ex-governador Márcio França, com quem Neto compôs chapa nas eleições municipais do ano ado, e do ex-governador Geraldo Alckmin (PSDB), de saída do seu tradicional partido.

Uma aliança entre Alckmin e Ciro já chegou a ser especulada, mas o PDT diz que é preciso esperar o rumo que o ex-governador deverá tomar após deixar o PSDB —o que deve acontecer após as prévias nacionais do partido, marcadas para o próximo domingo (21).