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

Esse conteúdo é antigo

Não vamos nos rebaixar, diz Eduardo Leite após acionar STF contra Bolsonaro

Eduardo Leite gravou vídeo para explicar ação contra Bolsonaro no STF - Reprodução
Eduardo Leite gravou vídeo para explicar ação contra Bolsonaro no STF Imagem: Reprodução

Do UOL, em São Paulo

09/04/2021 08h13

O governador do Rio Grande do Sul, Eduardo Leite (PSDB), disse hoje que não "vai se rebaixar" na disputa política com Jair Bolsonaro (sem partido) e que acionou o STF (Supremo Tribunal Federal) para que o presidente da República explique suas declarações à TV Bandeirantes no começo de março.

Na ocasião, em entrevista ao apresentador José Luiz Datena, Bolsonaro disse a seguinte frase se referindo a Eduardo Leite. "Onde ele enfiou essa grana [destinada à Saúde no estado]? Eu não vou responder pra ele né? Mas eu acho que é feio onde ele botou essa grana toda aí".

Conforme antecipado ontem pela colunista Mônica Bergamo, do jornal Folha de S. Paulo, Leite pediu ao STF que o presidente seja intimado a explicar a sua declaração.

"É um tipo de comportamento que a gente não espera de ninguém, menos ainda do presidente da República, que vai ter que explicar o que quis dizer com essas manifestações, seja por insinuar algum tipo de uso indevido ou algum tipo de ilação preconceituosa que também queria ali ter expressado", disse Leite em vídeo publicado em seu Twitter.

"Não vamos nos rebaixar ao nível deles para devolver com ataques da mesma ordem o ataque eles nos fazem, mas vamos sim usar nosso sistema judicial para que prestem as devidas explicações e respondam por seus atos e manifestações", completou.

Além de acionar o STF contra Bolsonaro, Eduardo Leite apresentou ao MP-RS (Ministério Público do Rio Grande do Sul) uma representação contra o ex-deputado federal Roberto Jefferson (PTB), aliado de Bolsonaro.

Em entrevista à Rádio Bandeirantes, no começo deste mês, Jefferson fez declarações homofóbicas ao criticar Eduardo Leite pelas medidas de restrição impostas no Rio Grande do Sul.

"O MP do Rio Grande do Sul recebeu minha representação em reação ao Roberto Jefferson e vai protocolar duas ações para responder cível e criminalmente por injúria, preconceito e homofobia. Não aceitamos esse tipo de conduta, levamos ao MP e ele vai responder por esses crimes que cometeu", disse.