;(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();
})();
Web condena pronunciamento de Bolsonaro sobre coronavírus: 'Perturbado'
24.mar.2020 - O presidente Jair Bolsonaro (sem partido) em pronunciamento exibido em rede nacional Imagem: Isac Nóbrega/PR
Do UOL, em São Paulo
24/03/2020 21h26Atualizada em 24/03/2020 21h44
Além de aços, o presidente Jair Bolsonaro (sem partido) foi alvo de críticas após fazer um pronunciamento em rede nacional sobre a pandemia do novo coronavírus. Políticos, artistas e usuários do Twitter condenaram o tom adotado pelo presidente e logo colocaram a hashtag "#ForaBolsonaro" entre os assuntos mais comentados da rede social.
"Bolsonaro acaba de fazer um pronunciamento sem apresentar nenhuma nova medida e culpando a imprensa pelo coronavírus. O Brasil é governado por um homem perturbado com teorias da conspiração, mas que agora ameaça criminosamente a vida de milhões de pessoas", escreveu Guilherme Boulos (PSOL-SP), adversário de Bolsonaro nas eleições de 2018.
Bolsonaro acaba de fazer um pronunciamento sem apresentar NENHUMA nova medida e culpando a imprensa pelo coronavírus. O Brasil é governado por um homem perturbado com teorias da conspiração, mas que agora ameaça criminosamente a vida de milhões de pessoas. #ForaBolsonaro
Gravíssimo o pronunciamento de Jair Bolsonaro. O presidente atacou a imprensa, falou em "histeria" e questionou o isolamento social implementado nos centros urbanos. Coloca, assim, todo o país em risco. É um psicopata que deve ser removido imediatamente do cargo. #ForaBolsonaro
.@JairBolsonaro poderia ter usado o pronunciamento desta noite para tentar restaurar sua legitimidade no cargo. Perdeu a oportunidade. Esse governo chegou ao fim. Não tem mais salvação. #ForaBolsonaropic.twitter.com/E3mCiFxkhx
Ignorando TODOS os conselhos daqueles que lhe recomendavam moderação no pronunciamento de hoje, @jairbolsonaro dobrou a aposta. Reafirmou a linha tresloucada a favor do funcionamento do comércio, escolas e transporte. É um irresponsável que precisa ser detido. #ForaBolsonaro
É urgente a pressão pela saída de Bolsonaro da presidência. Todos os métodos são válidos: apresentamos o impeachment, nos ajude assinando o pedido e pressionando os parlamentares do seu estado. Participe dos aços, seja canal de informação para pessoas próximas #ForaBolsonaro
Bolsonaro não vai parar por conta própria. Tem que ser afastado imediatamente da presidência. Em nome de um projeto alucinado de poder, está querendo nos levar pro precipício junto com ele. Ele é o principal agente de ampliação da contaminação. Não há outra saída:#ForaBolsonaro
Não só irresponsável, como também criminoso o discurso do Bolsonaro. Essa fala é delirante e descontrolada, porém totalmente planejada. Que triste pelo país e pelas pessoas mais pobres no Brasil. #ForaBolsonaro.
Nosso povo é essencialmente bom, trabalhador e honesto. É muito triste que, num momento tão difícil como esse, tenhamos como presidente da república um ser tão incompetente e irresponsável como Bolsonaro. É triste e a história não o perdoará. #ForaBolsonaro#pronunciamento
Esse homem não tá do lado do povo, tá do lado dos empresários milionários que financiaram a eleição dele.
Ele quer ver sua família ir pra rua trabalhar, se contaminar e se foder com o Corona. Pq ele e os "ricassos" que apoiam ele, vão tá em casa de boa....#ForaBolsonaro
Com mais de 2 mil casos confirmados e 45 mortes no país, (e esse número tende a crescer a cada dia), o Bolsonaro diz que PODEMOS voltar as atividades normais do dia-a-dia, culpa a mídia pela pandemia e crítica o fechamento das escolas? ESSE CARA É UM CRIMINOSO! #FORABOLSONARO
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.