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

Câmara aprova regime de urgência para Lei do Mandante

Discussão e votação de propostas no plenário da Câmara de Deputados - Pablo Valadares/Câmara dos Deputados
Discussão e votação de propostas no plenário da Câmara de Deputados Imagem: Pablo Valadares/Câmara dos Deputados

Igor Siqueira e Leo Burlá

Do UOL, no Rio de Janeiro

06/07/2021 16h32

A Câmara dos Deputados aprovou hoje (6) o requerimento para dar urgência à Lei do Mandante. O projeto de lei tramita na casa após o envio do texto por parte do Executivo. O requerimento teve 387 votos a favor e dois contrários. Todos os partidos orientaram favoravelmente.

"Tenho conversado com clubes de futebol, com atletas. Isso vai trazer uma guinada para o esporte do Brasil", disse o deputado Julio Cesar Ribeiro (Republicanos-DF), que é o relator da matéria no Plenário.

Com a aprovação da urgência, o mérito ficará para a sessão de amanhã (7). A expectativa do relator é aprovar o texto final antes do recesso parlamentar, que começa no dia 17.

"A minoria encaminha o voto sim, alertando o relator para que no mérito possamos discutir o conteúdo do projeto. Há muitas questões levantadas que envolve os clubes e interesses das redes de televisão", disse o deputado José Guimarães (PT-CE), líder da minoria.

Julio Cesar Ribeiro não pretende alterar muito o teor do texto, que basicamente permite aos clubes mandantes negociar seus direitos de transmissão, independentemente dos contratos eventualmente existentes dos clubes visitantes.

Mas há dois itens nos quais ele cogita mexer. Um é tirar os árbitros da lista dos que dividirão uma taxa de 5% dos contratos de direito de transmissão negociados pelos clubes. Esse benefício, a ser pago via sindicatos das classes, se restringiria a jogadores e técnicos.

O outro é a tirar a alteração na Lei Pelé que aria a permitir que emissoras de TV ou redes de TV por se tornassem patrocinadores em uniformes nos clubes. A ideia, por ora, é não criar obstáculo para empresas de streaming, por exemplo, mas manter o veto para as TVs.