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

Rafael Reis

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.

Como os conflitos de ego tomaram conta do 'super PSG' em apenas 2 meses

Neymar e Mbappé são os protagonistas do novo conflito de vestiário do PSG - AFP
Neymar e Mbappé são os protagonistas do novo conflito de vestiário do PSG Imagem: AFP

28/09/2021 04h00

Receba os novos posts desta coluna no seu e-mail

Email inválido

Lionel Messi, Neymar, Kylian Mbappé, Sergio Ramos, Marquinhos, Gianluigi Donnarumma, Ángel di María, Georginio Wijnaldum. No papel, juntar várias estrelas do primeiro escalão do futebol mundial parecia uma ótima ideia para colocar o Paris Saint-Germain no caminho do inédito título da Liga dos Campeões da Europa.

Mas, dois meses após o início da temporada 2021/22, o "super PSG" chega a seu primeiro confronto decisivo, contra o Manchester City, hoje, na França, pela segunda rodada do Grupo A da Champions, sob forte pressão e muitas críticas.

Além da falta de bom futebol (o time estreou no torneio europeu com empate contra o modesto Brugge, por exemplo), uma outra questão tem abalado a confiança de que o projeto bancado pelo governo do Qatar possa dar certo: as guerras de ego.

Os conflitos que têm rachado o vestiário começaram ainda durante a janela de transferências, quando o estrelado elenco parisiense estava sendo montado.

O zagueiro Presnel Kimpembe, campeão mundial com a seleção sa na Copa-2018 e único titular formado nas categorias de base do próprio clube, não gostou nada da ideia da contratação de Sergio Ramos, que provavelmente o mandaria para o banco de reservas.

Depois, foi a vez do recém-chegado Donnarumma fazer bico. Eleito o melhor jogador da última Eurocopa, o italiano tem reclamado nos bastidores de estar sendo preterido por Keylor Navas, goleiro que já estava em Paris antes e que tem sido escalado na maioria das partidas.

O primeiro conflito que ficou visível dentro de campo aconteceu há dez dias. Messi, principal reforço da temporada, foi substituído durante o segundo tempo da partida contra o Lyon e, ao deixar o campo, recusou-se a cumprimentar o técnico Mauricio Pochettino.

Após o mal-estar causado pela cena, o treinador, que também é argentino, afirmou que havia conversado com o compatriota e que entre eles estava "tudo bem" e a situação dentro da normalidade.

Mas o conflito mais recente é também o que mais assusta os torcedores do PSG. Neymar e Mbappé, duas das principais estrelas do elenco e peças-chaves no jogo da equipe nas últimas temporadas, não andam se entendendo muito bem.

O time francês ainda não fez sequer um gol nesta temporada com participação direta dos dois astros (assistência de um para finalização do outro). Durante a vitória por 2 a 0 sobre o Montpellier, no sábado, a transmissão do Canal+ flagrou Mbappé xingando o brasileiro e reclamando que não estava recendo es do camisa 10.

O jovem atacante tem sido um dos jogadores do PSG mais criticados pela torcida e pela imprensa neste início de temporada.

Para eles, Mbappé perdeu rendimento, está pouco interessado no sucesso do time e tem pensado apenas no seu desempenho individual porque pretende se transferir para o Real Madrid em junho, quando seu contrato com o clube francês chega ao fim.

Depois de duas temporadas consecutivas com alteração de sede da decisão por causa dos efeitos da pandemia de covid-19, a Uefa espera que, desta vez, a Champions consiga ir até à final obedecendo seu planejamento original.

O jogo que irá decidir o sucessor do Chelsea no posto de campeão europeu de clubes está marcado para o dia 28 de maio do próximo ano e será disputado no estádio Krestovsky, em São Petersburgo (Rússia).

Liga dos Campeões - rodada 2

Hoje

13h45 - Shakhtar Donetsk x Inter de Milão (Grupo D)
13h45 - Ajax x Besiktas (Grupo C)
16h - Real Madrid x Sheriff (Grupo D)
16h - Milan x Atlético de Madri (Grupo B)
16h - Borussia Dortmund x Sporting (Grupo C)
16h - Paris Saint-Germain x Manchester City (Grupo A)
16h - Porto x Liverpool (Grupo B)
16h - RB Leipzig x Brugge (Grupo A)

Amanhã

13h45 - Atalanta x Young Boys (Grupo F)
13h45 - Zenit São Petersburgo x Malmö (Grupo H)
16h - Wolfsburg x Sevilla (Grupo G)
16h - Bayern de Munique x Dínamo de Kiev (Grupo E)
16h - Red Bull Salzburg x Lille (Grupo G)
16h - Juventus x Chelsea (Grupo G)
16h - Benfica x Barcelona (Grupo E)
16h - Manchester United x Villarreal (Grupo F)