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

Após dois meses, Portugal reabre museus em plano de desconfinamento

Museu de Artes Decorativas, em Lisboa - Sylvain Sonnet/Getty Images
Museu de Artes Decorativas, em Lisboa Imagem: Sylvain Sonnet/Getty Images

05/04/2021 12h52

Museus, varandas de cafés e escolas do ensino básico de Portugal voltaram a abrir, nesta segunda-feira (5), após dois meses de fechamento, na segunda fase do plano de desconfinamento do país, duramente atingido pela covid-19 no início do ano.

Depois da reabertura das creches e instituições de nível pré-escolar em 15 de março, nesta segunda-feira os alunos do ensino básico voltaram às salas de aula.

"Vamos virar uma página na esperança que não seja necessário um retrocesso", comemorou o presidente português, Marcelo Rebelo de Sousa.

Os demais setores que retomarem as atividades devem seguir rígidas normas sanitárias.

As reuniões estão limitadas a quatro pessoas por mesa nos terraços, e os museus terão de adaptar seus horários. Nas academias, as aulas coletivas não estão autorizadas.

"Este leve retorno à normalidade acontece no momento certo. Estávamos cansados do confinamento", disse à AFP Pedro Rosa, um funcionário público de 48 anos ao tomar seu café sozinho na área externa de um estabelecimento do centro turístico de Lisboa.

"Para mim, este é o melhor dia do ano, me faz lembrar a que ponto Lisboa é magnífica", declarou Vadim Mirigim, um turista russo de 51 anos entre os poucos visitantes que puderam atravessar esta manhã as muralhas do castelo São Jorge, fortaleza com vista para os bairros históricos da capital portuguesa e entre os monumentos mais visitados do país.

Enfrentando uma explosão de casos de coronavírus após as festas de final de ano, que provocou o colapso dos hospitais, o governo português impôs um segundo confinamento geral em meados de janeiro, seguido uma semana depois do fechamento das escolas.

Para favorecer o retorno seguro às escolas, o governo se apoia na realização de testes de diagnóstico em larga escala e em um plano de vacinação para os profissionais da educação.

Segundo o plano de desconfinamento do governo, as escolas de ensino médio, universidades e casas de espetáculo deverão esperar até 19 de abril para retomar as atividades. Os restaurantes aguardarão até o início de maio.

A situação sanitária é reavaliada a cada duas semanas, com a possibilidade de reintrodução de medidas restritivas nos locais com muitos casos de covid-19, segundo o governo.

Durante este período, as autoridades decidiram manter as restrições de viagens.

Os voos de e para o Brasil e o Reino Unido continuam suspensos para limitar a propagação das novas variantes, enquanto os controles nas fronteiras terrestres entre Portugal e Espanha, cuja agem se limita a algumas exceções, foram estendidos até meados de Abril.

"Esperamos receber muito poucos visitantes", já que não há turistas estrangeiros, explicou à AFP António Nunes Pereira, diretor do Palácio Nacional da Pena, na vila turística de Sintra, a cerca de 30 km de Lisboa.

Segundo ele, haverá uma "verdadeira retomada" no verão (inverno no Brasil), quando "o processo de vacinação estiver mais avançado na Europa", e as restrições de viagens forem reduzidas. Muito menos afetado do que outros países europeus durante a primeira onda da pandemia, Portugal teve de enfrentar uma explosão de casos depois das festas de fim de ano.