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

Anvisa proíbe venda de 2 lotes de chocolates Garoto que podem conter vidro

Garoto está recolhendo lotes voluntariamente; barras de 80g dos sabores "Castanhas de Caju" ou "Castanhas de Caju e Uvas as" podem ter sido contaminados - Getty Images/iStockphoto
Garoto está recolhendo lotes voluntariamente; barras de 80g dos sabores 'Castanhas de Caju' ou 'Castanhas de Caju e Uvas as' podem ter sido contaminados Imagem: Getty Images/iStockphoto

Do UOL, em São Paulo

18/10/2022 11h01Atualizada em 18/10/2022 11h51

A Anvisa (Agência Nacional de Vigilância Sanitária) publicou hoje uma resolução que proíbe a venda e distribuição de dois lotes de chocolates da marca Garoto. A suspeita é que eles possam conter pedaços de vidro após um equipamento da fábrica quebrar.

De acordo com a empresa, a maior parte dos lotes afetados não foi comercializado, mas alguns produtos foram distribuídos em Vila Velha (ES) e no estado de Santa Catarina.

A agência foi notificada pela própria Garoto, que começou a recolher as barras voluntariamente.

De acordo com a Anvisa, os fragmentos podem causar lesões na boca ou mucosas.

Com base nos registros da companhia, apenas esses dois lotes mencionados podem ter sido contaminados, e os demais produtos da marca não foram afetados.

Os lotes afetados são:

  • Lote 225212941G: chocolate ao leite com Castanhas de Caju, marca Garoto, tablete 80g, validade 09/09/2023
  • Lote 225312941G: chocolate ao leite com Castanhas de Caju e Uvas as, marca Garoto, tablete 80g, validade 09/09/2023
Lotes de barras de chocolate Garoto dos sabores "Castanha de Caju" e "Castanha de Caju e Uva a" podem ter sido contaminados - Reprodução/Anvisa - Reprodução/Anvisa
Lotes de barras de chocolate Garoto dos sabores "Castanha de Caju" e "Castanha de Caju e Uva a" podem ter sido contaminados
Imagem: Reprodução/Anvisa

Caso você tenha comprado barras dos lotes afetados, a agência alerta para não consumir o produto, guardar a embalagem e entrar em contato com o Serviço ao Consumidor Garoto, pelo telefone 0800 055 95 50, de segunda a sexta, das 8h às 18h, exceto feriados, ou pelo e-mail [email protected] para troca ou reembolso.

Em nota, a Garoto afirmou que a maior parte dos tabletes já foi recolhida pela empresa, e que colabora com as autoridades para recuperar todos os chocolates. "A suspeita da presença de pequenos fragmentos de vidro provém da quebra de um sensor na linha de fabricação, que pode ter tido algum contato com os referidos lotes. A empresa reforça que a qualidade e segurança de seus produtos são prioridades inegociáveis, e que adota rígidos padrões e controles em todas as etapas do processo produtivo e de distribuição", diz o texto.