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

Covas deseja 'pronta recuperação' a Boulos após diagnóstico de covid-19

Do UOL, em São Paulo

27/11/2020 17h04

O prefeito de São Paulo e candidato à reeleição, Bruno Covas (PSDB), desejou hoje "pronta recuperação" ao seu adversário Guilherme Boulos (PSOL) após a notícia de que ele teve um diagnóstico positivo para a covid-19. Boulos fez o anúncio na tarde de hoje e informou que já iniciou seu período de isolamento, mesmo estando sem sintomas da doença causada pelo novo coronavírus.

Com isso, o debate à Prefeitura de São Paulo que seria realizado na TV Globo na noite de hoje foi cancelado. Boulos argumentou que o enfrentamento poderia ser de forma virtual, mas o último encontro entre os candidatos antes do segundo turno não acontecerá em nenhum formato segundo a emissora.

"Acabamos de receber a notícia que Guilherme Boulos testou positivo para covid-19. Pelo que fomos informados, está sem sintomas. Desejamos pronta recuperação ao candidato", escreveu Covas no Twitter.

Boulos tinha uma suspeita de ter contraído o novo coronavírus pelo contato recente com a deputada federal Sâmia Bomfim (PSOL-SP), que confirmou o seu diagnóstico positivo para a covid-19 na última segunda-feira (23). Os dois estiveram juntos na sexta (20), em uma agenda fechada do candidato.

Covas lidera pesquisas

Boulos avançou ao segundo turno da eleição, que será disputado no próximo domingo (29), com 20,24% dos votos válidos; Covas teve 32,85%.

Covas lidera as intenções de voto com 47% da preferência do eleitorado, segundo apontado por pesquisa Datafolha publicada ontem. Boulos apresentou 40% dos votos totais, enquanto o percentual de brancos e nulos ficou em 9% e os indecisos ficaram em 4%. A margem de erro é de três pontos percentuais para mais ou para menos.

Já a pesquisa Ibope divulgada nesta quarta-feira (25) apontou Covas com 48%, 11 pontos percentuais à frente de Boulos, com 37%. A margem de erro é de três pontos percentuais para mais ou para menos.