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

Mauricio Stycer

OPINIÃO

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

Agenda política de Lula na Europa ganha cobertura tímida na TV aberta

Lula e chanceler alemão eleito, Olaf Scholz - Ricardo Stuckert/Instituto Lula
Lula e chanceler alemão eleito, Olaf Scholz Imagem: Ricardo Stuckert/Instituto Lula

Colunista do UOL

16/11/2021 16h01Atualizada em 16/11/2021 21h14

Faltando mais de dez meses para as eleições presidenciais de 2022, e ainda sem candidaturas oficializadas, a mídia tem demonstrado hesitação na cobertura da agenda de potenciais candidatos e de eventos de caráter político-eleitoral.

Um dos motivos é justamente o fato de ainda não haver candidatos oficiais à Presidência. Nem mesmo o presidente Jair Bolsonaro já confirmou peremptoriamente ser candidato à reeleição. Outra razão é a dificuldade, nesta fase, de distinguir entre o que tem, de fato, interesse público e o que é apenas especulação, balão de ensaio.

Na semana ada, três assuntos que dizem respeito a 2022 ganharam espaço no noticiário: as prévias do PSDB, marcadas para o próximo dia 21, a possível ida de Bolsonaro para o PL e a filiação de Sergio Moro ao Podemos seguida de seu discurso de candidato. Ainda que sem grande alarde, os três assuntos chegaram à TV aberta.

Já a viagem do ex-presidente Lula à Europa, desde o final da semana ada, não tem recebido a mesma atenção dos canais de TV aberta. Com encontros políticos na Alemanha, Bélgica, França e Espanha, é um périplo claramente de caráter político-eleitoral.

Líder nas pesquisas de intenção de voto para 2022, Lula já produziu algumas notícias desde sábado. Encontrou-se com o futuro chanceler da Alemanha, Olaf Scholz, o mesmo que foi ignorado por Bolsonaro no G-20. Fez um discurso muito elogiado no Parlamento Europeu na segunda-feira e falou sobre a política brasileira na prestigiosa universidade de Sciences Po de Paris nesta terça.

Um comentário de Lula sobre Geraldo Alckmin, feito no sábado, em Bruxelas, teve bastante repercussão no Brasil, incluindo uma rápida menção no "Jornal da Band". O ex-presidente comentou sobre a possibilidade de compor uma chapa com o ex-governador de São Paulo. No mais, porém, a sua viagem não está despertando a mesma curiosidade na TV aberta que os outros eventos mencionados.