1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[243],{384:(e,t,a)=>{a.d(t,{TruncatedText:()=>l});var r=a(5155),n=a(2115);let l=({contents:e,lineHeight:t=14,maxLines:a=2})=>{let[l,i]=(0,n.useState)(""),s=(0,n.useRef)(null),o=(0,n.useCallback)(()=>{let t=s.current;if(!t)return;let r=t.offsetWidth,n=r<768,l="",o=0;for(let i=0;i<e.length;i++){t.textContent=e.slice(0,i+1).join(" + ");let s=document.createRange();s.selectNodeContents(t);let d=s.getClientRects();if(d.length>=a&&r-d[a-1].width<(n?r/3:r/5)&&i>0){l=e.slice(0,i).join(" + "),o=e.length-i;break}}o>0?(t.textContent=`${l} + ${o} lainnya`,i(`${l} + ${o} lainnya`)):(t.textContent=e.join(" + "),i(e.join(" + ")))},[]);return(0,n.useEffect)(()=>{if(!s.current)return;let e=new ResizeObserver(()=>{o()});return requestAnimationFrame(()=>o()),e.observe(s.current),()=>e.disconnect()},[e,t,a,o]),(0,r.jsx)("p",{ref:s,className:"text-xs text-[#020E0E] mt-1 overflow-hidden",style:{lineHeight:`${t}px`,maxHeight:`${t*a}px`,minHeight:`${t*a}px`,width:"100%",display:"block"},children:l})}},525:(e,t,a)=>{a.d(t,{L:()=>i});var r=a(5155),n=a(4269),l=a(2115);let i=(0,l.memo)(({tags:e,overflowingClass:t,tagClassName:a})=>{let i=(0,l.useRef)(null),s=function(e){let[t,a]=(0,l.useState)(!1);return(0,l.useEffect)(()=>{let t=e?.current;if(!t)return;let r=null,n=null,l=()=>{if(!t)return;let e=t.scrollWidth>t.clientWidth;if(!e)return void a(!1);let r=t.scrollLeft,n=t.scrollWidth,l=t.clientWidth;a(e&&!(r+l>=n-2))},i=()=>{r||(r=requestAnimationFrame(()=>{l(),r=null}))},s=()=>{n&&clearTimeout(n),n=setTimeout(l,150)};return l(),t.addEventListener("scroll",i,{passive:!0}),window.addEventListener("resize",s,{passive:!0}),()=>{r&&cancelAnimationFrame(r),n&&clearTimeout(n),t.removeEventListener("scroll",i),window.removeEventListener("resize",s)}},[e]),t}(i);return(0,r.jsxs)("div",{className:"relative mt-1 w-full overflow-hidden",children:[(0,r.jsx)("div",{ref:i,className:"flex w-full overflow-x-auto gap-2 no-scrollbar",style:{scrollbarWidth:"none",msOverflowStyle:"none",WebkitOverflowScrolling:"touch"},children:e?.map((e,t)=>(0,r.jsxs)("div",{style:{backgroundColor:e.color},className:(0,n.cR)("flex h-5 shrink-0 items-center justify-center gap-1 rounded-sm px-1"),children:[e.icon,(0,r.jsx)("span",{className:(0,n.cR)("text-[0.625rem] font-medium text-white",a),children:e.name})]},t))}),s&&(0,r.jsx)("div",{className:(0,n.cR)("pointer-events-none absolute right-0 top-0 h-full w-6 bg-gradient-to-l from-[#FFF8E6] to-transparent z-10",t),style:{background:"linear-gradient(to left, #FFF8E6 0%, rgba(255, 248, 230, 0) 100%)"}})]})})},2839:(e,t,a)=>{a.d(t,{default:()=>g});var r=a(5155),n=a(4269),l=a(6784),i=a(2619),s=a.n(i),o=a(2115),d=a(6838),c=a(384),u=a(9403),m=a(525);let g=(0,o.memo)(({menu:e,cartItems:t})=>{let a=e.discount?e.discount:e.price,i=e.slug??e.id;return(0,r.jsxs)(s(),{href:(0,n.Lo)(`daftar-menu/${(0,n.Uj)(e.category??"")}/${i}`),className:"relative flex gap-3 bg-white text-[#020E0E] w-full cursor-pointer",onClick:()=>{(0,l.sendGTMEvent)({event:"ui_interaction",ecommerce:{interaction_type:"menu_item",currency:"IDR",value:e.discount?e.discount:e.price,items:[{item_name:e.name,item_category:e.tags?.map(e=>e.name).join(", "),price:e.discount?e.discount:e.price,quantity:1}]}})},children:[(0,r.jsxs)("div",{className:"relative min-w-max pb-2",children:[!!e.discountPercentage&&(0,r.jsxs)("div",{className:"absolute -left-2 top-2 flex flex-col items-center justify-center bg-[#E73737] text-white rounded-tl-sm rounded-r-lg w-[2.25rem] py-1",children:[(0,r.jsxs)("p",{className:"font-semibold text-xs text-white",children:[e.discountPercentage,"%"]}),(0,r.jsx)("div",{className:"absolute -bottom-1.5 left-0 w-0 h-0 border-r-[8px] border-r-[#991B1B] border-b-[6px] border-b-transparent"})]}),(0,r.jsx)(d.default,{imageSrc:e.image,imageAlt:e.alt??e.name,width:150,height:150,imageClassName:"rounded-lg h-[7.875rem] w-[7.875rem] object-cover",placeholder:(0,r.jsxs)("div",{className:"h-[7.875rem] w-[7.875rem] flex bg-[#EFEFEF] flex-col items-center justify-center rounded-lg mb-2",children:[(0,r.jsx)(u.A,{width:28,height:24,fill:"#CBCBCB"}),(0,r.jsx)("span",{className:"text-[#4F4F4F] text-xs",children:"Belum Ada Foto"})]})},e.id),t&&t.length>0&&(0,r.jsx)("div",{className:"absolute bottom-3 right-1 bg-white border border-[#093434] text-[#1A1A1A] rounded-full w-9 h-9 flex items-center justify-center",children:(0,r.jsx)("span",{className:"text-xs font-semibold",children:t.reduce((e,t)=>
1e+t.quantity,0)})})]}),(0,r.jsxs)("div",{className:"w-full",children:[(0,r.jsx)("h3",{className:"font-medium text-sm",style:{lineHeight:"1.25rem"},children:e.name}),(0,r.jsx)(c.TruncatedText,{contents:e.contents},`content-${e.id}`),(0,r.jsx)("div",{className:"flex overflow-x-auto no-scrollbar gap-2 mt-0.5",children:(0,r.jsx)(m.L,{tags:e.tags??[],overflowingClass:"from-[#FFF]"})}),(0,r.jsxs)("div",{className:"mt-1 -mb-1 items-center",children:[(0,r.jsx)("span",{className:(0,n.cR)("font-semibold text-[#020E0E]",e.discount&&"text-red-600"),children:(0,n.vv)(a)}),e.discount&&(0,r.jsx)("span",{className:"text-xs text-[#ABABAB] line-through ml-2",children:(0,n.vv)(e.price)})]}),e.soldQuantity&&(0,r.jsxs)("span",{className:"text-[#666666] text-xs",children:["Terjual ",e.soldQuantity," + "]})]})]})})},3277:(e,t,a)=>{a.d(t,{DaftarMenuProvider:()=>p,r:()=>h});var r=a(5155),n=a(63),l=a(2115),i=a(8097),s=a(3839),o=a(4269),d=a(4535),c=a(6512),u=a(8593),m=a(4627),g=a(5749),f=a(9761);let A=(0,l.createContext)(null),h=()=>{let e=(0,l.useContext)(A);if(!e)throw Error("useDaftarMenu must be used inside DaftarMenuContainer");return e};function p({children:e}){let{breadcrumbs:t,suggestionsMenu:a,suggestionsEvent:h,menu:p,categories:v,tags:x,isLoadingFilters:w,size:y,setSize:C,isInitialLoading:b,isLoadingMore:j,isReachingEnd:O,isEmpty:E,resetMenu:S,selectedCategory:k,selectedTags:B,selectedSort:F,selectedOrder:N,setSelectedSort:_,hotlineWaLink:I,handleTagClick:R,totalMenu:D,keyword:M,setKeyword:Q,getItem:q,error:L}=(()=>{let e=(0,n.useParams)().category?.toString(),[t,a]=(0,f.ZA)("keyword",f.tU.withDefault("")),[A,h]=(0,f.ZA)("tags",f.tU.withDefault("").withOptions({clearOnDefault:!1})),[p,v]=(0,f.ZA)("sort",f.tU.withDefault(s.QB[0].value).withOptions({clearOnDefault:!1})),[x,w]=(0,f.ZA)("order",f.tU.withDefault(s.QB[0].order).withOptions({clearOnDefault:!1})),[y,C]=(0,f.ZA)("page",f.GJ.withDefault(1).withOptions({clearOnDefault:!1})),[b,j]=(0,l.useState)([{id:-1,display_name:"Semua",image:"/all_category.svg"}]),O=(0,l.useCallback)(e=>b.find(t=>(0,o.Uj)(t.display_name)===e),[b]),E=(0,l.useMemo)(()=>{let a=e?O(e):void 0;return{context:"display_menu",sort:p,order:x,tags:A,category:a?a.id:void 0,keyword:""!=t?t:void 0}},[e,A,p,x,t,O]),S=(0,l.useMemo)(()=>[e??"",t,A,p,x].join("|"),[e,t,A,p,x]),k=(0,l.useRef)(S),{data:B}=(0,u.g)(),{data:F,isLoading:N}=(()=>{let{data:e,error:t,isLoading:a}=(0,c.Ay)("/filters",d.GO,{revalidateOnFocus:!1,revalidateIfStale:!1,revalidateOnReconnect:!0});return{data:e,error:t,isLoading:a}})(),{data:_,size:I,setSize:R,isLoading:D,isValidating:M,error:Q}=(0,m._f)(E),{items:q,getItem:L}=(0,g.x)(),[$,G]=(0,l.useState)([]),[K,U]=(0,l.useState)([]),[P,H]=(0,l.useState)(),[z,T]=(0,l.useState)([]),[Z,W]=(0,l.useState)(!1),J=(0,l.useMemo)(()=>{if(!_)return[];let e=new Set;return _.flatMap((t,a)=>t.data.products.filter(t=>!e.has(t.id)&&(e.add(t.id),!0)).map(e=>({id:e.id,image:e.image_urls[0]||"/placeholder.png",alt:e.alt,name:e.name,slug:e.slug,contents:e.contents||["Spaghetti","Eggs","Pecorino Romano","Guanciale","Black Pepper"],price:e.price,category:e.category_name,discount:e.discounted_price,discountPercentage:e.discounted_price?Math.round((e.price-e.discounted_price)/e.price*100):0===a?void 0:0,soldQuantity:e.sold_count,tags:e.tags.map(e=>{let t=s.A1[e.toLowerCase()]??{name:(0,o.st)(e),icon:(0,r.jsx)(i.A,{width:14,height:14,fill:"#FFF"}),color:"#1DA062",value:e.toLowerCase()};return{name:t.name,icon:t.icon,color:t.color,value:e.toLowerCase()}})})))},[_]),Y=_?.[0]?.data.products.length===0,X=_?.[_.length-1]?.data.total,V=Y||"number"==typeof X&&J.length>=X||_&&_[_.length-1]?.data.products.length<10,ee=(0,l.useMemo)(()=>[{label:"Beranda",url:"/"},{label:"Daftar Menu",url:"/daftar-menu"},{label:e?(0,o.I)(e):"Semua Menu",url:""}],[e]);return(0,l.useEffect)(()=>{v(s.QB[0].value),w(s.QB[0].order)},[]),(0,l.useEffect)(()=>{I>1&&C(I)},[I]),(0,l.useEffect)(()=>{k.current!==S&&(k.current=S,C(1),R(1))},[S,C,R]),(0,l.useEffect)(()=>{B?.data&&(G(B.data.keyword_recommendations.menu),U(B.data.keyword_recommendations.events))},[B]),(0,l.useEffect)(()=>{F&&(H(F.data),T(F.data.tags.map(e=>{let t=e.toLowerCase();return s.tZ[t]??{name:(0,o.st)(e),icon:(0,r.jsx)(i.A,{width:14,height:14,fill:"#065D5F"}),color:"#1DA062",value:e.toLowerCase()}})),j(e=>{let t=F.data.categories.map(e=>({id:e.id,display_name:(0,o.st)(e.display_name),image:e.image||"/category_placeholder.webp"})).filter(t=>!e.some(e=>e.id===t.id));return[...e,...t]}))},[F]),{breadcrumbs:ee,suggestionsMenu:$,suggestionsEvent:K,menu:J,keyword:t,setKeyword:a,categories:b,tags:z,filters:P,isLoadingFilters:N,size:I,setSize:R,isInitialLoading:D,isLoadingMore:M,isReachingEnd:V,isEmpty:Y,resetMenu:()=>{h(""),v(s.QB[0].value),w(s.QB[0].order),a(""),R(1)}
1,selectedCategory:e,selectedTags:A,setSelectedTags:h,handleTagClick:e=>{h(t=>{let a=t?t.split(","):[];return e.value&&a.includes(e.value)?a.filter(t=>t!==e.value).join(",")||null:[...a,e.value].join(",")})},selectedSort:p,selectedOrder:x,setSelectedSort:e=>{v(e.value),w(e.order),R(1)},hotlineWaLink:B?.data?.hotline_message.wa_link??"",onHotlineClick:(0,l.useCallback)(()=>{let e=window.gass,t=document.querySelector('a[href*="/cta"]');if(t&&e?.visitor_id){let a=t.href;if(!(a.includes("v="+e.visitor_id)||a.includes("cta=1"))){let r=new URL(a);r.searchParams.set("cta","1"),r.searchParams.set("v",e.visitor_id),t.href=r.toString(),t.addEventListener("click",function a(r){r.preventDefault(),e.post_click(t.href),t.removeEventListener("click",a)})}e?.updateCta&&e.updateCta()}},[B?.data?.hotline_message.wa_link]),totalMenu:X,carts:q,getItem:L,isBottomSheetMenuOpen:Z,setIsBottomSheetMenuOpen:W,error:Q}})(),$=(0,n.usePathname)(),G=$?.includes("/daftar-menu/")&&$.split("/").length>3;return(0,r.jsx)(l.Suspense,{children:(0,r.jsx)(A.Provider,{value:{breadcrumbs:t,menu:p,totalMenu:D??0,resetMenu:S,isInitialLoading:b,isLoadingMore:j,isReachingEnd:O??!0,isEmpty:E,onNextPage:()=>C(y+1),page:y,getItem:q,suggestionsMenu:a,suggestionsEvent:h,categories:v,tags:x,selectedCategory:k,selectedTags:B,selectedSort:F,selectedOrder:N,setSelectedSort:_,hotlineWaLink:I,handleTagClick:R,keyword:M,setKeyword:Q,hideLayout:G,setSize:C,error:L},children:e})})}},4627:(e,t,a)=>{a.d(t,{$p:()=>m,U$:()=>d,_f:()=>o,_z:()=>u,xE:()=>c,yb:()=>s});var r=a(4535),n=a(2115),l=a(6512),i=a(7016);let s=(e,t)=>{let a=(0,r.Zq)(e),{data:n,error:i,isLoading:s}=(0,l.Ay)(`/showcases${a}`,r.GO,{revalidateOnFocus:!1,revalidateIfStale:!1,errorRetryCount:2,revalidateOnReconnect:!0,fallbackData:t});return{data:n,error:i,isLoading:s}},o=e=>{let t=(0,n.useMemo)(()=>JSON.stringify(e??{}),[e]),a=(0,n.useCallback)((e,a)=>{if(a&&!a.data.products.length)return null;let n=JSON.parse(t),l=(0,r.Zq)({...n});return`/showcases${l}&page=${e+1}`},[t]),{data:l,error:s,isLoading:o,size:d,setSize:c,isValidating:u}=(0,i.Ay)(a,r.GO,{revalidateOnFocus:!1,revalidateIfStale:!1,persistSize:!0});return{data:l,error:s,isLoading:o,isValidating:u,size:d,setSize:c}},d=e=>{let t=(0,r.Zq)({keyword:e}),{data:a,error:n,isLoading:i,isValidating:s}=(0,l.Ay)(e?`/products${t}`:null,r.GO,{revalidateOnFocus:!1,revalidateIfStale:!1,revalidateOnReconnect:!1,shouldRetryOnError:!1});return{data:a,error:n,isLoading:i,isValidating:s}},c=e=>{let{data:t,error:a,isLoading:n}=(0,l.Ay)(`/products/${e}`,r.GO,{revalidateOnFocus:!1,revalidateIfStale:!1,revalidateOnReconnect:!1});return{data:t,error:a,isLoading:n}},u=e=>{let{data:t,error:a,isLoading:n}=(0,l.Ay)(`/products/${e}/addons`,r.GO,{revalidateOnFocus:!1,revalidateIfStale:!1,revalidateOnReconnect:!1,shouldRetryOnError:!1});return{data:t,error:a,isLoading:n}},m=e=>{let t=(0,r.Zq)({product_id:e}),{mutate:a,data:n,error:i,isLoading:s}=(0,l.Ay)(e?`/product_packagings${t}`:null,r.GO,{revalidateOnFocus:!1,revalidateIfStale:!1,revalidateOnReconnect:!1,shouldRetryOnError:!1});return{getPackaging:a,data:n,error:i,isLoading:s}}},5749:(e,t,a)=>{a.d(t,{x:()=>s});var r=a(3839),n=a(4269),l=a(5959),i=a(9863);let s=(0,l.v)()((0,i.Zr)((e,t)=>({items:new Map,addItem:t=>e(e=>{let a;if(e.items.size>
10){for(let[r,n]of e.items.entries())if(n.product.id===t.product.id&&n.packaging.id===t.packaging.id){a=r;break}}let r=e.items.size>0?new Map(e.items):new Map;if(a){let e=r.get(a);e&&r.set(a,{...e,quantity:e.quantity+1})}else{let e="undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID():"cart-"+Date.now()+"-"+Math.random().toString(36).substr(2,9);r.set(e,{...t,quantity:1,addOns:t.addOns??[]})}return{items:r}}),getItem:e=>Array.from(t().items.values()).filter(t=>t.product.id===e),addAddOn:(t,a)=>e(e=>{let r,n=new Map(e.items),l=n.get(t);if(!l)return{items:n};let i=l.addOns.findIndex(e=>e.data.product_id===a.data.product_id);return r=-1!==i?l.addOns.map((e,t)=>t===i?{...e,quantity:e.quantity+1}:e):[...l.addOns,{...a,quantity:1}],n.set(t,{...l,addOns:r}),{items:n}}),removeItem:t=>e(e=>{let a=new Map(e.items),r=a.get(t);return r&&(r.quantity>1?a.set(t,{...r,quantity:r.quantity-1}):a.delete(t)),{items:a}}),removeAddOn:(t,a)=>e(e=>{let r=new Map(e.items),n=r.get(t);if(!n)return{items:r};let l=n.addOns.findIndex(e=>e.data.product_id===Number(a));if(-1===l)return{items:r};let i=[...n.addOns];return i[l].quantity>1?i[l]={...i[l],quantity:i[l].quantity-1}:i.splice(l,1),r.set(t,{...n,addOns:i}),{items:r}}),clearCart:()=>e(()=>({items:new Map}))}),{name:"cart-storage",storage:{getItem:e=>{let t=localStorage.getItem(e);if(!t)return null;let a=JSON.parse(t),l=new Map(a.state.items);for(let[e,t]of l.entries())t.product.tags&&(t.product.tags=t.product.tags.map(e=>{let t=e.name?.toLowerCase();return r.A1[t]??{name:(0,n.st)(e.name??""),color:"#1DA062",iconName:"clocktimer"}}));return{...a,state:{...a.state,items:l}}},setItem:(e,t)=>{let a=Array.from(t.state.items.entries()).map(([e,t])=>(t.product.tags&&(t.product.tags=t.product.tags.map(e=>({name:e.name,color:e.color}))),[e,t])),r={...t,state:{...t.state,items:a}};localStorage.setItem(e,JSON.stringify(r))},removeItem:e=>localStorage.removeItem(e)}}))},6838:(e,t,a)=>{a.r(t),a.d(t,{default:()=>s});var r=a(5155),n=a(5239),l=a(2115),i=a(4603);let s=({imageSrc:e,imageAlt:t,width:a,height:s,priority:o=!1,imageClassName:d,placeholder:c,onClick:u,fill:m=!1})=>{let[g,f]=(0,l.useState)(!1),A=m?"100vw":`(max-width: ${a}px) 100vw, ${a}px`;return(0,r.jsx)(r.Fragment,{children:g||""===e||!e?c||(0,r.jsx)("div",{className:"w-full h-full bg-[#EFEFEF] flex flex-col items-center justify-center",children:(0,r.jsx)(i.A,{width:52,height:52,fill:"#CBCBCB"})}):e&&e.includes(".svg")&&e.includes("http")?(0,r.jsx)("img",{src:`/api/proxyImage?url=${e}`,alt:t,width:a,height:s,className:d,onError:()=>f(!0),onClick:u,fetchPriority:o?"high":"auto",loading:o?"eager":"lazy"}):e?(0,r.jsx)(n.default,{src:e,alt:t,...m?{fill:!0}:{width:a,height:s},unoptimized:!0,quality:o?85:60,className:d,priority:o,fetchPriority:o?"high":"auto",onError:()=>f(!0),onClick:u,placeholder:a+s<80?"empty":"blur",blurDataURL:"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAIAAoDASIAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAv/xAAhEAACAQMDBQAAAAAAAAAAAAABAgMABAUGIWGRkqGx0f/EABUBAQEAAAAAAAAAAAAAAAAAAAMF/8QAGhEAAgIDAAAAAAAAAAAAAAAAAAECEgMRkf/aAAwDAQACEQMRAD8AltJagyeH0AthI5xdrLcNM91BF5pX2HaH9bcfaSXWGaRmknyJckliyjqTzSlT54b6bk+h0R7SNBlENH0Jjs=",sizes:A}):null})}},8593:(e,t,a)=>{a.d(t,{g:()=>l});var r=a(4535),n=a(6512);let l=e=>{let{data:t,error:a,isLoading:l}=(0,n.Ay)("/homepages",r.GO,{fallbackData:e,revalidateOnFocus:!1,revalidateIfStale:!1,revalidateOnReconnect:!1,dedupingInterval:6e4,errorRetryInterval:5e3,errorRetryCount:3});return{data:t,error:a,isLoading:l}}}}]);
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.