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

Estados e capitais melhoram em transparência de gastos com covid, diz ONG

UTI com pacientes infectados pelo novo coronavírus do Hospital da Brasilândia, em São Paulo - Talyta Vespa/UOL
UTI com pacientes infectados pelo novo coronavírus do Hospital da Brasilândia, em São Paulo Imagem: Talyta Vespa/UOL

Carlos Madeiro

Colaboração para o UOL, em Maceió

29/06/2020 04h00

Quinze estados e oito capitais aram a contar com avaliação "ótimo" no ranking produzido pela ONG (Organização Não Governamental) Transparência Internacional no Brasil, que divulgou hoje a primeira atualização de seu levantamento sobre transparência no combate à covid-19. Na primeira edição da pesquisa, divulgada em 21 de maio, apenas quatro estados e duas capitais estavam nessa condição.

Segundo a ONG, a avaliação inclui os níveis de transparência sobre contratações emergenciais no enfrentamento da pandemia. A escala do ranking vai de zero a 100 pontos, e são avaliados como ótimo aqueles que atingem mais de 80 pontos.

Assim como na primeira edição, lideram o ranking o Espírito Santo, entre os estados, e João Pessoa, entre as capitais. Ambos melhoraram seu desempenho e atingiram a pontuação máxima.

Entre os estados também estão classificados como ótimo, em ordem:

  • Ceará
  • Distrito Federal
  • Rondônia
  • Goiás
  • Minas Gerais
  • Pernambuco
  • Amapá
  • Alagoas
  • Paraná
  • Maranhão
  • Amazonas
  • Rio Grande do Sul
  • São Paulo
  • Santa Catarina

Já entre as capitais são elas:

  • Manaus
  • Macapá
  • Vitória
  • Belo Horizonte
  • Campo Grande
  • Florianópolis
  • São Paulo

Melhoras

O estado que registrou maior alta na pontuação entre um ranking e outro foi São Paulo, que deixou o status de "ruim" em transparência, com 27,8 pontos, para o de "ótimo", com atuais 84,8.

Também agora, entre estados e municípios, não há mais nenhum classificado como "péssimo". Na primeira avaliação, Belém teve essa classificação e agora está como regular, com 54,4 pontos. Na nova avaliação, apenas Porto Velho, com 39,2 pontos, aparece como "ruim."

Também não existe mais nenhum estado avaliado como "ruim". Antes, além de São Paulo, Roraima teve essa classificação. Na nova avaliação, as últimas colocações Bahia (45,5) e Roraima (43), os dois únicos avaliados como "regular."

Em comunicado público, a ONG atribui as melhoras nos resultados à pressão social feita pela sociedade e entidades.

"Os resultados comprovam que, quando há pressão social, há mudança", afirma Guilherme , coordenador de pesquisa da Transparência Internacional no Brasil., que ressalta a cobrança feita pela sociedade a partir da cobertura feita pelos veículos de imprensa.

"Fomos procurados por prefeituras e governos estaduais do Brasil inteiro interessados em melhorar e aumentar a transparência das informações que fornecem, mas também porque sabiam que estariam sob os holofotes novamente na segunda rodada", conclui.