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

Governador afrouxa isolamento em SC; prefeito de Florianópolis mantém regra

18.mar.2020 - Comércio fechado no centro de Florianópolis após decreto estadual para combater o avanço do coronavírus - Cristiano Andujar/Futura Press/Estadão Conteúdo
18.mar.2020 - Comércio fechado no centro de Florianópolis após decreto estadual para combater o avanço do coronavírus Imagem: Cristiano Andujar/Futura Press/Estadão Conteúdo

Andréia Martins

Do UOL, em São Paulo

13/04/2020 14h31

O governador de Santa Catarina, Carlos Moisés (PSL), afrouxou as regras para o funcionamento de alguns estabelecimentos comerciais a partir de hoje no estado. O decreto com a mudança foi publicado ontem.

No entanto, o prefeito de Florianópolis, Gean Loureiro (sem partido), decidiu manter as medidas de restrição ao comércio e à circulação de pessoas na capital. Prefeitos de ville, Chapecó e outras cidades informaram que vão seguir as recomendações do governo estadual.

A decisão do governo estadual liberou o funcionamento de hotéis, pousadas, restaurantes, cafés, bares, lanchonetes, comércio de rua e afins com algumas regras. Por exemplo, hotéis poderão "ativar 50% de sua capacidade total de hospedagem", os restaurantes podem reabrir, no entanto, os salões permanecem fechados, podendo receber o público apenas para retirada dos pedidos.

No caso do comércio de rua, os clientes não poderão experimentar roupas e órios e o número de pessoas dentro das lojas não pode ultraar a 50% de sua capacidade.

Entre as obrigações comuns a todos os estabelecimentos com funcionamento autorizado estão o uso de máscaras por parte de todos os funcionários, inclusive os que não tenham contato com o público, priorização de afastamento sem prejuízo de salário dos trabalhadores com mais de 60 anos, hipertensos, diabéticos e gestantes e medidas de higienização e prevenção ao contágio.

Outros setores já haviam sido liberados em Santa Catarina, como lojas de chocolate, cadeia automotiva, concessionárias, farmácias, mercados, construção civil, profissionais autônomos, salões, barbearias e clínicas médicas.

Na capital, os comércios de rua devem continuar fechados por mais uma semana. Os hotéis e pousadas também não poderão reabrir as atividades. A medida, segundo o prefeito, foi tomada com base em estudos elaborados pelo comitê de crise da Secretaria de Saúde de Florianópolis.

"Florianópolis foi uma das primeiras cidades a adotar o distanciamento social. O que nós fizemos provavelmente diminuiu 3 ou 4 vezes o número de contaminados que teríamos", disse Gean Loureiro em uma live durante o final de semana.

Na mesma transmissão, ele apresentou um estudo de casos que demonstra que, sem intensificações das ações, em 30 dias não haverá vagas de UTI disponíveis na cidade. Ainda segundo o estudo, caso haja a abertura ampla de comércio e afins, em 45 dias a previsão é de morte de 300 pessoas.

Outra medida anunciada foi o decreto que fará com que, a partir do dia 17 de abril, todos sejam obrigados a usar máscaras caseiras para conter o aumento das infecções.

De acordo com dados da Secretaria Estadual da Saúde de Santa Catarina divulgados ontem, o estado tem 776 casos confirmados do novo coronavírus e 24 mortes.