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

Mauro Cezar: Paulo Sousa fez um desabafo correto após a vitória do Flamengo

Do UOL, em São Paulo

14/04/2022 16h49

A vitória do Flamengo por 3 a 1 sobre o Talleres, da Argentina, na Libertadores, foi seguida por um desabafo do técnico Paulo Sousa em entrevista coletiva devido às especulações sobre Jorge Jesus no clube rubro-negro na imprensa, demonstrando incômodo pela sugestão de outro profissional para o seu cargo.

Na Live do Mauro Cezar, transmitida pelo Canal UOL nesta quinta-feira (14), o jornalista dá razão ao treinador no desabafo e ressalta que não é papel de jornalista sugerir a contratação ou demissão de outro profissional.

"O Paulo Sousa fez um desabafo correto, eu também concordo que você pode criticar, eu já critiquei muitos trabalhos de técnicos, critico quando tem que criticar, mas ficar pedindo a contratação, sugerindo a contratação de alguém para o lugar do outro eu acho meio bizarro até. Até porque esse outro que sugerem, que é o Jorge Jesus, quando pôde voltar ao Flamengo, não quis e saiu do Flamengo porque quis", diz Mauro Cezar.

"Você nunca vai ouvir de mim 'manda embora tal técnico', nunca eu vou falar isso. Eu vou dizer se o trabalho é bom ou se é ruim. Se for demitido, vou dizer se foi justo ou injusto. Não vou sugerir isso, como não sugiro contratação de técnico. Quando alguém fala 'tal clube quer contratar tal técnico, você acha que é uma boa?', aí eu dou uma opinião. Agora, eu sugerir, nem contratar e nem demitir, não cabe a mim, não sou do RH, isso não é trabalho de jornalista", completa.

O colunista do UOL afirma que também as próprias críticas voltadas ao trabalho de Paulo Sousa se dão pelo fato de Jorge Jesus não estar trabalhando atualmente, mas ele lembra que o treinador não quis voltar quando procurado.

"O Paulo Sousa tem muita razão no que ele falou, concordo muito com o que ele falou, inclusive porque as críticas a ele muitas vezes são estimuladas ou são turbinadas pelo momento Jorge Jesus sem clube. 'Podemos ter o Jesus, por que vai ter esse cara?', o Jesus não quis", conclui.

A próxima edição da Live do Mauro Cezar será na quinta-feira (21). Você pode acompanhar a live pelo Canal UOL, no app Placar UOL, na página do UOL Esporte ou no canal do UOL Esporte no Youtube.