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

Palmeiras

Além da grana: negócio entre Palmeiras e Borré teve desgate com agentes

Borré durante o jogo entre Palmeiras e River Plate, pela semifinal da Libertadores - Staff Images/Conmebol
Borré durante o jogo entre Palmeiras e River Plate, pela semifinal da Libertadores Imagem: Staff Images/Conmebol

Thiago Ferri

Do UOL, em São Paulo

20/03/2021 04h00

O Palmeiras decidiu encerrar as conversas com Santos Borré depois de entender que seria arriscado financeiramente bancar a proposta formalizada há pouco mais de um mês. Este, porém, não foi o único motivo para suspender uma negociação que acabou minada também pelo desgaste entre as partes.

A oferta era por um contrato de quatro anos, com US$ 4,8 milhões (cerca de R$ 26,3 milhões) em luvas mais US$ 2 milhões (R$ 11 milhões) em salários por ano, livres de impostos.

Os números eram bem próximos daquilo que Borré desejava, mas o jogador não aceitou assinou um pré-contrato — ele tem vínculo com o River Plate (ARG) até 30 de junho e já está liberado para acertar com outra equipe. A ideia era acertar com o atleta de 25 anos e integrá-lo ao elenco no segundo semestre.

Depois de ter conversas diretas com o centroavante, o clube enviou o empresário André Cury à Argentina para intermediar o negócio, uma estratégia que não é rara no mercado da bola. De acordo com pessoas envolvidas nas tratativas, Borré havia sinalizado que poderia centralizar o diálogo, mas, do outro lado, os agentes do jogador ficaram incomodados por não terem participado do primeiro encontro. A ideia da empresa que gere a carreira do atleta era tratar diretamente com o clube.

Sem com o Palmeiras, o atacante recebeu oferta do Toronto FC, do Canadá, mas disputar a Major League Soccer (MLS) não o seduziu. O São Paulo também mostrou interesse, e de imediato não considerou ser possível se aproximar dos valores que o Verdão estava disposto a pagar.

Há dez dias, Cury voltou a Buenos Aires e teve mais duas reuniões: a primeira novamente com Borré e outra, enfim, com os empresários. Assim como da outra vez, não foi sacramentado o acerto.

Com contrato válido até junho com o River, o centroavante nutre a esperança de receber uma oferta da Europa, mas nada até então se aproximou dos valores do Palmeiras. O treinador Abel Ferreira, que teve conversas por telefone com o atleta, avisou na última quarta-feira (17) ao UOL Esporte: não iria esperar muito.

Neste cenário com a indecisão de Borré, o Palmeiras ou a avaliar os riscos de manter os valores ofertados com a piora da pandemia do novo coronavírus. O Campeonato Paulista foi suspenso, e a previsão de ter público nos estádios no segundo semestre se mostra difícil de acontecer.

Como não teve em nenhum momento a resposta definitiva do atleta de que ele aceitava o proposto e ia um pré-contrato, o Palmeiras entendeu ser melhor retirar a proposta em meio às incertezas no futebol brasileiro e buscar outra opção no mercado da bola que não tivesse um pacote financeiro tão robusto.

Mesmo antes de oficializar a desistência por Borré, o Verdão já estava em busca de nomes no mercado. Sebástian Ferreira, do Libertad (PAR), Tiquinho Soares, Taty Castellanos, do New York City (EUA) e Juan Dinenno, do Pumas (MEX), já foram discutidos no clube. Ainda não há, contudo, uma negociação encaminhada. Abel Ferreira entende ser necessário buscar um centroavante para dar outra opção além de Luiz Adriano.

Palmeiras