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

Flamengo

Sampaoli vê Fla com 'autoridade', despista sobre goleiro e explica trocas

Do UOL, em São Paulo

17/05/2023 00h02

O técnico Jorge Sampaoli, do Flamengo, elogiou a postura da equipe no clássico contra o Fluminense, válido pelas oitavas de final da Copa do Brasil — o duelo, disputado no Maracanã, acabou em 0 a 0.

Raio-x do jogo. "Foi um jogo muito bom. O time protagonizou por 90 minutos contra um rival que vinha muito bem. Valorizo muito o esforço dos jogadores por terem esse protagonismo, que nos faz sonhar."

Perder muitos gols incomoda? "Incomoda o fato de o time não ganhar com tanto domínio contra um rival que está ando um momento muito importante no Brasil. Temos que trabalhar muito as jogadas ofensivas e tentar ter mais qualidade na definição. O Fluminense teve muito volume e gente dentro da área, e ar por isso é difícil. O Flamengo teve muitas finalizações e, lamentavelmente, não teve a contundência que mereceu não só depois da expulsão, mas no 1° tempo também: o time merecia muito mais."

Desfalques. "Eu dou muito valor ao que ou no jogo, dou valor ao domínio e ao protagonismo que tivemos diante de um time forte como o Fluminense. Foi um Flamengo com autoridade e que se impôs no Maracanã. É meu trabalho. Hoje é um ponto de partida para o crescimento da mentalidade do jogador que usa escudo: temos a obrigação de fazer todos os jogos da mesma forma que hoje."

Santos ou Matheus Cunha: quem é titular? "O Matheus Cunha saiu do jogo contra o Bahia com dor no quadril. Hoje, ele até testou para ser uma alternativa, mas sentia muita dor quando tinha que dar es longos. Diante da disputa, eu preferi jogar com um jogador 100%, que foi o Santos. O Matheus Cunha não estava 100%, mas precisou estar como opção no banco."

Jorge Sampaoli, técnico do Flamengo, durante partida contra o Fluminense - ALEXANDRE NETO/PHOTOPRESS/ESTADÃO CONTEÚDO - ALEXANDRE NETO/PHOTOPRESS/ESTADÃO CONTEÚDO
Jorge Sampaoli, técnico do Flamengo, durante partida contra o Fluminense
Imagem: ALEXANDRE NETO/PHOTOPRESS/ESTADÃO CONTEÚDO

Substituições. "Nossos ataques foram neutralizados pelos jogadores do Fluminense dentro da área. Tivemos a possibilidade de mais chutes de fora da área e até tentamos, mas o goleiro deles esteve muito bem. Botei o Cebolinha porque estava decidido a tentar abrir o campo e ter profundidade pela esquerda com ele. Coloquei o Vidal porque precisávamos de um volante que poderia subir. O Arrascaeta saiu porque ele sofreu muito contra o Bahia e estava cansado."

Próximo compromisso. O jogo contra o Corinthians será grande, um jogo histórico com um time que, seguramente, vai causar dificuldade. Temos um dia a mais de preparação nesta grande sequência de jogos, tivemos muitos jogos e pouco descanso, agora teremos um dia a mais de preparação."

Flamengo