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

Anfavea fala em risco de paradas de produção por falta de componentes

Eduardo Laguna

São Paulo

07/04/2021 12h57

A Anfavea, entidade que representa a indústria nacional de veículos, alertou nesta quarta-feira ao risco de novas paradas das montadoras nas próximas semanas em razão, principalmente, do quadro de escassez global de componentes eletrônicos. Durante apresentação dos resultados do setor em março, Luiz Carlos Moraes, presidente da Anfavea, disse que a insuficiência de chips usados em sistemas eletrônicos, dado o maior consumo de equipamentos como notebooks e tablets na pandemia combinado à arrancada da produção nas demais indústrias que dependem do insumo, representa um risco maior do que o previsto.

"Existe risco de paradas de produção por falta de componentes, em especial microprocessadores", comentou o executivo. "Pode afetar o setor nas próximas semanas", acrescentou.

Na semana ada, a maioria dos fabricantes de veículos suspendeu a produção em razão do agravamento da pandemia.

Segundo balanço apresentado nesta quarta-feira pela Anfavea, o número de montadoras paradas completa ou parcialmente no Brasil caiu, contudo, de 14 (30 fábricas e 65 mil funcionários) para cinco (dez fábricas e 5,5 mil funcionários) desde o início deste mês.

O presidente da associação considerou, contudo, que, em razão do "momento dramático" da crise sanitária, não pode ser descartada a possibilidade de novas paralisações espontâneas causadas pelo risco de contágio.

Apesar das dificuldades, a Anfavea considerou positivo o balanço do mês ado, quando a produção de veículos no País teve alta de 1,7% na comparação com fevereiro.

Moraes observou que, a despeito dos anúncios de paralisações no fim do mês, algumas montadoras mantiveram um grupo menor de trabalhadores para completar a montagem de veículos atrasados pela falta de peças.

Suficiente agora para 16 dias de venda, a direção da Anfavea considera que o estoque nos pátios de concessionárias e fábricas, um total de 101,1 mil veículos, está em situação de equilíbrio, apesar de reclamações das concessionárias sobre a demora na entrega dos automóveis. Desde o fim do ano ado, disse Moraes, a indústria automotiva vem mantendo o nível de estoque ao redor de 100 mil veículos.