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

Shopping funcionará por 4 horas sem cinema e praça de alimentação em SP

Shopping Light de portas fechadas no centro de São Paulo - Wanderley Preite Sobrinho/UOL
Shopping Light de portas fechadas no centro de São Paulo Imagem: Wanderley Preite Sobrinho/UOL

Felipe Pereira e Wanderley Preite Sobrinho

Do UOL, em São Paulo

01/06/2020 15h48

Os shopping centers e o comércio de rua receberam do governo do estado de São Paulo um protocolo para voltar a funcionar nas cidades paulistas que estão na fase 2, laranja, como a da capital. A exigência, no entanto, é que o funcionamento se dê por apenas 4 horas e sem cinema e praça de alimentação.

As regras foram detalhadas em protocolos divulgados pelo governo do Estado. Na sexta-feira (29), a secretária de Desenvolvimento Econômico, Patrícia Ellen, afirmou que as lojas só poderão atender 20% de sua capacidade, com um horário de abertura de quatro horas por dia.

Já o Protocolo Sanitário para o Comércio "restringe", por exemplo, "a abertura de cinemas, operações de entretenimento e atividades para crianças".

A secretaria pede ainda que os shoppings não realizem "evento de reabertura", além de monitorar a quantidade de pessoas presentes em suas dependências.

Quanto à prevenção à covid-19, esses estabelecimentos terão de afixar comunicados explicativos em escadas rolantes, elevadores, cancelas de estacionamento e outras áreas de fluxo de clientes e funcionários.

O protocolo recomenda ainda que a istração do shopping mantenha "comunicação clara e eficiente com funcionários, lojistas e clientes", mas não entrou em detalhes.

Além de São Paulo estão na fase 2 as cidades de Araçatuba, Franca, Marília, Piracicaba, Ribeirão Preto, São João da Boa Vista, São José do Rio Preto, Sorocaba e Taubaté, além dos municípios satélites dessas cidades-polo. Em Campinas, a quarentena foi prorrogada até o dia 7 de junho.

Em São Paulo já vale?

Apesar da capital paulista estar classificada na fase laranja, o prefeito Bruno Covas avisou que a abertura não ocorreria hoje. A partir do dia 1º, os setores econômicos interessados em reabrir terão de enviar propostas que serão avaliadas pela Vigilância Sanitária.

"Só serão liberados na cidade a partir da do protocolo com a prefeitura", afirmou Covas. "E, assim que [as propostas forem] referendadas, os setores vão poder reabrir na cidade."

A Abrasce (Associação Brasileira de Shopping Centers), por exemplo, diz que "já criou um protocolo de recomendações junto à área de Consultoria do Sírio-Libanês com o objetivo de orientar os estabelecimentos para este momento de reabertura".

Mais tempo aberto

Nas cidades classificada com a cor amarela (fase 3), o shopping poderá atender até 40% da clientela, permanecer de portas abertas por seis horas e com a praça de alimentação liberada desde que em área descoberta. Estão nessa lista Bauru, Presidente Prudente, Araraquara, São Carlos e Barretos, além dos municípios vizinhos a elas.

Na quarta e última fase, a verde, os lojistas poderão atender 60% de sua capacidade. O protocolo não limita o tempo de abertura do shopping. Até agora, no entanto, nenhuma cidade recebeu essa classificação.

Cidades podem rejeitar

Ao UOL, o secretário estadual de Habitação e integrante do comitê econômico, Flavio Amary, afirmou que os protocolos do comércio foram debatidos com Facesp (Federação das Associações Comerciais do Estado de São Paulo), federações de comércio, shoppings, lojistas em shoppings.

"Elaboramos protocolos e cada município vai ter que fazer decretos acatando e podendo ser mais restritivos em relação a horário e dias de funcionamento. A definição vai para os municípios, desde que respeitem critérios."

Ele disse no entanto, que se trata de uma recomendação, que poderá ser rejeitada pelas cidades. "Como foi pactuado com setores e vigilância sanitária, acredito que boa parte dos municípios validem como sendo protocolos locais. Mas prefeituras podem tomar outra decisão."

A fiscalização também ficará a cargo dos municípios. Se tudo ocorrer bem, o município poderá pedir para mudar de fase, o que permitirá estender a flexibilização da quarentena a outros setores econômicos.

"A mudança de fase pode acontecer a cada duas semanas, a depender dos parâmetros. Eventualmente a restrição, a ida para fase mais restritiva pode ocorrer se os números forem ruins"

Ele reforçou que "a quarentena vai até 15 de junho nesta nova característica e possibilita inclusão mais atividade econômica em regiões que número saúde permite"

Shopping abre em Blumenau com música ao vivo e palmas

TV Folha