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

FHC critica demissão de Mandetta e saída de Moro: 'Erro grande'

22.mai.2018 - O ex-presidente Fernando Henrique Cardoso - Carine Wallauer/UOL
22.mai.2018 - O ex-presidente Fernando Henrique Cardoso Imagem: Carine Wallauer/UOL

Do UOL, em São Paulo

04/05/2020 16h28

O ex-presidente Fernando Henrique Cardoso criticou o presidente Jair Bolsonaro (sem partido) pelas saídas dos ministros da Saúde e da Justiça e Segurança Pública, Luiz Henrique Mandetta e Sergio Moro, respectivamente.

"O presidente, ao meu ver, fez um erro grande, que foi tirar quem está na frente de batalha, que é o ministro da Saúde. Agora, tirou o outro (Moro), que era símbolo de uma luta anticorrupção. Não são gestos compatíveis com o momento. Ao contrário, é preciso dar força a algumas pessoas para que elas possam se articular", disse FHC em live do site Consultor Jurídico.

Mandetta foi exonerado do cargo de ministro da Saúde após divergências com Bolsonaro sobre o combate ao novo coronavírus. Já Moro deixou o ministério da Justiça após a exoneração do diretor-geral da Polícia Federal, Maurício Valeixo, profissional de confiança do ex-juiz.

Para FHC, Bolsonaro deve buscar unir o país. "Tem que falar com o país, tem que explicar, não é falar com quem está na porta do Palácio para bater palma. Falar de vez em quando, mas buscando unir. Não é fácil, é difícil exercer o poder, mas é preciso pensar mais no valor simbólico do que você faz e o que você diz."

O ex-presidente ainda declarou que não deveria existir lados distintos no atual momento do país. "Tem que ter união para resolver ou tentar minorar os feitos da pandemia e se preocupar com renda e emprego. Não estou do lado dele (Bolsonaro). Isso é outra coisa. Não precisamos estar um do lado do outro nas coisas cotidianas, mas precisamos estar ao lado do país, do povo", acrescentou.

"Eu não votei nele nem na primeira, nem na segunda vez, mas eu respeito porque ele foi eleito. Ele tem que entender que aquela cadeira é dura, é incômoda. Eu sei que é incômoda, portanto, não quero cobrar o que é incobrável, mas que ajuste um pouco, tente superar suas próprias dificuldades. Não dá para ser um homem comum. Você foi eleito para governar o Brasil. O que vamos fazer agora? O barco está com muita tormenta. Evitar que o barco afunde não é fácil, mas vamos tentar."