1import{addToCart}from"@theme/cart-add";const ADD_ERROR="Toevoegen lukte niet, probeer het opnieuw.",cardOf=form=>form.closest(".card-quickshop")??form,setStatus=(form,message,isError)=>{const status=cardOf(form).querySelector("[data-quickshop-status]");status&&(status.classList.toggle("card-quickshop__status--error",isError),status.classList.toggle("visually-hidden",!isError),status.textContent=message)},setBusy=(form,submitter,busy)=>{const card=cardOf(form);card.toggleAttribute("data-quickshop-busy",busy),busy?submitter.setAttribute("aria-busy","true"):submitter.removeAttribute("aria-busy"),card.querySelectorAll('button[type="submit"]').forEach(button=>{busy?button.setAttribute("aria-disabled","true"):button.removeAttribute("aria-disabled")})};document.addEventListener("submit",async event=>{const form=event.target;if(!(form instanceof HTMLFormElement)||!form.hasAttribute("data-card-quickshop"))return;const submitter=event.submitter;if(!(submitter instanceof HTMLButtonElement)||!submitter.value||(event.preventDefault(),cardOf(form).hasAttribute("data-quickshop-busy")))return;const label=submitter.dataset.quickshopLabel??"";setStatus(form,"",!1),setBusy(form,submitter,!0);try{const{redirect}=await addToCart(form,{submitter,source:"card-quickshop"});redirect||setStatus(form,`${label} is toegevoegd aan je winkelwagen`,!1)}catch(reason){setStatus(form,reason instanceof Error&&reason.message?reason.message:ADD_ERROR,!0)}finally{setBusy(form,submitter,!1)}});const MAX_ROWS=2,FALLBACK_GAP=8;export const countFittingChips=({widths,moreWidth,containerWidth,gap,reserveMore=!1,maxRows=MAX_ROWS})=>{const rowsNeeded=list=>{let rows2=0,x=0;for(const width of list){const w=Math.min(width,containerWidth);rows2===0?(rows2=1,x=w):x+gap+w>containerWidth?(rows2+=1,x=w):x+=gap+w}return rows2};if(!reserveMore&&rowsNeeded(widths)<=maxRows)return widths.length;for(let keep=reserveMore?widths.length:widths.length-1;keep>=0;keep--)if(rowsNeeded([...widths.slice(0,keep),moreWidth])<=maxRows)return keep;return 0},fitCard=row=>{const chips=Array.from(row.querySelectorAll(".card-quickshop__chip")),more=row.closest(".card-quickshop")?.querySelector("[data-quickshop-more]");if(chips.length===0||!(more instanceof HTMLElement))return;const style=getComputedStyle(row),containerWidth=row.clientWidth-(parseFloat(style.paddingLeft)||0)-(parseFloat(style.paddingRight)||0);if(containerWidth<=0)return;const label=more.querySelector("[data-quickshop-more-label]"),extra=Number(more.dataset.extra)||0;more.classList.add("card-quickshop__more--inline"),row.append(more),more.hidden=!1,label&&(label.textContent=`+${chips.length+extra}`);for(const chip of chips)chip.hidden=!1;const keep=countFittingChips({widths:chips.map(chip=>chip.getBoundingClientRect().width),moreWidth:more.getBoundingClientRect().width,containerWidth,gap:parseFloat(style.columnGap)||FALLBACK_GAP,reserveMore:extra>0});chips.forEach((chip,index)=>{chip.hidden=index>=keep});const hiddenCount=chips.length-keep+extra;hiddenCount>0?label&&(label.textContent=`+${hiddenCount}`):more.hidden=!0};const rows=new Set;let lastWidths=new WeakMap;const refitAll=()=>{lastWidths=new WeakMap,rows.forEach(row=>row.isConnected?fitCard(row):rows.delete(row))};if(typeof ResizeObserver<"u"){document.documentElement.classList.add("quickshop-fit");const resizeObserver=new ResizeObserver(entries=>{for(const entry of entries){const row=entry.target,width=entry.contentRect.width;!(row instanceof HTMLElement)||lastWidths.get(row)===width||(lastWidths.set(row,width),fitCard(row))}}),forgetDetachedRows=()=>{rows.forEach(row=>{row.isConnected||(rows.delete(row),resizeObserver.unobserve(row))})},observeNewRows=()=>{document.querySelectorAll(".card-quickshop__chips").forEach(row=>{rows.has(row)||(rows.add(row),resizeObserver.observe(row))})};observeNewRows();let scheduled=!1;new MutationObserver(()=>{scheduled||(scheduled=!0,requestAnimationFrame(()=>{scheduled=!1,forgetDetachedRows(),observeNewRows()}))}).observe(document.body,{childList:!0,subtree:!0}),document.fonts?.ready.then(refitAll)} 2//# sourceMappingURL=/cdn/shop/t/4/assets/card-quickshop.js.map?v=131778407658718868981790936248
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.