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

Defesa de Joice diz que deputada 'não seria leviana' ao apontar suspeitos

A deputada Joice Hasselmann (PSL-SP) após prestar depoimento à Polícia Civil do Distrito Federal  - WALLACE MARTINS/FUTURA PRESS//ESTADÃO CONTEÚDO
A deputada Joice Hasselmann (PSL-SP) após prestar depoimento à Polícia Civil do Distrito Federal Imagem: WALLACE MARTINS/FUTURA PRESS//ESTADÃO CONTEÚDO

Do UOL, em São Paulo

30/07/2021 19h08

A nova equipe de defesa da deputada federal Joice Hasselmann (PSL-SP) divulgou hoje um comunicado no qual afirma que ela "não seria leviana" ao apontar culpados por seu suposto atentado. Joice afirma que foi atacada por uma pessoa que teria invadido seu apartamento em Brasília há duas semanas.

A deputada agora é representada pelo escritório Antônio Carlos de Almeida Castro - Kakay Almeida Castro, Castro e Turbay Advogados Associados. "A deputada já foi ouvida. Esclareceu que, embora tenha vários desafetos em função da sua postura política, e de ter sérias dúvidas se as graves e múltiplas lesões foram realmente fruto de uma queda, ela explicitou que não seria leviana em apontar absolutamente nenhum suspeito", diz a nota.

A deputada sofreu graves lesões e, é óbvio, tem o direito de saber com precisão exatamente o que ocorreu. Por isso, a defesa técnica está se habilitando para contribuir na apuração dos fatos, sem nenhuma pretensão de participar ativamente dos atos investigatórios, que são de competência exclusiva da polícia".

Os advogados de Joice destacaram ter confiança no trabalho da Polícia Civil do Distrito Federal e da Polícia Legislativa. Eles também informaram que conversaram com o presidente da Câmara, Arthur Lira (PP-AL), e se colocaram à disposição para auxiliar na investigação.

A deputada relata que acordou no sábado (17) com fraturas no rosto e no corpo, além de hematomas e lacerações. Ela foi socorrida por seu marido, que é médico. Joice afastou a possibilidade de ter sido agredida por ele e diz que seus ferimentos não são compatíveis com uma queda.

A Polícia Legislativa, onde a deputada registrou o caso, atestou que ela não saiu de casa por cinco dias, mas informou não ter identificado a entrada de pessoas estranhas no apartamento, a partir das análises das câmeras de segurança. Joice, porém, aponta que o prédio não possui câmeras nas escadas ou nos halls dos andares.