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

Atriz de 'The Middle' critica nova lei do aborto nos EUA: 'Me destruiu'

Eden Sher é conhecida pelo papel de Sue Heck em "The Middle" - Reprodução
Eden Sher é conhecida pelo papel de Sue Heck em 'The Middle' Imagem: Reprodução

Colaboração para Splash

29/06/2022 23h41

A atriz norte-americana Eden Sher, de 30 anos, publicou em suas redes sociais um desabafo a respeito da nova lei do aborto nos Estados Unidos. A decisão tomada na última sexta-feira pela Suprema Corte ou a permitir que cada estado defina suas próprias restrições ao direito das cidadãs de abortar.

"Como alguém que teve uma gravidez de alto risco extremamente difícil, ou muitas horas em vários consultórios médicos e teve uma estadia prolongada e muito assustadora no hospital antes de dar à luz meus bebês (bastante traumático às 28 semanas), essa decisão me destruiu de maneiras difíceis de processar", começou ela em post publicado no Instagram, revelando que os filhos gêmeos nasceram prematuros.

"As implicações dessa decisão vão além de simplesmente despojar as mulheres de sua capacidade de obter um procedimento médico seguro. Ela despoja as mulheres de seu valor como ser humano", considerou Eden, conhecida pelo papel de Sue Heck no seriado "The Middle" (ABC).

"Tive a sorte de ter uma gravidez desejada, sistema de apoio para me ajudar e recursos para me fornecer os cuidados e a atenção de que precisava para manter a mim e meus bebês seguros e vivos. Não posso aceitar que agora vivo em um país onde, se minha vida estivesse seriamente em perigo, se eu estivesse simplesmente no estado errado, um médico não teria tomado medidas para salvar minha vida por medo de ir para a cadeia. Não posso aceitar que agora seja possível que mulheres e médicos sejam punidos por terem que tomar a decisão mais difícil e dolorosa que uma pessoa poderia ter que tomar. Isso é aterrorizante e perturbador", detonou.

"Obter os cuidados médicos que todos os seres humanos merecem não deve depender de ter ou não ter um útero, viver no estado correto ou ter dinheiro suficiente. Agir nesse momento parece um pouco esmagador, mas cada pouquinho ajuda. Se você não sabe por onde começar, farei doações regulares para a Rede Nacional de Fundos de Aborto e, se puder, imploro que faça o mesmo", concluiu Eden.