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

Esse conteúdo é antigo

Com quase 300 mortes pela covid-19, Irã cancela discurso de líder

O líder sumpremo do Irã,  Ali Khamenei, em participação nas orações de sexta-feira, em Teerã - AFP
O líder sumpremo do Irã, Ali Khamenei, em participação nas orações de sexta-feira, em Teerã Imagem: AFP

10/03/2020 18h02

Teerã, 10 mar (EFE) — O novo coronavírus levou as autoridades do Irã a cancelar o discurso do líder supremo, Ali Khamenei, por ocasião do Ano Novo Persa no país, onde a doença, até esta terça-feira, causou a morte de 291 pessoas.

O Ministério da Saúde informou hoje que foram confirmadas 881 novas infecções desde o dia anterior, das quais 54 morreram, subindo a contagem para 8.042 infectados.

Destes, 2.731 se recuperaram da doença, que atualmente tem seu foco principal na província de Teerã, com mais de 2 mil pessoas infectadas.

Para tentar conter a epidemia, o Irã cancelou todos os tipos de eventos públicos, culturais, esportivos e religiosos, e agora é a vez de um ato do líder.

Como todos os anos, Khamenei tinha planejado fazer um discurso no mausoléu do Imã Reza, na cidade sagrada de Mashad, por ocasião de "Noruz" (o Ano Novo Persa), em 20 de março.

O líder também não viajará para Mashad seguindo "as recomendações dos profissionais de saúde para evitar reuniões e viagens, a fim de impedir a propagação do coronavírus", disse um comunicado oficial.

Por outro lado, Ali Khamenei aceitou hoje a proposta do Ministério da Saúde de considerar "mártires", o que implica uma série de benefícios para as famílias, os profissionais de saúde que morreram no combate ao surto da Covid-19.

O ministro da Saúde, Said Namaki, não especificou o número de médicos, enfermeiros ou assistentes mortos, mas destacou o trabalho desses profissionais que "colocam suas vidas em perigo para ajudar o país a superar esse momento difícil".

Para evitar multidões, as autoridades iranianas fecharam escolas e universidades, entre muitos outros lugares, e estão desinfetando espaços públicos diariamente.

Nesse sentido, o segundo turno das eleições parlamentares, inicialmente previsto para 17 de abril, pode ser adiado para o final de agosto ou setembro, disse hoje o porta-voz do governo, Ali Rabiei.