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

Estar livre no mercado não aproxima treinador Paulo Fonseca do Flamengo

Paulo Fonseca, técnico de futebol - Cosimo Martemucci/Sopa Images/Getty Images
Paulo Fonseca, técnico de futebol Imagem: Cosimo Martemucci/Sopa Images/Getty Images

18/12/2021 08h30

O diretor Bruno Spindel já está em Portugal e Marcos Braz, neste sábado, se junta a ele para iniciar a série de reuniões com candidatos a técnicos do Flamengo em 2022. Um dos nomes bem avaliados pela direção é o de Paulo Fonseca que, diferentemente de outros nomes cotados, está livre no mercado. Tal condição não deixa o treinador mais próximo do Ninho do Urubu, contudo.

Sem clube desde que saiu da Roma (ITA), em maio de 2021, Paulo Fonseca tem como objetivo seguir trabalhando na Europa. Neste mesmo ano, o português recebeu ofertas e negociou com Tottenham e Newcastle, ambos da Inglaterra, e vê com bons olhos a possibilidade de comandar um clube da Premier League.

Neste ponto, a diferença entre o que o Flamengo pode oferecer, em termos de salário, e o padrão dos clubes ingleses é enorme, e também tem peso para afastar o profissional do Rio de Janeiro, por mais que não haja multa rescisória.

Segundo o LANCE! apurou, Paulo Fonseca não está em Portugal - Lisboa será a base da direção do Flamengo na Europa - e não tinha planos de estar no país até o final da temporada. Porém, como o próprio Bruno Spindel afirmou os dirigentes rubro-negros estão dispostos a irem onde existirem possibilidades.

O "olho no olho" e um proposta oficial são apostas do Flamengo para conseguir o "sim" do comandante para 2022 - seja ele Paulo Fonseca ou outro candidato.

"A viagem desdobra para onde o Flamengo tiver oportunidade de conversar. Não posso falar de nomes. Tem uma série de conversas já agendadas. O mundo do futebol evolui rapidamente. Mas tem muita coisa avançada e encaminhada para ter conversas produtivas", finalizou o diretor do Flamengo.

Bruno Spindel não confirmou nomes além de Jorge Jesus, que hoje comanda o Benfica, mas Paulo Sousa, técnico da seleção da Polônia, e Carlos Carvalhal, atual treinador do Braga, são treinadores no radar da diretoria do Flamengo.

Flamengo