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

Janaina diz que marido de Joice Hasselmann deveria ar por perícia

Do UOL, em São Paulo

28/07/2021 09h35Atualizada em 28/07/2021 10h22

A deputada estadual Janaina Paschoal (PSL-SP) afirmou hoje, em entrevista ao UOL News, que entende como necessário que Daniel França, marido da deputada Joice Hasselmann (PSL-SP), e por uma perícia após o suposto atentado que Joice sofreu dentro de seu apartamento funcional em Brasília.

"Eu entendo, vou fazer um comentário aqui que talvez seja..., que o marido [da Joice] precisaria ar por uma perícia. Mas é um caso delicado que eu acho que entra na privacidade da deputada e tem tantas autoridades investigando. Tantos braços das polícias investigando. Eu só posso desejar e rezar para que tudo se esclareça e ela se recupere", declarou.

O neurocirurgião Daniel França, marido da deputada, disse ao jornalista Oswaldo Eustáquio, não ter visto sinais de luta corporal no quarto dela, na manhã do último domingo, quando a parlamentar acordou com hematomas e machucados. Ele ainda afirmou também não saber explicar de que maneira Joice teria sido ferida.

"Eu nunca agredi ninguém. Em nenhum momento da minha vida eu nunca, nunca dei um tapa em ninguém, nunca dei um murro em ninguém", declarou o médico em outra entrevista ainda no domingo (25).

Solidariedade e investigação

Janaina disse que enviou uma mensagem de solidariedade para a deputada, mas não teve retorno. Ela explicou que conversou com outras pessoas que conhecem Joice e parece que ela "não está respondendo às mensagens", no entanto, expressou o desejo de que o caso seja esclarecido.

A parlamentar ainda opinou que não consegue ver motivações para a Justiça Federal, o Ministério Público Federal e a Polícia Federal investigarem o suposto atentado contra Joice.

Eu não consigo ver tecnicamente competência para a Justiça Federal, o Ministério Público Federal, para a Polícia Federal [investigar] esse tipo de situação. Salvo melhor juízo é competência de Polícia Civil. Eu não acho que só por ser um prédio funcional seria competência da Justiça Federal. A meu ver é competência da Polícia Civil. Mas o importante é que está sendo feito as perícias."
Janaina Paschoal em entrevista ao UOL News

Ao ser questionada pela apresentadora Fabíola Cidral se já sofreu algum tipo de ameaça por seus posicionamentos políticos, Janaina declarou que "não fala sobre esse tema" e que gosta de abordar "coisas positivas".