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

Carla Araújo

REPORTAGEM

Texto que relata acontecimentos, baseado em fatos e dados observados ou verificados diretamente pelo jornalista ou obtidos pelo o a fontes jornalísticas reconhecidas e confiáveis.

Depois de derrota do governo no Senado, Pacheco receberá governadores

Presidente do Senado, Rodrigo Pacheco, faz pronunciamento à imprensa - Marcos Brandão/Senado Federal
Presidente do Senado, Rodrigo Pacheco, faz pronunciamento à imprensa Imagem: Marcos Brandão/Senado Federal

Do UOL, em Brasília

01/09/2021 21h38

Receba os novos posts desta coluna no seu e-mail

Email inválido

Um dia depois de o governo sofrer uma derrota no Senado, com a rejeição da reforma trabalhista, o presidente do Senado, Rodrigo Pacheco (DEM-MG), receberá nesta quinta-feira (2) os representantes do Forum Nacional de Governadores na residência oficial em Brasília.

O governador do Piauí, Wellington Dias, que preside o grupo de governadores, afirmou que a pauta tratará da defesa da democracia e também de projetos para acelerar a retomada da economia.

"Iremos dialogar sobre o compromisso dos governadores com a democracia, do Congresso Nacional, dos Poderes e da sociedade brasileira com a democracia, além dos projetos que possam acelerar a economia, cuidar, por exemplo, da Reforma Tributária, a partir dos projetos apresentados a Estados e Municípios e ter um entendimento que se preocupe de simplificar a tributação, evitar a guerra fiscal e ampliar um ambiente adequado aos empreendedores", afirmou, em nota.

Os governadores queriam fazer uma reunião com os chefes de todos os poderes, mas o presidente Jair Bolsonaro, por exemplo, já disse a auxiliares que não deve receber o grupo de governadores.

Fim da reforma trabalhista

Horas antes de confirmar a agenda com governadores, Pacheco presidiu a sessão que acabou com a derrota do governo com a rejeição da MP 1045, que previa uma reforma trabalhista.

Fontes do Planalto e do Ministério da Economia viram por trás da derrota uma articulação do presidente do Senado, que teria feito acordos com a oposição - ainda na época de sua eleição - para não votar nenhuma mudança trabalhista. Pacheco tem sido visto por auxiliares do presidente cada vez mais como um opositor da agenda de Bolsonaro, já que está despontando como possível candidato à Presidência em 2022.

Na sessão desta quarta-feira, o líder do governo, Fernando Bezerra, afirmou que havia feito acordo com a Câmara para que o texto desidratado da reforma fosse aprovado.

Apesar disso, segundo fontes do governo, "jogos políticos" foram colocados "acima do interesse do país e da geração de empregos".

O presidente da Câmara, Arthur Lira (PP-AL), criticou em Plenário a decisão do Senado e disse que havia um acordo para aprovar a matéria com as alterações feitas pelos senadores, mas que o Senado deixou "3 milhões de jovens sem oportunidade".

A culpa é do Onyx?

Algumas fontes do governo também destacaram que a articulação no Senado foi acompanhada pelo ministro Onyx Lorenzoni, que agora está à frente do Ministério do Trabalho.

Ao longo do dia, auxiliares de Onyx estavam otimistas com o acordo e lamentaram a derrota do governo.

Após a derrota, Onyx comentou a derrota do governo nas redes sociais e afirmou que os senadores "fecharam as portas" para milhões de pessoas. "Nós do Ministério do Trabalho vamos nos reunir amanhã para buscar alternativas", disse. "Eu lamento, na minha avaliação, o Senado federal errou".