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

Climão? Loreto vira jurado de ex Kalimann e cita situação 'desconcertante'

José Loreto e Rafa Kalimann em festa de Luciano Huck - Webert Belicio/AgNews
José Loreto e Rafa Kalimann em festa de Luciano Huck Imagem: Webert Belicio/AgNews

De Splash, em São Paulo

26/03/2023 20h11

Rafa Kalimann e José Loreto ficaram frente a frente, neste domingo (26), no Domingão com Huck (Globo).

O ator foi um dos jurados do quadro Dança dos Famosos, que conta com a influenciadora digital como uma das participantes.

O artista itiu que a situação foi desconcertante e que continua amando a famosa, apesar do fim do relacionamento.

"Eu estou confuso [...] Desconcertante ver a Rafa aqui. Desculpa, é desconcertante, porque tem várias memórias. A gente tava aqui quando se conheceu. E eu tenho várias memórias. É muito bom a gente poder se amar sem estar junto. Eu acho essa mulher uma potência", disse.

A fala de Loreto foi criticada por telespectadores por meio de publicações nas redes sociais. "José Loreto sendo sem noção mais uma vez", escreveu um. "Que momento desnecessário. Para que uma exposição assim? Aparecer? Foi muito desconfortável isso. Que coisa sem noção", publicou outro.

Os dois assumiram o romance em agosto do ano ado, quando apareceram juntos em um show de Caetano Veloso. Antes, no entanto, eles já haviam sido fotografados em uma praia juntos. Os dois se aproximaram após participação no programa apresentado por Huck.

O relacionamento, entretanto, durou cerca de seis meses. O término da relação partiu da influenciadora, que decidiu focar em sua vida profissional.

À época, segundo o colunista de Splash Lucas Pasin, fontes revelaram que algumas atitudes do ator teriam incomodado a famosa.

Segundo o colunista, Loreto cobrava de Rafa, tinha ciúmes, e ela até tentou ajustar a relação, mas acabou desistindo.

Ao mesmo tempo em que cobrava da apresentadora, porém, o artista ou a ter atitudes mais "soltinhas", com festinhas até altas horas e publicações nas redes sociais consideradas "provocativas".