;(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 nega esconder Doria e critica rivais que mostram padrinhos políticos

Bruno Covas diz que, no momento apropriado, Doria fará parte do horário eleitoral - ALOISIO MAURICIO/FOTOARENA/ESTADÃO CONTEÚDO
Bruno Covas diz que, no momento apropriado, Doria fará parte do horário eleitoral Imagem: ALOISIO MAURICIO/FOTOARENA/ESTADÃO CONTEÚDO

Colaboração para o UOL

15/10/2020 09h48Atualizada em 15/10/2020 12h09

A ausência do governador João Doria (PSDB) na campanha pela reeleição de Bruno Covas (PSDB) à prefeitura de São Paulo tem chamado a atenção. Em entrevista ao jornal O Globo, o prefeito negou que esteja tentando se descolar do tucano, de quem foi vice enquanto Doria comandou a capital. Segundo Covas, a ideia é de sua propaganda é mostrar aspectos positivos de seu mandato, e não se aproveitar de padrinho político.

O recado de Covas vai para Celso Russomanno (Republicanos), que se escora na proximidade com o presidente Jair Bolsonaro (sem partido), e Jilmar Tatto (PT), que usa o ex-presidente Luiz Inácio Lula da Silva como destaque na campanha.

Questionado pelo jornal sobre o motivo de ainda não ter mostrado Doria em seus programas políticos, Covas reclamou de "maldade" na pergunta e afirmou que toda campanha tem uma lógica que será seguida: "é apresentar o candidato, mostrar o que ele já fez e o que vai fazer e quem são seus apoiadores".

Quem não tem o que mostrar na cidade, realmente só tem que mostrar padrinho político. Eu tenho o que mostrar e, no momento apropriado, o governador vai fazer parte do meu horário eleitoral
Bruno Covas (PSDB), em entrevista ao Globo

Para Covas, os rivais que mostram padrinhos estão pensando em outros cargos além do de prefeito da capital. "O comportamento dos meus adversários mostra quem está preocupado com 2022", afirmou o tucano, que se disse comprometido a ficar quatro anos na prefeitura em caso de vitória, sem sair para tentar outro cargo na eleição de 2022.

PSDB escondido

Na entrevista, Covas fugiu da polêmica sobre denúncias envolvendo lideranças do PSDB. Ele negou esconder a marca do partido no horário político. "O material acaba focando mais no candidato, mas nada a ser escondido", complementa.

Sobre o tratamento de câncer que ainda enfrenta, o prefeito disse se sentir em condições de saúde para trabalhar pela cidade e afirmou que fala sobre o tema no início de sua campanha eleitoral para acabar com as dúvidas da população.

"Se eu fosse votar em alguém, gostaria de saber qual é a condição física dessa pessoa. Sem cair no coitadismo, a campanha teve esse cuidado, abordamos o tema na medida certa. Eram três tumores, a quimioterapia fez sumir dois. Agora faço imunoterapia, e o terceiro está regredindo. Eu me sinto em plenas condições (de governar). Se tivesse qualquer prognóstico negativo não teria me candidatado", destacou.

Covas itiu que a cidade ainda sofrerá com os efeitos da pandemia do coronavírus em 2021, mas disse não se arrepender de nenhuma decisão tomada neste ano.

"Não foi nem está sendo simples atravessar uma pandemia para a qual a gente não tem um manual. É a pior crise sanitária dos últimos cem anos. E não tem receita para enfrentá-la. Podem reclamar desta ou daquela decisão, mas não podem dizer que fui um omisso em relação à pandemia".

De acordo com a última pesquisa do Datafolha, Russomanno tem 27% das intenções de voto. Covas aparece com 21%. Como a margem de erro é de 3 pontos percentuais, os candidatos estão tecnicamente empatados.