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

Após prisão de Crivella, Paes fala de transição e faz apelo sobre pandemia

Do UOL, em São Paulo

22/12/2020 08h14

Eduardo Paes (DEM), prefeito eleito do Rio de Janeiro, disse que a transição para a sua gestão na cidade seguirá "da mesma forma", mesmo após a prisão do atual prefeito Marcelo Crivella (Republicanos) hoje, a nove dias de encerrar seu mandado.

"Conversei nessa manhã com o presidente da Câmara de Vereadores Jorge Felippe para que mobilizasse os dirigentes municipais para continuar conduzindo suas obrigações e atendendo a população. Da mesma forma, manteremos o trabalho de transição que já vinha sendo tocado", escreveu Paes em uma rede social.

Jorge Felippe (DEM) é presidente da Câmara de Vereadores e vai assumir a prefeitura enquanto Crivella estiver preso. Fernando Mac Dowell, vice do prefeito, morreu em 2018 após um infarto.

Paes ainda pediu que os servidores da saúde sigam seu trabalho. "Peço especialmente aos servidores da nossa rede de saúde: amos por uma pandemia - além das dificuldades já conhecidas —e a população precisa do nosso esforço".

Crivella disse que Paes seria preso

No fim da campanha eleitoral para a Prefeitura do Rio, Crivella repetiu que Eduardo Paes seria preso por corrupção. No último debate, Crivella citou a prisão e disse que estava "com o coração partido". Paes reagiu e citou um dos envolvidos na operação de hoje do Ministério Público e da Polícia Civil.

"Eduardo Paes vai ser preso, e digo isso com o coração partido. E vai porque cometeu os mesmos erros de Cabral e Pezão. Ele vai ser preso", disse Crivella durante o debate.

"Vocês vão perceber o desespero do candidato. Ele vai usar esse tom a noite inteira e eu quero tratar de propostas para a cidade. E ele morre de medo de ser preso quando aquele Rafael Alves, do QG da Propina, começar a falar", completou ele.

Paes foi eleito com 64,07% dos votos válidos (1.629.319 votos), contra 35,89% de Crivella (913.700) —uma diferença superior a 715 mil votos.

Errata: este conteúdo foi atualizado
Jorge Felippe (DEM) é presidente da Câmara de Vereadores e vai assumir a prefeitura, e não a presidência, enquanto Crivella estiver preso