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

Podcast

Baixo Clero

A jornalista Carla Bigatto conduz com analistas um papo sobre temas que dominam a pauta política.


OPINIÃO

Do Centrão, ex-ministro da Saúde fala em subordinação e critica isolamento

Do UOL, em São Paulo

15/05/2020 20h16

Ao comentar a saída do segundo titular da Saúde do governo Bolsonaro em meio à pandemia do novo coronavírus, o ex-ministro da Saúde do governo Temer (2016-2018) e atual deputado federal Ricardo Barros (PP-PR) fez críticas às políticas adotadas até agora para o combate à Covid-19 e afirmou que ministro "tem que cumprir decisões do chefe".

Apesar do Centrão (grupo de partidos que atua em conjunto no Congresso e do qual o PP faz parte) estar negociando cargos com o governo Bolsonaro em troca de apoio político, ele nega ter sido sondado e não respondeu se aceitaria ocupar o posto que era de Nelson Teich.

O deputado federal Ricardo Barros (PP) - Paulo Lisboa/Brazil Photo Press/Folhapress - Paulo Lisboa/Brazil Photo Press/Folhapress
EX-ministro da Saúde, Ricardo Barros
Imagem: Paulo Lisboa/Brazil Photo Press/Folhapress

"O ministro Teich já sabia das posições do presidente. Não há surpresa. Ele não pode dizer que foi surpreendido pelas posições do presidente. Ministro tem que cumprir as decisões do chefe", disse durante entrevista exclusiva aos jornalistas do Baixo Clero, o podcast de política do UOL (na íntegra acima, o trecho começa em 46:08). O programa teve uma edição extra, ao vivo e em vídeo, para debater mais uma baixa no primeiro escalão do governo.

Ainda segundo Barros, nem todas as medidas tomadas para combater a pandemia precisam estar fundamentadas em dados científicos. Para o ex-ministro, é necessário olhar as diferenças regionais que existem no Brasil.

Isolamento social e lockdown, segundo ele, deveriam servir para achatar a curva de casos e também para dar tempo de estruturar o sistema de saúde, o que, na opinião dele, não funcionou no Brasil.

"Não aconteceu nada disso. Não temos respiradores, não temos equipamentos para os profissionais de saúde, os estados não conseguem se estruturar, o Ministério Público parte violentamente para atacar quem fez algum tipo de compra, para questionar, para mandar prender. Gente, isso não vai adiantar nada. Nós estamos tendo um prejuízo econômico com o isolamento, que no Brasil é parcial. Nunca ou de 50%, ou seja, o vírus circulou livremente enquanto as pessoas estavam em casa e só trouxe prejuízo para quem fez isolamento e perdeu sua renda", disse.

Você pode ouvir a opinião do ex-ministro a partir de 40:30 no vídeo acima ou acompanhar o programa completo, que teve a participação de Marcos Nobre (presidente do Cebrap e professor de filosofia da Unicamp), Carla Araújo (colunista do UOL em Brasília) e Marcos Boulos (infectologista e assessor especial para doenças infecciosas da coordenadoria de controle de doenças da Secretaria do Estado da Saúde de SP). Carla Bigatto, apresentadora do programa, e Maria Carolina Trevisan e Diogo Schelp, colunistas do UOL, conduziram as conversas.

Já no vídeo abaixo você confere um pouco dos bastidores da saída de Teich, projeções sobre quem pode ocupar a pasta e análises sobre o impacto da mudança de ministros no combate à pandemia.