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

José Paulo Kupfer

OPINIÃO

Texto em que o autor apresenta e defende suas ideias e opiniões, a partir da interpretação de fatos e dados.

Inflação já bateu no teto, mas continuará muita alta até meados de 2022

08/10/2021 17h02

Receba os novos posts desta coluna no seu e-mail

Email inválido

A inflação, medida pelo IPCA (Índice de Preços ao Consumidor Amplo), calculado pelo IBGE (Instituto Brasileiro de Geografia e Estatística) bateu recordes em setembro. Com elevação de 1,16%, marcou a inflação mais alta para o mês desde 1994, quando o Plano Real ainda tinha só três meses. Também chegou aos dois dígitos, no acumulado em 12 meses, alcançando 10,25%. A última vez em que o IPCA, em 12 meses, variou acima de 10% foi no período entre novembro de 2015 e fevereiro de 2016.

Mesmo nas alturas, o resultado já trouxe indicações de que o pico da alta de preços, no atual ciclo inflacionário, pode ter ocorrido em setembro. A tendência é de que a variação do IPCA recue a partir de outubro, ainda que permanecendo em níveis muito elevados. Projeções do economista Fabio Romão, experiente especialista em acompanhamento da inflação da LCA Consultores, apontam inflação de 8,72% em 2021 e de 4,54% em 2022, mas acima de 8% pelo menos até o segundo trimestre do ano.

A marcha dos preços em setembro mostrou os primeiros sinais de alívio nas altas dos preços de alimentos. A variação de preços na alimentação no domicílio, em setembro, no acumulado em 12 meses, ficou em 14,7%. A perspectiva é de queda, podendo chegar no fim do ano com alta em torno de 8%.

Houve deflação, no mês ado, por exemplo, no preço da carne bovina. Além do efeito substituição, pelos preços muito altos, ocorreu também uma redução no ritmo de exportações. Com aumento da oferta interna e redução da demanda, os preços se acalmaram, mas ainda lá em cima. O fato mostra que, se o governo tivesse atuado para formar estoques reguladores ou imposto tarifas, para induzir a direção de parte da produção para o mercado interno, a inflação de alimentos poderia ter sido menos virulenta.

Novas pressões inflacionárias, no lugar de alimentos, devem vir agora da elevação de preços no setor de serviços. Em 12 meses, a inflação no setor vem escalando mais forte. Depois de descer a uma alta de apenas 1,6%, em dezembro de 2020, a inflação nos serviços, segundo estimativas, vai a 4,5% em 2021. E pode bater mais de 6%, em meados de 2022, fechando o ano ainda acima de 5%.

A pressão dos serviços tem, claramente, origem nos avanços da vacinação e do consequente afrouxamento das medidas de restrição à mobilidade e de imposição de distanciamento social. Não deixa de ser curioso imaginar que o presidente Jair Bolsonaro, hoje empenhado em repetir a falsa explicação de que o "fique em casa" seria o motivo da fraqueza da atividade econômica e da alta da inflação, possa se sentir impelido a pedir que se fique em casa, para segurar a demanda e evitar alimentar altas nos preços dos serviços.