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

Doria: se ministros não têm autonomia, é melhor fechar ministérios

Governador de SP, João Doria, segura caixa da possível vacina para Covid-19; tensão com Bolsonaro - AMANDA PEROBELLI
Governador de SP, João Doria, segura caixa da possível vacina para Covid-19; tensão com Bolsonaro Imagem: AMANDA PEROBELLI

Guilherme Mazieiro

Do UOL, em Brasília

21/10/2020 13h15

Em um novo momento de tensão com o presidente Jair Bolsonaro (sem partido), o governador de São Paulo, João Doria (PSDB), disse que se os ministros não têm autonomia, é melhor fechar os ministérios. Na manhã de hoje, Bolsonaro desautorizou publicamente o ministro da Saúde, Eduardo Pazuello, sobre a compra de vacinas contra coronavírus, produzidas em São Paulo, em parceria com um laboratório chinês.

"Afinal, por que ter ministros, se os ministros não têm condições de emitirem suas opiniões, de defenderem suas posições? Seria melhor, então, fechar ministérios. Se a cada ministro a emitir sua opinião ele estará desautorizado pelo presidente da República, para que ter ministros, para que ter ministérios?", questionou Doria.

O governo paulista negocia com o ministério da Saúde acordo de R$ 1,9 bilhão para financiar a produção de 46 milhões de doses no Instituto Butantan (em São Paulo). A vacina é estudada pelo governo Doria em parceria com o laboratório chinês Sinovac.

"Lá [no governo de São Paulo] nós não misturamos ciência com política, não misturamos saúde com ideologia. E protegemos a população como temos feitos ao longo desses 9 meses e com 16 quarentenas no chamado plano São Paulo", declarou Doria.

As falas de Doria aconteceram no Senado, após reunião com um grupo de senadores. Pela manhã, o governador teve a reunião cancelada com o presidente da Câmara, Rodrigo Maia (DEM-RJ). O deputado disse que tinha uma indisposição, em razão de ter comido algo que não lhe fez bem.

Doria x Bolsonaro

O ime entre Doria e Bolsonaro começou na manhã de hoje, quando o presidente disse em redes sociais que o governo não compraria vacinas de origem chinesa. O ministério da Saúde negocia com o governo Doria o financiamento para produção de 46 milhões de doses da vacina chinesa, em São Paulo. Pelo acordo de São Paulo com o laboratório serão importadas 6 milhões de doses.

O secretário-executivo do Ministério da Saúde, Élcio Franco, disse nesta manhã, em coletiva de imprensa, que não houve compromisso com o governo de São Paulo para adquirir vacinas contra a covid-19 e que não há intenção de compra de imunizantes chineses.

Um documento assinado pelo ministro Pazuello, no dia 19 de outubro, sinalizou que há a intenção de comprar as 46 milhões doses do Instituto Butantan. O ofício está redigido sob o título: Vacina Butantan-Sinovac para o Programa Nacional de Imunizações (PNI).

No documento, Pazuello argumentou que a manifestação "não tem caráter vinculante", uma vez que somente será possível prosseguir com o processo de aquisição após o regular registro da vacina na Anvisa", informa o documento.