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

Bolsonaro diz que não abre mão de suas bandeiras e chegará a "meio-termo" com Moro sobre armas

Mauro Pimentel/AFP
Imagem: Mauro Pimentel/AFP

Hanrrikson de Andrade

Do UOL, no Rio

05/11/2018 17h24

O presidente eleito, Jair Bolsonaro (PSL), afirmou nesta segunda-feira (5), em entrevista à Band, que não vai abrir mão de bandeiras de campanha, como a autorização da posse de arma de fogo, caso ocorram divergências entre ele e o futuro ministro da Justiça e Segurança Pública, Sergio Moro.

Segundo Bolsonaro, Moro terá "100% de carta-branca" para trabalhar à frente da pasta, que também abarcará as áreas de combate à corrupção e ao crime organizado. No entanto, a autonomia não se aplicaria a questões que envolvam a Presidência da República ou que sinalizem algum tipo de recuo em relação a compromissos firmados durante a eleição.

"Naquilo que somos antagônicos vamos buscar o meio-termo", disse ele durante entrevista ao apresentador José Luiz Datena, no programa "Brasil Urgente".

Leia também:

O presidente afirmou que, caso Moro não seja favorável à flexibilização da posse de arma de fogo, terá que conversar com ele a fim de estabelecer um consenso. O mesmo valeria para a demarcação de terras indígenas. "Não tem mais demarcação de terra indígena", declarou Bolsonaro.

"Afinal de contas, temos uma área mais que a região Sudeste demarcada como terra indígena. E qual a segurança para o campo? Um fazendeiro não pode acordar hoje e, de repente, tomar conhecimento, via portaria, que ele vai perder sua fazenda para uma nova terra indígena."

Já nas áreas de combate à corrupção e ao crime organizado, o pesselista disse que não pretende interferir na atuação do juiz federal, que se notabilizou por comandar as ações penais em primeira instância da Operação Lava Jato em Curitiba.

Bolsonaro também voltou a criticar o ex-presidente Fernando Henrique Cardoso (PSDB), afirmando que "caiu a máscara" do tucano.

"O socialismo não deu certo em lugar nenhum. E o FHC fazia aquele joguinho com o PT como se ele fosse a oposição", comentou.

Os dois trocaram acusações nas redes sociais nos últimos dias. Nesta segunda, o ex-presidente rebateu o adversário político por meio de sua conta no Twitter depois que ele postou uma imagem antiga --na foto, FHC está deitado em uma poltrona, com as pernas erguidas, segurando um livro escrito por um ex-premier chinês.

“A desinformação é péssima conselheira, sobretudo vinda dos poderosos: na foto do Twitter do presidente eleito eu apareço lendo um livro de ex-premier da China, deposto e preso, em que critica o regime. Isso aparece como 'prova' de que sou comunista. Só faltava essa. Cruz, credo!”, publicou o tucano.