1(()=>{if(window.AeockyHomepageController){window.AeockyHomepageController.boot(document);return}const instances=new WeakMap,roots=new Set,reduceMotion=()=>window.matchMedia("(prefers-reduced-motion: reduce)").matches,desktop=()=>window.matchMedia("(min-width: 1025px)").matches,behavior=()=>reduceMotion()?"auto":"smooth",backgroundValue=value=>value?`url("${value.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/[\n\r\f]/g,"")}")`:"none",setupDeferredBackground=(root,signal)=>{const desktopBackground=root.dataset.aeBackgroundDesktop,tabletBackground=root.dataset.aeBackgroundTablet||desktopBackground,mobileBackground=root.dataset.aeBackgroundMobile||tabletBackground;if(!desktopBackground&&!tabletBackground&&!mobileBackground)return()=>{};let activated=!1;const activate=()=>{activated||(activated=!0,root.style.setProperty("--ae-home-bg-ready",backgroundValue(desktopBackground)),root.style.setProperty("--ae-home-bg-tablet-ready",backgroundValue(tabletBackground)),root.style.setProperty("--ae-home-bg-mobile-ready",backgroundValue(mobileBackground)),root.dataset.aeBackgroundReady="true",observer?.disconnect())},observer="IntersectionObserver"in window?new IntersectionObserver(entries=>{entries.some(entry=>entry.isIntersecting)&&activate()},{rootMargin:"500px 0px",threshold:0}):null;return observer?observer.observe(root):activate(),document.addEventListener("shopify:section:select",event=>{(event.target?.contains?.(root)||root.contains(event.target))&&activate()},{signal}),document.addEventListener("shopify:block:select",event=>{root.contains(event.target)&&activate()},{signal}),()=>observer?.disconnect()},createCycle=(root,callback,signal,delay=5200,enabled=!0)=>{let timer,paused=!1;const stop=()=>{window.clearInterval(timer),timer=void 0},start=()=>{stop(),enabled&&!paused&&desktop()&&!reduceMotion()&&(timer=window.setInterval(callback,delay))};return root.addEventListener("mouseenter",()=>{paused=!0,stop()},{signal}),root.addEventListener("mouseleave",()=>{paused=!1,start()},{signal}),root.addEventListener("focusin",()=>{paused=!0,stop()},{signal}),root.addEventListener("focusout",event=>{root.contains(event.relatedTarget)||(paused=!1,start())},{signal}),start(),{start,stop}},stepRail=(rail,direction)=>{const card=rail.firstElementChild;if(!card)return;const gap=Number.parseFloat(getComputedStyle(rail).columnGap||getComputedStyle(rail).gap)||0;rail.scrollBy({left:direction*(card.getBoundingClientRect().width+gap),behavior:behavior()})},setupSolutions=(root,signal)=>{const rail=root.querySelector("[data-ae-solution-rail]"),cards=[...root.querySelectorAll("[data-ae-solution]")];if(!rail||!cards.length)return;const activate=index=>{const bounded=Math.max(0,Math.min(index,cards.length-1));rail.dataset.activeIndex=String(bounded),cards.forEach((card,cardIndex)=>{const active=cardIndex===bounded;card.classList.toggle("is-active",active),card.setAttribute("aria-current",active?"true":"false")})};cards.forEach((card,index)=>{card.addEventListener("pointerenter",()=>{desktop()&&activate(index)},{signal}),card.addEventListener("focusin",()=>{desktop()&&activate(index)},{signal}),card.addEventListener("click",()=>{desktop()&&activate(index)},{signal})}),activate(Number.parseInt(rail.dataset.activeIndex||"0",10))},setupPress=(root,signal)=>{const rail=root.querySelector("[data-ae-press-rail]");if(!rail)return()=>{};const originalItems=[...rail.children],autoplay=root.dataset.autoplay!=="false",speed=Math.max(10,Number.parseFloat(root.dataset.marqueeSpeed||"28")),pauseReasons=new Set,clones=[],motionQuery=window.matchMedia("(prefers-reduced-motion: reduce)"),hoverQuery=window.matchMedia("(hover: hover) and (pointer: fine)");let animationFrame,interactionTimer,previousTime,loopWidth=0,position=rail.scrollLeft;const stop=()=>{window.cancelAnimationFrame(animationFrame),animationFrame=void 0,previousTime=void 0},removeClones=()=>{stop(),loopWidth>0&&(rail.scrollLeft%=loopWidth),position=rail.scrollLeft,clones.splice(0).forEach(clone=>clone.remove()),loopWidth=0,delete root.dataset.aeMarqueeActive},buildClones=()=>
1{clones.length||originalItems.length<2||(originalItems.forEach(item=>{const clone=item.cloneNode(!0);clone.classList.add("is-ae-marquee-clone"),clone.setAttribute("aria-hidden","true"),clone.removeAttribute("id"),clone.removeAttribute("data-shopify-editor-block"),clone.querySelectorAll("[id]").forEach(node=>node.removeAttribute("id")),clone.querySelectorAll("a, button, input, select, textarea, [tabindex]").forEach(node=>node.setAttribute("tabindex","-1")),rail.append(clone),clones.push(clone)}),loopWidth=clones[0]?.offsetLeft-originalItems[0]?.offsetLeft,loopWidth>0&&(position=rail.scrollLeft%loopWidth,rail.scrollLeft=position,root.dataset.aeMarqueeActive="true"))},canRun=()=>autoplay&&!motionQuery.matches&&originalItems.length>1,tick=time=>{if(!canRun()||pauseReasons.size||loopWidth<=0){stop();return}previousTime===void 0&&(previousTime=time);const elapsed=Math.min(time-previousTime,64);previousTime=time,position+=speed*elapsed/1e3,position>=loopWidth&&(position%=loopWidth),rail.scrollLeft=position,animationFrame=window.requestAnimationFrame(tick)},start=()=>{stop(),!(!canRun()||pauseReasons.size)&&(buildClones(),loopWidth>0&&(position=rail.scrollLeft%loopWidth,animationFrame=window.requestAnimationFrame(tick)))},pause=reason=>{pauseReasons.add(reason),stop()},resume=reason=>{pauseReasons.delete(reason),start()};hoverQuery.matches&&(rail.addEventListener("mouseenter",()=>pause("hover"),{signal}),rail.addEventListener("mouseleave",()=>resume("hover"),{signal})),root.addEventListener("focusin",()=>pause("focus"),{signal}),root.addEventListener("focusout",event=>{root.contains(event.relatedTarget)||resume("focus")},{signal}),rail.addEventListener("pointerdown",()=>{window.clearTimeout(interactionTimer),pause("pointer")},{signal});const resumeAfterInteraction=()=>{window.clearTimeout(interactionTimer),interactionTimer=window.setTimeout(()=>resume("pointer"),1400)};window.addEventListener("pointerup",resumeAfterInteraction,{signal}),window.addEventListener("pointercancel",resumeAfterInteraction,{signal}),document.addEventListener("visibilitychange",()=>{document.hidden?pause("hidden"):resume("hidden")},{signal}),window.addEventListener("pagehide",()=>pause("page"),{signal}),window.addEventListener("pageshow",()=>resume("page"),{signal});const visibilityObserver="IntersectionObserver"in window?new IntersectionObserver(entries=>{entries.forEach(entry=>{entry.isIntersecting?resume("offscreen"):pause("offscreen")})},{rootMargin:"200px 0px",threshold:0}):null;visibilityObserver&&(pauseReasons.add("offscreen"),visibilityObserver.observe(root));const handleMotionChange=()=>{motionQuery.matches?removeClones():start()};return motionQuery.addEventListener?.("change",handleMotionChange),start(),()=>{window.clearTimeout(interactionTimer),motionQuery.removeEventListener?.("change",handleMotionChange),visibilityObserver?.disconnect(),removeClones()}},setupUgc=(root,signal)=>{const rail=root.querySelector("[data-ae-ugc-rail]");if(!rail)return()=>{};const videos=[...rail.querySelectorAll("video")],previousControl=root.querySelector("[data-ae-ugc-prev]"),nextControl=root.querySelector("[data-ae-ugc-next]"),stepUgcRail=direction=>{const card=rail.firstElementChild;if(!card)return;const gap=Number.parseFloat(getComputedStyle(rail).columnGap||getComputedStyle(rail).gap)||0,step=card.getBoundingClientRect().width+gap,maximum=Math.max(0,rail.scrollWidth-rail.clientWidth),atStart=rail.scrollLeft<=2,atEnd=rail.scrollLeft>=maximum-2,wraps=direction<0&&atStart||direction>0&&atEnd,target=direction<0?atStart?maximum:Math.max(0,rail.scrollLeft-step):atEnd?0:Math.min(maximum,rail.scrollLeft+step);rail.scrollTo({left:target,behavior:wraps?"auto":behavior()})},observer="IntersectionObserver"in window?new IntersectionObserver(entries=>{entries.forEach(entry=>{!entry.isIntersecting&&!entry.target.paused&&entry.target.pause()})},{root:rail,threshold:.25}):null;return previousControl?.addEventListener("click",()=>{stepUgcRail(-1)},{signal}),nextControl?.addEventListener("click",()=>{stepUgcRail(1)},{signal}),videos.forEach(video=>{const card=video.closest("[data-ae-ugc-card]"),playButton=card?.querySelector("[data-ae-ugc-play]"),syncState=()=>{const isPlaying=!video.paused&&!video.ended;card?.classList.toggle("is-playing",isPlaying),isPlaying&&card?.classList.add("has-started")},togglePlayback=()=>{videos.forEach(otherVideo=>{otherVideo!==video&&!otherVideo.paused&&otherVideo.pause()}),video.paused||video.ended?video.play().catch(()=>{}):video.pause()};playButton?.addEventListener("click",togglePlayback,{signal}),video.addEventListener("click",togglePlayback,{signal}),video.addEventListener("play",syncState,{signal}),video.addEventListener("pause",syncState,{signal}),video.addEventListener("ended",syncState,{signal}),observer?.observe(video),syncState()}),()=>{observer?.disconnect(),videos.forEach(video=>video.pause())}},setupTestimonial=(root,signal)=>{const rail=root.querySelector("[data-ae-testimonial-rail]"),copies=[...root.querySelectorAll("[data-ae-testimonial-copy]")],media=[...root.querySelectorAll("[data-ae-testimonial-item]")],length=Math.min(copies.length,media.length);if(!rail||!length)return()=>{};let index=0,scrollFrame,transitionFrame,transitionTimer,transitionState,queuedDirection=0;const setActive=value=>
1{index=(value+length)%length,copies.forEach((item,itemIndex)=>{const active=itemIndex===index;item.classList.toggle("is-active",active),item.setAttribute("aria-hidden",active?"false":"true")}),media.forEach((item,itemIndex)=>{const active=itemIndex===index;item.classList.toggle("is-active",active),item.setAttribute("aria-current",active?"true":"false")})},show=(value,shouldScroll=!1)=>{setActive(value),shouldScroll&&media[index]&&rail.scrollTo({left:media[index].offsetLeft,behavior:behavior()})},mediaIndex=item=>Number.parseInt(item?.dataset.aeTestimonialItem||"0",10),alignDesktopOrder=()=>{const activeItem=media[index];let safety=length;for(;rail.firstElementChild&&rail.firstElementChild!==activeItem&&safety>0;)rail.append(rail.firstElementChild),safety-=1;rail.scrollLeft=0},desktopStep=()=>{const first=rail.firstElementChild,second=first?.nextElementSibling;if(first&&second)return Math.abs(second.getBoundingClientRect().left-first.getBoundingClientRect().left);const gap=Number.parseFloat(getComputedStyle(rail).columnGap||getComputedStyle(rail).gap)||0;return first?first.getBoundingClientRect().width+gap:0},finishDesktopTransition=()=>{if(!transitionState)return;window.clearTimeout(transitionTimer),window.cancelAnimationFrame(transitionFrame);const{direction,shiftedItem}=transitionState;if(rail.classList.remove("is-animating"),direction>0&&shiftedItem&&rail.append(shiftedItem),rail.style.transform="",transitionState=void 0,setActive(mediaIndex(rail.firstElementChild)),queuedDirection){const nextDirection=Math.sign(queuedDirection);queuedDirection-=nextDirection,transitionFrame=window.requestAnimationFrame(()=>moveDesktop(nextDirection))}},moveDesktop=direction=>{if(transitionState){queuedDirection+=direction;return}alignDesktopOrder();const shiftedItem=direction>0?rail.firstElementChild:rail.lastElementChild;if(!shiftedItem)return;if(reduceMotion()){direction>0?rail.append(shiftedItem):rail.prepend(shiftedItem),setActive(mediaIndex(rail.firstElementChild));return}direction<0&&rail.prepend(shiftedItem);const step=desktopStep();step&&(transitionState={direction,shiftedItem},rail.classList.remove("is-animating"),rail.style.transform=direction>0?"translate3d(0, 0, 0)":`translate3d(-${step}px, 0, 0)`,rail.getBoundingClientRect(),rail.classList.add("is-animating"),transitionFrame=window.requestAnimationFrame(()=>{rail.style.transform=direction>0?`translate3d(-${step}px, 0, 0)`:"translate3d(0, 0, 0)"}),transitionTimer=window.setTimeout(finishDesktopTransition,700))},move=direction=>{desktop()?moveDesktop(direction):show(index+direction,!0)};rail.addEventListener("transitionend",event=>{event.target===rail&&event.propertyName==="transform"&&finishDesktopTransition()},{signal}),root.querySelector("[data-ae-testimonial-prev]")?.addEventListener("click",()=>move(-1),{signal}),root.querySelector("[data-ae-testimonial-next]")?.addEventListener("click",()=>move(1),{signal}),media.slice(0,length).forEach((item,itemIndex)=>{item.addEventListener("click",()=>show(itemIndex,!desktop()),{signal}),item.addEventListener("keydown",event=>{(event.key==="Enter"||event.key===" ")&&(event.preventDefault(),show(itemIndex,!desktop()))},{signal})}),rail.addEventListener("scroll",()=>{desktop()||(window.cancelAnimationFrame(scrollFrame),scrollFrame=window.requestAnimationFrame(()=>{const nearest=media.slice(0,length).reduce((best,item,itemIndex)=>{const distance=Math.abs(item.offsetLeft-rail.scrollLeft);return distance<best.distance?{index:itemIndex,distance}:best},{index,distance:Number.POSITIVE_INFINITY});nearest.index!==index&&show(nearest.index)}))},{signal,passive:!0}),show(0);const autoplay=root.dataset.autoplay!=="false",delay=Number.parseInt(root.dataset.cycleSpeed||"6200",10),cycle=createCycle(root,()=>move(1),signal,delay,autoplay);return()=>{cycle.stop(),window.cancelAnimationFrame(scrollFrame),window.cancelAnimationFrame(transitionFrame),window.clearTimeout(transitionTimer),rail.classList.remove("is-animating"),rail.style.transform=""}},initialize=root=>{if(!root||instances.has(root))return;const aborter=new AbortController,{signal}
1=aborter,teardowns=[setupDeferredBackground(root,signal)];root.dataset.aeHomeSection==="solutions"&&setupSolutions(root,signal),root.dataset.aeHomeSection==="press"&&teardowns.push(setupPress(root,signal)),root.dataset.aeHomeSection==="ugc"&&teardowns.push(setupUgc(root,signal)),root.dataset.aeHomeSection==="testimonial"&&teardowns.push(setupTestimonial(root,signal));const destroy=()=>{teardowns.reverse().forEach(teardown=>teardown()),aborter.abort(),instances.delete(root),roots.delete(root)};instances.set(root,{destroy}),roots.add(root)},within=node=>node?.matches?.("[data-ae-home-section]")?[node]:[...node?.querySelectorAll?.("[data-ae-home-section]")||[]],boot=(node=document)=>within(node).forEach(initialize),unload=node=>within(node).forEach(root=>instances.get(root)?.destroy());let resizeTimer;window.addEventListener("resize",()=>{window.clearTimeout(resizeTimer),resizeTimer=window.setTimeout(()=>{const activeRoots=[...roots];activeRoots.forEach(root=>instances.get(root)?.destroy()),activeRoots.filter(root=>root.isConnected).forEach(initialize)},160)}),document.addEventListener("shopify:section:load",event=>boot(event.target)),document.addEventListener("shopify:section:unload",event=>unload(event.target)),window.AeockyHomepageController={boot,unload},document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>boot(),{once:!0}):boot()})(); 2//# sourceMappingURL=/cdn/shop/t/53/assets/aeocky-homepage.js.map?v=77759291065927978191790162130
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.