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

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.

Copa América terá jogos em Brasília e plano por Nordeste e público na final

Estádio Mané Garrincha será uma das sedes da Copa América no Brasil - Marcelo Cortes / Flamengo
Estádio Mané Garrincha será uma das sedes da Copa América no Brasil Imagem: Marcelo Cortes / Flamengo

Colunista do UOL

31/05/2021 12h24Atualizada em 31/05/2021 16h51

Conmebol e CBF conversam com governos estaduais e proprietários de estádios para definir as sedes da Copa América, que foi confirmada para o Brasil nesta segunda-feira (31) depois de Argentina (por causa da pandemia) e Colômbia (em instabilidade política) deixarem a organização da edição 2021. Um estádio está confirmado: o Mané Garrincha, em Brasília.

A Conmebol quer a final no Maracanã, no Rio, mas vai depender da disponibilidade do estádio, que é istrado por Flamengo e Fluminense e terá jogos dos times no Campeonato Brasileiro no período do torneio, entre 13 de junho e 10 de julho. A entidade pediu ao Brasil para receber o torneio, entre outros motivos, porque tem esperança de que haja liberação para público ao menos na final — nem que seja convidados, como ocorreu na decisão da Libertadores, entre Palmeiras e Santos, dia 30 de janeiro no Maracanã. Hoje os jogos de futebol no Brasil estão sendo realizados com os portões fechados por causa da covid-19. Segundo informação do colunista do UOL Rodrigo Mattos, a istração do Maracanã não recebeu até agora contato de Conmebol ou CBF a respeito da Copa América.

A ideia é que na primeira fase os jogos fiquem concentrados principalmente em estádios sem demanda de partidas da Série A: Brasília está confirmado. Se avaliava também campos no Nordeste como a Arena das Dunas, em Natal, mas a governadora do Rio Grande do Norte, Fátima Bezerra (PT), disse não concordar com o evento em seu estado por causa da pandemia.

A Arena Pernambuco, na região metropolitana de Recife, foi cogitada, mas o governo pernambucano já emitiu um comunicado dizendo que, "apesar de ainda não ter sido procurado oficialmente pela Confederação Brasileira de Futebol (CBF)" para sediar jogos do torneio, "o atual cenário epidemiológico não permite a realização de evento do porte" no território". A Arena Amazônia, em Manaus, foi colocada na mesa, mas a intenção é evitar grandes deslocamentos. São Paulo seria exceção, já que tem calendário da Série A do Brasileirão, mas está sendo cogitada.

O Conselho da entidade pediu a criação de "sedes bolhas", ou seja, as equipes fariam jogos nas mesmas cidades, ou em locais próximos, para evitar muitas agens por aeroportos, onde a chance de contaminação por covid-19 aumenta. Só sairiam do hotel para treinar e jogar.

Para a fase final, a Conmebol gostaria de jogos concentrados em São Paulo, Brasília e no Rio. Aí a situação fica mais complicada porque os principais estádios de São Paulo e Rio estarão em uso para o Campeonato Brasileiro, incluindo o Maracanã. Se por algum motivo a arena carioca e as paulistas não puderem receber a finalíssima, o estádio Mané Garrincha, que recentemente ou por vistoria para ser escolhida como sede da final da Copa Sul-Americana em 2022, seria a opção.

Até a noite de domingo (30), quando a Conmebol anunciou que a Argentina não seria mais a sede (a Colômbia já havia sido retirada havia dez dias), a CBF não considerava o Brasil candidato. O pedido da Conmebol veio na reunião extraordinária do Conselho, realizada na manhã desta segunda. Houve contato de membro da confederação com integrante do governo Jair Bolsonaro (sem partido), que consultou o presidente e recebeu o ok.

As dez seleções sul-americanas estão divididas em dois grupos e, a princípio, não terá mudança nisso: no A estão Argentina, Chile, Bolívia, Paraguai e Uruguai e no B, Brasil, Colômbia, Peru, Equador e Venezuela. A tabela será modificada e o Brasil deve estar na abertura, dia 13 de junho, em Brasília.