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

PSL expulsa deputados bolsonaristas que participaram de ataques ao STF

Douglas Garcia, deputado estadual, durante cerimônia de diplomação na Assembleia Legislativa - Ananda Migliano/Ofotográfico/Folhapress
Douglas Garcia, deputado estadual, durante cerimônia de diplomação na Assembleia Legislativa Imagem: Ananda Migliano/Ofotográfico/Folhapress

Do UOL, em São Paulo

15/07/2020 20h19

O PSL expulsou hoje os deputados estaduais Douglas Garcia e Gil Diniz, apoiadores do presidente Jair Bolsonaro (sem partido), por manifestações de ataques aos STF (Supremo Tribunal Federal) e seus ministros.

A sigla determinou a saída dos deputados após reunião do Conselho de Ética da executiva estadual em São Paulo. Os dois já estavam suspensos do partido desde o dia 28, por causa das investigações do STF a respeito do suposto envolvimento dos deputados na disseminação de fake news.

Em nota, o PSL afirmou que as expulsões foram por "práticas que afrontam o estatuto do partido, ao qual todos os filiados são submetidos, especialmente no que se refere ao seu artigo 7º do Código de Ética, que veda atividades políticas contrárias ao regime democrático".

"Aos dois representados foi dado ir direito de defesa, onde não negaram os fatos a eles imputados", acrescenta a nota.

"O PSL tem, em seus princípios históricos, a defesa da democracia e o fortalecimento das instituições como fundamentos inalienáveis, pelos quais todos que optem por se filiar ao partido tem ciência clara e ampla", diz a legenda.

Em junho, o presidente da Alesp, Cauê Macris (PSDB), assinou o afastamento dos deputados das atividades relacionadas à então sigla deles na Casa.

'Gabinete do ódio'

Em junho, o Ministério Público de São Paulo instaurou inquérito civil contra Garcia para investigar suposto "gabinete do ódio" na Alesp.

Garcia teria permitido que seu chefe de gabinete, Edson Pires Salomão, utilizasse equipamento público da Alesp para atacar ministros do Supremo Tribunal Federal e adversários políticos, como a deputada Joice Hasselmann.

O inquérito que investiga suposta prática de atos de improbidade istrativa se deu após representação encaminhada pelo deputado federal Júnior Bozzella (PSL-SP).

Segundo o inquérito, consta na representação que Salomão gravou vídeos e realizou diversas postagens no interior do gabinete do deputado com recursos públicos e durante o horário de expediente.

Salomão está entre os alvos de busca e apreensão da Polícia Federal, realizada após ordens judiciais expedidas pelo ministro do Supremo Tribunal Federal Alexandre de Moraes no âmbito do inquérito das fake news comandado pelo STF.

Já Garcia está na lista dos deputados que o ministro do Supremo pretende ouvir. Ele é ligado ao deputado federal Eduardo Bolsonaro (PSL-SP), filho do presidente.