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

'Limpei a sala onde Endrick assinou contrato', diz pai após título do BR

Douglas, pai de Endrick, comemora título brasileiro do Palmeiras - Reprodução/SporTV
Douglas, pai de Endrick, comemora título brasileiro do Palmeiras Imagem: Reprodução/SporTV

Do UOL, em São Paulo

03/11/2022 01h51

Pai do atacante Endrick, Douglas Ramos acompanhou das arquibancadas do Allianz Parque o primeiro jogo do filho como títular do Palmeiras, ontem (2), em goleada sobre o Fortaleza que terminou em festa pela conquista do Campeonato Brasileiro. O camisa 16, inclusive, fez um gol no jogo.

Em entrevista ao SporTV, Douglas recordou os "nãos" de outros clubes paulistas antes de Endrick atrair os holofotes do mundo da bola, assim como seu emprego no setor de limpeza do CT do Palmeiras. O pai contou que muitas vezes limpou a sala onde a joia, no meio deste ano, assinou seu primeiro contrato profissional.

"Eu tentei com Corinthians, São Paulo, Santos. Não deu certo. O Palmeiras deu moradia para gente, depois fui trabalhar no CT da Barra Funda, trabalhei na limpeza. Por muitas vezes eu limpei a sala onde ele [Endrick] assinou o contrato, por muitas vezes eu limpei a sala de entrevistas. a um filme. Onde você limpava chão, hoje o seu filho está assinando contrato, vestindo a camisa do Palmeiras como titular. É um sonho. Espero que ele possa dar muita alegria para gente", afirmou Douglas.

O pai também destacou a forte personalidade do filho que, aos 16 anos, tem seu nome ventilado no mercado europeu, virou xodó da torcida alviverde e briga por um espaço no time de Abel Ferreira meses depois de brilhar na conquista da Copinha.

"O Endrick ele desde mais novo joga com os caras mais velhos, então ele tem uma personalidade muito forte. É um menino de 16 anos com pensamento de um menino de 20. É impressionante o quanto ele tem personalidade. Ser tricampeão brasileiro [Campeonato Brasileiro profissional e sub-20 e Copa do Brasil sub-17] com 16 anos é para poucos, e mesmo com tudo isso ele mostra humildade. Espero que ele continue assim", completou Douglas.

Ainda em ritmo de festa, o Palmeiras agora se prepara para enfrentar o Cuiabá, neste domingo (6), às 18h30 (de Brasília), pela 36 rodada do Campeonato Brasileiro.

Palmeiras