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

Bruno Covas vai se recuperar e será reeleito prefeito de SP, diz João Doria

O prefeito de São Paulo, Bruno Covas, e o governador de São Paulo, João Doria, em foto de 2018 - ANANDA MIGLIANO/O FOTOGRÁFICO/ESTADÃO CONTEÚDO
O prefeito de São Paulo, Bruno Covas, e o governador de São Paulo, João Doria, em foto de 2018 Imagem: ANANDA MIGLIANO/O FOTOGRÁFICO/ESTADÃO CONTEÚDO

Do UOL, em São Paulo

05/11/2019 08h32

O governador de São Paulo, João Doria (PSDB), falou hoje que confia na recuperação do prefeito da cidade de São Paulo, Bruno Covas, internado para o tratamento de um câncer. Ele disse que vai trabalhar ao lado do prefeito em sua campanha de reeleição para o cargo no ano que vem

"O Bruno tem 39 anos, ele vai sair melhor, recuperado fisicamente", disse durante entrevista ao Jornal da Manhã da Jovem Pan. "[Ele] está istrando a cidade, não precisou ar a responsabilidade ao presidente da Câmara já que não temos vice nesse momento - o Bruno foi o meu vice como prefeito de São Paulo - vem fazendo uma boa gestão, vai se recuperar e será reeleito".

Ele ainda cutucou o ex-governador de São Paulo e possível candidato à prefeitura, Márcio França, se referindo a ele como "Márcio Cuba": "O Marcio 'Cuba' vai chorar lá em São Vicente mais uma derrota", disse.

Questionado se vai trabalhar ao lado de Covas em sua campanha de reeleição, Doria disse que pretende oferecer ajuda desde que não interfira em seu trabalho como governador. "Vou participar evidentemente sem comprometer meu tempo como governador. Nos horários fora do expediente vou ser ativo sim e vou ajudar o Bruno Covas sim a se reeleger prefeito de São Paulo".

Ele prometeu ajudar também os demais candidatos do PSDB que se lançarem candidatos.

Bruno Covas foi internado no dia 23 de outubro, quando foi diagnosticado com uma erisipela, que evoluiu para uma trombose na perna direita e para uma tromboembolia bilateral pulmonar. Foi quando os exames identificaram o câncer no aparelho digestivo. Ontem sua previsão de alta foi adiada devido a detecção de um novo coágulo, no átrio direito do prefeito. A situação fez com que a equipe médica decidisse manter o político no hospital para adequação da anticoagulação.