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

Moro: 'Democracia, liberdades, Estado de Direito e tolerância andam juntos'

Sergio Moro durante pronunciamento anunciando demissão e acusando Bolsonaro - Sérgio Lima/Poder 360
Sergio Moro durante pronunciamento anunciando demissão e acusando Bolsonaro Imagem: Sérgio Lima/Poder 360

Do UOL, em São Paulo

03/05/2020 18h56

Um dia depois de prestar depoimento por mais de oito horas na Polícia Federal sobre as denúncias contra o presidente Jair Bolsonaro, o ex-ministro da Justiça Sergio Moro foi ao Twitter dizer que democracia e liberdades devem sempre andar junto com o Estado de Direito.

A afirmação foi feita, também, no dia em que eleitores de Bolsonaro se reuniram em Brasília para se manifestar contra Moro e, entre outras coisas, pedir o fechamento do congresso e do STF.

"Democracia, liberdades — inclusive de expressão e de imprensa — Estado de Direito, integridade e tolerância caminham juntos e não separados", escreveu.

Minutos depois, o presidente da Ordem dos Advogados do Brasil (OAB) Felipe Santa Cruz, também se manifestou na rede social de forma contrária às manifestações.

"A conveniência do uso de máscaras cobrindo os rostos, para quem está indo às ruas no meio de uma pandemia, 'protestar a favor do presidente', vai muito além da proteção contra o vírus, é uma proteção contra os riscos à própria imagem, no registro histórico desta insensatez", escreveu.

O Presidente da Associação dos Juízes Federais do Brasil (Ajufe), Fernando Mendes, publicou uma nota sobre o episódio na qual chamou de "inaceitável a covarde a agressão sofrida por jornalistas no pleno exercício de suas atividades".

"No dia em que se comemora a liberdade de imprensa, causa perplexidade e indignação os atos de violência contra esses profissionais, mas que também atingem a Democracia e o Estado de Direito. A liberdade de expressão já havia sido atacada recentemente, quando profissionais de saúde sofreram agressões verbais durante uma manifestação pacífica. Atitudes absurdas como essas devem ser repudiadas com veemência e os responsáveis identificados e punidos dentro de todo o rigor da lei", finaliza.