1if(!customElements.get("mhsys-warenkorb")){let schnellansichtAn2=function(cfg){if(cfg.an)return!0;try{return localStorage.getItem("mhSchnellansichtTest")==="1"}catch{return!1}},schnellansichtLaden2=function(cfg){if(!saLaden){const css=!cfg.huelle||document.querySelector(`link[href="${CSS.escape(cfg.huelle)}"]`)?Promise.resolve():new Promise(fertig=>{const l=document.createElement("link");l.rel="stylesheet",l.href=cfg.huelle,l.onload=l.onerror=()=>fertig(),document.head.appendChild(l)}),skript=new Promise((fertig,fehler)=>{const s=document.createElement("script");s.src=cfg.skript,s.onload=fertig,s.onerror=fehler,document.head.appendChild(s)});saLaden=Promise.all([skript,css]),saLaden.catch(()=>{saLaden=null})}return saLaden},schnellansichtVorladen2=function(wurzel){if(saLaden||typeof window.mhsysSchnellansichtOeffnen=="function")return;const cfg=window.mhsysSchnellansicht||{};if(!cfg.skript||!schnellansichtAn2(cfg)||!wurzel.querySelector("[data-wk-schnellansicht]"))return;const los=()=>{saLaden||schnellansichtLaden2(cfg).catch(()=>{})};"requestIdleCallback"in window?window.requestIdleCallback(los,{timeout:2e3}):setTimeout(los,300)},schnellansichtOeffnen2=function(link){if(typeof window.mhsysSchnellansichtOeffnen=="function")return window.mhsysSchnellansichtOeffnen(link)!==!1;const cfg=window.mhsysSchnellansicht||{};if(!cfg.skript||!schnellansichtAn2(cfg))return!1;if(saWartet)return!0;saWartet=!0;const ziel=link.href;return schnellansichtLaden2(cfg).then(()=>{saWartet=!1;const oeffnen=window.mhsysSchnellansichtOeffnen;(typeof oeffnen!="function"||oeffnen(link)===!1)&&(window.location.href=ziel)}).catch(()=>{saWartet=!1,window.location.href=ziel}),!0};var schnellansichtAn=schnellansichtAn2,schnellansichtLaden=schnellansichtLaden2,schnellansichtVorladen=schnellansichtVorladen2,schnellansichtOeffnen=schnellansichtOeffnen2;const SECTION="mhsys-warenkorb",EIGEN="X-Mhsys-Warenkorb",WARENKORB_URL=/\/cart\/(add|change|update|clear)(\.js)?(\?|$)/,routen=()=>window.mhsysShop||{},FOKUSSIERBAR='a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])';let saLaden=null,saWartet=!1;class MhsysWarenkorb extends HTMLElement{connectedCallback(){this.bereit||(this.bereit=!0,this.inhalt=this.querySelector("[data-wk-inhalt]"),this.seite=this.hasAttribute("data-seite"),this.section=this.dataset.section||SECTION,this.leiste=this.querySelector("[data-wk-leiste]"),this.geladen=!1,this.anfrageNr=0,this.eingesetztNr=0,this.addEventListener("click",e=>this.beiKlick(e)),this.addEventListener("change",e=>this.beiAenderung(e)),this.addEventListener("keydown",e=>{e.key==="Escape"&&this.close()}),this.symbolVerbinden(),this.fremdeAufrufeBeobachten(),this.seite&&setTimeout(()=>this.wunschterminPruefen(),0),this.seite&&setTimeout(()=>this.mindestmengePruefen(),0))}get sectionName(){return this.section}ausloeserMerken(element){this.ausloeser=element}antwortEinsetzen(antwort){const html=antwort&&antwort.sections&&antwort.sections[this.section];html?this.einsetzen(html,++this.anfrageNr):this.laden(),antwort&&(antwort.id||antwort.key||antwort.items)&&this.open()}nurNeuLaden(){return this.laden()}open(ausloeser){this.seite||(ausloeser&&this.ausloeserMerken(ausloeser),!this.geladen&&!this.vorlaedt&&this.laden(),!this.classList.contains("is-offen")&&(this.hidden=!1,document.documentElement.classList.add("mhsys-wk-offen"),this.leiste.offsetWidth,this.classList.add("is-offen"),this.falleSetzen(),schnellansichtVorladen2(this.inhalt)))}close(){this.seite||!this.classList.contains("is-offen")||(this.classList.remove("is-offen"),document.documentElement.classList.remove("mhsys-wk-offen"),this.letzterFokus=null,this.falleLoesen(),setTimeout(()=>{this.classList.contains("is-offen")||(this.hidden=!0)},300))}falleSetzen(){this.beiTabTaste||(this.beiTabTaste=e=>{if(e.key!=="Tab")return;const ziele=[...this.leiste.querySelectorAll(FOKUSSIERBAR)].filter(el=>el.offsetParent!==null);if(!ziele.length)return;const erstes=ziele[0],letztes=ziele[ziele.length-1];e.shiftKey&&document.activeElement===erstes?(e.preventDefault(),letztes.focus()):!e.shiftKey&&document.activeElement===letztes&&(e.preventDefault(),erstes.focus())},this.leiste.addEventListener("keydown",this.beiTabTaste),this.leiste.focus())}falleLoesen(){this.beiTabTaste&&(this.leiste.removeEventListener("keydown",this.beiTabTaste),this.beiTabTaste=null),this.ausloeser&&this.ausloeser.focu
1s&&this.ausloeser.focus()}laden(){const nr=++this.anfrageNr,url=`${routen().warenkorbUrl||"/cart"}?sections=${this.section}`;return fetch(url,{headers:{[EIGEN]:"1"}}).then(r=>r.json()).then(s=>this.einsetzen(s[this.section],nr)).catch(e=>console.error("Warenkorb laden:",e))}aktualisieren(oeffnen){const p=this.laden();return oeffnen&&this.open(),p}einsetzen(html,nr,nachEntfernen){if(!html)return;if(nr){if(nr<this.eingesetztNr)return;this.eingesetztNr=nr}const neu=new DOMParser().parseFromString(html,"text/html").querySelector(".mhsys-wk__rahmen");if(!neu)return;const koerper=this.inhalt.querySelector(".mhsys-wk__koerper"),scroll=koerper?koerper.scrollTop:0,frei=!document.activeElement||document.activeElement===document.body,fokus=this.fokusMerken()||(frei?this.letzterFokus:null);this.letzterFokus=null,this.inhalt.replaceChildren(document.adoptNode(neu)),this.skripteAusfuehren(this.inhalt),this.geladen=!0,(this.classList.contains("is-offen")||this.seite)&&schnellansichtVorladen2(this.inhalt);const koerperNeu=this.inhalt.querySelector(".mhsys-wk__koerper");koerperNeu&&(koerperNeu.scrollTop=scroll),this.fokusZurueck(fokus),this.symbolZaehlen(Number(neu.dataset.wkAnzahl||0)),this.meldungZeigen(),nachEntfernen&&neu.dataset.wkNurExpress&&this.schreiben("change",{id:neu.dataset.wkNurExpress,quantity:0}),setTimeout(()=>this.mindestmengePruefen(),0),setTimeout(()=>this.wunschterminPruefen(),0),setTimeout(()=>this.expressPruefen(),0)}wunschterminPruefen(){if(this.laufend)return;const wahl=this.inhalt.querySelector("[data-wk-termin-wahl]");if(!wahl)return;const aktuell=wahl.dataset.wkTerminAktuell||"",select=wahl.querySelector("[data-wk-termin-select]");aktuell&&select&&select.value!==aktuell&&this.schreiben("update",{attributes:{Versandtag:""}})}expressPruefen(){if(this.laufend)return;const el=this.inhalt.querySelector("[data-wk-express-raus]");if(!el)return;const tage=Number(el.dataset.wkExpressRausTage)||0,vorbestellt=el.dataset.wkExpressRausVorbestellung;this.meldung={text:vorbestellt?`Express-Bearbeitung entfernt: deine Bestellung enth\xE4lt eine Vorbestellung (Versand ab ${vorbestellt}).`:`Express-Bearbeitung entfernt: ein Artikel wird erst f\xFCr dich gefertigt (${tage} Werktage).`},this.schreiben("change",{id:el.dataset.wkExpressRaus,quantity:0})}mindestmengePruefen(){if(this.laufend)return;const zuWenig=[...this.inhalt.querySelectorAll("[data-wk-min]")].find(p=>Number(p.dataset.wkMenge)<Number(p.dataset.wkMin));zuWenig&&(this.fehlerMerken(zuWenig,`Mindestbestellmenge: ${zuWenig.dataset.wkMin} St\xFCck \u2013 Menge angepasst`),this.menge(zuWenig,Number(zuWenig.dataset.wkMin)))}fokusMerken(){const el=document.activeElement;if(!el||el===this.inhalt||!this.inhalt.contains(el))return null;const posten=el.closest("[data-wk-key]");return{key:posten?posten.dataset.wkKey:"",merkmal:this.merkmal(el)}}merkmal(el){const daten=[...el.attributes].find(a=>a.name.startsWith("data-wk-"));return`${el.tagName}|${el.getAttribute("aria-label")||el.getAttribute("name")||(daten?daten.name:"")}`}fokusZurueck(f){if(!f)return;const ziel=[...(f.key&&[...this.inhalt.querySelectorAll("[data-wk-key]")].find(p=>p.dataset.wkKey===f.key)||this.inhalt).querySelectorAll(FOKUSSIERBAR)].find(el=>this.merkmal(el)===f.merkmal);if(ziel)return ziel.focus({preventScroll:!0});const ersatz=this.seite?this.inhalt.querySelector("h1"):this.leiste;ersatz&&(ersatz.hasAttribute("tabindex")||ersatz.setAttribute("tabindex","-1"),ersatz.focus({preventScroll:!0}))}skripteAusfuehren(wurzel){wurzel.querySelectorAll("script").forEach(alt=>{const s=document.createElement("script");for(const a of alt.attributes)s.setAttribute(a.name,a.value);s.textContent=alt.textContent,alt.replaceWith(s)})}schreiben(art,daten,posten){const r=routen(),url={add:r.warenkorbHinzufuegenUrl||"/cart/add",update:r.warenkorbSetzenUrl||"/cart/update"}[art]||r.warenkorbAendernUrl||"/cart/change",nr=++this.anfrageNr;return this.laufend=(this.laufend||0)+1,this.classList.add("is-beschaeftigt"),fetch(`${url}.js`.replace(/\.js\.js$/,".js"),{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json",[EIGEN]:"1"},body:JSON.stringify(Object.assign({},daten,{sections:this.section,sections_url:window.location.pathname}))}).then(r2=>r2.json()).then(antwort=>{if(antwort.status)return this.fehlerMerken(posten,antwort.description||antwort.message),this.laden();antwort.sections&&antwort.sections[this.section]?this.einsetzen(antwort.sections[this.section],nr,art!=="add"):this.laden(),document.dispatchEvent(new CustomEvent("mhsys:warenkorb-geaendert",{detail:{quelle:"warenkorb"}}))}).catch(e=>{console.error("Warenkorb:",e),this.fehlerMerken(posten,"Das hat leider nicht geklappt."),this.meldungZeigen()}).finally(()=>{this.laufend--,this.laufend||this.classList.remove("is-beschaeftigt")})}fehlerMerken(posten,text){const bestand=/stock|lager|verf[uü]gbar|only|nur noch|bereits/i.test(text||"");this.meldung={key:posten&&posten.dataset&&posten.dataset.wkKey||"",text:bestand?"Lagerbestand nicht ausreichend!":text||"Das hat leider nicht geklappt."}}meldungZeigen(){const m=this.meldung;if(!m)return;this.meldung=null;let ziel=null;if(m.key){const posten=[...this.inhalt.querySelectorAll("[data-wk-key]")].find(p=>p.dataset.wkKey===m.key);posten&&(ziel=posten.querySelector("[data-wk-fehler]"))}ziel||(ziel=this.inhalt.querySelector("[data-wk-fehler-allg]")),ziel&&(ziel.textContent=m.text,ziel.hidden=!1)}menge(posten,wert){const eingabe=posten.querySelector("[data-wk-eingabe]");if(!eingabe)return this.schreiben("change",{id:posten.dataset.wkKey,quantity:0},posten);const max=eingabe.max?Number(eingabe.max):1/0;let m=Math.max(0,Math.floor(Number(wert)||0));const min=Number(posten.dataset.wkMin)||1;if(m>0&&m<min&&(this.fehlerMerken(posten,`Mindestbestellmenge: ${min} St\xFCck`),m=min),m>max&&(this.fehlerMerken(posten,"Lagerbestand"),m=max),eingabe.value=m,m===Number(posten.dataset.wkMenge))return this.meldungZeigen();
1const anhang=(posten.dataset.wkAnhang||"").split(",").filter(Boolean);if(anhang.length){const updates={[posten.dataset.wkKey]:m};return anhang.forEach(k=>updates[k]=m),this.schreiben("update",{updates},posten)}this.schreiben("change",{id:posten.dataset.wkKey,quantity:m},posten)}beiKlick(e){const t=e.target;if(t.closest("[data-wk-zu]")||!this.seite&&!t.closest("[data-wk-leiste]")){e.preventDefault(),this.close();return}const hilfeLink=t.closest("[data-wk-express-hilfe]");if(hilfeLink){e.preventDefault(),typeof window.mhsysPopupOeffnen=="function"&&!(e.metaKey||e.ctrlKey||e.shiftKey)?window.mhsysPopupOeffnen(hilfeLink.href,"Express-Bearbeitung",{verlauf:!0,ausloeser:hilfeLink}):window.open(hilfeLink.href,"_blank","noopener");return}const saLink=t.closest("[data-wk-schnellansicht]");if(saLink&&e.button===0&&!(e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)&&schnellansichtOeffnen2(saLink)){e.preventDefault();return}const terminKnopf=t.closest("[data-wk-termin-oeffnen]");if(terminKnopf){e.preventDefault();const panel=terminKnopf.closest("[data-wk-termin-wahl]").querySelector("[data-wk-termin-auswahl]"),offen=!panel.hidden;panel.hidden=offen,terminKnopf.setAttribute("aria-expanded",String(!offen)),offen||panel.querySelector("[data-wk-termin-select]").focus();return}if(this.laufend)return;this.letzterFokus=this.fokusMerken();const posten=t.closest("[data-wk-key]");if(posten){const eingabe=posten.querySelector("[data-wk-eingabe]");if(t.closest("[data-wk-plus]"))return this.menge(posten,Number(eingabe.value)+1);if(t.closest("[data-wk-minus]"))return this.menge(posten,Number(eingabe.value)-1);if(t.closest("[data-wk-entfernen]"))return this.menge(posten,0)}const dazu=t.closest("[data-wk-empf-dazu]");if(dazu){const karte=dazu.closest("[data-wk-empf]"),wahl=karte.querySelector("[data-wk-empf-wahl]");dazu.disabled=!0,this.schreiben("add",{items:[{id:Number(wahl?wahl.value:dazu.dataset.wkEmpfDazu),quantity:Number(dazu.dataset.wkEmpfMenge)||1,properties:{_quelle:"warenkorb"}}]},karte)}}beiAenderung(e){const t=e.target;if(this.letzterFokus=this.fokusMerken(),this.laufend){t.matches("[data-wk-express]")&&(t.checked=!t.checked);return}if(t.matches("[data-wk-eingabe]")){this.menge(t.closest("[data-wk-key]"),t.value);return}if(t.matches("[data-wk-termin-select]")){const wert=t.value,daten={attributes:{Versandtag:wert}},expressSchalter=this.inhalt.querySelector("[data-wk-express]");wert&&expressSchalter&&expressSchalter.checked&&expressSchalter.dataset.wkExpressKey&&(daten.updates={[expressSchalter.dataset.wkExpressKey]:0}),this.schreiben("update",daten);return}t.matches("[data-wk-express]")&&(t.disabled=!0,t.checked?this.schreiben("add",{items:[{id:Number(t.dataset.wkExpress),quantity:1}]}).then(()=>{const wahl=this.inhalt.querySelector("[data-wk-termin-wahl]");wahl&&wahl.dataset.wkTerminAktuell&&this.schreiben("update",{attributes:{Versandtag:""}})}):t.dataset.wkExpressKey&&this.schreiben("change",{id:t.dataset.wkExpressKey,quantity:0}))}symbolVerbinden(){const symbol=document.getElementById("mhsys-wk-symbol");if(!symbol)return;this.symbol=symbol,symbol.setAttribute("role","button"),symbol.setAttribute("aria-haspopup","dialog");const vorladen=()=>{this.geladen||this.vorlaedt||(this.vorlaedt=!0,this.laden().finally(()=>this.vorlaedt=!1))};symbol.addEventListener("pointerenter",vorladen,{passive:!0}),symbol.addEventListener("touchstart",vorladen,{passive:!0}),symbol.addEventListener("click",e=>{this.seite||(e.preventDefault(),this.open(symbol))}),symbol.addEventListener("keydown",e=>{e.code==="Space"&&(e.preventDefault(),this.open(symbol))})}symbolZaehlen(anzahl){if(!this.symbol)return;const zahl=this.symbol.querySelector("[data-mhsys-wk-zahl]");if(zahl){const text=anzahl<100?String(anzahl):"99+";zahl.textContent!==text&&(zahl.textContent=text),zahl.hidden!==anzahl<=0&&(zahl.hidden=anzahl<=0)}const vorlese=this.symbol.querySelector(".mhsys-vh"),name=`Eikaffskerberl, ${anzahl} Artikel`;vorlese&&vorlese.textContent!==name&&(vorlese.textContent=name)}globoAngleichen(){return new Promise(r=>setTimeout(r,250)).then(()=>fetch(`${routen().wurzelUrl||"/"}cart.js`.replace("//cart","/cart"),{headers:{[EIGEN]:"1"}})).then(r=>r.json()).then(korb=>{const artikel={};
1korb.items.forEach(i=>{const g=i.properties&&i.properties._gpo_product_group;g&&(artikel[g]=(artikel[g]||0)+i.quantity)});const updates={};if(korb.items.forEach(i=>{const g=i.properties&&i.properties._gpo_parent_product_group;g&&artikel[g]&&i.quantity!==artikel[g]&&(updates[i.key]=artikel[g])}),!!Object.keys(updates).length)return fetch(`${routen().warenkorbSetzenUrl||"/cart/update"}.js`,{method:"POST",headers:{"Content-Type":"application/json",[EIGEN]:"1"},body:JSON.stringify({updates})})}).catch(()=>{})}fremdeAufrufeBeobachten(){const drawer=this,nachher=url=>{const m=WARENKORB_URL.exec(url||"");m&&(m[1]==="add"?drawer.globoAngleichen().then(()=>drawer.aktualisieren(!0)):drawer.geladen&&drawer.laden())},istEigen=init=>{if(!init)return!1;const h=init.headers;return h&&(h[EIGEN]||typeof h.get=="function"&&h.get(EIGEN))?!0:init.body instanceof FormData&&init.body.has("sections")},fetchAlt=window.fetch;window.fetch=function(eingabe,init){const p=fetchAlt.apply(this,arguments);try{const url=typeof eingabe=="string"?eingabe:eingabe&&eingabe.url;WARENKORB_URL.test(url||"")&&!istEigen(init)&&p.then(r=>{r.ok&&nachher(url)}).catch(()=>{})}catch{}return p};const openAlt=XMLHttpRequest.prototype.open;XMLHttpRequest.prototype.open=function(methode,url){return this._mhsysWkUrl=String(url||""),openAlt.apply(this,arguments)};const sendAlt=XMLHttpRequest.prototype.send;XMLHttpRequest.prototype.send=function(){return WARENKORB_URL.test(this._mhsysWkUrl||"")&&this.addEventListener("load",()=>{this.status>=200&&this.status<300&&nachher(this._mhsysWkUrl)}),sendAlt.apply(this,arguments)}}}customElements.define("mhsys-warenkorb",MhsysWarenkorb),window.mhsysWarenkorb={aktualisieren(oeffnen){const w=document.querySelector("mhsys-warenkorb");return w&&w.aktualisieren?w.aktualisieren(oeffnen):Promise.resolve()},oeffnen(){const w=document.querySelector("mhsys-warenkorb");w&&w.open&&w.open()}}} 2//# sourceMappingURL=/cdn/shop/t/21/assets/mhsys-warenkorb.js.map?v=179455880080517413091790513978
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.