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

Ipespe: Alckmin e Haddad estão tecnicamente empatados para governador de SP

Do UOL, em São Paulo

03/12/2021 15h32

O ex-governador de São Paulo Geraldo Alckmin (PSDB) e o ex-prefeito da capital paulista Fernando Haddad (PT) aparecem tecnicamente empatados, no limite da margem de erro, na pesquisa Ipespe divulgada hoje para as eleições de governador de São Paulo em 2022. O levantamento foi encomendado e divulgado pelo jornal Valor Econômico.

De acordo com a pesquisa, Alckmin tem 23% das intenções de voto, enquanto Haddad tem 19%. Como a margem de erro é de 3,2 pontos percentuais para mais ou para menos, considera-se que eles estão em empate técnico.

Em terceiro lugar está Guilherme Boulos (PSOL), com 11% das intenções de voto, seguido do ministro da Infraestrutura, Tarcísio Gomes de Freitas (sem partido), com 8% — os dois, portanto, também estão tecnicamente empatados.

Mais atrás na pesquisa apareceram o atual vice-governador de São Paulo, Rodrigo Garcia (PSDB), com 3%, e o ex-ministro da Educação Abraham Weintraub, que não chegou a 1%. O levantamento também mostrou que 37% das pessoas responderam que vão votar branco ou nulo.

Rodrigo Garcia é o candidato apoiado pelo atual governador, João Doria (PSDB). Alckmin, que foi padrinho político de Doria, mas com quem o governador rompeu, está de saída do partido e pode não disputar a eleição paulista. Ele é cotado para entrar na chapa do ex-presidente Luiz Inácio Lula da Silva (PT) como candidato à vice-presidência.

Neste cenário, é possível que Alckmin entre no PSB e, neste caso, o PT abra mão da disputa do governo de São Paulo para apoiar Márcio França (PSB). Por isso, O Ipespe testou também o cenário sem Alckmin e sem Haddad, mas com França. Desta maneira, Guilherme Boulos assume a liderança, com 23% das intenções de voto, tecnicamente empatado com Márcio França, que tem 19%.

Cenário 1

Geraldo Alckmin (PSDB) - 23%
Fernando Haddad (PT) - 19%
Guilhermes Boulos (PSOL) - 11%
Tarcísio de Freitas (sem partido) - 8%
Rodrigo Garcia (PSDB) - 3%

Cenário 2

Guilherme Boulos (PSOL) - 23%
Márcio França (PSB) - 19%
Tarcísio de Freitas (sem partido) - 10%
Rodrigo Garcia (PSDB) - 5%

A pesquisa Ipespe foi realizada entre os dias 29 de novembro e 1 de dezembro, quando ouviu 1.000 pessoas por telefone. Segundo o instituto, a confiança da pesquisa é de 95%.