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

De aliados a "traidores": quem é a direita que virou alvo de bolsonaristas

Ao lado de Janaina Paschoal, Bolsonaro chora durante convenção do PSL que formalizou sua candidatura a presidente - Ricardo Moraes -22.jul.2018/Reuters
Ao lado de Janaina Paschoal, Bolsonaro chora durante convenção do PSL que formalizou sua candidatura a presidente Imagem: Ricardo Moraes -22.jul.2018/Reuters

Bernardo Barbosa

Do UOL, em São Paulo

26/05/2019 04h00Atualizada em 26/05/2019 07h40

A convocação para as manifestações deste domingo em defesa de pautas de interesse do governo Jair Bolsonaro (PSL), como a reforma da Previdência e o pacote anticrime do ministro Sergio Moro, colocou aliados do presidente na mira de parte de seus apoiadores. Fazem parte desta lista o MBL (Movimento Brasil Livre) e nomes de peso do partido de Bolsonaro, que ganharam nas redes sociais a pecha de "traidores" por não aderirem aos protestos sob diversas justificativas.

No Twitter, o escritor Olavo de Carvalho -- tido como a principal referência ideológica do governo -- sintetizou, com palavrão, o tom das críticas.

O MBL apoiou Bolsonaro no segundo turno das últimas eleições e é um dos principais grupos da direita brasileira desde o processo de impeachment de Dilma Rousseff (PT). Em nota oficial para explicar sua ausência das manifestações, o movimento disse que "um setor mais radical" defendeu o fechamento do STF (Supremo Tribunal Federal) e a invasão do Congresso durante a divulgação dos protestos.

O coordenador nacional do MBL, Renan Santos, disse que o ato sabota a reforma da Previdência proposta pelo próprio governo Bolsonaro --um dos alvos dos protestos é o chamado "centrão", cujo apoio é crucial para o avanço de projetos no Congresso.

Nada disso foi suficiente para acalmar os ânimos de parte da militância mais aguerrida pró-Bolsonaro. Um dos nomes mais conhecidos do MBL, o deputado federal Kim Kataguiri (DEM-SP), chegou a ser retratado como "Kim Nóquio" em cartuns compartilhados por bolsonaristas no Twitter e em grupos públicos de WhatsApp monitorados pela UFMG (Universidade Federal de Minas Gerais). Em outro desenho, MBL virou sigla para "Movimento Barganha Livre".

Janaina "já vai tarde", diz Malafaia

Outro alvo de críticas foi a deputada estadual Janaina Paschoal (PSL-SP), do mesmo partido de Bolsonaro e que chegou a ser cotada, no ano ado, para ser sua vice. Um dos ataques veio do pastor evangélico Silas Malafaia, presidente da Assembleia de Deus Vitória em Cristo.

A deputada estadual explicou sua oposição ao protesto dizendo que Bolsonaro "está confundindo discussões democráticas com toma-lá-dá-cá".

Houve também quem defendesse, no entanto, que Janaina não podia ser colocada no mesmo balaio do MBL, como fez a deputada federal Carla Zambelli (PSL-SP).

Apesar da ponderação, a própria Carla não ficou imune ao tiroteio virtual motivado pela adesão ou repúdio aos protestos, e criticou a colega de bancada Joice Hasselmann --do mesmo PSL de São Paulo e líder do governo no Congresso.

Para Joice, a manifestação pode prejudicar a articulação do governo para que os projetos de seu interesse sejam aprovados no Parlamento.

"Não vamos conseguir aliados atacando quem pode votar conosco nos textos que são importantes para o governo", disse. "A hora é de preservar a relação do governo com o Parlamento."

O presidente Jair Bolsonaro chegou a considerar sua participação nas manifestações, segundo interlocutores, mas depois veio a público para dizer que não o faria. Na quinta, afirmou que "quem defende o fechamento do Supremo Tribunal Federal e do Congresso Nacional está na manifestação errada".