1import{d as I,c as y,g as l,q as b,j as n,h as _,i as d,P as C,b as yt,at as ns,b9 as os,o as be,ba as rs,m as M,bb as $,bc as bt,s as u,v as f,Q as ue,y as A,E as D,G as m,e as X,ai as kt,ar as _t,aQ as ze,bd as Tt,x as w,F as B,C as Y,p as de,Y as At,ah as Ee,al as ce,aE as Ie,R as as,D as is,be as Pt,bf as Z,I as V,aG as se,u as De,bg as ls,bh as cs,bi as us,t as St,bj as ds,z as je,K as Re,N as re,_ as wt,aV as ps,a0 as ke,bk as hs,bl as gs,bm as U,M as Mt,b5 as ms,V as we,a9 as It,aM as We,f as fs,bn as vs,$ as Et,bo as ys,ak as bs,b4 as ks,H as _s,bp as Ts,a as As,bq as Xe,n as Ne,aU as Ps,au as Ss,br as ws,bs as Ct,aw as Ms,ag as Is,a6 as Es,bt as Cs}from"./DQM39uDX.js";import Ls from"./Cj75xKPk.js";import{u as K}from"./DZiXZHzj.js";import{n as Bs}from"./DSxm6jZD.js";import{S as Ds}from"./C5h6UdrS.js";import{N as Ge}from"./DugClDj8.js";import{O as Lt}from"./CakEfQ_i.js";import{z as Gs}from"./C2m2elyz.js";import Ke from"./2JLG7OZp.js";import{g as $s}from"./9UDNKV60.js";import{g as Os}from"./C4hAZtOU.js";import{U as ee}from"./CAWM5U5y.js";import{q as Rs}from"./DBpI8Eq6.js";import{u as Ns}from"./DYUrGGox.js";import{$ as Hs}from"./CJFQ2Ajg.js";import{I as Ze}from"./Dvfy4vOh.js";import{J as xs}from"./BWTnxaiU.js";import{p as Bt}from"./CF7Wl6r0.js";import{L as zs}from"./Cg1df4jc.js";import{P as He,I as js}from"./CSAjdnOU.js";import{y as Ws}from"./By28I0SU.js";import Ks from"./DD2EIpbc.js";import{M as Dt,P as Gt}from"./D1KfU06a.js";import{u as $t}from"./BwM8nPNz.js";import"./5N-lnMGR.js";import"./qAG6p-HO.js";import"./DH4SEjIy.js";import"./f8p7j0Wt.js";import"./pYNVy6oa.js";import"./D32-0i4M.js";import"./Dyjavnd1.js";import"./CnSSNobR.js";import"./5iEsUq_U.js";import"./iwDZAwMb.js";import"./N9WVwUIv.js";import"./JJoLBmx9.js";import"./HuDeiCA5.js";import"./BOaUDKrY.js";import"./BhAJREfB.js";import"./Ii0NX4zW.js";import"./BIdEExY9.js";import"./SaSj47Qg.js";import"./BHkkGTJx.js";const Vs={key:1,class:"breadcrumb-wrapper breadcrumb-loading"},Us=I({__name:"BreadcrumbsWrapper",props:{product:{},isLoading:{type:Boolean}},setup(t){const e=t,s=y(()=>e.product?[...e.product.categories.map(o=>({title:o.name,url:o.path})),{title:e.product.title,url:e.product.link}]:[]);return(o,r)=>o.isLoading?(l(),_("div",Vs,[d(n(K),{height:"36px",width:"140px"})])):(l(),b(Ls,{key:0,breadcrumbs:n(s),"show-back-button":"","redirect-fallback":"/producten",class:"breadcrumb-wrapper"},null,8,["breadcrumbs"]))}}),qs=C(Us,[["__scopeId","data-v-d0bffe27"]]),Fs=M(!1),Je=M(null);function Ve(){const{customerId:t,isAuthenticated:e}=yt(),{runWithContext:s}=ns(),o=(a={})=>s(()=>rs().mutate({customerId:t.value,...a})),r=os({customerId:t.value});return r.onResult(({data:a})=>{a?.cdmCustomer?.preference&&(Je.value=a.cdmCustomer.preference)}),be(()=>{e.value&&r.load()}),{updatePreferences:o,preference:Je,showDietarySidebar:Fs}}const Qs={class:"allergy-warning-text"},Ys=["innerHTML"],et="Pas jouw allergenen aan",Xs=I({__name:"AllergyWarning",props:{product:{}},setup(t){const e=t,{showDietarySidebar:s}=Ve(),o=y(()=>e.product.customerAllergies?.showProductContainsMatchingAllergiesPrompt),r=y(()=>$(e.product.customerAllergies?.long)),a=kt("allergy-warning"),{stop:i}=bt(a,([{isIntersecting:h}])=>{h&&(X("message-impression",{message:{title:"Let op!",text:"Dit product bevat jouw allergenen",cta:et}}),i())});function c(){s.value=!0}return(h,g)=>n(o)?(l(),b(n(Ge),{key:0,ref:"allergy-warning",type:"note",class:"allergy-warning","analytics-tag":"allergy-warning"},{default:u(()=>[f("p",Qs,[g[0]||(g[0]=f("strong",null,[f("em",{class:"allergy-warning-script"},"Let op! ")],-1)),f("span",{innerHTML:n(r)},null,8,Ys)]),d(n(ue),{secondary:"",compact:"",onClick:c},{default:u(()=>[A(D(et))]),_:1})]),_:1},512)):m("",!0)}}),tt=C(Xs,[["__scopeId","data-v-0e5d2f50"]]);function Zs(t){const s=Object.entries({"Kies_mix_nieuw.png":"/assets/product-badges/svg/kies-and-mix-new.svg",Kies_mix_optimized_:"/assets/product-badges/svg/kies-and-mix.svg","alp.png":"/assets/product-badges/svg/prijspijl-altijd-lage-prijs.svg","kiesmix.png":"/assets/product-badges/svg/kies-and-mix.svg","nieuw-recept":"/assets/product-badges/svg/nieuw-recept.svg","nieuw.png":"/assets/product-badges/svg/nieuw.svg","sticker-freeze":"/assets/product-badges/svg/diepvries.svg",sticker_trophy:"/assets/product-badges/svg/prijswinnaar.svg","tht-1+.png":"/assets/product-badges/svg/1-dag-vers.svg","tht-10+.png":"/assets/product-badges/svg/10-dagen-vers.svg","tht-2+.png":"/assets/product-badges/svg/2-dagen-vers.svg","tht-3+.png":"/assets/product-badges/svg/3-dagen-vers.svg","tht-4+.png":"/assets/product-badges/svg/4-dagen-vers.svg","tht-5+.png":"/assets/product-badges/svg/5-dagen-vers.svg","tht-6+.png":"/assets/product-badges/svg/6-dagen-vers.svg","tht-7+.png":"/assets/product-badges/svg/7-dagen-vers.svg","tht-8+.png":"/assets/product-badges/svg/8-dagen-vers.svg","tht-9+.png":"/assets/product-badges/svg/9-dagen-vers.svg","van-dichtbij.png":"/assets/product-badges/svg/vandichtbij.svg"}).find(([o])=>t?.includes(o));return s?s[1]:t}const Js=I({__name:"CardProductContainer",props:{assistanceProduct:{default:null,type:Object},index:{default:null,type:Number},atbSubtype:{required:!0,type:String},product:{required:!0,type:Object},type:{default:void 0,type:String}},setup(t){const e=t,s=M(!1),o=M(null),r=_t(e.product?.id),a=y(()=>e.product?.assortmentEligibility.orderable),i=y(()=>Os(e.product?.characteristics?.freshness)),c=y(()=>!!r.basketQuantity.value),h=y(()=>({atbType:"product detail",atbSubtype:e.atbSubtype||"product detail",index:e.index,assistanceProduct:e.assistanceProduct}));function g(S){return S.price||{}}function p(S){const T=S?.promotions?.[0],v=Tt(T?.primaryBadges??S?.primaryProductBadges);return v.image?{...v,image:Zs(v.image)}:void 0}function k(S){const{promotions:T}=S;
1if(!(!T||!Array.isArray(T)||T.length===0))return{tagList:(T[0].tags||[]).map(v=>v.text).reverse(),type:$s(!1,T[0].isKiesAndMix)}}const P=y(()=>e.product?.customerAllergies?.short),E=()=>{X("product-click",{product:[e.product],productIndex:e.index,assistanceProduct:e.assistanceProduct,component:"jum-card-product",clickType:"product detail",clickSubtype:e.atbSubtype})};return(S,T)=>(l(),b(n(Gs),{ref_key:"productRef",ref:o,class:"card-product-container","data-processing-restricted":t.product.dataProcessingRestricted,allergens:n(P),orderable:t.product.assortmentEligibility.orderable,availability:t.product.availability,badge:p(t.product)||void 0,"characteristics-tags":t.product.characteristics?.tags,freshness:n(i),"volume-discount-promotion-text":t.product.promotions?.[0]?.durationTexts?.shortTitle,image:t.product.image,"is-checked":n(c),link:t.product.link||"",logo:t.product.characteristics?.logo,"price-per-unit":n(a)?t.product.price?.pricePerUnit:null,price:n(a)?g(t.product).price:null,"promo-price":n(a)?g(t.product).promoPrice:null,promotions:t.product.promotions,"show-overlay":n(s),sponsored:t.product.sponsored,tags:k(t.product),title:t.product.title,type:t.type,weight:t.product.subtitle,"data-test":"shared:product-wrapper:product-card","is-nuxt":"",onClick:E},{actions:u(()=>[ze(S.$slots,"default",{},void 0,!0),d(Ke,{class:"card-product-container__button",product:t.product,"analytics-params":n(h),onOpened:T[0]||(T[0]=v=>s.value=!0),onClosed:T[1]||(T[1]=v=>s.value=!1)},null,8,["product","analytics-params"])]),_:3},8,["data-processing-restricted","allergens","orderable","availability","badge","characteristics-tags","freshness","volume-discount-promotion-text","image","is-checked","link","logo","price-per-unit","price","promo-price","promotions","show-overlay","sponsored","tags","title","type","weight"]))}}),Ot=C(Js,[["__scopeId","data-v-01734fcb"]]),en={class:"retail-set-products"},tn=I({__name:"RetailSetProducts",props:{products:{}},setup(t){return(e,s)=>(l(),_("div",en,[d(n(w),{h3:"",styled:"h4",strong:""},{default:u(()=>s[0]||(s[0]=[A("Inhoud van deze set")])),_:1}),s[1]||(s[1]=f("p",null," De volgende producten zijn onderdeel van deze set. Voeg ze hieronder één voor één toe aan je boodschappenlijst of voeg de set hierboven in zijn geheel toe. ",-1)),d(n(Lt),{m:3,xl:4},{default:u(()=>[(l(!0),_(B,null,Y(e.products.retailSetProducts,o=>(l(),b(Ot,{key:o.id,product:o,"atb-subtype":"virtual bundle"},null,8,["product"]))),128))]),_:1})]))}}),sn=C(tn,[["__scopeId","data-v-fe8a8843"]]),nn={key:0,class:"nutriScore-block"},on={class:"image"},rn=["src","alt"],an=I({__name:"NutriScore",props:{nutriScore:{default:()=>null,type:Object}},setup(t){const e=t,s=y(()=>`Nutri-score-${e.nutriScore?.value}`);return(o,r)=>t.nutriScore!==null?(l(),_("div",nn,[f("div",on,[f("img",{src:t.nutriScore.url,alt:n(s),width:"96",height:"52"},null,8,rn)])])):m("",!0)}}),ln=C(an,[["__scopeId","data-v-b6088d1d"]]),cn=""+new URL("assets/allergy-information-59WuzhOe.png",import.meta.url).href;function te(t,e){X("click",{action:"other click",label:t,value:e?"expanded":"collapsed",componentRoot:"product detail page",componentParent:"product detail",componentSection:"product information"})}const un={noCelery:{label:"selderij",matches:["selderij"]},noCrustacean:{label:"schaaldieren",matches:["schaaldieren","gamba","garnaal","kreeft"," schaal"]},noEgg:{label:"eieren",matches:["eieren"]},noFish:{label:"vis",matches:["ansjovis","forel","haring","heek","heilbot","kabeljauw","koolvis","makreel","sardine","tilapia","tonijn","vis","zalm"]},noGluten:{label:"gluten",matches:["gluten"]},noLactose:{label:"lactose",matches:["lactose","zuivelproducten"]},noLupin:{label:"lupine",matches:["lupine"]},noMilk:{label:"melk",matches:["melk"]},noMolluscs:{label:"weekdieren",matches:["weekdieren","schelp","eendenmossel","mosselen","oesters"]},noMustard:{label:"mosterd",matches:["mosterd"]},noPeanut:{label:"pinda's",matches:["pinda"]},noSesame:{label:"sesam",matches:["sesam"]},noSoy:{label:"soja",matches:["soja"]},noSulphites:{label:"zwaveldioxide/sulfieten",matches:["zwaveldioxide/sulfieten","sulfieten","zwaveldioxide"]},noTreenut:{label:"noten",matches:["noten","amandel","boomnoten","cashew","hazel","macadamian","pecan","pinda","pistache","walno","paranoot","pecannoot","queenslandnoten"]},noWheat:{label:"tarwe",matches:["tarwe","gerst","haver","kamut","khorasantarwe","rogge","spelt","triticale"]}},dn={class:"allergy-sidebar-container"},pn={class:"header"},hn={class:"options"},gn={class:"dietary-selector"},mn=["onClick","onKeydown"],fn={class:"feedback"},vn=["onKeydown"],yn=I({__name:"AllergySideBar",setup(t){const{preference:e,showDietarySidebar:s,updatePreferences:o}=Ve(),r=M(null),a=M(!1),i=M(!1),c=y(()=>r.value.reduce((S,T)=>({...S,[T.key]:T.checked}),{})),h=y(()=>
1Object.values(c.value).filter(Boolean).length);de(e,()=>{r.value=Object.entries(un).map(([S,T])=>({checked:!!e?.value?.dietary?.[S],key:S,label:T.label}))},{immediate:!0});function g(S){return S.charAt(0).toUpperCase()+S.substr(1)}function p(){window?.usabilla_live?(localStorage.removeItem("usbl.3d903768195b.c.f15f396fed2e"),window.usabilla_live?.("virtualPageView"),window.usabilla_live?.("trigger","myprofile_dietary")):window.location.assign("/service")}async function k(){const S={...c.value,active:!0};try{await o(S)&&(s.value=!1,a.value=!1,window.location.reload())}catch(T){i.value=!0,console.error(T)}}function P(){e?.value.dietary?.active?k():a.value=!0}function E(){i.value=!1,s.value=!1}return(S,T)=>n(s)?(l(),b(n(At),{key:0,class:"allergy-sidebar",onClose:T[3]||(T[3]=v=>s.value=!1)},{footer:u(()=>[d(n(ue),{class:"submit-button","data-total-boxes":n(h),onClick:P},{default:u(()=>T[12]||(T[12]=[A(" Allergenen opslaan ")])),_:1},8,["data-total-boxes"])]),default:u(()=>[f("div",dn,[f("div",pn,[d(n(w),{h3:"",class:"title"},{default:u(()=>T[4]||(T[4]=[A(" Met welke "),f("strong",null,"allergenen",-1),A(" mogen we rekening houden? ")])),_:1}),T[7]||(T[7]=f("p",{class:"description"}," Vul hieronder in welke allergenen voor jou van toepassing zijn zodat wij de productinformatie persoonlijker kunnen maken. ",-1)),d(n(ee),{onToggle:T[0]||(T[0]=v=>n(te)("allergy information",v))},{title:u(()=>T[5]||(T[5]=[f("p",null,"Meer informatie",-1)])),default:u(()=>[T[6]||(T[6]=f("picture",{class:"picture"},[f("img",{class:"image",src:cn,alt:""})],-1))]),_:1})]),f("div",hn,[f("section",gn,[(l(!0),_(B,null,Y(n(r),v=>(l(),_("div",{key:v.key,onClick:ce(G=>v.checked=!v.checked,["prevent"]),onKeydown:Ee(G=>v.checked=!v.checked,["enter"])},[d(n(Ie),{class:"dietary-selector-item",accent:v.checked?"left":""},{default:u(()=>[d(n(as),{id:v.key,modelValue:v.checked,"onUpdate:modelValue":G=>v.checked=G,name:v.label,class:"dietary-selector-checkbox"},{default:u(()=>[A(D(g(v.label)),1)]),_:2},1032,["id","modelValue","onUpdate:modelValue","name"])]),_:2},1032,["accent"])],40,mn))),128))]),f("p",fn,[T[9]||(T[9]=A(" Staat jouw dieetvoorkeur er niet tussen? ")),f("a",{class:"feedback-link",href:"#",onClick:ce(p,["prevent"]),onKeydown:Ee(ce(p,["prevent"]),["enter"])},T[8]||(T[8]=[f("u",null,"Laat het ons weten.",-1)]),40,vn)])]),d(n(Rs),{modelValue:n(a),"onUpdate:modelValue":T[1]||(T[1]=v=>is(a)?a.value=v:null),"confirm-text":"Ja, sla mijn voorkeuren op","cancel-text":"Nee",persistent:!0,class:"allergy-confirm-dialog",onCancel:T[2]||(T[2]=v=>a.value=!1),onConfirm:k},{default:u(()=>[d(n(w),{bold:"",h4:""},{default:u(()=>T[10]||(T[10]=[A("Mogen wij jouw voorkeuren opslaan en gebruiken?")])),_:1}),T[11]||(T[11]=f("p",null,[A(" We hebben je toestemming nodig om je voorkeuren te gebruiken om informatie, aanbiedingen en diensten persoonlijker te kunnen maken. Controleer zelf altijd nog de verpakking van het product op wijzigingen van ingrediënten en allergenen waarschuwingen. Bekijk het "),f("a",{href:"https://www.jumbo.com/service/cookies-privacy#privacy-statement",target:"_blank",rel:"noopener"},"privacy statement"),A(" voor meer informatie. ")],-1))]),_:1},8,["modelValue"])]),n(i)?(l(),b(n(Pt),{key:0,onClosed:E},{default:u(()=>T[13]||(T[13]=[A(" Er is iets fout gegaan met het opslaan van je voorkeuren. Probeer het later opnieuw. ")])),_:1})):m("",!0)]),_:1})):m("",!0)}}),bn=C(yn,[["__scopeId","data-v-ad3f2a4e"]]),N=t=>(t||"").replace(/\n/g,"<br />"),kn=["innerHTML"],_n=["innerHTML"],Tn=I({__name:"AdditivesBlock",props:{additives:{default:""},mandatoryInformation:{default:""},open:{type:Boolean,default:!0}},setup(t){const e=t,s=y(()=>$(N(e.additives||e.mandatoryInformation))),o=y(()=>$(N(e.mandatoryInformation)));return(r,a)=>(l(),b(Z(r.open?"div":n(ee)),{"data-testid":"additives-collapsible","analytics-tag":"toevoegingen",class:V({divider:r.open}),open:r.open,disabled:r.open,onToggle:a[0]||(a[0]=i=>n(te)("additives",i))},se({default:u(()=>[r.open?(l(),b(n(w),{key:0,h2:"",bold:"",styled:"h4",class:"header"},{default:u(()=>[A(D(r.additives?"Toevoegingen":"Extra informatie"),1)]),_:1})):m("",!0),f("p",{innerHTML:n(s)},null,8,kn),r.additives&&r.mandatoryInformation?(l(),_(B,{key:1},[d(n(w),{h5:"",bold:""},{default:u(()=>a[1]||(a[1]=[A("Extra informatie")])),_:1}),f("p",{innerHTML:n(o)},null,8,_n)],64)):m("",!0)]),_:2},[r.open?void 0:{name:"title",fn:u(()=>[d(n(w),{h3:"",bold:"",styled:"h6"},{default:u(()=>[A(D(r.additives?"Toevoegingen":"Extra informatie"),1)]),_:1})]),key:"0"}]),1064,["class","open","disabled"]))}}),An=C(Tn,[["__scopeId","data-v-d982d8fd"]]),Pn={ref:"allergy-prompt"},Sn={class:"allergy-prompt-text"},wn={class:"allergy-prompt-script"},Mn=I({__name:"AllergyPrompt",props:{product:{}},setup(t){const e=t,s=kt("allergy-prompt"),{showDietarySidebar:o}=Ve(),{isAuthenticated:r}=yt(),a=De(),{action:i,text:c,title:h}=e.product?.customerAllergies?.prompt??{},{stop:g}=bt(s,([{isIntersecting:P}])=>{P&&(X("message-impression",{message:{title:h,text:c,cta:i}}),g())}),p=()=>{o.value=!0},k=`/inloggen?SourceURL=${a.fullPath}?showDietarySidebar`;return(P,E)=>(l(),_("div",Pn,[d(n(Ge),{type:"note",class:"allergy-prompt","analytics-tag":"allergy-prompt"},{default:u(()=>[f("p",Sn,[d(n(w),{h3:"",bold:"",styled:"h6"},{default:u(()=>[f("em",wn,D(n(h))+" ",1)]),_:1}),A(" "+D(n(c)),1)]),d(n(ue),{compact:"",href:n(r)?void 0:k,onClick:E[0]||(E[0]=S=>n(r)?p():void 0)},{default:u(()=>[A(D(n(i)),1)]),_:1},8,["href"])]),_:1})],512))}}),st=C(Mn,[["__scopeId","data-v-9da8669a"]]),In=["src"],En=I({__name:"LifestyleImages",props:{images:{}}
1,setup(t){return(e,s)=>(l(),_("figure",{class:V(["lifestyle-images",{"has-3":e.images?.length===3}])},[(l(!0),_(B,null,Y(e.images,(o,r)=>(l(),_("div",{key:r,class:V({ml:r!==0})},[f("img",{src:o.image,alt:"",class:"image",width:"100%",height:"auto",loading:"lazy"},null,8,In)],2))),128))],2))}}),Cn=C(En,[["__scopeId","data-v-65df41a0"]]),Ln={"data-testid":"product-description-text-body",class:"text-body"},Bn=["innerHTML"],Dn=["innerHTML"],Gn={key:2,class:"block"},$n=I({__name:"DescriptionBlock",props:{additionalImages:{},alcoholPercentage:{},description:{},open:{type:Boolean},regulatedProductName:{}},setup(t){const e=t,s=y(()=>$(N(e.regulatedProductName))),o=y(()=>$(N(e.description)));return(r,a)=>(l(),b(Z(r.open?"div":n(ee)),{"data-testid":"product-description-collapsible","analytics-tag":"product description collapsible",class:V({divider:r.open}),open:r.open,disabled:r.open,onToggle:a[0]||(a[0]=i=>n(te)("product description",i))},se({default:u(()=>[r.open?(l(),b(n(w),{key:0,h2:"",bold:"",styled:"h4",class:"header"},{default:u(()=>a[1]||(a[1]=[A(" Productomschrijving ")])),_:1})):m("",!0),f("div",Ln,[r.regulatedProductName?(l(),_("p",{key:0,class:"block",innerHTML:n(s)},null,8,Bn)):m("",!0),r.description?(l(),_("p",{key:1,class:"block",innerHTML:n(o)},null,8,Dn)):m("",!0),r.alcoholPercentage?(l(),_("p",Gn,"Alcohol Percentage: "+D(r.alcoholPercentage)+"%.",1)):m("",!0),r.additionalImages?.length?(l(),b(Cn,{key:3,images:r.additionalImages},null,8,["images"])):m("",!0)])]),_:2},[r.open?void 0:{name:"title",fn:u(()=>[d(n(w),{h3:"",bold:"",styled:"h6"},{default:u(()=>a[2]||(a[2]=[A(" Productomschrijving ")])),_:1})]),key:"0"}]),1064,["class","open","disabled"]))}}),On=C($n,[["__scopeId","data-v-8879ff8c"]]),Rn={class:"list"},Nn={key:0,class:"item"},Hn={key:1,class:"item"},xn=I({__name:"AllergiesBlock",props:{allergies:{}},setup(t){const e=t,s=y(()=>e.allergies?.contains??[]),o=y(()=>e.allergies?.mayContain??[]);return(r,a)=>(l(),_("div",Rn,[n(s)?.length?(l(),_("div",Nn,[d(n(w),{h3:"",bold:"",styled:"h6"},{default:u(()=>a[0]||(a[0]=[A("Bevat: ")])),_:1}),f("span",null,D(n(s).join(", ")),1)])):m("",!0),n(o)?.length?(l(),_("div",Hn,[d(n(w),{h3:"",bold:"",styled:"h6"},{default:u(()=>a[1]||(a[1]=[A("Kan bevatten: ")])),_:1}),f("span",null,D(n(o).join(", ")),1)])):m("",!0)]))}}),nt=C(xn,[["__scopeId","data-v-514df5bc"]]),zn=["open","disabled"],jn=["innerHTML"],Wn=I({__name:"IngredientsBlock",props:{allergies:{},ingredients:{},open:{type:Boolean}},setup(t){const e=t,s=y(()=>e.ingredients?.length&&(e.allergies?.mayContain?.length||e.allergies?.contains?.length)),o=y(()=>e.ingredients?.length),r=y(()=>e.ingredients?.map(a=>$(a)));return(a,i)=>(l(),_("div",{"data-testid":"ingredients-collapsible","analytics-tag":"ingredients collapsible",open:a.open,disabled:a.open,class:"container"},[d(n(w),{h2:"",bold:"",styled:"h4",class:"title"},{default:u(()=>[A(D(n(o)?"Ingrediënten":"Allergenen"),1)]),_:1}),n(o)?(l(),_("p",{key:0,class:"ingredients-text","data-testid":"ingredients-text-body",innerHTML:n(r).join(", ")},null,8,jn)):(l(),b(nt,{key:1,allergies:a.allergies},null,8,["allergies"])),n(s)?(l(),_(B,{key:2},[d(n(w),{"data-testid":"allergens-title",h5:"",bold:"",class:"title"},{default:u(()=>i[0]||(i[0]=[A("Allergenen")])),_:1}),d(nt,{"data-testid":"allergens-content",allergies:a.allergies},null,8,["allergies"])],64)):m("",!0),ze(a.$slots,"default",{},void 0,!0)],8,zn))}}),Kn=C(Wn,[["__scopeId","data-v-fc054175"]]),Vn=["innerHTML"],Un=["innerHTML"],qn=["innerHTML"],Fn=["innerHTML"],Qn=I({__name:"ManufacturerBlock",props:{manufacturer:{},open:{type:Boolean}},setup(t){const e=t,{description:s,website:o,address:r,phone:a}=e.manufacturer||{},i=y(()=>N($(s))),c=y(()=>N($(o))),h=y(()=>N($(r))),g=y(()=>$(a)),p=y(()=>s||o||r||a);return(k,P)=>n(p)?(l(),b(Z(k.open?"div":n(ee)),{key:0,"data-testid":"about-the-manufacturer-collapsible","analytics-tag":"manufacturer collapsible",class:V({divider:k.open}),open:k.open,disabled:k.open,onToggle:P[0]||(P[0]=E=>n(te)("manufacturer",E))},se({default:u(()=>[k.open?(l(),b(n(w),{key:0,h2:"",bold:"",styled:"h4",class:"header"},{default:u(()=>P[1]||(P[1]=[A(" Over de fabrikant ")])),_:1})):m("",!0),n(s)?(l(),_(B,{key:1},[d(n(w),{h3:"",bold:"",styled:"h6"},{default:u(()=>P[3]||(P[3]=[A("Merk")])),_:1}),f("p",{innerHTML:n(i)},null,8,Vn)],64)):m("",!0),n(o)?(l(),_(B,{key:2},[d(n(w),{h3:"",bold:"",styled:"h6","data-testid":"manufacturer-website"},{default:u(()=>P[4]||(P[4]=[A("Website")])),_:1}),f("p",{innerHTML:n(c)},null,8,Un)],64)):m("",!0),n(r)?(l(),_(B,{key:3},[d(n(w),{h3:"",bold:"",styled:"h6","data-testid":"manufacturer-address"},{default:u(()=>P[5]||(P[5]=[A("Adres")])),_:1}),f("p",{innerHTML:n(h)},null,8,qn)],64)):m("",!0),n(a)?(l(),_(B,{key:4},[d(n(w),{h3:"",bold:"",styled:"h6"},{default:u(()=>P[6]||(P[6]=[A("Telefoonnummer")])),_:1}),f("p",{innerHTML:n(g)},null,8,Fn)],64)):m("",!0)]),_:2},[k.open?void 0:{name:"title",fn:u(()=>[d(n(w),{h3:"",bold:"",styled:"h6"},{default:u(()=>P[2]||(P[2]=[A(" Over de fabrikant ")])),_:1})]),key:"0"}]),1064,["class","open","disabled"])):m("",!0)}}
1),Yn=C(Qn,[["__scopeId","data-v-85df689a"]]);function Xn(){const t=M(null),e="/experience-fragments/pdp/medicine-disclaimer/master.model.json";async function s(){try{const{data:o,error:r}=await Ns(e,{baseURL:ls().public.baseUrl,server:!1,key:"medicine-disclaimer",getCachedData(a,i){return i.payload.data[a]||i.static.data[a]}},"$YuZboe8iZ8");de(o,a=>{a?.data?.text?.text&&(t.value=a.data.text.text)},{immediate:!0}),r.value&&(t.value=null,console.error(r.value,e,JSON.stringify(r.value)))}catch(o){return t.value=null,console.error(o),null}}return s(),t}const Zn={key:0,class:"medicine-block"},Jn=["innerHTML"],eo=["src"],to=I({__name:"MedicineBlock",props:{ean:{required:!0,type:String},open:{default:!0,type:Boolean}},setup(t){const e=t,s=M(!1),o=Xn(),r=y(()=>$(o.value)),a=y(()=>`https://otc.themedguidecompany.com/dayes/medicine-checker/${e.ean}`);return(i,c)=>n(r)?(l(),_("div",Zn,[(l(),b(Z(t.open?"div":n(ee)),{"analytics-tag":"medicine collapsible",class:V({divider:t.open}),open:t.open,disabled:t.open,onToggle:c[1]||(c[1]=h=>n(te)("medicine",h))},se({default:u(()=>[t.open?(l(),b(n(w),{key:0,h2:"",bold:"",styled:"h4",class:"header"},{default:u(()=>c[3]||(c[3]=[A(" Kan je dit product gebruiken, en hoe? ")])),_:1})):m("",!0),f("div",{innerHTML:n(r)},null,8,Jn),t.ean?(l(),b(n(ue),{key:1,secondary:"",class:"medicine-button",onClick:c[0]||(c[0]=ce(h=>s.value=!0,["prevent"]))},{default:u(()=>c[5]||(c[5]=[A(" Check je medicijn ")])),_:1})):m("",!0)]),_:2},[t.open?void 0:{name:"title",fn:u(()=>[d(n(w),{h3:"",bold:"",styled:"h6"},{default:u(()=>c[4]||(c[4]=[A(" Kan je dit product gebruiken, en hoe? ")])),_:1})]),key:"0"}]),1064,["class","open","disabled"])),n(s)&&t.ean?(l(),b(n(At),{key:0,class:"medicijn-offcanvas",stroke:"",onClose:c[2]||(c[2]=h=>s.value=!1)},{default:u(()=>[f("iframe",{class:"checkjemedicijn",src:n(a),title:"checkjemedicijn app"},null,8,eo)]),_:1})):m("",!0)])):m("",!0)}}),so=C(to,[["__scopeId","data-v-bcf00fc1"]]),no=["innerHTML"],oo=I({__name:"NutritionAndHealth",props:{nutritionHealthClaims:{default:""},open:{type:Boolean,default:!0}},setup(t){const e=t,s=y(()=>N($(e.nutritionHealthClaims)));return(o,r)=>(l(),b(Z(o.open?"div":n(ee)),{"data-testid":"nutrition-and-health-collapsible","analytics-tag":"voeding en gezondheid",class:V({divider:o.open}),open:o.open,disabled:o.open,onToggle:r[0]||(r[0]=a=>n(te)("nutrition and health",a))},se({default:u(()=>[o.open?(l(),b(n(w),{key:0,h2:"",bold:"",styled:"h4",class:"header"},{default:u(()=>r[1]||(r[1]=[A(" Voeding en gezondheid ")])),_:1})):m("",!0),f("p",{innerHTML:n(s)},null,8,no)]),_:2},[o.open?void 0:{name:"title",fn:u(()=>[d(n(w),{h3:"",bold:"",styled:"h6"},{default:u(()=>r[2]||(r[2]=[A(" Voeding en gezondheid ")])),_:1})]),key:"0"}]),1064,["class","open","disabled"]))}}),ro=C(oo,[["__scopeId","data-v-c7e1036a"]]),ao=["colspan","innerHTML"],io=I({__name:"NutritionsBlock",props:{nutritions:{},open:{type:Boolean}},setup(t){const e=t,{columns:s,rows:o}=e.nutritions||{},r=y(()=>Array.isArray(o)&&Array.isArray(s)),a=y(()=>o?.map(i=>i?.map?.(c=>$(c))));return(i,c)=>n(r)?(l(),b(Z(i.open?"div":n(ee)),{key:0,class:"nutritions",open:i.open,disabled:i.open,"analytics-tag":"nutritions collapsible","data-testid":"nutritional-values-collapsible",onToggle:c[0]||(c[0]=h=>n(te)("nutritional values",h))},se({default:u(()=>[i.open?(l(),b(n(w),{key:0,h2:"",bold:"",styled:"h4",class:"header"},{default:u(()=>c[1]||(c[1]=[A("Voedingswaarden")])),_:1})):m("",!0),d(n(Hs),{"data-testid":"nutritional-values-table-content",striped:"",headers:n(s)},{body:u(()=>[f("tbody",null,[(l(!0),_(B,null,Y(n(a),(h,g)=>(l(),_("tr",{key:`row-${g}`,class:"row"},[(l(!0),_(B,null,Y(h,(p,k)=>(l(),_("td",{key:`cell-${k}`,colspan:h.length===1?n(s)?.length:void 0,class:V([{"sub-label":(p||"").toLowerCase().includes("waarvan")},"column"]),innerHTML:p},null,10,ao))),128))]))),128))])]),_:1},8,["headers"])]),_:2},[i.open?void 0:{name:"title",fn:u(()=>[d(n(w),{h3:"",bold:"",styled:"h6"},{default:u(()=>c[2]||(c[2]=[A("Voedingswaarden")])),_:1})]),key:"0"}]),1064,["open","disabled"])):m("",!0)}}),lo=C(io,[["__scopeId","data-v-ae6672b1"]]),co=["innerHTML"],uo=["innerHTML"],po=["innerHTML"],ho=["innerHTML"],go=["innerHTML"],mo=["innerHTML"],fo=["innerHTML"],vo=I({__name:"OriginBlock",props:{fishCatchArea:{default:""},fishOriginFreeText:{default:""},fishPlaceOfProvenance:{default:""},open:{type:Boolean,default:!0},origin:{default:""},placeOfBirth:{default:""},placeOfRearing:{default:""},placeOfSlaughter:{default:""},rootCategory:{default:""}},setup(t){const e=t,s=y(()=>$(N(e.origin))),o=y(()=>$(N(e.placeOfRearing))),r=y(()=>$(N(e.fishCatchArea))),a=y(()=>$(N(e.placeOfSlaughter))),i=y(()=>$(N(e.placeOfBirth))),c=y(()=>$(N(e.fishOriginFreeText))),h=y(()=>$(N(e.fishPlaceOfProvenance))),g=y(()=>e.rootCategory!=="Aardappelen, groente en fruit"?"Herkomst":"Oorsprong");return(p,k)=>(l(),b(Z(p.open?"div":n(ee)),{"data-testid":"origin-collapsible","analytics-tag":"origin collapsible",class:V({divider:p.open}),open:p.open,disabled:p.open,onToggle:k[0]||(k[0]=P=>n(te)("origin",P))},se({default:u(()=>[p.open?(l(),b(n(w),{key:0,h2:"",bold:"",styled:"h4",class:"header"},{default:u(()=>[A(D(n(g)),1)]),_:1})):m("",!0),p.origin?(l(),_(B,{key:1},[d(n(w),{h3:"",bold:"",styled:"h6"},{default:u(()=>[A("Land van "+D(n(g).toLowerCase()),1)]),_:1}),f("p",{innerHTML:n(s)},null,8,co)],64)):m("",!0),p.placeOfRearing?(l(),_(B,{key:2},[d(n(w),{h3:"",bold:"",styled:"h6"},{default:u(()=>k[1]||(k[1]=[A("Plaats van herkomst")])),_:1}),f("p",{innerHTML:n(o)},null,8,uo)],64)):m("",!0),p.fishCatchArea?(l(),_(B,{key:3},[d(n(w),{h3:"",bold:"",styled:"h6"},{default:u(()=>k[2]||(k[2]=[A("Visgebied")])),_:1}),f("p",{innerHTML:n(r)},null,8,po)],64)):m("",!0),p.placeOfSlaughter?(l(),_(B,{key:4},[d(n(w),{h3:"",bold:"",styled:"h6"},{default:u(()=>k[3]||(k[3]=[A("Geslacht in")])),_:1}),f("p",{innerHTML:n(a)},null,8,ho)],64)):m("",!0),p.placeOfBirth?(l(),_(B,{key:5},[d(n(w),{h3:"",bold:"",styled:"h6"},{default:u(()=>k[4]||(k[4]=[A("Geboren in")])),_:1}),f("p",{innerHTML:n(i)},null,8,go)],64)):m("",!0),p.fishOriginFreeText?(l(),_(B,{key:6},[d(n(w),{h3:"",bold:"",styled:"h6"},{default:u(()=>k[5]||(k[5]=[A("Herkomst")])),_:1}),f("p",{innerHTML:n(c)},null,8,mo)],64)):m("",!0),p.fishPlaceOfProvenance?(l(),_(B,{key:7},[d(n(w),{h3:"",bold:"",styled:"h6"},{default:u(()=>k[6]||(k[6]=[A("Plaats van herkomst")])),_:1}),f("p",{innerHTML:n(h)},null,8,fo)],64)):m("",!0)]),_:2},[p.open?void 0:{name:"title",fn:u(()=>[d(n(w),{h3:"",bold:"",styled:"h6"},{default:u(()=>[A(D(n(g)),1)]),_:1})]),key:"0"}]),1064,["class","open","disabled"]))}}),yo=C(vo,[["__scopeId","data-v-e6411d91"]]),bo=["innerHTML"],ko=I({__name:"PreparationBlock",props:{open:{type:Boolean},preparation:{}},setup(t){const e=t,s=y(()=>N($(e.preparation)));return(o,r)=>(l(),b(Z(o.open?"div":n(ee)),{"data-testid":"preparation-method-collapsible","analytics-tag":"product preparation collapsible",class:V({divider:o.open}),open:o.open,disabled:o.open,onToggle:r[0]||(r[0]=a=>n(te)("preparation method",a))},se({default:u(()=>[o.open?(l(),b(n(w),{key:0,h2:"",bold:"",styled:"h4",class:"header"},{default:u(()=>r[1]||(r[1]=[A(" Bereidingsmethode ")])),_:1})):m("",!0),f("p",{"data-testid":"preparation-text-body",innerHTML:n(s)},null,8,bo)]),_:2},[o.open?void 0:{name:"title",fn:u(()=>[d(n(w),{h3:"",bold:"",styled:"h6"},{default:u(()=>r[2]||(r[2]=[A(" Bereidingsmethode ")])),_:1})]),key:"0"}]),1064,["class","open","disabled"]))}}),_o=C(ko,[["__scopeId","data-v-e39ebfc6"]]),To=["innerHTML"],Ao=["innerHTML"],Po=["innerHTML"],So=I({__name:"UsageAndStorage",props:{open:{type:Boolean,default:!0},recycling:{default:""},safetyWarning:{default:""},storage:{default:""}},setup(t){const e=t,s=y(()=>$(N(e.storage))),o=y(()=>$(N(e.recycling))),r=y(()=>$(N(e.safetyWarning)));return(a,i)=>a.storage||a.recycling||a.safetyWarning?(l(),b(Z(a.open?"div":n(ee)),{key:0,"anal
1ytics-tag":"storage and usage collapsible",class:V({divider:a.open}),open:a.open,disabled:a.open,"data-testid":"usage-and-storage-collapsible",onToggle:i[0]||(i[0]=c=>n(te)("storage and usage",c))},se({default:u(()=>[a.open?(l(),b(n(w),{key:0,h2:"",bold:"",styled:"h4",class:"header"},{default:u(()=>i[1]||(i[1]=[A(" Bewaren & gebruik ")])),_:1})):m("",!0),a.storage?(l(),_(B,{key:1},[d(n(w),{h3:"",bold:"",styled:"h6"},{default:u(()=>i[3]||(i[3]=[A("Bewaren")])),_:1}),f("p",{"data-testid":"usage-and-storage-text-body",innerHTML:n(s)},null,8,To)],64)):m("",!0),a.recycling?(l(),_(B,{key:2},[d(n(w),{h3:"",bold:"",styled:"h6"},{default:u(()=>i[4]||(i[4]=[A("Recycling")])),_:1}),f("p",{innerHTML:n(o)},null,8,Ao)],64)):m("",!0),a.safetyWarning?(l(),_("p",{key:3,innerHTML:n(r)},null,8,Po)):m("",!0)]),_:2},[a.open?void 0:{name:"title",fn:u(()=>[d(n(w),{h3:"",bold:"",styled:"h6"},{default:u(()=>i[2]||(i[2]=[A(" Bewaren & gebruik ")])),_:1})]),key:"0"}]),1064,["class","open","disabled"])):m("",!0)}}),wo=C(So,[["__scopeId","data-v-429317b0"]]),Mo={key:0,class:"product-detail"},Io=I({__name:"ProductDetails",props:{product:{}},setup(t){const e=t,s=y(()=>e.product.nutritionsTable?.rows?.length&&e.product.nutritionsTable?.columns?.length),o=y(()=>e.product.origin||e.product.fishCatchArea||e.product.fishOriginFreeText||e.product.fishPlaceOfProvenance||e.product.placeOfRearing||e.product.placeOfSlaughter||e.product.placeOfBirth),r=y(()=>e.product.description||e.product.additionalImages?.length||e.product.preparationAndUsage||e.product.ingredients?.length||e.product.storage||e.product.recycling||e.product.manufacturer||e.product.isMedicine||e.product?.productAllergens?.contains?.length||e.product?.productAllergens?.mayContain?.length||s.value||o.value),a=y(()=>e.product.description||e.product.additionalImages?.length||e.product.alcoholByVolume||e.product.regulatedProductName),i=y(()=>({medicine:!!e.product.isMedicine,ingredientsAndAllergies:!!(e.product?.ingredients?.length||e.product?.productAllergens?.contains?.length||e.product?.productAllergens?.mayContain?.length),nutritions:!!s.value,description:!!a.value,preparation:!!e.product.preparationAndUsage,usageAndStorage:!!(e.product.storage||e.product.recycling||e.product.safetyWarning||e.product.safety),additivesAndMandatory:!!(e.product.additives||e.product.mandatoryInformation),nutritionHealthClaims:!!e.product.nutritionHealthClaims,manufacturer:!!(e.product.manufacturer?.description||e.product.manufacturer?.website||e.product.manufacturer?.address||e.product.manufacturer?.phone),origin:!!o.value})),c=y(()=>e.product.customerAllergies?.showConfigureDietaryPreferencesPrompt);function h(g){const p=Object.keys(i.value).filter(k=>i.value[k]);return p.includes(g)&&p.indexOf(g)<2}return(g,p)=>n(r)?(l(),_("div",Mo,[n(i).medicine?(l(),b(so,{key:0,ean:g.product.ean,open:h("medicine")},null,8,["ean","open"])):m("",!0),!n(i).ingredientsAndAllergies&&n(c)?(l(),b(st,{key:1,product:g.product},null,8,["product"])):m("",!0),n(i).ingredientsAndAllergies?(l(),b(Kn,{key:2,ingredients:g.product.ingredients,allergies:g.product.productAllergens,open:h("ingredientsAndAllergies")},{default:u(()=>[n(c)?(l(),b(st,{key:0,product:g.product},null,8,["product"])):m("",!0)]),_:1},8,["ingredients","allergies","open"])):m("",!0),n(i).nutritions?(l(),b(lo,{key:3,nutritions:g.product.nutritionsTable,open:h("nutritions")},null,8,["nutritions","open"])):m("",!0),n(i).description?(l(),b(On,{key:4,description:g.product.description,"additional-images":g.product.additionalImages,"alcohol-percentage":g.product.alcoholByVolume,"regulated-product-name":g.product.regulatedProductName,open:h("description")},null,8,["description","additional-images","alcohol-percentage","regulated-product-name","open"])):m("",!0),n(i).preparation?(l(),b(_o,{key:5,preparation:g.product.preparationAndUsage,open:h("preparation")},null,8,["preparation","open"])):m("",!0),n(i).usageAndStorage?(l(),b(wo,{key:6,storage:g.product.storage,recycling:g.product.recycling,"safety-warning":g.product.safetyWarning||g.product.safety,open:h("usageAndStorage")},null,8,["storage","recycling","safety-warning","open"])):m("",!0),n(i).additivesAndMandatory?(l(),b(An,{key:7,additives:g.product.additives,"mandatory-information":g.product.mandatoryInformation,open:h("additivesAndMandatory")},null,8,["additives","mandatory-information","open"])):m("",!0),n(i).nutritionHealthClaims?(l(),b(ro,{key:8,"nutrition-health-claims":g.product.nutritionHealthClaims,open:h("nutritionHealthClaims")},null,8,["nutrition-health-claims","open"])):m("",!0),n(i).manufacturer?(l(),b(Yn,{key:9,manufacturer:g.product.manufacturer,open:h("manufacturer")},null,8,["manufacturer","open"])):m("",!0),n(i).origin?(l(),b(yo,{key:10,origin:g.product.origin,"fish-catch-area":g.product.fishCatchArea,"fish-origin-free-text":g.product.fishOriginFreeText,"fish-place-of-provenance":g.product.fishPlaceOfProvenance,"place-of-rearing":g.product.placeOfRearing,"place-of-slaughter":g.product.placeOfSlaughter,"place-of-birth":g.product.placeOfBirth,open:h("origin"),"root-category":g.product.rootCategory},null,8,["origin","fish-catch-area","fish-origin-free-text","fish-place-of-provenance","place-of-rearing","place-of-slaughter","place-of-birth","open","root-category"])):m("",!0)])):m("",!0)}}),Eo=C(Io,[["__scopeId","data-v-5eb48fd2"]]),Co={},Lo={id:"mopinionPDP"};function Bo(t,e){return l(),_("div",Lo)}const Do=C(Co,[["render",Bo]]),Go={key:0,class:"cross-sells"},$o=I({__name:"CrossSells",props:{assistanceProduct:{},atbSubtype:{},products:{}}
1,setup(t){const e=t,s={xs:1,m:3,l:1},o=y(()=>(e.products||[]).filter(h=>h?.availability?.isAvailable&&h.price)),r=y(()=>Array.isArray(o.value)&&o.value.length>0),i=St().active(),c=y(()=>i.value==="m"?"regular":"list");return(h,g)=>n(r)?(l(),_("div",Go,[d(n(w),{"data-testid":"cross-sell-title",h3:"",styled:"h4"},{default:u(()=>[ze(h.$slots,"default",{},void 0,!0)]),_:3}),d(n(Lt),cs(us(s)),{default:u(()=>[(l(!0),_(B,null,Y(n(o),(p,k)=>(l(),b(Ot,{key:p.id,"data-testid":"product-card-cross-sell",product:p,"atb-subtype":h.atbSubtype,"assistance-product":h.assistanceProduct,index:k,type:n(c)},null,8,["product","atb-subtype","assistance-product","index","type"]))),128))]),_:1},16)])):m("",!0)}}),ot=C($o,[["__scopeId","data-v-1501ec4e"]]),Oo={class:"third-party-logos","data-testid":"third-party-logos"},Ro=I({__name:"ThirdPartyLogos",props:{logos:{}},setup(t){return(e,s)=>(l(),_("div",Oo,[(l(!0),_(B,null,Y(e.logos,(o,r)=>(l(),_("div",{class:"logos-container",key:o.identifier+r},[o.targetUrl?(l(),b(n(ds),{key:0,to:o.targetUrl,"link-type":"anchor",target:"_blank",class:"logo-link"},{default:u(()=>[d(n(Ze),{src:o.imageUrl,alt:`${o.identifier} logo #${r+1}`,class:"logo-image"},null,8,["src","alt"])]),_:2},1032,["to"])):(l(),b(n(Ze),{key:1,src:o.imageUrl,alt:`${o.identifier} logo #${r+1}`,class:"logo-image"},null,8,["src","alt"])),o.targetUrl?(l(),b(n(je),{key:2,icon:"externalLink"})):m("",!0)]))),128))]))}}),No=C(Ro,[["__scopeId","data-v-e20eb9c5"]]),Ho={key:0,"analytics-tag":"retailset products","data-testid":"retailset-products"},xo={class:"shimmer-info"},zo={class:"shimmer-info-content"},jo={class:"shimmer-info-details"},Wo={class:"shimmer-crossSell"},Ko=I({__name:"ProductInformationBlock",props:{product:{},isLoading:{type:Boolean}},setup(t){const e=t,s=y(()=>(e?.product?.alternatives||[]).slice(0,4)),o=y(()=>({assistanceProductId:e.product?.id,assistanceProductName:e.product?.title}));return(r,a)=>{const i=wt;return l(),_("div",null,[d(n(Re),null,{default:u(()=>[r.isLoading?(l(),_(B,{key:1},[d(n(re),{xs:12,l:8},{default:u(()=>[f("div",xo,[(l(),_(B,null,Y(2,c=>f("div",{key:c,class:"shimmer-info-block"},[d(n(K),{height:"26px",width:"140px",class:"shimmer-info-title"}),f("div",zo,[d(n(K),{height:"22px",width:"60%"}),d(n(K),{height:"22px",width:"60%"}),d(n(K),{height:"22px",width:"50%"})])])),64)),f("div",jo,[(l(),_(B,null,Y(5,c=>f("div",{key:c,class:"shimmer-info-details-item"},[d(n(K),{height:"26px",width:"170px"}),d(n(Bs),{class:"shimmer-divider"})])),64))])])]),_:1}),d(n(re),{xs:12,l:4},{default:u(()=>[f("div",Wo,[d(n(K),{height:"26px",width:"162px",class:"shimmer-crossSell-title"}),(l(),_(B,null,Y(4,c=>d(n(Ds),{key:c,type:"list"})),64))])]),_:1})],64)):(l(),_(B,{key:0},[d(n(re),{xs:12,l:8},{default:u(()=>[r.product.retailSetProducts&&r.product.retailSetProducts.length?(l(),_("div",Ho,[d(tt,{product:r.product},null,8,["product"]),d(sn,{products:r.product},null,8,["products"])])):m("",!0),d(ln,{"nutri-score":r.product.nutriScore},null,8,["nutri-score"]),!r.product.retailSetProducts||!r.product.retailSetProducts.length?(l(),b(tt,{key:1,product:r.product},null,8,["product"])):m("",!0),d(bn),d(Eo,{product:r.product},null,8,["product"]),r.product.characteristics?.thirdPartyLogos.length?(l(),b(No,{key:2,logos:r.product.characteristics?.thirdPartyLogos},null,8,["logos"])):m("",!0),d(i,null,{default:u(()=>[d(Do)]),_:1})]),_:1}),d(n(re),{xs:12,l:4},{default:u(()=>[d(ot,{key:"cross sell",products:r.product.crossSells,"atb-subtype":"cross sell","assistance-product":n(o)},{default:u(()=>a[0]||(a[0]=[f("strong",null,"Anderen",-1),A(" kochten ook ")])),_:1},8,["products","assistance-product"]),d(ot,{key:"alternatives",products:n(s),"atb-subtype":"alternatives","assistance-product":n(o)},{default:u(()=>a[1]||(a[1]=[f("strong",null,"Andere",-1),A(" soorten ")])),_:1},8,["products","assistance-product"])]),_:1})],64))]),_:1})])}}}),Vo=C(Ko,[["__scopeId","data-v-47449a89"]]),Uo={class:"product-image-wrapper"},qo={"analytics-tag":"product image",class:"product-image-wrapper-container"},Fo={key:0,class:"product-image-wrapper-thumbnail"},Qo={class:"promotions-characteristics"},Yo={key:1,class:"stickers","analytics-tag":"product stickers"},Xo=["src","alt"],Zo=I({__name:"ProductImageWrapper",props:{product:{},hasPricePerUnit:{type:Boolean},promotion:{}},setup(t){const e=t,s=ps(),{application:{isJumboMobile:o}}=ke(),r=_t(e.product.id),a=M(e.product.image),i=M(e.product.thumbnails??[]),c=M(e.product.images?.length?e.product.images:i.value.length?
1i.value:[{image:e.product.image}]),h=M(Math.max(0,i.value.findIndex(L=>L.image===a.value))),g=M(0),p=M(0),k=M(0),P=M(!1),E=y(()=>r.basketQuantity?.value??0),S=y(()=>!!E.value),T=y(()=>e.product&&Array.isArray(i.value)&&i.value.length>1),v=y(()=>{const{product:L}=e,H=L?.promotions?.[0];return Tt(H?.primaryBadges??L?.primaryProductBadges)}),G=y(()=>!!(v.value&&v.value.image)),z=y(()=>c.value.map(L=>L.image)),Q=y(()=>i.value?.map(L=>L.image)),ie=y(()=>e.product.secondaryProductBadges);function Pe(){const L=h.value;h.value=i.value[L+1]?L+1:0,a.value=Q.value[h.value],Se(h.value)}function Zt(){const L=h.value;h.value=i.value[L-1]?L-1:i.value.length-1,a.value=Q.value[h.value],Se(h.value)}function Jt(L){const{screenY:H}=L.changedTouches[0]??{};document.documentElement.style.overflow="hidden",o.value&&(document.querySelector(".content").style.overflow="hidden"),g.value=H}function es(L){const{screenY:H}=L.changedTouches[0]??{};p.value=H,p.value<g.value&&Pe(),p.value>g.value&&Zt(),document.documentElement.style.overflow="auto",o.value&&(document.querySelector(".content").style.overflow="auto")}function ts(L,H){a.value=L,h.value=H,Se(H)}function ss(L){console.log("Error loading thumbnail",L.target.src);const H=i.value.findIndex(ne=>ne.image===L.target.src);i.value=i.value.filter((ne,he)=>he!==H),c.value=c.value.filter((ne,he)=>he!==H)}function Ye(L,H){k.value=H,Se(H)}function Se(L){X("click",{action:"other click",label:"product image",value:String(L+1),componentRoot:"product detail page",componentParent:"product detail",componentSection:"product image",supClick:"product image"})}function pe(){X("click",{action:"click button",label:"product image",componentRoot:"product detail page",componentParent:"product detail",componentSection:"product image",supClick:"product image"}),P.value=!0,k.value=h.value,o.value&&s.push({query:{...s.currentRoute.value.query,mode:"zoom"}})}return(L,H)=>(l(),_("div",Uo,[f("figure",qo,[n(T)?(l(),_("div",Fo,[d(He,{images:n(Q),"selected-index":n(h),title:L.product.title,onChange:ts,onImageError:ss,onOpenImageModal:pe},null,8,["images","selected-index","title"])])):m("",!0),f("div",{class:"product-image-wrapper-image",tabindex:"0",onTouchstart:ce(Jt,["stop"]),onTouchend:ce(es,["stop"]),onClick:pe,onKeypress:Ee(pe,["enter"])},[d(n(hs),{"image-src":n(a),"image-alt":"",class:"product-image","is-checked":n(S),"backup-images":n(z),"data-testid":"product-image","fetch-priority":"high"},null,8,["image-src","is-checked","backup-images"])],32)]),f("div",Qo,[n(G)?(l(),b(n(gs),{key:0,alt:n(v).alt,image:n(v).image,class:"product-badge optanon-category-J1000"},null,8,["alt","image"])):m("",!0),n(ie)&&n(ie).length?(l(),_("ul",Yo,[(l(!0),_(B,null,Y(n(ie),(ne,he)=>(l(),_("li",{key:he,class:"stickers-item"},[ne.image?(l(),_("img",{key:0,src:ne.image,alt:ne.alt,height:"auto",width:"37"},null,8,Xo)):m("",!0)]))),128))])):m("",!0)]),d(n(ue),{class:"zoom-button",label:"zoom-in",circle:"",tertiary:"",onClick:pe,onKeypress:Ee(pe,["enter"])},{default:u(()=>[d(n(je),{icon:"zoom",size:28})]),_:1}),n(P)?(l(),b(n(Pt),{key:0,class:"product-image-zoom-dialog","data-testautomation":"image-zoom","accent-bottom":!1,"no-padding":!0,onClosed:H[0]||(H[0]=ne=>P.value=!1)},{actions:u(()=>[d(He,{images:n(z),"selected-index":n(k),title:L.product.title,"is-horizontal":"",onChange:Ye},null,8,["images","selected-index","title"])]),default:u(()=>[d(js,{images:n(z),title:L.product.title,"selected-index":n(k),onChange:Ye},null,8,["images","title","selected-index"])]),_:1})):m("",!0)]))}}),Jo=C(Zo,[["__scopeId","data-v-f377833f"]]),er=I({__name:"ProductNotification",props:{title:{},description:{},icon:{},link:{},volumeDiscounts:{},reason:{}},setup(t){const e=t,s=y(()=>[U.RECALL,U.SEASONAL_SOLD_OUT,U.RECALL_INCOMING,U.BOYCOT,U.LONG_LASTING_DELIVERY_ISSUE,U.FINAL_STOCK].includes(e.reason)&&e.link);return(o,r)=>{const a=Mt;return l(),b(n(Ge),{type:"note",class:"production-notification","analytics-tag":"promotion explanation","data-testid":"product-communication"},{default:u(()=>[f("header",null,[o.icon?(l(),b(n(je),{key:0,icon:o.icon,left:""},null,8,["icon"])):m("",!0),d(n(w),{h6:"",bold:""},{default:u(()=>[A(D(o.title),1)]),_:1})]),f("p",null,[d(Ks,{description:o.description},null,8,["description"]),n(s)?(l(),b(a,{key:0,to:o.link.url,class:"info-link","data-testid":"more-info-link"},{default:u(()=>[A(D(o.link.text),1)]),_:1},8,["to"])):m("",!0)]),o.volumeDiscounts?.length?(l(),b(n(Ws),{key:0,"volume-discounts":o.volumeDiscounts},null,8,["volume-discounts"])):m("",!0)]),_:1})}}}),rt=C(er,[["__scopeId","data-v-6ecfde5a"]]),at=I({__name:"PromotionLink",props:{url:{},isKiesAndMix:{type:Boolean}},setup(t){const e=()=>{X("click",{action:"click button",label:"promotion detail link",componentRoot:"product detail page",componentParent:"product detail",componentSection:"promotion detail link",supClick:"promotion"})};return(s,o)=>{const r=Mt;return l(),b(r,{class:"go-to-promotion",to:s.url,"analytics-tag":"promotion detail link",onClick:e},{default:u(()=>[A(D(s.isKiesAndMix?"Bekijk Kies & Mix producten":"Bekijk aanbieding"),1)]),_:1},8,["to"])}}}),tr={class:"container"},sr=I({__name:"ReplacementBlock",props:{link:{}}
1,setup(t){return(e,s)=>(l(),_("div",tr,[d(n(Ge),{type:"note"},{default:u(()=>[s[1]||(s[1]=f("header",null,"Dit product hebben we helaas niet meer",-1)),d(n(ue),{class:"redirect-button",href:e.link,rel:"canonical",compact:""},{default:u(()=>s[0]||(s[0]=[A(" Bekijk andere producten ")])),_:1},8,["href"])]),_:1})]))}}),nr=C(sr,[["__scopeId","data-v-eabe51a4"]]),or=t=>t?.[t.length-1]?.path??"/producten",Rt=t=>t?.price?.pricePerUnit?.price&&t?.price?.pricePerUnit?.unit&&t.price.pricePerUnit,rr={class:"product-description"},ar={key:0},ir={key:1},lr={"data-testid":"product-subtitle",h2:"",styled:"h6",class:"product-subtitle"},cr={key:0},ur={key:1},dr={class:"add-to-basket-wrapper with-add-to-list"},pr={key:2,class:"promotion-details","analytics-tag":"promotion details","data-testautomation":"pdp-promotion"},hr={key:0,class:"promotion-link"},gr={class:"shimmer-block-left"},mr={class:"shimmer-block-right"},fr={class:"shimmer-block-add-to-basket"},vr=I({__name:"ProductMainBlock",props:{product:{},isLoading:{type:Boolean},basketLines:{}},setup(t){const e=t,s=M(null),o=ms(s),r=y(()=>!o.value),{application:{isJumboMobile:a}}=ke(),i=St().smaller("m"),c=y(()=>a.value||i.value?"div":Ie),h=y(()=>!!Rt(e?.product)),g=y(()=>({atbType:"product detail",atbSubtype:e.product.retailSet?"virtual bundle":"product detail",index:null})),p=()=>{X("click",{action:"click button",label:"favorite",componentRoot:"product detail page",componentParent:"product detail",componentSection:"add to basket",supClick:"favorite"})},k=M(),P=y(()=>k.value?.$el);de(()=>P.value instanceof HTMLElement,()=>{e.product?.availability?.isAvailable&&$t().watchRegularVisibility(P)},{once:!0});const E=y(()=>e.product?.availability?.reason===U.DELISTED),S=y(()=>e?.product&&Array.isArray(e.product.promotions)&&e.product.promotions[0]||void 0),T=y(()=>e.product.availability?.availabilityNote?{title:e.product.availability?.label,description:e.product.availability?.availabilityNote,icon:"clock",link:{text:"Meer informatie",url:"/service/probleem-met-bestelling/niet-geleverd"},reason:e.product.availability?.reason}:S.value?.durationTexts?.title?{title:S.value?.durationTexts?.title,description:S.value?.durationTexts?.description,volumeDiscounts:S.value?.volumeDiscounts}:null);return(v,G)=>v.isLoading?(l(),b(Z(n(c)),we({key:1},n(c)===n(Ie)?{accent:"bottom"}:{},{class:"product-panel"}),{default:u(()=>[d(n(Re),null,{default:u(()=>[d(n(re),{xs:12,m:6,l:6,xl:5,class:"product-panel-image"},{default:u(()=>[f("div",gr,[d(n(K),{class:"shimmer-img",width:"60vw",height:"60vw"})])]),_:1}),d(n(re),{xs:12,m:6,l:6,xl:7,class:"product-panel-info"},{default:u(()=>[f("div",mr,[d(n(K),{width:"90%",height:"28px",class:"shimmer-title"}),d(n(K),{width:"50%",height:"28px",class:"shimmer-subTitle"}),d(n(K),{width:"49px",height:"20px",class:"shimmer-info"}),d(n(K),{width:"49px",height:"32px",class:"shimmer-price"}),f("div",fr,[d(n(K),{width:"85%",height:"48px",class:"shimmer-quantity-button"}),d(n(K),{circle:"",width:"48px",height:"48px",class:"shimmer-quantity-favourite"})])])]),_:1})]),_:1})]),_:1},16)):(l(),_(B,{key:0},[n(E)?(l(),b(nr,{key:0,link:n(or)(v.product.categories)},null,8,["link"])):m("",!0),(l(),b(Z(n(c)),we(n(c)===n(Ie)?{accent:"bottom"}:{},{class:"product-panel"}),{default:u(()=>[d(n(Re),null,{default:u(()=>[d(n(re),{xs:12,m:6,l:6,xl:5,class:"product-panel-image"},{default:u(()=>[d(Jo,{ref_key:"container",ref:s,product:v.product,"has-price-per-unit":n(h),promotion:n(S)},null,8,["product","has-price-per-unit","promotion"]),n(a)?(l(),b(Dt,{key:0,"is-active":n(r)},{default:u(()=>[A(D(v.product.title),1)]),_:1},8,["is-active"])):m("",!0)]),_:1}),d(n(re),{xs:12,m:6,l:6,xl:7,class:"product-panel-info"},{default:u(()=>[d(n(w),{h1:"",styled:"h3",strong:"","data-testid":"product-title"},{default:u(()=>[A(D(v.product.title),1)]),_:1}),f("div",rr,[v.product.characteristics?.freshness?.value?(l(),_("span",ar,D(v.product.characteristics?.freshness?.value),1)):m("",!0),v.product.characteristics?.freshness?.value&&v.product?.subtitle?(l(),_("span",ir," ⢠")):m("",!0),f("span",lr,[A(D(v.product.subtitle)+" ",1),(v.product.subtitle||v.product.characteristics?.freshness?.value)&&v.product.drainedWeight?(l(),_("span",cr," ⢠")):m("",!0),v.product.drainedWeight?(l(),_("span",ur,"Uitlekgewicht "+D(v.product.drainedWeight)+" g",1)):m("",!0)])]),v.product.price&&v.product.assortmentEligibility.orderable?(l(),b(n(Bt),{key:0,price:v.product.price.price,"price-per-unit":n(h)?v.product.price.pricePerUnit:void 0,"promo-price":v.product.price.promoPrice,prominent:"",class:"product-price","data-testid":"product-price","show-surcharge-information":!0},null,8,["price","price-per-unit","promo-price"])):m("",!0),f("div",dr,[d(Ke,{ref_key:"ProductQuantityButtonRef",ref:k,class:"regular-quantity-button",product:v.product,target:n(k)?.$el,"analytics-params":n(g),"is-large":""},null,8,["product","target","analytics-params"]),d(zs,{"button-style":"secondary",sku:v.product.sku,"product-title":v.product.title,"is-in-customer-list":!!v.product.list?.isInCustomerList,"is-hide-trigger":!v.product.assortmentEligibility.orderable,onTriggerClick:p},null,8,["sku","product-title","is-in-customer-list","is-hide-trigger"])]),!v.product.availability.isAvailable&&v.product.availability.label?(l(),b(n(xs),{key:1,class:"availability-label","data-testid":"product-availability-label",large:""},{default:u(()=>[A(D(v.product.availability.label),1)]),_:1})):m("",!0),n(T)||n(S)?(l(),_("div",pr,[n(S)?(l(),b(Gt,{key:0,"data-testid":"promotion-tag",promotion:n(S),big:""},null,8,["promotion"])):m("",!0),n(S)?.url?(l(),b(at,{key:1,url:n(S).url,"is-kies-and-mix":n(S)?.isKiesAndMix},null,8,["url","is-kies-and-mix"])):m("",!0),n(T)?(l(),b(rt,we({key:2,class:"show-medium"},n(T)),null,16)):m("",!0)])):m("",!0)]),_:1})]),_:1}),f("div",null,[n(T)?(l(),b(rt,we({key:0,class:"show-small"},n(T)),null,16)):m("",!0)]),n(S)?.url?(l(),_("div",hr,[d(at,{url:n(S).url,"is-kies-and-mix":n(S).isKiesAndMix},null,8,["url","is-kies-and-mix"])])):m("",!0)]),_:1},16))],64))}}),yr=C(vr,[["__scopeId","data-v-c73dcbe2"]]),br="data:image/png;base64,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",kr=["src","alt"],_r={class:"product-title"},Tr={class:"below-title"},Ar=I({__name:"StickyAddToBasketBar",props:{product:{},basketLines:{}},setup(t){const e=t,{application:{isJumboMobile:s}}=ke(),{showSticky:o}=$t(),{isAmendOrderBasket:r}=It(),a=y(()=>({atbType:"product detail",atbSubtype:"product detail sticky",index:null})),i=y(()=>{const{image:p}=e.product||{};return p||br}),c=y(()=>e.product?.promotions?.[0]),h=y(()=>!!Rt(e.product)),g=M(s.value);return be(()=>{setTimeout(()=>{g.value=!1},1e3)}),(p,k)=>(l(),b(We,{name:"slide-up","analytics-tag":"sticky add to basket bar","data-testid":"sticky-add-to-basket-bar"},{default:u(()=>[fs(f("div",{class:V(["sticky",{"sticky-app":n(s),"sticky-start-hidden":n(g),"sticky-app-amend":n(s)&&n(r)}])},[d(n(Et),{class:"sticky-content"},{default:u(()=>[f("img",{class:"product-image",src:n(i),alt:p.product.title,height:"80",width:"80",loading:"lazy"},null,8,kr),f("div",_r,[d(n(w),{h5:"",styled:"h5"},{default:u(()=>[A(D(p.product.title),1)]),_:1}),f("div",Tr,[p.product.subtitle?(l(),b(n(w),{key:0,h6:"",styled:"h6",class:"color-grey"},{default:u(()=>
1[A(D(p.product.subtitle),1)]),_:1})):m("",!0),n(c)?(l(),b(Gt,{key:1,promotion:n(c),class:"promotion"},null,8,["promotion"])):m("",!0)])]),p.product.price&&p.product.assortmentEligibility.orderable?(l(),b(n(Bt),{key:0,price:p.product.price.price,"price-per-unit":n(h)?p.product.price.pricePerUnit:void 0,"promo-price":p.product.price.promoPrice,class:"product-price"},null,8,["price","price-per-unit","promo-price"])):m("",!0),d(Ke,{class:"sticky-quantity-button","data-testid":"sticky-quantity-button",product:p.product,"analytics-params":n(a),"drop-down-options":{renderOutside:!1},"is-large":""},null,8,["product","analytics-params"])]),_:1})],2),[[vs,n(o)]])]),_:1}))}}),Pr=C(Ar,[["__scopeId","data-v-a6c4b4ad"]]);function Sr(){try{return"constructor"in GestureEvent}catch{return!1}}function Nt(){return typeof window<"u"&&"ontouchstart"in window}function Ht(t){return"pointerId"in t?null:t.type==="touchend"?t.changedTouches:t.targetTouches}function Ue(t){return Array.from(Ht(t)).map(e=>e.identifier)}function q(t){const e="buttons"in t?t.buttons:0,{shiftKey:s,altKey:o,metaKey:r,ctrlKey:a}=t;return{buttons:e,shiftKey:s,altKey:o,metaKey:r,ctrlKey:a}}const _e=t=>t;function le(t,e=_e){const s=Ht(t),{clientX:o,clientY:r}=s?s[0]:t;return e([o,r])}function it(t,e,s=_e){const[o,r]=Array.from(t.touches).filter(E=>e.includes(E.identifier));if(!o||!r)throw Error("The event doesn't have two pointers matching the pointerIds");const a=r.clientX-o.clientX,i=r.clientY-o.clientY,c=(r.clientX+o.clientX)/2,h=(r.clientY+o.clientY)/2,g=Math.hypot(a,i),p=-(Math.atan2(a,i)*180)/Math.PI,k=s([g,p]),P=s([c,h]);return{values:k,origin:P}}function wr(t,e=_e){const{scrollX:s,scrollY:o,scrollLeft:r,scrollTop:a}=t.currentTarget;return e([s||r||0,o||a||0])}const lt=40,ct=800;function xt(t,e=_e){let{deltaX:s,deltaY:o,deltaMode:r}=t;return r===1?(s*=lt,o*=lt):r===2&&(s*=ct,o*=ct),e([s,o])}function ut(t,e=_e){return e([t.scale,t.rotation])}function zt(){}function jt(...t){return t.length===0?zt:t.length===1?t[0]:function(){var e;for(let s of t)e=s.apply(this,arguments)||e;return e}}function oe(t,e){if(t===void 0){if(e===void 0)throw new Error("Mu
1st define fallback value if undefined is expected");t=e}return Array.isArray(t)?t:[t,t]}function dt(t,e){return Object.assign({},e,t||{})}function Ce(t,...e){return typeof t=="function"?t(...e):t}function ge(t){return{_active:!1,_blocked:!1,_intentional:[!1,!1],_movement:[0,0],_initial:[0,0],_bounds:[[-1/0,1/0],[-1/0,1/0]],_lastEventType:void 0,_dragStarted:!1,_dragPreventScroll:!1,_dragIsTap:!0,_dragDelayed:!1,event:void 0,intentional:!1,values:[0,0],velocities:[0,0],delta:[0,0],movement:[0,0],offset:[0,0],lastOffset:[0,0],direction:[0,0],initial:[0,0],previous:[0,0],first:!1,last:!1,active:!1,timeStamp:0,startTime:0,elapsedTime:0,cancel:zt,canceled:!1,memo:void 0,args:void 0,...t}}function xe(){const t={hovering:!1,scrolling:!1,wheeling:!1,dragging:!1,moving:!1,pinching:!1,touches:0,buttons:0,down:!1,shiftKey:!1,altKey:!1,metaKey:!1,ctrlKey:!1,locked:!1},e=ge({_pointerId:void 0,axis:void 0,xy:[0,0],vxvy:[0,0],velocity:0,distance:0,tap:!1,swipe:[0,0]}),s=ge({_pointerIds:[],da:[0,0],vdva:[0,0],origin:void 0,turns:0}),o=ge({axis:void 0,xy:[0,0],vxvy:[0,0],velocity:0,distance:0}),r=ge({axis:void 0,xy:[0,0],vxvy:[0,0],velocity:0,distance:0}),a=ge({axis:void 0,xy:[0,0],vxvy:[0,0],velocity:0,distance:0});return{shared:t,drag:e,pinch:s,wheel:o,move:r,scroll:a}}var Mr=Object.defineProperty,Ir=(t,e,s)=>e in t?Mr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,W=(t,e,s)=>(Ir(t,typeof e!="symbol"?e+"":e,s),s);class Er{constructor(e){this.classes=e,W(this,"nativeRefs"),W(this,"config"),W(this,"handlers"),W(this,"state"),W(this,"timeouts"),W(this,"domListeners"),W(this,"windowListeners"),W(this,"pointerIds",new Set),W(this,"touchIds",new Set),W(this,"supportsTouchEvents",Nt()),W(this,"supportsGestureEvents",Sr()),W(this,"bind",(...s)=>{const o={};for(let r of this.classes)new r(this,s).addBindings(o);for(let r in this.nativeRefs)O(o,r,a=>this.nativeRefs[r]({...this.state.shared,event:a,args:s}));return this.config.domTarget?Dr(this,o):Gr(this,o)}),W(this,"clean",()=>{const{eventOptions:s,domTarget:o}=this.config,r=n(o);r&&Te(r,Vt(this.domListeners),s),Object.values(this.timeouts).forEach(clearTimeout),Cr(this)}),W(this,"reset",()=>{this.state=xe()}),this.classes=e,this.state=xe(),this.timeouts={},this.domListeners=[],this.windowListeners={}}}function Wt(t,e){"pointerId"in e?t.pointerIds.add(e.pointerId):t.touchIds=new Set(Ue(e))}function Kt(t,e){"pointerId"in e?t.pointerIds.delete(e.pointerId):Ue(e).forEach(s=>t.touchIds.delete(s))}function Cr(t){const{config:{window:e,eventOptions:s},windowListeners:o}=t,r=n(e);if(r){for(let a in o){const i=o[a];Te(r,i,s)}t.windowListeners={}}}function Lr({config:t,windowListeners:e},s,o=t.eventOptions){const r=n(t.window);r&&(Te(r,e[s],o),delete e[s])}function Br({config:t,windowListeners:e},s,o=[],r=t.eventOptions){const a=n(t.window);a&&(Te(a,e[s],r),Ut(a,e[s]=o,r))}function Dr({config:t,domListeners:e},s){const{eventOptions:o,domTarget:r}=t,a=n(r);if(!a)throw new Error("domTarget must be defined");Te(a,Vt(e),o);for(let[i,c]of Object.entries(s)){const h=i.slice(2).toLowerCase();e.push([h,jt(...c)])}Ut(a,e,o)}function Gr({config:t},e){const s={},o=t.eventOptions.capture?"Capture":"";for(let[r,a]of Object.entries(e)){const i=Array.isArray(a)?a:[a],c=r+o;s[c]=jt(...i)}return s}function Vt(t=[]){return t.splice(0,t.length)}function O(t,e,s){t[e]||(t[e]=[]),t[e].push(s)}function Ut(t,e=[],s={}){if(t)for(let[o,r]of e)t.addEventListener(o,r,s)}function Te(t,e=[],s={}){if(t)for(let[o,r]of e)t.removeEventListener(o,r,s)}function Le(t,e){return t.map((s,o)=>s+e[o])}function qe(t,e){return t.map((s,o)=>s-e[o])}function ye(t){return Math.hypot(...t)}function qt(t,e=t){const s=ye(e),o=s===0?0:1/s,r=e.map(i=>o*i);return{distance:ye(t),direction:r}}function Ft(t,e,s){const o=ye(e),r=o===0?0:1/o,a=s===0?0:1/s,i=a*o,c=e.map(p=>a*p),h=e.map(p=>r*p),g=ye(t);return{velocities:c,velocity:i,distance:g,direction:h}}function Be(t){return Math.sign?Math.sign(t):+(t>0)-+(t<0)||+t}function $r(t,e,s){return Math.max(e,Math.min(t,s))}function Or(t,e){return Math.pow(t,e*5)}function pt(t,e,s){return e===0||Math.abs(e)===1/0?Or(t,s):t*e*s/(e+s*t)}
1function ht(t,e,s,o=.15){return o===0?$r(t,e,s):t<e?-pt(e-t,s-e,o)+e:t>s?+pt(t-s,s-e,o)+s:t}var Rr=Object.defineProperty,Nr=(t,e,s)=>e in t?Rr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,Me=(t,e,s)=>(Nr(t,typeof e!="symbol"?e+"":e,s),s);const F=new Map,Hr=t=>t;class Qt{constructor(e,s=[]){this.controller=e,this.args=s,Me(this,"debounced",!0),Me(this,"setTimeout",(o,r=140,...a)=>{clearTimeout(this.controller.timeouts[this.stateKey]),this.controller.timeouts[this.stateKey]=window.setTimeout(o,r,...a)}),Me(this,"clearTimeout",()=>{clearTimeout(this.controller.timeouts[this.stateKey])}),Me(this,"fireGestureHandler",(o=!1)=>{if(this.state._blocked)return this.debounced||(this.state._active=!1,this.clean()),null;if(!o&&!this.state.intentional&&!this.config.triggerAllEvents)return null;if(this.state.intentional){const h=this.state.active,g=this.state._active;this.state.active=g,this.state.first=g&&!h,this.state.last=h&&!g,this.controller.state.shared[this.ingKey]=g}const r=this.controller.pointerIds.size||this.controller.touchIds.size,a=this.controller.state.shared.buttons>0||r>0,i={...this.controller.state.shared,...this.state,...this.mapStateValues(this.state),locked:!!document.pointerLockElement,touches:r,down:a},c=this.handler(i);return this.state.memo=c!==void 0?c:this.state.memo,i}),this.controller=e,this.args=s}get config(){return this.controller.config[this.stateKey]}get enabled(){return this.controller.config.enabled&&this.config.enabled}get state(){return this.controller.state[this.stateKey]}get handler(){return this.controller.handlers[this.stateKey]}get transform(){return this.config.transform||this.controller.config.transform||Hr}updateSharedState(e){Object.assign(this.controller.state.shared,e)}updateGestureState(e){Object.assign(this.state,e)}checkIntentionality(e,s){return{_intentional:e,_blocked:!1}}getMovement(e){const{rubberband:s,threshold:o}=this.config,{_bounds:r,_initial:a,_active:i,_intentional:c,lastOffset:h,movement:g}=this.state,p=this.getInternalMovement(e,this.state),k=this.transform(o).map(Math.abs),P=c[0]===!1?gt(p[0],k[0]):c[0],E=c[1]===!1?gt(p[1],k[1]):c[1],S=this.checkIntentionality([P,E],p);if(S._blocked)return{...S,_movement:p,delta:[0,0]};const T=S._intentional,v=p;let G=[T[0]!==!1?p[0]-T[0]:0,T[1]!==!1?p[1]-T[1]:0];const z=Le(G,h),Q=i?s:[0,0];return G=mt(r,Le(G,a),Q),{...S,intentional:T[0]!==!1||T[1]!==!1,_initial:a,_movement:v,movement:G,values:e,offset:mt(r,z,Q),delta:qe(G,g)}}clean(){this.clearTimeout()}}function gt(t,e){return Math.abs(t)>=e?Be(t)*e:!1}function mt(t,[e,s],[o,r]){const[[a,i],[c,h]]=t;return[ht(e,a,i,o),ht(s,c,h,r)]}function R({state:t},e,s){const{timeStamp:o,type:r}=e,a=t.values,i=s?0:o-t.startTime;return{_lastEventType:r,event:e,timeStamp:o,elapsedTime:i,previous:a}}function ae({state:t,config:e,stateKey:s,args:o},r,a){const i=t.offset,c=a.timeStamp,{initial:h,bounds:g}=e,p={...xe()[s],_active:!0,args:o,values:r,initial:r,offset:i,lastOffset:i,startTime:c};return{...p,_initial:Ce(h,p),_bounds:Ce(g,p)}}class $e extends Qt{getInternalMovement(e,s){return qe(e,s.initial)}checkIntentionality(e,s){if(e[0]===!1&&e[1]===!1)return{_intentional:e,axis:this.state.axis};const[o,r]=s.map(Math.abs),a=this.state.axis||(o>r?"x":o<r?"y":void 0);return!this.config.axis&&!this.config.lockDirection?{_intentional:e,_blocked:!1,axis:a}:a?this.config.axis&&a!==this.config.axis?{_intentional:e,_blocked:!0,axis:a}:(e[a==="x"?1:0]=!1,{_intentional:e,_blocked:!1,axis:a}):{_intentional:[!1,!1],_blocked:!1,axis:a}}getKinematics(e,s){const o=this.getMovement(e);if(!o._blocked){const r=s.timeStamp-this.state.timeStamp;Object.assign(o,Ft(o.movement,o.delta,r))}return o}mapStateValues(e){return{xy:e.values,vxvy:e.velocities}}}var xr=Object.defineProperty,zr=(t,e,s)=>e in t?xr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,x=(t,e,s)=>(zr(t,typeof e!="symbol"?e+"":e,s),s);const jr=3;function ft(t){"persist"in t&&typeof t.persist=="function"&&t.persist()}class Wr extends $e{constructor(){super(...arguments),x(this,"ingKey","dragging"),x(this,"stateKey","drag"),x(this,"setPointerCapture",e=>{if(this.config.useTouch||document.pointerLockElement)return;const{target:s,pointerId:o}=e;s&&"setPointerCapture"in s&&s.setPointerCapture(o),this.updateGestureState({_dragTarget:s,_dragPointerId:o})}),x(this,"releasePointerCapture",()=>{if(this.config.useTouch||document.pointerLockElement)return;const{_dragTarget:e,_dragPointerId:s}=this.state;if(s&&e&&"releasePointerCapture"in e&&(!("hasPointerCapture"in e)||e.hasPointerCapture(s)))try{e.releasePointerCapture(s)}catch{}}),x(this,"preventScroll",e=>{this.state._dragPreventScroll&&e.cancelable&&e.preventDefault()}),x(this,"getEventId",e=>this.config.useTouch?e.changedTouches[0].identifier:e.pointerId),x(this,"isValidEvent",e=>this.state._pointerId===this.getEventId(e)),x(this,"shouldPreventWindowScrollY",this.config.preventWindowScrollY&&this.controller.supportsTouchEvents),x(this,"setUpWindowScrollDetection",e=>{ft(e),Br(this.controller,this.stateKey,[["touchmove",this.preventScroll],["touchend",this.clean.bind(this)],["touchcancel",this.clean.bind(this)]],{passive:!1}),this.setTimeout(this.startDrag.bind(this),250,e)}),x(this,"setUpDelayedDragTrigger",e=>{this.state._dragDelayed=!0,ft(e),this.setTimeout(this.startDrag.bind(this),this.config.delay,e)}),x(this,"setStartState",e=>{const s=le(e,this.transform);this.updateSharedState(q(e)),this.updateGestureState({...ae(this,s,e),...R(this,e,!0),_pointerId:this.getEventId(e)}),this.updateGestureState(this.getMovement(s))}),x(this,"onDragStart",e=>{Wt(this.controller,e),!(!this.enabled||this.state._active)&&(this.setStartState(e),this.setPointerCapture(e),this.shouldPreventWindowScrollY?this.setUpWindowScrollDetection(e):this.config.delay>0?this.setUpDelayedDragTrigger(e):this.startDrag(e,!0))}),x(this,"onDragChange",e=>
1{if(this.state.canceled||!this.state._active||!this.isValidEvent(e)||this.state._lastEventType===e.type&&e.timeStamp===this.state.timeStamp)return;let s;if(document.pointerLockElement){const{movementX:h,movementY:g}=e;s=Le(this.transform([h,g]),this.state.values)}else s=le(e,this.transform);const o=this.getKinematics(s,e);if(!this.state._dragStarted){if(this.state._dragDelayed){this.startDrag(e);return}if(this.shouldPreventWindowScrollY)if(!this.state._dragPreventScroll&&o.axis)if(o.axis==="x")this.startDrag(e);else{this.state._active=!1;return}else return;else return}const r=q(e);this.updateSharedState(r);const a=R(this,e),i=ye(o._movement);let{_dragIsTap:c}=this.state;c&&i>=jr&&(c=!1),this.updateGestureState({...a,...o,_dragIsTap:c}),this.fireGestureHandler()}),x(this,"onDragEnd",e=>{if(Kt(this.controller,e),!this.isValidEvent(e)||(this.clean(),!this.state._active))return;this.state._active=!1;const s=this.state._dragIsTap,[o,r]=this.state.velocities,[a,i]=this.state.movement,[c,h]=this.state._intentional,[g,p]=this.config.swipeVelocity,[k,P]=this.config.swipeDistance,E=this.config.swipeDuration,S={...R(this,e),...this.getMovement(this.state.values)},T=[0,0];S.elapsedTime<E&&(c!==!1&&Math.abs(o)>g&&Math.abs(a)>k&&(T[0]=Be(o)),h!==!1&&Math.abs(r)>p&&Math.abs(i)>P&&(T[1]=Be(r))),this.updateSharedState({buttons:0}),this.updateGestureState({...S,tap:s,swipe:T}),this.fireGestureHandler(this.config.filterTaps&&s===!0)}),x(this,"clean",()=>{super.clean(),this.state._dragStarted=!1,this.releasePointerCapture(),Lr(this.controller,this.stateKey)}),x(this,"onCancel",()=>{this.state.canceled||(this.updateGestureState({canceled:!0,_active:!1}),this.updateSharedState({buttons:0}),ks(this.fireGestureHandler))}),x(this,"onClick",e=>{this.state._dragIsTap||e.stopPropagation()})}startDrag(e,s=!1){!this.state._active||this.state._dragStarted||(s||this.setStartState(e),this.updateGestureState({_dragStarted:!0,_dragPreventScroll:!0,
1cancel:this.onCancel}),this.clearTimeout(),this.fireGestureHandler())}addBindings(e){if(this.config.useTouch?(O(e,"onTouchStart",this.onDragStart),O(e,"onTouchMove",this.onDragChange),O(e,"onTouchEnd",this.onDragEnd),O(e,"onTouchCancel",this.onDragEnd)):(O(e,"onPointerDown",this.onDragStart),O(e,"onPointerMove",this.onDragChange),O(e,"onPointerUp",this.onDragEnd),O(e,"onPointerCancel",this.onDragEnd)),this.config.filterTaps){const s=this.controller.config.eventOptions.capture?"onClick":"onClickCapture";O(e,s,this.onClick)}}}function Ae(t={},e){const s={};for(const[o,r]of Object.entries(e))switch(typeof r){case"function":s[o]=r.call(s,t[o],o,t);break;case"object":s[o]=Ae(t[o],r);break;case"boolean":r&&(s[o]=t[o]);break}return s}const Kr=180,Vr=.15,Ur=.5,qr=50,Fr=250,Yt={threshold(t=0){return oe(t)},rubberband(t=0){switch(t){case!0:return oe(Vr);case!1:return oe(0);default:return oe(t)}},enabled(t=!0){return t},triggerAllEvents(t=!1){return t},initial(t=0){return typeof t=="function"?t:oe(t)},transform:!0},Fe={...Yt,axis:!0,lockDirection(t=!1){return t},bounds(t={}){if(typeof t=="function")return a=>Fe.bounds(t(a));const{left:e=-1/0,right:s=1/0,top:o=-1/0,bottom:r=1/0}=t;return[[e,s],[o,r]]}},Qr=typeof window<"u"&&window.document&&window.document.createElement,Yr={enabled(t=!0){return t},domTarget:!0,window(t=Qr?window:void 0){return t},eventOptions({passive:t=!0,capture:e=!1}={}){return{passive:t,capture:e}},transform:!0},Xr={...Yt,bounds(t,e,{distanceBounds:s={},angleBounds:o={}}){const r=i=>{const c=dt(Ce(s,i),{min:-1/0,max:1/0});return[c.min,c.max]},a=i=>{const c=dt(Ce(o,i),{min:-1/0,max:1/0});return[c.min,c.max]};return typeof s!="function"&&typeof o!="function"?[r(),a()]:i=>[r(i),a(i)]}},Zr={...Fe,useTouch(t=!0){return t&&Nt()},preventWindowScrollY(t=!1){return t},threshold(t,e,{filterTaps:s=!1,lockDirection:o=!1,axis:r=void 0}){const a=oe(t,s?3:o||r?1:0);return this.filterTaps=s,a},swipeVelocity(t=Ur){return oe(t)},swipeDistance(t=qr){return oe(t)},swipeDuration(t=Fr){return t},delay(t=0){switch(t){case!0:return Kr;case!1:return 0;default:return t}}};function Jr(t){return Ae(t,Yr)}function Oe(t={}){return Ae(t,Fe)}function ea(t={}){return Ae(t,Xr)}function ta(t={}){return Ae(t,Zr)}function sa(t,e=new Set){const{drag:s,wheel:o,move:r,scroll:a,pinch:i,hover:c,eventOptions:h,window:g,transform:p,domTarget:k,enabled:P}=t,E=Jr({domTarget:k,eventOptions:h,transform:p,window:g,enabled:P});return e.has("onDrag")&&(E.drag=ta(s)),e.has("onWheel")&&(E.wheel=Oe(o)),e.has("onScroll")&&(E.scroll=Oe(a)),e.has("onMove")&&(E.move=Oe(r)),e.has("onPinch")&&(E.pinch=ea(i)),e.has("onHover")&&(E.hover={enabled:!0,...c}),E}function na(t,e,s={}){const o=oa(t),r=new Er(o);return r.config=e,r.handlers=t,r.nativeRefs=s,ys()&&!e.manual&&(be(r.bind),bs(r.clean)),r}function oa(t){const e=new Set;return t.drag&&e.add(F.get("drag")),t.wheel&&e.add(F.get("wheel")),t.scroll&&e.add(F.get("scroll")),t.move&&e.add(F.get("move")),t.pinch&&e.add(F.get("pinch")),t.hover&&e.add(F.get("hover")),e}var ra=Object.defineProperty,aa=(t,e,s)=>e in t?ra(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,J=(t,e,s)=>(aa(t,typeof e!="symbol"?e+"":e,s),s);class vt extends $e{constructor(){super(...arguments),J(this,"ingKey","moving"),J(this,"stateKey","move"),J(this,"debounced",!0),J(this,"onMove",e=>{this.enabled&&(this.setTimeout(this.onMoveEnd),this.state._active?this.onMoveChange(e):this.onMoveStart(e))}),J(this,"onMoveStart",e=>{this.updateSharedState(q(e));const s=le(e,this.transform);this.updateGestureState({...ae(this,s,e),...R(this,e,!0)}),this.updateGestureState(this.getMovement(s)),this.fireGestureHandler()}),J(this,"onMoveChange",e=>{this.updateSharedState(q(e));const s=le(e,this.transform);this.updateGestureState({...R(this,e),...this.getKinematics(s,e)}),this.fireGestureHandler()}),J(this,"onMoveEnd",()=>{if(this.clean(),!this.state._active)return;const e=this.state.values;this.updateGestureState(this.getMovement(e)),this.updateGestureState({velocities:[0,0],velocity:0,_active:!1}),this.fireGestureHandler()}),J(this,"hoverTransform",()=>this.controller.config.hover.transform||this.controller.config.transform),J(this,"onPointerEnter",e=>{if(this.controller.state.shared.hovering=!0,!!this.controller.config.enabled){if(this.controller.config.hover.enabled){const s=le(e,this.hoverTransform()),o={...this.controller.state.shared,...this.state,...R(this,e,!0),args:this.args,values:s,active:!0,hovering:!0};this.controller.handlers.hover({...o,...this.mapStateValues(o)})}"move"in this.controller.handlers&&this.onMoveStart(e)}}),J(this,"onPointerLeave",e=>{if(this.controller.state.shared.hovering=!1,"move"in this.controller.handlers&&this.onMoveEnd(),!this.controller.config.hover.enabled)return;const s=le(e,this.hoverTransform()),o={...this.controller.state.shared,...this.state,...R(this,e),args:this.args,values:s,active:!1};this.controller.handlers.hover({...o,...this.mapStateValues(o)})})}addBindings(e){"move"in this.controller.handlers&&O(e,"onPointerMove",this.onMove),"hover"in this.controller.handlers&&(O(e,"onPointerEnter",this.onPointerEnter),O(e,"onPointerLeave",this.onPointerLeave))}}class ia extends Qt{getInternalMovement(e,s){const o=s.values[1];let[r,a=o]=e,i=a-o,c=s.turns;return Math.abs(i)>270&&(c+=Be(i)),qe([r,a-360*c],s.initial)}getKinematics(e,s){const o=this.getMovement(e),r=(e[1]-o._movement[1]-this.state.initial[1])/360,a=s.timeStamp-this.state.timeStamp,{distance:i,velocity:c,...h}=Ft(o.movement,o.delta,a);return{turns:r,...o,...h}}mapStateValues(e){return{da:e.values,vdva:e.velocities}}}var la=Object.defineProperty,ca=(t,e,s)=>e in t?la(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,j=(t,e,s)=>(ca(t,typeof e!="symbol"?e+"":e,s),s);const ua=7,da=260;class pa extends ia{constructor(){super(...arguments),j(this,"ingKey","pinching"),j(this,"stateKey","pinch"),j(this,"onPinchStart",e=>{Wt(this.controller,e);const s=this.controller.touchIds;if(!this.enabled||this.state._active&&this.state._pointerIds.every(i=>s.has(i))||s.size<2)return;const o=Array.from(s).slice(0,2),{values:r,origin:a}=it(e,o,this.transform);this.updateSharedState(q(e)),this.updateGestureState({...ae(this,r,e),...R(this,e,!0),_pointerIds:o,cancel:this.onCancel,origin:a}),this.updateGestureState(this.getMovement(r)),this.fireGestureHandler()}),j(this,"onPinchChange",e=>{const{canceled:s,_active:o}=this.state;if(s||!o||e.timeStamp===this.state.timeStamp)return;const r=q(e);this.updateSharedState(r);try{const{values:a,origin:i}=it(e,this.state._pointerIds,this.transform),c=this.getKinematics(a,e);this.updateGestureState({...R(this,e),...c,origin:i}),this.fireGestureHandler()}catch{this.onPinchEnd(e)}}),j(this,"onPinchEnd",e=>{Kt(this.controller,e);const s=Ue(e);this.state._pointerIds.every(o=>!s.includes(o))||(this.clean(),this.state._active&&(this.updateGestureState({...R(this,e),...this.getMovement(this.state.values),_active:!1}),this.fireGestureHandler()))}),j(this,"onCancel",()=>{this.state.canceled||(this.updateGestureState({_active:!1,canceled:!0}),this.fireGestureHandler())}),j(this,"onGestureStart",e=>{if(!this.enabled)return;e.preventDefault();const s=ut(e,this.transform);this.updateSharedState(q(e)),this.updateGestureState({...ae(this,s,e),...R(this,e,!0),origin:[e.clientX,e.clientY],cancel:this.onCancel}),this.updateGestureState(this.getMovement(s)),this.fireGestureHandler()}),j(this,"onGestureChange",e=>{const{canceled:s,_active:o}=this.state;if(s||!o)return;e.preventDefault();const r=q(e);this.updateSharedState(r);const a=ut(e,this.transform);a[0]=(a[0]-this.state.event.scale)*da+this.state.values[0];const i=this.getKinematics(a,e);this.updateGestureState({...R(this,e),...i,origin:[e.clientX,e.clientY]}),this.fireGestureHandler()}),j(this,"onGestureEnd",e=>{this.clean(),this.state._active&&(this.updateGestureState({...R(this,e),...this.getMovement(this.state.values),_active:!1,origin:[e.clientX,e.clientY]}),this.fireGestureHandler())}),j(this,"wheelShouldRun",e=>this.enabled&&e.ctrlKey),j(this,"getWheelValuesFromEvent",e=>{const[,s]=xt(e,this.transform),{values:[o,r]}=this.state;return{values:[o-s*ua,r!==void 0?r:0],origin:[e.clientX,e.clientY],delta:[0,s]}}),j(this,"onWheel",e=>{this.wheelShouldRun(e)&&(this.setTimeout(this.onWheelEnd),this.state._active?this.onWheelChange(e):this.onWheelStart(e))}),j(this,"onWheelStart",e=>{const{values:s,delta:o,origin:r}=this.getWheelValuesFromEvent(e);e.cancelable&&e.preventDefault(),this.updateSharedState(q(e)),this.updateGestureState({...ae(this,s,e),...R(this,e,!0),initial:this.state.values,offset:s,delta:o,origin:r}),this.updateGestureState(this.getMovement(s)),this.fireGestureHandler()}),j(this,"onWheelChange",e=>{e.cancelable&&e.preventDefault(),this.updateSharedState(q(e));const{values:s,origin:o,delta:r}=this.getWheelValuesFromEvent(e);this.updateGestureState({...R(this,e),...this.getKinematics(s,e),origin:o,delta:r}),this.fireGestureHandler()}),j(this,"onWheelEnd",()=>{this.clean(),this.state._active&&(this.state._active=!1,this.updateGestureState(this.getMovement(this.state.values)),this.fireGestureHandler())})}addBindings(e){this.controller.config.domTarget&&!this.controller.supportsTouchEvents&&this.controller.supportsGestureEvents?(O(e,"onGestureStart",this.onGestureStart),O(e,"onGestureChange",this.onGestureChange),O(e,"onGestureEnd",this.onGestureEnd)):(O(e,"onTouchStart",this.onPinchStart),O(e,"onTouchMove",this.onPinchChange),O(e,"onTouchEnd",this.onPinchEnd),O(e,"onTouchCancel",this.onPinchEnd),O(e,"onWheel",this.onWheel))}}var ha=Object.defineProperty,ga=(t,e,s)=>e in t?ha(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,me=(t,e,s)=>(ga(t,typeof e!="symbol"?e+"":e,s),s);class ma extends $e{constructor(){super(...arguments),me(this,"ingKey","scrolling"),me(this,"stateKey","scroll"),me(this,"debounced",!0),me(this,"handleEvent",e=>{if(!this.enabled)return;this.clearTimeout(),this.setTimeout(this.onEnd);
1const s=wr(e,this.transform);if(this.updateSharedState(q(e)),this.state._active)this.updateGestureState({...R(this,e),...this.getKinematics(s,e)});else{this.updateGestureState({...ae(this,s,e),...R(this,e,!0),initial:this.state.values});const o=this.getMovement(s),r=qt(o.delta);this.updateGestureState(o),this.updateGestureState(r)}this.fireGestureHandler()}),me(this,"onEnd",()=>{this.clean(),this.state._active&&(this.updateGestureState({...this.getMovement(this.state.values),_active:!1,velocities:[0,0],velocity:0}),this.fireGestureHandler())})}addBindings(e){O(e,"onScroll",this.handleEvent)}}var fa=Object.defineProperty,va=(t,e,s)=>e in t?fa(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,fe=(t,e,s)=>(va(t,typeof e!="symbol"?e+"":e,s),s);class ya extends $e{constructor(){super(...arguments),fe(this,"ingKey","wheeling"),fe(this,"stateKey","wheel"),fe(this,"debounced",!0),fe(this,"handleEvent",e=>{if(e.ctrlKey&&"pinch"in this.controller.handlers||!this.enabled)return;this.setTimeout(this.onEnd),this.updateSharedState(q(e));const s=Le(xt(e,this.transform),this.state.values);if(this.state._active)this.updateGestureState({...R(this,e),...this.getKinematics(s,e)});else{this.updateGestureState({...ae(this,s,e),...R(this,e,!0),initial:this.state.values});const o=this.getMovement(s),r=qt(o.delta);this.updateGestureState(o),this.updateGestureState(r)}this.fireGestureHandler()}),fe(this,"onEnd",()=>{if(this.clean(),!this.state._active)return;const e=this.getMovement(this.state.values);this.updateGestureState(e),this.updateGestureState({_active:!1,velocities:[0,0],velocity:0}),this.fireGestureHandler()})}addBindings(e){O(e,"onWheel",this.handleEvent)}}const ba=/^on(Drag|Wheel|Scroll|Move|Pinch|Hover)/;function ka(t){const e={},s={},o=new Set;for(let r in t)ba.test(r)?(o.add(RegExp.lastMatch),s[r]=t[r]):e[r]=t[r];return[s,e,o]}function _a(t,e){const[s,o,r]=ka(t);F.set("drag",Wr),F.set("hover",vt),F.set("move",vt),F.set("pinch",pa),F.set("scroll",ma),F.set("wheel",ya);const a=sa(e,r),i={};return r.has("onDrag")&&(i.drag=ve(s,"onDrag")),r.has("onWheel")&&(i.wheel=ve(s,"onWheel")),r.has("onScroll")&&(i.scroll=ve(s,"onScroll")),r.has("onMove")&&(i.move=ve(s,"onMove")),r.has("onPinch")&&(i.pinch=ve(s,"onPinch")),r.has("onHover")&&(i.hover=s.onHover),na(i,a,o)}function ve(t,e){const s=e+"Start",o=e+"End";return a=>{let i;return a.first&&s in t&&t[s](a),e in t&&(i=t[e](a)),a.last&&o in t&&t[o](a),i}}const Ta=["src","alt"],Aa=I({__name:"ImagePinchScrollZoom",props:{src:{},alt:{}},emits:["touchstart","touchend"],setup(t,{expose:e}){const s=t,o=M(1),r=M(0),a=M(0),i=M(0),c=M(0),h=M(0),g=M(!1),p=M(null),k=M(null),P=(v,G,z)=>Math.max(G,Math.min(v,z)),E=()=>{if(!p.value)return;const v=p.value.offsetWidth,G=p.value.offsetHeight,z=v*(o.value-1)/2,Q=G*(o.value-1)/2;r.value=P(r.value,-z,z),a.value=P(a.value,-Q,Q)},S=(v,G=!1)=>{o.value=P(v,1,5),G?(r.value=0,a.value=0):E()};_a({onPinch:({delta:[v]})=>{S(o.value+v*.02)},onPinchEnd:()=>{E(),i.value=r.value,c.value=a.value,h.value=performance.now()},onDragStart:()=>{performance.now()-h.value<40||(g.value=!0,i.value=r.value,c.value=a.value)},onDrag:({movement:[v,G]})=>{if(performance.now()-h.value<40||o.value<=1||!p.value)return;const z=p.value.offsetWidth,Q=p.value.offsetHeight,ie=z*(o.value-1)/2,Pe=Q*(o.value-1)/2;r.value=P(i.value+v,-ie,ie),a.value=P(c.value+G,-Pe,Pe)},onDragEnd:()=>{g.value=!1,E()}},{domTarget:p,eventOptions:{passive:!1}});const T=y(()=>{const v=!g.value&&o.value===1?"transform 0.12s ease-out":"none";return{transform:`translate3d(${r.value}px, ${a.value}px, 0) scale(${o.value})`,transition:v}});return e({setScale:S}),de(()=>s.src,()=>{S(1,!0)}),(v,G)=>(l(),_("div",{ref_key:"containerRef",ref:p,class:"pinch-zoom-container",onTouchstart:G[0]||(G[0]=z=>v.$emit("touchstart",{event:z,scale:n(o)})),onTouchend:G[1]||(G[1]=z=>v.$emit("touchend",{event:z,scale:n(o)}))},[f("div",null,[f("img",{ref_key:"imgRef",ref:k,src:v.src,alt:v.alt,style:_s(n(T)),class:"zoomable-image",draggable:"false"},null,12,Ta)])],544))}}),Pa=C(Aa,[["__scopeId","data-v-d1e78f92"]]),Sa={class:"responsive-zoom-container"},wa=I({__name:"ImagePinchZoom",props:{product:{},index:{}},emits:["showNextImage","showPrevImage"],setup(t,{emit:e}){const s=e,o=M(null),r=M(0),a=M(0),i=M(!1);let c=0;const h=p=>{if(p.event.touches.length>1){i.value=!0;return}i.value=!1;const k=new Date().getTime(),P=k-c;if(c=k,P<300&&P>0){o.value?.setScale(p.scale===1?2:1,!0);return}const{screenX:E}=p.event.changedTouches[0]??{};r.value=E},g=p=>
1{if(p.event.touches.length>1||p.event.changedTouches.length>1||i.value)return;const{screenX:k}=p.event.changedTouches[0]??{};a.value=k;const P=40;p.scale>1||(a.value+P<r.value&&s("showNextImage"),a.value-P>r.value&&s("showPrevImage"))};return(p,k)=>(l(),_("div",Sa,[d(Pa,{ref_key:"zoomer",ref:o,src:p.product?.images[p.index].image,alt:`Ingezoomde afbeelding van ${p.product?.title}`,onTouchstart:h,onTouchend:g},null,8,["src","alt"])]))}}),Ma=C(wa,[["__scopeId","data-v-d5f88a02"]]),Ia={key:0,class:"main-block"},Ea=I({__name:"ImagePinchZoomWrapper",props:{product:{}},setup(t){const e=t,s=M(0),o=M(!1),r=M(0),a=y(()=>e.product?.thumbnails.map(k=>k.image)),i=(k,P)=>{s.value=P,c(P)},c=k=>{X("click",{action:"other click",label:"product image",value:String(k+1),componentRoot:"product detail page",componentParent:"product detail",componentSection:"product image",supClick:"product image"})},h=()=>{s.value<(e.product?.images.length||1)-1?s.value+=1:s.value=0,c(s.value)},g=()=>{s.value>0?s.value-=1:s.value=(e.product?.images.length||1)-1,c(s.value)},p=()=>{setTimeout(()=>{r.value+=1},100)};return be(()=>{o.value=!0,Ts(window,"orientationchange",p)}),(k,P)=>(l(),_(B,null,[d(Dt,{"is-active":"","initially-active":""},{default:u(()=>[A(D(n(s)+1)+" van "+D(k.product?.images.length),1)]),_:1}),d(We,{name:"slidein"},{default:u(()=>[n(o)?(l(),_("div",Ia,[P[0]||(P[0]=f("p",{class:"tip-container"},[f("strong",null,"Tip!"),A(" Zoom in met 2 vingers")],-1)),(l(),b(Ma,{key:n(r),product:k.product,index:n(s),onShowNextImage:h,onShowPrevImage:g},null,8,["product","index"])),d(He,{images:n(a),"selected-index":n(s),title:k.product?.title,"is-horizontal":"",class:"thumbnails",onChange:i},null,8,["images","selected-index","title"])])):m("",!0)]),_:1})],64))}}),Ca=C(Ea,[["__scopeId","data-v-3e3351d7"]]),La={key:0},Ba=I({__name:"ProductDetailWrapper",props:{basketLines:{},product:{},isLoading:{type:Boolean}},setup(t){const e=t,{application:{isJumboMobile:s}}=ke(),o=De(),r=y(()=>o.query.mode==="zoom"&&s.value);de(()=>e.product,i=>{i&&X("product-detail",{product:i})},{immediate:!0});const{isAmendOrderBasket:a}=It();return(i,c)=>{const h=wt;return l(),b(n(Et),{class:V(["product-detail-wrapper",{"product-detail-wrapper-app":n(s),"product-detail-wrapper-app-amend":n(s)&&n(a)}]),"analytics-root-tag":"product detail page"},{default:u(()=>[n(r)?(l(),b(Ca,{key:0,product:i.product},null,8,["product"])):m("",!0),d(We,{name:"slide-product-info",mode:"out-in"},{default:u(()=>[n(r)?m("",!0):(l(),_("div",La,[n(s)?m("",!0):(l(),b(qs,{key:0,product:i.product,"is-loading":i.isLoading},null,8,["product","is-loading"])),d(yr,{"basket-lines":i.basketLines,product:i.product,"is-loading":i.isLoading},null,8,["basket-lines","product","is-loading"]),d(Vo,{product:i.product,"is-loading":i.isLoading},null,8,["product","is-loading"]),i.product?(l(),b(h,{key:1},{default:u(()=>[d(Pr,{"basket-lines":i.basketLines,product:i.product},null,8,["basket-lines","product"])]),_:1})):m("",!0)]))]),_:1})]),_:1},8,["class"])}}}),Da=C(Ba,[["__scopeId","data-v-7d722f40"]]),Ga={class:"error"},$a={class:"hidden"},Oa=I({__name:"ErrorMessage",props:{error:{default:()=>({message:"Onbekende fout"}),type:Object}},setup(t){return(e,s)=>(l(),_("main",Ga,[d(n(w),{h1:""},{default:u(()=>s[0]||(s[0]=[f("strong",null,"Helaas",-1),A(", er is iets mis")])),_:1}),t.error.message?(l(),b(n(w),{key:0,h2:"",styled:"h3"},{default:u(()=>[A(D(t.error.message),1)]),_:1})):m("",!0),s[1]||(s[1]=f("p",null,[A(" We kunnen deze pagina niet voor je bezorgen."),f("br"),A(" Probeer het later nog eens of neem contact op met "),f("a",{href:"/service"},"onze klantenservice"),A(". ")],-1)),f("pre",$a,D(t.error),1)]))}}),Ra=C(Oa,[["__scopeId","data-v-7529088f"]]),Qe=({title:t,rootCategory:e})=>`${t} online bestellen? Je vindt het bij Jumbo. Altijd lage prijzen op je ${e}
1. Gratis bezorging of ophalen bij actieproducten.`,Na=t=>t?[{content:t.title,property:"og:title"},{content:t.image,property:"og:image"},{content:t.canonicalUrl,property:"og:url"},{content:Qe(t),property:"og:description"},{content:"nl_NL",property:"og:locale"},{content:"Jumbo Supermarkten",property:"og:site_name"}]:[],Ha=t=>{if(!t)return null;const{brand:e,canonicalUrl:s,rootCategory:o,description:r,ean:a,id:i,image:c,price:h,title:g,brandURL:p}=t,k=h?.price/100||0,P=(h?.promoPrice||h?.price)/100||0,E=t?.availability?.reason===U.DELISTED;return{"@context":"https://schema.org/","@type":"Product",brand:{"@type":"Brand",name:e,URL:p},category:o,description:r||Qe({rootCategory:o,title:g}),gtin13:a,image:c,name:g,offers:{"@type":"AggregateOffer",highPrice:k,lowPrice:P,offerCount:99,priceCurrency:"EUR",...E&&{availability:"https://schema.org/Discontinued"}},sku:i,url:s}};function xa(t){const e=y(()=>t?.value?{link:[{href:t&&t.value.canonicalUrl,rel:"canonical"}],meta:[{content:Qe({title:t.value?.title,rootCategory:t.value?.rootCategory}),hid:"description",name:"description"},...t.value?.availability?.reason==U.INCOMING?[{name:"robots",content:"noindex, nofollow"}]:[],...Na(t.value)],script:[{innerHTML:JSON.stringify(Ha(t.value)),type:"application/ld+json"}],title:`${t.value.title} bestellen?`}:{});As(e)}const za=[U.UNKNOWN,U.NOT_FOR_ONLINE];function ja(t){const e=De(),s=e.params.sku;if(s)s&&e.path?.endsWith?.("/")&&Ne(e.path.slice(0,-1),{external:!0});else throw Xe({data:"Url does not contain a product-id",statusCode:400,statusMessage:"Geen product id opgegeven"});return{product:t,mutateData:async r=>{const a=r.product;if(!a)return console.warn(`This product doesn't exist (anymore): ${s}`),null;if(za.includes(a?.availability?.reason))return Ps({title:`Dit product bestaat niet (meer): ${s}`,type:404}),null;if(e?.path&&!a.canonicalUrl.endsWith(e.path)){const i=e.query&&Object.keys(e.query).length>0,h=`${a.canonicalUrl}${i?"?":""}${new URLSearchParams(e.query).toString()}`.replace(/^https?:\/\/[^/]+/,"");return await Ne(h,{external:!0}),null}if(!a.price)throw Xe({data:`This product doensn't have a price: ${s}`,statusCode:404,statusMessage:`Kan geen prijs vinden voor dit product: ${s}`});t.value=a}}}function Xt(){const t=M(!1),{application:{isJumboWeb:e}}=ke();return{redirectToReplacementProduct:async o=>{const r=o?.replacementProduct?.link??null;r&&o?.availability?.reason===U.DELISTED&&(t.value=!0,e.value?(await Ne(r,{replace:!0}),t.value=!1):window.dispatchEvent(new CustomEvent("appNavigation:navigateTo",{detail:{path:r,replace:!0}})))},isRedirecting:t}}const Wa=()=>Ct("product-server-fetched-flag",()=>!1),Ka=()=>Ct("product-product-detail-data",()=>null);function Va(t){const e=Ka(),s=Wa(),{client:o}=Ss(),{mutateData:r}=ja(e),{redirectToReplacementProduct:a,isRedirecting:i}=Xt(),c=()=>{Ms(o);const p=ws(),k=()=>(e.value=null,p.load(void 0,{sku:t}));return p.onResult(({data:P})=>{P?.product&&(r(P),a(P.product))}),{...p,load:k}},{load:h,loading:g}=c();return{product:e,isRedirecting:i,load:h,isLoading:g,isServerPrefetched:s}}const $i=I({__name:"product-detail",async setup(t){const{isRedirecting:e}=Xt(),s=De(),o=s.path.includes("-")&&s.path.split("-").pop(),{load:r,isLoading:a,product:i,isServerPrefetched:c}=Va(o),{basket:h}=Is(Es()),g={message:`Dit product bestaat niet (meer): ${o}`};return be(()=>{c.value?c.value=!1:r(),de(i,p=>{p&&X("pageview",{dataProcessingRestricted:p?.dataProcessingRestricted})},{immediate:!0})}),xa(i),(p,k)=>(l(),_("div",null,[(l(),b(Cs,null,{default:u(()=>[n(i)||n(a)?(l(),b(Da,{key:0,product:n(i),"is-loading":n(a)||n(e),"basket-lines":n(h)?.lines,"data-testid":"product-wrapper"},null,8,["product","is-loading","basket-lines"])):(l(),b(Ra,{key:1,error:g}))]),_:1}))]))}});export{$i as default};
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.