PageSourceSearch

https://impacto.com.pe/_next/static/chunks/app/(routes)/cart/page-1118a99d260b4106.js

js impacto.com.pe collected 2026-09-25 20:26:59 UTC 12,643 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1113],{16732:(e,t,s)=>{Promise.resolve().then(s.bind(s,42855))},42855:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>g});var a=s(95155),r=s(12115),i=s(80581),l=s(5870),n=s(45686),d=s(45471),c=s(99053),o=s(23817),m=s(76046),x=s(50745),u=s(11746),h=s(99810);let g=()=>{let e=(0,m.useRouter)(),{removeItem:t,item_order:s,updateItemQuantity:g}=(0,i._)(),{discount:p,discountMessage:f}=(0,h.G)(),[j,y]=(0,r.useState)(""),[v,b]=(0,r.useState)(!1),{tdc:N}=(0,u.A)();(0,r.useEffect)(()=>{b(!0)},[]),(0,r.useEffect)(()=>{j&&(0,h.w)(j,w)},[s]);let w=()=>s?s.reduce((e,t)=>{var s;return e+((null===(s=t.items)||void 0===s?void 0:s.reduce((e,s)=>e+(s.price_sale-s.discount)*t.quantity,0))||0)},0):0,_=e=>{if(!e)return"/placeholder.jpg";if(Array.isArray(e))return e.length>0?e[0]:"/placeholder.jpg";if("string"==typeof e)try{let t=e.trim();if(t.startsWith("[")&&t.endsWith("]")){let e=JSON.parse(t);if(Array.isArray(e)&&e.length>0)return e[0]}if(t.startsWith("http")||t.startsWith("/"))return t.replace(/["\\]/g,"")}catch(e){console.error("Error imagen:",e)}return"/placeholder.jpg"},k=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"text-lg text-gray-900 font-medium";if(!N||isNaN(Number(N)))return null;let s=e*Number(N);return(0,a.jsxs)("div",{className:t,children:["S/ ",s.toFixed(2)]})};if(!v)return null;let T=w(),C=T-p;return(0,a.jsx)("div",{className:"bg-gray-50 min-h-screen pb-12",children:(0,a.jsxs)("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 py-8",children:[(0,a.jsxs)("div",{className:"flex items-center gap-3 mb-8",children:[(0,a.jsx)("div",{className:"p-3 bg-white rounded-full shadow-sm",children:(0,a.jsx)(l.A,{className:"w-6 h-6 text-blue-900"})}),(0,a.jsxs)("h1",{className:"text-2xl sm:text-3xl font-bold text-gray-900 tracking-tight",children:["Tu Carrito",(0,a.jsxs)("span",{className:"ml-6 text-base font-normal text-gray-500 bg-gray-200 px-2 py-2 rounded-full",children:[s.length," ",1===s.length?"Producto":"Productos"]})]})]}),(0,a.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-12 gap-8",children:[(0,a.jsx)("div",{className:"space-y-4 ".concat(0===s.length?"lg:col-span-12":"lg:col-span-8"),children:0===s.length?(0,a.jsxs)("div",{className:"bg-white rounded-2xl p-12 text-center shadow-sm border border-gray-100",children:[(0,a.jsx)("div",{className:"w-20 h-20 bg-gray-50 rounded-full flex items-center justify-center mx-auto mb-4",children:(0,a.jsx)(l.A,{className:"w-10 h-10 text-gray-300"})}),(0,a.jsx)("h3",{className:"text-lg font-semibold text-gray-900",children:"Tu carrito est\xe1 vac\xedo"}),(0,a.jsx)("p",{className:"text-gray-500 mt-2 mb-6",children:"Parece que a\xfan no has agregado n
1ada."}),(0,a.jsx)("button",{onClick:()=>e.push("/"),className:"px-6 py-2 bg-blue-900 text-white rounded-lg hover:bg-blue-800 transition-colors font-medium",children:"Empezar a comprar"})]}):(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsxs)("div",{className:"hidden sm:grid grid-cols-12 gap-4 text-xs font-semibold text-gray-500 uppercase tracking-wider px-4 pb-2",children:[(0,a.jsx)("div",{className:"col-span-6",children:"Producto"}),(0,a.jsx)("div",{className:"col-span-2 text-center",children:"Precio"}),(0,a.jsx)("div",{className:"col-span-2 text-center",children:"Cantidad"}),(0,a.jsx)("div",{className:"col-span-2 text-right",children:"Total"})]}),s.map(e=>{var s;return(0,a.jsx)(r.Fragment,{children:null===(s=e.items)||void 0===s?void 0:s.map(s=>{let r=Number(s.price_sale-s.discount),i=e.quantity*r,l=_(s.ima||s.image);return(0,a.jsxs)("div",{className:"bg-white rounded-xl shadow-sm border border-gray-100 p-4 transition-all hover:shadow-md",children:[(0,a.jsxs)("div",{className:"hidden sm:grid grid-cols-12 gap-6 items-center",children:[(0,a.jsxs)("div",{className:"col-span-6 flex gap-4",children:[(0,a.jsx)("div",{className:"w-20 h-20 bg-gray-50 rounded-lg flex-shrink-0 overflow-hidden border border-gray-200",children:(0,a.jsx)("img",{src:l,alt:s.name,className:"w-full h-full object-cover"})}),(0,a.jsxs)("div",{className:"flex flex-col justify-center",children:[(0,a.jsx)("h3",{className:"font-semibold text-gray-900 line-clamp-2 leading-tight mb-1",children:s.name}),(0,a.jsxs)("p",{className:"text-xs text-gray-500",children:["Code:  ",s.id.toString().padStart(6,"0")]}),(0,a.jsxs)("button",{onClick:()=>t(e.id),className:"text-red-500 text-xs font-medium hover:text-red-700 hover:underline mt-2 flex items-center gap-1 w-fit",children:[(0,a.jsx)(n.A,{size:12})," Eliminar"]})]})]}),(0,a.jsxs)("div",{className:"col-span-2 text-center flex flex-col justify-center items-center",children:[(0,a.jsx)("span",{className:"text-sm font-medium text-gray-900",children:k(r)}),(0,a.jsxs)("p",{className:"text-xs text-blue-900 leading-none",children:["o  $",r.toFixed(2)]})]}),(0,a.jsx)("div",{className:"col-span-2 flex justify-center",children:(0,a.jsxs)(x.l6,{value:e.quantity.toString(),onValueChange:t=>g(e.id,parseInt(t,10)),children:[(0,a.jsx)(x.bq,{className:"w-20 h-9 bg-gray-50 border-gray-200 text-sm",children:(0,a.jsx)(x.yv,{})}),(0,a.jsx)(x.gC,{children:[...Array(20).keys()].map(e=>(0,a.jsx)(x.eb,{value:(e+1).toString(),children:e+1},e+1))})]})}),(0,a.jsxs)("div",{className:"col-span-2 text-right flex flex-col justify-center items-end",children:[(0,a.jsx)("span",{className:"text-base font-bold text-gray-900"}),k(i),(0,a.jsxs)("p",{className:"text-xs text-blue-900 leading-none",children:["o       $ ",i.toFixed(2)]})]})]}),(0,a.jsxs)("div",{className:"sm:hidden flex gap-4",children:[(0,a.jsx)("div",{className:"w-24 h-24 bg-gray-50 rounded-lg flex-shrink-0 overflow-hidden border border-gray-200",children:(0,a.jsx)("img",{src:l,alt:s.name,className:"w-full h-full object-cover"})}),(0,a.jsxs)("div",{className:"flex-1 flex flex-col justify-between",children:[(0,a.jsxs)("div",{className:"flex justify-between items-start gap-2",children:[(0,a.jsx)("h3",{className:"text-sm font-semibold text-gray-900 line-clamp-2",children:s.name}),(0,a.jsx)("button",{onClick:()=>t(e.id),className:"text-gray-400 hover:text-red-500 p-1 -mr-2",children:(0,a.jsx)(n.A,{size:18})})]}),(0,a.jsxs)("div",{className:"mt-2 flex items-end justify-between",children:[(0,a.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,a.jsx)("span",{className:"text-xs text-gray-500",children:"Cantidad:"}),(0,a.jsxs)(x.l6,{value:e.quantity.toString(),onValueChange:t=>g(e.id,parseInt(t,10)),children:[(0,a.jsx)(x.bq,{className:"w-20 h-8 text-xs bg-gray-50",children:(0,a.jsx)(x.yv,{})}),(0,a.jsx)(x.gC,{children:[...Array(20).keys()].map(e=>(0,a.jsx)(x.eb,{value:(e+1).toString(),children:e+1},e+1))})]})]}),(0,a.jsxs)("div",{className:"text-right",children:[(0,a.jsx)("div",{className:"flex flex-col items-end mb-1",children:(0,a.jsxs)("p",{className:"text-xs text-gray-400",children:["Unit: $ ",r.toFixed(2)]})}),(0,a.jsxs)("p",{className:"text-lg font-bold text-blue-900 leading-none",children:["$ ",i.toFixed(2)]}
1),k(i,"text-xs text-gray-500 font-medium mt-0.5")]})]})]})]})]},s.id)})},e.id)})]})}),s.length>0&&(0,a.jsx)("div",{className:"lg:col-span-4",children:(0,a.jsxs)("div",{className:"bg-white rounded-2xl shadow-lg border border-gray-100 p-6 sticky top-6",children:[(0,a.jsx)("h2",{className:"text-lg font-bold text-gray-900 mb-6",children:"Resumen del Pedido"}),(0,a.jsxs)("div",{className:"space-y-4 text-sm",children:[(0,a.jsxs)("div",{className:"flex justify-between items-start text-gray-600",children:[(0,a.jsx)("span",{children:"Subtotal"}),(0,a.jsxs)("div",{className:"text-right",children:[(0,a.jsxs)("span",{className:"font-medium block",children:[" ",k(T,"text-md text-gray-900")]}),"o $ ",T.toFixed(2)]})]}),p>0&&(0,a.jsxs)("div",{className:"flex justify-between text-green-600 bg-green-50 p-2 rounded-md",children:[(0,a.jsxs)("span",{className:"flex items-center gap-1",children:[(0,a.jsx)(d.A,{size:14})," Descuento"]}),(0,a.jsxs)("span",{className:"font-medium",children:["- $ ",p.toFixed(2)]})]}),(0,a.jsx)("div",{className:"border-t border-gray-100 pt-4 mt-4",children:(0,a.jsxs)("div",{className:"flex justify-between items-end",children:[(0,a.jsx)("span",{className:"text-gray-900 font-bold text-lg",children:"Total"}),(0,a.jsxs)("div",{className:"text-right",children:[(0,a.jsx)("span",{className:"text-gray-400 text-xs font-normal block mb-1",children:"Incluye IGV"}),k(C,"text-2xl text-blue-900 font-medium mt-1"),(0,a.jsxs)("span",{className:"text-sm font-extrabold text-gray-500 block leading-none",children:["o  $",C.toFixed(2)]})]})]})})]}),(0,a.jsxs)("button",{className:"w-full mt-6 bg-black text-white py-2 rounded-lg font-bold text-lg hover:bg-red-700 shadow-md hover:shadow-lg transition-all flex items-center justify-center gap-2 group",onClick:()=>e.push("/checkout"),children:["Proceder al Pago ",(0,a.jsx)(c.A,{className:"group-hover:translate-x-1 transition-transform"})]}),(0,a.jsxs)("div",{className:"mt-6 flex flex-col items-center justify-center gap-2 text-gray-400 text-xs",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(o.A,{size:14}),(0,a.jsx)("span",{children:"Compra 100% segura y encriptada"})]}),N&&(0,a.jsxs)("span",{className:"text-[10px] text-gray-300",children:["T.C. Referencial: ",N]})]})]})})]})]})})}},80581:(e,t,s)=>{"use strict";s.d(t,{_:()=>n});var a=s(99827),r=s(60709);async function i(e){let t=await fetch("/api/backend/ecommerce/products/validate-cart-stock",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({items:e}),cache:"no-store"});if(!t.ok)throw Error("Error validando el stock del carrito");return t.json()}var l=s(30814);let n=(0,a.v)((0,r.Zr)((e,t)=>({items:[],item_order:[],currentId:1,cartTimestamp:null,clearExpiredCart:()=>{let s=t(),a=s.cartTimestamp;return!!a&&0!==s.item_order.length&&new Date().getTime()>a+2592e5&&(e({item_order:[],currentId:1,cartTimestamp:null}),(0,l.oR)({title:"Carrito actualizado",description:"Tu carrito ten\xeda m\xe1s de 24 horas. Los productos han sido eliminados para verificar disponibilidad.",variant:"destructive"}),!0)},getTimeLeft:()=>{let e=t(),s=e.cartTimestamp;if(!s||0===e.item_order.length)return"Sin l\xedmite";let a=s+2592e5-new Date().getTime();if(a<=0)return"Expirado";let r=Math.floor(a/36e5),i=Math.floor(a%36e5/6e4);return r>0?"".concat(r,"h ").concat(i,"m"):"".concat(i," min")},updateItemQuantity:(s,a)=>{e({item_order:t().item_order.map(e=>e.id===s?{...e,quantity:a}:e),cartTimestamp:new Date().getTime()})},addItem:(s,a)=>{let r=t().item_order,i=t().currentId,l=r.findIndex(e=>e.items.some(e=>e.id===s.id));-1!==l?e({item_order:r.map((e,t)=>t===l?{...e,quantity:e.quantity+a}:e),cartTimestamp:new Date().getTime()}):e({item_order:[...r,{id:i,quantity:a,items:[s]}],currentId:i+1,cartTimestamp:new Date().getTime()})},validateStock:async()=>{let e=t();if(0===e.item_order.length)return;let s=e.item_order.flatMap(e=>e.items.map(t=>({product_id:t.id,quantity:e.quantity})));try{for(let e of(await i(s)).updated_items){let s=t().item_order.find(t=>t.items.some(t=>t.id===e.product_id));if(s){if(e.deleted||e.available_quantity<=0)t().removeItem(s.id),l.oR.success("Un producto de tu carrito ya no est\xe1 disponible.");else if(e.available_quantity<s.quantity){var a;let r=(null===(a=s.items[0])||void 0===a?void 0:a.name)||"Producto",i=r.split(" "),n=i.length>6?i.slice(0,6).join(" ")+"...":r;s.quantity;let d=e.available_quantity;t().updateItemQuantity(s.id,d),l.oR.success("".concat(n," ahora t
1iene cantidad ").concat(d," por disponibilidad."))}}}0===t().item_order.length&&l.oR.success("Los productos de tu carrito ya no est\xe1n disponibles.")}catch(e){console.error("❌ [validateStock] Error validando stock:",e)}},validateAndUpdateCart:async()=>{let e=t();e.clearExpiredCart(),await e.validateStock()},removeItem:s=>{let a=t().item_order.filter(e=>e.id!==s);e({item_order:a,cartTimestamp:a.length>0?new Date().getTime():null}),l.oR.success("El producto fue eliminado del carrito")},removeAll:()=>{e({item_order:[],currentId:1,cartTimestamp:null}),l.oR.success("El producto fue eliminado del carrito")}}),{name:"cart-storage",storage:(0,r.KU)(()=>localStorage),migrate:(e,t)=>0===t?e&&e.item_order&&e.item_order.length>0?{...e,cartTimestamp:new Date().getTime(),items:e.items||[],currentId:e.currentId||1}:{...e,cartTimestamp:null,items:(null==e?void 0:e.items)||[],currentId:(null==e?void 0:e.currentId)||1}:e,version:1}))},29602:(e,t,s)=>{"use strict";s.d(t,{cn:()=>i});var a=s(43463),r=s(69795);function i(){for(var e=arguments.length,t=Array(e),s=0;s<e;s++)t[s]=arguments[s];return(0,r.QP)((0,a.$)(t))}}},e=>{var t=t=>e(e.s=t);e.O(0,[8641,597,830,9003,6442,8441,1517,7358],()=>t(16732)),_N_E=e.O()}]);

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.