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

Após apelo, Fiesp diz que vai doar 250 cilindros de oxigênio para SP

Do UOL, em São Paulo

21/03/2021 16h43

O presidente da Fiesp (Federação das Indústrias do Estado de São Paulo), Paulo Skaf, disse hoje que a entidade irá doar 250 cilindros de oxigênio para cidade de São Paulo.

A doação ocorre depois de pedido de ajuda feito pelo secretário municipal de Saúde, Edson Aparecido. Na sexta, dez pacientes que estavam internados na UPA (Unidade de Pronto Atendimento) de Ermelino Matarazzo, na zona leste da capital, com sintomas de doença, precisaram ser transferidos às pressas para uma unidade de Itaquera, sob risco de falta de oxigênio. (Assista ao vídeo acima)

"A primeira providência que tomei foi solicitar que todos os cilindros que tivéssemos nas nossas escolas do Senai fossem separados e colocados à disposição para atender esse momento de emergência", afirmou Skaf, em entrevista à CNN Brasil. "A cidade de São Paulo nos pediu 250 cilindros dizendo que resolveriam o problema imediato. Nós já arrumamos os 250 e, a partir de amanhã, vamos tomar providências para a questão de logística", acrescentou.

Segundo Skaf, a Anvisa (Agência Nacional de Vigilância Sanitária) liberou os cilindros pretos, utilizados pela indústria. "Os verdes são uso medicinal, mas há possibilidade do fabricante fazer um tratamento no cilindro preto e pode servir para o uso medicinal também", explicou ele.

Explosão no número de casos de covid

Segundo boletim epidemiológico, divulgado pela secretaria de saúde, o município de São Paulo contabiliza até agora 686.324 casos confirmados e 20.288 mortes em decorrência da doença.

Diante do aumento, o prefeito Bruno Covas (PSDB) confirmou a antecipação de cinco feriados municipais —dois deste ano e três de 2022— para a semana entre 26 de março e 1º de abril, na tentativa de reduzir a circulação de pessoas na capital paulista e, com isso, frear a transmissão da covid-19.

A antecipação dos feriados na capital paulista gerou preocupação principalmente em prefeitos do litoral do estado, que temem uma descida em massa dos paulistanos para as praias nesse período, e foi criticada também pelo governador de São Paulo, João Doria (PSDB).

"Nós alertamos ontem a Prefeitura de São Paulo de que uma medida como essa deveria ser discutida previamente com o governo do estado de São Paulo e com os prefeitos da região metropolitana e também do litoral, e não anunciadas sem esse tipo de entendimento", reclamou Doria.