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

Chico Alves

Em 2018, Bolsonaro prometia não ser "maior que ministro" e criticou Centrão

Colunista do UOL

15/05/2020 19h28

Nas últimas reuniões que tiveram com o presidente Jair Bolsonaro, os ministros se acostumaram a ouvi-lo repetir uma frase: "Quem manda sou eu!". Foi assim em 15 de abril, quando discutiu com o então titular da pasta da Saúde, Luiz Henrique Mandetta. Também soltou a exclamação sete dias depois, na fatídica reunião em que ameaçou demitir Sergio Moro. Outro a assistir um desses chiliques presidenciais foi Nelson Teich, antes de se demitir.

Bolsonaro acabou por fazer do bordão malcriado seu estilo de governo. ou por cima de Mandetta para recomendar aos brasileiros que ignorassem o isolamento social, desautorizou Moro ao mudar na marra o diretor-geral da Polícia Federal e colocou Teich em saia justa ao incluir salões de beleza, academias e barbeiros como serviços essenciais sem o seu conhecimento.

O presidente que tem hoje esses os de Luís 14 tupiniquim é o mesmo que na época de candidato garantia ao eleitor que escolheria bem os auxiliares para trabalhar em conjunto com eles.

"Nenhum presidente é maior que o seu Ministério", recitava Bolsonaro, em um vídeo veiculado na campanha antes do primeiro turno das eleições de 2018. De lá para cá, mudou muito. O tom autoritário predomina. De nada adianta que seus colaboradores tentem mostrar-lhe os erros.

O presidente parece não confiar nas próprias escolhas. Talvez tirasse proveito ao revisitar a propaganda eleitoral de 2018. "O segredo para bem istrar o Brasil é você botar as pessoas certas nos ministérios certos", ensinava no vídeo.

A peça de marketing político prosseguia com Bolsonaro criticando indicações político-partidárias ("Tem tudo para não dar certo") para, por fim, declarar sua independência: "Por isso, nós não integramos o Centrão e tampouco estamos na esquerda de sempre".

Com relação aos esquerdistas, o presidente continua tomando boa distância. O mesmo não se pode dizer quanto ao Centrão, seu mais novo esteio político no Congresso. Em troca do apoio que Bolsonaro deseja tanto, o grupo já começou a ocupar cargos em empresas públicas e planeja indicações para alguns ministérios.

O presidente está muito diferente do vídeo de campanha. Tudo mudou tão rápido que periga em breve o próprio estilo autoritário de Bolsonaro ser tragado pelos fatos. Em futuro bem próximo ele corre o risco de ouvir a frase com que hoje constrange sua equipe da boca de um dos seus possíveis futuros ministros centristas: "Quem manda sou eu!".