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

Josias de Souza

OPINIÃO

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

União Brasil defende seu ministro do cavalo cavalgando antigas culpas do PT

01.01.23 - O presidente Lula dá posse a Juscelino Filho (União Brasil) como ministro das Comunicações - Ricardo Stuckert
01.01.23 - O presidente Lula dá posse a Juscelino Filho (União Brasil) como ministro das Comunicações Imagem: Ricardo Stuckert

Colunista do UOL

05/03/2023 20h17

Receba os novos posts desta coluna no seu e-mail

Email inválido

Lula recebe nesta segunda-feira Juscelino Filho. Para permanecer no governo, disse o presidente na semana ada, o ministro dos cavalos e das Comunicações terá que "provar sua inocência". Neste domingo, véspera do teste de integridade, Juscelino recebeu a solidariedade dos líderes do seu partido, o União Brasil. Não podendo elevar a estatura do correligionário, dedicaram-se a rebaixar o partido de Lula.

Em nota conjunta, o deputado Elmar Nascimento e o senador Efraim Filho, líderes do União Brasil na Câmara e no Senado, utilizaram a presidente do PT como escada para chegar a Lula. Gleisi Hoffmann havia defendido que Juscelino deveria buscar a porta de saída do governo por conta própria, para não constranger Lula. Evocando o mensalão e o petrolão, dois espinhos nos pés do petismo, Elmar e Efraim cobraram coerência de Gleisi.

Escreveram que Gleisi prega o "direito de defesa" sempre que atitudes de petistas são contestadas. "E não faltaram acusações a membros do PT na história recente do país", enfatizaram. Quando critica os outros, Gleisi "prefere fazer prejulgamentos", acrescentaram os defensores de Juscelino. O prontuário do ministro é notável. Usou verba pública para levar asfalto à porteira de sua fazenda. Escondeu da Justiça Eleitoral uma fortuna em cavalos. Voou de FAB para participar de leilão de equinos de raça em São Paulo. Mordeu diárias do Tesouro.

Ao defender o ministro do cavalo cavalgando antigas culpas do PT, os líderes do União Brasil recordam a Lula que sabem o que o petismo fez nos verões ados. E suspeitam que haverá reincidência. "Será que a presidente Gleisi fará a mesma declaração [a favor do afastamento voluntário] caso um integrante do seu partido seja alvo de ataques?", perguntaram Elmar e Efraim.

Ainda não se sabe qual será a decisão de Lula sobre Juscelino. Mas está entendido que o PT acha que o União Brasil não vale nada. Para o União Brasil, o PT é que não presta. E não há na plateia quem ouse discutir com peritos no assunto.