PageSourceSearch

https://italienisch-einkaufen.de/templates/SALEPIX/storefront/dist/js/product-hover.plugin.ts.8ea27d.js

js italienisch-einkaufen.de collected 2026-10-08 10:47:01 UTC 3,318 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunksalepix_storefront=self.webpackChunksalepix_storefront||[]).push([["product-hover.plugin.ts"],{8204(e,t,o){o.r(t),o.d(t,{default:()=>l});var s=o(4825),r=o(9028);class l extends s.A{static{this.options={classes:{isHovered:"is-hovered",shadow:"slpx-product-hover-shadow"},style:{boxShadow:"0 10px 30px rgba(0, 0, 0, 0.2)"}}}init(){this.shadow=this.createShadowElement(),this.registerEvent()}registerEvent(){let{el:e,shadow:t,options:o}=this;e.addEventListener("mouseenter",()=>{e.classList.add(o.classes.isHovered)}),e.addEventListener("mouseleave",()=>{e.classList.remove(o.classes.isHovered)});let s=(0,r.el)(e,"swiper");if(!s)return;let l=()=>(0,r.eC)(t,{opacity:"0"});e.addEventListener("mouseenter",()=>{let{width:s,height:l,left:n,top:a}=(0,r.NO)(e);console.log("ProductHoverPlugin: Element position",{width:s,height:l,left:n,top:a}),(0,r.eC)(t,{width:`${s}px`,height:`${l}px`,left:`${n+window.scrollX}px`,top:`${a+window.scrollY}px`,"box-shadow":o.style.boxShadow,opacity:"1"})}),e.addEventListener("mouseleave",()=>{l()});let n=s.swiper;["touchStart","touchMove","slideChangeTransitionEnd"].forEach(e=>{n.on(e,l)})}createShadowElement(){let{options:e}=this;if((0,r.V6)(`.${e.classes.shadow}`))return(0,r.V6)(`.${e.classes.shadow}`);let t=(0,r.n)("div",e.classes.shadow);return(0,r.eC)(t,{position:"absolute","pointer-events":"none","z-index":"9999",transition:"opacity 0.2s ease",opacity:"0"}),document.body.appendChild(t),t}}},9028(e,t,o){o.d(t,{CB:()=>f,IC:()=>a,NO:()=>v,Pt:()=>y,UM:()=>l,V6:()=>r,Wp:()=>d,YB:()=>c,eC:()=>m,el:()=>i,n:()=>p,pQ:()=>u,q2:()=>w,qz:()=>g,wt:()=>h,xP:()=>n});var s=o(455);let r=(e,t=document)=>t.querySelector(e),l=(e,t)=>e.querySelector(t),n=(e,t)=>e.querySelectorAll(t),a=(e,t=document)=>Array.from(t.querySelectorAll(e)),i=(e,t)=>t?e.closest(`.${t}`):null,d=(e,t)=>{for(let[o,s]of Object.entries(t))e.setAttribute(o,s)},c=(e,t)=>{let o=s.A.getAttribute(e,t,!1);try{if(o)return JSON.parse(o)}catch(e){g(`The data attribute "${t}" could not be parsed to json`)}return!1},u=(e,t)=>{e.classList.add(...t.split(" "))},m=(e,t)=>{for(let[o,s]of Object.entries(t))"string"==typeof s&&e.style.setProperty(o,s)},p=(e="div",t,o,s)=>{let r=document.createElement(e);return t&&r.classList.add(...t.split(" ")),o&&d(r,o),s&&(r.innerHTML=s),r},h=(e,t)=>{for(let[o,s]of Object.entries(t))e[o]=s},g=e=>{throw Error(e)},v=e=>{let{width:t,height:o,top:s,right:r,bottom:l,left:n}=e.getBoundingClientRect();return{width:t,height:o,top:s,right:r,bottom:l,left:n}},w=(e,t,o,s)=>{e&&e instanceof HTMLElement&&e.addEventListener(t,o,s)},f=async(e,t,o=!1)=>{let s=n(e,`.${t}`);if(o&&console.log("registerImages:",{context:e}),o&&console.log("Found images:",s.length),!s.length)return o&&console.log("No images found"),Promise.resolve();try{await Promise.allSettled(Array.from(s).map(e=>new Promise(t=>{e.complete?(o&&console.log("Image already loaded:",{image:e}),t()):(e.onload=()=>{o&&console.log("Image loaded:",{image:e}),t()},e.onerror=()=>{o&&console.log("Image failed to load:",{image:e}),t()},setTimeout(()=>{o&&console.log("Image load timeout:",{image:e}),t()},1e3))}))),o&&console.log("All images loaded")}catch(e){o&&console.error("Error loading images:",e)}return Promise.resolve()},y=(e,t=document,o={})=>{t.dispatchEvent(new CustomEvent(e,{detail:o}))}}}]);

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.