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

Nota de Heleno foi 'acima do tom' e 'constrangeu a muitos', diz Maia

27.mai.2020 - O presidente da Câmara dos Deputados, Rodrigo Maia (DEM-RJ), em entrevista coletiva sobre a crise do novo coronavírus - Maryanna Oliveira/Câmara dos Deputados
27.mai.2020 - O presidente da Câmara dos Deputados, Rodrigo Maia (DEM-RJ), em entrevista coletiva sobre a crise do novo coronavírus Imagem: Maryanna Oliveira/Câmara dos Deputados

Do UOL, em São Paulo

27/05/2020 15h01Atualizada em 27/05/2020 18h36

O presidente da Câmara dos Deputados, Rodrigo Maia (DEM-RJ), criticou hoje a nota divulgada pelo ministro do Gabinete de Segurança Institucional (GSI), general Augusto Heleno, na última sexta-feira (22). Para Maia, as palavras de Heleno foram "acima do tom" e "constrangeram a muitos".

"A nota do ministro Heleno foi muito acima do necessário, do tom. Eu acho que constrangeu a muitos. Sem dúvida nenhuma, não é o tom que deveria ser usado por um ministro, principalmente do Palácio do Planalto, mas nenhum outro ministro deveria usar um tom como esse, de ameaça", afirmou o deputado em coletiva de imprensa.

A nota em questão se referia ao encaminhamento, por parte do ministro Celso de Mello, do STF (Supremo Tribunal Federal), de três notícias-crime apresentadas por partidos e parlamentares que pediam, entre outras medidas, a apreensão do celular do presidente Jair Bolsonaro (sem partido). Apesar das críticas de Heleno, o envio desses pedidos à Procuradoria-Geral da República (PGR) é um mero trâmite burocrático.

O presidente da Câmara, porém, descartou —por ora— convocar Heleno para prestar esclarecimentos, como solicitado por alguns partidos de oposição. Segundo Maia, já houve uma "sinalização de crítica própria" às palavras do ministro, e o momento atual, em meio à pandemia do novo coronavírus, não seria propício para um evento como esse.

"Talvez um requerimento de formação seria melhor para cobrar do ministro o que ele quis dizer naquela nota", propôs. "A convocação aqui [na Câmara], com o plenário vazio, eu não sei o que isso poderia gerar. Claro que, se chegar num ponto em que precisa convocar, nós vamos convocar. Mas acho que neste momento a gente tem que tentar construir os caminhos sem precisar de uma medida extrema", completou.

Operação da PF contra Witzel

Na coletiva, Maia ainda comentou sobre a operação da Polícia Federal que ontem atingiu o governador do Rio de Janeiro, Wilson Witzel (PSC-RJ). O deputado disse não ver politização neste caso, mas sinalizou que pode ter havido um vazamento de informações sobre a operação, já que, em entrevista no dia anterior, a deputada federal Carla Zambelli (PSL-SP) indicou que já sabia o que aconteceria.

"Quando começou essa especulação com relação à entrevista de um parlamentar [Zambelli], eu fui entender a operação. Não vejo nenhum indício de tentativa de politização na decisão da operação. Agora, certamente a cúpula da PF recebe a informação e pode rear para alguém. Tem que avaliar como aquilo tramitou fora daquelas pessoas que estão na operação. O vazamento gera algum tipo de preocupação", afirmou.

O deputado também disse esperar que as operações da PF continuem sendo feitas de forma impessoal, mas reconheceu que o vazamento, ainda que não influencie em nada na prática, "certamente não é bom". "Se o parlamentar [que vazou a informação] tem credibilidade, ele acaba dando uma informação para alguém que, em tese, pode estar sendo investigado, então pode atrapalhar as investigações", ponderou.