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

Tarcísio fala em retirar moradores de áreas de risco para evitar tragédias

Governador de São Paulo em entrevista na Globonews - Reprodução TV Globo
Governador de São Paulo em entrevista na Globonews Imagem: Reprodução TV Globo

Do UOL, em São Paulo

08/03/2023 03h51

O governador de São Paulo Tarcísio de Freitas (Republicanos) disse que vai transferir os moradores de várzeas e encostas para habitações em locais seguros. A ideia é evitar tragédias como a que aconteceu após as fortes chuvas que atingiram o litoral norte de São Paulo e deixou 65 mortos durante o Carnaval.

"A gente vai ter que tirar pessoas que moram na área de várzea, nas encostas e entregar para essas pessoas habitação em local seguro", declarou o governador em entrevista exibida na Globonews na noite de ontem (7).

Além das moradias, Tarcísio, que foi apoiado pelo ex-presidente Jair Bolsonaro (PL) nas eleições no ano ado, ainda assumiu que é necessário melhorar as ações para que temporais sejam previstos e que a população seja avisada, e afirmou que a tecnologia usada não foi a adequada.

"Temos que melhorar a previsão desses eventos, então nós vamos investir em radares, em comunicação. A gente percebeu que usando telefonia móvel teremos mais sucesso. O que a gente usou hoje, que eram os recursos disponíveis, ainda não foi o suficiente". O governador de São Paulo defendeu mais uma vez a instalação de sirenes.

Cerca de 1.200 pessoas que tiveram suas casas destruídas pelas chuvas no litoral norte de São Paulo serão transferidas de abrigos de São Sebastião para unidades habitacionais no município de Bertioga, na Baixada Santista. A distância entre a Vila Sahy, área mais atingida pelo temporal, e o conjunto de moradias é de cerca 50 quilômetros. Atualmente, as famílias estão abrigadas em hotéis e pousadas de São Sebastião.

Ainda sobre o litoral do estado, Tarcísio revelou a intenção de construir um terminal de carga no fundo do canal de Santos, próximo do porto, na direção de Cubatão para evitar que o local vire favela. Para o republicano, "a privatização do Porto de Santos pode ser o rompimento de um ciclo de pobreza na Baixada Santista".