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

Daniela Lima, da CNN, rebate deputado que legitimou ataques em Brasília

Daniela Lima, âncora da CNN rebate deputado ao vivo - Reprodução / Instagram
Daniela Lima, âncora da CNN rebate deputado ao vivo Imagem: Reprodução / Instagram

Colaboração para Splash, em São Paulo

08/01/2023 21h45

Daniela Lima, da CNN, interrompeu ao vivo o deputado e ex-líder do governo Bolsonaro na Câmara dos Deputados, Ricardo Barros (PP-PR).

Na conversa, Barros afirmou que a confiança da população nas urnas eletrônicas foi imposta por Alexandre de Moraes, presidente do Tribunal Superior Eleitoral (TSE). A entrevista aconteceu enquanto o ataque terrorista acontecia em Brasília.

  • Durante o dia, terroristas bolsonaristas invadiram e depredaram o Congresso, Planalto e STF.
  • Quebraram a vidraça do Salão Nobre do Congresso e conseguiram entrar.
  • Um grupo se dirigiu ao Palácio do Planalto e invadiu o prédio. Policiais formaram uma barreira para impedir o ao interior do edifício, de onde despacham o presidente da República e vários ministros.

Não foi só isso, antes o deputado já havia disparado críticas ao ministro da Justiça, Flávio Dino. Para ele, o ministro sabia das articulações bolsonaristas para invasão do Congresso, mas não atuou com responsabilidade para barrar os atos de vandalismo.

Repúdio: Apesar de ter repudiado o vandalismo no Palácio do Planalto e no Supremo Tribunal Federal, Barros disse que as manifestações, sem depredações, eram legítimas.

  • Ele disse que, "as pessoas que estão ali estão de cara limpa, porque elas acham que as eleições foram roubadas."
  • Acusou Moraes de proibir jornalistas e parlamentares de criticarem as urnas eletrônicas, o que, para ele, fez com que os cidadãos não confiassem nos resultados.

Foi quando Daniela o interrompeu e rebateu ser irresponsabilidade do parlamentar colocar em questionamento à confiança nas urnas.

Deputado, não, eu peço desculpas. Deputado, eu vou interromper, sabe por quê? Esse discurso que o senhor traz aí, de 'impor a confiança na urna', a confiança na urna ela é imposta pelos fatos, deputado. A irresponsabilidade retórica, gente que o senhor chama de jornalista e pedia guerra civil. Jornalista deputado, perdão, somos eu, são meus colegas, que estamos na rua, muitos deles apanhando dos homens de bem, pessoas de família que você veio defender. Daniela Lima

Ela ainda completou: "No dia de hoje, diante desse cenário de terra arrasada, do Supremo Tribunal Federal depredado, do seu Congresso Nacional depredado, do Palácio do Planalto depredado, de um governador que não conseguiu lidar, reverberar esse tipo de discurso, que levou essas pessoas a loucura deputado, é questionável."