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

Sem vice definido para governo de SP, Haddad diz que Marina recusou convite

23.jul.2022 - Fernando Haddad (PT) disputará o governo de São Paulo - YURI MURAKAMI/FOTOARENA/FOTOARENA/ESTADÃO CONTEÚDO
23.jul.2022 - Fernando Haddad (PT) disputará o governo de São Paulo Imagem: YURI MURAKAMI/FOTOARENA/FOTOARENA/ESTADÃO CONTEÚDO

Do UOL, em São Paulo

02/08/2022 18h24Atualizada em 03/08/2022 12h24

Candidato ao Palácio dos Bandeirantes, Fernando Haddad (PT) disse que a ex-ministra Marina Silva (Rede) recusou o convite para ser sua vice na corrida eleitoral para o governo de São Paulo. Diante da negativa, Haddad afirmou que apoiará Marina em sua candidatura para deputada federal.

"Ela (Marina) me agradeceu muito a sondagem, mas falou 'pela Amazônia, acho que o meu lugar é Brasília'. Disse com todas as letras que o lugar dela é Brasília. E nós vamos lutar pela sua eleição como deputada federal", afirmou o petista em conversa com o jornal O Globo.

"Quero que a Marina esteja num lugar onde ela possa dar mais amplitude às causas que defende", reforçou.

Haddad disse que a ex-ministra "agradava por ser uma mulher, negra e ambientalista". Com a recusa dela, o petista ou a sondar novos nomes, mas ainda alinhados a essas características.

Agora, a equipe do petista tem preferência por Marianne Pinotti (PSB), médica que já trabalhou com Haddad quando ele era prefeito da capital paulista. Na época, Marianne atuou como secretária da Pessoa com Deficiência.

Outro nome cotado é o do ex-prefeito de Campinas Jonas Donizette (PSB), mas a preferência da campanha é por uma mulher.

A candidatura de Haddad tem apoio da coligação formada por PV, PCdoB, PSB, PSOL e Rede. Antes inclinado a indicar candidato próprio ao Senado, o PSOL aprovou em convenção o apoio a Márcio França. No acordo, o PSOL ficou com a suplência da vaga com o nome de Juliano Medeiros, presidente nacional do partido.

Errata: este conteúdo foi atualizado
Diferentemente do que havia sido informado no último parágrafo de versão anterior deste texto, o PT não pretende lançar candidato ao Senado por São Paulo. O erro já foi corrigido.