;(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 aposta na "volta" de Gabriel Menino em 2022 na posição de origem

Gabriel Menino jogador do Palmeiras lamenta chance perdida durante partida contra o Corinthians - Ettore Chiereguini/Ettore Chiereguini/AGIF
Gabriel Menino jogador do Palmeiras lamenta chance perdida durante partida contra o Corinthians Imagem: Ettore Chiereguini/Ettore Chiereguini/AGIF

Diego Iwata Lima

De São Paulo

13/12/2021 04h00

Não há palmeirense que não se lembre da memorável atuação de Gabriel Menino na semifinal da Libertadores de 2020, em Avellaneda, contra o River Plate (ARG). Por outro lado, há poucos que se lembram de uma boa atuação do camisa 25 na Libertadores de 2021.

Depois de uma temporada de estreia excelente, Menino sumiu nas competições deste ano. Fechou 2021 com 33 partidas, contra 61 da temporada 2020. Fez apenas duas assistências contra 12 do ano ado. No Brasileiro, fez 17 jogos apenas. Na Libertadores, cinco, sendo titular apenas uma vez.

Muito embora a comissão técnica tenha ficado com um pé atrás com o jogador, nem Abel Ferreira, nem a diretoria acreditam que Gabriel tenha esquecido de como se joga. E creem que o ano longe do holofote e a volta dele para o meio-campo, em vez de disputar posição na lateral-direita, possam dar a ele o combustível necessário para sua "volta".

Muito da ausência de Gabriel em jogos do Palmeiras se deveu à sua convocação para a seleção olímpica. Mas, por lá, ele também perdeu espaço. Menino era o dono da lateral-direita da equipe, mesma função que Tite, técnico da seleção principal, o convocou para desempenhar nas Eliminatórias para a Copa de 2022 em outubro do ano ado.

Mas o técnico olímpico André Jardine tirou da cartola, na última hora, a convocação de Daniel Alves para os Jogos de Tóquio. E assim, Menino atuou um total de 14 minutos no torneio —8 na final—, do qual saiu com a medalha de ouro.

Menino tem contrato com o Palmeiras até dezembro de 2024, com multa em torno de 60 milhões de euros, o que hoje significa quase R$ 393 milhões. Mas entende-se no clube que seu valor de mercado oscile em torno de 20 milhões de euros, aproximadamente R$ 122 milhões.

Uma venda seria um enorme alívio no caixa do clube e era até esperada, de certo modo. Entre os times que já sondaram o Palmeiras e seu agente por Gabriel, estão Atlético de Madri (ESP), Dínamo de Kiev (UCR) e o Grupo City, que entre outros clubes, comanda o Manchester City (ING). Mas não chegaram propostas concretas e oficiais pelo jogador.

Seja no campo, seja como negociação, o Palmeiras espera e acha que pode extrair mais de Menino, que terá 2022 para recuperar o que apareceu em 2020, mas se perdeu em 2021.

Palmeiras