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

Aline Ramos

OPINIÃO

Texto em que o autor apresenta e defende suas ideias e opiniões, a partir da interpretação de fatos e dados.

Globo transforma demissão de Camila Queiroz em novela melhor que a oficial

Colunista do UOL

17/11/2021 16h34

Se as coisas já não andam boas para a Angel em Verdades Secretas II, também não parecem estar bem para a Camila Queiroz, que interpreta a personagem na novela. Na tarde desta quarta-feira (17), fomos surpreendidos com a notícia de que a atriz não está mais no elenco da produção do Globoplay.

Em nota para a imprensa, a Globo afirmou o seguinte:

Para a extensão de contrato necessária à gravação das cenas finais da novela, Camila Queiroz quis determinar o desfecho da personagem Angel e exigiu um compromisso formal de que faria parte de uma eventual terceira temporada da obra, além de outras demandas contratuais inaceitáveis.

A notícia por si só é chocante. Afinal, Camila faz o papel da protagonista em Verdades Secretas 2. Porém, surpreende ainda mais o tom da nota que anunciou a separação entre a atriz e a emissora.

Paixão e raiva

Geralmente, a Globo é mais polida e evasiva em seus comunicados. A emissora costuma divulgar textos em que não informa muita coisa, agradece o ex-funcionário pelos serviços prestados e deseja sorte no prosseguimento da carreira. Foi assim que a emissora anunciou a saída de Faustão, por exemplo. Com Camila Queiroz, foi diferente.

Há muita paixão e raiva nas entrelinhas da nota da Globo. Os detalhes, que raramente aparecem, apontam para um desejo de que todos saibam quem é o vilão dessa história. É até difícil de assimilar que tal comunicado veio da própria emissora. Definitivamente, estamos acompanhando um divórcio litigioso.

Esse foi apenas o primeiro capítulo de uma novela que vai durar pelos próximos dias. Há muitas dúvidas a serem respondidas:

  1. O que será que rolou para a Camila Queiroz deixar a Globo tão brava?
  2. Quem é o verdadeiro vilão dessa história?
  3. Qual o posicionamento da Camila sobre tudo o que aconteceu?
  4. Será que Camila vai revelar uma verdade secreta?
  5. Qual o futuro de Angel em Verdades Secretas II?
  6. Qual o futuro de Camila Queiroz?

Próximos capítulos

No Twitter, a atriz já apareceu para dizer que decidiu priorizar a sua saúde mental e que mais tarde volta para conversar mais. Horas antes da Globo enviar o comunicado à imprensa, Camila publicou um vídeo inusitado no Tik Tok em que dubla uma música com a letra "eu tenho essa cara de anjo, mas eu sei de fofocas que ninguém tá ligado".

Já Walcyr Carrasco, autor de Verdades Secretas, publicou um vídeo em seu Instagram apresentando alguns mimos personalizados da novela: algema, venda para os olhos, corda, vela e champanhe.

Vem coisa boa por aí!