PageSourceSearch

https://rudigernreich.com/cdn/shop/t/84/assets/main.js?v=138643401222961910171700816091

js rudigernreich.com collected 2026-10-04 11:37:57 UTC 7,162 bytes, 2 lines download raw bytes

1window.addEventListener("beforeunload",ev=>{if(document.documentElement.classList.contains("leaving-site"))return document.documentElement.classList.remove("leaving-site"),!0;document.documentElement.classList.add("unloading"),setTimeout(function(){document.documentElement.classList.remove("unloading")},500)}),document.addEventListener("click",ev=>{ev.target.nodeName=="A"&&ev.target.href&&!ev.target.href.includes("http")&&document.documentElement.classList.add("leaving-site")});function debounce(fn,wait){let t;return(...args)=>{clearTimeout(t),t=setTimeout(()=>fn.apply(this,args),wait)}}function serializeForm(form){const obj={},formData=new FormData(form),properties={};for(let key of formData.keys()){const value=formData.get(key);(match=key.match(/properties\[(.*)\]/))?(properties[match.pop()]=value,obj.properties=properties):obj[key]=value}return JSON.stringify(obj)}function fetchConfig(type="json"){return{method:"POST",headers:{"Content-Type":"application/json",Accept:`application/${type}`}}}document.addEventListener("DOMContentLoaded",function(){var heroSectionAlt=document.querySelector("section.hero.hero-alt"),heroSectionSingle=document.querySelector("section.hero.hero-single"),body=document.body;heroSectionSingle?body.classList.add("template-index-1"):heroSectionAlt?body.classList.add("template-index-2"):body.classList.add("template-noindex")});function setWindowHeight(){document.body.style.setProperty("--vh",window.innerHeight+"px")}window.addEventListener("resize",()=>{this.resizeTimeout&&clearTimeout(this.timer),this.resizeTimeout=setTimeout(setWindowHeight,window.durations.short)}),setWindowHeight(),document.addEventListener("click",ev=>{if(ev.target.nodeName=="DIALOG"){const dialogCloser=ev.target.querySelector("dialog-closer");if(!dialogCloser)return;dialogCloser.click()}});class DialogOpener extends HTMLElement{constructor(){super(),this.dialog=document.querySelector(this.dataset.modal),this.addEventListener("click",this.onClick),this.breakpoint=window.breakpoints[this.dataset.breakpoint]}onClick(ev){if(ev.preventDefault(),this.dataset.modal==".false"||this.breakpoint&&!this.breakpoint.matches)return;document.body.classList.add("fixed"),this.dialog.showModal();let scrolEl=this.dialog.getElementsByClassName("dialog__content")[0];scrolEl.scrollTop=0}}customElements.define("dialog-opener",DialogOpener);class DialogCloser extends HTMLElement{constructor(){super(),this.dialog=this.closest("dialog"),this.addEventListener("click",this.onClick.bind(this))}onClick(e){this.dialog.classList.add("closing"),document.body.classList.remove("fixed"),requestAnimationFrame(()=>{setTimeout(()=>{this.dialog.classList.remove("closing"),this.dialog.close()},window.durations.medium)})}}customElements.define("dialog-closer",DialogCloser);class TypewriterText extends HTMLElement{constructor(){super(),this.splitLetters(),this.typeLetters()}splitLetters(){this.letters=this.innerText.trim().split(""),this.innerText=""}typeLetters(){this.letters.forEach((letter,index)=>{let letterElement=document.createElement("span");letter=letter.replace(" ","&nbsp;"),letterElement.innerHTML=letter,letterElement.style.setProperty("--letter-index",index),this.appendChild(letterElement)}),setInterval(()=>{this.classList.toggle("reverse")},window.durations.short*this.letters.length)}}customElements.define("typewriter-text",TypewriterText);class Colorbar extends HTMLElement{constructor(){super(),this.rgColorContainer=this.closest("[data-active-rg-color]"),this.originalActiveElement=this.querySelector(".active"),this.productTile=this.closest("product-tile"),this.productTileColors=Array.from(this.productTile?.querySelectorAll("a.color")||[]),this.addEventListener("click",this.onClick),this.addEventListener("mouseover",this.onMouseOver),this.productTileColors.length>0&&(this.addEventListener("touchstart",this.onTouchStart),this.addEventListener("touchmove",this.onTouchMove))}onTouchStart(ev){ev.preventDefault(),this.setColorFromTouchedLink(ev)}onTouchMove(ev){ev.preventDefault(),this.setColorFromTouchedLink(ev)}setColorFromTouchedLink(ev){let colorLink=this.productTileColors.find(link=>link.getBoundingClientRect().x<=ev.pageX&&link.getBoundingClientRect().x+link.getBoundingClientRect().width>=ev.pageX);colorLink&&this.setColor(colorLink)}onClick(ev){ev.target.nodeName=="A"&&window.isTouch&&ev.preventDefault(),this.setColor(ev.target)}onMouseOver(ev){ev.target.nodeName=="A"&&window.isTouch||ev.target.nodeName=="LABEL"||this.setColor(ev.target)}onMouseOut(ev){ev.target.nodeName=="A"&&window.isTouch||ev.target.nodeName=="LABEL"||this.resetColor()}setColor(el){el&&el.dataset.rgColor&&this.rgColorContainer&&(this.dispatchEvent(new CustomEvent("colorbar:change",{bubbles:!0,detail:{el}})),this.rgColorContainer.dataset.activeRgColor=el.dataset.rgColor,this.querySelector(".active").classList.remove("active"),el.classList.add("active"))}resetColor(){this.setColor(this.originalActiveElement)}}customElements.define("color-bar",Colorbar);class ProductTile extends HTMLElement{constructor(){super(),this.links=this.querySelectorAll("header a, a.stacked-images"),this.addEventListener("colorbar:change",ev=>{ev.detail.el.href&&this.links.forEach(link=>{link.setAttribute("href",ev.detail.el.href)})})}siblings(){return Array.from(this.parentNode.querySelectorAll(this.nodeName)).filter(el=>el!=this)}onMouseEnter(ev){clearTimeout(this.parentNode.timer),this.darkenSiblings()}onMouseLeave(ev){this.parentNode.timer=setTimeout(()=>{this.undarkenSiblings()},window.durations.medium)}darkenSiblings(){this.classList.remove("darken"),this.siblings().forEac
1h(el=>{el.classList.add("darkened"),el.classList.add("darken")})}undarkenSiblings(){this.siblings().forEach(el=>{el.classList.remove("darken")})}}customElements.define("product-tile",ProductTile);class GridSwitcher extends HTMLElement{constructor(){super(),this.gridId=this.dataset.gridId,this.section=this.closest("section"),this.section.classList.add("with-grid-switcher"),this.addEventListener("click",this.onClick)}onClick(ev){ev.preventDefault(),this.switchGrid(ev.target.getAttribute("href"))}grid(){return document.getElementById(this.gridId)}switchGrid(id){this.unloadProducts(),setTimeout(()=>{let newLocation=window.location;newLocation.hash=id,window.history.pushState("",{},newLocation),this.loadProducts()},window.durations.long)}unloadProducts(){this.grid().classList.add("unloading")}loadProducts(){this.grid().classList.remove("unloading"),this.grid().classList.add("loading")}}customElements.define("grid-switcher",GridSwitcher);class QuantityInput extends HTMLElement{constructor(){super(),this.input=this.querySelector("input"),this.changeEvent=ne
1w Event("change",{bubbles:!0}),this.querySelectorAll("button").forEach(button=>button.addEventListener("click",this.onButtonClick.bind(this)))}onButtonClick(ev){ev.preventDefault();const previousValue=this.input.value;ev.target.name==="plus"?this.input.stepUp():this.input.stepDown(),previousValue!==this.input.value&&this.input.dispatchEvent(this.changeEvent)}}customElements.define("quantity-input",QuantityInput);
2//# sourceMappingURL=/cdn/shop/t/84/assets/main.js.map?v=138643401222961910171700816091

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.