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

Brasileirão - 2021

STJD derruba liminar que permitia público ao Flamengo; rodada está mantida

Torcedores do Flamengo posam na frente do Maracanã - Ricardo Borges/UOL
Torcedores do Flamengo posam na frente do Maracanã Imagem: Ricardo Borges/UOL

Igor Siqueira

Do UOL, no Rio de Janeiro

16/09/2021 01h28

Após recursos de 17 clubes e da CBF, veio o efeito suspensivo à liminar do Flamengo, que permitia público na próxima rodada do Brasileirão. A decisão foi tomada no início da madrugada de hoje (16) — quase duas horas depois do Flamengo x Grêmio pela Copa do Brasil, que marcou o retorno do público ao Maracanã, com base nessa mesma liminar que agora caiu. O despacho foi feito pelo auditor do Pleno do STJD, Felipe Bevilacqua, relator do processo na instância máxima da Justiça Desportiva brasileira.

O UOL Esporte apurou que a solução encontrada por Bevilacqua foi suspender os efeitos da decisão anterior até a realização do conselho técnico da Série A, marcado para 28 de setembro. Com isso, evita-se que os clubes levem adiante a ameaça de suspensão da rodada do próximo fim de semana, que seria uma resposta extrema ao uso da liminar por parte do Flamengo para colocar torcida no estádio.

No dia 8, os demais 19 clubes concordaram de forma unânime que só haveria público no Brasileirão se as autoridades de todas as praças autorizassem. A reunião do dia 28 foi agendada para que houvesse uma nova rodada de discussão, verificando a viabilidade de liberação visando à 23ª rodada (que começa em 2 de outubro).

"Diante do caráter de urgência ante a possível violação à legislação federal posta e consubstanciado nas inúmeras petições e manifestações dos autos, bem como tratando-se de matéria com escopo relevante e que traduz, em análise perfunctória, probabilidade de dano de difícil ou incerta reparação com a iminente não realização da rodada deste próximo final de semana, concedo parcialmente o efeito suspensivo ativo vindicado, para o fim de afastar parcialmente os efeitos da medida liminar concedida nestes autos até a reunião do conselho técnico, este a ser realizada no próximo dia 28 de setembro, restabelecendo automaticamente "in totum" os efeitos ora sustados no dia imediatamente posterior à realização da referida reunião, independentemente de resultado", escreveu Bevilacqua na decisão.

A decisão vem a calhar não só para os 17 clubes que fizeram oposição ao Flamengo no tribunal, mas também a CBF, que temia a ameaça de suspensão da rodada. A entidade não queria "apertar o botão" e oficializar o cancelamento da agenda do fim de semana. O discurso ao logo do dia foi de fazer um esforço para "preservar as competições".

No recurso feito pela CBF, a própria entidade citou que "fatalmente" a rodada seria adiada, caso o Flamengo seguisse com a ideia de colocar torcida no jogo do fim de semana, valendo-se da liminar em vigor.

Na decisão de hoje, Bevilacqua estabeleceu que a liminar volta a valer imediatamente no dia seguinte à reunião do dia 28. O julgamento no Pleno da medida inominada feita pelo Flamengo que gerou a decisão liminar estava agendado para o dia 23, mas o processo foi retirado de pauta.

O movimento dos clubes de pressionar o STJD e a CBF a respeito da suspensão da rodada do Brasileirão ganhou corpo na terça-feira, quando o presidente do STJD, Otávio Noronha, rejeitou o pedido de reconsideração feito pelos clubes. Na liminar inicial, ele tinha considerado que a CBF não era competente para dizer se poderia ou não haver torcida. Isso era uma prerrogativa das autoridades.

Mas na documentação protocolada ontem à tarde, a CBF argumentou que o conselho técnico tinha, sim, poder para tomar a decisão sobre o público e fez o alarde sobre o risco de a rodada não acontecer, o que acabou sendo citado por Bevilacqua na decisão que, por ora, adia a briga jurídica a respeito do assunto.