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

Governo Lula cobra fidelidade, e PSB se compromete com arcabouço fiscal

Líder do governo na Câmara, o deputado José Guimarães (PT-CE) está pressionado após derrotas do Planalto - Lucas Borges Teixeira/UOL
Líder do governo na Câmara, o deputado José Guimarães (PT-CE) está pressionado após derrotas do Planalto Imagem: Lucas Borges Teixeira/UOL

Do UOL, em Brasília

10/05/2023 13h45

Depois das derrotas na semana ada, o governo Lula começou hoje uma série de reuniões para enquadrar os partidos da base aliada. O primeiro encontro foi com PSB do vice-presidente, Geraldo Alckmin. Ao final da conversa, os participantes trataram de mostrar alinhamento, se comprometendo com o arcabouço fiscal.

O que aconteceu

As reuniões com quatro partidos que comandam ministérios ocorrem perto da votação do arcabouço fiscal. O líder do PT na Câmara, deputado José Guimarães (CE), espera que o assunto entre pauta em cerca de dez dias. Além do PSB, haverá encontros com PSD, MDB e União Brasil.

Presidente do PT, a deputada federal Gleisi Hoffmann (PR) declarou que o PSB se comprometeu a apoiar o Palácio do Planalto nos projetos em tramitação na Câmara. Ela disse que um partido com o vice-presidente e três ministérios precisa estar alinhado com o governo. O PSB comanda as pastas dos Portos e Aeroportos (Márcio França), da Justiça e Segurança Pública (Flávio Dino) e Desenvolvimento, Indústria, Comércio e Serviços (Alckmin).

Na votação da semana ada, o líder do PSB na Câmara, deputado Felipe Carreras (PE), votou contra o governo numa alteração do Marco do Saneamento. Gleisi disse que ele justificou a "traição" por ser líder de um bloco de nove partidos que orientou voto contra o Planalto. Para ela, esta situação é inaceitável.

Não pode ter opção entre governo e bloco. [Se] é governo, é governo.
Gleisi Hoffmann, presidente do PT

A cobrança funcionou e o discurso de Carreras mudou. Ele falou que foi uma situação pontual e que vai alterar seu posicionamento durante as votações. O líder do PSB acrescentou que a condição para integrar o bloco de nove partidos foi ser base do governo e votar com o Planalto. Por fim, Carreras declarou que o partido será a favor do arcabouço, prometendo 14 votos pela aprovação do projeto.

PSB vai votar literalmente com o governo.
Felipe Carreras, líder do PSB na Câmara

O presidente do PSB, Carlos Siqueira, disse que votar com o governo não é favor, mas obrigação do partido. Ou seja, o enquadramento funcionou. A sequência de cobranças continua na tarde de hoje. Um encontro com o PSD está marcado para as 16h.

Em outra frente de atuação do Planalto, houve uma reunião do PT com mais sete partidos. Gleisi acrescentou que foi um erro não articular uma blocão de partidos de esquerda. "Eu acho que a gente, lá atrás, deveria ter feito um bloco com estes partidos progressistas. Teve também falha nossa no sentido de buscar essa conversação, afirmou a presidente do PT.