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

Bolsonaro nomeia Ciro Nogueira para Casa Civil e Ramos na Secretaria-Geral

O senador Ciro Nogueira (PP-PI) é confirmado como ministro da Casa Civil - Edilson Rodrigues/Agência Senado
O senador Ciro Nogueira (PP-PI) é confirmado como ministro da Casa Civil Imagem: Edilson Rodrigues/Agência Senado

Do UOL, em São Paulo

28/07/2021 06h50

O presidente Jair Bolsonaro (sem partido) oficializou, em decretos publicados no DOU (Diário Oficial da União), a nomeação de Ciro Nogueira para o cargo de ministro da Casa Civil e a ida do antigo chefe da pasta, Luiz Eduardo Ramos, para o comando da Secretaria-Geral da Presidência.

A reforma ministerial já havia sido confirmada ontem e ainda tem como último movimento a recriação do Ministério do Trabalho, que ará a se chamar Ministério do Trabalho e Previdência e será comandado por Onyx Lorenzoni, que assim deixa a Secretaria-Geral.

A ida de Nogueira para a Casa Civil é estratégica para fortalecer o governo no Senado, onde tem perdido apoio com o avanço da I da Covid. Ele é presidente do PP (Partido Progressistas), um dos principais partidos do bloco de parlamentares do centrão, que dá sustentação parlamentar ao governo.

Apesar de compor a tropa de defensores do governo na I, Nogueira tem evitado embates mais duros, e o governo temia um desembarque do aliado.

O PP também é o partido do presidente da Câmara dos Deputados, Arthur Lira (PP-AL), que vem segurando as pressões para a abertura de um processo de impeachment contra Bolsonaro. Há mais de cem pedidos protocolados na Câmara, mas a decisão de abrir um processo depende do presidente da Casa.

Além disso, o líder do governo na Câmara, Ricardo Barros (PP-PR), também pertence ao partido. O deputado está na mira da I da Covid devido a negócios suspeitos quando era ministro da Saúde ainda na gestão Michel Temer (MDB) e por acusações de que teria atuado para fechar a compra da vacina Covaxin sem aprovação da Anvisa (Agência Nacional de Vigilância Sanitária) e com valor acima das concorrentes.

Novo ministro chamou Bolsonaro de 'fascista'

Em 2018, Nogueira apoiou o candidato do PT, Fernando Haddad, no segundo turno das eleições presidenciais. Em 2017, ele chamou Bolsonaro de "fascista" e "preconceituoso" em uma entrevista a um programa da Rede Meio Norte.

"O Bolsonaro, eu tenho muita restrição porque é um fascista. Tem um caráter fascista, preconceituoso. É muito fácil você ir para a televisão dizer que vai matar bandido", disse Nogueira na ocasião.

Em sua live semanal na última quinta-feira (22), Bolsonaro minimizou as declarações de Nogueira e disse que "as coisas mudam".

"Tem vídeo circulando que ele me chamou de fascista lá atrás. Sim, me chamou. As coisas mudam. Eu tinha posições no ado que não assumo mais hoje, mudei", disse Bolsonaro.

O governo Bolsonaro teve início em 1º de janeiro de 2019, com a posse do presidente Jair Bolsonaro (então no PSL) e de seu vice-presidente, o general Hamilton Mourão (PRTB). Ao longo de seu mandato, Bolsonaro saiu do PSL e ficou sem partido até filiar ao PL para disputar a eleição de 2022, quando foi derrotado em sua tentativa de reeleição.