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

Flamengo

Quais jogadores do Fla têm contrato por vencer e qual a situação de cada um

Ayrton Lucas com sua tatuagem de beijo no pescoço: ganhou apelido de "Beijinho" dos companheiros de Fla - Gilvan de Souza / Flamengo
Ayrton Lucas com sua tatuagem de beijo no pescoço: ganhou apelido de "Beijinho" dos companheiros de Fla Imagem: Gilvan de Souza / Flamengo

Luiza Sá

Do UOL, no Rio de Janeiro

23/11/2022 04h00

Desde o fim da temporada, o Flamengo vem fazendo o planejamento para 2023. Com alguns desafios no horizonte, o clube começa pelas definições de atletas em fim de contrato para traçar as carências e os eventuais alvos no mercado. São oito jogadores que têm vínculo apenas até dezembro deste ano e com situações distintas.

A começar por Diego Alves e Diego Ribas, que deixaram o clube depois de seis e sete anos, respectivamente. O goleiro ainda não sabe o que fará no futuro, enquanto o meia já anunciou a aposentadoria do futebol. Integrante da mesma geração, Filipe Luís, por outro lado, fica. Ele renovou o contrato por mais uma temporada.

Quem está em conversas encaminhadas para a renovação é o zagueiro David Luiz. Ele desconversou, chegou a projetar 2023, mas as partes caminham para um desfecho positivo para que o jogador permaneça por mais uma temporada.

É nas laterais que o Fla tem a situação mais distante de uma resolução. Disposto a adquirir Ayrton Lucas, o Flamengo tenta chegar a um acordo com o Spartak Moscou. Como o UOL Esporte informou, o Rubro-Negro aumentou a proposta em 500 mil euros (cerca de R$ 2,8 milhões) em relação à oferta original, chegando a 6,5 milhões de euros (cerca de R$ 36,6 milhões).

Os russos querem 9 milhões de euros (cerca de R$ 50 milhões) para liberar o atleta. Ayrton está emprestado até o fim deste ano e deseja permanecer na Gávea.

Um que não deve ficar é Rodinei. Depois de um bom final de temporada, sendo até herói do título da Copa do Brasil, o jogador ouviu pedidos da torcida e dos jogadores para permanecer, mas, conforme o UOL Esporte apurou, tem pouquíssima chance de ficar. O lateral foi procurado por outros clubes do Brasil e de fora. Apesar das conversas entre Fla e empresário, o atleta entende que o ciclo está se encerrando.

Treinador em negociação

Não é só no campo que o Flamengo tem situações indefinidas. No comando técnico, Dorival Júnior ainda não assinou o contrato para permanecer na Gávea. O acordo da renovação já está bem encaminhado, mas a possibilidade de um convite para dirigir a seleção brasileira norteia as discussões.

Tite já anunciou que vai deixar a seleção depois da Copa do Mundo, independentemente do resultado. Desta forma, com o sucesso na temporada, Dorival tem sido cotado como possível substituto. Há um debate para a inclusão de uma cláusula que contemple uma saída caso esse cenário se concretize.

Dois na base

Além dos seis atletas no profissional, outros dois garotos formados nas categorias de base do Flamengo também podem se despedir. São os casos de Yuri de Oliveira e Samuel.

Yuri está para sair do Fla desde o início do ano. Sem espaço no time principal depois de estourar a idade do Sub-20, o jogador de 21 anos busca um novo destino. O jovem chegou a ser utilizado na equipe alternativa que atuou no início do Campeonato Carioca, mas não ficou com o elenco principal.

Já Samuel não recebeu oportunidades no time principal e ainda não tem uma definição sobre o futuro. Muito provavelmente vai deixar o clube.

Flamengo