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

Marcel Rizzo

Palmeiras pode fazer Copa do Brasil-2020 acabar após a edição 2021 começar

Colunista do UOL

06/01/2021 10h55

A vitória do Palmeiras de 3 a 0 sobre o River Plate deixou o clube brasileiro perto da final da Libertadores e forte na briga para disputar o Mundial de Clubes-2020, que por causa da pandemia será entre 1º e 11 de fevereiro de 2021 no Qatar. E vai embaralhando cada vez mais o calendário neste final de temporada. Por exemplo: a Copa do Brasil-2020 poderia terminar com a Copa do Brasil-2021 já em andamento.

Se o time comandado por Abel Ferreira ganhar a Libertadores em 30 de janeiro, no Maracanã, inevitavelmente a CBF terá que adiar as finais da Copa do Brasil entre Grêmio x Palmeiras, marcadas para 3 e 10 de fevereiro. Nesse período os paulistas estarão viajando ao Qatar para jogar o Mundial da Fifa — a estreia palmeirense, já na semifinal, seria dia 7 de fevereiro.

Mas para quando a Copa do Brasil iria? A CBF não tem muita saída. Todos os finais de semana de fevereiro já têm jogos do Brasileiro e os meios de semana de 17 e 24 também. Dia 24, por sinal, será a última rodada da Série A em que é necessário que todas as partidas ocorram no mesmo horário e, claro, todas as equipes já tenham realizado 37 confrontos.

A solução será adiar a final da Copa do Brasil para as primeiras semanas de março. Os Estaduais já terão começado, mas no caso palmeirense, por exemplo, não há jogos do Paulistão nos meios de semana de 3, 10 e 17 de março. O Grêmio terá certamente folgas nos dias 3 e 10 e a Copa do Brasil poderia se encaixar aí. Com um detalhe: a edição 2021 da Copa do Brasil começará com sua primeira fase em 3 de março, ou seja, nesse cenário as edições 2020 e 2021 estariam sendo realizadas ao mesmo tempo.

A ida do Palmeiras para final da Libertadores também embaralharia o Brasileiro. Por enquanto a CBF conseguiu fazer uma "mágica" e evitar jogos do clube paulista a cada 48 horas, o que foi autorizado porque o calendário ficou apertado devido à pandemia. Mas isso pode mudar agora.

No dia 27 de janeiro, três dias antes da final da Libertadores portanto, o Palmeiras tem jogo marcado contra o Vasco referente à primeira rodada. Há uma questão aí: a Conmebol exige que os times finalistas estejam na sede da decisão da Libertadores 72 horas antes da partida. Ou seja, quarta-feira, dia que o Palmeiras tem que estar em São Paulo para pegar o Vasco.

Pode haver duas situações aí: 1) a Conmebol abrir uma exceção e deixar o Palmeiras jogar em São Paulo, até porque estará no Brasil a uma distância curta do Rio; 2) a CBF ter que adiar a partida para sabe lá quando.

Mas se esse jogo ocorrer na data prevista, outro inevitavelmente terá que ser adiado, o do dia 31 de janeiro contra o Botafogo, em São Paulo. Para quando? Dia 1º, segunda-feira, entre a final da Libertadores e a viagem para o Qatar?

O Mundial também adiaria outra partida certa do Palmeiras, da 34ª rodada contra o São Paulo, que será disputada no fim de semana de 6 e 7 de fevereiro. E a da 35ª rodada, frente o Coritiba, será marcada para sábado de Carnaval, 13 de fevereiro. O time jogaria dois dias depois de atuar no Qatar na disputa do 3º lugar ou na final do Mundial?

Nesse cenário a CBF teria que inevitavelmente marcar jogos do Palmeiras a cada 48 horas para que no dia 24 de fevereiro o time possa encarar o Atlético-MG, em Belo Horizonte, com 37 partidas realizadas.

No caso de o Santos ser finalista da Libertadores e ir ao Mundial, o estrago no calendário é menor porque não tem a Copa do Brasil e há uma margem maior para remarcar as partidas no Brasileiro.