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

Abel despista sobre reforços e valoriza trabalho coletivo no Palmeiras

[email protected] (Redação)

17/03/2021 06h00

O Palmeiras vem buscando reforços para fortalecer o elenco neste início de temporada. No entanto, quando questionado sobre as contratações na última terça, o técnico Abel Ferreira preferiu despistar.

Em entrevista ao SporTV, o comandante alviverde ressaltou que não propõe nomes para a diretoria e que o clube possui um centro de recrutamento responsável por essa tarefa.

"Eu amo falar sobre futebol, mas, vou falar mais uma vez, nós não contratamos jogadores para o Abel. O Palmeiras tem um centro de recrutamento, de análises, que me propõe jogadores. Eu não proponho ao Palmeiras. Todos os jogadores contratados, são sempre propostos pelo Palmeiras", declarou o treinador.

"Destes, parto do princípio de que o clube tem condições de contratar. Eu só quero que todos percebam que as expectativas que criamos, que os torcedores têm, temos que as acompanhar, ou sermos verdadeiros com eles", completou.

Abel também destacou a importância do trabalho coletivo construído no Palmeiras. O técnico analisou o excesso de responsabilidade concedido aos treinadores no futebol brasileiro e deu o crédito das conquistas na temporada 2020 aos jogadores.

"Há uma coisa que não gosto muito de ouvir. Não é 'eu ganhei'. Por isso, quando mandam o treinador embora, eu não estou mandando ele embora, estou mostrando que o dirigente é incompetente. Não é só o treinador que é incompetente, é também quem o escolhe. Não fui eu que ganhei, quem decidiu em campo foram os jogadores", afirmou.

"Quando eu cheguei, o elenco não era fraco como diziam, e hoje não é o melhor do mundo. Ele era bom, precisava de afinações, e hoje é igual. Foi um risco, mas tenho duas formas de pensar. Ou vou pensando que é difícil, ou encaro como um desafio. É difícil atravessar o atlântico, para um país em que um português ganhou tudo. Mas nós ganhamos, muitas coisas ocorreram bem", finalizou Abel.

Palmeiras