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

No comando do PSL, Eduardo Bolsonaro troca membros de comissões e 13 vices

Maandel Ngan - 30.ago.19/AFP
Imagem: Maandel Ngan - 30.ago.19/AFP

Guilherme Mazieiro*

Do UOL, em Brasília

22/10/2019 12h32Atualizada em 22/10/2019 16h59

O novo líder do PSL na Câmara, Eduardo Bolsonaro (PSL-SP) utilizou suas atribuições para ganhar espaço na Câmara. Além da troca de 13 vice-líderes, o parlamentar mexeu na composição da Comissão de Constituição e Controle (CCJ), onde trocou quatro deputados.

Desafeto de Eduardo, Júnior Bozzella (PSL-SP) foi tirado da vaga de suplente da CCJ, a mais importante da Câmara. Outros três nomes entraram na suplência, Chris Tonietto (PSL-RJ), Philippe de Orleans e Bragança (PSL-RJ) e Sanderson (PSL-RS). Com 53 deputados na Câmara, o PSL tem sete titulares e outros sete suplentes na comissão. O colegiado é composto por 66 nomes titulares e 66 suplentes e é por onde am todos os projetos da Câmara.

Os vices nomeados são da ala mais próxima ao presidente Jair Bolsonaro (PSL). O primeiro vice-líder é Filipe Barros (PSL-PR). Os outros são Sanderson (RS), Carla Zambelli (SP), General Girão (CE), Márcio Labre (RJ), Alê Silva (MG), Daniel Silveira (RJ), Chris Tonietto (RJ), Junio Amaral (MG), Bibo Nunes (RS), Bia Kicis (DF), Luiz Philippe de Orleans e Bragança (RJ) e Luiz Ovando (MS).

Ontem, em seu primeiro ato como novo líder do PSL na Câmara, Eduardo determinou o desligamento de todos os vice-líderes do partido na Casa. Eduardo foi confirmado no cargo na manhã de segunda após receber o apoio de 28 dos 53 parlamentares da legenda - a lista original tinha 29 nomes, mas um não foi aceito pela Secretaria Geral da Mesa.

*Com Estadão Conteúdo

Siga o UOL no