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

Patrick de Paula: Palmeiras responde ao Botafogo, e jogador diz 'sim'

Patrick de Paula: Palmeiras faz contraproposta ao Botafogo, e jogador topa transferência - Cesar Greco / Palmeiras
Patrick de Paula: Palmeiras faz contraproposta ao Botafogo, e jogador topa transferência Imagem: Cesar Greco / Palmeiras

Colunista do UOL

16/03/2022 14h31

Com Bruno Andrade

O Palmeiras fez nas últimas horas uma contraproposta para vender Patrick de Paula ao Botafogo. Para avançar em definitivo com a transferência, o Verdão pediu mais 500 mil euros (R$ 2,8 milhões) e subiu então o negócio para 6 milhões de euros (R$ 33,8 milhões) por 50% dos direitos econômicos do volante - a primeira oferta era de 5,5 milhões de euros (R$ 31 milhões) pela mesma fatia.

A diferença no valor inicial tem a ver principalmente com o pagamento do mecanismo de solidariedade e também a necessidade de quitar um montante com um dos antigos empresários do jogador de 22 anos. O clube paulista quer receber os 5,5 milhões de euros (R$ 31 milhões) limpos.

Reserva hoje no time alviverde, o camisa 5 gostou do projeto apresentado pelo clube carioca, agora istrado pelo investidor norte-americano John Textor, e já deu aval para o negócio ser concretizado nesta semana. Aceitou as bases de um contrato de longa duração (de quatro a cinco anos), restando ainda definição do salário. A expectativa é de um desfecho até sexta-feira.

Na negociação em andamento de Patrick de Paula do Palmeiras ao Botafogo ainda há uma cláusula de compra de mais 20% dos direitos econômicos mediante pagamento de 3,5 milhões de euros (R$ 19,7 milhões). No futuro, caso o volante se transfira para o Crystal Palace, onde Textor também atua forte nos bastidores, o Verdão quer obter mais ganhos financeiros com um novo negócio. O clube paulista tenta se blindar com mecanismos e cláusulas futuras para o caso de o volante "estourar" no Botafogo.

Patrick de Paula, cujo vínculo atual tem validade até dezembro de 2025, é cria da Academia de Futebol. Está no Palmeiras desde 2016, quando chegou para um período de testes. Teve grande destaque em 2020, mas, aos poucos, foi perdendo espaço, especialmente agora em 2022, tendo feito apenas quatro jogos oficiais.

Siga também Marcelo Hazan no Twitter, Instagram e TikTok

  • Veja as últimas notícias de esporte e comentários de Danilo Lavieri e Vitão Guedes no programa de UOL Esporte: