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

Após pedido do Palmeiras, Fifa libera crianças no Mundial, mas pede vacina

Torcida durante partida entre Palmeiras e Oeste no estádio Arena Barueri pelo campeonato Copa São Paulo 2022.  - Diogo Reis/AGIF
Torcida durante partida entre Palmeiras e Oeste no estádio Arena Barueri pelo campeonato Copa São Paulo 2022. Imagem: Diogo Reis/AGIF

Colunista do UOL

21/01/2022 08h31

Receba os novos posts desta coluna no seu e-mail

Email inválido

O Palmeiras intercedeu e conseguiu fazer a Fifa mudar o protocolo para entrada de crianças menores de 12 anos no Mundial de Clubes. Agora, a entidade permite que elas estejam presentes nos estádios, mas exige ao menos uma dose de vacina contra covid-19.

Inicialmente, os Emirados Árabes Unidos disseram que liberaria pessoas nessa faixa de idade desde que elas estivessem com o ciclo vacinal completo. Como o Brasil está atrasado nesse assunto, o país acabou liberando a presença de torcedores mirins com apenas uma dose.

Essa é mais uma mudança no protocolo para torcedores na competição. Inicialmente, quando os ingressos começaram a ser vendidos, as crianças de 12 anos não precisariam nem apresentar o PCR e as que tivessem até 2 anos poderiam entrar no estádio sem pagar desde que não ocuem assento.

Depois, a Fifa emitiu comunicado aos clubes e mudou em seu site a regra afirmando que estava proibida a entrada das pessoas nessa faixa de idade. Esse boletim ainda dizia que o exame de PCR de todos precisaria ser feito no mesmo dia do jogo, mas depois a entidade recuou alegando erro de digitação. O prazo é de 48 horas antes de a bola rolar.

A troca no protocolo deixou desesperadas dezenas de famílias que já estavam com ingressos, agens aéreas e hospedagem comprados. O blog recebeu pelas redes sociais diversos relatos de pessoas que não sabiam o que fazer com a troca do regulamento inesperada. Agora, há uma saída.

Essa nova mudança ainda não está no site da Fifa, mas já foi comemorada por André Sica, chefe do departamento jurídico do clube, em seu Twitter. Foi ele que conduziu as negociações com a entidade e com o governo dos Emirados Árabes Unidos.

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