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

Mercado da Bola

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.

Lucas Moura no São Paulo: entenda por que volta agora é improvável

Lucas Moura e o técnico Antonio Conte: volta do jogador ao São Paulo agora é improvável - Ryan Pierse/Getty Images
Lucas Moura e o técnico Antonio Conte: volta do jogador ao São Paulo agora é improvável Imagem: Ryan Pierse/Getty Images

Com Bruno Andrade e Brunno Carvalho

13/06/2022 04h00

O sonho com a volta de Lucas Moura ao São Paulo tem agitado torcedores nas redes sociais, mas uma saída do Tottenham para retornar ao Brasil agora nesta janela é improvável. Financeiramente se trata de uma negociação fora da realidade do Tricolor, e a classificação para a Liga dos Campeões motiva o meia-atacante a defender os Spurs.

"Muito difícil, improvável. Não tive nenhuma conversa com clube, então provavelmente faço parte dos planos. Não só salário, mas a multa. O Tottenham não iria liberar, sei lá, hoje meu valor de mercado para comprar seriam 10 milhões de libras ou 15 milhões de libras, não sei se caberia na realidade do clube", disse Lucas Moura, em entrevista ao "Bola da Vez", da ESPN Brasil.

"Também classificamos para a Champions League, algo que me motiva muito. Não sei se terei outra oportunidade de jogar Champions. Bem difícil uma volta agora. Se os clubes estão conversando não sei. Preciso saber ainda do Tottenham se faço parte do projeto, acredito que sim. Na minha cabeça quero jogar esse ano", completou.

Lucas Moura foi alvo na semana ada de uma abordagem oficial de clube da MLS (Major League Soccer). A sondagem concreta era para uma transferência agora no mercado da bola do verão europeu, mas o Tottenham rejeitou abrir conversas.

A saída foi travada especialmente por decisão de Antonio Conte. Mesmo com a forte possibilidade de contratar Richarlison, num acordo com o Everton de aproximadamente 60 milhões de euros (R$ 315 milhões), o treinador italiano reforçou nos bastidores que conta com o ex-são-paulino para a próxima temporada.

Paralelamente, o São Paulo monitora a situação e se coloca como opção futura de destino, mas crê que isso seja mais possível do ponto de vista financeiro mais perto do final do contrato válido até junho de 2023, com possibilidade de prorrogação por mais um ano. O Tricolor vive grave crise de caixa e precisará vender jogadores nesta janela de transferências.

Lucas Moura quer voltar a jogar um dia no São Paulo e até citou 2023 como uma possibilidade boa para retorno, ano no qual completará dez anos fora do Brasil - ele foi vendido ao PSG em 2012 e se transferiu em 2013.

"Nunca escondi o sonho de voltar a jogar no São Paulo, mas não é uma situação simples. Não gosto de iludir o torcedor. Tenho contrato por mais um ano, com opção de estender por mais um ano se avisar até dezembro. Eu estando livre de contrato daqui um ou dois anos a possibilidade de voltar pro São Paulo é forte. Mas daqui dois anos vou estar com 31, estarei muito bem, então pode ser que apareça um clube top na Europa, onde vou jogar em nível competitivo. Se não aparecer nenhuma oportunidade num grande centro, a possibilidade de voltar ao São Paulo é muito grande. Quando voltar vou dar a vida".

Prova da proximidade entre o São Paulo e Lucas Moura é que nesta semana o jogador esteve no CT de Cotia, da base, para torcer pelos garotos do sub-20 e conversar com os jovens.