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

Chico Alves

REPORTAGEM

Texto que relata acontecimentos, baseado em fatos e dados observados ou verificados diretamente pelo jornalista ou obtidos pelo o a fontes jornalísticas reconhecidas e confiáveis.

Grupos anti-Bolsonaro insistem em fazer manifestação na Paulista no dia 7

Manifestação contra o governo Bolsonaro na avenida Paulista, em São Paulo - Miguel Schincariol/AFP
Manifestação contra o governo Bolsonaro na avenida Paulista, em São Paulo Imagem: Miguel Schincariol/AFP

Colunista do UOL

23/08/2021 04h00

Apesar de o governo de São Paulo ter definido que a Avenida Paulista será ocupada somente por grupos bolsonaristas no dia 7 de setembro, militantes dos movimentos Fora, Bolsonaro e Grito dos Excluídos mantiveram manifestação para a mesma data e local. Segundo Raimundo Bonfim, coordenador nacional Central de Movimentos Populares (CMP), há uma representação no Ministério Público e um pedido de reunião com o governo estadual para mostrar que foi ignorada decisão judicial que estabelece regras para a realização de atos na avenida. A coluna perguntou a Bonfim onde será realizada a manifestação contra Bolsonaro no dia 7 e ele respondeu imediatamente: "Na Paulista".

De acordo com o coordenador da CMP, o governo fez interpretação equivocada da decisão judicial que determina, em caso de duplicidade, a alternância de datas para cada grupo político. "O 11º Batalhão da Polícia Militar argumenta que no dia 24 de julho, quando realizamos nossa última grande manifestação, um sujeito que não se sabe o nome teria comunicado que faria um ato na Paulista no dia 7", explica Bonfim. "Esse cara sumiu e a PM está interpretando que houve duplicidade. Não é possível uma pessoa só causar duplicidade em relação à demanda feita por centenas de entidades".

O governo estadual anunciou que os movimentos anti-Bolsonaro poderão realizar atos no dia 12 de setembro. Bonfim, no entanto, não entende a referência a essa data. "A gente não tem nada a ver com o dia 12, isso não está em questão", reclama ele. "Nós estamos achando muito estranho o governo falar no dia 12. O governador quer reatar com MBL, com o Vem Pra Rua (organizadores do ato previsto para essa data)?".

O coordenador da CMP conta que o homem que pediu para ocupar a Avenida Paulista no dia 7 é de uma Organização Mundial pela Paz e alegou que o ato seria de cunho religioso. "Aí o comandante do batalhão falou que o cara se declarou a favor do Bolsonaro", argumenta. "A Polícia Militar agora é que define quem é de oposição e quem não é? Está complicado...".

O Grito dos Excluídos é iniciativa da Igreja Católica que acontece desde 1995 em vários estados e há 12 anos é realizado em São Paulo na Avenida Paulista.

A Central de Movimentos Populares enviou ao procurador-geral de Justiça de São Paulo representação para "garantir o direito de reunião e manifestação dos autores".