PageSourceSearch

https://juliawaraksa.com/wp-content/plugins/laytheme-scrollslider/…/js/scrollslider.plugin.min.js?ver=11.8.0

js juliawaraksa.com collected 2026-10-07 06:33:14 UTC 111,826 bytes, 2 lines download raw bytes

1(()=>{var vs=Object.defineProperty;var $e=Object.getOwnPropertySymbols;var ys=Object.prototype.hasOwnProperty,ws=Object.prototype.propertyIsEnumerable;var Je=(s,t,e)=>t in s?vs(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,nt=(s,t)=>{for(var e in t||(t={}))ys.call(t,e)&&Je(s,e,t[e]);if($e)for(var e of $e(t))ws.call(t,e)&&Je(s,e,t[e]);return s};function P(s,t){return Math.random()*(t-s)+s}var M=void 0,xs=function(){return scrollSliderPassedData.ss_element_layout=="random"},Ms=parseFloat(scrollSliderPassedData.ss_portrait_element_width_minimum),Ss=parseFloat(scrollSliderPassedData.ss_landscape_element_width_minimum),Ts=parseFloat(scrollSliderPassedData.ss_portrait_element_width_maximum),_s=parseFloat(scrollSliderPassedData.ss_landscape_element_width_maximum),bs=scrollSliderPassedData.ss_portrait_element_width_unit==="%"?"vw":"px",Es=parseFloat(scrollSliderPassedData.ss_element_padding_minimum),Cs=parseFloat(scrollSliderPassedData.ss_element_padding_maximum),Ds=scrollSliderPassedData.ss_element_padding_unit==="%"?"vw":"px",zs=parseFloat(scrollSliderPassedData.ss_tablet_portrait_element_width_minimum),Ps=parseFloat(scrollSliderPassedData.ss_tablet_landscape_element_width_minimum),As=parseFloat(scrollSliderPassedData.ss_tablet_portrait_element_width_maximum),Is=parseFloat(scrollSliderPassedData.ss_tablet_landscape_element_width_maximum),Ls=scrollSliderPassedData.ss_tablet_portrait_element_width_unit==="%"?"vw":"px",Os=parseFloat(scrollSliderPassedData.ss_tablet_element_padding_minimum),Rs=parseFloat(scrollSliderPassedData.ss_tablet_element_padding_maximum),Xs=scrollSliderPassedData.ss_tablet_element_padding_unit==="%"?"vw":"px",Zs=parseFloat(scrollSliderPassedData.ss_phone_portrait_element_width_minimum),Ys=parseFloat(scrollSliderPassedData.ss_phone_landscape_element_width_minimum),Fs=parseFloat(scrollSliderPassedData.ss_phone_portrait_element_width_maximum),Ws=parseFloat(scrollSliderPassedData.ss_phone_landscape_element_width_maximum),Ns=scrollSliderPassedData.ss_phone_portrait_element_width_unit==="%"?"vw":"px",Hs=parseFloat(scrollSliderPassedData.ss_phone_element_padding_minimum),ks=parseFloat(scrollSliderPassedData.ss_phone_element_padding_maximum),js=scrollSliderPassedData.ss_phone_element_padding_unit==="%"?"vw":"px",Qs=function(s){if(s.hasClass("type-img")){if(s.find(">.img").hasClass("portrait"))return!0;if(s.find(">.img").hasClass("landscape"))return!1}else if(s.hasClass("type-project")){if(s.find(".thumb").hasClass("portrait"))return!0;if(s.find(".thumb").hasClass("landscape"))return!1}return!0},Ke=function(){M!==void 0&&M.length&&jQuery.data(M[0],"packery")&&M.packery("layout")},bt=function(s,t=!0){if(xs()&&!(s==null||s==null||s==!1)){var e=s.closest(".lay-content");e.addClass("scrollslider-randompos-active");var i=s,o=i.find(".grid-inner");$cols=i.find(".grid-inner>.col"),scrollSliderPassedData.ss_randompos=="on"&&t&&$cols.sort(function(){return Math.random()-.5}).each(function(){var a=jQuery(this);a.remove(),o.append(a)}),i.find(".grid-inner>.col").each(function(){var a=Qs(jQuery(this)),r=window.utility.isPhoneSize,l=window.utility.isTabletSize,h=window.utility.isDesktopSize,u,c,m,f;r?(u=a?P(Zs,Fs):P(Ys,Ws),c=P(Hs,ks),m=Ns,f=js):l?(u=a?P(zs,As):P(Ps,Is),c=P(Os,Rs),m=Ls,f=Xs):h&&(u=a?P(Ms,Ts):P(Ss,_s),c=P(Es,Cs),m=bs,f=Ds),jQuery(this).css({width:u+m,margin:c+f,"transition-delay":""})}),M=i.packery({itemSelector:".grid-inner>.col",gutter:0,percentPosition:!0,transitionDuration:0,resize:!0});var n=function(){i.find(".grid-inner>.col").each(function(){var a=this;a.style.transitionDelay&&a.style.removeProperty("transition-delay");var r=a.getAttribute("style");if(r&&r.includes("transition-delay")){var l=r.replace(/transition-delay\s*:\s*[^;]+;?/gi,"").trim();l.endsWith(";")&&(l=l.slice(0,-1)),l?a.setAttribute("style",l):a.removeAttribute("style")}})};setTimeout(n,0),setTimeout(n,50),setTimeout(n,200),M&&M.length>0&&M[0]&&M.on("layoutComplete",n),setTimeout(function(){window.layUpdateImageSizes()},100),jQuery(window).on("window_width_changed",Ke)}},ti=function(){if(M!==void 0&&M.length&&jQuery.data(M[0],"packery"))try{M.packery("destroy")}catch(s){console.log(s)}M=void 0,jQuery(window).off("window_width_changed",Ke),jQuery(".lay-content.scrollslider-randompos-active #grid .grid-inner").removeClass("scrollslider-randompos-active"),jQuery(".lay-content.scrollslider-randompos-active #grid .grid-inner .col").removeClass("scrollslider-randompos-active"),jQuery(".lay-content.scrollslider-randompos-active #grid .grid-inner .col").css({width:"",margin:""}),jQuery(".lay-content.scrollslider-randompos-active").removeClass("scrollslider-randompos-active"),jQuery(".lay-content.scrollslider-randompos-active #grid").removeClass("scrollslider-randompos-active")};var Et=function(s){var t=void 0;
1switch(s){case"desktop":{var e=[];e=e.concat(Array.from(document.querySelectorAll("body>.lay-content #grid, #lay-project-overlay>.lay-content #grid"))),t=jQuery(e);break}case"phone":{var e=[];jQuery("body>.lay-content").each(function(){var o=jQuery(this).find("#custom-phone-grid").length!=0;o?e=e.concat(Array.from(this.querySelectorAll("#custom-phone-grid"))):e=e.concat(Array.from(this.querySelectorAll("#grid")))}),jQuery("#lay-project-overlay>.lay-content").each(function(){var o=jQuery(this).find("#custom-phone-grid").length!=0;o?e=e.concat(Array.from(this.querySelectorAll("#custom-phone-grid"))):e=e.concat(Array.from(this.querySelectorAll("#grid")))}),t=jQuery(e);break}}return t},B=function(s){s=s||{};var t=s.ignoreProjectOverlay===!0;if(!t&&jQuery("html").hasClass("show-project-overlay")||!t&&jQuery("#lay-project-overlay #grid, #lay-project-overlay #custom-phone-grid").length>0)return!1;var e=jQuery("body"),i=s.type!=null?s.type:e.attr("data-type"),o=parseInt(s.id!=null?s.id:e.attr("data-id"),10),n=!1;if(i=="project"){if(scrollSliderPassedData.activeInProjects=="on"||scrollSliderPassedData.activeInProjects=="all")n=!0;else if(scrollSliderPassedData.activeInProjects=="individual"&&scrollSliderPassedData.individualProjectIds!=""){var a=JSON.parse(scrollSliderPassedData.individualProjectIds);jQuery.inArray(o,a)>-1&&(n=!0)}}else if(i=="category"){if(scrollSliderPassedData.activeInCategories=="on"||scrollSliderPassedData.activeInCategories=="all")n=!0;else if(scrollSliderPassedData.activeInCategories=="individual"&&scrollSliderPassedData.individualCategoryIds!=""){var a=JSON.parse(scrollSliderPassedData.individualCategoryIds);jQuery.inArray(o,a)>-1&&(n=!0)}}else if(i=="page"){if(scrollSliderPassedData.activeInPages=="on"||scrollSliderPassedData.activeInPages=="all")n=!0;else if(scrollSliderPassedData.activeInPages=="individual"&&scrollSliderPassedData.individualPageIds!=""){var a=JSON.parse(scrollSliderPassedData.individualPageIds);jQuery.inArray(o,a)>-1&&(n=!0)}}return n&&scrollSliderPassedData.ss_disable_for_phone=="on"&&window.utility.isPhoneSize&&(n=!1),n},T=function(s,t,e,i,o){return i+(o-i)*((Math.min(e,Math.max(t,s))-t)/(e-t))};window.layscrollslider={isActiveHere:B};var at=new Map,x={INFINITE_SCROLL:"infinite_scroll",CENTER_ANIMATION:"center_animation",PARALLAX:"parallax",RANDOM_PARALLAX:"random_parallax",MOUSE_PARALLAX:"mouse_parallax"},ei=s=>(at.has(s)||at.set(s,{transforms:new Map,lastApplied:""}),at.get(s)),V=(s,t,e)=>{let i=ei(s);e&&e.trim()?i.transforms.set(t,e.trim()):i.transforms.delete(t),Us(s)};var Us=s=>{let t=ei(s),e=[];t.transforms.has(x.INFINITE_SCROLL)&&e.push(t.transforms.get(x.INFINITE_SCROLL)),t.transforms.has(x.CENTER_ANIMATION)&&e.push(t.transforms.get(x.CENTER_ANIMATION)),t.transforms.has(x.PARALLAX)&&e.push(t.transforms.get(x.PARALLAX)),t.transforms.has(x.RANDOM_PARALLAX)&&e.push(t.transforms.get(x.RANDOM_PARALLAX)),t.transforms.has(x.MOUSE_PARALLAX)&&e.push(t.transforms.get(x.MOUSE_PARALLAX));let i=e.join(" ").trim();i!==t.lastApplied&&(i?s.style.setProperty("transform",i,"important"):s.style.removeProperty("transform"),s.style.transitionDelay&&s.style.removeProperty("transition-delay"),t.lastApplied=i)};var ii=()=>{at.forEach((s,t)=>{t.style.removeProperty("transform")}),at.clear()};var si="body>.lay-content>#grid .column-wrap>.col";scrollSliderPassedData.ss_element_layout=="random"&&(si="body>.lay-content>#grid .grid-inner>.col");var A=si;var Ct=null,ne=new Set,oi=null,ri=new Map,Bs=()=>{let s=parseFloat(scrollSliderPassedData.ss_scale_from)/100,t=parseFloat(scrollSliderPassedData.ss_scale_to)/100,e=parseFloat(scrollSliderPassedData.ss_opacity_from)/100,i=parseFloat(scrollSliderPassedData.ss_opacity_to)/100,o=parseFloat(scrollSliderPassedData.ss_animation_speed);return{scaleFrom:s,scaleTo:t,opacityFrom:e,opacityTo:i,animationSpeed:o}},ni=s=>{let t=s.getBoundingClientRect(),e={x:t.left+t.width/2,y:t.top+t.height/2},i=window.utility&&window.utility.isPhoneSize,o=window.innerWidth/(i?4:2),n=window.innerHeight/(i?4:2);scrollSliderPassedData.ss_alternative_animations=="style3"&&(o=0,n=0);let a={x:window.innerWidth/2,y:window.innerHeight/2},r=Math.max(0,Math.abs(e.x-a.x)-o/2),l=Math.max(0,Math.abs(e.y-a.y)-n/2);if(r===0&&l===0)return 0;let h=Math.max(window.innerWidth-o,window.innerHeight-n),u=Math.sqrt(r*r+l*l);return Math.min(u/h,1)},ai=(s,t,e)=>{let i="",o=1;if(scrollSliderPassedData.ss_scale_animation==="on"&&(o=e.scaleFrom+(e.scaleTo-e.scaleFrom)*(1-t),i=`scale(${o})`),ri.set(s,o),V(s,x.CENTER_ANIMATION,i),scrollSliderPassedData.ss_opacity_animation==="on"){let n=e.opacityFrom+(e.opacityTo-e.opacityFrom)*(1-t);s.style.setProperty("opacity",n,"important")}},li=s=>ri.get(s)||1;var Vs=s=>
1{s.forEach(t=>{t.isIntersecting?ne.add(t.target):ne.delete(t.target)})},hi=s=>{Ct=s.querySelectorAll(A);let t={threshold:0,rootMargin:"0px"};oi=new IntersectionObserver(Vs,t),Ct.forEach(e=>{oi.observe(e)})},ci=()=>{if(!Ct)return;let s=Bs();scrollSliderPassedData.ss_parallax==="parallax"?Ct.forEach(t=>{let e=ni(t);ai(t,e,s)}):ne.forEach(t=>{let e=ni(t);ai(t,e,s)})};var re=["type-vl","type-hr","type-stack","type-news","type-projectindex","type-productindex","type-elemengrid","type-thumbnailgrid"],q=new Map,G=new Map,ae=new Map,qs=s=>{if(!q.has(s)){let t=document.querySelectorAll(A);if(t.length===0){let h=.5+s*.1%.5;return q.set(s,h),h}let e=Array.from(t).filter(h=>!re.some(u=>h.classList.contains(u)));if(e.length===0){let h=.5+s*.1%.5;return q.set(s,h),h}let i=e.map(h=>{let u=h.getBoundingClientRect();return u.width*u.height}),o=Math.min(...i),n=Math.max(...i),a=i[s]||o,r=n-o,l;r===0?l=.5+s*.1%.5:l=.5+(a-o)/r*.5,q.set(s,l)}return q.get(s)},Gs=s=>{if(!G.has(s)){let t=document.querySelectorAll(A);if(t.length===0){let h=.5+s*.1%.5;return G.set(s,h),h}let e=Array.from(t).filter(h=>!re.some(u=>h.classList.contains(u)));if(e.length===0){let h=.5+s*.1%.5;return G.set(s,h),h}let i=e.map(h=>{let u=h.getBoundingClientRect();return u.width*u.height}),o=Math.min(...i),n=Math.max(...i),a=i[s]||o,r=n-o,l;r===0?l=.5+s*.1%.5:l=1-(a-o)/r*.5,G.set(s,l)}return G.get(s)},$s=s=>{if(re.some(e=>s.classList.contains(e)))return!0;let t=s.style;return!!(t.borderWidth||t.borderColor||t.borderStyle||t.backgroundColor||t.boxShadow||t.borderRadius)},le=s=>{if(scrollSliderPassedData.ss_parallax!=="parallax")return!1;let e=document.querySelectorAll(A)[s];if(!e||$s(e))return!1;let i=rt();if(i&&i.isZooming())return!1;let o=mi(),n=qs(s),a=Gs(s),r=5*o.x*a,l=5*o.y*a;if(scrollSliderPassedData.ss_zoom_scroll=="on"&&i&&i.isZooming()){let c=1-rt().getMappedZoomLevel();r=r*c,l=l*c}let h=r,u=l;if(scrollSliderPassedData.ss_movement_type==="momentum"){let c=ae.get(s)||{x:0,y:0},m=.4;h=c.x*(1-m)+r*m,u=c.y*(1-m)+l*m,ae.set(s,{x:h,y:u})}return h!==0||u!==0?{x:h,y:u}:{x:0,y:0}},ui=()=>
1{if(scrollSliderPassedData.ss_parallax!=="parallax")return;let s=document.querySelectorAll(A),t=0;s.forEach(e=>{let i=le(t);i!=!1&&e.firstElementChild&&(e.firstElementChild.style.transform=`translate(${i.x}px, ${i.y}px) `),t++})},di=()=>{q.clear(),G.clear(),ae.clear()};var he=class{constructor(t){this.container=t,this.viewport=t.parentElement,this.elements=[],this.elementData=[],this.isActive=!1,this.scroll={current:{x:0,y:0},last:{x:0,y:0}},this.containerWidth=0,this.containerHeight=0,this.viewportWidth=0,this.viewportHeight=0,this.elementBounds=null,this.boundsWidth=0,this.boundsHeight=0,this.init()}init(){scrollSliderPassedData.ss_infinite_scroll==="on"&&(this.isActive=!0,this.initializeElements(),this.updateDimensions(),this.calculateBounds(),this.boundHandleResize=this.handleResize.bind(this),window.addEventListener("resize",this.boundHandleResize))}initializeElements(){this.elements=Array.from(this.container.querySelectorAll(".col")),this.elementData=this.elements.map((t,e)=>{let i=t.getBoundingClientRect(),o=this.container.getBoundingClientRect();return{element:t,originalX:i.left-o.left,originalY:i.top-o.top,width:i.width,height:i.height,infiniteScrollTransform:{x:0,y:0}}})}calculateBounds(){this.boundsWidth=this.containerWidth,this.boundsHeight=this.containerHeight}updateDimensions(){this.containerWidth=this.container.offsetWidth,this.containerHeight=this.container.offsetHeight,this.viewportWidth=this.viewport.offsetWidth,this.viewportHeight=this.viewport.offsetHeight}handleResize(){clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(()=>{this.elementData&&this.elementData.forEach(t=>{V(t.element,x.INFINITE_SCROLL,"")}),this.updateDimensions(),this.initializeElements(),this.calculateBounds(),this.updateElementPositions()},100)}updateScrollPosition(t,e){this.isActive&&(this.scroll.current.x=t,this.scroll.current.y=e,this.updateElementPositions())}updateElementPositions(){this.elementData.length&&this.elementData.forEach((t,e)=>{let i=t.originalX+this.scroll.current.x,o=t.originalY+this.scroll.current.y,n=i,a=o;if(scrollSliderPassedData.ss_parallax==="parallax"){let h=le(e);h!=!1&&(n+=h.x,a+=h.y)}if(scrollSliderPassedData.ss_scale_animation==="on"){let h=li(t.element),u=t.width*(h-1),c=t.height*(h-1);n+=u,a+=c}if(this.boundsWidth>0){for(;n+t.width<0;)i+=this.boundsWidth,n+=this.boundsWidth;for(;n>this.viewportWidth;)i-=this.boundsWidth,n-=this.boundsWidth}if(this.boundsHeight>0){for(;a+t.height<0;)o+=this.boundsHeight,a+=this.boundsHeight;for(;a>this.viewportHeight;)o-=this.boundsHeight,a-=this.boundsHeight}let r=i-t.originalX,l=o-t.originalY;t.infiniteScrollTransform={x:r,y:l},this.applyInfiniteScrollTransform(t.element,t.infiniteScrollTransform)})}applyInfiniteScrollTransform(t,e){let i=e.x,o=e.y,n=`translate3d(${i}px, ${o}px, 0)`;V(t,x.INFINITE_SCROLL,n)}destroy(){this.isActive=!1,this.elementData&&this.elementData.forEach(t=>{V(t.element,x.INFINITE_SCROLL,"")}),this.resizeTimeout&&clearTimeout(this.resizeTimeout),this.boundHandleResize&&window.removeEventListener("resize",this.boundHandleResize)}},gi=he;var ce=class{constructor(t,e={}){this.container=t,this.altZoomTargetWasSet=!1,this.zoomOutTargetIfWeNeverZoomedIn_X=void 0,this.zoomOutTargetIfWeNeverZoomedIn_Y=void 0,this.child=t.firstElementChild,this.viewport=t.parentElement,this.onZoomChange=e.onZoomChange||null,this.onZoomingIn=e.onZoomingIn||null,this.onZoomingOut=e.onZoomingOut||null,this.previousZoom=-999,this.startOfContainerCoordinates={x:0,y:0},this.zoomTargetContainerCoordinates={x:0,y:0,zoom:1},this.containerCoordinatesWhenStartingZoom={x:0,y:0,zoom:1},this.startOfContainerCoordinatesTemp={x:0,y:0},this.containerCoordinatesWhenStartingZoomTemp={x:0,y:0,zoom:1},this.zoomTargetWindowCoordinatesTemp={x:0,y:0,zoom:1},this.zoomTargetContainerCoordinatesTemp={x:0,y:0,zoom:1},this.absCheck=.001,this.zoomingIn=!1,this.zoomingOut=!1,this.originalChildDimensions=this.child?{width:this.child.offsetWidth,height:this.child.offsetHeight}:{width:0,height:0},this.debugPoint=null,this.debugPointState={isZooming:!1,percentX:0,percentY:0},this.zoom={target:parseFloat(scrollSliderPassedData.ss_zoom_starting)/100,current:parseFloat(scrollSliderPassedData.ss_zoom_starting)/100,min:parseFloat(scrollSliderPassedData.ss_zoom_minimum)/100,max:parseFloat(scrollSliderPassedData.ss_zoom_maximum)/100,ease:.1},this.touch={initialDistance:0,initialZoom:1,isPinching:!1,centerX:void 0,centerY:void 0,hasZoomedInSe
1ssion:!1,zoomSessionActive:!1},this.scrollZoom={accumulator:0,sensitivity:5e-4},this.lenisWheelMultiplier=3.2,this.isZoomingIn=!1,this.zoomOutTargetX=void 0,this.zoomOutTargetY=void 0,this.lenisInstance=null,this.lenisRafId=null,this.useLenisForZoom=!1,navigator.platform.toUpperCase().indexOf("WIN")>=0&&typeof Lenis!="undefined"&&(this.useLenisForZoom=!0),this.isEnabled=scrollSliderPassedData.ss_zoom_scroll==="on",this.isEnabled&&(this.useLenisForZoom&&this.initLenisZoom(),this.bindEvents())}initLenisZoom(){if(typeof Lenis=="undefined")return;let t=document.createElement("div");t.style.cssText="position: fixed; width: 1px; height: 1px; overflow: hidden; opacity: 0; pointer-events: none; z-index: -9999;";let e=document.createElement("div"),i=2e4;e.style.cssText=`width: 1px; height: ${i}px;`,t.appendChild(e),document.body.appendChild(t),this.virtualScrollContainer=t,this.virtualContent=e,this.maxScrollValue=i;let o=this.zoom.max-this.zoom.min;this.lenisInstance=new Lenis({wrapper:t,content:e,duration:1.2,easing:l=>Math.min(1,1.001-Math.pow(2,-10*l)),orientation:"vertical",gestureOrientation:"vertical",smoothWheel:!0,wheelMultiplier:this.lenisWheelMultiplier,smoothTouch:!1,infinite:!1});let a=(this.zoom.target-this.zoom.min)/o*i;this.lenisInstance.scrollTo(a,{immediate:!0});let r=l=>{if(!this.lenisInstance)return;this.lenisInstance.raf(l);let h=this.lenisInstance.scroll,u=Math.max(0,Math.min(1,h/i)),c=this.zoom.min+u*o;this.zoom.target=Math.max(this.zoom.min,Math.min(this.zoom.max,c)),this.lenisRafId=requestAnimationFrame(r)};this.lenisRafId=requestAnimationFrame(r)}bindEvents(){this.isEnabled&&(this.useLenisForZoom?this.onWheelHandler=t=>{if(this.lenisInstance&&this.virtualScrollContainer){t.preventDefault();let e=new WheelEvent("wheel",{deltaY:t.deltaY,deltaX:t.deltaX,bubbles:!0,cancelable:!0,clientX:t.clientX,clientY:t.clientY});this.virtualScrollContainer.dispatchEvent(e)}}:this.onWheelHandler=t=>this.onWheel(t),this.viewport.addEventListener("wheel",this.onWheelHandler,{passive:!1})),this.isEnabled&&(this.onTouchStartHandler=t=>this.onTouchStart(t),this.onTouchMoveHandler=t=>this.onTouchMove(t),this.onTouchEndHandler=t=>this.onTouchEnd(t),this.viewport.addEventListener("touchstart",this.onTouchStartHandler,{passive:!1}),this.viewport.addEventListener("touchmove",this.onTouchMoveHandler,{passive:!1}),this.viewport.addEventListener("touchend",this.onTouchEndHandler,{passive:!1}),this.viewport.addEventListener("touchcancel",this.onTouchEndHandler,{passive:!1})),this.onMouseMoveHandler=t=>this.onMouseMove(t),this.viewport.addEventListener("mousemove",this.onMouseMoveHandler)}getMappedZoomLevel(){return(this.zoom.target-this.zoom.min)/(this.zoom.max-this.zoom.min)}onWheel(t){if(!this.isEnabled||this.useLenisForZoom)return;if(t.preventDefault(),navigator.platform.toUpperCase().indexOf("MAC")>=0){let i=t.deltaY*this.scrollZoom.sensitivity*3;this.zoom.target=Math.max(this.zoom.min,Math.min(this.zoom.max,this.zoom.target+i))}else{let i=t.deltaY*this.scrollZoom.sensitivity*3;this.zoom.target=Math.max(this.zoom.min,Math.min(this.zoom.max,this.zoom.target-i))}}onTouchStart(t){if(this.isEnabled)if(t.touches.length===2){t.preventDefault(),this.touch.hasZoomedInSession=!0,this.touch.zoomSessionActive=!0;let e=t.touches[0],i=t.touches[1];this.touch.initialDistance=this.getDistance(e,i),this.touch.initialZoom=this.zoom.target,this.touch.isPinching=!0;let o=this.getTouchCenter(e,i);this.touch.centerX=o.x,this.touch.centerY=o.y}else t.touches.length===1&&(this.touch.zoomSessionActive=!1,this.touch.hasZoomedInSession=!1)}onTouchMove(t){if(this.isEnabled){if(this.touch.isPinching&&t.touches.length===2){t.preventDefault();let e=t.touches[0],i=t.touches[1],n=this.getDistance(e,i)/this.touch.initialDistance,a=Math.max(this.zoom.min,Math.min(this.zoom.max,this.touch.initialZoom*n));a>this.zoom.target&&(this.touch.hasZoomedInSession=!0),this.zoom.target=a;let r=this.getTouchCenter(e,i);this.touch.centerX=r.x,this.touch.centerY=r.y}else if(t.touches.length===1){let e=this.touch.zoomSessionActive}}}onTouchEnd(t){this.isEnabled&&(this.touch.isPinching?this.touch.isPinching=!1:this.isInZoomSession()&&t.touches.length)}getDistance(t,e){let i=t.clientX-e.clientX,o=t.clientY-e.clientY;return Math.sqrt(i*i+o*o)}getTouchCenter(t,e){return{x:(t.clientX+e.clientX)/2,y:(t.clientY+e.clientY)/2}}update(){if(!this.isEnabled)return;this.zoom.current+=(this.zoom.target-this.zoom.current)*this.zoom.ease,this.previousZoom==-999&&(this.previousZoom=this.zoom.current),this.zoom.current>this.previousZoom?this.isZoomingIn==!1&&(this.setValuesForZoom(),this.setTargetValuesToUseForZoomingIn(),this.onZoomingIn&&this.onZoomingIn(this.zoom.current,this.previousZoom),this.isZoomingIn=!0,this.isZoomingOut=!1):this.zoom.current<this.previousZoom&&this.isZoomingOut==!1&&(this.onZoomingOut&&this.onZoomingOut(this.zoom.current,this.previousZoom),this.isZoomingOut=!0,this.isZoomingIn=!1),Math.abs(this.zoom.current-this.zoom.target)<this.absCheck&&this.touch.zoomSessionActive==!1&&this.touch.hasZoomedInSe
1ssion==!1&&(this.isZoomingIn=!1,this.isZoomingOut=!1),this.onZoomChange&&Math.abs(this.zoom.current-this.previousZoom)>this.absCheck&&this.onZoomChange(this.zoom.current),this.previousZoom=this.zoom.current}getZoomLevel(){return this.zoom.current}setZoomLevel(t){this.zoom.target=Math.max(this.zoom.min,Math.min(this.zoom.max,t))}resetZoom(){this.zoom.target=parseFloat(scrollSliderPassedData.ss_zoom_starting)/100}isPinching(){return this.touch.isPinching}isInZoomSession(){return this.touch.zoomSessionActive}shouldAllowDragging(){return!this.touch.isPinching&&!this.isInZoomSession()}isZooming(){return this.isZoomingIn||this.isZoomingOut}getZoomState(){return{target:this.zoom.target,current:this.zoom.current,isPinching:this.touch.isPinching,isInZoomSession:this.isInZoomSession(),hasZoomedInSession:this.touch.hasZoomedInSession,isEnabled:this.isEnabled}}getEffectiveChildSize(){let t=this.container;if(!t)return{width:0,height:0};let e=t.offsetWidth,i=t.offsetHeight,o=e*this.zoom.current,n=i*this.zoom.current;return{width:o,height:n,offsetX:(o-e)/2,offsetY:(n-i)/2}}destroy(){this.isEnabled&&(this.lenisInstance&&(this.lenisRafId&&(cancelAnimationFrame(this.lenisRafId),this.lenisRafId=null),this.lenisInstance.destroy(),this.lenisInstance=null),this.virtualScrollContainer&&this.virtualScrollContainer.parentNode&&(this.virtualScrollContainer.parentNode.removeChild(this.virtualScrollContainer),this.virtualScrollContainer=null,this.virtualContent=null),this.debugPoint&&this.debugPoint.parentNode&&this.debugPoint.parentNode.removeChild(this.debugPoint),this.greenDebugDot&&this.greenDebugDot.parentNode&&this.greenDebugDot.parentNode.removeChild(this.greenDebugDot),this.resetChildTransforms(),this.onWheelHandler&&this.viewport.removeEventListener("wheel",this.onWheelHandler),this.onTouchStartHandler&&this.viewport.removeEventListener("touchstart",this.onTouchStartHandler),this.onTouchMoveHandler&&this.viewport.removeEventListener("touchmove",this.onTouchMoveHandler),this.onTouchEndHandler&&(this.viewport.removeEventListener("touchend",this.onTouchEndHandler),this.viewport.removeEventListener("touchcancel",this.onTouchEndHandler)),this.onMouseMoveHandler&&this.viewport.removeEventListener("mousemove",this.onMouseMoveHandler))}resetChildTransforms(){let t=this.container.firstElementChild;t&&(t.style.transform="")}startZoomInToPoint(){let t=window.innerWidth/2,e=window.innerHeight/2,i=this.zoomTargetWindowCoordinates.x,o=this.zoomTargetWindowCoordinates.y,n=this.getTransformValues(),a=n.x,r=n.y,u=100/this.zoomTargetContainerCoordinates.zoom*this.zoom.min/100,c=t+a*u-i*u,m=e+r*u-o*u;!isNaN(c)&&!isNaN(m)&&(this.zoomOutTargetX=c,this.zoomOutTargetY=m)}startZoomOutToPoint(t,e){this.zoomingOut=!0,this.zoomingIn=!1,this.startOfZoomOutX=t,this.startOfZoomOutY=e,this.startZoomOfZoomOut=this.zoom.current}setZoomOutPointOnceForWhenWeNeverZoomedIn(){if(this.altZoomOutTargetWasSet)return;let t=window.innerWidth/2,e=window.innerHeight/2,i=window.innerWidth/2,o=window.innerHeight/2,n=this.getTransformValues(),a=n.x,r=n.y,u=100/this.zoomTargetContainerCoordinates.zoom*this.zoom.min/100,c=t+a*u-i*u,m=e+r*u-o*u;this.zoomOutTargetIfWeNeverZoomedIn_X=c,this.zoomOutTargetIfWeNeverZoomedIn_Y=m,this.altZoomOutTargetWasSet=!0}getZoomToPointCoordinatesForZoomingOut(){let t=this.startOfZoomOutX,e=this.startOfZoomOutY,i=this.startZoomOfZoomOut,o,n;this.zoomOutTargetX!=null&&this.zoomOutTargetY!=null?(o=this.zoomOutTargetX,n=this.zoomOutTargetY):(this.setZoomOutPointOnceForWhenWeNeverZoomedIn(),o=this.zoomOutTargetIfWeNeverZoomedIn_X,n=this.zoomOutTargetIfWeNeverZoomedIn_Y);let a=T(this.zoom.current,this.zoom.min,i,0,1);a=1-a;let r=t+(o-t)*a,l=e+(n-e)*a;return{x:r,y:l}}getZoomToPointCoordinatesForZoomingIn(){let t=this.startOfContainerCoordinates.x,e=this.startOfContainerCoordinates.y,i=this.zoomTargetWindowCoordinates.x,o=this.zoomTargetWindowCoordinates.y,n=this.zoomTargetContainerCoordinates.zoom,a=this.zoom.max,l=100/n*a/100,h=window.innerWidth/2,u=window.innerHeight/2,c=this.containerCoordinatesWhenStartingZoom.x,m=this.containerCoordinatesWhenStartingZoom.y,f=h+c*l-i*l,v=u+m*l-o*l,p=T(this.zoom.current,n,this.zoom.max,0,1),w=t+(f-t)*p,b=e+(v-e)*p;return{x:w,y:b}}stopZoomToPoint(){}setTargetValuesToUseForZoomingIn(){this.zoomTargetWindowCoordinates=nt({},this.zoomTargetWindowCoordinatesTemp),this.zoomTargetContainerCoordinates=nt({},this.zoomTargetContainerCoordinatesTemp),this.containerCoordinatesWhenStartingZoom=nt({},this.containerCoordinatesWhenStartingZoomTemp),this.startOfContainerCoordinates=nt({},this.startOfContainerCoordinatesTemp)}getTransformValues(){let t=this.container.style.transform,e=0,i=0;if(t){let o=t.match(/translate3d\(([^,]+),\s*([^,]+),\s*([^)]+)\)/);if(o)e=parseFloat(o[1]),i=parseFloat(o[2]);else{let n=t.match(/translate\(([^,]+),\s*([^)]+)\)/);n&&(e=parseFloat(n[1]),i=parseFloat(n[2]))}}return{x:e,y:i}}
1setValuesForZoom(){if(!this.isEnabled)return;(this.zoom.current<=0||!isFinite(this.zoom.current))&&(this.zoom.current=this.zoom.min||.1);let t=this.getTransformValues(),e=t.x,i=t.y,o,n;this.touch.centerX!==void 0&&this.touch.centerY!==void 0?(o=this.touch.centerX,n=this.touch.centerY):(o=this.mouseX,n=this.mouseY),n!=null&&o!=null&&(this.startOfContainerCoordinatesTemp={x:e,y:i},this.containerCoordinatesWhenStartingZoomTemp={x:e,y:i,zoom:this.zoom.current},this.zoomTargetWindowCoordinatesTemp={x:o,y:n,zoom:this.zoom.current},this.zoomTargetContainerCoordinatesTemp={x:e,y:i,zoom:this.zoom.current})}onMouseMove(t){this.mouseX=t.clientX,this.mouseY=t.clientY}},fi=ce;var pi=1500,Js=1520,Ks=600,to=2700,eo=1550,vi=0,ue=-700,io=950,so=1.15,oo=9.6,no=2e3,ao=1800,ro=.085,yi=2,de=450,lo=12,ho=!1;function ge(s){return s<=0?0:s>=1?1:s*s*(3-2*s)}function wi(s,t,e){return ge((e-s)/(e-t))}function xi(s,t,e){return ge((s-t)/(e-t))}function co(s){let t=/(?:^|\s)span-(\d+)/.exec(s.className);return t?parseInt(t[1],10):1}var me=class{constructor(t){this.desktopGrid=t,this.grid=null,this.laycontent=null,this.viewport=null;let e=parseFloat(scrollSliderPassedData.ss_galaxy_starting_position),i=Number.isFinite(e)?e:0;this.cameraTarget=i,this.cameraCurrent=i,this.touchY=null,this.rows=[],this.rowState=[],this.autoScrollEnabled=scrollSliderPassedData.ss_galaxy_auto_scroll==="on",this.autoScrollSpeed=parseFloat(scrollSliderPassedData.ss_galaxy_auto_scroll_speed),(!Number.isFinite(this.autoScrollSpeed)||this.autoScrollSpeed<0)&&(this.autoScrollSpeed=450),this.autoScrollLastTime=null,this.autoScrollResumeAt=0,this.autoScrollRampStart=0,this.autoScrollWasRunning=!1,this.blurMax=scrollSliderPassedData.ss_galaxy_blur==="on"&&!(window.utility&&window.utility.isTouchDevice)?lo:0,this.onWheel=this.onWheel.bind(this),this.onTouchStart=this.onTouchStart.bind(this),this.onTouchMove=this.onTouchMove.bind(this),this.onTouchEnd=this.onTouchEnd.bind(this),this.onResize=this.onResize.bind(this),jQuery("html").addClass("galaxy-zoom-active"),Array.prototype.forEach.call(document.querySelectorAll(".galaxy-zoom-scrollbar"),function(o){o.parentNode&&o.parentNode.removeChild(o)}),this.scrollbar=document.createElement("div"),this.scrollbar.className="galaxy-zoom-scrollbar",document.body.appendChild(this.scrollbar),window.addEventListener("resize",this.onResize),this.activateStage(this.pickGrid())}pickGrid(){let t=parseInt(scrollSliderPassedData.breakpoint,10)||600;if(window.innerWidth<=t){let e=document.querySelector("#custom-phone-grid");if(e&&document.body.contains(e)&&this.gridHasContent(e))return e}return this.desktopGrid}gridHasContent(t){let e=t.querySelectorAll("img, video").length,i=t.querySelectorAll(".column-wrap > .col").length;return e>0||i>=2}activateStage(t){this.grid=t,this.laycontent=t.closest(".lay-content"),this.viewport=t.parentElement||this.laycontent||window,t.classList.add("galaxy-stage"),this.laycontent&&this.laycontent.classList.add("galaxy-zoom-active"),this.syncPhoneGridException(),this.measure(),this.bindStageEvents(),this.update()}deactivateStage(){this.unbindStageEvents(),this.gridCssClone&&this.gridCssClone.parentNode&&this.gridCssClone.parentNode.removeChild(this.gridCssClone),this.gridCssClone=null,this.clearStageStyles(),this.grid&&this.grid.classList.remove("galaxy-stage"),this.laycontent&&this.laycontent.classList.remove("galaxy-zoom-active"),this.grid=null,this.laycontent=null,this.viewport=null}clearStageStyles(){this.rows.forEach(t=>{t.style.transform="",t.style.opacity="",t.style.visibility="",t.style.pointerEvents="",t.classList.remove("galaxy-clickable");let e=t.querySelector(".column-wrap");e&&Array.prototype.slice.call(e.children).forEach(i=>{!i.classList||!i.classList.contains("col")||(i.style.removeProperty("transform"),i.style.opacity="",i.style.visibility="",i.style.filter="",i.classList.remove("galaxy-clickable"))})}),this.rows=[],this.rowState=[],this.rowCols=[]}syncPhoneGridException(){let t=parseInt(scrollSliderPassedData.breakpoint,10)||600,e=window.innerWidth<=t&&this.grid.id==="grid";if(e&&!this.gridCssClone){let i=document.getElementById("grid-css"),o=i&&i.sheet&&i.sheet.cssRules.length?i.sheet.cssRules[0]:null;if(o&&o.cssRules){let n="";for(let a=0;a<o.cssRules.length;
1a++)n+=o.cssRules[a].cssText+`
2`;this.gridCssClone=document.createElement("style"),this.gridCssClone.className="galaxy-zoom-grid-css",this.gridCssClone.textContent=n,document.head.appendChild(this.gridCssClone)}}else!e&&this.gridCssClone&&(this.gridCssClone.parentNode&&this.gridCssClone.parentNode.removeChild(this.gridCssClone),this.gridCssClone=null)}measure(){let t=Array.prototype.slice.call(this.grid.querySelectorAll(":scope > .grid-inner > .row"));t.length||(t=Array.prototype.slice.call(this.grid.querySelectorAll(":scope > .row"))),t.length||(t=Array.prototype.slice.call(this.grid.querySelectorAll(".row"))),this.rows=t,this.totalDepth=Math.max(t.length,1)*pi;let e=Math.min(io,this.totalDepth*.5);this.passWindow=e;let i=this.totalDepth-e;this.fadeInFar=Math.min(to,i),this.fadeInNear=Math.min(eo,this.fadeInFar-250),this.rowState=t.map(()=>({tStr:null,op:null,visible:null,clickable:null})),this.scrollbarHeight=this.scrollbar?this.scrollbar.offsetHeight:0;let o=[];this.rowCols=t.map(a=>{let r=a.querySelector(".column-wrap");if(!r)return[];let l=12,h=getComputedStyle(r).gridTemplateColumns;if(h&&h!=="none"){let c=h.split(" ").filter(Boolean).length;c>1&&(l=c)}let u=[];return Array.prototype.slice.call(r.children).forEach(c=>{if(!c.classList||!c.classList.contains("col"))return;let m=co(c),f=Math.min(m/l,1),p="translateZ("+Math.min(f*Js,Ks).toFixed(1)+"px)";c.style.setProperty("transform",p,"important");let w={el:c,base:p,last:p,span:m,weight:1,fadeOffset:0,lastOp:-1,lastVis:null,lastClickable:null,lastBlur:null};u.push(w),o.push(w)}),u});let n=o.reduce((a,r)=>r.span>a?r.span:a,1);o.forEach(a=>{a.weight=a.span/n,a.fadeOffset=de*(a.weight-.5)})}bindStageEvents(){this.viewport.addEventListener("wheel",this.onWheel,{passive:!1}),this.viewport.addEventListener("touchstart",this.onTouchStart,{passive:!1}),this.viewport.addEventListener("touchmove",this.onTouchMove,{passive:!1}),this.viewport.addEventListener("touchend",this.onTouchEnd),this.viewport.addEventListener("touchcancel",this.onTouchEnd)}unbindStageEvents(){this.viewport&&(this.viewport.removeEventListener("wheel",this.onWheel),this.viewport.removeEventListener("touchstart",this.onTouchStart),this.viewport.removeEventListener("touchmove",this.onTouchMove),this.viewport.removeEventListener("touchend",this.onTouchEnd),this.viewport.removeEventListener("touchcancel",this.onTouchEnd))}onWheel(t){t.preventDefault();let e=t.deltaY;t.deltaMode===1?e*=16:t.deltaMode===2&&(e*=window.innerHeight),this.cameraTarget+=e*so,this.interruptAutoScroll()}onTouchStart(t){this.touchY=t.touches[0].clientY,this.interruptAutoScroll()}onTouchMove(t){if(this.touchY==null)return;t.preventDefault();let e=t.touches[0].clientY;this.cameraTarget+=(this.touchY-e)*oo,this.touchY=e,this.interruptAutoScroll()}onTouchEnd(){this.touchY=null}onResize(){clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(()=>{let t=this.pickGrid();t!==this.grid?(this.deactivateStage(),this.activateStage(t)):(this.syncPhoneGridException(),this.measure())},200)}getTime(){return window.performance&&window.performance.now?window.performance.now():Date.now()}interruptAutoScroll(){if(!this.autoScrollEnabled)return;let t=this.getTime();this.autoScrollLastTime=t,this.autoScrollResumeAt=t+no,this.autoScrollRampStart=this.autoScrollResumeAt,this.autoScrollWasRunning=!1}resumeFromHiddenTab(){this.autoScrollLastTime=null,this.autoScrollRampStart=0,this.autoScrollWasRunning=!1}updateAutoScroll(){if(!this.autoScrollEnabled||this.autoScrollSpeed<=0)return;let t=this.getTime();if(this.autoScrollLastTime===null){this.autoScrollLastTime=t,this.autoScrollResumeAt=t,this.autoScrollRampStart=t;return}let e=Math.min(t-this.autoScrollLastTime,100);if(this.autoScrollLastTime=t,t<this.autoScrollResumeAt)return;this.autoScrollWasRunning||(this.autoScrollWasRunning=!0,this.autoScrollRampStart=t);let i=ge((t-this.autoScrollRampStart)/ao);this.cameraTarget+=this.autoScrollSpeed*i*(e/1e3)}aheadFor(t){let e=this.totalDepth,i=((t*pi-this.cameraCurrent)%e+e)%e;return i>e-this.passWindow&&(i-=e),i}opacityFor(t){return Math.min(wi(t,this.fadeInNear,this.fadeInFar),xi(t,ue,vi))}update(){this.updateAutoScroll(),this.cameraCurrent+=(this.cameraTarget-this.cameraCurrent)*ro;let t=0,e=0;if(scrollSliderPassedData.ss_extra_mouse_movement==="on"){let i=lt();t=-i.x*yi,e=-i.y*yi}for(let i=0;i<this.rows.length;i++){let o=this.rows[i],n=this.aheadFor(i),a=-n,r=this.rowState[i];if(n<ue-de||n>this.fadeInFar+de){r.visible!==!1&&(o.style.visibility="hidden",r.visible=!1);continue}r.visible!==!0&&(o.style.visibility="visible",r.visible=!0);let l="translate(-50%, -50%) translateZ("+a.toFixed(1)+"px)";r.tStr!==l&&(o.style.transform=l,r.tStr=l);let h=this.rowCols[i];for(let u=0;u<h.length;u++){let c=h[u],m=n-c.fadeOffset,f=wi(m,this.fadeInNear,this.fadeInFar),v=xi(m,ue,vi),p=Math.min(f,v);if(p<=.001)c.lastVis!==!1&&(c.el.style.visibility="hidden",c.lastVis=!1);else{if(c.lastVis!==!0&&(c.el.style.visibility="visible",c.lastVis=!0),c.lastOp!==p&&(c.el.style.opacity=p.toFixed(3),this.blurMax>0)){let N=1-v;ho&&1-f>N&&(N=1-f);let tt=N*this.blurMax,I=tt<.1?"none":"blur("+tt.toFixed(1)+"px)";c.lastBlur!==I&&(c.el.style.filter=I,c.lastBlur=I)}let b=c.base+" translate("+(t*c.weight).toFixed(1)+"px, "+(e*c.weight).toFixed(1)+"px)";c.last!==b&&(c.el.style.setProperty("transform",b,"important"),c.last=b)}c.lastOp=p;let w=p>.05&&(m>=0||p>.6);c.lastClickable!==w&&(c.el.classList.toggle("galaxy-clickable",w),c.lastClickable=w)}}if(this.scrollbar){let o=Math.max(0,window.innerHeight-this.scrollbarHeight-16),n=(this.cameraCurrent%this.totalDepth+this.totalDepth)%this.totalDepth/this.totalDepth;this.scrollbar.style.transform="translateY("+(8+n*o).toFixed(1)+"px)"}}destroy(){window.removeEventListener("resize",this.onResize),clearTimeout(this.resizeTimeout),this.deactivateStage(),jQuery("html").removeClass("galaxy-zoom-active"),this.scrollbar&&this.scrollbar.parentNode&&this.scrollbar.parentNode.removeChild(this.scrollbar),this.scrollbar=null}},Mi=me;var uo=s=>typeof window.requestIdleCallback=="function"?window.requestIdleCallback(s,{timeout:500}):window.setTimeout(s,32),mo=s=>{s!==null&&(typeof window.cancelIdleCallback=="function"?window.cancelIdleCallback(s):window.clearTimeout(s))},fe=class{constructor(t,e={}){this.imageData=Array.isArray(t)?t:[],this.concurrency=Math.max(1,Number(e.concurrency)||2),this.initialCount=Math.max(1,Number(e.initialCount)||1),this.readyCount=Math.max(1,Number(e.readyCount)||1),this.loadAll=e.loadAll!==!1,this.crossOrigin=e.crossOrigin||null,this.onItem=typeof e.onItem=="function"?e.onItem:null,this.onReady=typeof e.onReady=="function"?e.onReady:null,this.slots=new Array(this.imageData.length),this.urgentQueue=[],this.backgroundQueue=[],this.queued=new Set,this.active=new Map,this.failedAt=new Map,this.retained=null,this.successCount=0,this.completedCount=0,this.ready=!1,this.destroyed=!1,this.idleHandle=null}
2start(){if(this.destroyed||this.imageData.length===0){this.markReady();return}let t=Math.min(this.imageData.length,this.initialCount);this.enqueue(Array.from({length:t},(e,i)=>i),!0),this.loadAll&&t<this.imageData.length&&this.enqueue(Array.from({length:this.imageData.length-t},(e,i)=>i+t),!1),this.pumpUrgent(),this.scheduleBackground()}enqueue(t,e){t.forEach(i=>{let o=Number(i);!Number.isInteger(o)||o<0||o>=this.imageData.length||this.slots[o]||this.active.has(o)||this.queued.has(o)||this.failedAt.has(o)&&Date.now()-this.failedAt.get(o)<5e3||(this.queued.add(o),e?this.urgentQueue.push(o):this.backgroundQueue.push(o))})}requestWindow(t){this.destroyed||(this.retained=new Set(t.map(e=>(Number(e)%this.imageData.length+this.imageData.length)%this.imageData.length)),this.loadAll||(this.urgentQueue=this.urgentQueue.filter(e=>this.retained.has(e)),this.backgroundQueue=this.backgroundQueue.filter(e=>this.retained.has(e)),this.queued=new Set([...this.urgentQueue,...this.backgroundQueue]),this.active.forEach((e,i)=>{this.retained.has(i)||(e.onload=null,e.onerror=null,e.removeAttribute("src"),this.active.delete(i))})),this.slots.forEach((e,i)=>{e&&!this.retained.has(i)&&this.release(i)}),this.enqueue(Array.from(this.retained),!0),this.pumpUrgent())}pumpUrgent(){if(!this.destroyed){for(;this.active.size<this.concurrency&&this.urgentQueue.length>0;)this.load(this.urgentQueue.shift());
2this.urgentQueue.length===0&&this.scheduleBackground()}}scheduleBackground(){this.destroyed||this.idleHandle!==null||this.backgroundQueue.length===0||this.urgentQueue.length>0||this.active.size>=this.concurrency||(this.idleHandle=uo(()=>{if(this.idleHandle=null,!(this.destroyed||this.urgentQueue.length>0))for(;this.active.size<this.concurrency&&this.backgroundQueue.length>0;)this.load(this.backgroundQueue.shift())}))}load(t){this.queued.delete(t);let e=this.imageData[t];if(!e||!e.src){this.complete(t,null);return}let i=new Image;this.crossOrigin&&(i.crossOrigin=this.crossOrigin),this.active.set(t,i),i.onload=()=>this.complete(t,i),i.onerror=()=>this.complete(t,null),i.src=e.src}complete(t,e){if(!this.destroyed){if(this.active.delete(t),this.completedCount++,e&&(!this.retained||this.retained.has(t))){let i={data:this.imageData[t],index:t,img:e,image:e};this.slots[t]=i,this.failedAt.delete(t),this.successCount++,this.onItem&&this.onItem(i,t,this.slots)}else e||this.failedAt.set(t,Date.now());!this.ready&&(this.successCount>=Math.min(this.readyCount,this.imageData.length)||this.completedCount>=this.imageData.length)&&this.markReady(),this.pumpUrgent(),this.scheduleBackgroun
2d()}}markReady(){this.ready||(this.ready=!0,this.onReady&&this.onReady(this.slots))}repairDiscarded(){if(this.destroyed)return;let t=[];this.slots.forEach((e,i)=>{!e||!e.img||e.img.naturalWidth>0&&e.img.naturalHeight>0||(this.release(i),t.push(i))}),t.length&&(this.enqueue(t,!0),this.pumpUrgent())}release(t){let e=this.slots[t];e&&(this.slots[t]=void 0,e.img.onload=null,e.img.onerror=null,e.img.removeAttribute("src"))}destroy(){this.destroyed||(this.destroyed=!0,mo(this.idleHandle),this.idleHandle=null,this.active.forEach(t=>{t.onload=null,t.onerror=null,t.removeAttribute("src")}),this.active.clear(),this.slots.forEach((t,e)=>{t&&this.release(e)}),this.urgentQueue=[],this.backgroundQueue=[],this.queued.clear(),this.failedAt.clear())}},$=fe;var Si=0,Ti=0,pe=0,Dt=0;typeof window!="undefined"&&window.addEventListener("scroll",()=>{Si=performance.now()+160},{passive:!0,capture:!0});var J=(s=1.5)=>{let t=s,e=Number(navigator.deviceMemory),i=Number(navigator.hardwareConcurrency);return Number.isFinite(e)&&e<=2||Number.isFinite(i)&&i<=2?t=Math.min(t,1):(Number.isFinite(e)&&e<=4||Number.isFinite(i)&&i<=4)&&(t=Math.min(t,1.25)),Math.max(1,Math.min(window.devicePixelRatio||1,t))},_i=(s=performance.now())=>{let e=s<Si||s<Ti?1e3/30:0;return e>0&&pe>0&&s-pe<e?!1:(pe=s,!0)},bi=(s,t=performance.now())=>{let e=Math.max(0,Number(s)||0);Dt=Dt===0?e:Dt*.9+e*.1,Dt>12&&(Ti=t+4e3)};var go=1.05,fo=8.5,po=.085,Ei=.16,vo=2e3,yo=1800,wo=400,Ci=6,Lt=14.6,xo=Lt*450,Mo=Math.PI,zt=540,Pt=675,So=-448,To=1216,_o=382,bo=1116,ve=410,At=590,Di=1.16,Eo=ve*Di,Co={blur:0,tilt:0,count:520,maxDist:33,sizeMix:0,duration:Lt,imageFit:"fit",maxScale:58,minScale:6,panRange:105,atmosphere:0,buildInOut:"off",cornerRadius:0},Do=s=>Math.max(0,Math.min(1,s)),zo=s=>s-Math.floor(s),we=s=>s&&s.img?s.img:s,Po=s=>s&&s.data?s.data:null,zi=s=>{let t=we(s);return t&&(t.naturalWidth||t.videoWidth||t.width)||0},Pi=s=>{let t=we(s);return t&&(t.naturalHeight||t.videoHeight||t.height)||0},It={up:{x:0,y:-1},"up-right":{x:1,y:-1},right:{x:1,y:0},"down-right":{x:1,y:1},down:{x:0,y:1},"down-left":{x:-1,y:1},left:{x:-1,y:0},"up-left":{x:-1,y:-1}};function Ao(s,t){let e=s&&typeof s.getRenderSize=="function"?s.getRenderSize():null,i=e&&Number(e.width),o=e&&Number(e.height),n=Number.isFinite(i)&&i>0&&Number.isFinite(o)&&o>0,a=t.getBoundingClientRect();return{width:n?i:t.clientWidth||a.width,height:n?o:t.clientHeight||a.height,virtual:n}}var Ai=s=>Object.prototype.hasOwnProperty.call(It,s)?s:"down";function Io(s){let t=Math.hypot(s.x,s.y);return t<1e-4?It.down:{x:s.x/t,y:s.y/t}}function Lo(s){return Io(It[s]||It.down)}function Oo(s){let t=Po(s),e=t&&parseFloat(t.width),i=t&&parseFloat(t.height);if(Number.isFinite(e)&&Number.isFinite(i)&&e>0&&i>0)return e/i;let o=t&&parseFloat(t.ar);if(Number.isFinite(o)&&o>0)return o;let n=zi(s),a=Pi(s);return n>0&&a>0?n/a:1}function Ro(s){let t=Oo(s),e=ve/At;if(t>=e){let i=ve*Di;return{w:i,h:i/t}}return{w:At*t,h:At}}function Xo(s){return s<=0?0:s>=1?1:s*s*(3-2*s)}function Zo(s){let t=s&&s.getAttribute("data-lay-scrollslider-tile-globe-images");if(!t)return[];try{let e=JSON.parse(t);return Array.isArray(e)?e.filter(i=>i&&i.src):[]}catch(e){return[]}}function Yo(s,t,e){if(s/t>e){let o=t*e;return[(s-o)/2,0,o,t]}let i=s/e;return[0,(t-i)/2,s,i]}function Fo(s,t,e,i,o,n,a){var Re,Xe,Ze,Ye,Fe,We,Ne,He,ke,je;let r=Co,l=Ai(a),h=o.length;if(h===0)return[];let u=Math.max(1,Math.min(800,r.count|0)),c=Math.max(0,(Re=r.minScale)!=null?Re:5)/100,m=Math.max(0,(Xe=r.maxScale)!=null?Xe:60)/100,f=Math.max(.001,((Ze=r.maxDist)!=null?Ze:28)/100),v=Math.max(0,r.cornerRadius||0),p=((Ye=r.imageFit)!=null?Ye:"fill")==="fill",w=Math.max(1,(Fe=r.duration)!=null?Fe:Lt),b=Math.max(0,Math.min(100,(We=r.sizeMix)!=null?We:0))/100,N=Math.max(0,Math.min(100,(Ne=r.atmosphere)!=null?Ne:0))/100,tt=Math.max(0,(He=r.tilt)!=null?He:0)*Mo/180,I=Math.max(0,(ke=r.panRange)!=null?ke:100)/100,ze=Math.max(0,Math.min(100,(je=r.blur)!=null?je:0))/100,Pe=(i%w+w)%w/w,S=t/1080,es=n&&Number.isFinite(n.x)?n.x:t/2,is=n&&Number.isFinite(n.y)?n.y:e/2,mt=Lo(l),Nt=So,Ht=To,kt=_o,jt=bo;Nt=zt+(Nt-zt)*I,Ht=zt+(Ht-zt)*I,kt=Pt+(kt-Pt)*I,jt=Pt+(jt-Pt)*I;let gt=t/2/S,ft=e/2/S,Qt=Nt-gt-200,Ae=Ht+gt+200,Ut=kt-ft-200,Ie=jt+ft+200,H=Ae-Qt,k=Ie-Ut,ss=Math.abs(mt.x)>1e-4?Math.sign(mt.x)*H:0,os=Math.abs(mt.y)>1e-4?Math.sign(mt.y)*k:0,ns=(Qt+Ae)/2,as=(Ut+Ie)/2,pt=ns+ss*(.5-Pe),vt=as+os*(.5-Pe),Bt=pt+(es-t/2)/S,Vt=vt+(is-e/2)/S,qt=1,rs=c*qt,Le=m*qt,j=Math.max(.01,f*1080*qt),yt=Math.max(1,Math.round(Math.sqrt(u*(H/k)))),ls=Math.max(1,Math.ceil(u/yt)),hs=H/yt,cs=k/ls,wt=Math.max(Eo,At),us=Math.min(pt,Bt)-gt-wt-j,ds=Math.max(pt,Bt)+gt+wt+j,ms=Math.min(vt,Vt)-ft-wt-j,gs=Math.max(vt,Vt)+ft+wt+j,et=g=>zo(Math.sin(g*12.9898)*43758.5453),Gt=[];for(let g=0;g<u;g++){let R=g%yt,xt=g/yt|0,it=(et(g*2+1)-.5)*.85,st=(et(g*2+9)-.5)*.85,Q=Qt+(R+.5+it)*hs,U=Ut+(xt+.5+st)*cs,ot=Math.floor(et(g*2.399+1.7)*h)%h,X=Ro(o[ot]),Mt=b>0?1+(et(g*3.137+4.2)-.5)*b:1,St=tt>0?(et(g*1.917+8.3)-.5)*2*tt:0,E=Math.floor((us-Q)/H),C=Math.ceil((ds-Q)/H),Tt=Math.floor((ms-U)/k),$t=Math.ceil((gs-U)/k);for(let Jt=E;Jt<=C;Jt++){let fs=Jt*H;for(let Kt=Tt;Kt<=$t;Kt++){let Qe=Q+fs,Ue=U+Kt*k,te=Math.hypot(Qe-Bt,Ue-Vt),ee=te>=j?1:te<=0?0:te/j,_t=(Le+(rs-Le)*ee)*Mt;if(_t<=.0015)continue;let Be=0;if(N>0){let oe=Do((ee-.5)*2);Be=N*oe*oe*(3-2*oe)}let Ve=1-Be;if(Ve<=.01)continue;let ie=(Qe-pt)*S+t/2,se=(Ue-vt)*S+e/2,qe=X.w*_t*S/2,Ge=X.h*_t*S/2;if(ie+qe<0||ie-qe>t||se+Ge<0||se-Ge>e)continue;let ps=ze>0?ze*9*ee:0;Gt.push({sx:ie,sy:se,scale:_t,alpha:Ve,angle:St,blurPx:ps,imgIdx:ot,baseW:X.w,baseH:X.h})}}}Gt.sort((g,R)=>
2g.scale-R.scale);let Oe=[];for(let g of Gt){let R=o[g.imgIdx],xt=we(R),it=zi(R),st=Pi(R);if(!xt||!it||!st)continue;let Q=g.baseW*g.scale*S,U=g.baseH*g.scale*S,ot=0,X=0,Mt=it,St=st,E=Q,C=U;if(p?[ot,X,Mt,St]=Yo(it,st,g.baseW/g.baseH):(E=Q,C=U),s.save(),g.alpha<1&&(s.globalAlpha=g.alpha),s.translate(g.sx,g.sy),g.angle!==0&&s.rotate(g.angle),v>0){let $t=Math.min(v*g.scale*S,E/2,C/2);s.beginPath(),s.roundRect(-E/2,-C/2,E,C,$t),s.clip()}let Tt=g.blurPx>0?Math.min(g.blurPx,Math.max(E,C)*.3):0;Tt>0&&(s.filter="blur("+Tt+"px)"),s.drawImage(xt,ot,X,Mt,St,-E/2,-C/2,E,C),s.filter="none",s.restore(),Oe.push({sx:g.sx,sy:g.sy,halfW:E/2,halfH:C/2,imgIdx:g.imgIdx})}return Oe}var ye=class{constructor(t,e={}){this.config=e,this.local=e.local===!0,this.settings=e.settings||(typeof scrollSliderPassedData!="undefined"?scrollSliderPassedData:{}),this.container=t,this.stage=t.querySelector(".tile-globe-stage"),this.canvas=this.stage?this.stage.querySelector("canvas"):null,this.ctx=this.canvas?this.canvas.getContext("2d",{alpha:!0}):null,this.laycontent=t.closest(".lay-content"),this.viewport=e.viewport||(this.local?t:t.parentElement||this.laycontent||window),this.images=Zo(this.stage),this.linkAnchors={},this.stage&&Array.prototype.forEach.call(this.stage.querySelectorAll(".scrollslider-canvas-links a[data-tile-index]"),i=>{this.linkAnchors[parseInt(i.getAttribute("data-tile-index"),10)]=i}),this.lastCards=[],this.press={x:0,y:0,time:0,moved:!1,active:!1},this.cursorDirty=!1,this.items=[],this.touchY=null,this.scrollbarHeight=0,this.cameraTarget=this.getStartingPosition(),this.cameraCurrent=this.cameraTarget,this.mouseTarget={x:null,y:null,active:!1},this.mouseCurrent={x:null,y:null},this.totalDepth=xo,this.direction=Ai(this.settings.ss_tile_globe_direction||this.settings.direction||"down"),this.autoScrollEnabled=this.settings.ss_galaxy_auto_scroll==="on"||this.settings.autoMove===!0,this.autoScrollSpeed=parseFloat(this.settings.ss_galaxy_auto_scroll_speed!=null?this.settings.ss_galaxy_auto_scroll_speed:this.settings.speed),(!Number.isFinite(this.autoScrollSpeed)||this.autoScrollSpeed<0)&&(this.autoScrollSpeed=450),this.autoScrollLastTime=null,this.autoScrollResumeAt=0,this.autoScrollRampStart=0,this.autoScrollWasRunning=!1,this.destroyed=!1,this.ready=!1,this.onWheel=this.onWheel.bind(this),this.onTouchStart=this.onTouchStart.bind(this),this.onTouchMove=this.onTouchMove.bind(this),this.onTouchEnd=this.onTouchEnd.bind(this),this.onResize=this.onResize.bind(this),this.onMouseMove=this.onMouseMove.bind(this),this.onMouseLeave=this.onMouseLeave.bind(this),this.onMouseDown=this.onMouseDown.bind(this),this.onClick=this.onClick.bind(this),this.onAuxClick=this.onAuxClick.bind(this),this.local?this.scrollbar=null:(jQuery("html").addClass("tile-globe-active"),this.laycontent&&this.laycontent.classList.add("tile-globe-active"),this.container.classList.add("tile-globe-stage-grid"),Array.prototype.forEach.call(document.querySelectorAll(".tile-globe-scrollbar"),function(i){i.parentNode&&i.parentNode.removeChild(i)}),this.scrollbar=document.createElement("div"),this.scrollbar.className="tile-globe-scrollbar",document.body.appendChild(this.scrollbar)),this.resize(),this.bindEvents(),this.loadImages()}getStartingPosition(){let t=parseFloat(this.settings.ss_galaxy_starting_position!=null?this.settings.ss_galaxy_starting_position:this.settings.startingPosition);return Number.isFinite(t)?t:0}bindEvents(){this.config.interactive!==!1&&(this.viewport.addEventListener("wheel",this.onWheel,{passive:!1}),this.viewport.addEventListener("touchstart",this.onTouchStart,{passive:!1}),this.viewport.addEventListener("touchmove",this.onTouchMove,{passive:!1}),this.viewport.addEventListener("touchend",this.onTouchEnd),this.viewport.addEventListener("touchcancel",this.onTouchEnd),this.viewport.addEventListener("mousedown",this.onMouseDown),this.viewport.addEventListener("click",this.onClick),this.viewport.addEventListener("auxclick",this.onAuxClick)),window.addEventListener("resize",this.onResize),this.config.reactToMouse!==!1&&(!window.utility||!window.utility.isTouchDevice)&&(window.addEventListener("mousemove",this.onMouseMove,{passive:!0}),window.addEventListener("mouseout",this.onMouseLeave))}unbindEvents(){this.config.interactive!==!1&&(this.viewport.removeEventListener("wheel",this.onWheel),this.viewport.removeEventListener("touchstart",this.onTouchStart),this.viewport.removeEventListener("touchmove",this.onTouchMove),this.viewport.removeEventListener("touchend",this.onTouchEnd),this.viewport.removeEventListener("touchcancel",this.onTouchEnd),this.viewport.removeEventListener("mousedown",this.onMouseDown),this.viewport.removeEventListener("click",this.onClick),this.viewport.removeEventListener("auxclick",this.onAuxClick)),window.removeEventListener("resize",this.onResize),window.removeEventListener("mousemove",this.onMouseMove),window.removeEventListener("mouseout",this.onMouseLeave)}loadImages(){if(!this.images.length){this.ready=!0;return}this.imageLoader=new $(this.images,{concurrency:2,initialCount:Math.min(4,this.images.length),onReady:t=>{this.destroyed||(this.items=t,this.ready=t.some(Boolean))}}),this.items=this.imageLoader.slots,this.imageLoader.start()}onWheel(t){t.preventDefault();let e=t.deltaY;t.deltaMode===1?e*=16:t.deltaMode===2&&(e*=window.innerHeight),this.cameraTarget+=e*go,this.interruptAutoScroll()}onTouchStart(t){this.touchY=t.touches[0].clientY,t.touches.length===1?(this.press.active=!0,this.press.x=t.touches[0].clientX,this.press.y=t.touches[0].clientY,this.press.time=this.getTime(),this.press.moved=!1):this.press.active=!1,this.interruptAutoScroll()}onTouchMove(t){if(this.touchY==null)return;t.preventDefault(),this.press.active&&Math.hypot(t.touches[0].clientX-this.press.x,t.touches[0].clientY-this.press.y)>Ci&&(this.press.moved=!0);let e=t.touches[0].clientY;this.cameraTarget+=(this.touchY-e)*fo,this.touchY=e,this.interruptAutoScroll()}onTouchEnd(t){if(this.touchY=null,!this.press.active)return;this.press.active=!1,!this.press.moved&&this.getTime()-this.press.time<wo&&t&&t.changedTouches&&t.changedTouches.length&&this.handleTap(t.changedTouches[0].clientX,t.changedTouches[0].clientY,!1)}onMouseDown(t){t.button===0&&(this.press.active=!0,this.press.x=t.clientX,this.press.y=t.clientY,this.press.moved=!1)}onClick(t){let e=this.press.active&&Math.hypot(t.clientX-this.press.x,t.clientY-this.press.y)>Ci;this.press.active=!1,!e&&(t.target.closest("a, button, header, #menu-region")||this.handleTap(t.clientX,t.clientY,t.metaKey||t.ctrlKey))}onAuxClick(t){t.button===1&&this.handleTap(t.clientX,t.clientY,!0)}
2hitTest(t,e){if(!this.canvas||!this.lastCards.length)return null;let i=this.canvas.getBoundingClientRect();if(!i.width||!i.height)return null;let o=(t-i.left)/i.width*this.width,n=(e-i.top)/i.height*this.height;for(let a=this.lastCards.length-1;a>=0;a--){let r=this.lastCards[a];if(Math.abs(o-r.sx)<=r.halfW&&Math.abs(n-r.sy)<=r.halfH)return r}return null}anchorForCard(t){if(!t)return null;let e=this.items[t.imgIdx];return!e||e.index==null?null:this.linkAnchors[e.index]||null}handleTap(t,e,i){let o=this.anchorForCard(this.hitTest(t,e));if(o){if(i){window.open(o.href,"_blank");return}o.click()}}updateCursor(){if(!this.cursorDirty||!this.canvas)return;this.cursorDirty=!1;let t=this.canvas.getBoundingClientRect(),e=t.left+this.mouseTarget.x/this.width*t.width,i=t.top+this.mouseTarget.y/this.height*t.height,o=!!this.anchorForCard(this.hitTest(e,i));this.canvas.style.cursor=o?"pointer":""}onMouseMove(t){if(!this.canvas||!this.width||!this.height)return;let e=this.canvas.getBoundingClientRect();this.mouseTarget.x=(t.clientX-e.left)/Math.max(1,e.width)*this.width,this.mouseTarget.y=(t.clientY-e.top)/Math.max(1,e.height)*this.height,this.mouseTarget.active=!0,this.cursorDirty=!0}onMouseLeave(t){!t.relatedTarget&&!t.toElement&&(this.mouseTarget.active=!1)}onResize(){clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(()=>this.resize(),120)}resize(){if(!this.canvas||!this.ctx)return;let t=Ao(this.config,this.canvas);this.dpr=t.virtual?1:J(),this.width=Math.max(1,Math.round(t.width*this.dpr)),this.height=Math.max(1,Math.round(t.height*this.dpr)),this.canvas.width!==this.width&&(this.canvas.width=this.width),this.canvas.height!==this.height&&(this.canvas.height=this.height),this.scrollbarHeight=this.scrollbar?this.scrollbar.offsetHeight:0,(this.mouseCurrent.x===null||this.mouseCurrent.y===null)&&(this.mouseCurrent.x=this.width/2,this.mouseCurrent.y=this.height/2),(this.mouseTarget.x===null||this.mouseTarget.y===null)&&(this.mouseTarget.x=this.width/2,this.mouseTarget.y=this.height/2)}getTime(){return window.performance&&window.performance.now?window.performance.now():Date.now()}interruptAutoScroll(){if(!this.autoScrollEnabled)return;let t=this.getTime();this.autoScrollLastTime=t,this.autoScrollResumeAt=t+vo,this.autoScrollRampStart=this.autoScrollResumeAt,this.autoScrollWasRunning=!1}resumeFromHiddenTab(){this.autoScrollLastTime=null,this.autoScrollRampStart=0,this.autoScrollWasRunning=!1}updateAutoScroll(){if(!this.autoScrollEnabled||this.autoScrollSpeed<=0)return;let t=this.getTime();if(this.autoScrollLastTime===null){this.autoScrollLastTime=t,this.autoScrollResumeAt=t,this.autoScrollRampStart=t;return}let e=Math.min(t-this.autoScrollLastTime,100);if(this.autoScrollLastTime=t,t<this.autoScrollResumeAt)return;this.autoScrollWasRunning||(this.autoScrollWasRunning=!0,this.autoScrollRampStart=t);let i=Xo((t-this.autoScrollRampStart)/yo);this.cameraTarget+=this.autoScrollSpeed*i*(e/1e3)}updateScrollbar(){if(!this.scrollbar)return;let t=8,e=Math.max(0,window.innerHeight-this.scrollbarHeight-t*2),i=(this.cameraCurrent%this.totalDepth+this.totalDepth)%this.totalDepth/this.totalDepth;this.scrollbar.style.transform="translateY("+(t+i*e).toFixed(1)+"px)"}updateMouseFocus(){(this.mouseCurrent.x===null||this.mouseCurrent.y===null)&&(this.mouseCurrent.x=this.width/2,this.mouseCurrent.y=this.height/2);let t=this.mouseTarget.active&&Number.isFinite(this.mouseTarget.x)?this.mouseTarget.x:this.width/2,e=this.mouseTarget.active&&Number.isFinite(this.mouseTarget.y)?this.mouseTarget.y:this.height/2;this.mouseCurrent.x+=(t-this.mouseCurrent.x)*Ei,this.mouseCurrent.y+=(e-this.mouseCurrent.y)*Ei}repairDiscardedBitmaps(){if(!this.imageLoader)return;let t=this.getTime();this.lastBitmapRepairAt&&t-this.lastBitmapRepairAt<3e3||(this.lastBitmapRepairAt=t,this.imageLoader.repairDiscarded())}update(){if(this.repairDiscardedBitmaps(),this.updateAutoScroll(),this.cameraCurrent+=(this.cameraTarget-this.cameraCurrent)*po,this.updateScrollbar(),!this.ready||!this.ctx||!this.width||!this.height)return;this.updateMouseFocus();let t=this.ctx;t.clearRect(0,0,this.width,this.height),t.imageSmoothingEnabled=!0,t.imageSmoothingQuality="high";let e=(this.cameraCurrent%this.totalDepth+this.totalDepth)%this.totalDepth/this.totalDepth;this.lastCards=Fo(t,this.width,this.height,e*Lt,this.items,this.mouseCurrent,this.direction),this.updateCursor(
2)}destroy(){this.destroyed=!0,this.imageLoader&&this.imageLoader.destroy(),this.unbindEvents(),clearTimeout(this.resizeTimeout),this.local||(this.container&&this.container.classList.remove("tile-globe-stage-grid"),this.laycontent&&this.laycontent.classList.remove("tile-globe-active"),jQuery("html").removeClass("tile-globe-active")),this.scrollbar&&this.scrollbar.parentNode&&this.scrollbar.parentNode.removeChild(this.scrollbar),this.scrollbar=null,this.ctx=null}},Ii=ye;var xe=s=>1-Math.pow(1-Math.max(0,Math.min(1,s)),4),Wo=s=>{let t=Math.max(0,Math.min(1,s));return 1-(1-t)*(1-t)},No=s=>{let t=Math.max(0,Math.min(1,s));return t*t},Ho=2400,ko=520,jo=230,Qo=4800,Uo=900,Ot=4200,Li=.14,Bo=.055,Oi=.055,Vo=.035,qo=.68,Me=160;function Go(s,t){let e=s&&typeof s.getRenderSize=="function"?s.getRenderSize():null,i=e&&Number(e.width),o=e&&Number(e.height),n=Number.isFinite(i)&&i>0&&Number.isFinite(o)&&o>0,a=t.getBoundingClientRect();return{width:n?i:t.clientWidth||a.width,height:n?o:t.clientHeight||a.height,virtual:n}}function Rt(s){return Math.max(0,Math.min(1,s))}function ht(s,t){let e=parseFloat(s);return Number.isFinite(e)&&e>0?e:t}function $o(s){let t=s&&s.getAttribute("data-lay-scrollslider-bloom-zoom-images");if(!t)return[];try{let e=JSON.parse(t);return Array.isArray(e)?e.filter(i=>i&&i.src):[]}catch(e){return[]}}function Jo(s){let t=s&&s.data?parseFloat(s.data.width):0,e=s&&s.data?parseFloat(s.data.height):0;if(Number.isFinite(t)&&Number.isFinite(e)&&t>0&&e>0)return t/e;let i=s&&s.img?s.img:null,o=i&&(i.naturalWidth||i.width),n=i&&(i.naturalHeight||i.height);return o>0&&n>0?o/n:1}function Ko(s,t,e){let i=Jo(s),o=t/e;return i>=o?{w:t,h:t/i}:{w:e*i,h:e}}var Se=class{constructor(t,e={}){this.config=e,this.local=e.local===!0,this.settings=e.settings||(typeof scrollSliderPassedData!="undefined"?scrollSliderPassedData:{}),this.container=t,this.stage=t.querySelector(".bloom-zoom-stage"),this.canvas=this.stage?this.stage.querySelector("canvas"):null,this.ctx=this.canvas?this.canvas.getContext("2d",{alpha:!0}):null,this.laycontent=t.closest(".lay-content"),this.images=$o(this.stage),this.items=[],this.duration=ht(this.settings.ss_bloom_zoom_duration!=null?this.settings.ss_bloom_zoom_duration:this.settings.duration,Ho),this.imageStartOffset=ht(this.settings.ss_bloom_zoom_offset!=null?this.settings.ss_bloom_zoom_offset:this.settings.imageOffset,ko),this.originRadius=ht(this.settings.ss_bloom_zoom_origin_radius!=null?this.settings.ss_bloom_zoom_origin_radius:this.settings.originRadius,jo),this.mouseOriginEnabled=this.settings.ss_bloom_zoom_mouse_origin==="on"||this.settings.mouseOrigin===!0,this.mouseTargetEnabled=this.settings.ss_bloom_zoom_mouse_target==="on"||this.settings.mouseTarget===!0,this.fadeOutImages=this.settings.ss_bloom_zoom_fade_out_images==="on"||this.settings.fadeOutImages===!0,this.fadeOutAfter=ht(this.settings.ss_bloom_zoom_fade_out_after!=null?this.settings.ss_bloom_zoom_fade_out_after:this.settings.fadeOutAfter,Qo),this.fadeOutDuration=ht(this.settings.ss_bloom_zoom_fade_out_duration!=null?this.settings.ss_bloom_zoom_fade_out_duration:this.settings.fadeOutDuration,Uo),this.fillBackground=e.fillBackground!==!1&&!this.local,this.startTime=this.getTime(),this.destroyed=!1,this.ready=!1,this.width=0,this.height=0,this.dpr=1,this.mouse={active:!1,x:0,y:0,smoothedX:0,smoothedY:0,influence:0,targetSmoothedX:0,targetSmoothedY:0,targetInfluence:0},this.stack={canvas:document.createElement("canvas"),ctx:null,renderedThrough:-1},this.stack.ctx=this.stack.canvas.getContext("2d"),this.targetSnapshots=new Map,this.onResize=this.onResize.bind(this),this.onMouseMove=this.onMouseMove.bind(this),this.local||(jQuery("html").addClass("bloom-zoom-active"),this.laycontent&&this.laycontent.classList.add("bloom-zoom-active"),this.container.classList.add("bloom-zoom-stage-grid")),this.resize(),this.bindEvents(),this.loadImages()}getTime(){return window.performance&&window.performance.now?window.performance.now():Date.now()}bindEvents(){window.addEventListener("resize",this.onResize),(this.mouseOriginEnabled||this.mouseTargetEnabled)&&(!window.utility||!window.utility.isTouchDevice)&&window.addEventListener("mousemove",this.onMouseMove,{passive:!0})}unbindEvents(){window.removeEventListener("resize",this.onResize),window.removeEventListener("mousemove",this.onMouseMove)}loadImages(){if(!this.images.length){this.ready=!0;return}let t=Math.min(this.images.length,Math.ceil(this.duration/this.imageStartOffset)+4);this.imageLoader=new $(this.images,{concurrency:2,initialCount:t,readyCount:Math.min(3,t),loadAll:!1,onReady:e=>{this.destroyed||(this.items=e,this.startTime=this.getTime(),this.ready=e.some(Boolean))}}),this.items=this.imageLoader.slots,this.imageLoader.start()}requestWorkingSet(t,e){if(!this.imageLoader||this.images.length===0)return;let i=[];for(let o=Math.max(0,t);o<=e;o++)i.push(o%this.images.length);this.imageLoader.requestWindow(i)}onResize(){clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(()=>this.resize(),120)}resize(){if(!this.canvas||!this.ctx)return;let t=Go(this.config,this.canvas),e=Math.max(1,t.width),i=Math.max(1,t.height),o=t.virtual?1:J(),n=Math.round(e*o),a=Math.round(i*o);this.width=e,this.height=i,this.dpr=o,this.canvas.width!==n&&(this.canvas.width=n),this.canvas.height!==a&&(this.canvas.height=a),this.ctx.setTransform(this.dpr,0,0,this.dpr,0,0),(this.stack.canvas.width!==n||this.stack.canvas.height!==a)&&(this.stack.canvas.width=n,this.stack.canvas.height=a,this.stack.ctx.setTransform(this.dpr,0,0,this.dpr,0,0),this.stack.renderedThrough=-1,this.targetSnapshots.clear())}onMouseMove(t){if(!this.canvas||!this.width||!this.height)return;let e=this.canvas.getBoundingClientRect(),i=(t.clientX-e.left)/Math.max(1,e.width)*this.width,o=(t.clientY-e.top)/M
2ath.max(1,e.height)*this.height;this.mouse.active||(this.mouse.smoothedX=i,this.mouse.smoothedY=o,this.mouse.targetSmoothedX=i,this.mouse.targetSmoothedY=o),this.mouse.active=!0,this.mouse.x=i,this.mouse.y=o}resumeFromHiddenTab(){this.startTime=this.getTime(),this.stack.ctx.clearRect(0,0,this.width,this.height),this.stack.renderedThrough=-1,this.targetSnapshots.clear()}orbitOriginOffset(t){let i=(t%Ot+Ot)%Ot/Ot,o=Wo(i)*Math.PI*2;return{x:Math.cos(o)*this.originRadius,y:Math.sin(o)*this.originRadius}}mouseOriginState(t,e){let i=this.mouse.active?1:0;return this.mouse.influence+=(i-this.mouse.influence)*Bo,this.mouse.influence<=.001?(this.mouse.influence=0,null):(this.mouse.smoothedX+=(this.mouse.x-this.mouse.smoothedX)*Li,this.mouse.smoothedY+=(this.mouse.y-this.mouse.smoothedY)*Li,{offset:{x:this.mouse.smoothedX-t,y:this.mouse.smoothedY-e},influence:this.mouse.influence})}mouseTargetState(t,e){let i=this.mouse.active?1:0;return this.mouse.targetInfluence+=(i-this.mouse.targetInfluence)*Vo,this.mouse.targetInfluence<=.001?(this.mouse.targetInfluence=0,null):(this.mouse.targetSmoothedX+=(this.mouse.x-this.mouse.targetSmoothedX)*Oi,this.mouse.targetSmoothedY+=(this.mouse.y-this.mouse.targetSmoothedY)*Oi,{offset:{x:(this.mouse.targetSmoothedX-t)*this.mouse.targetInfluence,y:(this.mouse.targetSmoothedY-e)*this.mouse.targetInfluence}})}mixOriginOffset(t,e){return e?{x:t.x+e.offset.x*e.influence,y:t.y+e.offset.y*e.influence}:t}originInfluence(t){let e=Rt(t/qo);return Math.pow(1-xe(e),1.15)}axisLockedTargetOffset(t,e){if(!e)return{x:0,y:0};let i=Math.abs(t.w-this.width)<.5,o=Math.abs(t.h-this.height)<.5;return o&&!i?{x:e.offset.x,y:0}:i&&!o?{x:0,y:e.offset.y}:e.offset}cloneTargetState(t){return t?{offset:{x:t.offset.x,y:t.offset.y}}:null}targetSnapshot(t,e){return this.mouseTargetEnabled?(this.targetSnapshots.has(t)||this.targetSnapshots.set(t,this.cloneTargetState(e)),this.targetSnapshots.get(t)):null}fadeOpacity(t){if(!this.fadeOutImages||t<=this.fadeOutAfter)return 1;let e=Rt((t-this.fadeOutAfter)/this.fadeOutDuration);return 1-No(e)}forgetTargetSnapshotsBefore(t){for(let e of this.targetSnapshots.keys())e<t&&this.targetSnapshots.delete(e)}drawCard(t,e,i,o,n,a,r,l,h=1){if(!e||!e.img)return;let u=Ko(e,this.width,this.height),c=u.w*n,m=u.h*n;if(n<=.001||c<=0||m<=0||h<=.001)return;let f=this.axisLockedTargetOffset(u,l),v=i+f.x+(a.x-f.x)*r-c*.5,p=o+f.y+(a.y-f.y)*r-m*.5;h<.999&&(t.save(),t.globalAlpha=h),t.drawImage(e.img,v,p,c,m),h<.999&&t.restore()}drawFinishedCard(t,e,i,o){let n=this.items[t%this.items.length];this.drawCard(this.stack.ctx,n,e,i,1,{x:0,y:0},0,this.targetSnapshot(t,o))}updateFinishedStack(t,e,i,o){if(t<=this.stack.renderedThrough)return;t-this.stack.renderedThrough>Me&&(this.stack.ctx.clearRect(0,0,this.width,this.height),this.stack.renderedThrough=Math.max(-1,t-Me));let n=this.stack.renderedThrough;for(let a=n+1;a<=t&&this.items[a%this.items.length];a++)this.drawFinishedCard(a,e,i,o),n=a;this.stack.renderedThrough=n,this.forgetTargetSnapshotsBefore(this.stack.renderedThrough-Me)}renderFadeOutImages(t,e,i,o,n,a){let r=Math.max(0,Math.floor((t-this.fadeOutAfter-this.fadeOutDuration)/this.imageStartOffset)+1);this.forgetTargetSnapshotsBefore(r-1);for(let l=r;l<=e;l++){let h=this.items[l%this.items.length],u=t-l*this.imageStartOffset,c=this.fadeOpacity(u);if(c<=.001)continue;let m=Rt(u/this.duration),f=xe(m),v=this.mixOriginOffset(this.orbitOriginOffset(l*this.imageStartOffset),n);this.drawCard(this.ctx,h,i,o,f,v,this.originInfluence(m),this.targetSnapshot(l,a),c)}}repairDiscardedBitmaps(){if(!this.imageLoader)return;let t=this.getTime();this.lastBitmapRepairAt&&t-this.lastBitmapRepairAt<3e3||(this.lastBitmapRepairAt=t,this.imageLoader.repairDiscarded())}update(){this.repairDiscardedBitmaps(),this.render()}render(){if(!this.ready||!this.ctx||!this.width||!this.height||!this.items.length)return;let e=this.getTime()-this.startTime,i=Math.floor(e/this.imageStartOffset),o=Math.floor((e-this.duration)/this.imageStartOffset),n=this.fadeOutImages?Math.max(0,Math.floor((e-this.fadeOutAfter-this.fadeOutDuration)/this.imageStartOffset)):Math.max(0,o);this.requestWorkingSet(n,i+4);let a=this.width*.5,r=this.height*.5,l=this.mouseOriginEnabled&&(!window.utility||!window.utility.isTouchDevice)?this.mouseOriginState(a,r):null,h=this.mouseTargetEnabled&&(!window.utility||!window.utility.isTouchDevice)?this.mouseTargetState(a,r):null;if(this.ctx.clearRect(0,0,this.width,this.height),this.fillBackgroun
2d&&(this.ctx.fillStyle="#fff",this.ctx.fillRect(0,0,this.width,this.height)),this.fadeOutImages){this.renderFadeOutImages(e,i,a,r,l,h);return}this.updateFinishedStack(o,a,r,h),this.ctx.drawImage(this.stack.canvas,0,0,this.width,this.height);let u=Math.max(0,o+1);for(let c=u;c<=i;c++){let m=this.items[c%this.items.length],f=e-c*this.imageStartOffset,v=Rt(f/this.duration),p=xe(v),w=this.mixOriginOffset(this.orbitOriginOffset(c*this.imageStartOffset),l);this.drawCard(this.ctx,m,a,r,p,w,this.originInfluence(v),this.targetSnapshot(c,h))}}destroy(){this.destroyed=!0,this.imageLoader&&this.imageLoader.destroy(),this.unbindEvents(),clearTimeout(this.resizeTimeout),this.local||(this.container&&this.container.classList.remove("bloom-zoom-stage-grid"),this.laycontent&&this.laycontent.classList.remove("bloom-zoom-active"),jQuery("html").removeClass("bloom-zoom-active")),this.ctx=null,this.stack.ctx=null}},Ri=Se;var tn=.15,en=.1,sn=.0625,Xi=750,Zi=.035,Yi=.95,Fi=.1,on=400,nn=6;function Wi(s,t){let e=s&&typeof s.getRenderSize=="function"?s.getRenderSize():null,i=e&&Number(e.width),o=e&&Number(e.height),n=Number.isFinite(i)&&i>0&&Number.isFinite(o)&&o>0,a=t.getBoundingClientRect();return{width:n?i:t.clientWidth||a.width,height:n?o:t.clientHeight||a.height,virtual:n}}var D=(s,t,e)=>Math.max(s,Math.min(t,e)),ct=(s,t,e)=>s+(t-s)*e;function an(s){let t=s&&s.getAttribute("data-lay-scrollslider-field-zoom-images");if(!t)return[];try{let e=JSON.parse(t);return Array.isArray(e)?e.filter(i=>i&&i.src):[]}catch(e){return[]}}function rn(s,t,e){if(s===0)return{x:0,y:0};let i=1;for(;s>=1+4*i*(i+1);)i++;let o=1+4*i*(i-1),n=s-o,a=2*i,r=t*i,l=e*i,h=Math.floor(n/a),u=n%a/a;switch(h){case 0:return{x:-r+2*r*u,y:-l};case 1:return{x:r,y:-l+2*l*u};case 2:return{x:r-2*r*u,y:l};default:return{x:-r,y:l-2*l*u}}}function ln(s){if(s<=1)return 0;let t=1;for(;s>1+4*t*(t+1);)t++;return t}function y(s,t,e){let i=parseFloat(s[t]);return Number.isFinite(i)?i:e}var Te=class{constructor(t,e={}){this.config=e,this.local=e.local===!0,this.settings=e.settings||(typeof scrollSliderPassedData!="undefined"?scrollSliderPassedData:{}),this.container=t,this.stage=t.querySelector(".field-zoom-stage"),this.canvas=this.stage?this.stage.querySelector("canvas"):null,this.linkAnchors={},this.stage&&Array.prototype.forEach.call(this.stage.querySelectorAll(".scrollslider-canvas-links a[data-tile-index]"),o=>{this.linkAnchors[parseInt(o.getAttribute("data-tile-index"),10)]=o}),this.ctx=this.canvas?this.canvas.getContext("2d",{alpha:!0}):null,this.laycontent=t.closest(".lay-content"),this.viewport=e.viewport||(this.local?t:t.parentElement||this.laycontent||window),this.images=an(this.stage),this.items=[],this.tiles=[],this.destroyed=!1,this.ready=!1,this.isTouchDevice=!!(window.utility&&window.utility.isTouchDevice),this.zoomMin=y(this.settings,"ss_zoom_minimum",y(this.settings,"minimumZoom",30))/100,this.zoomMax=y(this.settings,"ss_zoom_maximum",y(this.settings,"maximumZoom",200))/100,this.zoomMax<=this.zoomMin&&(this.zoomMax=this.zoomMin+.1),this.zoomStart=D(this.zoomMin,this.zoomMax,y(this.settings,"ss_zoom_starting",y(this.settings,"startingZoom",100))/100),this.autoZoomEnabled=e.autoZoom===!0,this.autoZoomDuration=Math.max(200,y(this.settings,"autoZoomDuration",8e3)),this.autoZoomDirection=["in-out","in","out"].indexOf(this.settings.autoZoomDirection)!==-1?this.settings.autoZoomDirection:"in-out",this.autoZoomEasing=["sine","linear","cubic"].indexOf(this.settings.autoZoomEasing)!==-1?this.settings.autoZoomEasing:"sine",this.autoZoomEndPause=Math.max(0,y(this.settings,"autoZoomEndPause",200));let i=D(0,1,(this.zoomStart-this.zoomMin)/Math.max(1e-4,this.zoomMax-this.zoomMin));this.autoZoomElapsed=this.autoZoomDirection==="out"?(1-i)*this.autoZoomDuration:this.autoZoomDirection==="in"?i*this.autoZoomDuration:i*this.autoZoomDuration*.5,this.autoZoomStartTime=this.getTime()-this.autoZoomElapsed,this.useMomentum=this.settings.ss_movement_type!=="eased",this.momentumFactor=D(.1,10,y(this.settings,"ss_momentum_velocity",16)/16),this.randomOrder=this.settings.ss_randompos==="on"||this.settings.random===!0,this.mouseParallax=(this.settings.ss_extra_mouse_movement==="on"||this.settings.mouseMovement===!0)&&
2!this.isTouchDevice,this.zoom=this.zoomStart,this.zoomTarget=this.zoomStart,this.pan={x:0,y:0},this.panTarget={x:0,y:0},this.panClamp={x:0,y:0},this.mouse={x:0,y:0},this.mouseClient={x:-1,y:-1,dirty:!1},this.drag={active:!1,lastX:0,lastY:0,lastTime:0,velocityX:0,velocityY:0},this.press={x:0,y:0,time:0,moved:!1},this.momentum={x:0,y:0},this.pinch={active:!1,distance:0},this.breakpoint=this.getBreakpoint(),this.onWheel=this.onWheel.bind(this),this.onMouseDown=this.onMouseDown.bind(this),this.onMouseMove=this.onMouseMove.bind(this),this.onMouseUp=this.onMouseUp.bind(this),this.onAuxClick=this.onAuxClick.bind(this),this.onTouchStart=this.onTouchStart.bind(this),this.onTouchMove=this.onTouchMove.bind(this),this.onTouchEnd=this.onTouchEnd.bind(this),this.onResize=this.onResize.bind(this),this.local||(jQuery("html").addClass("field-zoom-active"),this.laycontent&&this.laycontent.classList.add("field-zoom-active"),this.container.classList.add("field-zoom-stage-grid")),this.buildTiles(),this.resize(),this.bindEvents(),this.loadImages()}getBreakpoint(){if(window.utility&&window.utility.isPhoneSize)return"phone";if(window.utility&&window.utility.isTabletSize)return"tablet";if(this.local){let t=this.getRenderViewport().width,e=Number(this.config.phoneBreakpoint)||600,i=Number(this.config.tabletBreakpoint)||1024;if(t<=e)return"phone";if(t<=i)return"tablet"}return"desktop"}getRenderViewport(){return this.canvas?Wi(this.config,this.canvas):{width:window.innerWidth,height:window.innerHeight,virtual:!1}}getTime(){return window.performance&&window.performance.now?window.performance.now():Date.now()}autoZoomEase(t){let e=D(0,1,t);return this.autoZoomEasing==="linear"?e:this.autoZoomEasing==="cubic"?e*e*(3-2*e):.5-Math.cos(Math.PI*e)*.5}getAutoZoomProgress(t){let e=Math.min(this.autoZoomEndPause,this.autoZoomDuration*.45);if(this.autoZoomDirection==="in"||this.autoZoomDirection==="out"){let a=this.autoZoomDuration+e,r=(t%a+a)%a,l=r>=this.autoZoomDuration?1:this.autoZoomEase(r/this.autoZoomDuration);return this.autoZoomDirection==="out"?1-l:l}let i=this.autoZoomDuration*.5,o=this.autoZoomDuration+e*2,n=(t%o+o)%o;return n<i?this.autoZoomEase(n/i):n<i+e?1:n<i*2+e?1-this.autoZoomEase((n-i-e)/i):0}updateAutoZoom(){this.autoZoomEnabled&&(this.autoZoomElapsed=this.getTime()-this.autoZoomStartTime,this.setExternalZoomProgress(this.getAutoZoomProgress(this.autoZoomElapsed)))}getBreakpointSettings(){if(this.local){let i=this.settings[this.breakpoint]||this.settings,o=this.breakpoint==="phone"?{landMin:50,landMax:70,portMin:30,portMax:50}:{landMin:18,landMax:23,portMin:9,portMax:20};return{landscapeMin:y(i,"landscapeMin",o.landMin),landscapeMax:y(i,"landscapeMax",o.landMax),portraitMin:y(i,"portraitMin",o.portMin),portraitMax:y(i,"portraitMax",o.portMax),widthUnit:i.widthUnit==="px"?"px":"vw",paddingMin:y(i,"paddingMin",3),paddingMax:y(i,"paddingMax",8),paddingUnit:i.paddingUnit==="px"?"px":"vw"}}let t=this.breakpoint==="phone"?"ss_phone_":this.breakpoint==="tablet"?"ss_tablet_":"ss_",e=this.breakpoint==="phone"?{landMin:50,landMax:70,portMin:30,portMax:50}:{landMin:18,landMax:23,portMin:9,portMax:20};return{landscapeMin:y(this.settings,t+"landscape_element_width_minimum",e.landMin),landscapeMax:y(this.settings,t+"landscape_element_width_maximum",e.landMax),portraitMin:y(this.settings,t+"portrait_element_width_minimum",e.portMin),portraitMax:y(this.settings,t+"portrait_element_width_maximum",e.portMax),widthUnit:this.settings[t+"portrait_element_width_unit"]==="%"?"vw":"px",paddingMin:y(this.settings,t+"element_padding_minimum",3),paddingMax:y(this.settings,t+"element_padding_maximum",8),paddingUnit:this.settings[t+"element_padding_unit"]==="%"?"vw":"px"}}toWorldUnits(t,e){return e==="vw"?t/100*this.getRenderViewport().width:t}buildTiles(){let t=this.getBreakpointSettings(),e=this.images.map((i,o)=>o);if(this.randomOrder)for(let i=e.length-1;i>0;i--){let o=Math.floor(Math.random()*(i+1));[e[i],e[o]]=[e[o],e[i]]}this.tiles=e.map((i,o)=>{let n=this.images[i],a=parseFloat(n.ar)>0?parseFloat(n.ar):1,r=a<1,l=r?t.portraitMin:t.landscapeMin,h=r?t.portraitMax:t.landscapeMax;return{imageIndex:i,ringIndex:o,ar:a,widthValue:l+Math.random()*Math.max(0,h-l),widthUnit:t.widthUnit,paddingValue:t.paddingMin+Math.random()*Math.max(0,t.paddingMax-t.paddingMin),paddingUnit:t.paddingUnit,jitterX:-1+Math.random()*2,jitterY:-1+Math.random()*2,parallaxX:0,parallaxY:0}}),this.computeMetrics()}computeMetrics(){if(!this.tiles.length)return;let t=0,e=0;
2this.tiles.forEach(c=>{c.width=this.toWorldUnits(c.widthValue,c.widthUnit),c.height=c.width/c.ar,t+=c.width,e+=this.toWorldUnits(c.paddingValue,c.paddingUnit)});let i=t/this.tiles.length,o=e/this.tiles.length,n=Math.max(1,i+o*2),a=this.getRenderViewport(),r=D(1.5,2,a.width/Math.max(1,a.height)),l=n/r,h=Math.max(o,n*.1);this.tiles.forEach(c=>{let m=rn(c.ringIndex,n,l);c.x=m.x+c.jitterX*h*r,c.y=m.y+c.jitterY*h}),this.stepX=n;let u=ln(this.tiles.length);this.panClamp.x=n*(u+1),this.panClamp.y=l*(u+1)}bindEvents(){this.config.interactive!==!1&&(this.viewport.addEventListener("wheel",this.onWheel,{passive:!1}),this.viewport.addEventListener("mousedown",this.onMouseDown),window.addEventListener("mouseup",this.onMouseUp),this.viewport.addEventListener("auxclick",this.onAuxClick),this.viewport.addEventListener("touchstart",this.onTouchStart,{passive:!1}),this.viewport.addEventListener("touchmove",this.onTouchMove,{passive:!1}),this.viewport.addEventListener("touchend",this.onTouchEnd),this.viewport.addEventListener("touchcancel",this.onTouchEnd)),(this.config.interactive!==!1||this.mouseParallax)&&window.addEventListener("mousemove",this.onMouseMove),window.addEventListener("resize",this.onResize)}unbindEvents(){this.config.interactive!==!1&&(this.viewport.removeEventListener("wheel",this.onWheel),this.viewport.removeEventListener("mousedown",this.onMouseDown),window.removeEventListener("mouseup",this.onMouseUp),this.viewport.removeEventListener("auxclick",this.onAuxClick),this.viewport.removeEventListener("touchstart",this.onTouchStart),this.viewport.removeEventListener("touchmove",this.onTouchMove),this.viewport.removeEventListener("touchend",this.onTouchEnd),this.viewport.removeEventListener("touchcancel",this.onTouchEnd)),window.removeEventListener("mousemove",this.onMouseMove),window.removeEventListener("resize",this.onResize)}loadImages(){if(!this.images.length){this.ready=!0;return}this.imageLoader=new $(this.images,{concurrency:2,initialCount:Math.min(4,this.images.length),onItem:t=>{let e=Number(t.img.naturalWidth),i=Number(t.img.naturalHeight);e>0&&i>0&&(t.data.ar=e/i)},onReady:t=>{if(!this.destroyed){if(this.items=t,this.autoZoomEnabled){let e=D(0,1,(this.zoomStart-this.zoomMin)/Math.max(1e-4,this.zoomMax-this.zoomMin));this.autoZoomElapsed=this.autoZoomDirection==="out"?(1-e)*this.autoZoomDuration:this.autoZoomDirection==="in"?e*this.autoZoomDuration:e*this.autoZoomDuration*.5,this.autoZoomStartTime=this.getTime()-this.autoZoomElapsed,this.zoom=this.zoomStart,this.zoomTarget=this.zoomStart}this.ready=t.some(Boolean)}}}),this.items=this.imageLoader.slots,this.imageLoader.start()}applyZoomDelta(t){this.zoomTarget=D(this.zoomMin,this.zoomMax,this.zoomTarget+t)}clampPanTarget(){this.panTarget.x=D(-this.panClamp.x,this.panClamp.x,this.panTarget.x),this.panTarget.y=D(-this.panClamp.y,this.panClamp.y,this.panTarget.y)}onWheel(t){t.preventDefault();let e=t.deltaY;t.deltaMode===1?e*=16:t.deltaMode===2&&(e*=window.innerHeight),this.applyZoomDelta(-e/Xi)}startDrag(t,e){this.drag.active=!0,this.drag.lastX=t,this.drag.lastY=e,this.drag.lastTime=performance.now(),this.drag.velocityX=0,this.drag.velocityY=0,this.momentum.x=0,this.momentum.y=0,this.press.x=t,this.press.y=e,this.press.time=performance.now(),this.press.moved=!1,this.laycontent&&this.laycontent.classList.add("field-zoom-dragging")}moveDrag(t,e){if(!this.drag.active||this.pinch.active)return;Math.hypot(t-this.press.x,e-this.press.y)>nn&&(this.press.moved=!0);let i=(t-this.drag.lastX)/this.zoom,o=(e-this.drag.lastY)/this.zoom,n=performance.now(),a=Math.max(1,n-this.drag.lastTime);this.drag.velocityX=i/a*16,this.drag.velocityY=o/a*16,this.drag.lastX=t,this.drag.lastY=e,this.drag.lastTime=n,this.panTarget.x+=i,this.panTarget.y+=o,this.clampPanTarget()}endDrag(){this.drag.active&&(this.drag.active=!1,this.laycontent&&this.laycontent.classList.remove("field-zoom-dragging"),this.useMomentum&&performance.now()-this.drag.lastTime<80&&(this.momentum.x=this.drag.velocityX*this.momentumFactor,this.momentum.y=this.drag.velocityY*this.momentumFactor))}wasTap(t){return this.press.moved?!1:!t||performance.now()-this.press.time<on}
2hitTest(t,e){if(!this.canvas||!this.zoom)return null;let i=this.canvas.getBoundingClientRect();if(!i.width||!i.height)return null;let o=(t-i.left-i.width/2)/this.zoom-this.pan.x,n=(e-i.top-i.height/2)/this.zoom-this.pan.y;for(let a=0;a<this.tiles.length;a++){let r=this.tiles[a],l=this.items[r.imageIndex];if(!l||!l.img)continue;let h=r.x+r.parallaxX,u=r.y+r.parallaxY;if(Math.abs(o-h)<=r.width/2&&Math.abs(n-u)<=r.height/2)return r}return null}anchorForTile(t){return t&&this.linkAnchors[t.imageIndex]||null}handleTap(t,e,i){let o=this.anchorForTile(this.hitTest(t,e));if(o){if(i){window.open(o.href,"_blank");return}o.click()}}onMouseDown(t){t.button===0&&(t.target.closest("a, button, header, #menu-region")||this.startDrag(t.clientX,t.clientY))}onMouseMove(t){let e=this.local&&this.canvas?this.canvas.getBoundingClientRect():{left:0,top:0,width:window.innerWidth,height:window.innerHeight};this.mouse.x=((t.clientX-e.left)/Math.max(1,e.width)-.5)*2,this.mouse.y=((t.clientY-e.top)/Math.max(1,e.height)-.5)*2,this.mouseClient.x=t.clientX,this.mouseClient.y=t.clientY,this.mouseClient.dirty=!0,this.moveDrag(t.clientX,t.clientY)}onMouseUp(t){let e=this.drag.active&&this.wasTap(!1);this.endDrag(),e&&this.handleTap(t.clientX,t.clientY,t.metaKey||t.ctrlKey)}onAuxClick(t){t.button===1&&this.handleTap(t.clientX,t.clientY,!0)}touchDistance(t){return Math.hypot(t.touches[0].pageX-t.touches[1].pageX,t.touches[0].pageY-t.touches[1].pageY)}onTouchStart(t){if(t.touches.length>=2){this.pinch.active=!0,this.pinch.distance=this.touchDistance(t),this.endDrag();return}t.target.closest("a, button, header, #menu-region")||this.startDrag(t.touches[0].clientX,t.touches[0].clientY)}onTouchMove(t){if(t.touches.length>=2&&this.pinch.active){t.preventDefault();let e=this.touchDistance(t);this.applyZoomDelta((e-this.pinch.distance)/Xi),this.pinch.distance=e;return}this.drag.active&&(t.preventDefault(),this.moveDrag(t.touches[0].clientX,t.touches[0].clientY))}onTouchEnd(t){if((!t.touches||t.touches.length<2)&&(this.pinch.active=!1),!t.touches||t.touches.length===0){let e=this.drag.active&&this.wasTap(!0);this.endDrag(),e&&t.changedTouches&&t.changedTouches.length&&this.handleTap(t.changedTouches[0].clientX,t.changedTouches[0].clientY,!1)}}onResize(){clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(()=>this.resize(),120)}resize(){if(!this.canvas||!this.ctx)return;let t=Wi(this.config,this.canvas);this.dpr=t.virtual?1:J(),this.width=Math.max(1,Math.round(t.width*this.dpr)),this.height=Math.max(1,Math.round(t.height*this.dpr)),this.canvas.width!==this.width&&(this.canvas.width=this.width),this.canvas.height!==this.height&&(this.canvas.height=this.height);let e=this.getBreakpoint();e!==this.breakpoint?(this.breakpoint=e,this.buildTiles()):this.computeMetrics(),this.clampPanTarget()}resumeFromHiddenTab(){this.drag.lastTime=performance.now(),this.momentum.x=0,this.momentum.y=0,this.autoZoomEnabled&&(this.autoZoomStartTime=this.getTime()-this.autoZoomElapsed)}setExternalZoomProgress(t){let e=D(0,1,Number(t)||0);this.zoomTarget=this.zoomMin+(this.zoomMax-this.zoomMin)*e}updateCursor(){if(!this.mouseClient.dirty||this.drag.active||this.isTouchDevice)return;this.mouseClient.dirty=!1;let t=!!this.anchorForTile(this.hitTest(this.mouseClient.x,this.mouseClient.y));this.canvas&&(this.canvas.style.cursor=t?"pointer":"")}repairDiscardedBitmaps(){if(!this.imageLoader)return;let t=this.getTime();this.lastBitmapRepairAt&&t-this.lastBitmapRepairAt<3e3||(this.lastBitmapRepairAt=t,this.imageLoader.repairDiscarded())}update(){if(!this.ready||!this.ctx||!this.width||!this.height)return;this.repairDiscardedBitmaps(),this.updateAutoZoom(),this.useMomentum&&!this.drag.active&&(Math.abs(this.momentum.x)>Fi||Math.abs(this.momentum.y)>Fi)&&(this.panTarget.x+=this.momentum.x,this.panTarget.y+=this.momentum.y,this.momentum.x*=Yi,this.momentum.y*=Yi,this.clampPanTarget()),this.zoom=ct(this.zoom,this.zoomTarget,tn);let t=this.isTouchDevice?sn:en;this.pan.x=ct(this.pan.x,this.panTarget.x,t),this.pan.y=ct(this.pan.y,this.panTarget.y,t),this.updateCursor();let e=this.ctx;e.clearRect(0,0,this.width,this.height),e.imageSmoothingEnabled=!0,e.imageSmoothingQuality="high";let i=this.zoom*this.dpr,o=this.width/2,n=this.height/2,a=(this.stepX||0)/3;for(let r=this.tiles.length-1;r>=0;r--){let l=this.tiles[r],h=this.items[l.imageIndex];if(!h||!h.img)continue;if(this.mouseParallax){let w=this.mouse.x*.35/this.zoom*a*(l.width/Math.max(1,this.stepX)),b=this.mouse.y*.35/this.zoom*a*(l.width/Math.max(1,this.stepX));l.parallaxX=ct(l.parallaxX,w,Zi),l.parallaxY=ct(l.parallaxY,b,Zi)}let u=l.x+l.parallaxX+this.pan.x,c=l.y+l.parallaxY+this.pan.y,m=l.width*i,f=l.height*i,v=o+u*i,p=n+c*i;v+m/2<0||v-m/2>this.width||p+f/2<0||p-f/2>this.height||e.drawImage(h.img,v-m/2,p-f/2,m,f)}}destroy(){this.destroyed=!0,this.imageLoader&&this.imageLoader.destroy(),this.unbindEvents(),clearTimeout(this.resizeTimeout),this.local||(this.container&&this.container.classList.remove("field-zoom-stage-grid"),this.laycontent&&(this.laycontent.classList.remove("field-zoom-active"),this.laycontent.classList.remove("field-zoom-dragging")),jQuery("html").removeClass("field-zoom-active")),this.ctx=null}},Ni=Te;var hn=!0,_e=null,cn=s=>{if(scrollSliderPassedData.ss_infinite_scroll=="")return s?[s]:[];if(!s||!s.parentNode)return s?[s]:[];let t=s.parentNode;return Array.from(t.children)},un=(s,t,e)=>{let i=`transform ${e}ms cubic-bezier(0.23, 1, 0.32, 1), opacity ${e}ms`;
2cn(s).forEach(n=>{n&&(n.style.transition=i,t?(scrollSliderPassedData.ss_scale_animation==="on"&&(n.style.transform=`scale(${parseFloat(scrollSliderPassedData.ss_scale_to)/100})`),scrollSliderPassedData.ss_opacity_animation==="on"&&n.style.setProperty("opacity",parseFloat(scrollSliderPassedData.ss_opacity_to)/100,"important")):(scrollSliderPassedData.ss_scale_animation==="on"&&(n.style.transform=`scale(${parseFloat(scrollSliderPassedData.ss_scale_from)/100})`),scrollSliderPassedData.ss_opacity_animation==="on"&&n.style.setProperty("opacity",parseFloat(scrollSliderPassedData.ss_opacity_from)/100,"important")))})},dn=s=>{},mn=(s,t)=>{s.forEach(e=>{var n,a;if(!hn||(n=e.target.parentNode)!=null&&n.classList.contains("no-animation"))return;let i=parseFloat(scrollSliderPassedData.ss_animation_speed),o=e.target;scrollSliderPassedData.ss_infinite_scroll=="on"?o=(a=e.target.firstElementChild)==null?void 0:a.firstElementChild:o=e.target,o&&un(o,e.isIntersecting,i)})},gn={threshold:0,rootMargin:"-30px"},ut=null,Hi=()=>{_e=document.querySelectorAll(A),ut=new IntersectionObserver(mn,gn),_e.forEach(s=>{ut.observe(s)})},Xt=()=>{ut&&(_e.forEach(s=>{var e;let t=(e=s.firstElementChild)==null?void 0:e.firstElementChild;dn(t),ut.unobserve(s)}),ut=null)};var ji=!0;scrollSliderPassedData.ss_disable_animations_touch==="on"&&window.utility.isTouchDevice&&(ji=!1);var K=null,_=new Set,z={width:window.innerWidth,height:window.innerHeight},Z={x:1e-6,y:1e-6},d=null;function ki(){let s=typeof scrollSliderPassedData!="undefined"&&scrollSliderPassedData.ss_momentum_velocity!=null?scrollSliderPassedData.ss_momentum_velocity:"16",t=parseFloat(s);return Number.isFinite(t)&&t>0?t:16}window.addEventListener("resize",()=>{z.width=window.innerWidth,z.height=window.innerHeight});function Qi(){for(let s of _)if(s.galaxyManager||s.tileGlobeManager||s.bloomZoomManager||s.fieldZoomManager)return!0;return!1}function Ee(){return document.hidden&&Qi()}function Y(){!K&&_.size>0&&!Ee()&&(K=requestAnimationFrame(fn))}function Ui(){K&&(cancelAnimationFrame(K),K=null)}document.addEventListener("visibilitychange",()=>{if(Ee()){Ui();return}_.forEach(s=>{s.galaxyManager&&s.galaxyManager.resumeFromHiddenTab(),s.tileGlobeManager&&s.tileGlobeManager.resumeFromHiddenTab(),s.bloomZoomManager&&s.bloomZoomManager.resumeFromHiddenTab(),s.fieldZoomManager&&s.fieldZoomManager.resumeFromHiddenTab()}),Y()});function fn(){if(K=null,Ee())return;let s=Qi(),t=!s||_i(performance.now()),e=t&&s?performance.now():0;_.forEach(i=>{i.render(t)}),t&&s&&bi(performance.now()-e),Y()}var mi=()=>Z,be=class{constructor(t){if(this.container=t,this.viewport=t.parentElement,this.containerChild=t.firstElementChild,scrollSliderPassedData.ss_galaxy_zoom==="on"){this.galaxyManager=new Mi(this.container),_.add(this),Y();return}if(scrollSliderPassedData.ss_tile_globe==="on"){this.tileGlobeManager=new Ii(this.container),_.add(this),Y();return}if(scrollSliderPassedData.ss_bloom_zoom==="on"){this.bloomZoomManager=new Ri(this.container),_.add(this),Y();return}if(scrollSliderPassedData.ss_field_zoom==="on"){this.fieldZoomManager=new Ni(this.container),_.add(this),Y();return}this.scroll={target:{x:0,y:0},current:{x:0,y:0},last:{x:0,y:0},ease:.1},this.mouse={x:{t:0,c:0},y:{t:0,c:0},press:{t:0}},this.drag={startX:0,startY:0,scrollX:0,scrollY:0,startTime:0,hasMoved:!1},this.momentum={velocityX:0,velocityY:0,lastTime:0,lastX:0,lastY:0,decay:.8,dragDecay:.95,minVelocity:.1,maxVelocity:100,isFromDrag:!1},this.isDragging=!1,this.isZoomingOut=!1,this.containerWidth=this.container.offsetWidth,this.containerHeight=this.container.offsetHeight,this.viewportWidth=this.viewport.offsetWidth,this.viewportHeight=this.viewport.offsetHeight,scrollSliderPassedData.ss_infinite_scroll==="on"&&(this.infiniteScrollManager=new gi(this.container)),scrollSliderPassedData.ss_zoom_scroll==="on"&&(d=new fi(this.container,{onZoomChange:e=>{},onZoomingOut:()=>{d.isZoomingOut==!1&&d.startZoomOutToPoint(this.scroll.current.x,this.scroll.current.y),this.isZoomingOut=!0},onZoomingIn:()=>{if(d){let e,i;d.isPinching()?(e=d.touch.centerX,i=d.touch.centerY):(e=this.mouse.x.t*z.width,i=this.mouse.y.t*z.height),d.startZoomInToPoint(e,i,this.scroll.target.x,this.scroll.target.y)}this.isZoomingOut=!1}})),this.bindEvents(),this.positionViewPortAtStart(),setTimeout(()=>{this.updateBoundaries(),window.laytheme.emit("scrollslider-initialized")},100),ji&&(scrollSliderPassedData.ss_alternative_animations=="style2"||scrollSliderPassedData.ss_alternative_animations=="style3")&&hi(this.container),_.add(this),Y(),this.boundHandleResize=this.handleResize.bind(this),window.addEventListener("resize",this.boundHandleResize)}handleResize(){clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(()=>{this.scroll.target.x=0,this.scroll.target.y=0,this.scroll.current.x=0,this.scroll.current.y=0,this.scroll.last.x=0,this.scroll.last.y=0,scrollSliderPassedData.ss_movement_type==="momentum"&&(this.momentum.velocityX=0,this.momentum.velocityY=0,this.momentum.lastTime=0,this.momentum.lastX=0,this.momentum.lastY=0),this.containerWidth=this.container.offsetWidth,this.containerHeight=this.container.offsetHeight,this.viewportWidth=this.viewport.offsetWidth,this.viewportHe
2ight=this.viewport.offsetHeight,this.updateBoundaries(),this.infiniteScrollManager&&this.infiniteScrollManager.isActive&&this.infiniteScrollManager.handleResize()},100)}updateBoundaries(){if(d){let t=d.getEffectiveChildSize(),e=t.width,i=t.height,o=d.zoom.current;o<d.zoom.min&&(o=d.zoom.min),o>d.zoom.max&&(o=d.zoom.max);let n=d.getMappedZoomLevel(),a=e*.3,r=i*.3,l=-(e-this.viewportWidth);l-=this.viewportWidth/2;let h=0;h+=this.viewportWidth/2;let u=-(i-this.viewportHeight);u-=this.viewportHeight/2;let c=0;c+=this.viewportHeight/2;let m=-e+a,f=Math.max(0,this.viewportWidth-a),v=-i+r,p=Math.max(0,this.viewportHeight-r);this.minX=T(n,0,.5,m,l),this.maxX=T(n,0,.5,f,h),this.minY=T(n,0,.5,v,u),this.maxY=T(n,0,.5,p,c)}else this.maxX=0,this.minX=-(this.containerWidth-this.viewportWidth),this.maxY=0,this.minY=-(this.containerHeight-this.viewportHeight)}bindEvents(){this.onMouseDownHandler=t=>this.onMouseDown(t),this.onMouseMoveHandler=t=>this.onMouseMove(t),this.onMouseUpHandler=()=>this.onMouseUp(),this.onTouchStartHandler=t=>this.onTouchStart(t),this.onTouchMoveHandler=t=>this.onTouchMove(t),this.onTouchEndHandler=t=>this.onTouchEnd(t),this.onWheelHandler=t=>this.onWheel(t),this.viewport.addEventListener("mousedown",this.onMouseDownHandler),this.viewport.addEventListener("mousemove",this.onMouseMoveHandler),this.viewport.addEventListener("mouseup",this.onMouseUpHandler),this.viewport.addEventListener("mouseleave",this.onMouseUpHandler),this.viewport.addEventListener("touchstart",this.onTouchStartHandler,{passive:!1}),this.viewport.addEventListener("touchmove",this.onTouchMoveHandler,{passive:!1}),this.viewport.addEventListener("touchend",this.onTouchEndHandler,{passive:!1}),this.viewport.addEventListener("touchcancel",this.onTouchEndHandler,{passive:!1}),this.viewport.addEventListener("wheel",this.onWheelHandler,{passive:!1})}onWheel(t){if(scrollSliderPassedData.ss_zoom_scroll==="on")return;if(navigator.platform.toUpperCase().indexOf("WIN")>=0){t.preventDefault();return}t.preventDefault();let i=.2;scrollSliderPassedData.ss_movement_type==="momentum"?(this.momentum.velocityX-=t.deltaX*i,this.momentum.velocityY-=t.deltaY*i,window.utility.isTouchDevice||(this.momentum.velocityX=Math.max(-this.momentum.maxVelocity,Math.min(this.momentum.maxVelocity,this.momentum.velocityX)),this.momentum.velocityY=Math.max(-this.momentum.maxVelocity,Math.min(this.momentum.maxVelocity,this.momentum.velocityY))),this.momentum.isFromDrag=!1):(this.scroll.target.x-=t.deltaX*i,this.scroll.target.y-=t.deltaY*i,this.constrainTarget())}onMouseDown(t){t.preventDefault(),this.isDragging=!0,document.documentElement.classList.add("dragging"),this.mouse.press.t=1,this.drag.startX=t.clientX,this.drag.startY=t.clientY,scrollSliderPassedData.ss_movement_type==="momentum"&&(this.scroll.target.x=this.scroll.current.x,this.scroll.target.y=this.scroll.current.y),this.drag.scrollX=this.scroll.target.x,this.drag.scrollY=this.scroll.target.y,scrollSliderPassedData.ss_movement_type==="momentum"&&(this.momentum.velocityX*=.1,this.momentum.velocityY*=.1,this.momentum.lastTime=Date.now(),this.momentum.lastX=this.scroll.target.x,this.momentum.lastY=this.scroll.target.y),d&&d.stopZoomToPoint()}onMouseUp(){this.isDragging=!1,document.documentElement.classList.remove("dragging"),this.mouse.press.t=0}onMouseMove(t){if(!(d&&Math.abs(d.zoom.target-d.zoom.current)>.001)&&(this.mouse.x.t=t.clientX/z.width,this.mouse.y.t=t.clientY/z.height,this.isDragging)){let e=t.clientX-this.drag.startX,i=t.clientY-this.drag.startY;if(this.scroll.target.x=this.drag.scrollX+e,this.scroll.target.y=this.drag.scrollY+i,this.constrainTarget(),scrollSliderPassedData.ss_movement_type==="momentum"){let o=Date.now();if(this.momentum.lastTime>0){let n=o-this.momentum.lastTime;if(n>0){let a=this.scroll.target.x-this.momentum.lastX,r=this.scroll.target.y-this.momentum.lastY,l=ki();this.momentum.velocityX=a/n*l,this.momentum.velocityY=r/n*l,this.momentum.velocityX=Math.max(-this.momentum.maxVelocity,Math.min(this.momentum.maxVelocity,this.momentum.velocityX)),this.momentum.velocityY=Math.max(-this.momentum.maxVelocity,Math.min(this.momentum.maxVelocity,this.momentum.velocityY)),this.momentum.isFromDrag=!0}}this.momentum.lastTime=o,this.momentum.lastX=this.scroll.target.x,this.momentum.lastY=this.scroll.target.y}}}onTouchStart(t){if(scrollSliderPassedData.ss_zoom_scroll==="on"&&t.touches.length===2){t.preventDefault();return}if(scrollSliderPassedData.ss_zoom_scroll==="on"&&d&&!d.shouldAllowDragging())return;let e=t.touches[0];this.mouse.x.t=e.clientX/z.width,this.mouse.y.t=e.clientY/z.height,this.drag.startX=e.clientX,this.drag.startY=e.clientY,this.drag.startTime=Date.now(),this.drag.hasMoved=!1,scrollSliderPassedData.ss_movement_type==="momentum"&&(this.scroll.target.x=this.scroll.current.x,this.scroll.target.y=this.scroll.current.y),this.drag.scrollX=this.scroll.target.x,this.drag.scrollY=this.scroll.target.y,scrollSliderPassedData.ss_movement_type==="momentum"&&(this.momentum.velocityX*=.1,this.momentum.velocityY*=.1,this.momentum.lastTime=Date.now(),this.momentum.lastX=this.scroll.target.x,this.momentum.lastY=this.scroll.target.y)}onTouchMove(t){if(scrollSliderPassedData.ss_zoom_scroll==="on"&&t.touches.length===2){t.preventDefault();return}if(scrollSliderPassedData.ss_zoom_scroll==="on"&&d&&!d.shouldAllowDragging())return;let e=t.touches[0],i=e.clientX-this.drag.startX,o=e.clientY-this.drag.startY;if(Math.sqrt(i*i+o*o)>10&&!this.drag.hasMoved&&(this.drag.hasMoved=!0,this.isDragging=!0,document.documentElement.classList.add("dragging"),this.mouse.press.t=1),this.drag.hasMoved){if(this.mouse.x.t=e.clientX/z.width,this.mouse.y.t=e.clientY/z.height,this.scroll.target.x=this.drag.scrollX+i,this.scroll.target.y=this.drag.scrollY+o,this.constrainTarget(),scrollSliderPassedData.ss_movement_type==="momentum"){let r=Date.now();if(this.momentum.lastTime>0){let l=r-this.momentum.lastTime;if(l>0){let h=this.scroll.target.x-this.momentum.lastX,u=this.scroll.target.y-this.momentum.lastY,c=ki();this.momentum.velocityX=h/l*c,this.momentum.velocityY=u/l*c,this.momentum.velocityX=Math.max(-this.momentum.maxVelocity,Math.min(this.momentum.maxVelocity,this.momentum.velocityX)),this.momentum.velocityY=Math.max(-this.momentum.maxVelocity,Math.min(this.momentum.maxVelocity,this.momentum.velocityY)),this.momentum.isFromDrag=!0}}this.momentum.lastTime=r,this.momentum.lastX=this.scroll.target.x,this.momentum.lastY=this.scroll.target.y}t.preventDefault()}}onTouchEnd(t){if(scrollSliderPassedData.ss_zoom_scroll==="on"&&t.touches.length===2){t.preventDefault();return}scrollSliderPassedData.ss_zoom_scroll==="on"&&d&&!d.shouldAllowDragging()||(this.drag.hasMoved&&t.preventDefault(),this.isDragging=!1,this.drag.hasMoved=!1,document.documentElement.classList.remove("dragging"),this.mouse.press.t=0)}positionViewPortAtStartAlt(){let t,e,i=d.getEffectiveChildSize(),o=i.width,n=i.height,a=i.offsetX,r=i.offsetY;
2t=-(o/2-this.viewportWidth/2)+a,e=-(n/2-this.viewportHeight/2)+r;let l=(1-d.getMappedZoomLevel())/10;this.scroll.target.x+=(t-this.scroll.target.x)*l,this.scroll.target.y+=(e-this.scroll.target.y)*l}constrainTarget(){scrollSliderPassedData.ss_infinite_scroll!=="on"&&(this.scroll.target.x>this.maxX&&(this.scroll.target.x=this.maxX-1),this.scroll.target.x<this.minX&&(this.scroll.target.x=this.minX+1),this.scroll.target.y>this.maxY&&(this.scroll.target.y=this.maxY-1),this.scroll.target.y<this.minY&&(this.scroll.target.y=this.minY+1))}scrollToElement(t,e={}){if(!t||!this.container.contains(t))return!1;this.updateBoundaries();let i=t.getBoundingClientRect(),o=this.viewport.getBoundingClientRect(),n=o.left+o.width/2-(i.left+i.width/2),a=o.top+o.height/2-(i.top+i.height/2);return this.scroll.target.x+=n,this.scroll.target.y+=a,this.constrainTarget(),scrollSliderPassedData.ss_movement_type==="momentum"&&(this.momentum.velocityX=0,this.momentum.velocityY=0,this.momentum.lastTime=0,this.momentum.lastX=this.scroll.target.x,this.momentum.lastY=this.scroll.target.y),e.immediate===!0&&(this.scroll.current.x=this.scroll.target.x,this.scroll.current.y=this.scroll.target.y,this.scroll.last.x=this.scroll.current.x,this.scroll.last.y=this.scroll.current.y),!0}positionViewPortAtStart(){switch(scrollSliderPassedData.ss_starting_position){case"center":if(d){let t=d.getEffectiveChildSize(),e=t.width,i=t.height;this.scroll.target.x=this.viewportWidth/2-e/2,this.scroll.target.y=this.viewportHeight/2-i/2}else this.scroll.target.x=-(this.containerWidth/2-this.viewportWidth/2),this.scroll.target.y=-(this.containerHeight/2-this.viewportHeight/2);break;case"top-left":break;case"top-center":if(d){let t=d.getEffectiveChildSize(),e=t.width,i=t.height;this.scroll.target.x=this.viewportWidth/2-e/2,this.scroll.target.y=0}else{let t=this.container.getBoundingClientRect();this.scroll.target.x=this.viewportWidth/2-t.width/2,this.scroll.target.y=0}break}this.scroll.current.x=this.scroll.target.x,this.scroll.current.y=this.scroll.target.y,this.scroll.last.x=this.scroll.current.x,this.scroll.last.y=this.scroll.current.y}render(t=!0){if(this.galaxyManager){t&&this.galaxyManager.update();return}if(this.tileGlobeManager){t&&this.tileGlobeManager.update();return}if(this.bloomZoomManager){t&&this.bloomZoomManager.update();return}if(this.fieldZoomManager){t&&this.fieldZoomManager.update();return}let e=!1;if(d&&(d.update(),!this.isDragging||d.isPinching()||d.isInZoomSession())){let n=d.isZoomingIn,a=d.isZoomingOut,r=!1;n?r=d.getZoomToPointCoordinatesForZoomingIn():a&&(r=d.getZoomToPointCoordinatesForZoomingOut()),r!=!1&&isFinite(r.x)&&isFinite(r.y)&&(this.scroll.current.x=r.x,this.scroll.current.y=r.y,this.scroll.target.x=r.x,this.scroll.target.y=r.y,e=!0)}if(!e)if(scrollSliderPassedData.ss_movement_type==="momentum"&&!this.isDragging){this.scroll.current.x+=this.momentum.velocityX,this.scroll.current.y+=this.momentum.velocityY;let n=this.momentum.isFromDrag?this.momentum.dragDecay:this.momentum.decay;this.momentum.velocityX*=n,this.momentum.velocityY*=n,Math.abs(this.momentum.velocityX)<this.momentum.minVelocity&&(this.momentum.velocityX=0),Math.abs(this.momentum.velocityY)<this.momentum.minVelocity&&(this.momentum.velocityY=0),(!this.infiniteScrollManager||!this.infiniteScrollManager.isActive)&&(this.scroll.current.x>this.maxX&&(this.scroll.current.x=this.maxX,this.momentum.velocityX=0),this.scroll.current.x<this.minX&&(this.scroll.current.x=this.minX,this.momentum.velocityX=0),this.scroll.current.y>this.maxY&&(this.scroll.current.y=this.maxY,this.momentum.velocityY=0),this.scroll.current.y<this.minY&&(this.scroll.current.y=this.minY,this.momentum.velocityY=0))}else(!d||!d.isZooming())&&(this.scroll.current.x+=(this.scroll.target.x-this.scroll.current.x)*this.scroll.ease,this.scroll.current.y+=(this.scroll.target.y-this.scroll.current.y)*this.scroll.ease);let i=this.scroll.current.x-this.scroll.last.x,o=this.scroll.current.y-this.scroll.last.y;if((Math.abs(i)>.001||Math.abs(o)>.001)&&window.laytheme.emit("scrollslider-sliding"),scrollSliderPassedData.ss_movement_type==="momentum"?(Z.x=Z.x*(1-.3)+i*.3,Z.y=Z.y*(1-.3)+o*.3):(Z.x=i,Z.y=o),ui(),this.mouse.x.c+=(this.mouse.x.t-this.mouse.x.c)*.1,this.mouse.y.c+=(this.mouse.y.t-this.mouse.y.c)*.1,this.infiniteScrollManager&&this.infiniteScrollManager.isActive){if(this.infiniteScrollManager.updateScrollPosition(this.scroll.current.x,this.scroll.current.y),scrollSliderPassedData.ss_extra_mouse_movement=="on"){let n=lt(),a=n.x,r=n.y,l=a,h=r,u=`translate3d(${l}px, ${h}px, 0)`;if(d){let m=d.getZoomLevel();u=`translate3d(${l}px, ${h}px, 0) scale(${m})`}let c=d?`${l}-${h}-${d.getZoomLevel()}`:`${l}-${h}`;(!this.cachedTransform||this.cachedTransform.key!==c)&&(this.cachedTransform={x:l,y:h,key:c},this.container.style.transform=u)}}else{let n=this.scroll.current.x,a=this.scroll.current.y;if(scrollSliderPassedData.ss_extra_mouse_movement=="on"){let h=lt(),u=h.x,c=h.y;
2u=u*-1,c=c*-1,this.containerChild.style.transform=`translate3d(${u}px, ${c}px, 0)`}let r=`translate3d(${n}px, ${a}px, 0)`;if(d){let h=d.getZoomLevel();r=`translate3d(${n}px, ${a}px, 0) scale(${h})`}let l=d?`${n}-${a}-${d.getZoomLevel()}`:`${n}-${a}`;(!this.cachedTransform||this.cachedTransform.key!==l)&&(this.cachedTransform={x:n,y:a,key:l},this.container.style.transform=r)}(scrollSliderPassedData.ss_alternative_animations=="style2"||scrollSliderPassedData.ss_alternative_animations=="style3")&&ci(this.container),this.scroll.last.x=this.scroll.current.x,this.scroll.last.y=this.scroll.current.y,this.updateBoundaries()}destroy(){if(_.delete(this),_.size===0&&Ui(),window.removeEventListener("resize",this.boundHandleResize),this.galaxyManager){this.galaxyManager.destroy(),this.galaxyManager=null;return}if(this.tileGlobeManager){this.tileGlobeManager.destroy(),this.tileGlobeManager=null;return}if(this.bloomZoomManager){this.bloomZoomManager.destroy(),this.bloomZoomManager=null;return}if(this.fieldZoomManager){this.fieldZoomManager.destroy(),this.fieldZoomManager=null;return}this.viewport.removeEventListener("mousedown",this.onMouseDownHandler),this.viewport.removeEventListener("mousemove",this.onMouseMoveHandler),this.viewport.removeEventListener("mouseup",this.onMouseUpHandler),this.viewport.removeEventListener("mouseleave",this.onMouseUpHandler),this.viewport.removeEventListener("touchstart",this.onTouchStartHandler),this.viewport.removeEventListener("touchmove",this.onTouchMoveHandler),this.viewport.removeEventListener("touchend",this.onTouchEndHandler),this.viewport.removeEventListener("touchcancel",this.onTouchEndHandler),this.viewport.removeEventListener("wheel",this.onWheelHandler),this.resizeTimeout&&clearTimeout(this.resizeTimeout),this.infiniteScrollManager&&this.infiniteScrollManager.destroy(),Xt(),d&&d.destroy()}},rt=()=>d,Bi=be;var Vi=30,W,Yt=!1,F=null,qi=function(){Yt||(W=new Particle(0,0),pn(),$i(),Yt=!0)},Zt=1,Gi=function(s){F||(F=requestAnimationFrame(()=>{let t=rt();if(t&&t.isZooming()){F=null;return}var e=T(s.clientX,0,window.innerWidth,-Zt,Zt),i=T(s.clientY,0,window.innerHeight,-Zt,Zt);W.updateDestination(e,i),F=null}))},lt=function(){return W?{x:W.x,y:W.y}:{x:0,y:0}},$i=function(){W&&W.update(),requestAnimationFrame($i)},pn=function(){window.utility.isTouchDevice||window.addEventListener("mousemove",Gi,{passive:!0})},Ji=function(){F&&(cancelAnimationFrame(F),F=null),Yt&&(window.removeEventListener("mousemove",Gi),Yt=!1)};(function(){function s(t,e){this.x=t,this.y=e,this.virtualX=t,this.virtualY=e,this.destX=t,this.destY=e,this.xvelocity=0,this.yvelocity=0}s.prototype.update=function(){this.xvelocity=this.destX-this.virtualX,this.yvelocity=this.destY-this.virtualY,Math.abs(this.xvelocity)>.001&&(this.xvelocity*=.05),Math.abs(this.yvelocity)>.001&&(this.yvelocity*=.05),this.virtualX+=this.xvelocity,this.virtualY+=this.yvelocity,this.x=Math.min(1,Math.max(-1,this.virtualX))*Vi,this.y=Math.min(1,Math.max(-1,this.virtualY))*Vi},s.prototype.updateDestination=function(t,e){this.destX=t,this.destY=e},window.Particle=s})();var vn=!1;$grids=void 0;var Ft=[],dt=!1,L=null,De=!1;window.laytheme.on("newpageshown",function(s,t,e,i){let o=s&&s.type?s.type:null,n=s&&s.id!=null?parseInt(s.id,10):null;if(i&&i.isProjectOverlay===!0){if(dt)return;if(jQuery("html").hasClass("scrollslider-active")){dt=!0;let r=document.body.getAttribute("data-type")||null,l=document.body.getAttribute("data-id"),h=l!=null?parseInt(l,10):null;L={type:r,id:h}}else dt=!1,L=null;return}if(dt&&L){let r=L.type!=null&&o===L.type,l=L.id!=null&&n===L.id;r&&l&&(De=!0),dt=!1}});window.laytheme.on("project_overlay_before_animate_in",function(){(jQuery("body>.lay-content").hasClass("scrollslider-active")||jQuery("body>.lay-content").hasClass("infinite-scrollslider-active"))&&(jQuery("html").hasClass("scrollslider-active")||jQuery("html").addClass("scrollslider-active"))});var yn=function(){window.laytheme.on("content_ready",function(s,t,e){let o=window.utility_controller.isProjectsOverlayEnabled()&&window.projects_overlays.isOverlayDisplayBlock(),n=e&&e.isProjectOverlay===!0;if(n||o&&window.layData&&window.layData.direct_load_underlay&&window.projects_overlays.shouldCloseOverlay()==!1&&xn(s)||o&&window.projects_overlays.shouldOpenOverlay()==!0&&window.projects_overlays.shouldCloseOverlay()==!1)return;if(De){De=!1,L=null;return}let a=!n&&(jQuery("body>.lay-content").hasClass("scrollslider-active")||jQuery("body>.lay-content").hasClass("infinite-scrollslider-active"));if(o&&a){jQuery("html").hasClass("scrollslider-active")||jQuery("html").addClass("scrollslider-active");return}if(o&&window.projects_overlays.shouldCloseOverlay()==!0&&window.projects_overlays.shouldOpenOverlay()==!1){if(!B({ignoreProjectOverlay:!0})){O();return}wn(s),window.laytheme.once("projectoverlayclosed",function(){Ki(s)});return}if(!B()){O();return}Ki(s)})};yn();window.laytheme.on("content_ready",function(){setTimeout(function(){jQuery(".lay-scrollslider-init-hide").removeClass("lay-scrollslider-init-hide")},2500)});var wn=function(s){$grids=void 0;var t=Et(s),e=t.closest(".lay-content");!e.hasClass("scrollslider-active")&&!e.hasClass("infinite-scrollslider-active")&&e.addClass("scrollslider-project-overlay-hide")},xn=function(s){if(scrollSliderPassedData.ss_galaxy_zoom!=="on")return!1;var t=window.layData&&window.layData.direct_load_underlay;if(!t||t.id==null)return!1;var e=jQuery("body > .lay-content");
2if(e.hasClass("scrollslider-active")||e.hasClass("infinite-scrollslider-active"))return!0;if(!B({ignoreProjectOverlay:!0,id:t.id,type:t.type}))return!1;$grids=void 0;var i=Et(s).filter(function(){return jQuery(this).closest("#lay-project-overlay").length===0});return i.length===0?!1:(O(),Wt(i),!0)},Ki=function(s){$grids=void 0;var t=Et(s),e=t.closest(".lay-content");!e.hasClass("scrollslider-active")&&!e.hasClass("infinite-scrollslider-active")?(O(),Wt(t)):(e.hasClass("scrollslider-active")||e.hasClass("infinite-scrollslider-active"))&&jQuery("html").addClass("scrollslider-active")},Wt=function(s){if(scrollSliderPassedData.ss_disable_for_phone=="on"&&window.utility.isPhoneSize){jQuery("html").removeClass("scrollslider-active"),jQuery(".lay-scrollslider-init-hide").removeClass("lay-scrollslider-init-hide");return}if(s==null||s==null||s==!1){jQuery("html").removeClass("scrollslider-active"),jQuery(".lay-scrollslider-init-hide").removeClass("lay-scrollslider-init-hide");return}if(!jQuery("html").hasClass("scrollslider-active")){var t=!0;scrollSliderPassedData.ss_disable_animations_touch==="on"&&window.utility.isTouchDevice&&(t=!1);var e=scrollSliderPassedData.ss_tile_globe==="on",i=scrollSliderPassedData.ss_bloom_zoom==="on",o=scrollSliderPassedData.ss_field_zoom==="on",n=e||i||o;jQuery("html").addClass("scrollslider-active"),n||bt(s,!0),!n&&scrollSliderPassedData.ss_extra_mouse_movement=="on"&&qi();var a=function(r){r.find(".grid-inner>.col, #custom-phone-grid .grid-inner>.col").each(function(){var l=this;(l.style.transitionDelay||l.style.transitionDelay==="")&&(l.style.transitionDelay="");var h=l.getAttribute("style");if(h&&h.includes("transition-delay")){var u=h.replace(/transition-delay\s*:\s*[^;]+;?/gi,"").trim();u.endsWith(";")&&(u=u.slice(0,-1)),u?l.setAttribute("style",u):l.removeAttribute("style")}})};s.each(function(){var r=jQuery(this),l=s.css("background-color");jQuery("html").css("background-color",l),scrollSliderPassedData.ss_infinite_scroll==="on"?r.closest(".lay-content").addClass("infinite-scrollslider-active"):r.closest(".lay-content").addClass("scrollslider-active");let h=new Bi(this);Ft.push(h),setTimeout(function(){var u=r.closest(".lay-content");u.removeClass("scrollslider-project-overlay-hide"),u.removeClass("lay-scrollslider-init-hide"),u.addClass("animate-scrollslider"),u.one("animationend",function(){u.removeClass("animate-scrollslider")}),u.addClass("scrollslider-show"),window.laytheme.emit("scrollslider-ready",u,r)},100)}),a(s),setTimeout(function(){a(s)},50),setTimeout(function(){a(s)},200),scrollSliderPassedData.ss_alternative_animations=="style1"&&t&&scrollSliderPassedData.ss_galaxy_zoom!=="on"&&!n&&Hi(),vn&&setTimeout(()=>{jQuery(".lay-content.scrollslider-active").addClass("debug")},1e3)}},O=function(){jQuery("html").removeClass("scrollslider-active"),jQuery("html").css("background-color",""),jQuery(".lay-content.scrollslider-active #grid").attr("style",""),jQuery(".lay-content.scrollslider-active #grid .grid-inner").attr("style",""),jQuery(".lay-content.scrollslider-active #grid .col").attr("style",""),jQuery(".lay-content.scrollslider-active #grid .col > *").attr("style",""),jQuery(".lay-content.infinite-scrollslider-active #grid").attr("style",""),jQuery(".lay-content.infinite-scrollslider-active #grid .grid-inner").attr("style",""),jQuery(".lay-content.infinite-scrollslider-active #grid .col").attr("style",""),jQuery(".lay-content.infinite-scrollslider-active #grid .col > *").attr("style",""),jQuery(".lay-content.scrollslider-active").removeClass("scrollslider-active"),jQuery(".lay-content.infinite-scrollslider-active").removeClass("infinite-scrollslider-active"),jQuery(".lay-content.scrollslider-show").removeClass("scrollslider-show"),jQuery(".lay-scrollslider-init-hide").removeClass("lay-scrollslider-init-hide"),ti(),di(),ii(),Ji(),Xt(),Ft.forEach(s=>{s&&typeof s.destroy=="function"&&s.destroy()}),Ft=[]},Ce=scrollSliderPassedData.ss_disable_for_phone=="",ts=jQuery("body>.lay-content").hasClass("hascustomphonegrid");window.laytheme.on("sizechanged",function(){jQuery("#footer-region").css("display","none");var s=jQuery("html").hasClass("scrollslider-active");window.utility.isPhoneSize?Ce?Ce&&ts&&(O(),Wt()):O():window.utility.isTabletSize?Ce&&ts?(O(),Wt()):s&&bt(!1):window.utility.isDesktopSize&&s&&bt(!1),setTimeout(function(){jQuery("#footer-region").css("display","")},0)});window.scrollSlider={isActiveHere:B,cleanup:O,scrollToElement:function(s,t){for(let e of Ft)if(e&&typeof e.scrollToElement=="function"&&e.scrollToElement(s,t))return!0;return!1}};})();

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.