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

De conversa marcada com Messi, presidente do PSG se diz triste por Mbappé

Nasser al-Khelaifi, presidente do PSG - FRANCK FIFE/AFP
Nasser al-Khelaifi, presidente do PSG Imagem: FRANCK FIFE/AFP

Colaboração para o UOL, em São Paulo

18/12/2022 18h21

Classificação e Jogos

Protagonistas da final da Copa do Mundo do Qatar, Lionel Messi e Kylian Mbappé são companheiros de clube, no PSG, da França. Presidente do clube francês, o qatari Nasser Al-Khelaifi disse estar triste pelo craque francês e pela seleção do país europeu, mas orgulhoso do desempenho dos jogadores da equipe no mundial.

"Estou muito orgulhoso da organização, mostramos que o Qatar pode organizar a melhor competição do mundo, mostramos a todos o que podemos fazer. A melhor final da história da Copa do Mundo, eu acho. Estou triste pela França, como presidente de um clube francês", disse Al-Khelaifi em entrevista à emissora sa "RMC".

"Triste pelo Kylian, que fez uma partida mais que perfeita. Se fosse eu, daria duas taças, uma para o Kylian, outra para o Leo. Foi difícil para mim, sou francês. Mas também estou feliz por Leo, é a cereja do bolo, ele merece e Kylian ainda tem muitos anos para ganhar uma Eurocopa ou Mundial. Como clube, quebramos recordes, os jogadores do PSG foram os que mais marcaram. Estamos orgulhosos deles, de Hakimi também com esta semifinal do Marrocos", complementou.

Futuro de Messi e Mbappé

Questionado sobre a permanência de Messi e Mbappé, o presidente do PSG afirmou que deseja que os dois continuem no clube francês, citando os grandes feitos dos atletas na Copa do Mundo.

Nasser Al-Khelaifi disse que tem uma conversa marcada com Messi para discutir o futuro do jogador. Com contrato até o fim da temporada 2022/23, o craque argentino poderia um pré-contrato com outro clube em janeiro caso não tenha o vínculo estendido.

"Manter Mbappé e Messi? Claro, esses são os dois artilheiros e melhores jogadores do Mundial. Não quero falar nada pelo Leo, tínhamos um acordo para conversar depois do Mundial", completou Al-Khelaifi.

Adversários na decisão da Copa do Mundo, Mbappé e Messi podem voltar a atuar juntos daqui a dez dias, quando o PSG tem o primeiro compromisso pós-Copa, contra o Strasbourg, pelo Campeonato Francês.

Quem foi o melhor jogador da Copa do Mundo? Vote!

Resultado parcial

Total de 1864 votos
2,52%
FRANCK FIFE/AFP
0,05%
Evrim Aydin/Anadolu Agency via Getty Images
0,54%
Justin Setterfield/Getty Images
1,34%
Ulrik Pedersen/DeFodi Images via Getty Images
12,55%
Odd ANDERSEN / AFP
73,39%
Kai Pfaffenbach/Reuters
1,61%
Pablo Morano/BSR Agency/Getty Images
4,67%
Justin Setterfield/Getty Images
0,64%
Shaun Botterill/Getty Images
2,68%
Catherine Ivill/Getty Images