1function next_infinite_slider(){document.querySelectorAll(".nb-infinite-slider").forEach(($menu)=>{$menu.removeAttribute("data-flickering");const $items=$menu.querySelectorAll('.nb-infinite-slider__item') 2let menuWidth=$menu.clientWidth 3let itemWidth=$items[0].clientWidth 4let wrapWidth=$items.length*itemWidth 5let scrollSpeed=0 6let oldScrollY=0 7let scrollY=0 8let y=0 9const lerp=(v0,v1,t)=>{return v0*(1-t)+v1*t} 10const dispose=(scroll)=>{const gapString=getComputedStyle($menu).getPropertyValue('--gap') 11const gap=parseFloat(gapString)*window.innerWidth/100 12gsap.set($items,{x:(i)=>{return(i*(itemWidth+gap))+scroll},modifiers:{x:(x,target)=>{const wrapWidthWithGaps=wrapWidth+(gap*$items.length) 13const s=gsap.utils.wrap(-(itemWidth+gap),wrapWidthWithGaps-(itemWidth+gap),parseFloat(x)) 14return `${s}px`}}})} 15dispose(0) 16const handleMouseWheel=(e)=>{scrollY-=e.deltaY*0.9} 17let touchStart=0 18let touchX=0 19let isDragging=!1 20const handleTouchStart=(e)=>{touchStart=e.clientX||e.touches[0].clientX 21isDragging=!0 22$menu.classList.add('nb-infinite-slider--is-dragging')} 23const handleTouchMove=(e)=>{if(!isDragging)return 24touchX=e.clientX||e.touches[0].clientX 25scrollY+=(touchX-touchStart)*2.5 26touchStart=touchX} 27const handleTouchEnd=()=>{isDragging=!1 28$menu.classList.remove('nb-infinite-slider--is-dragging')} 29$menu.addEventListener('mousewheel',handleMouseWheel) 30$menu.addEventListener('touchstart',handleTouchStart) 31$menu.addEventListener('touchmove',handleTouchMove) 32$menu.addEventListener('touchend',handleTouchEnd) 33$menu.addEventListener('mousedown',handleTouchStart) 34$menu.addEventListener('mousemove',handleTouchMove) 35$menu.addEventListener('mouseleave',handleTouchEnd) 36$menu.addEventListener('mouseup',handleTouchEnd) 37$menu.addEventListener('selectstart',()=>{return!1}) 38window.addEventListener('resize',()=>{menuWidth=$menu.clientWidth 39itemWidth=$items[0].clientWidth 40wrapWidth=$items.length*itemWidth 41dispose(y)}) 42const render=()=>{requestAnimationFrame(render) 43y=lerp(y,scrollY,.1) 44dispose(y) 45scrollSpeed=y-oldScrollY 46oldScrollY=y 47gsap.to($items,{skewX:-scrollSpeed*.2,rotate:scrollSpeed*.01,scale:1-Math.min(100,Math.abs(scrollSpeed))*0.003})} 48render()})} 49document.addEventListener("DOMContentLoaded",function(t){bricksIsFrontend&&next_infinite_slider()})
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.