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

Paquetá e Lyon definem condições para saída, e Arsenal pode ser destino

Lucas Paquetá foi titular em amistoso do Lyon contra o Bourg-Péronnas no último sábado (9) - Lyubomir Domozetski
Lucas Paquetá foi titular em amistoso do Lyon contra o Bourg-Péronnas no último sábado (9) Imagem: Lyubomir Domozetski

Gabriel Carneiro

Do UOL, em São Paulo

12/07/2022 04h00

Mais um jogador frequente nas convocações da seleção brasileira em ano de Copa do Mundo agita o mercado da bola internacional. Depois de duas temporadas no Lyon, sendo a última com destaque, o meio-campista Lucas Paquetá tem a chance de mudar de clube nas próximas semanas.

Segundo apurou o UOL Esporte, o Arsenal aparece como principal candidato depois de o jogador, seu estafe e o Lyon definirem as bases da possível negociação. Já acontecem conversas entre as diretorias, mas o caso é tratado com tranquilidade por duas razões: não há concorrência no momento; e a janela de transferências nos dois países ainda fica aberta por 51 dias.

Paquetá já teve o nome aprovado pelo técnico Mikel Arteta e também é próximo do diretor esportivo do Arsenal, o brasileiro Edu Gaspar. Inclusive, as primeiras convocações do meia aconteceram na época em que Edu era coordenador de seleções. O que é conversado agora são aspectos financeiros da operação, porque o clube inglês achou a primeira pedida sa muito alta.

O valor mínimo considerado pelo Lyon para vender Paquetá nesta janela é de 60 milhões de euros (R$ 320 milhões, na cotação atual), como mostrou o UOL. É o triplo do que os ses pagaram ao Milan em setembro de 2020. Esta valorização é vista como exagerada pelo Arsenal, que trabalha para reduzi-la ou pagar parte do valor como bonificação por desempenho e metas no futuro.

O Lyon bate o pé na exigência. O meia tem contrato por mais três anos, foi eleito o melhor estrangeiro do Campeonato Francês em 2021/2022 e é titular na pré-temporada, considerado peça importante para as ambições do time a partir de agosto.

Ao mesmo tempo, o clube francês reconhece a boa fase de seu jogador e aceita que a saída é uma possibilidade. Um dos argumentos do estafe de Lucas Paquetá para viabilizar a transferência é que ele aceitou reduzir o salário na época em que trocou o Milan pelo Lyon e agora é hora de uma valorização. Além do ponto de vista financeiro, o brasileiro também deseja alcançar metas esportivas mais ousadas em 2022/2023, temporada em que o Lyon não se classificou para os torneios continentais mais importantes.

Paquetá - Miguel Schincariol/Getty Images - Miguel Schincariol/Getty Images
Lucas Paquetá tem sete gols em 33 jogos pela seleção e é titular sob o comando de Tite
Imagem: Miguel Schincariol/Getty Images

É o caminho que o volante Bruno Guimarães seguiu na temporada ada, por exemplo, ao trocar o Lyon pelo Newcastle. Hoje ele é um jogador valorizado no Campeonato Inglês e deu um salto em visibilidade.

O Newcastle mostrou interesse também por Paquetá, mas até o momento não ou de sondagem. O PSG foi outro clube apontado como destino do meia da seleção, mas isso foi antes da saída de Leonardo da direção do clube. Com Luis Campos, substituto do dirigente brasileiro, nenhuma conversa foi aberta.

Paquetá fez 43 jogos pelo Lyon na temporada ada, marcou 11 gols e deu sete es para gol. Na seleção, ele se firmou como titular perto da Copa do Mundo do Qatar.