PageSourceSearch

https://www.hairbrella.com/cdn/shop/t/313/assets/slideshow-component.js?v=160150954975578609091764866334

js hairbrella.com collected 2026-09-26 01:06:29 UTC 3,352 bytes, 1 lines download raw bytes

1import{i as u,a as p}from"vendors/index.es";import{l as r}from"vendors/index.esm";import{S as h}from"vendors/splide.esm";import{v as c}from"vendors/vidim";class y extends HTMLElement{constructor(){super(),this.slideshow=this.querySelector(".splide"),this.slideshowList=this.slideshow.querySelector(".splide__list"),this.initSlideshow()}initSlideshow(){this.options=JSON.parse(this.slideshow.dataset.options),this.slideCount=this.slideshow.querySelectorAll(".splide__slide").length;const e=this.slideshow.querySelectorAll('.splide__slide[data-type="video"]');if(e.length>0&&(this.options.type="slide",this.options.rewind=!0),this.options.size<=1){if(e.length>0){const i=this.slideshow.querySelector(".splide__slide");this.initSlideVideo(i)}return}this.Splide=new h(this.slideshow,this.options),this.Splide.on("moved",(i,n,s)=>{let t=i+1;t<10&&(t=`0${t}`);const d=this.slideshow.querySelector(`#${this.Splide.root.id}-slide${t}`),l=d.querySelector(".slide__image");this.slideshowList.style.height=`${l.offsetHeight}px`,d.getAttribute("data-type")==="video"&&this.initSlideVideo(d)}),this.Splide.on("ready",()=>{this.onResize();const i=this.slideshow.querySelector(".splide__slide.is-active");i&&i.getAttribute("data-type")==="video"&&this.initSlideVideo(i)}),this.Splide.on("overflow",i=>{this.slideCount!=1&&this.slideshow.classList.add("is-overflow")}),this.Splide.mount(),this.bindEditorEvents()}onResize(){this.slideshowResizeObserver=new ResizeObserver(e=>{const i=this.slideshow.querySelector(".splide__slide.is-active .slide__image");this.Splide.state.is(h.STATES.IDLE)&&(this.slideshowList.style.height=`${i.offsetHeight}px`)}),this.slideshowResizeObserver.observe(this.slideshow)}loadYouTubeAPI(){if(window.YT!==void 0&&(theme.youTubeApiStatus="ready"),theme.youTubeApiStatus!=="loaded"||theme.youTubeApiStatus!=="ready"){const e=document.createElement("script");e.id="youtube-iframe-api",e.src="https://www.youtube.com/iframe_api",e.async=!0,e.onload=async()=>{await r(()=>window.YT.Player!==void 0,{timeout:1e4}),theme.youTubeApiStatus="loaded"},document.body.append(e)}}async initSlideVideo(e){if(e.dataset.videoLoaded==="true")return;e.querySelector(".slide__contain").insertAdjacentHTML("beforeend",'<div class="slide__video [&_video]:object-cover absolute inset-0 z-20"></div>');const s=e.querySelector(".slide__video");let t;const d=!!e.dataset.videoMp4;if(theme.youTubeApiStatus!=="loaded"&&!d){this.loadYouTubeAPI(),await r(()=>theme.youTubeApiStatus==="loaded",{timeout:1e4});const o=e.dataset.videoId;t=new c(s,{type:"YouTube",src:o}),t.once("ready",function(){this.container.style.opacity=0,this.play(),l()})}else t=new c(s,{src:[{type:"video/mp4",src:e.dataset.videoMp4}]}),l();function l(){const o={threshold:.001};u(e,a=>{t.play()},o),p(e,a=>{t.pause()},o)}t.on("play",function(){const o=this.container;window.setTimeout(function(){o.style.opacity=1},200)}),e.dataset.videoLoaded="true"}bindEditorEvents(){const{Autoplay:e}=this.Splide.Components;document.addEventListener("shopify:block:select",i=>{const n=i.detail.blockId,s=this.slideshow.querySelector(`[data-block-id="${n}"]`);if(s){const t=Number(s.dataset.slideIndex);this.Splide.go(t)}}),document.addEventListener("shopify:section:select",i=>{e.pause()}),document.addEventListener("shopify:section:deselect",i=>{e.play()})}}customElements.define("slideshow-component",y);

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.