;(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
Logo Pagbenk Seu dinheiro rende mais
Topo

Agência analisa prorrogar veto a corte de energia em meio à pandemia

Medida tem vigência até 30 de junho, mas a Aneel quer uma prorrogação até 31 de outubro - Nacho Doce
Medida tem vigência até 30 de junho, mas a Aneel quer uma prorrogação até 31 de outubro Imagem: Nacho Doce

Marlla Sabino

Em Brasília

01/06/2021 10h59Atualizada em 01/06/2021 11h06

A área técnica da Aneel (Agência Nacional de Energia Elétrica) propôs prorrogar até 31 de outubro a proibição de cortes de energia por falta de pagamento de famílias de baixa renda.

A medida foi aprovada em março e tem vigência até 30 de junho. A diretoria da agência reguladora deverá analisar a sugestão dos técnicos, mas não há previsão de quando o processo será pautado.

A resolução entrou em vigor em meio a um agravamento da pandemia no país. Mesmo com a vacinação contra a covid-19, a área técnica analisou que não há perspectiva de melhora da situação sanitária no médio prazo, considerando que ainda há um alto índice de contágio. Especialistas já apontam que uma terceira onda da doença pode chegar ao Brasil em junho.

Pela proposta apresentada em nota técnica na última sexta-feira (28), a medida continuaria valendo nos mesmos termos e para os mesmos grupos de consumidores. O processo será relatado pelo diretor Hélvio Neves Guerra, que poderá alterar as recomendações.

A suspensão vale para cerca de 12 milhões de unidades consumidoras inscritas no programa Tarifa Social, consumidores que precisam de energia para manter equipamentos essenciais à vida em funcionamento e os que não estão recebendo a conta de luz em casa.

Também abrange unidades de saúde e hospitais e regiões onde não há instituições financeiras abertas por conta de restrições de isolamento social.

Cadastro

Além da proibição de cortes, a agência também suspendeu as verificações periódicas em relação aos cadastros das famílias inscritas no Tarifa Social, ou seja, nenhum consumidor pode ser retirado do programa enquanto a resolução estiver vigente.

O mecanismo é semelhante ao que foi adotado em 2020, quando a proibição foi mais ampla e valeu para todos os consumidores do país.

No ano ado, a agência julgou necessário prorrogar a medida por mais alguns meses, ao avaliar a permanência de impactos de medidas de isolamento social no setor elétrico.

Segundo os técnicos, algumas medidas adotadas no ano ado mitigaram a evolução do índice de inadimplência dos consumidores.

Apesar disso, ainda há uma preocupação em relação aos efeitos das suspensões, já que o corte de energia elétrica é a principal ferramenta das distribuidoras para conter a inadimplência.