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

Danilo Lavieri

Como ex-palmeirense ganhou chance inesperada no Barcelona de Koeman

Matheus Fernandes atuou com a camisa do Valladolid nos últimos meses e será aproveitado pelo Barcelona na próxima temporada - Reprodução/Instagram
Matheus Fernandes atuou com a camisa do Valladolid nos últimos meses e será aproveitado pelo Barcelona na próxima temporada Imagem: Reprodução/Instagram

Colunista do UOL

07/10/2020 12h23

Receba os novos posts desta coluna no seu e-mail

Email inválido

Matheus Fernandes foi a grande surpresa na lista de inscritos do Barcelona para esta temporada. Cogitado para ser novamente emprestado e sem ter ficado sequer no banco de reservas nos amistosos de preparação, o brasileiro de 22 anos acabou inscrito na La Liga para reforçar o time catalão.

Inicialmente, o técnico Ronald Koeman havia deixado o ex-palmeirense e botafoguense à disposição da diretoria para o mercado. Como não houve algumas contratações esperadas, Matheus acabou ganhando uma oportunidade que nem ele mesmo esperava.

Para piorar as chances de brigar por um espaço, ele teve uma lesão recentemente que o tirou de alguns treinos de pré-temporada, o que diminuía ainda mais as chances de uma permanência.

Eram quatro vagas à disposição na lista. Além dele, Ronald Araújo, uruguaio de 21 anos, e Riqui Puig, que é espanhol e tem a mesma idade, também foram inscritos após não serem negociados ao término da janela.

Contratado por 7 milhões de euros no início deste ano, Matheus ainda não tinha tido nem a apresentação como atleta do Barcelona e sua saída era dada como certa por toda a imprensa espanhola. Foi só nesta semana que ele recebeu a camisa do time como um ato simbólico para a sua chegada.

Na temporada ada, ele havia sido emprestado ao Valladolid, onde jogou por apenas três vezes, totalizando pouco menos de 170 minutos, sendo duas partidas como titular e uma saindo do banco.

Matheus agora aguarda a chegada de sua família, que voltou ao Brasil após um período ao lado do jogador e agora tem complicações para retornar à Europa por conta da pandemia.

Aos familiares, o meio-campista relatou estar vivendo um sonho e se surpreendeu com a boa recepção que teve de jogadores mais famosos do time como Lionel Messi e seu compatriota Philippe Coutinho.