'),window.customElements.define("img-comparison-slider",d))})()})();const DEFAULT_OPTIONS={rootMargin:'0px',threshold:0.1};class ImageLazyLoader{constructor(options={}){this.options={...DEFAULT_OPTIONS,...options};this.images=[];this.observer=null;this.loadedImages=new WeakSet();this.init()} static isIntersectionObserverSupported(){return'IntersectionObserver' in window&&'IntersectionObserverEntry' in window&&'intersectionRatio' in window.IntersectionObserverEntry.prototype} init(){if(ImageLazyLoader.isIntersectionObserverSupported()){this.observer=new IntersectionObserver(this.onIntersection.bind(this),{rootMargin:this.options.rootMargin,threshold:this.options.threshold})} this.loadImages()} loadImages(){this.images=Array.from(document.querySelectorAll('img[data-src]'));if(this.observer){this.images.forEach(img=>{if(!this.loadedImages.has(img)){this.observer.observe(img)}})}else{this.loadAllImages()}} onIntersection(entries){entries.forEach(entry=>{if(entry.isIntersecting){this.loadImage(entry.target);this.observer.unobserve(entry.target)}})} loadImage(img){if(!this.loadedImages.has(img)){const src=img.getAttribute('data-src');if(src){img.src=src;img.removeAttribute('data-src');this.loadedImages.add(img)}}} loadAllImages(){this.images.forEach(img=>this.loadImage(img))}} document.addEventListener('DOMContentLoaded',()=>{new ImageLazyLoader()});(()=>{'use strict';const tooltip=document.createElement('div');tooltip.classList.add('statusbar-tooltip');document.body.appendChild(tooltip);const getFullUrl=(path)=>{try{return new URL(path,window.location.href).href}catch{return window.location.origin+path}};const handleClick=(event,url)=>{if(event.ctrlKey||event.metaKey){window.open(url,'_blank')}else{window.location.href=url} event.preventDefault()};const handleMouseUp=(event,url)=>{if(event.button===1){window.open(url,'_blank');event.preventDefault()}};const showTooltip=(event,url)=>{const fullUrl=getFullUrl(url);tooltip.style.display='block';tooltip.textContent=fullUrl};const hideTooltip=()=>{tooltip.style.display='none'};const addListeners=(element)=>{const url=element.dataset.clicktogo;if(!url)return;const fullUrl=getFullUrl(url);element.addEventListener('click',(e)=>handleClick(e,fullUrl));element.addEventListener('mouseup',(e)=>handleMouseUp(e,fullUrl));element.addEventListener('mouseover',(e)=>showTooltip(e,url));element.addEventListener('mouseout',hideTooltip);element.addEventListener('focus',(e)=>showTooltip(e,url));element.addEventListener('blur',hideTooltip)};document.querySelectorAll('.clicktogo').forEach(addListeners)})()