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

Presidente do Grêmio fica no RJ em 'plantão' à espera de decisão contra Fla

Lucas Uebel/Grêmio
Imagem: Lucas Uebel/Grêmio

Jeremias Wernek

Do UOL, em Porto Alegre

16/09/2021 00h33

Os jogadores do Grêmio e Felipão voltarão a Porto Alegre na madrugada de hoje (16), logo depois da derrota para o Flamengo por 2 a 0 e confirmação da queda na Copa do Brasil, mas o avião vai retornar com um lugar vazio. Romildo Bolzan Jr., presidente gremista, ficará no Rio de Janeiro para acompanhar os desdobramentos da nova tentativa de derrubar liminar que permite ao Fla jogar com presença de público e conversas sobre possível paralisação do Campeonato Brasileiro.

A volta da delegação ao Rio Grande do Sul já estava programada antes do início da articulação para adiar a 21ª rodada do Brasileirão. Mesmo com novo jogo contra o Fla, no Maracanã, Felipão e diretoria resolveram montar um planejamento sem estadia prolongada fora de casa.

Romildo ficará no Rio de Janeiro para seguir de perto os eventos de bastidores, tanto no STJD (Superior Tribunal de Justiça Desportiva) quanto CBF. A ideia é observar o cenário desde a manhã. Ainda não há agenda com reuniões marcadas com outros clubes ou com dirigentes da própria confederação.

Ao longo da quarta-feira, 19 clubes da Série A entraram com novo recurso no Tribunal para derrubar a liminar favorável ao Flamengo. A CBF também protocolou ação na Corte. A ideia inicial era obter alguma resposta ainda na quarta-feira (15), mas o plano foi frustrado. O auditor Felipe Bevilacqua é quem analisa os pedidos atuais. A expectativa atual foi renovada para uma posição ao longo da quinta-feira (16). De forma prática, a decisão deve impactar na logística dos clubes. Além de um possível recurso do outro lado.

Flamengo e Grêmio se enfrentam no domingo (19), às 20h30 (horário de Brasília), no Maracanã. A partida é a segunda de um total de três em que o clube rubro-negro pode receber público, de acordo com liminar obtida no STJD.

A delegação gremista se reapresenta na quinta-feira à tarde, em Porto Alegre. A nova viagem ao Rio de Janeiro está programada para sábado (18), às 15h (de Brasília).

O julgamento do mérito do caso está previsto para 23 de setembro e os demais 19 clubes do Brasileirão reclamam quebra de isonomia e desequilíbrio técnico. Além de desalinho com acerto firmado em Congresso Técnico do campeonato, em março, onde todos os times toparam retomar presença de público ao mesmo tempo, mediante aval de autoridades sanitárias locais.