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

Rodrigo Mattos

ANÁLISE

Texto baseado no relato de acontecimentos, mas contextualizado a partir do conhecimento do jornalista sobre o tema; pode incluir interpretações do jornalista sobre os fatos.

Ligas apoiam clubes europeus em briga com Fifa e dão lição a brasileiros

Gabriel Jesus celebra gol do Manchester City diante do Norwich City - Manchester City FC/Getty Images
Gabriel Jesus celebra gol do Manchester City diante do Norwich City Imagem: Manchester City FC/Getty Images

24/08/2021 17h41

Receba os novos posts desta coluna no seu e-mail

Email inválido

A Premier League e a La Liga anunciaram que seus clubes não vão liberar os jogadores para as data-Fifa das eliminatórias sul-americanas da Copa. Trata-se de um desrespeito à norma da Fifa. Os times decidiram confronta-la alegando que, em meio à pandemia de Covid, foram impostas decisões que os prejudicam sem sua anuência. Os movimentos dos clubes europeus são uma lição para as agremiações nacionais.

Contemos a história desde o início. Em meio à pandemia de Covid, a Fifa e a Conmebol adiaram jogos das eliminatórias do início do ano. Naquela ocasião, havia uma regra de que clubes não precisavam ceder jogadores para países onde fossem imposta restrição de quarentena na volta.

Para remarcar as datas, a Fifa criou grupos de discussão com clubes e associações nacionais. Ao final, ignorou as sugestões dos times europeus e impôs rodadas triplas na América do Sul. Derrubou a regra que permitia aos times não liberar jogadores por obrigação de quarentena.

A partir daí, clubes como Liverpool e City informaram que não iriam ceder os atletas, mesmo sendo obrigados. Com o apoio da Premier League, todos adotaram a mesma posição, vetando 60 atletas para jogar por seleções sul-americanas, como divulgado. Há uma contradição do governo inglês que impõe quarentena a viajantes do Brasil, mas permite públicos de 60 mil em estádios.

A La Liga fez o mesmo com outros 25 atletas. E disse que apoiaria demandas judiciais em favor dos clubes. No seu texto, a La Liga afirmou que a ausência dos jogadores "afeta a integridade da competição ao não permitir a a disponibilidade dos jogadores". Ou seja, afeta o equilíbrio do campeonato desfalcar times por conta de seleções.

Há uma discussão aí sobre quem tem razão em relação a liberações, e sobre a importância do futebol de clubes e seleções. Mas é certo que a CBF solenemente ignora o impacto sobre o Brasileiro ao marcar jogos do durante a Copa América e eliminatórias. Só agora, no afogadilho, houve adiamentos.

E é aí que está a diferença entre a Europa e o Brasil: os campeonatos de lá são controlados por ligas que têm interesse em preservar sua competição e os interesses dos clubes. Aqui, o Brasileiro é organizado pela CBF que prioriza as suas seleções sobre os campeonatos. Há um óbvio conflito de interesse em a confederação cuidar das competições e dos times nacionais ao mesmo tempos.

Outra questão é que, quando há uma liga, a posição é de defender coletivamente todos os clubes e o campeonato, não atender interesses individuais. No Brasil, durante a Copa América, só Flamengo e Palmeiras pediram pela paralisação do campeonato porque eram os únicos que perdiam atletas para a seleção brasileira. Outros tinham desfalques menos relevantes para outras seleções.

Quem não era prejudicado, na realidade, acabou favorecido. Afinal, Flamengo, Palmeiras e, em menor medida, o Atlético-MG jogariam mais enfraquecidos durante várias rodadas. Mas o interesse coletivo do campeonato deveria ser parar a competição.

A Liga no Brasil está emperrada por uma briga na última reunião. Foi anunciada e comunicada à CBF em um encontro dos clubes na entidade. Das Séries A e B, 40 times am. Foi feito um estatuto. E aí uma briga parou tudo.

Sua importância para o país não é apenas a organização do Brasileiro, mas a capacidade de aglutinar clubes para brigar por seus interesses coletivos e do campeonato. Exatamente como fizeram os europeus.