;(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
Logo Pagbenk Seu dinheiro rende mais
Topo

Bolsonaro tira poder de Guedes e dá mais controle do Orçamento à Casa Civil

Bolsonaro delegou parte das definições sobre execução do orçamento de 2022 a Ciro Nogueira (PP) - Isac Nóbrega/PR
Bolsonaro delegou parte das definições sobre execução do orçamento de 2022 a Ciro Nogueira (PP) Imagem: Isac Nóbrega/PR

Do UOL, em São Paulo

13/01/2022 10h14

O presidente Jair Bolsonaro (PL) tirou poder do ministro Paulo Guedes (Economia) e ou parte do controle da execução do Orçamento de 2022 do governo federal à Casa Civil, comandada pelo ministro Ciro Nogueira (PP), cacique do Centrão. A medida foi publicada em decreto na edição de hoje do Diário Oficial da União, confirmando informação publicada pelo jornal Folha de S. Paulo na noite desta quarta-feira (12).

Segundo reportagem do jornal, uma nota divulgada pelo Palácio do Planalto não citava nenhum tipo de alteração, mas ela foi confirmada por fontes do governo ouvidas pela reportagem.

A medida chega em um momento de acirramento da disputa entre as equipes de Guedes e auxiliares palacianos e representa uma tentativa de Bolsonaro de ganhar mais apoio político em ano eleitoral, com o objetivo de fazer frente ao ex-presidente Luiz Inácio Lula da Silva (PT). Pesquisas de opinião mostram que o atual chefe do Executivo está em segundo lugar nas intenções de voto, atrás do petista.

Nos bastidores, integrantes do governo tentam colocar panos quentes na alteração feita por Bolsonaro, mas reconhecem que a medida enfraquece o ministro Paulo Guedes.

Na abertura de cada ano, o decreto é editado para delegar ao chefe da Economia a competência para abrir créditos suplementares ou extraordinários, além de remanejar verbas dentro do Orçamento. Neste ano, no entanto, o documento traz um novo dispositivo. "A prática dos atos de que trata o caput está condicionada à manifestação prévia favorável do Ministro de Estado Chefe da Casa Civil da Presidência da República", diz trecho do decreto.

Em nota, o Palácio do Planalto não menciona que as decisões de Guedes dependerão de autorização prévia de Nogueira. O texto afirma que as funções foram delegadas ao ministro da Economia e que "o motivo é dar maior celeridade na efetivação dessas alterações, ao tempo em que libera a Presidência da República para análise de projetos de atos de maior repercussão".

O ministro Ciro Nogueira é membro da Junta de Execução Orçamentária (JEO) do governo, da qual também faz parte o ministro da Economia, Paulo Guedes. Entre 2019 e 2021, porém, o decreto, editado anualmente, dava somente a Guedes a competência para fazer alterações operacionais.

No fim do ano ado, por exemplo, a JEO fixou limite de R$ 3,6 bilhões para o pagamento de dívidas com organismos internacionais. À época, a decisão de quais instituições receberiam o dinheiro foi tomada pela Economia. Com o decreto, no entanto, o ato precisaria do aval da pasta de Nogueira.

*Com informações da Reuters