PageSourceSearch

https://www.naehdschungel.de/theme/bbeaea5481829a90b64059a94a318f7…/lws-commerce-theme.js?1791368974

js naehdschungel.de collected 2026-10-10 01:04:52 UTC 36,753 bytes, 1 lines download raw bytes

1(()=>{"use strict";var t={156(t){var e=function(t){var e;return!!t&&"object"==typeof t&&"[object RegExp]"!==(e=Object.prototype.toString.call(t))&&"[object Date]"!==e&&t.$$typeof!==s},s="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function i(t,e){return!1!==e.clone&&e.isMergeableObject(t)?n(Array.isArray(t)?[]:{},t,e):t}function o(t,e,s){return t.concat(e).map(function(t){return i(t,s)})}function r(t){return Object.keys(t).concat(Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(t).filter(function(e){return Object.propertyIsEnumerable.call(t,e)}):[])}function l(t,e){try{return e in t}catch(t){return!1}}function n(t,s,a){(a=a||{}).arrayMerge=a.arrayMerge||o,a.isMergeableObject=a.isMergeableObject||e,a.cloneUnlessOtherwiseSpecified=i;var c,h,d=Array.isArray(s);return d!==Array.isArray(t)?i(s,a):d?a.arrayMerge(t,s,a):(h={},(c=a).isMergeableObject(t)&&r(t).forEach(function(e){h[e]=i(t[e],c)}),r(s).forEach(function(e){(!l(t,e)||Object.hasOwnProperty.call(t,e)&&Object.propertyIsEnumerable.call(t,e))&&(l(t,e)&&c.isMergeableObject(s[e])?h[e]=(function(t,e){if(!e.customMerge)return n;var s=e.customMerge(t);return"function"==typeof s?s:n})(e,c)(t[e],s[e],c):h[e]=i(s[e],c))}),h)}n.all=function(t,e){if(!Array.isArray(t))throw Error("first argument should be an array");return t.reduce(function(t,s){return n(t,s,e)},{})},t.exports=n}},e={};function s(i){var o=e[i];if(void 0!==o)return o.exports;var r=e[i]={exports:{}};return t[i](r,r.exports,s),r.exports}s.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return s.d(e,{a:e}),e},s.d=(t,e)=>{for(var i in e)s.o(e,i)&&!s.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},s.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var i=s(156),o=s.n(i);class r{static ucFirst(t){return t.charAt(0).toUpperCase()+t.slice(1)}static lcFirst(t){return t.charAt(0).toLowerCase()+t.slice(1)}static toDashCase(t){return t.replace(/([A-Z])/g,"-$1").replace(/^-/,"").toLowerCase()}static toLowerCamelCase(t,e){let s=r.toUpperCamelCase(t,e);return r.lcFirst(s)}static toUpperCamelCase(t,e){return e?t.split(e).map(t=>r.ucFirst(t.toLowerCase())).join(""):r.ucFirst(t.toLowerCase())}static parsePrimitive(t){try{return/^\d+(.|,)\d+$/.test(t)&&(t=t.replace(",",".")),JSON.parse(t)}catch(e){return t.toString()}}}class l{constructor(t=document){this._el=t,t.$emitter=this,this._listeners=[]}publish(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=new CustomEvent(t,{detail:e,cancelable:s});return this.el.dispatchEvent(i),i}subscribe(t,e){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=this,o=t.split("."),r=s.scope?e.bind(s.scope):e;if(s.once&&!0===s.once){let e=r;r=function(s){i.unsubscribe(t),e(s)}}return this.el.addEventListener(o[0],r),this.listeners.push({splitEventName:o,opts:s,cb:r}),!0}unsubscribe(t){let e=t.split(".");return this.listeners=this.listeners.reduce((t,s)=>([...s.splitEventName].sort().toString()===e.sort().toString()?this.el.removeEventListener(s.splitEventName[0],s.cb):t.push(s),t),[]),!0}reset(){return this.listeners.forEach(t=>{this.el.removeEventListener(t.splitEventName[0],t.cb)}),this.listeners=[],!0}get el(){return this._el}set el(t){this._el=t}get listeners(){return this._listeners}set listeners(t){this._listeners=t}}class n{constructor(t,e={},s=!1){if(!(t instanceof Node)){console.warn(`There is no valid element given while trying to create a plugin instance for "${s}".`);return}this.el=t,this.$emitter=new l(this.el),this._pluginName=this._getPluginName(s),this.options=this._mergeOptions(e),this._initialized=!1,this._registerInstance(),this._init()}init(){console.warn(`The "init" method for the plugin "${this._pluginName}" is not defined. The plugin will not be initialized.`)}update(){}_init(){this._initialized||(this.init(),this._initialized=!0)}_update(){this._initialized&&this.update()}_mergeOptions(t){let e=[this.constructor.options,this.options,t];return e.push(this._getConfigFromDataAttribute()),e.push(this._getOptionsFromDataAttribute()),o().all(e.filter(t=>t instanceof Object&&!(t instanceof Array)).map(t=>t||{}))}_getConfigFromDataAttribute(){let t={};if("function"!=typeof this.el.getAttribute)return t;let e=r.toDashCase(this._pluginName),s=this.el.getAttribute(`data-${e}-config`);return s?window.PluginConfigManager.get(this._pluginName,s):t}_getOptionsFromDataAttribute(){let t={};if("function"!=typeof this.el.getAttribute)return t;let e=r.toDashCase(this._pluginName),s=this.el.getAttribute(`data-${e}-options`);if(s)try{return JSON.parse(s)}catch(t){console.error(`The data attribute "data-${e}-options" could not be parsed to json: ${t.message}`)}return t}_registerInstance(){window.PluginManager.getPluginInstancesFromElement(this.el).set(this._pluginName,this),window.PluginManager.getPlugin(this._pluginName,!1).get("instances").push(this)}_getPluginName(t){return t||(t=this.constructor.name),t}}class a{static debounce(t,e){let s,i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(){for(var o=arguments.length,r=Array(o),l=0;l<o;l++)r[l]=arguments[l];i&&!s&&setTimeout(t.bind(t,...r),0),clearTimeout(s),s=setTimeout(t.bind(t,...r),e)}}}
1class c extends n{static #t=this.options={showLoginForm:!1};init(){this.initFields()&&(this.options.showLoginForm&&this.showLoginForm(),this.contentMain.classList.add("optimized-login-enabled"),this.showEmailExistsAlert(!1),this.registerEvents())}initFields(){let t={emailInput:"#loginMail",loginBtn:".login-submit",registerForm:".register-card",passwordField:".form-group:has(#loginPassword)",registerEmailField:"#personalMail",registerEmailConfirmationField:"#personalMailConfirmation",loginForm:"#loginCollapse",passwordRecover:".login-password-recover",loginFormDescription:".login-form-description",loginFormInfo:".login-form-info",registerLoginCollapseToggle:".register-login-collapse-toogle",showLoginFormBtn:"#showLoginFormBtn",contentMain:".content-main",emailExistsAlert:".email-exists-alert"};return(this.selectors=t,this.emailInput=this.el.querySelector(t.emailInput),this.emailInput)?(this.loginBtn=this.el.querySelector(t.loginBtn),this.loginBtn)?(this.registerForm=document.querySelector(t.registerForm),this.registerForm)?(this.passwordField=document.querySelector(t.passwordField),this.passwordField)?(this.registerEmailField=document.querySelector(t.registerEmailField),this.registerEmailField)?(this.registerEmailConfirmationField=document.querySelector(t.registerEmailConfirmationField),this.loginForm=document.querySelector(t.loginForm),this.loginForm)?(this.passwordRecover=document.querySelector(t.passwordRecover),this.passwordRecover)?(this.loginFormDescription=document.querySelector(t.loginFormDescription),this.loginFormInfo=document.querySelector(t.loginFormInfo),this.contentMain=document.querySelector(t.contentMain),this.loginFormBtn=document.querySelector(t.showLoginFormBtn),this.emailExistsAlert=document.querySelector(t.emailExistsAlert),!0):(console.error(`CustomerExistsCheckLoginPlugin: Password recover not found (selector: ${t.passwordRecover})`),!1):(console.error(`CustomerExistsCheckLoginPlugin: Login form not found (selector: ${t.loginForm})`),!1):(console.warn(`CustomerExistsCheckLoginPlugin: Register email field not found (selector: ${t.registerEmailField})`),!1):(console.error(`CustomerExistsCheckLoginPlugin: Password field not found (selector: ${t.passwordField})`),!1):(console.error(`CustomerExistsCheckLoginPlugin: Register form not found (selector: ${t.registerForm})`),!1):(console.error(`CustomerExistsCheckLoginPlugin: Login button not found (selector: ${t.loginBtn})`),!1):(console.error(`CustomerExistsCheckLoginPlugin: Email input not found (selector: ${t.emailInput})`),!1)}registerEvents(){this.registerEmailField.addEventListener("change",a.debounce(this.onRegisterEmailChange.bind(this),250)),this.emailInput.addEventListener("change",a.debounce(this.onEmailChange.bind(this),250)),this.loginFormBtn.addEventListener("click",this.showLoginForm.bind(this)),this.registerEmailField.addEventListener("keydown",this.onEmailKeyDown.bind(this))}showRegisterForm(){this.loginForm.classList.remove("show"),this.contentMain?.classList.remove("show-login-form")}showLoginForm(){this.loginForm.classList.add("show"),this.contentMain?.classList.add("show-login-form")}showEmailExistsAlert(){let t=!(arguments.length>0)||void 0===arguments[0]||arguments[0];this.emailExistsAlert&&(this.emailExistsAlert.style.display=t?"block":"none")}async onRegisterEmailChange(t){await this.onEmailChange(t,!0)}async onEmailChange(t){let e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],s=t.target.value.trim();if(this.syncEmailToFields(s),!s||!s.includes("@"))return;let i=await this.customerExists(s);this.showEmailExistsAlert(!1),i?(this.focusPasswordField(),this.showLoginForm(),e&&this.showEmailExistsAlert(!0)):this.showRegisterForm()}syncEmailToFields(t){this.registerEmailField&&(this.registerEmailField.value=t),this.registerEmailConfirmationField&&(this.registerEmailConfirmationField.value=t),this.emailInput&&(this.emailInput.value=t)}async customerExists(t){try{let e=window.router["frontend.lws.customer.exists"],s=fetch(e,{headers:{"X-Requested-With":"XMLHttpRequest"},body:JSON.stringify({email:t}),method:"POST"});return(await (await s).json()).exists}catch(t){console.error(t)}finally{this.removeLoadingIndicator()}}removeLoadingIndicator(){this.loader&&this.loader.remove()}onEmailKeyDown(t){"Enter"===t.key&&(t.preventDefault(),t.stopPropagation(),this.onRegisterEmailChange(t))}focusPasswordField(){let t=()=>{let t=document.querySelector("#loginPassword")||this.passwordField&&this.passwordField.querySelector('input[type="password"], #loginPassword');
1if(t)try{t.focus(),t.scrollIntoView&&t.scrollIntoView({behavior:"smooth",block:"center"})}catch(t){}};window.requestAnimationFrame?window.requestAnimationFrame(()=>setTimeout(t,0)):setTimeout(t,0)}}class h{constructor(){this.previousViewport=null,this.currentViewport=h.getCurrentViewport(),this._registerEvents()}_registerEvents(){window.addEventListener("DOMContentLoaded",this._onDOMContentLoaded.bind(this)),window.addEventListener("resize",a.debounce(this._onResize.bind(this),200),{capture:!0,passive:!0})}_onDOMContentLoaded(){this._dispatchEvents()}_onResize(){this._viewportHasChanged(h.getCurrentViewport())&&(this._dispatchEvents(),this._dispatchViewportEvent("Viewport/hasChanged"))}_dispatchEvents(){h.isXS()?this._dispatchViewportEvent("Viewport/isXS"):h.isSM()?this._dispatchViewportEvent("Viewport/isSM"):h.isMD()?this._dispatchViewportEvent("Viewport/isMD"):h.isLG()?this._dispatchViewportEvent("Viewport/isLG"):h.isXL()?this._dispatchViewportEvent("Viewport/isXL"):h.isXXL()&&this._dispatchViewportEvent("Viewport/isXXL")}_viewportHasChanged(t){let e=t!==this.currentViewport;return e&&(this.previousViewport=this.currentViewport,this.currentViewport=t),e}_dispatchViewportEvent(t){document.$emitter.publish(t,{previousViewport:this.previousViewport})}static isXS(){return"XS"===h.getCurrentViewport()}static isSM(){return"SM"===h.getCurrentViewport()}static isMD(){return"MD"===h.getCurrentViewport()}static isLG(){return"LG"===h.getCurrentViewport()}static isXL(){return"XL"===h.getCurrentViewport()}static isXXL(){return"XXL"===h.getCurrentViewport()}static getCurrentViewport(){return window.getComputedStyle(document.documentElement).getPropertyValue("--sw-current-breakpoint").replace(/['"]+/g,"").toUpperCase()}}let{PluginBaseClass:d}=window;class u extends d{static #t=this.options={triggerSelector:"[data-mega-category]",panelSelector:"[data-mega-panel]",closeSelector:"[data-mega-close]",activeClass:"is-active"};init(){this._triggers=this.el.querySelectorAll(this.options.triggerSelector),this._panels=this.el.querySelectorAll(this.options.panelSelector),this._closeButton=this.el.querySelector(this.options.closeSelector),this._triggers.length&&this._panels.length&&(this._preventDropdownClose(),this._registerEvents(),this._setInitialActiveState())}_preventDropdownClose(){this.el.addEventListener("click",t=>{t.stopPropagation()})}_registerEvents(){this._triggers.forEach(t=>{t.addEventListener("click",this._onTriggerClick.bind(this,t))}),this._closeButton&&this._closeButton.addEventListener("click",this._onClose.bind(this))}_onTriggerClick(t,e){e.preventDefault(),e.stopPropagation();let s=t.dataset.megaCategory;this._removeActiveStates(),t.classList.add(this.options.activeClass);let i=this.el.querySelector(`[data-mega-panel="${s}"]`);i&&i.classList.add(this.options.activeClass)}_onClose(t){t.preventDefault();let e=this.el.closest(".dropdown-menu");e&&e.classList.remove("show");
1let s=this.el.closest(".nav-item.dropdown");s&&s.classList.remove("show")}_removeActiveStates(){this._triggers.forEach(t=>{t.classList.remove(this.options.activeClass)}),this._panels.forEach(t=>{t.classList.remove(this.options.activeClass)})}_setInitialActiveState(){if(!this.el.querySelector(`${this.options.triggerSelector}.${this.options.activeClass}`)&&this._triggers[0]){this._triggers[0].classList.add(this.options.activeClass);let t=this.el.querySelector(`[data-mega-panel="${this._triggers[0].dataset.megaCategory}"]`);t&&t.classList.add(this.options.activeClass)}}}class m extends n{static #t=this.options={breakpoint:992,tabLinkSelector:".product-detail-tab-navigation-link",tabContentSelector:".tab-content",accordionButtonClass:"lws-mobile-tab-accordion-button",activeClass:"is-active"};init(){window.setTimeout(()=>{this._disableOffcanvasTabs(),this._createMobileAccordion()},300)}_disableOffcanvasTabs(){this.el.querySelectorAll("[data-off-canvas-tabs]").forEach(t=>{t.removeAttribute("data-off-canvas-tabs")})}_createMobileAccordion(){let t=this.el.querySelector(this.options.tabContentSelector),e=this.el.querySelectorAll(this.options.tabLinkSelector);t&&e.length&&e.forEach(e=>{let s=e.getAttribute("href");if(!s||!s.startsWith("#"))return;let i=this.el.querySelector(s);if(!i||i.dataset.lwsAccordionInitialized)return;let o=document.createElement("button");o.type="button",o.className=this.options.accordionButtonClass,o.innerHTML=e.innerHTML,o.addEventListener("click",()=>{let e=i.classList.contains("show");t.querySelectorAll(".tab-pane").forEach(t=>{t.classList.remove("show","active")}),t.querySelectorAll(`.${this.options.accordionButtonClass}`).forEach(t=>{t.classList.remove(this.options.activeClass)}),e||(i.classList.add("show","active"),o.classList.add(this.options.activeClass))}),i.parentNode.insertBefore(o,i),i.dataset.lwsAccordionInitialized="true"})}}let g=window.PluginManager;g.register("LwsStickyHeader",class extends n{init(){document.body.classList.contains("is-sticky-header-enabled")&&(this.header=document.querySelector("header"),this.header&&(this.stickyElements=document.querySelectorAll("header, .top-links-main, .nav-main"),this.stickyStart=0,this.onScroll=this.onScroll.bind(this),this.onResize=this.onResize.bind(this),this.onLoad=this.onLoad.bind(this),window.addEventListener("scroll",this.onScroll,{passive:!0}),window.addEventListener("resize",this.onResize),window.addEventListener("load",this.onLoad),this.updateStickyStart(),this.onScroll()))}onScroll(){let t=document.scrollingElement.scrollTop>=this.stickyStart;this.setSticky(t),this.updateNavigationOffsets()}onResize(){this.setSticky(!1),this.updateStickyStart(),this.onScroll()}onLoad(){this.onResize()}updateStickyStart(){let t=this.header.querySelector(":scope > .container")||this.header,e=document.scrollingElement.scrollTop,s=this.header.getBoundingClientRect().top+e,i=t.getBoundingClientRect().top+e;this.stickyStart=Math.max(0,i),document.documentElement.style.setProperty("--sticky-header-top-content-height",`${Math.max(0,i-s)}px`)}setSticky(t){this.stickyElements.forEach(e=>{e.classList.toggle("is-sticky",t)}),document.body.classList.toggle("sticky-header-top-content-hidden",t)}updateNavigationOffsets(){let t=document.querySelector(".top-links-main"),e=this.header.offsetHeight,s=t?t.offsetHeight:0;document.documentElement.style.setProperty("--sticky-header-height",`${e}px`),document.documentElement.style.setProperty("--sticky-header-stack-height",`${e+s}px`)}destroy(){window.removeEventListener("scroll",this.onScroll),window.removeEventListener("resize",this.onResize),window.removeEventListener("load",this.onLoad),this.setSticky(!1),document.documentElement.style.removeProperty("--sticky-header-height"),document.documentElement.style.removeProperty("--sticky-header-stack-height"),document.documentElement.style.removeProperty("--sticky-header-top-content-height"),super.destroy()}},".is-sticky-header-enabled"),g.register("LwsAnimationsPlugin",class extends n{init(){this.el.classList.forEach(t=>{t.startsWith("lws-visible-")&&this.handleVisible(),t.startsWith("lws-hover-")&&this.handleHover()})}handleVisible(){window.addEventListener("scroll",()=>this.onScroll()),this.onScroll()||(this.el.style.opacity=0)}handleHover(){this.el.addEventListener("mouseover",()=>{this.removeClassPrefix()}),this.el.addEventListener("mouseleave",()=>{this.addClassPrefix()})}onScroll(){if(this.disabled)return!1;let t=this.el.offsetHeight/2,e=this.el.offsetTop+t;return e>=window.scrollY&&e<=window.scrollY+window.innerHeight&&(this.removeClassPrefix(),this.disabled=!0,!0)}removeClassPrefix(){this.el.classList.forEach(t=>
1{["lws-visible-","lws-hover-"].forEach(e=>{if(t.startsWith(e)){this.el.classList.remove(t);var s=t.replace(e,"");this.el.classList.add(s),this.el.classList.add("_lws-visible-"+s),this.el.style.opacity=1}})})}addClassPrefix(){this.el.classList.forEach(t=>{["_lws-visible-","_lws-hover-"].forEach(e=>{if(t.startsWith(e)){var s=t.replace(e,"");this.el.classList.remove(s),this.el.classList.remove(t),this.el.classList.add(e.replace("_lws","lws")+s)}})})}},".lws-animations"),g.register("CustomerExistsCheckLoginPlugin",c,".optimized-login-enabled"),g.register("TabElement",class extends n{init(){this.buttons=this.el.querySelectorAll("[data-tab-index]"),this.contents=this.el.querySelectorAll("[data-tab-content]"),this.buttons.forEach(t=>{t.addEventListener("click",e=>{this.activateTab(parseInt(t.dataset.tabIndex,10))})})}activateTab(t){this.buttons.forEach(t=>t.classList.remove("active")),this.contents.forEach(t=>t.classList.remove("active")),this.buttons[t].classList.add("active"),this.contents[t].classList.add("active")}},"[data-tab-element]"),g.register("LwsMainNavigationScrollPlugin",class extends n{init(){this.scrollContainer=this.el.querySelector("#main_nav"),this.list=this.el.querySelector(".main-navigation-menu-list"),this.leftArrow=this.el.querySelector(".nav-arrow-left"),this.rightArrow=this.el.querySelector(".nav-arrow-right"),this.scrollContainer&&this.list&&(this.registerEvents(),this.check())}registerEvents(){window.addEventListener("resize",this.check.bind(this)),this.leftArrow?.addEventListener("click",()=>{this.scrollContainer.scrollBy({left:-250,behavior:"smooth"})}),this.rightArrow?.addEventListener("click",()=>{this.scrollContainer.scrollBy({left:250,behavior:"smooth"})}),this.scrollContainer.addEventListener("scroll",this.updateArrowState.bind(this))}check(){if(!this.isInAllowedViewports()){this.el.classList.remove("is-scrollable-nav");return}let t=this.list.scrollWidth>this.scrollContainer.offsetWidth;this.el.classList.toggle("is-scrollable-nav",t),this.updateArrowState()}updateArrowState(){let t=this.scrollContainer.scrollLeft,e=this.scrollContainer.scrollWidth-this.scrollContainer.clientWidth;this.leftArrow?.classList.toggle("is-disabled",t<=0),this.rightArrow?.classList.toggle("is-disabled",t>=e-1)}isInAllowedViewports(){return h.isLG()||h.isXL()||h.isXXL()}},".nav-main"),g.register("LwsTopLinksScroll",class extends n{init(){this.scrollContainer=this.el.querySelector(".top-links-scroll"),this.list=this.el.querySelector(".top-links-nav"),this.leftArrow=this.el.querySelector(".top-links-arrow-left"),this.rightArrow=this.el.querySelector(".top-links-arrow-right"),this.scrollContainer&&this.list&&(this.registerEvents(),this.check())}registerEvents(){window.addEventListener("resize",this.check.bind(this)),this.leftArrow?.addEventListener("click",()=>{this.scrollContainer.scrollBy({left:-220,behavior:"smooth"})}),this.rightArrow?.addEventListener("click",()=>{this.scrollContainer.scrollBy({left:220,behavior:"smooth"})}),this.scrollContainer.addEventListener("scroll",this.updateArrowState.bind(this))}check(){let t=this.list.scrollWidth>this.scrollContainer.clientWidth;this.el.classList.toggle("is-scrollable-top-links",t),this.updateArrowState()}updateArrowState(){let t=this.scrollContainer.scrollLeft,e=this.scrollContainer.scrollWidth-this.scrollContainer.clientWidth;this.leftArrow?.classList.toggle("is-disabled",t<=0),this.rightArrow?.classList.toggle("is-disabled",t>=e-1)}},".top-links-main"),g.register("LwsProductQuestionPlugin",class extends n{init(){this.el.matches("a[data-contact-url][data-product-name]")&&this._registerClickRedirect(),this._prefillContactTextareaFromUrl()}_registerClickRedirect(){this.el.addEventListener("click",t=>{let e=this.el.dataset.questionType||"form",s=this.el.dataset.productName||"",i=this.el.dataset.productNumber||"";if("whatsapp"===e){t.preventDefault(),this._openWhatsapp(s,i);return}this._openContactForm(t,s,i)})}_openContactForm(t,e,s){let i=this.el.dataset.contactUrl;if(!i||"#"===i)return;t.preventDefault();let o=new URL(i,window.location.origin);o.searchParams.set("product",e),o.searchParams.set("productNumber",s),window.location.href=o.toString()}_openWhatsapp(t,e){let s=(this.el.dataset.whatsappNumber||"").replace(/[^\d]/g,"");if(!s){console.error("WhatsApp Nummer ist nicht konfiguriert.");return}let i=(this.el.dataset.whatsappMessage||"").replace("%product%",t).replace("%productNumber%",e).replace("%productUrl%",window.location.href),o=`https://wa.me/${s}?text=${encodeURIComponent(i)}`;window.open(o,"_blank","noopener")}_prefillContactTextareaFromUrl(){let t=new URL(window.location.href),e=t.searchParams.get("product"),s=t.searchParams.get("productNumber");if(!e&&!s)return;let i=document.querySelector("#cms-form-contact-form-subject")||this.el.querySelector("#cms-form-contact-form-subject");
1if(!i)return;let o="";e&&(o+=`Produkt: ${e}`),s&&(o+=`${o?" | ":""}ArtNr: ${s}`),i.value.includes(o)||(i.value=o)}},"a[data-contact-url][data-product-name], form#cms-form-contact"),g.register("LwsPromotionBanner",class extends n{init(){this._countdownElement=this.el.querySelector(".promotion-topbar-banner__countdown"),this._targetDate=this.el.dataset.countdownTarget,this._registerEvents(),this._initCountdown()}_registerEvents(){this.el.addEventListener("click",this._onCopyCoupon.bind(this))}async _onCopyCoupon(t){let e=t.target.closest("[data-copy-coupon]");if(!e)return;let s=e.dataset.couponCode;if(s)try{await navigator.clipboard.writeText(s),this._showCopiedState(e)}catch(t){console.error(t)}}_showCopiedState(t){let e=this.el.querySelector(".promotion-topbar-banner__copied");t.classList.add("is-copied"),e&&e.classList.remove("d-none"),window.setTimeout(()=>{t.classList.remove("is-copied"),e&&e.classList.add("d-none")},2e3)}_initCountdown(){this._countdownElement&&this._targetDate&&(this._updateCountdown(),this._interval=window.setInterval(()=>{this._updateCountdown()},1e3))}_updateCountdown(){let t=new Date().getTime(),e=new Date(this._targetDate).getTime()-t;if(e<=0){clearInterval(this._interval),this.el.remove();return}let s=Math.floor(e/864e5),i=Math.floor(e/36e5%24),o=Math.floor(e/6e4%60),r=Math.floor(e/1e3%60),l="";s>0&&(l+=`${s}d `),(i>0||s>0)&&(l+=`${i}h `),(o>0||i>0||s>0)&&(l+=`${o}m `),l+=`${r}s`,this._countdownElement.textContent=l}destroy(){this._interval&&clearInterval(this._interval),super.destroy()}},".promotion-topbar-banner"),g.register("LwsNewsletterModal",class extends n{init(){if(this.storageKey="lws-commerce-theme-newsletter-modal-closed",sessionStorage.getItem(this.storageKey)){this._removeModal();return}this.backdrop=document.querySelector("[data-newsletter-modal-backdrop]"),this.closeButton=this.el.querySelector("[data-newsletter-modal-close]"),this.form=this.el.querySelector("[data-newsletter-modal-form]"),this.messageBox=this.el.querySelector("[data-newsletter-modal-message]"),this.submitButton=this.el.querySelector('[type="submit"]'),this.successMessage=this.messageBox?.dataset.successMessage||"",this.errorMessage=this.messageBox?.dataset.errorMessage||"",this.infoMessage=this.messageBox?.dataset.infoMessage||"",this._registerEvents(),this._open()}_registerEvents(){this.closeButton&&this.closeButton.addEventListener("click",this._close.bind(this)),this.backdrop&&this.backdrop.addEventListener("click",this._close.bind(this)),this.form&&this.form.addEventListener("submit",this._onSubmit.bind(this)),document.addEventListener("keydown",this._onKeydown.bind(this))}_onKeydown(t){"Escape"===t.key&&this._close()}_open(){this.el.classList.add("is-active"),this.backdrop&&this.backdrop.classList.add("is-active"),document.body.classList.add("newsletter-modal-open")}async _onSubmit(t){if(t.preventDefault(),!this.form||!this.messageBox)return;this._setMessage("",""),this._setLoading(!0);let e=new FormData(this.form);try{let t=await fetch(this.form.action,{method:"POST",body:e,headers:{"X-Requested-With":"XMLHttpRequest",Accept:"application/json"}}),s=await t.json(),i=s.find(t=>"success"===t.type),o=s.find(t=>"danger"===t.type||"error"===t.type);s.find(t=>"info"===t.type),i?(this._setMessage(this.successMessage,"success"),this.el.classList.add("newsletter-success"),this.form.reset()):o?this._setMessage(o.alert||this.errorMessage,"error"):this._setMessage(this.infoMessage,"info")}catch(t){this._setMessage(this.errorMessage,"error")}this._setLoading(!1)}_setMessage(t,e){this.messageBox&&(this.messageBox.className="newsletter-modal__message",e&&this.messageBox.classList.add(`is-${e}`),this.messageBox.innerHTML=t)}_setLoading(t){this.submitButton&&(this.submitButton.disabled=t,t?this.submitButton.classList.add("is-loading"):this.submitButton.classList.remove("is-loading"))}_close(){sessionStorage.setItem(this.storageKey,"1"),this.el.classList.remove("is-active"),this.backdrop&&this.backdrop.classList.remove("is-active"),document.body.classList.remove("newsletter-modal-open")}_removeModal(){let t=document.querySelector("[data-newsletter-modal-backdrop]");this.el.remove(),t&&t.remove()}},"[data-newsletter-modal]"),g.register("LwsNavigationDropdownMenu",u,"[data-lws-navigation-dropdown-menu]"),g.register("LwsProductDescription",m,".product-detail-tabs"),g.register("LwsStickyGalleryBuybox",class extends n{init(){this.desktopBreakpoint=992,this.defaultOffsetTop=20,this.leftElements=[],this.rightElements=[],this.stickyElements=[],this.leftStickyBuybox=null,this.stickySide=null,this.stickyHeight=0,this.resizeTimeout=null,this.scrollTicking=!1,this.onScroll=this.onScroll.bind(this),this.handleScroll=this.handleScroll.bind(this),this.onResize=this.onResize.bind(this),this.update=this.update.bind(this),window.addEventListener("load",this.update),window.addEventListener("resize",this.onResize),window.addEventListener("scroll",this.onScroll,{passive:!0}),this.update()}onResize(){window.clearTimeout(this.resizeTimeout),this.resizeTimeout=window.setTimeout(()=>{this.update()},150)}update(){if(this.reset(),window.innerWidth<this.desktopBreakpoint)return;let t=this.el.querySelector(".cms-block-lws-commerce-theme-grid-6__item--1"),e=this.el.querySelector(".cms-block-lws-commerce-theme-grid-6__item--5"),s=this.el.querySelector(".cms-block-lws-commerce-theme-grid-6__group"),i=this.el.querySelector(".cms-block-lws-commerce-theme-grid-6__item--6"),o=this.el.querySelector(".cms-block-lws-commerce-theme-grid-6__item--2"),r=o?o.closest(".cms-block-lws-commerce-theme-grid-6__group"):null;if(!t||!e||!s||!i)return;this.leftElements=[t,e],this.rightElements=[s,i];let l=this.getElementsHeight(this.leftElements),n=this.getElementsHeight(this.rightElements);if(l<n)this.stickyElements=this.leftElements,this.stickySide="left",this.stickyHeight=l,this.el.classList.add("is-left-sticky"),r&&(r.classList.add("is-left-sticky-buybox"),this.leftStickyBuybox=r,this.prepareStickyBuybox(),this.applyStickyBuyboxLeft());else{if(!(n<l))return;this.stickyElements=this.rightElements,this.stickySide="right",this.stickyHeight=n,this.el.classList.add("is-right-sticky")}this.prepareStickyElements(),this.handleScroll()}onScroll(){this.scrollTicking||(this.scrollTicking=!0,window.requestAnimationFrame(()=>{this.scrollTicking=!1,this.handleScroll()}))}handleScroll(){if(!this.stickyElements.length||window.innerWidth<this.desktopBreakpoint)return;let t=this.getOffsetTop(),e=window.scrollY||document.documentElement.scrollTop,s=this.getPageTop(this.el),i=this.el.offsetHeight,o=s-t,r=s+i-this.stickyHeight-t;if(e<=o){this.setStatic();return}if(e>=r){this.setAbsolute();return}this.setFixed(t)}
1prepareStickyElements(){this.stickyElements.forEach(t=>{let e=t.getBoundingClientRect();t.dataset.lwsStickyWidth=`${e.width}px`,t.dataset.lwsStickyRelativeLeft=`${t.offsetLeft}px`,t.dataset.lwsStickyPageLeft=`${e.left}px`})}prepareStickyBuybox(){let t=this.leftStickyBuybox.getBoundingClientRect();this.leftStickyBuybox.dataset.lwsStickyPageLeft=`${t.left}px`}setStatic(){this.stickyElements.forEach(t=>{t.style.position="",t.style.top="",t.style.left="",t.style.width="",t.style.zIndex=""})}setFixed(t){let e=t;this.stickyElements.forEach(t=>{t.style.position="fixed",t.style.top=`${e}px`,t.style.left=t.dataset.lwsStickyPageLeft||"",t.style.width=t.dataset.lwsStickyWidth||"",t.style.zIndex="9",e+=t.offsetHeight+this.getElementSpacing(t)}),this.applyStickyBuyboxLeft()}setAbsolute(){let t=this.el.offsetHeight-this.stickyHeight;this.stickyElements.forEach(e=>{e.style.position="absolute",e.style.top=`${t}px`,e.style.left=e.dataset.lwsStickyRelativeLeft||"",e.style.width=e.dataset.lwsStickyWidth||"",e.style.zIndex="9",t+=e.offsetHeight+this.getElementSpacing(e)})}applyStickyBuyboxLeft(){this.leftStickyBuybox&&(this.leftStickyBuybox.style.left=this.leftStickyBuybox.dataset.lwsStickyPageLeft||"")}getOffsetTop(){let t=this.defaultOffsetTop;if(document.body.classList.contains("is-sticky-header-enabled"),document.querySelector(".header-main"),document.querySelector(".nav-main"),document.body.classList.contains("is-sticky-header-enabled")){let e=document.querySelector("header.is-sticky, header"),s=document.querySelector(".top-links-main.is-sticky"),i=document.querySelector(".nav-main.is-sticky");e&&(t+=e.offsetHeight),s&&(t+=s.offsetHeight),i&&(t+=i.offsetHeight)}return t}getElementsHeight(t){return t.reduce((t,e)=>t+e.offsetHeight+this.getElementSpacing(e),0)}getElementSpacing(t){let e=window.getComputedStyle(t);return(parseFloat(e.marginTop)||0)+(parseFloat(e.marginBottom)||0)}getPageTop(t){return t.getBoundingClientRect().top+window.scrollY}reset(){this.el.classList.remove("is-left-sticky","is-right-sticky");let t=this.el.querySelector(".cms-block-lws-commerce-theme-grid-6__group");t&&(t.classList.remove("is-left-sticky-buybox"),t.style.left="",delete t.dataset.lwsStickyPageLeft),[...this.leftElements,...this.rightElements].forEac
1h(t=>{t.style.position="",t.style.top="",t.style.left="",t.style.width="",t.style.zIndex="",delete t.dataset.lwsStickyWidth,delete t.dataset.lwsStickyRelativeLeft,delete t.dataset.lwsStickyPageLeft}),this.leftElements=[],this.rightElements=[],this.stickyElements=[],this.leftStickyBuybox=null,this.stickySide=null,this.stickyHeight=0}destroy(){window.removeEventListener("load",this.update),window.removeEventListener("resize",this.onResize),window.removeEventListener("scroll",this.onScroll),window.clearTimeout(this.resizeTimeout),this.reset(),super.destroy()}},".cms-block-lws-commerce-theme-grid-6.is-sticky-enabled"),g.register("LwsStickyGalleryBuyboxGrid7",class extends n{init(){this.desktopBreakpoint=992,this.defaultOffsetTop=20,this.leftElements=[],this.rightElements=[],this.stickyElements=[],this.stickyHeight=0,this.resizeTimeout=null,this.scrollTicking=!1,this.currentState=null,this.onScroll=this.onScroll.bind(this),this.onResize=this.onResize.bind(this),this.update=this.update.bind(this),window.addEventListener("load",this.update),window.addEventListener("resize",this.onResize),window.addEventListener("scroll",this.onScroll,{passive:!0}),this.update()}onResize(){clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(()=>{this.update()},150)}onScroll(){this.scrollTicking||(this.scrollTicking=!0,requestAnimationFrame(()=>{this.scrollTicking=!1,this.handleScroll()}))}update(){if(this.reset(),window.innerWidth<this.desktopBreakpoint)return;let t=this.el.querySelector(".cms-block-lws-commerce-theme-grid-7"),e=this.el.querySelector(".cms-block-lws-commerce-theme-grid-7 .cms-element-buy-box");if(!t||!e)return;let s=this.el.querySelector(".cms-block-lws-commerce-theme-grid-7__item--1"),i=this.el.querySelector(".cms-block-lws-commerce-theme-grid-7__item--5"),o=this.el.querySelector(".cms-block-lws-commerce-theme-grid-7__item--2"),r=this.el.querySelector(".cms-block-lws-commerce-theme-grid-7__item--3"),l=this.el.querySelector(".cms-block-lws-commerce-theme-grid-7__item--4"),n=this.el.querySelector(".cms-block-lws-commerce-theme-grid-7__item--6");if(!s||!i||!o||!r||!l||!n)return;this.leftElements=[s,i],this.rightElements=[o,r,l,n];let a=this.getStackHeight(this.leftElements),c=this.getStackHeight(this.rightElements);if(a<c)this.stickyElements=this.leftElements,this.el.classList.add("is-left-sticky");else{if(!(c<a))return;this.stickyElements=this.rightElements,this.el.classList.add("is-right-sticky")}this.prepareStickyElements(),this.stickyHeight=this.getStackHeight(this.stickyElements),this.handleScroll()}prepareStickyElements(){let t=this.el.getBoundingClientRect();this.stickyElements.forEach(e=>{let s=e.getBoundingClientRect();e.dataset.lwsStickyWidth=`${s.width}px`,e.dataset.lwsStickyRelativeLeft=`${s.left-t.left}px`,e.dataset.lwsStickyOriginalTop=`${s.top-t.top}px`});let e=this.stickyElements[0];this.initialTop=parseFloat(e.dataset.lwsStickyOriginalTop)||0}handleScroll(){if(!this.stickyElements.length||window.innerWidth<this.desktopBreakpoint)return;let t=this.getOffsetTop(),e=window.scrollY||document.documentElement.scrollTop,s=this.getPageTop(this.el),i=this.el.offsetHeight,o=s+this.initialTop-t,r=s+i-this.stickyHeight-t;if(e<=o){this.setInitialAbsolute();return}if(e>=r){this.setBottomAbsolute();return}this.setFixed(t)}setInitialAbsolute(){this.currentState="initial-absolute";let t=this.initialTop;this.stickyElements.forEach(e=>{let s=parseFloat(e.dataset.lwsStickyRelativeLeft)||0;e.style.position="absolute",e.style.top=`${t}px`,e.style.left=`${s}px`,e.style.width=e.dataset.lwsStickyWidth,e.style.zIndex="9",t+=e.offsetHeight+this.getSpacingAfter(e)})}setFixed(t){this.currentState="fixed";let e=this.el.getBoundingClientRect(),s=t;this.stickyElements.forEach(t=>{let i=parseFloat(t.dataset.lwsStickyRelativeLeft)||0;t.style.position="fixed",t.style.top=`${s}px`,t.style.left=`${e.left+i}px`,t.style.width=t.dataset.lwsStickyWidth,t.style.zIndex="9",s+=t.offsetHeight+this.getSpacingAfter(t)})}setBottomAbsolute(){this.currentState="bottom-absolute";let t=this.el.offsetHeight-this.stickyHeight;this.stickyElements.forEach(e=>{let s=parseFloat(e.dataset.lwsStickyRelativeLeft)||0;e.style.position="absolute",e.style.top=`${t}px`,e.style.left=`${s}px`,e.style.width=e.dataset.lwsStickyWidth,e.style.zIndex="9",t+=e.offsetHeight+this.getSpacingAfter(e)})}getStackHeight(t){return t.reduce((e,s,i)=>
1{let o=i<t.length-1?this.getSpacingAfter(s):0;return e+s.offsetHeight+o},0)}getSpacingAfter(t){return parseFloat(window.getComputedStyle(t).marginBottom)||0}getOffsetTop(){let t=this.defaultOffsetTop;if(document.body.classList.contains("is-sticky-header-enabled")){let e=document.querySelector("header.is-sticky, header"),s=document.querySelector(".top-links-main.is-sticky"),i=document.querySelector(".nav-main.is-sticky");e&&(t+=e.offsetHeight),s&&(t+=s.offsetHeight),i&&(t+=i.offsetHeight)}return t}getPageTop(t){return t.getBoundingClientRect().top+window.scrollY}reset(){this.el.classList.remove("is-left-sticky","is-right-sticky"),[...new Set([...this.leftElements,...this.rightElements,...this.stickyElements])].forEach(t=>{t.style.position="",t.style.top="",t.style.left="",t.style.width="",t.style.zIndex="",delete t.dataset.lwsStickyWidth,delete t.dataset.lwsStickyRelativeLeft,delete t.dataset.lwsStickyOriginalTop}),this.leftElements=[],this.rightElements=[],this.stickyElements=[],this.stickyHeight=0,this.initialTop=0,this.currentState=null}destroy(){window.removeEventListener("load",this.update),window.removeEventListener("resize",this.onResize),window.removeEventListener("scroll",this.onScroll),clearTimeout(this.resizeTimeout),this.reset(),super.destroy()}},".cms-block-lws-commerce-theme-grid-7")})();

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.