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

Danilo Lavieri

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.

Liga de clubes espera "poeira baixar" e segura membros após turbulência

Landim e Bellintani, presidentes de Flamengo e Bahia, falam sobre criação da Liga de clubes em junho - Igor Siqueira/UOL Esporte
Landim e Bellintani, presidentes de Flamengo e Bahia, falam sobre criação da Liga de clubes em junho Imagem: Igor Siqueira/UOL Esporte

Colunista do UOL

12/08/2021 11h40

Receba os novos posts desta coluna no seu e-mail

Email inválido

A nova Liga de clubes a pela sua primeira turbulência desde a criação e aguarda a "poeira baixar" para marcar novos encontros e realizar avanços. Foi o que ouviu o blog conversando com diferentes dirigentes que estão envolvidos no grupo que tenta diminuir o poder da CBF no futebol brasileiro. O lado positivo para os que são a favor da ideia é que não houve desertores.

Todos item que o grupo ou por duas grandes turbulências nos últimos tempos. A primeira foi em um encontro entre eles quando o presidente do Athletico, Mario Celso Petraglia, chegou a dizer que daria um tapa na cara do presidente do Bahia, Guilherme Bellintani, caso o encontro fosse presencial. O cerne da discussão era o processo de decisões para o futuro da Liga e quem teria o poder.

Desde o começo, a questão sobre quem assumiria o controle do grupo de 40 clubes foi delicada. Não à toa, logo que surgiu, o grupo evitou falar quem estava no comando, apesar de alguns cartolas serem apontados naturalmente como os que mais participavam das decisões.

Outro golpe no grupo foi o processo de intervenção na CBF que tinha por objetivo dar o comando provisoriamente da entidade ao presidente do Flamengo, Rodolfo Landim, e ao mandatário da Federação Paulista de Futebol, Reinaldo Carneiro Bastos. A ação foi movida pelo Ministério Público do Rio de Janeiro, mas causou desconforto também em alguns clubes.

Posteriormente a esse episódio, Flamengo e Atlético-MG ainda entraram na Justiça em busca de público no Campeonato Brasileiro. Essa questão foi citada como menos importante na crise pelos ouvidos pelo blog, mas também teve seu papel na turbulência, uma vez que as duas equipes atuaram de forma individual contra um combinado firmado entre os 20 clubes da Série A.

No começo do torneio, todos haviam combinado que os portões só seriam abertos quando todas as equipes tivessem a mesma condição.

Agora, enquanto espera a poeira baixar, como disseram vários dirigentes, os mais influentes na Liga comemoram que nenhum clube decidiu abandonar o grupo até o momento e apostam em uma nova reunião em breve para manter o avanço. Todos item, no entanto, que houve um estremecimento como já mostrou o UOL.

Dirigentes ligados à CBF também foram ouvidos pelo blog e afirmaram que entendem que, apesar da crise, a Liga já é algo que não terá mais como parar, ainda que, eventualmente, times resolvam deixar o grupo. O objetivo desses cartolas é deixar a entidade o máximo possível envolvida nos próximos os.

Siga também as opiniões de Danilo Lavieri no Twitter e no Instagram