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

SP: Covas fará antecipação de cinco feriados por causa da pandemia

Colaboração para o UOL

18/03/2021 09h07Atualizada em 18/03/2021 13h51

O prefeito de São Paulo, Bruno Covas (PSDB), disse hoje pela manhã que a prefeitura estudava a antecipação de cinco feriados na capital paulista por causa da pandemia do coronavírus. As antecipações foram confirmadas por Covas em coletiva de imprensa, por volta do meio-dia.

"É uma das medidas que estão sendo estudadas agora com o nosso jurídico, para que a gente possa anunciar no fim da manhã como uma das medidas para incentivar ainda mais a redução da circulação de pessoas", disse o prefeito, em entrevista à GloboNews.

No ano ado, a Prefeitura de São Paulo antecipou os feriados de Corpus Christi (que seria celebrado no dia 11 de junho) e da Consciência Negra (20 de novembro) para 20 e 21 de maio, respectivamente, uma quarta e quinta-feira. Além disso, na época, Covas decretou ponto facultativo na sexta-feira daquela semana, deixando a população pelo menos cinco dias em casa.

"Essa medida se mostrou eficiente no ano ado e é uma das ações que a gente pode anunciar agora no fim da manhã", reforçou Covas.

'É inviável lockdown'

Atualmente, a capital paulista segue as recomendações do governo do estado sobre as medidas restritivas para evitar a disseminação da covid-19. Desde a última segunda-feira (15), o município está na fase emergencial de enfrentamento à pandemia, com uma série de restrições aos moradores.

"Não há nenhum prazer pessoal em fechamento de comércio, em fechamento de parque, em restringir a circulação das pessoas. É uma necessidade que estamos tendo para que a gente possa restringir a circulação, não deixar os leitos chegarem a 100% de ocupação e poder tratar todo mundo", reforçou Covas.

Apesar da alta do número de casos confirmados e de internações por causa da covid-19 em todo o estado, o prefeito reafirmou que descarta adotar o lockdown na cidade. Ele disse que a prefeitura não tem condições de fiscalizar se as pessoas iriam respeitar um possível isolamento social total.

"É inviável fiscalizar se as pessoas estão saindo de casa com mil guardas da GCM (Guarda Civil Metropolitana). Além do mais, são 1,7 mil ruas que começam na cidade de São Paulo e terminam em outra cidade", decretou Covas. "É inviável um lockdown municipal na cidade de São Paulo, como outras cidades menores já fizeram".