PageSourceSearch

https://honest.com/cdn/shop/t/21/assets/ugc-carousel.js?v=28548262305782234581790113681

js honest.com collected 2026-10-02 02:21:14 UTC 2,843 bytes, 2 lines download raw bytes

1class UGCCarousel extends HTMLElement{constructor(){super();const positions=[-2,-1,0,1,2],slides=Array.from(this.querySelectorAll(".ugc-carousel__slide")),positionsMissing=positions.length<=slides.length?0:positions.length-slides.length;this.positions=this.removeAlternating(positions,positionsMissing),this.currentOrder=[...slides],this.autoplayFirstVideo=this.dataset.autoplayFirstVideo==="true",this.readyToAutoplay=!1,this.hasAutoplayed=!1,this.render(),this.autoplayFirstVideo&&this.observeAutoplay(),this.querySelector(".ugc-carousel__next").addEventListener("click",this.nextClick.bind(this)),this.querySelector(".ugc-carousel__prev").addEventListener("click",this.prevClick.bind(this)),slides.forEach(slide=>{slide.addEventListener("click",this.slideClick.bind(this))})}render(){let activeSlide=null;if(this.currentOrder.forEach((slide,i)=>{i<this.positions.length?(slide.dataset.pos=this.positions[i],slide.dataset.pos==0&&(activeSlide=slide)):slide.dataset.pos="hidden"}),activeSlide&&(this.pauseOtherVideos(activeSlide.querySelector("video")),this.autoplayFirstVideo&&this.readyToAutoplay&&!this.hasAutoplayed)){const deferredMedia=activeSlide.querySelector("deferred-media");if(deferredMedia){this.hasAutoplayed=!0,deferredMedia.loadContent(!1);const video=deferredMedia.querySelector("video");video&&(video.muted=!0,video.play().catch(()=>{}))}}}removeAlternating(arr,numToRemove){for(let i=0;i<numToRemove&&arr.length!==0;i++)i%2!==0?arr.pop():arr.shift();return arr}nextClick(){this.moveSlider(!0),this.render()}prevClick(){this.moveSlider(!1),this.render()}observeAutoplay(){this.autoplayObserver=new IntersectionObserver((entries,observer)=>{entries[0].isIntersecting&&(observer.unobserve(this),this.readyToAutoplay=!0,this.render())},{threshold:.5}),this.autoplayObserver.observe(this)}pauseOtherVideos(targetedVideo){this.querySelectorAll("video").forEach(video=>{video!==targetedVideo?(video.pause(),video.removeAttribute("controls"),video.classList.add("paused-video")):(video.classList.remove("paused-video"),video.setAttribute("controls","controls"))})}moveSlider(next=!0){if(next){const first=this.currentOrder.shift();this.currentOrder.push(first)}else{const last=this.currentOrder.pop();this.currentOrder.unshift(last)}}slideClick(e){const clickedSlide=e.currentTarget,currentIndex=this.currentOrder.indexOf(clickedSlide),zeroIndex=this.positions.indexOf(0);if(currentIndex===-1||zeroIndex===-1)return;let diff=currentIndex-zeroIndex;const length=this.currentOrder.length;if(Math.abs(diff)>length/2&&(diff=diff>0?diff-length:diff+length),diff>0)for(let i=0;i<diff;i++)this.moveSlider(!0);else if(diff<0)for(let i=0;i<Math.abs(diff);i++)this.moveSlider(!1);this.render()}}customElements.define("ugc-carousel",UGCCarousel);
2//# sourceMappingURL=/cdn/shop/t/21/assets/ugc-carousel.js.map?v=28548262305782234581790113681

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.