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

Diferentes problemas 'travam' Palmeiras por reforços no mercado da bola

Vanderlei Luxemburgo e Maurício Galiotte acompanham treino do Palmeiras - Cesar Greco/Palmeiras
Vanderlei Luxemburgo e Maurício Galiotte acompanham treino do Palmeiras Imagem: Cesar Greco/Palmeiras

Thiago Ferri

Do UOL, em São Paulo

29/09/2020 04h00

O Palmeiras mapeia o mercado da bola desde o início do ano em busca de reforços para a lateral direita e o meio-campo. Diferentes problemas travaram a procura alviverde, mas Vanderlei Luxemburgo ainda mantém a esperança de receber novidades e repetiu isso no último domingo (27) — a janela de transferências do exterior abre em 13 de outubro.

Na lateral, o clube esfriou a procura depois de Herrera, do San Lorenzo (ARG), sofrer uma fratura que deve tirá-lo de combate por três meses. O Verdão vinha tratando com os argentinos para dar a Luxa um jogador no setor com boa capacidade física, tanto para defender quanto atacar. Daniel Muñoz, primeiro alvo, foi para o Genk (BEL) após a diretoria não se acertar com o Atlético Nacional (COL).

Com Marcos Rocha e Mayke, além de Gabriel Menino convocado como lateral direito, a diretoria decidiu esperar antes de buscar um novo nome. Por Herrera, a oferta era de US$ 2 milhões (R$ 11,3 milhões), mas com boa parte da quantia sendo paga a partir de 2021.

A dificuldade financeira é um empecilho importante, já que o Verdão considera ter 30% de sua previsão orçamentária afetada pela pandemia do coronavírus — isto significaria algo em torno de R$ 180 milhões. Assim, o clube precisa ser criativo para tentar possíveis negócios.

Jean Pyerre, meia do Grêmio, foi um nome aprovado internamente, mas as conversas pararam rapidamente por ser um jogador bem avaliado no clube gaúcho. Diante do desempenho irregular de Lucas Lima, Raphael Veiga e Gustavo Scarpa, há o desejo de conseguir um armador nesta próxima janela internacional, driblando estas dificuldades. Na Série A, os principais jogadores já completaram os sete jogos de limite.

Outra saída seria negociar jogadores do seu elenco, mas as vendas têm sido complicadas. Gustavo Scarpa foi o primeiro, após o Al-Nassr, da Arábia Saudita, não aceitar a contraproposta do Palmeiras para negociá-lo. Agora, Vitor Hugo estava em fase final para se transferir ao Trabzonspor, e o clube turco desistiu do negócio, informando não ter os 4 milhões de euros (R$ 26,4 milhões) para realizar a compra.

Nos bastidores, um dos elogios a Luxemburgo é o fato de o técnico não ter cobrado intensamente por reforços neste ano, mesmo sabendo que há lacunas abertas no elenco. Depois de gastar acima do previsto em 2019 e não conquistar títulos, o clube mudou a rota em 2020 e até o momento comprou os direitos econômicos de apenas dois atletas: Viña e Rony.

Palmeiras