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

OPINIÃO

Vitor Guedes sobre Abel Ferreira: 'Ele não deixa o Palmeiras se saciar'

Colaboração para o UOL, em Rio Claro (SP)

09/04/2023 21h01

O Palmeiras foi mais uma vez campeão sob o comando de Abel Ferreira ao vencer o Água Santa, por 4 a 0, na final do Paulistão. Foi o oitavo título do técnico português no comando do Verdão, sendo o segundo título estadual.

No Fim de Papo, programa que o UOL Esporte transmitiu após a partida, o colunista Vitor Guedes falou sobre a gestão de elenco feita pelo técnico português.

"Ele não deixa o time saciar. o Atlético-MG ganhou um título após 50 anos e acabou. O Palmeiras ganha, tem um carinha saciado ele manda embora. A declaração que dele deu contra o Água Santa (após o jogo de ida) foi isso. O Palmeiras se perder, vai perder na bola, não perde no anímico. O Palmeiras não está com cara de que 'vai virar o fio'".

Vitor Guedes ainda disse que Abel Ferreira tem domínio sobre a torcida palmeirense, algo que não aconteceu com outros técnicos históricos do clube. "Eu nunca tinha visto um treinador conseguir unanimidade na torcida do Palmeiras, nem Luxemburgo, nem Felipão, no auge. Ele pode falar o que ele quiser que ele tem o domínio", frisou.

'Palmeiras sempre foi favorito', analisa Vitor Guedes após título do Verdão

A vitória contra o Água Santa, por 4 a 0, deu o 25º título paulista para o Palmeiras. O colunista Vitor Guedes disse que a decisão foi mais fácil do que ele esperava.

'Endrick é extraclasse. Se continuar assim, vai arrebentar no Real Madrid', diz Luis Rosa

Com apenas 16 anos, Endrick foi um dos destaques das finais do Campeonato Paulista. Após marcar o gol palmeirense na Arena Barueri, no jogo de ida, ele também marcou no Allianz Parque na partida que deu o título ao Palmeiras. O colunista Luis Rosa elogiou a joia palmeirense.

'Ainda tem alguns testes para ar', diz Lavieri sobre expectativas do Palmeiras

Após o título do Paulistão, o colunista Danilo Lavieri disse que o Palmeiras mostrou força, mas que para conquistar os principais títulos da temporada ainda precisará ar por testes de níveis maiores.

Danilo Lavieri elogia Claus: 'Corajoso por não cair na chamada do VAR'

No jogo Palmeiras x Água Santa, Raphael Claus foi chamado ao VAR para ver um lance envolvendo Dudu, mas optou por não expulsar o camisa 7 palmeirense. A decisão foi elogiada pelo colunista Danilo Lavieri.

Assista ao Fim de Papo na íntegra