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

Nove dias após ameaça, Bolsonaro diz que agirá 'daqui para frente'

Presidente Jair Bolsonaro diz, nove dias após ameaça, que agirá "daqui para frente" contra restrições - Ueslei Marcelino/Reuters
Presidente Jair Bolsonaro diz, nove dias após ameaça, que agirá "daqui para frente" contra restrições Imagem: Ueslei Marcelino/Reuters

Lucas Valença*

Do UOL, em Brasília

14/05/2021 11h01Atualizada em 14/05/2021 12h42

Antes de viajar ao Mato Grosso do Sul, onde terá eventos com produtores rurais, o presidente Jair Bolsonaro (sem partido) voltou a dizer que só "colocará o Exército" na rua para "manter a liberdade" e que o recado sobre a sua contrariedade às medidas de restrição para o controle da disseminação do novo coronavírus já foi dado.

Há nove dias, durante um pronunciamento no Palácio do Planalto, Bolsonaro ameaçou editar um decreto contra restrições de circulação impostas por prefeitos e governadores, mas até o momento não houve movimentos neste sentido. Hoje, em conversa com apoiadores, ele disse que agirá "daqui para frente", mais uma vez sem ser específico em sua intenção.

"Eu não fechei nada. O meu Exército só vai para a rua para manter a liberdade de vocês, jamais vai mantê-los dentro de casa. Eu respondo por meus atos, agora, se governadores, prefeitos estão na contramão...", afirmou até ser interrompido por um apoiador.

Em seguida, o presidente ameaçou os demais entes federados ao dizer que já deu "o recado que tinha que dar" e que, "daqui para frente", iria agir.

A fala aos apoiadores foi feita ao lado do filho, o senador Flávio Bolsonaro (Republicanos-SP). Em um dos momentos da conversa com apoiadores, uma seguidora arrancou um sorriso do presidente ao disparar: "prende o Lula, por favor".

Críticas rotineiras

Ontem, o presidente atacou o relator da I (Comissão Parlamentar de Inquérito) da Covid, senador Renan Calheiros (MDB-AL), a quem chamou de "picareta" e "vagabundo", e ao ex-presidente Lula.

"Se esse indivíduo quer fazer um show tentando me derrubar, não o fará. Somente Deus me tira daquela cadeira (presidencial)", disse em viagem a Maceió, capital de Alagoas, estado governado por Renan Filho, do mesmo partido do pai.

Jair Bolsonaro também voltou a agredir o ex-presidente petista, ao se referir ao opositor como "ladrão de nove dedos".

*Colaborou Fabio Castanho