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

Walcyr Carrasco diz que saída de Camila Queiroz impactou VS2: 'Foi difícil'

Walcyr Carrasco falou sobre saída de Camila Queiroz de "Verdades Secretas" - Reprodução
Walcyr Carrasco falou sobre saída de Camila Queiroz de "Verdades Secretas" Imagem: Reprodução

Colaboração para Splash, em Alagoas

09/12/2021 20h38

O autor Walcyr Carrasco, criador da novela "Verdades Secretas 2", itiu que a saída da protagonista Camila Queiroz impactou no roteiro que ele havia imaginado para a trama, mas garantiu que isso não trará grandes prejuízos para o desfecho da atual temporada do folhetim, que está em sua reta final no streaming do Globoplay.

Em entrevista ao podcast "Novela das 9", do Gshow, o novelista preferiu não se aprofundar nos detalhes da saída da atriz da Globo por se tratar de uma "questão" entre a artista e a emissora carioca, mas ressaltou que "nunca" viu algo assim acontecer.

"Prefiro não entrar em detalhes porque foi uma questão dela com a emissora. Mas eu nunca vi acontecer alguém na reta final dar um problema assim. Eu prefiro não falar muito, deixar no ar. Não foi fácil para mim, não", declarou.

Na entrevista, Walcyr Carrasco ressaltou que, apesar do impacto da saída de Queiroz do elenco de "Verdades Secretas", eles conseguiram "se superar" e o desfecho para a trama "ficou bem bom".

"A gente tinha gravações [com a Camila] até do último capítulo. Então não é uma coisa que a história tinha sido cortada, nada disso, porque a gente já tinha gravações", contou o novelista, que fez mistério sobre o final do folhetim.

Globo rompeu com Camila Queiroz

A Globo anunciou que Camila Queiroz não estaria nos episódios finais de "Verdades Secretas 2" no dia 17 de novembro. A atriz, ao se manifestar sobre o assunto, disse apenas que "a saúde mental venceu" no dia em que saiu da emissora.

Queiroz voltou a se manifestar nas redes sociais após a TV Globo anunciar o desligamento. Ela divulgou um comunicado afirmando que foi "punida" pela emissora por optar não seguir o antigo modelo de contrato.

Ela também divulgou uma carta para se despedir de Angel. Ela interpreta a jovem modelo desde 2015, quando "Verdades Secretas" foi ao ar na TV Globo. Ela voltou a criticar a produção dizendo que a personagem "não teve o final que merecia", porque não deixaram.