;(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();
})();
Após pedido contra Moraes, Gilmar critica 'fabricação artificial de crises'
Ministro do STF disse que é hora de reordenar prioridades Imagem: Felipe Sampaio/STF
Do UOL, em São Paulo
22/08/2021 14h27Atualizada em 22/08/2021 14h51
O ministro do STF (Supremo Tribunal Federal) Gilmar Mendes criticou hoje o que chamou de "fabricação artificial de crises institucionais" e disse que é hora de "reordenar prioridades".
"A fabricação artificial de crises institucionais infrutíferas afasta o país do enfrentamento dos problemas reais. A crise sanitária da pandemia, a inflação galopante e a paralisação das reformas necessárias devem integrar a agenda política. É hora de reordenar prioridades", escreveu o ministro em sua conta oficial no Twitter.
A fabricação artificial de crises institucionais infrutíferas afasta o país do enfrentamento dos problemas reais. A crise sanitária da pandemia, a inflação galopante e a paralisação das reformas necessárias devem integrar a agenda política. É hora de reordenar prioridades.
No documento encaminhado ao presidente do Senado, Bolsonaro argumenta que o "Judiciário brasileiro, com fundamento nos princípios constitucionais, tem ocupado um verdadeiro espaço político no cotidiano do País".
O presidente questiona a ingerência de Moraes sobre o caso. "Não é exagero reiterar: vítima, acusador e julgador todos unidos na mesma pessoa!", escreveu.
As decisões do TSE e do STF foram motivadas pelos repetidos ataques do chefe do Executivo às eleições.
O texto foi assinado pelos ex-ministros Miguel Reale Jr., José Eduardo Martins Cardoso, Jose Gregori, José Carlos Dias, Aloysio Nunes Ferreira, Tarso Genro, Celso Amorim, Eugenio Aragão, Jacques Wagner e Raul Jungmann.
No documento, o grupo de dez ex-ministros cita a manifestação de presidentes e ex-presidentes do TSE sobre a transparência e segurança das urnas eletrônicas. No manifesto, eles ainda entendem que Bolsonaro reconheceu não ter provas das supostas fraudes em eleições, mas seguiu defendendo o voto impresso "que ofenderia o sigilo do voto".
Em entrevista a jornalistas durante visita a Eldorado (SP), no entanto, o mandatário reclamou de ter sido incluído no que chamou de "inquérito do fim do mundo" e disse que "cada um tem que saber seu lugar".
"Eu fiz tudo dentro das quatro linhas da Constituição. Engraçado, quando eu entro com uma ação no Senado fundado no artigo 52 da Constituição, o mundo cai na minha cabeça. Quando uma pessoa, com um inquérito do fim do mundo, me bota lá, ninguém fala nada. Não é revanche. Cada um tem que saber o teu lugar. Só podemos viver em paz e harmonia se cada um respeitar o próximo e saber que tem um limite, e o limite é nossa Constituição", declarou ele.
ID: {{comments.info.id}}
URL: {{comments.info.url}}
Ocorreu um erro ao carregar os comentários.
Por favor, tente novamente mais tarde.
{{comments.total}} Comentário
{{comments.total}} Comentários
Seja o primeiro a comentar
Essa discussão está encerrada
Não é possivel enviar novos comentários.
Essa área é exclusiva para você, , ler e comentar.
Só s do UOL podem comentar
Ainda não é ? Assine já.
Se você já é do UOL, faça seu .
O autor da mensagem, e não o UOL, é o responsável pelo comentário. Reserve um tempo para ler as Regras de Uso para comentários.