1!function(){try{var r="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},e=(new r.Error).stack;e&&(r._sentryDebugIds=r._sentryDebugIds||{},r._sentryDebugIds[e]="66b74297-96ec-4ea9-a132-850c4478de47",r._sentryDebugIdIdentifier="sentry-dbid-66b74297-96ec-4ea9-a132-850c4478de47")}catch(r){}}();"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8412],{7159:(r,e,o)=>{o.d(e,{C:()=>u});var t=o(98857),a=o(72044),n=o(82862),i=o(87192),s=o(76363);let c="sicompra-cart",l="sicompra-cart-pending-sync";class d{static getInstance(){return d.instance||(d.instance=new d),d.instance}getUserToken(){return t.A.getItem("token")}getCompanyToken(){let r=t.A.getItem("companyToken"),e=t.A.getItem("companyTokenExpiry");if(!r)return null;if(e){let r=new Date(e);if(Number.isFinite(r.getTime())&&new Date>=r)return null}return r}getUserId(){{let e=t.A.getItem("userApp");if(e)try{var r;let o=JSON.parse(e);return(null==(r=o.usuario)?void 0:r.id)||o.id||null}catch(r){console.error("Error parsing userApp:",r)}}return null}async request(r,e){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{method:t="POST"}=o,a=this.getUserToken();if(!a)throw Error("User token not found. User must be authenticated.");try{let o=await fetch("".concat(this.baseUrl).concat(r),{method:t,headers:{"Content-Type":"application/json",...(0,s.c)(),Authorization:"Bearer ".concat(a)},body:JSON.stringify(e)});if(!o.ok)throw Error("HTTP error! status: ".concat(o.status));let n=await o.json();if(void 0!==n.success)return n.success;return n}catch(e){throw console.error("Error in ".concat(r,":"),e),e}}async addRemoveCart(r){return this.request("/api/v1/aplicativo/carrinho",{...r,origem:"site"})}async getCart(r){try{let e=await this.request("/api/v1/aplicativo/carrinho/resumo",{...r,origem:"site"});if(Array.isArray(e))return null;return{itens:e.itens||[],resumo:e.resumo||{subtotal:0,desconto:0,taxa_entrega:0,total:0,quantidade_itens:0},mensagem:e.mensagem,valor_minimo:e.valor_minimo,falta_para_minimo:e.falta_para_minimo}}catch(r){return console.error("Error getting cart:",r),null}}async getCartPreview(r){let e=this.getUserToken(),o=this.getUserId();if(!e)throw Error("User token not found. User must be authenticated.");if(!o)throw Error("User ID not found. User must be authenticated.");let a="https://sicomprasafe.yourintegration.top/api/v1",i=n.companyBaseUrl;if(!a||!i)throw Error("API URLs not configured properly");let c=t.A.getItem("deliveryMethod")||"RE",l={url:i,empr_id:r.empr_id,user_id:o,tipo_entrega:c,origem:"site"};try{let r=await fetch("".concat(a,"/aplicativo/carrinho/previa"),{method:"POST",headers:{"Content-Type":"application/json",...(0,s.c)(),Authorization:"Bearer ".concat(e)},body:JSON.stringify(l)});if(!r.ok)throw Error("HTTP error! status: ".concat(r.status));return await r.json()}catch(r){throw console.error("Error in cart preview:",r),r}}async enrichCartWithProductDetails(r,e){if(!r.itens||0===r.itens.length)return r;let o=r.itens.flatMap(r=>r.produtos).filter(r=>!r.marca||!r.unidade);if(0===o.length)return r;let t=o.map(async r=>{if(this.productDetailsCache.has(r.prod_id))return{prod_id:r.prod_id,details:this.productDetailsCache.get(r.prod_id)};try{let o=await a.jU.getProductDetails({empr_id:e,prod_id:r.prod_id});return this.productDetailsCache.set(r.prod_id,o),{prod_id:r.prod_id,details:o}}catch(e){return console.warn("â ï¸ Could not fetch details for product ".concat(r.prod_id,":"),e),{prod_id:r.prod_id,details:null}}}),n=new Map((await Promise.all(t)).map(r=>[r.prod_id,r.details])),i=r.itens.map(r=>({...r,produtos:r.produtos.map(r=>{var e,o,t,a,i;let s=n.get(r.prod_id);return s?{...r,marca:(null==(e=s.produto)?void 0:e.marca)||(null==(o=s.produto)?void 0:o.brand)||r.marca,unidade:(null==(t=s.produto)?void 0:t.unidade)||(null==(a=s.produto)?void 0:a.unit)||r.unidade,embalagem:(null==(i=s.produto)?void 0:i.embalagem)||r.embalagem,produto:s.produto}:r})}));return{...r,itens:i}}async removeProductFromCart(r){let e=this.getUserToken(),o=this.getUserId();if(!e)throw Error("User token not found. User must be authenticated.");
1if(!o)throw Error("User ID not found. User must be authenticated.");let t="https://sicomprasafe.yourintegration.top/api/v1",a=n.companyBaseUrl;if(!t||!a)throw Error("API URLs not configured properly");let i={url:a,empr_id:r.empr_id,codigo_barras:r.codigo_barras,user_id:o,tipo:"remover",quantidade:r.quantidade,fracionado:r.fracionado||!1,origem:"site"};try{let o=await fetch("".concat(t,"/aplicativo/carrinho"),{method:"POST",headers:{"Content-Type":"application/json",...(0,s.c)(),Authorization:"Bearer ".concat(e)},body:JSON.stringify(i)});if(!o.ok)throw Error("HTTP error! status: ".concat(o.status));let a=await o.json();return this.scheduleCartSync(r.empr_id),a}catch(r){throw console.error("Error removing product from cart:",r),r}}async emptyCartAPI(r){let e=this.getUserToken();if(!e)throw console.error("â Token n\xe3o encontrado para esvaziar carrinho"),Error("User token not found. User must be authenticated.");let o="https://sicomprasafe.yourintegration.top/api/v1";if(!o)throw console.error("â Integration API URL n\xe3o configurada"),Error("Integration API URL not configured properly");try{let t=await fetch("".concat(o,"/aplicativo/carrinho/apagar"),{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer ".concat(e),...(0,s.c)()},body:JSON.stringify({...r,origem:"site"})});if(!t.ok){let r=await t.text();throw console.error("â Erro na resposta da API:",r),Error("HTTP error! status: ".concat(t.status," - ").concat(r))}let a=await t.json();if(a.success||a.mensagem);else if(a.error)throw console.error("â Erro retornado pela API:",a.error),Error(a.error);return a}catch(r){throw console.error("â Erro ao esvaziar carrinho via API:",r),r}}async getProductDisponibilidade(r){var e;let o="https://sicomprasafe.yourintegration.top/api/v1",t=null!=(e=r.url)?e:n.companyBaseUrl;if(!o||!t)throw Error("API URLs not configured properly");let a=this.getUserToken()||this.getCompanyToken();if(!a)throw Error("No auth token found (user token or company token).");let i=await fetch("".concat(o,"/aplicativo/produto/disponibilidade"),{method:"POST",headers:{"Content-Type":"application/json",...(0,s.c)(),Authorization:"Bearer ".concat(a)},body:JSON.stringify({url:t,empr_id:r.empr_id,produtos:r.produtos,origem:"site"})});if(!i.ok){let r=await i.text();throw console.log("[DISP] error body",r),Error("HTTP error! status: ".concat(i.status," - ").concat(r))}return i.json()}debugLocalCart(){let r=t.A.getItem("sicompra-cart");if(r)try{let e=JSON.parse(r);Array.isArray(e)&&e.length}catch(r){console.error("â Error parsing local cart:",r)}}async syncLocalCartToAPI(r){return this.syncInFlight?console.log("\uD83D\uDED2 [CART-SYNC] j\xe1 em andamento â reusando o sync in-flight (chamador aguarda o mesmo)."):this.syncInFlight=this.runSyncLocalCartToAPI(r).finally(()=>{this.syncInFlight=null}),this.syncInFlight}async runSyncLocalCartToAPI(r){let e=t.A.getItem(l),o=l;if(!e&&(e=t.A.getItem(c),o=c,e&&t.A.setItem(l,e)),console.log("\uD83D\uDED2 [CART-SYNC] start",{empr_id:r,sourceKey:o,hasSource:!!e,raw:e}),!e)return void console.log("\uD83D\uDED2 [CART-SYNC] abort: sem itens pendentes nem 'sicompra-cart' (nada a sincronizar).");try{let o=JSON.parse(e);if(!Array.isArray(o)||0===o.length){console.log("\uD83D\uDED2 [CART-SYNC] abort: fonte vazia/inv\xe1lida",o),t.A.removeItem(l);return}console.log("\uD83D\uDED2 [CART-SYNC] ".concat(o.length," item(ns) offline pra sincronizar:"),o.map(r=>({name:r.name,barcode:r.barcode,id:r.id,quantity:r.quantity,packsQuantity:r.packsQuantity,fracionado:r.fracionado})));let n=0,i=0,s=[];for(let e of o)try{var a;let o=e.barcode||(null==(a=e.id)?void 0:a.toString()),t=!e.barcode&&!!e.id,c=e.fracionado?e.packsQuantity||e.quantity:e.quantity||1;if(t&&console.warn('\uD83D\uDED2 [CART-SYNC] â ï¸ "'.concat(e.name,'" SEM barcode â usando id como codigo_barras (').concat(o,"). ")+"A API provavelmente vai rejeitar (item vai pro pending/retry)."),o&&c>0){let t={empr_id:r,codigo_barras:o,quantidade:c,fracionado:e.fracionado||!1,observacao:e.observacao||""};console.log('\uD83D\uDED2 [CART-SYNC] â POST "'.concat(e.name,'"'),t);let a=await this.addToCartAPI(t);console.log('\uD83D\uDED2 [CART-SYNC] â resp "'.concat(e.name,'"'),a),a.success?(n++,console.log('\uD83D\uDED2 [CART-SYNC] â
sincronizado "'.concat(e.name,'"'))):(i++,s.push(e),console.warn('\uD83D\uDED2 [CART-SYNC] â FALHOU "'.concat(e.name,'"
1(response.success falsy) â ')+"fica no pending pra retry. resp completa:",a))}else i++,s.push(e),console.warn('\uD83D\uDED2 [CART-SYNC] â pulado "'.concat(e.name,'": codigo_barras="').concat(o,'", qtd=').concat(c))}catch(r){i++,s.push(e),console.error('\uD83D\uDED2 [CART-SYNC] \uD83D\uDCA5 erro ao sincronizar "'.concat(e.name,'":'),r)}console.log("\uD83D\uDED2 [CART-SYNC] fim do loop",{total:o.length,syncedCount:n,failedCount:i,failedItems:s.map(r=>r.name)}),t.A.removeItem(c),s.length>0?(console.warn("\uD83D\uDED2 [CART-STORAGE] mant\xe9m ".concat(s.length," item(ns) em '").concat(l,"' pra retry (falharam):"),s.map(r=>r.name)),t.A.setItem(l,JSON.stringify(s))):(console.log("\uD83D\uDED2 [CART-STORAGE] merge completo (".concat(n," ok) â removendo '").concat(l,"'.")),t.A.removeItem(l)),document.dispatchEvent(new CustomEvent("cartRefresh"))}catch(r){throw console.error("\uD83D\uDED2 [CART-SYNC] \uD83D\uDCA5 erro geral no sync:",r),document.dispatchEvent(new CustomEvent("cartRefresh")),r}}scheduleCartSync(r){"undefined"!=typeof document&&document.dispatchEvent(new CustomEvent("cartSync",{detail:{companyId:Number(r),debounceMs:2e3}}))}async addToCartAPI(r){let e=this.getUserToken(),o=this.getUserId().toString();if(!e)throw console.error("â Token n\xe3o encontrado"),Error("User token not found. User must be authenticated.");if(!o)throw console.error("â User ID n\xe3o encontrado"),Error("User ID not found. User must be authenticated.");let t="https://sicomprasafe.yourintegration.top/api/v1",a=n.companyBaseUrl;if(!t||!a)throw console.error("â URLs n\xe3o configuradas"),Error("API URLs not configured properly");let i=Number(r.quantidade);
1if(isNaN(i)||i<=0)throw console.error("â Quantidade inv\xe1lida:",r.quantidade),Error("Quantidade deve ser um n\xfamero v\xe1lido maior que zero");let c={url:a,empr_id:r.empr_id,codigo_barras:r.codigo_barras,user_id:o,tipo:"personalizado",quantidade:i,fracionado:r.fracionado||!1,observacao:r.observacao||"",origem:"site"};try{let o=await fetch("".concat(t,"/aplicativo/carrinho"),{method:"POST",keepalive:!0,headers:{"Content-Type":"application/json",...(0,s.c)(),Authorization:"Bearer ".concat(e)},body:JSON.stringify(c)});if(!o.ok){let r=await o.text();throw console.error("â Erro na resposta:",r),Error("HTTP error! status: ".concat(o.status))}let a=await o.json();return a.error?console.error("â Error object:",a.error):this.scheduleCartSync(r.empr_id),a}catch(r){throw console.error("â Erro ao adicionar ao carrinho via API:",r),r}}async removeFromCartAPI(r){let e=this.getUserToken(),o=this.getUserId().toString();if(!e)throw Error("Token n\xe3o encontrado");if(!o)throw Error("User ID n\xe3o encontrado");let t=n.companyBaseUrl,a=Number(r.quantidade);
1if(isNaN(a)||a<=0)throw Error("Quantidade deve ser v\xe1lida");let i={url:t,empr_id:r.empr_id,codigo_barras:r.codigo_barras,user_id:o,tipo:"remove",quantidade:a,fracionado:r.fracionado||!1,observacao:r.observacao||"",origem:"site"},c=await fetch("".concat("https://sicomprasafe.yourintegration.top/api/v1","/aplicativo/carrinho"),{method:"POST",headers:{"Content-Type":"application/json",...(0,s.c)(),Authorization:"Bearer ".concat(e)},body:JSON.stringify(i)});if(!c.ok)throw console.error("Erro:",await c.text()),Error("HTTP error: ".concat(c.status));return c.json()}async updateToCartAPI(r){let e=this.getUserToken(),o=this.getUserId().toString();if(!e)throw Error("Token n\xe3o encontrado");if(!o)throw Error("User ID n\xe3o encontrado");let t=n.companyBaseUrl,a=Number(r.quantidade);if(isNaN(a)||a<0)throw Error("Quantidade deve ser v\xe1lida");let i={url:t,empr_id:r.empr_id,codigo_barras:r.codigo_barras,user_id:o,tipo:"personalizado",quantidade:a,fracionado:r.fracionado||!1,observacao:r.observacao||"",origem:"site"},c=await fetch("".concat("https://sicomprasafe.yourintegration.top/api/v1","/aplicativo/carrinho"),{method:"POST",headers:{"Content-Type":"application/json",...(0,s.c)(),Authorization:"Bearer ".concat(e)},body:JSON.stringify(i)});if(!c.ok)throw console.error("Erro:",await c.text()),Error("HTTP error: ".concat(c.status));return c.json()}async emptyCart(r){await this.request("/api/v1/aplicativo/carrinho/apagar",{...r,origem:"site"})}async getDeliveryScheduleList(r){return(await this.request("/api/v1/aplicativo/carrinho/grade",{...r,origem:"site"})).grades||[]}async selectDeliverySchedule(r){return(await this.request("/api/v1/aplicativo/carrinho/grade/selecionar-horario",{...r,origem:"site"})).updateCart||!1}async toggleCpfOnReceipt(r){await this.request("/api/v1/aplicativo/usuario/perfil/cpf-nota",{...r,origem:"site"})}async addToCart(r,e){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return this.addRemoveCart({empr_id:r,prod_id:e,quantidade:o,operacao:"adicionar"})}async removeFromCart(r,e){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return this.addRemoveCart({empr_id:r,prod_id:e,quantidade:o,operacao:"remover"})}async removeAllProductsFromCart(r){let e=this.getUserToken(),o=this.getUserId();if(!e)throw Error("User token not found. User must be authenticated.");if(!o)throw Error("User ID not found. User must be authenticated.");let t="https://sicomprasafe.yourintegration.top/api/v1",a=n.companyBaseUrl;if(!t||!a)throw Error("API URLs not configured properly");try{let n=await this.getCartSummary({empr_id:r});if(!n||!n.itens||0===n.itens.length)return void console.log("â
Carrinho j\xe1 est\xe1 vazio");let i={url:a,pedido_id:n.pedido_id,empr_id:r,user_id:String(o),origem:"site"},c=await fetch("".concat(t,"/aplicativo/carrinho/apagar"),{method:"POST",headers:{"Content-Type":"application/json",...(0,s.c)(),Authorization:"Bearer ".concat(e)},body:JSON.stringify(i)});if(!c.ok){let r=await c.text();throw console.error("â Erro na resposta:",r),Error("HTTP error! status: ".concat(c.status))}let l=await c.json();if(l.success||l.mensagem);else if(l.error)throw console.error("â Erro retornado pela API:",l.error),Error(l.error)}catch(r){throw console.error("â Erro ao limpar carrinho:",r),r}}async updateCartItem(r,e,o){return this.addRemoveCart({empr_id:r,prod_id:e,quantidade:o,operacao:"atualizar"})}async updateCartItemCustomQuantity(r){let e=this.getUserToken(),o=this.getUserId();if(!e)throw Error("User token not found. User must be authenticated.");if(!o)throw Error("User ID not found. User must be authenticated.");let t="https://sicomprasafe.yourintegration.top/api/v1",a=n.companyBaseUrl;if(!t||!a)throw Error("API URLs not configured properly");let c=Number(r.quantidade);
1if(isNaN(c)||c<0)throw Error("Quantidade deve ser um n\xfamero v\xe1lido maior ou igual a zero");let l=r.fracionado?Number(r.fracao)||1:void 0,d={url:a,empr_id:r.empr_id,codigo_barras:r.codigo_barras,user_id:String(o),tipo:"personalizado",quantidade:c,fracionado:r.fracionado||!1,observacao:r.observacao||"",origem:"site",...void 0!==l&&{fracao:l}};(0,i.kz)({empr_id:r.empr_id,codigo_barras:r.codigo_barras,quantidade:c,fracionado:r.fracionado||!1,observacao:r.observacao||""});try{let o=await fetch("".concat(t,"/aplicativo/carrinho"),{method:"POST",keepalive:!0,headers:{"Content-Type":"application/json",...(0,s.c)(),Authorization:"Bearer ".concat(e)},body:JSON.stringify(d)});if(!o.ok){let r=await o.text();throw Error("HTTP error! status: ".concat(o.status," - ").concat(r))}let a=await o.json();return(null==a?void 0:a.success)&&(0,i.W)(r.empr_id,r.codigo_barras),this.scheduleCartSync(r.empr_id),a}catch(r){throw console.error("â Erro ao atualizar quantidade personalizada:",r),r}}async getNextDeliverySlot(r){let e=this.getUserToken();if(!e)return null;let o="https://sicomprasafe.yourintegration.top/api/v1",t=n.companyBaseUrl;if(!o||!t)return console.error("â API URLs not configured properly"),null;let a={url:t,empr_id:r.empr_id,origem:"site",...r.tipo_entrega&&{tipo_entrega:r.tipo_entrega}};try{let r=await fetch("".concat(o,"/aplicativo/carrinho/grade/proxima-grade-entrega"),{method:"POST",headers:{"Content-Type":"application/json",...(0,s.c)(),Authorization:"Bearer ".concat(e)},body:JSON.stringify(a)});if(!r.ok)return console.warn("â ï¸ Erro ao buscar pr\xf3xima entrega: ".concat(r.status)),null;return await r.json()}catch(r){return console.error("â Erro ao buscar pr\xf3xima entrega:",r),null}}async getVendedores(r){let e=this.getUserToken();if(!e)throw Error("User token not found.");let o="https://sicomprasafe.yourintegration.top/api/v1",t=n.companyBaseUrl;if(!o||!t)throw Error("API URLs not configured properly");let a=await fetch("".concat(o,"/aplicativo/vendedores"),{method:"POST",headers:{"Content-Type":"application/json",...(0,s.c)(),Authorization:"Bearer ".concat(e)},body:JSON.stringify({url:t,empr_id:r,origem:"site"})});if(!a.ok)throw Error("HTTP ".concat(a.status));return a.json()}async requestOrcamento(r){let e=this.getUserToken();if(!e)throw Error("User token not found.");let o="https://sicomprasafe.yourintegration.top/api/v1";if(!o)throw Error("API URLs not configured properly");let t=await fetch("".concat(o,"/aplicativo/orcamento"),{method:"POST",headers:{"Content-Type":"application/json",...(0,s.c)(),Authorization:"Bearer ".concat(e)},body:JSON.stringify({numero_pedido:String(r.numero_pedido),vendedor_id:String(r.vendedor_id),origem:"site"})});if(!t.ok)throw Error("HTTP ".concat(t.status));return t.json()}constructor(){this.syncInFlight=null,this.productDetailsCache=new Map,this.getCartSummaryPromises=new Map,this.getCartSummary=r=>{let e=t.A.getItem("deliveryMethod")||"RE",o="".concat(r.empr_id,":").concat(e),a=this.getCartSummaryPromises.get(o);if(a)return a;let i=(async()=>{let e=this.getUserToken(),o=this.getUserId(),a="https://sicomprasafe.yourintegration.top/api/v1",i=n.companyBaseUrl;if(!e||!o)throw Error("User must be authenticated.");if(!a||!i)throw Error("API URLs not configured properly");let c=t.A.getItem("deliveryMethod")||"RE",l={url:i,empr_id:r.empr_id,user_id:o,informacoes_produto:!0,tipo_entrega:c,primeira_tela_carrinho:!1,estimativa_entrega:!0,origem:"site"},d=await fetch("".concat(a,"/aplicativo/carrinho/resumo"),{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer ".concat(e),...(0,s.c)()},body:JSON.stringify(l)});if(!d.ok){let r=await d.text(),e="Erro ".concat(d.status);try{let o=JSON.parse(r);e=(null==o?void 0:o.error)||(null==o?void 0:o.message)||(null==o?void 0:o.mensagem)||e}catch(o){r&&(e=r)}throw Error(e)}return d.json()})();return this.getCartSummaryPromises.set(o,i),i.finally(()=>{this.getCartSummaryPromises.get(o)===i&&this.getCartSummaryPromises.delete(o)}),i},this.baseUrl=n.companyBaseUrl||"http://localhost:3001/api"}}let u=d.getInstance()},28412:(r,e,o)=>{o.d(e,{J:()=>h,P:()=>g});var t=o(95155),a=o(12115),n=o(38388),i=o(7159),s=o(98857);let c="sicompra_products_cache",l={get(){try{let r=s.A.getItem(c);if(!r)return null;let e=JSON.parse(r);if(Date.now()-e.timestamp>3e5)return s.A.removeItem(c),null;return e}catch(r){return console.error("Erro ao ler cache:",r),null}},set(r,e){try{let o={products:r,productGroups:e,timestamp:Date.now()};s.A.setItem(c,JSON.stringify(o))}catch(r){console.error("Erro ao salvar cache:",r)}},clear(){try{s.A.removeItem(c)}catch(r){console.error("Erro ao limpar cache:",r)}}};var d=o(82862),u=o(76363),p=o(33714);let m=(0,a.createContext)({});function h(r){let{children:e}=r,[o,c]=(0,a.useState)(!1),[h,g]=(0,a.useState)(!0),[v,f]=(0,a.useState)(null),[y,_]=(0,a.useState)(null),[w,E]=(0,a.useState)(null),[b,T]=(0,a.useState)(null),[A,I]=(0,a.useState)(null),[S,C]=(0,a.useState)(null),[k,P]=(0,a.useState)([]),[U,N]=(0,a.useState)(null),[D,j]=(0,a.useState)(null),[O,B]=(0,a.useState)(!1),[R,z]=(0,a.useState)(0),[x,q]=(0,a.useState)([]),[J,L]=(0,a.useState)([]),[F,H]=(0,a.useState)(!0),[M,V]=(0,a.useState)(null),Y=(0,a.useRef)(null),W=r=>{if(T(r),r){var e,o,t;s.A.setItem("selectedCompanyData",JSON.stringify(r)),s.A.setItem("selectedCompanyId",(null==(t=r.empresa)||null==(o=t.empresa)||null==(e=o.empr_id)?void 0:e.toString())||"")}else s.A.removeItem("selectedCompanyData"),s.A.removeItem("selectedCompanyId")},G=r=>{_(r.data),E(null),I(null),C(null),P([]),q([]),L([]),c(!1),f(null),l.clear()},Q=async function(){let r=!(arguments.length>0)||void 0===arguments[0]||arguments[0];try{var e,o,t,a,i,s;g(!0),f(null),l.get(),l.clear();let d=n.B.getToken();if(d||(await n.B.login(),d=n.B.getToken()),!d)throw Error("Falha na autentica\xe7\xe3o da empresa");let u=await n.B.getCompanyParameters();if(_(null),E(u),!r){c(!0),g(!1);return}let p=(null==u||null==(o=u.success)||null==(e=o.empresa)?void 0:e.empr_id)||(null==u||null==(t=u.empresa)?void 0:t.empr_id)||(null==u?void 0:u.empr_id);if(!p)throw Error("ID da empresa n\xe3o encontrado nos par\xe2metros");let m=await n.B.getVitrineProductsComplete(p);if(P([]),m){if(m.agrupamentos){let r=[],e=[];m.agrupamentos.forEach(o=>{let t=[];
1o.produtos&&Array.isArray(o.produtos)&&o.produtos.forEach(e=>{var a,n,i,s,c,l,d,u,p,m,h,g,v,f,y,_,w,E;let b=parseFloat((null==(a=e.preco)?void 0:a.prva_preco_oferta)||"0"),T=parseFloat((null==(n=e.preco)?void 0:n.prva_prod_preco)||"0"),A=b>0?b:T,I={id:(null==(i=e.produto)?void 0:i.prod_id)||e.id,prod_id:(null==(s=e.produto)?void 0:s.prod_id)||e.id,name:(null==(c=e.produto)?void 0:c.prod_descricao)||"Produto sem nome",prod_desc_pdv:(null==(l=e.produto)?void 0:l.prod_descricao)||"",prod_desc_resumida:(null==(d=e.produto)?void 0:d.prod_descricao)||"",brand:(null==(u=e.produto)?void 0:u.prod_marca)||"",marca:(null==(p=e.produto)?void 0:p.prod_marca)||"",description:(null==(m=e.produto)?void 0:m.prod_descricao)||"",price:A,preco_venda:A,originalPrice:T,preco_promocao:T,image:(null==(h=e.produto)?void 0:h.prod_imagem)||"",img_p:(null==(g=e.produto)?void 0:g.prod_imagem)||"",category:o.nome,grupo:o.nome,unit:(null==(v=e.embalagem)?void 0:v.emb_abreviacao)||"UN",unidade:(null==(f=e.embalagem)?void 0:f.emb_abreviacao)||"UN",codBarras:(null==(y=e.produto)?void 0:y.prod_codBarras)||(null==(_=e.preco)?void 0:_.prva_prod_codBarras)||"",desconto:(null==(w=e.preco)?void 0:w.prva_percentual_desconto_oferta)||0,favorito:e.favorito||!1,embalagem_descricao:(null==(E=e.embalagem)?void 0:E.emb_descricao)||"",produto:e.produto,preco:e.preco,embalagem:e.embalagem,parametros:e.parametros,dados:e.dados,seo:e.seo,link_compartilhamento:e.link_compartilhamento,desconto_progressivo:e.desconto_progressivo};r.push(I),t.push(I)}),t.length>0&&e.push({nome:o.nome,especifico:o.especifico,imagem:o.imagem,banners:o.banners,produtos:t})}),I(r),C(e);let o=e.map(r=>r.nome);P(o)}q(null!=(i=m.kits)?i:[]),L(null!=(s=null==(a=m.logomarcas)?void 0:a.LGT)?s:[])}c(!0)}catch(r){if(r instanceof p.o)return void G(r);console.error("â Erro no carregamento otimizado:",r),f(r instanceof Error?r.message:"Erro ao carregar dados"),c(!1)}finally{g(!1)}},X=async()=>{try{var r,e,o;if(!w)return;let t=await n.B.getCompanyParameters();_(null),E(t);let a=(null==t||null==(e=t.success)||null==(r=e.empresa)?void 0:r.empr_id)||(null==t||null==(o=t.empresa)?void 0:o.empr_id)||(null==t?void 0:t.empr_id);if(!a)return void console.error("empr_id n\xe3o encontrado nos par\xe2metros");let i=await n.B.getVitrineProductsComplete(a);if(P([]),i&&i.agrupamentos){let r=[],e=[];i.agrupamentos.forEach(o=>{let t=[];o.produtos&&Array.isArray(o.produtos)&&o.produtos.forEach(e=>{var a,n,i,s,c,l,d,u,p,m,h,g,v,f,y,_,w,E;let b=parseFloat((null==(a=e.preco)?void 0:a.prva_preco_oferta)||"0"),T=parseFloat((null==(n=e.preco)?void 0:n.prva_prod_preco)||"0"),A=b>0?b:T,I={id:(null==(i=e.produto)?void 0:i.prod_id)||e.id,prod_id:(null==(s=e.produto)?void 0:s.prod_id)||e.id,name:(null==(c=e.produto)?void 0:c.prod_descricao)||"Produto sem nome",prod_desc_pdv:(null==(l=e.produto)?void 0:l.prod_descricao)||"",prod_desc_resumida:(null==(d=e.produto)?void 0:d.prod_descricao)||"",brand:(null==(u=e.produto)?void 0:u.prod_marca)||"",marca:(null==(p=e.produto)?void 0:p.prod_marca)||"",description:(null==(m=e.produto)?void 0:m.prod_descricao)||"",price:A,preco_venda:A,originalPrice:T,preco_promocao:T,image:(null==(h=e.produto)?void 0:h.prod_imagem)||"",img_p:(null==(g=e.produto)?void 0:g.prod_imagem)||"",category:o.nome,grupo:o.nome,unit:(null==(v=e.embalagem)?void 0:v.emb_abreviacao)||"UN",unidade:(null==(f=e.embalagem)?void 0:f.emb_abreviacao)||"UN",codBarras:(null==(y=e.produto)?void 0:y.prod_codBarras)||(null==(_=e.preco)?void 0:_.prva_prod_codBarras)||"",desconto:(null==(w=e.preco)?void 0:w.prva_percentual_desconto_oferta)||0,favorito:e.favorito||!1,embalagem_descricao:(null==(E=e.embalagem)?void 0:E.emb_descricao)||"",produto:e.produto,preco:e.preco,embalagem:e.embalagem,parametros:e.parametros,dados:e.dados,seo:e.seo,link_compartilhamento:e.link_compartilhamento,desconto_progressivo:e.desconto_progressivo};r.push(I),t.push(I)}),t.length>0&&e.push({nome:o.nome,especifico:o.especifico,imagem:o.imagem,banners:o.banners,produtos:t})}),I(r),C(e);let o=e.map(r=>r.nome);P(o)}}catch(r){if(r instanceof p.o)return void G(r);console.error("Erro ao atualizar produtos:",r)}},$=async r=>{var e,o,t,a;try{Y.current&&Y.current.abort();let a=new AbortController;Y.current=a,l.clear(),I(null),C(null),P([]),H(!0),V(r),g(!0);let i=await n.B.getVitrineProductsComplete(r);if(a.signal.aborted)return;if(q(null!=(o=null==i?void 0:i.kits)?o:[]),L(null!=(t=null==i||null==(e=i.logomarcas)?void 0:e.LGT)?t:[]),i&&i.agrupamentos){let r=[],e=[];i.agrupamentos.forEach(o=>{let t=[];
1o.produtos&&Array.isArray(o.produtos)&&o.produtos.forEach(e=>{var a,n,i,s,c,l,d,u,p,m,h,g,v,f,y,_,w,E;let b=parseFloat((null==(a=e.preco)?void 0:a.prva_preco_oferta)||"0"),T=parseFloat((null==(n=e.preco)?void 0:n.prva_prod_preco)||"0"),A=b>0?b:T,I={id:(null==(i=e.produto)?void 0:i.prod_id)||e.id,prod_id:(null==(s=e.produto)?void 0:s.prod_id)||e.id,name:(null==(c=e.produto)?void 0:c.prod_descricao)||"Produto sem nome",prod_desc_pdv:(null==(l=e.produto)?void 0:l.prod_descricao)||"",prod_desc_resumida:(null==(d=e.produto)?void 0:d.prod_descricao)||"",brand:(null==(u=e.produto)?void 0:u.prod_marca)||"",marca:(null==(p=e.produto)?void 0:p.prod_marca)||"",description:(null==(m=e.produto)?void 0:m.prod_descricao)||"",price:A,preco_venda:A,originalPrice:T,preco_promocao:T,image:(null==(h=e.produto)?void 0:h.prod_imagem)||"",img_p:(null==(g=e.produto)?void 0:g.prod_imagem)||"",category:o.nome,grupo:o.nome,unit:(null==(v=e.embalagem)?void 0:v.emb_abreviacao)||"UN",unidade:(null==(f=e.embalagem)?void 0:f.emb_abreviacao)||"UN",codBarras:(null==(y=e.produto)?void 0:y.prod_codBarras)||(null==(_=e.preco)?void 0:_.prva_prod_codBarras)||"",desconto:(null==(w=e.preco)?void 0:w.prva_percentual_desconto_oferta)||0,favorito:e.favorito||!1,embalagem_descricao:(null==(E=e.embalagem)?void 0:E.emb_descricao)||"",produto:e.produto,preco:e.preco,embalagem:e.embalagem,parametros:e.parametros,dados:e.dados,seo:e.seo,link_compartilhamento:e.link_compartilhamento,desconto_progressivo:e.desconto_progressivo};r.push(I),t.push(I)}),t.length>0&&e.push({nome:o.nome,especifico:o.especifico,imagem:o.imagem,banners:o.banners,produtos:t})}),I(r),C(e);let o=e.map(r=>r.nome);P(o),z(r=>r+1)}else console.warn("â ï¸ API retornou vazio ou sem agrupamentos")}catch(r){if("AbortError"===r.name)return;if(r instanceof p.o)return void G(r);console.error("â Erro ao atualizar produtos para a loja:",r)}finally{(null==(a=Y.current)?void 0:a.signal.aborted)===!1&&(g(!1),Y.current=null)}},K=async r=>{try{if(0===k.length)return void H(!1);let e=await n.B.getVitrineProductsWithExclusions(r,k);if(e&&e.agrupamentos){let r=[],o=[];if(e.agrupamentos.forEach(e=>{let t=[];e.produtos&&Array.isArray(e.produtos)&&e.produtos.forEach(o=>{var a,n,i,s,c,l,d,u,p,m,h,g,v,f,y,_,w,E;let b=parseFloat((null==(a=o.preco)?void 0:a.prva_preco_oferta)||"0"),T=parseFloat((null==(n=o.preco)?void 0:n.prva_prod_preco)||"0"),A=b>0?b:T,I={id:(null==(i=o.produto)?void 0:i.prod_id)||o.id,prod_id:(null==(s=o.produto)?void 0:s.prod_id)||o.id,name:(null==(c=o.produto)?void 0:c.prod_descricao)||"Produto sem nome",prod_desc_pdv:(null==(l=o.produto)?void 0:l.prod_descricao)||"",prod_desc_resumida:(null==(d=o.produto)?void 0:d.prod_descricao)||"",brand:(null==(u=o.produto)?void 0:u.prod_marca)||"",marca:(null==(p=o.produto)?void 0:p.prod_marca)||"",description:(null==(m=o.produto)?void 0:m.prod_descricao)||"",price:A,preco_venda:A,originalPrice:T,preco_promocao:T,image:(null==(h=o.produto)?void 0:h.prod_imagem)||"",img_p:(null==(g=o.produto)?void 0:g.prod_imagem)||"",category:e.nome,grupo:e.nome,unit:(null==(v=o.embalagem)?void 0:v.emb_abreviacao)||"UN",unidade:(null==(f=o.embalagem)?void 0:f.emb_abreviacao)||"UN",codBarras:(null==(y=o.produto)?void 0:y.prod_codBarras)||(null==(_=o.preco)?void 0:_.prva_prod_codBarras)||"",desconto:(null==(w=o.preco)?void 0:w.prva_percentual_desconto_oferta)||0,favorito:o.favorito||!1,embalagem_descricao:(null==(E=o.embalagem)?void 0:E.emb_descricao)||"",produto:o.produto,preco:o.preco,embalagem:o.embalagem,parametros:o.parametros,dados:o.dados,seo:o.seo,link_compartilhamento:o.link_compartilhamento,desconto_progressivo:o.desconto_progressivo};r.push(I),t.push(I)}),t.length>0&&o.push({nome:e.nome,especifico:e.especifico,imagem:e.imagem,banners:e.banners,produtos:t})}),o.length>0){let e=A||[],t=S||[];I([...e,...r]),C([...t,...o]);let a=o.map(r=>r.nome);P([...k,...a])}else H(!1)}else H(!1)}catch(r){if(r instanceof p.o)return void G(r);console.error("â Erro ao carregar mais grupos:",r),H(!1)}},Z=async function(r){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"delivery";try{let o=s.A.getItem("userApp"),t=s.A.getItem("token");if(!o||!t)return;let a=await i.C.getCartPreview({empr_id:r,tipo_entrega:"delivery"===e?"delivery":"retirada"});N(a)}catch(r){console.error("Error getting cart preview:",r)}},rr=async r=>{try{var e;let o=await (null==(e=n.B.getLastIntegration)?void 0:e.call(n.B,r.toString()));if(o){j(o);let r=new Date,e=new Date(o),t=(r.getTime()-e.getTime())/6e4;B(t>=2)}}catch(r){console.error("Error getting last integration:",r)}},re=async()=>{let r=s.A.getItem("selectedStoreId");r&&O&&await Promise.all([Z(parseInt(r)),X(),rr(parseInt(r))])},ro=async r=>{try{let e=n.B.getToken();if(!e)throw Error("Token de autentica\xe7\xe3o n\xe3o encontrado");let o=d.companyBaseUrl;if(!o)throw Error("URL da empresa n\xe3o configurada");let t="https://sicomprasafe.yourintegration.top/api/v1";if(!t)throw Error("URL da API de integra\xe7\xe3o n\xe3o configurada");let a=await fetch("".concat(t,"/aplicativo/empresa/selecionada"),{method:"POST",headers:{"Content-Type":"application/json",...(0,u.c)(),Authorization:"Bearer ".concat(e)},body:JSON.stringify({url:o,empr_id:r,origem:"site"})});if(!a.ok)throw Error("Erro ao buscar empresa selecionada: ".concat(a.status));return await a.json()}catch(r){throw console.error("Erro ao buscar empresa selecionada:",r),r}};return(0,a.useEffect)(()=>((async()=>{try{let o=s.A.getItem("selectedCompanyData");if(o){var r,e;let t=JSON.parse(o),a=null==t||null==(e=t.empresa)||null==(r=e.empresa)?void 0:r.empr_id;T(t),a?(await Q(!1),await $(a)):await Q(!0)}else await Q(!0)}catch(r){console.error("â Erro ao carregar empresa selecionada:",r),s.A.removeItem("selectedCompanyData"),s.A.removeItem("selectedCompanyId"),await Q(!0)}})(),window.debugCompany=()=>{let r=s.A.getItem("selectedCompanyData"),e=s.A.getItem("selectedCompanyId");if(console.group("\uD83D\uDD0D DEBUG - Estado da Empresa"),r){var o,t,a,n,i,c;let s=JSON.parse(r);console.log("â
EMPRESA SELECIONADA ATIVA"),console.table({"Nome da Empresa":null==s||null==(t=s.empresa)||null==(o=t.empresa)?void 0:o.empr_nomeFantasia,"Valor M\xednimo Entrega":null==s||null==(n=s.empresa)||null==(a=n.parametros)?void 0:a.empa_valor_minimo_entrega,"Valor M\xednimo Retira":null==s||null==(c=s.empresa)||null==(i=c.parametros)?void 0:i.empa_valor_minimo_retira,"ID no localStorage":e})}else console.log("â NENHUMA EMPRESA SELECIONADA"),console.log("Sistema usando par\xe2metros da empresa padr\xe3o");console.groupEnd()},window.clearSelectedCompany=()=>{s.A.removeItem("selectedCompanyData"),s.A.removeItem("selectedCompanyId"),console.log("\uD83D\uDDD1ï¸ Empresa selecionada limpa! Recarregue a p\xe1gina para aplicar.")},()=>{Y.current&&Y.current.abort()}),[]),(0,a.useEffect)(()=>{let r=async()=>{g(!0),I(null),C(null),s.A.removeItem("selectedCompanyData"),s.A.removeItem("selectedCompanyId"),s.A.removeItem("selectedStoreId"),s.A.removeItem("selectedStore"),s.A.removeItem("deliveryMethod"),l.clear(),z(r=>r+1),await Q(!0)},e=async()=>{sessionStorage.getItem("redirectAfterLogin")||(g(!0),I(null),C(null),l.clear(),z(r=>r+1),await Q(!0))},o=async r=>{"token"===r.key&&(!r.newValue&&r.oldValue?(g(!0),I(null),C(null),l.clear(),z(r=>r+1),await Q(!0)):r.newValue&&!r.oldValue&&(g(!0),I(null),C(null),l.clear(),z(r=>r+1),await Q(!0)))};return window.addEventListener("auth:logout",r),window.addEventListener("auth:login",e),window.addEventListener("storage",o),()=>{window.removeEventListener("auth:logout",r),window.removeEventListener("auth:login",e),window.removeEventListener("storage",o)}},[]),(0,t.jsx)(m.Provider,{value:{isCompanyAuthenticated:o,isLoading:h,error:v,storeAvailabilityError:y,companyParameters:w,selectedCompanyData:b,products:A,productGroups:S,loadedGroupNames:k,cartPreview:U,lastIntegration:D,c
1anIntegration:O,refreshKey:R,authenticateCompany:Q,refreshProducts:X,refreshProductsForStore:$,loadMoreGroups:K,hasMoreGroups:F,getCartPreview:Z,getLastIntegration:rr,updateHomeBackground:re,getCompanySelected:ro,setSelectedCompanyData:W,clearSelectedCompany:()=>{W(null)},setRefreshKey:z,showcaseKits:x,showcaseBrands:J},children:e})}function g(){let r=(0,a.useContext)(m);if(!r)throw Error("useCompany deve ser usado dentro de um CompanyProvider");return r}},33714:(r,e,o)=>{o.d(e,{E:()=>n,o:()=>i});let t={loja_fechada:{mensagem:{titulo:"Oops, loja fechada",subtitulo:"Esta loja n\xe3o est\xe1 dispon\xedvel no momento."},imagem:"https://storage.googleapis.com/sicompra-files/img/not_found/loja_fechada.png"},loja_inativa:{mensagem:{titulo:"Oops, loja inativa",subtitulo:"Esta loja n\xe3o est\xe1 dispon\xedvel no momento."},imagem:"https://storage.googleapis.com/sicompra-files/img/not_found/loja_inativa.png"},loja_manutencao:{mensagem:{titulo:"Oops, loja em manuten\xe7\xe3o",subtitulo:"Esta loja est\xe1 temporariamente indispon\xedvel."},imagem:"https://storage.googleapis.com/sicompra-files/img/not_found/loja_manutencao.png"}},a=r=>"string"==typeof r&&r.trim()?r.trim():null;function n(r){let e;if(!r||"object"!=typeof r||"erro_loja"!==r.erro||"loja_fechada"!==(e=r.status)&&"loja_inativa"!==e&&"loja_manutencao"!==e)return null;let o=t[r.status],n=r.mensagem&&"object"==typeof r.mensagem?r.mensagem:{},i=a(r.email)||"";return{erro:"erro_loja",status:r.status,mensagem:{titulo:a(n.titulo)||o.mensagem.titulo,subtitulo:a(n.subtitulo)||(i?"Entre em contato no e-mail ".concat(i," para mais detalhes."):o.mensagem.subtitulo)},email:i,imagem:a(r.imagem)||o.imagem}}class i extends Error{constructor(r){super(r.mensagem.titulo),this.name="StoreUnavailableError",this.data=r}}},38388:(r,e,o)=>{o.d(e,{B:()=>c});var t=o(98857),a=o(82862),n=o(76363),i=o(33714);class s{static getInstance(){return s.instance||(s.instance=new s),s.instance}async login(){try{let r=await fetch("/api/company-login",{method:"POST",headers:{Accept:"application/json"}});if(!r.ok){let e=await r.text();throw console.error("Erro na resposta:",e),Error("Falha na autentica\xe7\xe3o da empresa")}let e=await r.json();if(e.error)throw Error(e.error);return this.companyToken=e.token,this.tokenExpiry=new Date(Date.now()+1e3*e.expires_in),t.A.setItem("companyToken",e.token),t.A.setItem("companyTokenExpiry",this.tokenExpiry.toISOString()),e}catch(r){throw console.error("Erro ao fazer login da empresa:",r),r}}getToken(){if(this.companyToken&&this.tokenExpiry&&new Date<this.tokenExpiry)return this.companyToken;{let r=t.A.getItem("companyToken"),e=t.A.getItem("companyTokenExpiry");if(r&&e){let o=new Date(e);if(new Date<o)return this.companyToken=r,this.tokenExpiry=o,r}}return this.clearToken(),null}clearToken(){this.companyToken=null,this.tokenExpiry=null,t.A.removeItem("companyToken"),t.A.removeItem("companyTokenExpiry")}isAuthenticated(){return null!==this.getToken()}async authenticatedFetch(r){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=this.getToken();if(!o)throw console.error("Token n\xe3o dispon\xedvel para requisi\xe7\xe3o autenticada"),Error("Token da empresa n\xe3o dispon\xedvel");return fetch(r,{...e,headers:{...e.headers,Authorization:"Bearer ".concat(o)}})}async getProducts(){try{let r=await this.authenticatedFetch("".concat("https://sicomprasafe.yourintegration.top/api/v1","/products"));if(!r.ok)throw Error("Erro ao buscar produtos");return r.json()}catch(r){throw console.error("Erro ao buscar produtos:",r),r}}async getProductImages(r){try{let e=await this.authenticatedFetch("".concat("https://sicomprasafe.yourintegration.top/api/v1","/products/").concat(r,"/images"));if(!e.ok)throw Error("Erro ao buscar imagens do produto");return e.json()}catch(r){throw console.error("Erro ao buscar imagens:",r),r}}async getCompanyInfo(){try{let r=await this.authenticatedFetch("".concat("https://sicomprasafe.yourintegration.top/api/v1","/company/info"));if(!r.ok)throw Error("Erro ao buscar informa\xe7\xf5es da empresa");return r.json()}catch(r){throw console.error("Erro ao buscar informa\xe7\xf5es da empresa:",r),r}}async getCompanyParameters(){try{let r=a.companyBaseUrl;if(!r)throw Error("URL da empresa n\xe3o configurada");let e=await this.authenticatedFetch("".concat("https://sicomprasafe.yourintegration.top/api/v1","/aplicativo/parametros/empresa"),{method:"POST",headers:{"Content-Type":"application/json",...(0,n.c)()},body:JSON.stringify({url:r,origem:"site"})}),o=await e.json().catch(()=>null),t=(0,i.E)(o);if(t)throw new i.o(t);if(!e.ok)throw console.error("Erro ao buscar par\xe2metros:",o),Error("Erro ao buscar par\xe2metros da empresa");return o}catch(r){throw console.error("Erro ao buscar par\xe2metros da empresa:",r),r}}async getVitrineProductsComplete(r){try{return await this.getVitrineProducts(r)}catch(r){throw console.error("Erro ao buscar produtos da vitrine:",r),r}}async getVitrineProductsWithExclusions(r,e){try{return await this.getVitrineProducts(r,e)}catch(r){throw console.error("Erro ao buscar produtos da vitrine com exclus\xf5es:",r),r}}async getVitrineProducts(r){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];try{let o=a.companyBaseUrl;if(!o)throw Error("URL da empresa n\xe3o configurada");let s=null;{let r=t.A.getItem("token");s=r||this.getToken()}if(!s)throw console.error("Token n\xe3o dispon\xedvel para requisi\xe7\xe3o autenticada"),Error("Token n\xe3o dispon\xedvel");let c=t.A.getItem("selectedCompanyId"),l=null!=c?c:String(r);c||t.A.setItem("selectedCompanyId",l);let d=await fetch("".concat("https://sicomprasafe.yourintegration.top/api/v1","/aplicativo/produto/vitrine"),{method:"POST",headers:{"Content-Type":"application/json",...(0,n.c)(),Authorization:"Bearer ".concat(s)},body:JSON.stringify({url:o,empr_id:l,eans_desconsiderar:[],agrupamentos_desconsiderar:e,origem:"site"})}),u=await d.json().catch(()=>null),p=(0,i.E)(u);if(p)throw new i.o(p);if(!d.ok)throw console.error("Erro ao buscar produtos:",u),Error("Erro ao buscar produtos da vitrine");return u}catch(r){throw console.error("Erro ao buscar produtos da vitrine:",r),r}}async getSelectedCompany(r){try{let e=a.companyBaseUrl;if(!e)throw Error("URL da empresa n\xe3o configurada");let o=await this.authenticatedFetch("".concat("https://sicomprasafe.yourintegration.top/api/v1","/aplicativo/empresa/selecionada"),{method:"POST",headers:{"Content-Type":"application/json",...(0,n.c)()},body:JSON.stringify({url:e,empr_id:r,origem:"site"})});if(!o.ok){let r=await o.text();throw console.error("Erro ao buscar empresa selecionada:",r),Error("Erro ao buscar dados da empresa selecionada")}return await o.json()}catch(r){throw console.error("Erro ao buscar empresa selecionada:",r),r}}async getCompanyGroup(r){try{let e=a.companyBaseUrl;if(!e)throw Error("URL da empresa n\xe3o configurada");let o=await this.authenticatedFetch("".concat("https://sicomprasafe.yourintegration.top/api/v1","/aplicativo/empresa/grupo"),{method:"POST",headers:{"Content-Type":"application/json",...(0,n.c)()},body:JSON.stringify({url:e,empr_id:parseInt(r.toString()),origem:"site"})});if(!o.ok){let r=await o.text();throw console.error("Erro ao buscar lojas do grupo:",r),Error("Erro ao buscar lojas do grupo da empresa")}return await o.json()}catch(r){throw console.error("Erro ao buscar lojas do grupo:",r),r}}async getProductsByGrouping(r,e){try{let o=a.companyBaseUrl;if(!o)throw Error("URL da empresa n\xe3o configurada");let t=await this.authenticatedFetch("".concat("https://sicomprasafe.yourintegration.top/api/v1","/aplicativo/produto/agrupamento"),{method:"POST",headers:{"Content-Type":"application/json",...(0,n.c)()},body:JSON.stringify({url:o,empr_id:r,eans_desconsiderar:[],agrupamento:e,relevancia:"maior_relevancia",origem:"site"})});if(!t.ok){let r=await t.text();throw console.error("Erro ao buscar produtos por agrupamento:",r),Error("Erro ao buscar produtos por agrupamento")}return await t.json()}catch(r){throw console.error("Erro ao buscar produtos por agrupamento:",r),r}}async getPolicyContent(r){try{let e=a.companyBaseUrl;if(!e)throw Error("URL da empresa n\xe3o configurada");let o=await this.authenticatedFetch("".concat("https://sicomprasafe.yourintegration.top/api/v1","/aplicativo/politica"),{method:"POST",headers:{"Content-Type":"application/json",...(0,n.c)()},body:JSON.stringify({url:e,tipo:r,origem:"site"})});if(!o.ok){let r=await o.text();throw console.error("Erro ao buscar conte\xfado da pol\xedtica:",r),Error("Erro ao buscar conte\xfado da pol\xedtica")}return await o.json()}catch(r){throw console.error("Erro ao buscar conte\xfado da pol\xedtica:",r),r}}constructor(){this.companyToken=null,this.tokenExpiry=null}}let c=s.getInstance()},72044:(r,e,o)=>{o.d(e,{L_:()=>d,f$:()=>l,jU:()=>c,y9:()=>u});var t=o(98857),a=o(84680),n=o(82862),i=o(76363);class s{static getInstance(){return s.instance||(s.instance=new s),s.instance}
1getUserToken(){return t.A.getItem("token")}getCompanyToken(){{let r=t.A.getItem("companyToken"),e=t.A.getItem("companyTokenExpiry");if(r&&e){let o=new Date(e);if(new Date<o)return r}}return null}getAuthorizationHeader(){let r=!(arguments.length>0)||void 0===arguments[0]||arguments[0];if(r){let r=this.getUserToken();if(r)return"Bearer ".concat(r)}let e=this.getCompanyToken();return e?"Bearer ".concat(e):null}async postRequest(r,e){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{userTokenIfAvailable:t=!0,timeout:a=this.timeout,useIntegrationApi:n=!0}=o,s=this.getAuthorizationHeader(t),c=n?this.integrationUrl:this.baseUrl,l=new AbortController,d=setTimeout(()=>l.abort(),a);try{let o=await fetch("".concat(c).concat(r),{method:"POST",headers:{"Content-Type":"application/json",...(0,i.c)(),...s&&{Authorization:s}},body:JSON.stringify({...e,origem:"site"}),signal:l.signal});if(clearTimeout(d),!o.ok){let r=await o.text();throw console.error("Error response:",r),Error("HTTP error! status: ".concat(o.status))}return await o.json()}catch(r){if(clearTimeout(d),"AbortError"===r.name)throw Error("Tempo limite excedido para a requisi\xe7\xe3o de dados de Produtos.");throw r}}async getAllProductsGrouping(r){let e={url:r.url,empr_id:r.empr_id,limite:r.limite,eans_desconsiderar:r.eans_desconsiderar||[],agrupamentos_desconsiderar:r.agrupamentos_desconsiderar||[]};return this.postRequest("/aplicativo/produto/vitrine",e,{userTokenIfAvailable:!0})}async getProductDetails(r){return this.postRequest("/aplicativo/produto/detalhe",r)}async getProductsGrouping(r){return this.postRequest("/aplicativo/produto/agrupamento",r)}async getFavoriteProducts(r){return this.postRequest("/aplicativo/produto/agrupamento",r,{userTokenIfAvailable:!0})}async searchProductsGrouping(r){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,o=n.companyBaseUrl||"",t={...r,url:o};return this.postRequest("/aplicativo/produto/pesquisa-facetada?page=".concat(e),t)}async favoriteProduct(r){await this.postRequest("/aplicativo/produto/favorito",r,{userTokenIfAvailable:!0})}async unfavoriteProduct(r){let e=this.getAuthorizationHeader(!0),o=await fetch("".concat(this.integrationUrl,"/aplicativo/produto/favorito"),{method:"DELETE",headers:{"Content-Type":"application/json",...(0,i.c)(),...e&&{Authorization:e}},body:JSON.stringify({...r,origem:"site"})});if(!o.ok)throw Error("HTTP error! status: ".concat(o.status))}async removeFavoriteProduct(r){let e=this.getAuthorizationHeader(!0),o=await fetch("".concat(this.integrationUrl,"/aplicativo/produto/favorito"),{method:"DELETE",headers:{"Content-Type":"application/json",...(0,i.c)(),...e&&{Authorization:e}},body:JSON.stringify({...r,origem:"site"})});if(!o.ok){let r=await o.text();throw console.error("Error removing favorite:",r),Error("HTTP error! status: ".concat(o.status," - ").concat(r))}}async removeNotificationProduct(r){let e=this.getAuthorizationHeader(!0),o=await fetch("".concat(this.integrationUrl,"/aplicativo/produto/avise-me"),{method:"DELETE",headers:{"Content-Type":"application/json",...(0,i.c)(),...e&&{Authorization:e}},body:JSON.stringify({...r,origem:"site"})});if(!o.ok){let r=await o.text();throw console.error("Error removing favorite:",r),Error("HTTP error! status: ".concat(o.status," - ").concat(r))}}async addFavoriteProduct(r){await this.postRequest("/aplicativo/produto/favorito",r,{userTokenIfAvailable:!0})}async notifyMeAboutProduct(r){await this.postRequest("/aplicativo/produto/avise-me",r,{userTokenIfAvailable:!0})}async unnotifyMeAboutProduct(r){let e=this.getAuthorizationHeader(!0),o=await fetch("".concat(this.integrationUrl,"/aplicativo/produto/avise-me"),{method:"DELETE",headers:{"Content-Type":"application/json",...(0,i.c)(),...e&&{Authorization:e}},body:JSON.stringify({...r,origem:"site"})});if(!o.ok)throw Error("HTTP error! status: ".concat(o.status))}async getProductsSuggestions(r){return this.postRequest("/aplicativo/produto/sugestao",r,{userTokenIfAvailable:!1})}async getDynamicFilters(r){return(await this.postRequest("/aplicativo/produto/filtro-dinamico",r,{userTokenIfAvailable:!1})).filtros||[]}async getWordsCloud(r){return(await this.postRequest("/aplicativo/produto/nuvem-palavras",r,{userTokenIfAvailable:!1})).nuvem_palavras||{palavras:[]}}async multipleSearch(r){try{let e={url:r.url,empr_id:r.empr_id,relevancia:r.relevancia||"a_z",intencao:r.intencao,mar
1cas:r.marcas,produtos:r.produtos,por_pagina:r.por_pagina||16,codigos_barras:r.codigos_barras||[]},o=await this.postRequest("/aplicativo/produto/pesquisar-multiplos",e,{companyTokenRequired:!0});return{success:!0,data:{produtos:o.produtos||[],nao_encontrados:o.nao_encontrados||[],total:o.total||0,pagina_atual:o.pagina_atual||1,total_paginas:o.total_paginas||1}}}catch(r){return console.error("Erro na pesquisa m\xfaltipla:",r),{success:!1,error:r instanceof Error?r.message:"Erro desconhecido"}}}constructor(){this.timeout=3e5,this.baseUrl=n.companyBaseUrl||"http://localhost:3001/api",this.integrationUrl="https://sicomprasafe.yourintegration.top/api/v1"}}let c=s.getInstance();async function l(r,e){try{if(!r||""===r.trim())throw Error("C\xf3digo de barras n\xe3o fornecido ou vazio");let o=null,s=e||(0,a.X)();{let r=t.A.getItem("token"),e=t.A.getItem("companyToken");o=r||e}let c={"Content-Type":"application/json",...(0,i.c)()};o&&(c.Authorization="Bearer ".concat(o));let l={url:n.companyBaseUrl,empr_id:s,codigo_barras:r.toString(),origem:"site"},d=await fetch("".concat("https://sicomprasafe.yourintegration.top/api/v1","/aplicativo/produto/detalhe"),{method:"POST",headers:c,body:JSON.stringify(l)});if(!d.ok){let r=await d.text();throw console.error("â Erro na resposta da API:",{status:d.status,statusText:d.statusText,body:r,payloadEnviado:l}),Error("HTTP error! status: ".concat(d.status," - ").concat(r))}return await d.json()}catch(r){throw console.error("\uD83D\uDCA5 Erro ao buscar detalhes do produto:",r),r}}async function d(r,e){try{if(!r||0===r.length)throw Error("Lista de c\xf3digos de barras vazia");let o=null,s=e||(0,a.X)();{let r=t.A.getItem("token"),e=t.A.getItem("companyToken");o=r||e}let c={"Content-Type":"application/json",...(0,i.c)()};o&&(c.Authorization="Bearer ".concat(o));let l={url:n.companyBaseUrl,codigo_barras:r,empr_id:s,origem:"site"},d=await fetch("".concat("https://sicomprasafe.yourintegration.top/api/v1","/aplicativo/produto/pesquisa/codigo-barras"),{method:"POST",headers:c,body:JSON.stringify(l)});if(!d.ok){let r=await d.text();throw console.error("â Erro na pesquisa por lista de c\xf3digos de barras:",{status:d.status,statusText:d.statusText,body:r,payloadEnviado:l}),Error("HTTP error! status: ".concat(d.status," - ").concat(r))}return await d.json()}catch(r){throw console.error("\uD83D\uDCA5 Erro ao buscar produtos por lista de c\xf3digos de barras:",r),r}}async function u(r,e){try{if(!r)throw Error("ID do produto n\xe3o fornecido ou vazio");let o=null,s=e||(0,a.X)();{let r=t.A.getItem("token"),e=t.A.getItem("companyToken");o=r||e}let c={"Content-Type":"application/json",...(0,i.c)()};o&&(c.Authorization="Bearer ".concat(o));let l={url:n.companyBaseUrl,empr_id:s,produto_id:Number(r),origem:"site"},d=await fetch("".concat("https://sicomprasafe.yourintegration.top/api/v1","/aplicativo/produto/detalhe"),{method:"POST",headers:c,body:JSON.stringify(l)});if(!d.ok){let r=await d.text();throw console.error("â Erro na resposta da API:",{status:d.status,statusText:d.statusText,body:r,payloadEnviado:l}),Error("HTTP error! status: ".concat(d.status," - ").concat(r))}return await d.json()}catch(r){throw console.error("\uD83D\uDCA5 Erro ao buscar detalhes do produto por ID:",r),r}}},76363:(r,e,o)=>{o.d(e,{c:()=>t});function t(){if("undefined"==typeof document)return{};let r=document.cookie.split(";").map(r=>r.trim()).filter(r=>r.startsWith("_ga=")||r.startsWith("_ga_")).reduce((r,e)=>{let o=e.indexOf("=");if(-1===o)return r;let t=e.slice(0,o).trim(),a=e.slice(o+1).trim();return r["x".concat(t).replace(/_/g,"-")]=a,r},{}),e=window.location.hostname,o=window.location.href.replace(/^https?:\/\//,"");return{...r,"x-origem":"site","x-url":e,"x-urlcompleta":o}}},82862:(r,e,o)=>{o.d(e,{companyBaseUrl:()=>t});let t=(()=>{let r=window.location.hostname;return"localhost"===r||"127.0.0.1"===r||r.startsWith("homol.")||r.startsWith("www.homol.")?"www.dominiodasualoja.com.br":r.startsWith("www.")?r:"www.".concat(r)})()},84680:(r,e,o)=>{o.d(e,{X:()=>a});var t=o(98857);function a(){var r,e,o,a,n,i,s;let c=t.A.getItem("selectedCompanyId");if(c){let r=parseInt(String(c),10);if(!Number.isNaN(r)&&r>0)return r}let l=t.A.getItem("selectedCompanyData");if(l)try{let t=JSON.parse(l),a=(null==t||null==(r=t.empresa)?void 0:r.empr_id)||(null==t||null==(o=t.empresa)||null==(e=o.empresa)?void 0:e.empr_id)||(null==t?void 0:t.empr_id);if(a){let r="string"==typeof a?parseInt(a,10):a;if(!Number.isNaN(r)&&r>0)return r}}catch(r){console.warn("Erro ao parsear selectedCompanyData:",r)}let d=t.A.getItem("selectedStore");if(d)try{let r=JSON.parse(d),e=(null==r?void 0:r.storeId)||(null==r?void 0:r.empr_id)||(null==r||null==(a=r.empresa)?void 0:a.empr_id)||(null==r?void 0:r.id);if(e){let r="string"==typeof e?parseInt(e,10):e;if(!Number.isNaN(r)&&r>0)return r}}catch(r){console.warn("Erro ao parsear selectedStore:",r)}let u=t.A.getItem("companyParameters");if(u)try{let r=JSON.parse(u),e=(null==r||null==(i=r.success)||null==(n=i.empresa)?void 0:n.empr_id)||(null==r||null==(s=r.empresa)?void 0:s.empr_id)||(null==r?void 0:r.empr_id);if(e){let r="string"==typeof e?parseInt(e,10):e;if(!Number.isNaN(r)&&r>0)return r}}catch(r){console.warn("Erro ao parsear companyParameters:",r)}return null}},87192:(r,e,o)=>{o.d(e,{W:()=>l,kz:()=>c,tr:()=>d,x8:()=>u});var t=o(98857);let a="sicompra-pending-cart-intents",n=r=>"".concat(r.empr_id,":").concat(r.codigo_barras),i=()=>{try{let r=t.A.getItem(a);if(!r)return[];let e=JSON.parse(r);return Array.isArray(e)?e:[]}catch(r){return[]}},s=r=>{try{t.A.setItem(a,JSON.stringify(r))}catch(r){}},c=r=>{var e,o;let t=i(),a=n(r),c=t.filter(r=>n(r)!==a);c.push({...r,ts:null!=(e=r.ts)?e:Date.now(),attempts:null!=(o=r.attempts)?o:0}),s(c)},l=(r,e)=>{let o=i(),t=o.filter(o=>n(o)!==n({empr_id:r,codigo_barras:e}));t.length!==o.length&&s(t)},d=()=>i(),u=(r,e)=>{s(i().map(o=>n(o)===n({empr_id:r,codigo_barras:e})?{...o,attempts:(o.attempts||0)+1}:o).filter(r=>5>(r.attempts||0)))}},98857:(r,e,o)=>{o.d(e,{A:()=>t});let t={getItem:r=>localStorage.getItem(r),setItem(r,e){localStorage.setItem(r,e)},removeItem(r){localStorage.removeItem(r)}}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.