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

Titi Müller relembra aborto espontâneo: 'Muito doloroso'

Titi Müller anunciou gravidez em foto com o marido, Tomas Bertoni - Reprodução/Instagram
Titi Müller anunciou gravidez em foto com o marido, Tomas Bertoni Imagem: Reprodução/Instagram

De Universa, em São Paulo

06/03/2020 10h52

Grávida de seis meses de Benjamin, Titi Müller contou que sofreu um aborto espontâneo menos de um ano antes da atual gestação. "Eu estava querendo ter filho logo, queria ser mãe há muito tempo. Engravidei em dezembro de 2018, tive uma perda gestacional em janeiro e foi muito doloroso", relembrou ela em entrevista à Marie Claire.

A apresentadora, casada com Tomás Bertoni, disse que ficou "incrédula" ao saber que estava grávida novamente depois da gestação interrompida. "Não pensava que fosse acontecer tão rápido", explicou.

Apesar da felicidade, o casal tentou não criar muitas expectativas por causa do aborto sofrido meses antes. "Tínhamos sofrido uma perda e preferimos manter a calma. Na primeira vez, contamos para os nossos familiares logo que pegamos o teste positivo e, dessa vez, aguardamos até a oitava semana. Contei para minhas irmãs no mesmo dia porque não me aguentei, mas nossos pais ficaram chateados por não ter revelado antes", contou.

Desde que descobriu que está grávida, Titi disse que já ganhou quase 10 kg. "Senti muita fraqueza, então tenho tentado comer muita proteína, ovo, carne moída, mas a digestão está pesada e difícil de dormir. Parece que tudo fica parado no estômago. Dá vontade de tomar sorvete depois de todas as refeições, mas tenho feito pilates quase todos os dias, com um personal especializado em gestantes e tenho me sentido muito bem."

Sobre os medos da maternidade, a apresentadora diz sentir em relação ao futuro da sociedade e do planeta. "É bem assustador, você olha para o futuro pesado e não a muito calma. Meu filho vai ter todas as ferramentas para ser um cara muito legal, vou cria-lo com toda consciência do privilégio dele para tentar agregar mais neste mundo. Tem muita gente fazendo coisas boas por aí, então acho que ainda virão muitas flores em meio a todo este concreto."