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

Renato Gaúcho cobra paralisação do futebol no Brasil e ameaça liderar greve

Renato Gaúcho usando máscara em coletiva como protesto para jogos sendo realizados mesmo com a pandemia do coronavirus - Maxi Franzoi/AGIF
Renato Gaúcho usando máscara em coletiva como protesto para jogos sendo realizados mesmo com a pandemia do coronavirus Imagem: Maxi Franzoi/AGIF

Jeremias Wernek

Do UOL, em Porto Alegre

15/03/2020 13h35

Renato Gaúcho deu seguimento ao protesto do Grêmio por manutenção dos jogos em meio à pandemia do coronavírus. Depois da vitória em cima do São Luiz-RS, pelo Campeonato Gaúcho, o treinador ameaçou iniciar greve entre jogadores e treinadores no futebol brasileiro. Nas palavras do técnico, todos os campeonatos no Brasil devem ser paralisados imediatamente.

"Não estamos imunes e não adianta fechar os portões. Será que vamos precisar fazer greve?", disse Renato Portaluppi.

O Grêmio entrou em campo com máscaras e afirmou estar no aguardo de uma posição da FGF (Federação Gaúcha de Futebol) em relação ao Gauchão.

"Foi uma homenagem do Grêmio as vítimas do mundo todo do coronavírus. Tá na hora do Grêmio se pronunciar e nossa forma foi essa, colocando as máscaras, para alertar as autoridades que jogador de futebol é gente. Não estamos imunes a qualquer tipo de vírus e não adianta nada fechar os portões. Quer dizer, a torcida fica protegida e dane-se quem joga futebol. Quero saber de quem vai ser a responsabilidade se acontecer algo no futebol. O mundo todo está parado. Será que o futebol brasileiro não tem que parar? Será que vamos precisar fazer uma greve? Acho que não precisamos chegar a esse ponto, então esperamos que as pessoas responsáveis, competentes, tenham bom senso de paralisar os campeonatos. Não adianta parar um estado, mas sim o futebol brasileiro. Não estamos imunes. Se não quiserem parar, cheguem na frente da TV e do rádio e assumam a responsabilidade. Será que terão essa coragem?", comentou Renato.

Mais adiante, na mesma entrevista, o treinador reiterou que pode liderar uma greve no futebol.

"A palavra greve é muito forte, mas eu gosto da minha vida. Será que a gente precisa chegar nesse ponto? É um telefonema e as coisas acontecem no futebol. A gente espera que as autoridades se liguem, entre o bom senso e parem os campeonatos. Isso é o bom senso. Se não, daqui a pouco vai ser pior. Os profissionais vão se negar a entrar em campo. Tenho vários jogadores que estão assustados. Como o jogador entra em campo para jogar futebol?", disse.