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

Klara Castanho se pronuncia e pede por ventos de mudanças: 'É o que desejo'

Colaboração para Splash, em Maceió

30/06/2022 07h35

Depois de revelar que gestou e colocou para adoção um bebê fruto de estupro, a atriz Klara Castanho, de 21 anos, pediu por "ventos de mudanças", e disse desejar que sua próxima personagem nas telinhas seja responsável por esses novos ares.

Castanho externou seu desejo em relação ao futuro nos comentários de uma postagem no Instagram da produtora Zola Filmes, responsável pela série "Bom Dia, Verônica', da Netflix, na qual ela interpreta a jovem Ângela, personagem que sofre abuso sexual.

Na plataforma, a produtora prestou solidariedade à atriz, e afirmou que "nenhuma mulher deveria ser obrigada a expor uma violência que ou". "Lamentamos muitíssimo por todo horror e sofrimento que lhe causaram", completou o perfil da Zola.

Nos comentários, Klara pediu por mudanças em sua vida. "Que nossa Ângela traga ventos de mudanças. É só o que eu desejo agora. Obrigada pelo cuidado de vocês", escreveu a atriz.

Entenda

Klara Castanho revelou que gestou uma criança após ser estuprada e a entregou para a adoção no último sábado (25). A história ganhou notoriedade após comentários da apresentadora Antonia Fontenelle e do jornalista Leo Dias. Posteriormente, por meio de uma carta aberta, a atriz rompeu o silêncio, e relatou a violência sofrida.

Klara contou que foi estuprada e engravidou, mesmo tendo tomado pílula do dia seguinte. Classificado por ela como "o relato mais difícil da minha vida", a famosa explicou que não queria tornar o assunto público, mas já que a adoção foi exposta, ela resolveu se pronunciar.

Posteriormente, Leo Dias, e o portal Metrópoles que hospeda o blog do jornalista, pediram desculpas à Klara Castanho pela exposição indevida do caso. O portal também garantiu que não demitirá o colunista.

Diversos famosos se solidarizaram com Klara após o ocorrido, entre eles as atrizes Juliana Paes e Flavia Alessandra, as cantoras Jojo Toddynho e Luisa Sonza e as apresentadoras Ana Maria Braga e Sonia Abrão.