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

Filho nasceu quinta: 7 momentos mais emocionantes da gravidez de Boca Rosa

Boca Rosa e Fred tiveram Cris na última quinta-feira - Reprodução/Instagram @bianca
Boca Rosa e Fred tiveram Cris na última quinta-feira Imagem: Reprodução/Instagram @bianca

De Universa

17/07/2021 11h10

A ex-BBB e empresária Bianca Andrade deu à luz Cris na última quinta-feira (15) após 20 horas de parto. No seu Instagram, Boca Rosa informou que o bebê, fruto de seu relacionamento com o youtuber Fred, nasceu após 20 horas em trabalho de parto, com 51 cm e 3,7kg "de muita gostosura".

Para celebrar esse momento tão especial, Universa destaca sete fases diferentes dessa gestação tão aguardada.

O anúncio...

Em dezembro, o casal foi às redes anunciar a novidade após a notícia da gravidez ter vazado. Na legenda da foto, a dupla explicou que queria ter esperado os três meses iniciais da gestação "para falar com segurança dessa vidinha que está por vir", mas que não iria se abalar. "Fiquem tranquilos porque estamos bem e cheios de motivos pra comemorar".

Jogo de palavras para o novo papai

Bianca fez um jogo de palavras na parede de um quarto para anunciar a Fred a gravidez. Nesse "caça-palavras", dava para ler o nome do casal e também referências a uma criança, como "baby" (bebê em inglês). Havia ainda uma espécie de cabaninha no chão, e ao abrir para o companheiro enxergar o que tinha lá dentro, ele encontrou um teste de gravidez numa mala escrito "babaquinha", uma brincadeira entre os dois. Fred caiu no choro.

Festa no Maraca

O casal escolheu o maior estádio do Brasil em capacidade para anunciar o nome da criança. No Instagram, Bianca explicou que a ideia do Maracanã surgiu de um sonho do casal: "celebrar o nosso bebê de uma maneira inesquecível. Pra mim, não foi apenas o chá revelação, foi a primeira vez que comemorei junto com a minha família reunida, foi a primeira vez que vibramos, pulamos e comemoramos a vida desse bebê de uma maneira leve e intensa, sem mais nenhum medo."

As primeiras roupinhas a gente nunca esquece

Entrando no quarto mês de gestação, Bianca compartilhou com os seguidores imagens das primeiras roupinhas que ela e Fred compraram após saber o sexo do bebê.

Oi, bebê Cris

Aos seis meses de gravidez, Bianca mostrou a primeira imagem de Cris, após uma ultrassom. Na sua rede, Fred ainda pergunta: "Parece com a mams ou com o paps?".

O primeiro arraiá

Com o novo integrante da família, o Golden Retriever Nelson, Boca Rosa e Fred promoveram o primeiro arraiá em família, já bem perto de Bianca dar à luz.

Chegou a hora!

E na quarta-feira, Fred e Boca Rosa dão entrada na Pro Matre Paulista para dar as boas vindas ao pequeno Cris. Muito amor ao casal!