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

Solto há quatro meses, Daniel Silveira volta a atacar ministros do STF

13.mar.22 - Daniel Silveira no congresso bolsonarista Brasil Profundo, em Londrina - Reprodução/YouTube
13.mar.22 - Daniel Silveira no congresso bolsonarista Brasil Profundo, em Londrina Imagem: Reprodução/YouTube

Do UOL, em Brasília

13/03/2022 18h57Atualizada em 13/03/2022 20h12

Alvo de um processo no STF (Supremo Tribunal Federal) por ataques a ministros da Corte, o deputado federal Daniel Silveira (União-RJ) voltou a antagonizar integrantes do STF.

Silveira, solto há pouco mais de quatro meses, falou ontem em um evento conservador em Londrina (PR), que teve a presença do deputado federal Eduardo Bolsonaro (União-SP) e vários outros políticos bolsonaristas.

Sem citar nomes, Silveira afirmou, durante seu discurso, que o Supremo é uma Corte "deficitária de pessoas que tenham bússola moral". Segundo ele, os únicos ministros "decentes" do Tribunal são os dois indicados pelo presidente Jair Bolsonaro (PL).

"Hoje nós temos dois nomes que são decentes e vão ser imparciais, que é o Kassio Nunes e o André Mendonça. O restante, sim, tinha que se aposentar com 60, 50, talvez nem ter entrado. Porque precisamos de pessoas sérias", afirmou.

O congressista é réu e espera julgamento no STF por ter incitado as Forças Armadas contra o Tribunal e estimulado atos de violência contra os ministros em dois vídeos publicados no ano ado.

Ele foi preso em fevereiro do ano ado, por ordem do ministro Alexandre de Moraes, e a detenção foi mantida tanto pelo plenário do Supremo quanto pela Câmara. O parlamentar foi logo transferido à prisão domiciliar, mas só em novembro foi solto por Moraes para responder ao processo em liberdade.

De volta à arena política, Silveira chegou a posar para fotos, em um evento bolsonarista, com o ex-PM Fabrício Queiroz, que foi assessor de Flávio Bolsonaro na Alerj (Assembleia Legislativa do Rio de Janeiro) e peça central do escândalo das rachadinhas.

Silveira disse aos apoiadores que sua prisão foi uma arbitrariedade do Supremo, ível de ser cometida contra outras pessoas. A cena se repetirá, segundo o parlamentar, "se nós dobrarmos os joelhos e aceitarmos estas imposições que vêm através do Judiciário".

Para o parlamentar, as eleições de outubro serão as mais importantes "das próximas três décadas" porque, entre outros motivos, será necessária "para que a gente possa indicar, mais para a frente, mais dois ministros do Supremo Tribunal". Em 2023, caberá ao presidente escolher substitutos para Rosa Weber e Ricardo Lewandowski, que vão se aposentar.