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

Cantor Thiago Costa recebe alta: 'Livramento divino, nasci de novo'

Thiago Costa sofreu acidente de jet ski e ou por quatro cirurgias - DIvulgação/TC Produções Assessoria Thiago Costa
Thiago Costa sofreu acidente de jet ski e ou por quatro cirurgias Imagem: DIvulgação/TC Produções Assessoria Thiago Costa

De Splash, em São Paulo

06/12/2021 13h36Atualizada em 06/12/2021 13h40

O cantor Thiago Costa recebeu alta hospitalar hoje após mais de 20 dias internado no Hospital Metropolitano de Urgência e Emergência em Ananindeua, Pará. O músico sofreu um acidente de jet ski e ou por quatro cirurgias.

Ele comemorou e afirmou que retornará ao hospital para cirurgias já programadas.

Hoje estou de alta para voltar para minha casa, para junto da minha família, ver minhas filhas. Meu Deus, quanta gratidã! Vou precisar voltar para o hospital em data programada para outras cirurgias. Não tem como descrever para vocês o que estou sentindo. Graças a Deus tive livramento divino e sou um novo Thiago Costa, nasci de novo. Thiago Costa

Durante o período no hospital, o músico ou por três procedimentos na perna direita e um no braço direito.

A alta da UTI foi dia 19 de novembro, mas ele seguia no leito hospitalar.

Thiago Costa - Divulgação/TC Produções Assessoria Thiago Costa - Divulgação/TC Produções Assessoria Thiago Costa
Cantor voltará ao hospital para realizar cirurgias agendadas
Imagem: Divulgação/TC Produções Assessoria Thiago Costa

A equipe do músico organizou doações de sangue pelas redes sociais devido ao estoque das bolsas do Hemopa (Centro Hemoterapia e Hematologia do Pará) durante o mês de novembro. Thiago recebeu cerca de nove bolsas.

Na comemoração da alta, Thiago agradeceu, um por um, os profissionais do hospital em que estava internado.

A todos que doaram sangue, meus fãs, amigos, minha equipe, Deus me deu a oportunidade de muito em breve voltar a fazer o que amo que é cantar pra vocês, Gratidão pelas orações e gestos de carinho que recebi nesse período tão difícil. Em breve o 'Potência' retorna se Deus permitir. Thiago Costa

O músico planeja retornar aos palcos no próximo ano. Thiago é casado com a nutricionista e empresária Idiane Caldas e pai de Liz.

Thiago Costa - Reprodução/Instagram  - Reprodução/Instagram
Thiago Costa estava internado desde 11 de novembro após sofrer acidente no Pará
Imagem: Reprodução/Instagram