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

Qual o futuro de Abel Ferreira no Palmeiras após o vice-campeonato mundial

Abel Ferreira a instruções a seus jogadores na final do Mundial de Clubes entre Palmeiras e Chelsea - Matthew Childs/Reuters
Abel Ferreira a instruções a seus jogadores na final do Mundial de Clubes entre Palmeiras e Chelsea Imagem: Matthew Childs/Reuters

Eder Traskini

Do UOL, em Santos (SP)

13/02/2022 04h00

A derrota do Palmeiras na final do Mundial de Clubes ontem (12) por 2 a 1, na prorrogação, para o Chelsea (ING) não mudou o cenário de dúvidas que rodeia o Allianz Parque há meses: afinal, Abel Ferreira fica ou não no Verdão? O português constantemente se esquiva de perguntas nesse sentido.

Abel tem contrato com o Alviverde até o fim deste ano, recebeu um aumento recentemente, mas rejeitou a extensão contratual proposta pela diretoria: a cúpula palestrina gostaria de aumentar o vínculo até 2026. A decisão está nas mãos do português.

Fato é que Abel Ferreira quebrou a máquina de moer treinadores da Pompeia e é peça fundamental para que o sucesso do Verdão seja duradouro. No entanto, ainda que seja quase uma unanimidade no clube, existem mais dúvidas do que certezas sobre a permanência dele no cargo.

Abel já faturou duas Libertadores e uma Copa do Brasil. Além do Mundial que lhe escapou, ainda existem outras lacunas no currículo do português no país: um Brasileirão, uma Recopa Sul-Americana ou mesmo um Paulistão. Assim, Abel não ganhou exatamente tudo que há no país.

"A forma como vivemos o futebol é muito intensa, como se joga no Brasil é muito intensa, a forma como se joga não dá saúde a ninguém. Tenho que fazer uma reflexão com a família. Não consigo jogo, descanso, jogo. Não é pra mim. Não consigo estar na minha máxima força. É desumano o que fazem aqui. Se quiserem crescer, têm que abdicar do ida e volta na taça. Vou parar, refletir e fazer o que for melhor para o Palmeiras", disse após o título da Libertadores de 2021.

Quem acompanha as coletivas de Abel Ferreira sabe, no entanto, que os títulos que restam podem não ser motivação suficiente para segurá-lo por aqui. O português deixa claro que sente saudade de sua família e está cansado mentalmente e fisicamente. Lembra sempre que o futebol brasileiro é extenuante em diversos aspectos: viagens, calendário, imprensa, convocações...

"As pessoas me ligam de Portugal e me perguntam se é nesse futebol (do Brasil) que eu quero continuar, e eu fico envergonhado. É uma reflexão que todos temos que fazer, e isso a por mim também. As críticas que faço são para todos melhorarem. E, se queremos melhorar o futebol brasileiro, todos precisamos refletir. Que imagem queremos ar do futebol brasileiro", disse Abel em novembro do ano ado.

Se Abel já tinha mercado no exterior, terá ainda mais depois do que o Verdão apresentou no Mundial. Ele, porém, não demonstra interesse em dirigir um clube na Ásia ou Oriente Médio. Se é incomum que os clubes mais bem estruturados da Europa demitam treinadores no meio de uma temporada, a janela da metade de 2022 deve abrir as portas do Velho Continente para o português. Seu nome já foi especulado no Leeds (ING) e diversas outras sondagens europeias já chegaram ao português.

Diante de todo o cenário exposto, não seria surpresa se Abel deixasse o Palmeiras muito em breve.

Palmeiras