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

Crivella negocia e aviões da FAB podem buscar novos respiradores na China

Prefeito Marcelo Crivella no jardim do Palácio da Cidade, sede da Prefeitura do Rio - Divulgação
Prefeito Marcelo Crivella no jardim do Palácio da Cidade, sede da Prefeitura do Rio Imagem: Divulgação

Do UOL, em São Paulo

31/03/2020 16h11

O prefeito do Rio de Janeiro, Marcelo Crivella, afirmou, na tarde de hoje, estar negociando com as Forças Armadas para que aviões da FAB (Força Aérea Brasileira) busquem respiradores mecânicos na China e antecipem a entrega dos 806 equipamentos adquiridos pelo município. Ele também anunciou outras medidas de combate ao coronavírus, como o uso de R$ 2,5 milhões na aquisição de camas para o hospital de campanha no Riocentro.

"Nós precisaremos de uns quatro ou cinco aviões de campanha, porque temos na China mais de 150 toneladas de material comprado pela Prefeitura para trazer. Eles nos pediram quais são os aeroportos e nós já informamos. Estamos apenas aguardando a decisão. São US$ 300 milhões em equipamentos", declarou o prefeito em entrevista coletiva.

A entrega dos equipamentos estava prevista para chegar em etapas, entre abril e maio. Além disso, o prefeito também acertou a compra de 40 mil máscaras de proteção para profissionais de saúde.


O prefeito afirmou que ainda hoje deverá regulamentar o Fundo Especial de Combate ao Coronavírus, aprovado pela Câmara de Vereadores para receber doações destinadas a enfrentar a covid-19: "Espero já esta semana divulgar um fundo para que todas as empresas e pessoas que queiram contribuir com o Rio de Janeiro na luta contra o coronavírus possam fazer seus depósitos. Qualquer depósito é bem-vindo, não tem valor mínimo, não tem valor máximo", esclareceu.

Hoteis para idosos

Crivella afirmou que idosos que vivem em comunidades, onde correm risco maior de contaminação pelo coronavírus, podem buscar vagas em hotéis — a Prefeitura disponibilizou mil vagas, com direito a alimentação e auxílio de médicos.