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

Carolina Brígido

OPINIÃO

Texto em que o autor apresenta e defende suas ideias e opiniões, a partir da interpretação de fatos e dados.

Às vésperas da eleição, nazismo vira assunto no Congresso, STF e Planalto

Adolf Hitler, o líder nazista - Getty Images
Adolf Hitler, o líder nazista Imagem: Getty Images

Colunista do UOL

11/02/2022 11h06Atualizada em 11/02/2022 11h20

O ano é 2022, mas o Brasil ainda se engalfinha em discussões que deveriam ter sido enterradas no século ado. A semana girou em torno do nazismo. O debate ganhou publicidade a partir de um podcast com a participação do deputado Kim Kataguiri (DEM-SP). Na sequência, o mesmo tema ganhou a atenção do ministro do STF (Supremo Tribunal Federal) Luís Roberto Barroso, que preside o TSE (Tribunal Superior Eleitoral). E, por fim, o presidente Jair Bolsonaro também deu declaração sobre o nazismo.

Ou seja: o nazismo, que atingiu seu ápice na Alemanha de Adolf Hitler, ainda tem força suficiente para mobilizar discussões acirradas nos Três Poderes. Seja para ar pano para o regime autoritário, seja para combatê-lo com veemência, não deixa de ser preocupante que o assunto tenha vindo à tona justamente agora.

O ano é eleitoral, o país está às vésperas de escolher seus representantes —o presidente da República, inclusive. Em campanha pela reeleição, Bolsonaro repudiou o nazismo —e pediu que o mesmo tratamento fosse dado ao comunismo. Na quarta-feira, colocou ambas ideologias no mesmo pacote de "organizações que dizimaram milhões de inocentes ao redor do mundo".

No mesmo dia, Barroso falou do assunto em evento do site "Jota". Em referência ao caso do Telegram na Alemanha, disse: "O Brasil não é casa da sogra para ter plataforma com apologia ao nazismo, venda de armas. Para entrar na minha casa, tem que cumprir minhas regras. Muitas vezes as pessoas têm uma postura dita libertária, mas é fascismo puro".

A polêmica foi inaugurada no Flow Podcast. O apresentador, Monark, defendeu a criação de um partido nazista no Brasil. O procurador-geral da República, Augusto Aras, abriu uma investigação sobre o caso. Kataguiri não gostou e declarou no Twitter: "É aterrador que o PGR, que sempre faz vista grossa para crimes que realmente aconteceram, tenha agido tão rápido. Quando há claros indícios de crime cometido pelo presidente da República, Augusto Aras nada faz".

Ainda que o debate público sobre o nazismo não represente ameaça concreta à democracia, não deixa de soar estranho que o tema tenha vindo à tona agora. Nos últimos anos, a democracia tem sido defendida publicamente no Brasil em discursos de autoridades —especialmente de ministros do STF. Defender o óbvio tem sido cada dia mais necessário no Brasil.

* Esta coluna se despede hoje do UOL e agradece de coração aos leitores e colegas que viabilizaram e acompanharam o trabalho ao longo dos últimos dez meses.