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

Biscoito de mel sem mel: Nestlé é notificada por suposto anúncio enganoso

Nestlé deverá explicar informações divergentes - Reprodução/CBS
Nestlé deverá explicar informações divergentes Imagem: Reprodução/CBS

Do UOL, em São Paulo

08/06/2022 17h06Atualizada em 09/06/2022 17h15

A Nestlé Brasil foi notificada hoje pela Senacon (Secretaria Nacional do Consumidor), ligada ao ministério da Justiça e Segurança Pública, por suposta propaganda enganosa. A empresa tem 10 dias úteis para explicar rótulos de biscoitos, incluindo os da linha Nesfit.

De acordo com uma denúncia do Idec (Instituto Brasileiro de Defesa do Consumidor), os biscoitos não contêm o mel que é citado nas embalagens. Por isso, a empresa também deverá explicar o uso das imagens utilizadas em relação aos ingredientes dos seguintes produtos: Aveia e Mel; Nesfit Leite e Mel; Nesfit Cookie Cacau, Aveia e Mel; e Nesfit Matinal Mel com Amêndoas.

Ainda de acordo com a Senacon, a empresa tem de "oferecer as informações adequadas aos consumidores, em especial sobre a quantidade de açúcares adicionados e açúcares totais, conforme regulamentação de rotulagem nutricional de alimentos embalados determinada pela Anvisa."

Caso a Nestlé não responda dentro do prazo estabelecido, poderá ser instaurado um processo istrativo contra a empresa. Caso isso ocorra, a defesa terá um prazo para se manifestar e, se condenada, poderá recorrer da decisão.

Em nota enviada ao UOL, a Nestlé afirma que "não recebeu comunicação oficial da Senacon até o momento".

Ainda na nota, a Nestlé afirma que, "em relação aos produtos mencionados, o mel faz alusão ao produto como referência de sabor e as embalagens contém a informação "imagens ilustrativas". A companhia diz também que "cumpre todas as legislações e normas brasileiras em relação aos seus produtos e embalagens."

No ano ado, o Idec enviou denúncia semelhante ao Procon-SP. À época, além da falta do mel, também foram identificados aditivos alimentares do tipo aromatizantes nos produtos e uma alta concentração de açúcares presentes na composição. Os aromatizantes são utilizados com o objetivo de tornar os produtos mais atrativos e hiperpalatáveis.