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

Esposa de Juliano Cazarré publica bela reflexão sobre saúde da filha

Letícia Cazarré é esposa do ator Juliano Cazarré - Reprodução/Instagram
Letícia Cazarré é esposa do ator Juliano Cazarré Imagem: Reprodução/Instagram

Colaboração para Splash

04/01/2023 19h34

A bióloga Letícia Cazarré compartilhou hoje, em suas redes sociais, uma reflexão que construiu em uma das fases mais difíceis do tratamento de sua filha caçula - Maria Guilhermina, de 6 meses, que sofre de uma cardiopatia congênita.

"Escrevi essa reflexão numa nota de celular dia 25 de agosto do ano ado. Maria Guilhermina tinha ado pela pior intercorrência que poderia acontecer com ela, segundo os médicos: incompatível com a vida", recordou a esposa do ator Juliano Cazarré, em um post do Instagram.

"Um deles (que hoje posso chamar de amigo e anjo da guarda) me disse na época: 'Deus a segurou por um fio'. E era verdade mesmo. Mas essa minha reflexão, que vou transcrever aqui, serve também para todos os assuntos da vida. Serve, inclusive, para quem tem muito medo do que virá pela frente no futuro do país e do mundo", prosseguiu Letícia, publicando o texto na sequência.

"Nunca sabemos o que nos guarda o dia de amanhã, embora a maioria de nós viva com a sensação de poder controlar os acontecimentos. Lembro quando, na faculdade, uma professora nos trouxe um estudo mostrando que 90% da rotina planejada para o dia seguinte não se cumpria do jeito, na ordem e/ou no horário imaginado. 90%!", surpreendeu-se ela.

"Como disse o gênio Camões, viver não é preciso. Nos momentos mais difíceis até aqui, sempre procuro lembrar disso. A angústia vem das conjecturas, do que pode acontecer de pior, do quanto ainda teremos que sofrer. Mas por que sofrer antecipadamente, se não sabemos o que vem pela frente?", continuou Letícia.

"Uma grande amiga hoje me deu o melhor conselho: sofrer cada situação a seu devido tempo, não antes. Ou, como diz São Francisco de Sales: "não se preocupe com o que pode acontecer amanhã; o mesmo Pai eterno que cuida de você hoje, se encarrega de você amanhã e todos os dias. Ou Ele protegerá você do sofrimento, ou lhe dará a força infalível para á-lo'", concluiu a bióloga.