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

Paes publica decreto para flexibilizar uso de máscaras no Rio

Do UOL, em São Paulo e no Rio

27/10/2021 07h38Atualizada em 27/10/2021 19h24

O prefeito do Rio de Janeiro, Eduardo Paes (PSD-RJ), publicou hoje decreto que dispensa o uso obrigatório de máscaras em locais abertos da cidade e libera o funcionamento de boates e casas de show.

O decreto começará a valer depois que o governador do Rio, Cláudio Castro (PL), sancionar lei aprovada ontem e a SES (Secretaria Estadual de Saúde) publicar sua resolução com as regras de flexibilização. Na tarde de hoje, Castro anunciou que deve sancionar amanhã.

Decisão do STF (Supremo Tribunal Federal) sobre as medidas de combate à pandemia estabeleceu que, em caso de normas conflitantes em diferentes esferas de governo, a mais restritiva é aplicada.

A decisão sobre as máscaras foi publicada na edição de hoje do Diário Oficial da cidade, um dia depois de a Alerj (Assembleia Legislativa do Rio de Janeiro) aprovar um projeto de lei que autoriza a SES a regulamentar a flexibilização.

Uma nota técnica da pasta obtida pelo UOL mostra que a intenção do governo é liberar os municípios que atingirem 65% da população completamente vacinada a retirar a obrigatoriedade do uso de máscaras ao ar livre.

O município do Rio de Janeiro atingiu ontem (26) o patamar de 65,6% dos cariocas com duas doses ou dose única de imunizantes contra a covid-19.

Nesta segunda-feira (25), Alexandre Chieppe, secretário estadual de Saúde, afirmou que a SES publicará a resolução tão logo a lei seja sancionada por Castro.

O fim da obrigatoriedade de máscaras em locais abertos já estava previsto para quando a capital fluminense atingisse 65% da população total com duas doses ou dose única das vacinas para covid-19, e 80% dos adultos completamente imunizados, segundo o plano de reabertura da cidade.

O decreto publicado hoje formaliza que a obrigatoriedade do uso de máscaras fica mantida apenas em ambientes fechados e em transportes públicos.

A SMS (Secretaria Municipal de Saúde) diz que a medida foi deliberada pelo Comitê Especial de Enfrentamento à Covid-19, composto por especialistas que prestam consultoria à prefeitura.

O decreto ainda estabelece que, a partir do momento que o município do Rio de Janeiro alcance o índice de 75% da população com duas doses de vacina ou dose única, a obrigatoriedade do uso de máscaras ficará mantida somente para transportes públicos e áreas hospitalares sensíveis.

Boates e casas de show

O decreto também formaliza outra medida anunciada ontem por Paes: a liberação do funcionamento de boates e casas de show. Esses estabelecimentos poderão funcionar com 50% da capacidade.

Neles será obrigatório o uso de máscara. O público só poderá ingressar mediante a comprovação de que está vacinado —medida conhecida como aporte da vacina.