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

Copinha: Técnico do Santos contesta mando do Palmeiras e relativiza Endrick

Elder Campos, técnico do Santos na Copinha - Pedro Ernesto Guerra Azevedo/Santos FC
Elder Campos, técnico do Santos na Copinha Imagem: Pedro Ernesto Guerra Azevedo/Santos FC

Eder Traskini

Colaboração para o UOL, em São Paulo (SP)

24/01/2022 12h43

Técnico do sub-20 do Santos, Elder Campos contestou a Federação Paulista de Futebol (FPF) após a final da Copa São Paulo de Futebol Júnior ser confirmada para o Allianz Parque, estádio do Palmeiras. A decisão ocorrerá amanhã (25), às 10h.

Elder questionou a neutralidade da final, mas mostrou confiança no título do Peixe.

"Jogar no campo do Palmeiras para nós não é um problema. Nós também temos campo sintético no CT do Santos. O que nos surpreendeu foi a decisão de jogar com mando (do Palmeiras). Foi uma decisão da federação e vamos atuar. Pela primeira vez uma decisão assim, que pelo regulamento teria que ser campo neutro. Mas nós vamos atuar respeitando a equipe do Palmeiras. Quem quer ser campeão vai ter que enfrentar o adversário no campo deles", disse Elder Campos, em coletiva oficial da FPF.

O treinador do Peixe também analisou a campanha, falou sobre a experiência de ter enfrentado a Ferroviária em Araraquara e relativizou o embate com Endrick, fenômeno do rival de apenas 15 anos.

"Eu vejo que a equipe cresceu durante a competição. Nós desde o início fomos desacreditados, o grupo mostrou a cada jogo sua evolução. Amanhã é mais um desafio que vejo que eles estão preparados para fazer um grande jogo e ir em busca do nosso objetivo. Enfrentamos a Ferroviária com torcida pressionando a arbitragem e isso fortaleceu o grupo. Sobre blindagem: temos procurado orientar os atletas neste momento e temos conseguido ter esse controle que é uma preocupação também. No caso do atleta, o Endrick, nós temos o Patati que é um atleta (de 18 anos) que tem nos mostrado um grande potencial e temos outros também. O importante foi o coletivo, mas um atleta que chamou atenção individualmente foi o Patati. Temos blindado para que ele possa performar e crescer bastante para chegar ao objetivo de subir ao profissional. Mas destaco o coletivo", analisou.

Por fim, Elder Campos mostrou dúvida sobre o substituto do suspenso Lucas Barbosa. O meia, destaque do Santos com seis gols marcados, pode ser trocado por Pedro Scaramussa ou Fernandinho.

"Ainda não defini. Temos duas ou três opções. Vamos estudar porque eles (Palmeiras) têm uma saída com três e com dois. Temos que preparar bem. Lucas fez uma grande Copa, é uma perda grande pela importância, mas quem entrar vai fazer um grande jogo. Temos peças que têm totais condições de suprir a ausência dele para esse grande jogo. Com esse pensamento que vamos em busca. Coletivo é o que nos trouxe até aqui e é o coletivo que vai nos levar até uma consagração", concluiu.