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

Karoline Lima confirma término com Militão: 'Tentei resolver as coisas'

Karoline Lima exibe barriga grávida no colo de Militão em viagem - Instagram/Reprodução
Karoline Lima exibe barriga grávida no colo de Militão em viagem Imagem: Instagram/Reprodução

De Splash, em São Paulo

06/07/2022 15h32Atualizada em 06/07/2022 17h35

A influenciadora digital Karoline Lima confirmou o término do relacionamento com o jogador do Real Madrid, Éder Militão, na tarde de hoje.

"E aí gente! Então, tô ando aqui para tranquilizar vocês, dizer que tá tudo bem, que eu sou forte pra caramba, Cecília é mais forte ainda", introduziu ela nos Stories do Instagram por volta das 15 horas no horário de Brasília.

Ela então confirma que a relação chegou ao fim, mas diz que tentou se acertar com ele antes do desfecho.

"Realmente, gente. Para dar uma satisfação para vocês, depois que ele voltou de viagem eu procurei ele, tentei resolver as coisas, tentei me acertar, tentei continuar, mas chegou num ponto que eu vi que realmente não vai rolar como relacionamento amoroso e decidi terminar", afirmou.

"Acredito que foi a melhor decisão que no momento pede, então é isso. A gente sempre vai ter um elo que é a Cecília e a Cecília sempre vai ser prioridade na nossa vida e é o que importa", complementou.

Por fim, ela disse que estava bem e agradeceu as mensagens de carinho que estava recebendo.

"Eu tô bem, vou tá cada vez melhor e muito obrigada todo mundo pelas mensagens. Sou forte, vou dar conta. A Cecília é mais forte ainda. Vem aí", finalizou a influenciadora.

Na semana ada ela já tinha dito que "não estava boa com ele" após seu retorno de viagem.

Publicações ao lado do agora ex também foram apagadas ou excluídas, como uma do mês ado que ela compara a barriga dela antes e após a gravidez.

1 - Reprodução/ Instagram @karolinel - Reprodução/ Instagram @karolinel
O então casal Karoline Lima e Éder Militão celebrou um ano juntos em 10 de junho e influenciadora comemorou com post comparativo
Imagem: Reprodução/ Instagram @karolinel