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

Palmeiras e Barranquilla tentam superar travas por novo empréstimo de Borja

Miguel Borja em ação pelo Junior Barranquilla contra o Flamengo em março de 2020 - Daniel Munoz/VIEW press via Getty Images
Miguel Borja em ação pelo Junior Barranquilla contra o Flamengo em março de 2020 Imagem: Daniel Munoz/VIEW press via Getty Images

Thiago Ferri

Do UOL, em São Paulo

30/12/2020 12h00

O empréstimo de Borja ao Junior Barranquilla (COL) termina amanhã (31), mas o clube ainda negocia com o Palmeiras a permanência do atacante. As conversas travaram em barreiras burocráticas, só que as duas diretorias e o estafe do jogador ainda discutem se é viável ele permanecer em sua equipe de coração.

O principal entrave é a possibilidade de fazer uma venda durante este novo vínculo. O Verdão quer uma cláusula em que possa pedir o retorno imediato do centroavante, caso apareça uma oportunidade de venda — a meta é recuperar pelo menos parte dos US$ 13,5 milhões investidos para contratá-lo do Atlético Nacional (COL).

A pandemia do novo coronavírus, porém, trouxe uma dificuldade, já que a janela de transferências internacionais no Brasil mudou e reabre apenas em março. Ou seja, se emprestar Borja e receber uma oferta de aquisição definitiva de outro mercado agora em janeiro, o Verdão teme que não consiga pedir o retorno, registrar sua volta e então realizar a venda.

O clube tem mantido contato com a CBF e está estudando o regulamento do TMS (Transfer Matching System), sistema de transações da Fifa. Como ainda não há uma resposta clara, a tendência é de que o assunto seja definido após a virada do ano.

O Verdão só levará adiante a possibilidade de empréstimo, caso tenha segurança de que um empréstimo agora não atrapalharia uma potencial venda fora do período de registro de atletas no Brasil. Esta preocupação da diretoria foi publicada inicialmente pelo Globo Esporte.

A opção de reintegrar o atacante ainda é a mais remota e só aconteceria na temporada que vem, que começa no fim de fevereiro. Como o UOL Esporte publicou, a possibilidade de inscrevê-lo para a semifinal da Libertadores está descartada, diante do trâmite que teria de contar com uma autorização especial da Fifa.

O estafe de Borja vê com bons olhos a permanência no Junior Barranquilla, equipe de infância do atleta e pela qual teve bons números em 2020: 20 gols em 36 partidas.

O primeiro acordo entre os clubes previa uma cláusula obrigatória de compra por US$ 4,3 milhões (R$ 22,4 milhões) mediante metas estipuladas em contrato (fazer 23 gols ou disputar 73% das partidas no ano).

O time colombiano, porém, comunicou ao Palmeiras que não teria condições financeiras para pagar a quantia, diante dos efeitos da pandemia. Por isso, até ameaçou deixar Borja encostado nos meses finais do empréstimo.

Como o Verdão queria usar o empréstimo também como vitrine para uma possível venda, aceitou retirar a cláusula. O Junior Barranquilla era responsável por 100% dos vencimentos do jogador.

Palmeiras