PageSourceSearch

https://www.banuba.com/hubfs/assets/js/1.3.0/slider-whitelabel-Bppj5wq2.js

js banuba.com collected 2026-09-24 08:53:42 UTC 6,741 bytes, 1 lines download raw bytes

1import{Swiper as e,EffectFade as t}from"./swiper-D1sSWYZa.js";import{s as i}from"./scroll-control-nF8xo79a.js";import{l as s,q as n,r,a as l}from"./app.js";import{c as o}from"./create-element-5k6CQbW0.js";let h=!1;class a{constructor(e){return this.log=s("WhiteLabelSection"),e?(this.log("Init: ",e),this.node=e,this.wrapper=this.node.querySelector(".js-wl-wrapper"),this.screens=n(".js-wl-screen",this.node),this.offset=null,this.isWheelEventInited=!1,this.movementCounter=0,this.inited=!1,this.isFirstInit=!0,this.isScrollingNow=!1,this.isSmallTabletLayout=null,this.scrollToButtons=n(".js-scroll-to"),this.events(),r.subscribe(this.events.bind(this)),this):(this.log("Node not found"),!1)}events(){return this.log("Events init"),this.isSmallTabletLayout=window.innerWidth<=1025||window.innerHeight<600,this.scrollToButtons.forEach((e=>{e.addEventListener("click",(()=>{this.isScrollingNow=!0,(1!==this.movementCounter&&this.isWheelEventInited||0!==this.movementCounter&&this.isWheelEventInited)&&(this.movementCounter<1?(this.movementCounter=-2,this.wrapper.style.transform="translateY(0px)"):(this.movementCounter=3,this.wrapper.style.transform=`translateY(${-this.offset}px)`),this.isWheelEventInited=!1),setTimeout((()=>this.isScrollingNow=!1),1200)}))})),Promise.resolve().then((()=>{this.isSmallTabletLayout&&(this.wrapper.style.transform="translateY(0px)",this.isFirstInit=!1),this.isFirstInit&&document.querySelector(".page").scrollIntoView({behavior:"smooth",block:"center",inline:"center"}),this.isFirstInit=!1})).then((()=>{setTimeout((()=>{this.offset=this.screens[1].getBoundingClientRect().height,0===this.movementCounter&&(this.wrapper.style.transform="translateY(0px)"),1===this.movementCounter&&(this.wrapper.style.transform=`translateY(${-this.offset-160}px)`),l.subscribe(this.initObserver.bind(this))}),1e3)})),this}initObserver(){if(this.isScrollingNow)return this;this.log("Observer init"),h=this.isWheelEventInited;return new IntersectionObserver((e=>{e.forEach((e=>this.scrollStatements(e)))}),{root:null,rootMargin:"100px",threshold:1}).observe(this.node),this}scrollStatements(e){const{isScrollingNow:t,isSmallTabletLayout:i,isWheelEventInited:s,movementCounter:n}=this;return(!e.isIntersecting||t||s||0!==n)&&(!e.isIntersecting||t||s||1!==n)||(this.isWheelEventInited=!0,i?this.commonEvents():this.desktopEvents()),this}desktopEvents(){Promise.resolve().then((()=>this.node.scrollIntoView({behavior:"smooth",block:"center",inline:"center"}))).then(i.hideScrollbar()).then((()=>this.commonEvents()))}commonEvents(){const e=()=>{switch(this.movementCounter){case-3:case-2:case-1:this.movementCounter=0,i.showScrollbar(),document.removeEventListener("wheel",t),setTimeout((()=>this.isWheelEventInited=!1),1e3);break;case 0:this.wrapper.style.transform="translateY(0px)";break;case 1:this.wrapper.style.transform=`translateY(${-this.offset-160}px)`;break;case 2:case 3:case 4:i.showScrollbar(),this.movementCounter=1,document.removeEventListener("wheel",t),setTimeout((()=>this.isWheelEventInited=!1),1e3)}},t=i=>{if(this.inited)return!1;this.inited=!0;(i.deltaY||i.details||0)>0?++this.movementCounter:--this.movementCounter,e(),setTimeout((()=>{this.inited=!1}),1500),this.isScrollingNow&&document.removeEventListener("wheel",t)};this.isSmallTabletLayout||this.isScrollingNow?document.removeEventListener("wheel",t):document.addEventListener("wheel",t)}}class d{constructor(e){return this.log=s("WhiteLabelSlider"),e?(this.log("Slider initialized"),this.nodeElement=e,this.timeout=+this.nodeElement.dataset.timeout||5e3,this.isSmallTabletLayout=null,this.sliderInnerContainer=n(".slider-slide__container",this.nodeElement),this.pagination=e.querySelector(".js-whitelabel-slider__pagination"),this.slidesCount=n(".swiper-slide",e).length,this.startTime=null,this.elapsedTime=null,this.timeFraction=null,this.activeSlideElement=null,this.activeSlideElementProgress=null,this.swiper=null,this.init(),r.subscribe(this.init.bind(this)),this):(this.log("Node element not found"),!1)}init(){return this.log("Init call"),this.isSmallTabletLayout=window.innerWidth<=1025||window.innerHeight<600,this.isSmallTabletLayout?(this.swiper&&(this.swiper.destroy(!0,!0),this.swiper=null),this):(null===this.swiper?this.initSwiper():(this.onSlideChange(),this.nodeElement.addEventListener("click",(e=>{const t=e.target;if(t.classList.contains("js-whitelabel-slider__pagination")||t.classList.contains("js-whitelabel-slider__bullet")||t.classList.contains("js-whitelabel-slider__progress"))return!1;this.swiper&&h&&this.swiper.slideNext()}))),this)}initSwiper(){return this.log("Swiper initialized"),this.swiper=new e(this.nodeElement,{effect:"fade",loop:!0,speed:1e3,on:{init:this.onSlideChange.bind(this),slideChange:this.onSlideChange.bind(this)},fadeEffect:{crossFade:!0},modules:[t]}),this.updateActiveSlideElement(),this}onSlideChange(){this.updateActiveSlideElement(),this.resetProgress(),this.startProgress()}prepareHtmlPaginationForSlide(e,t){if(e.querySelector(".js-whitelabel-slider__pagination"))return this;const i=o("div",["js-whitelabel-slider__pagination"]);for(let e=0;e<this.slidesCount;e++){const s=o("div",["js-whitelabel-slider__bullet"]);if(e===t){const e=o("div",["js-whitelabel-slider__progress"]);s.appendChild(e)}i.appendChild(s),(e=>{s.addEventListener("click",(t=>{t.preventDefault(),this.swiper.realIndex!==e&&(this.swiper.realIndex===this.slidesCount-1&&0===e?this.swiper.slideNext():0===this.swiper.realIndex&&e===this.slidesCount-1?this.swiper.slidePrev():this.swiper.slideTo(e+1))}))})(e)}return e.appendChild(i),this}updateActiveSlideElement(){return this.swiper&&this.swiper.slides?(this.log("Updating active slide element"),this.activeSlideElement=this.swiper.slides[this.swiper.activeIndex],this.prepareHtmlPaginationForSlide(this.activeSlideElement,this.swiper.realIndex),this.activeSlideElementProgress=this.activeSlideElement?this.activeSlideElement.querySelector(".js-whitelabel-slider__progress"):null,this):this}toNextSlide(){return this.swiper?.slideNext(),this}timing(e){return e}animate(e){let t=(e-this.startTime+this.elapsedTime)/this.timeout;t>1&&(t=1);const i=this.timing(t);return this.drawProgress(i),t<1?this.animationId=requestAnimationFrame(this.animate.bind(this)):this.toNextSlide(),this}drawProgress(e){this.activeSlideElementProgress&&(this.activeSlideElementProgress.style.transform=`scaleY(${e})`)}startProgress(){this.activeSlideElement=this.swiper?this.swiper.slides[this.swiper.activeIndex]:null,this.startTime=performance.now(),this.elapsedTime=0,this.animationId=requestAnimationFrame(this.animate.bind(this))}resetProgress(){this.startTime=null,this.elapsedTime=null,this.timeFraction=null,this.drawProgress(0)}}export{a as WhiteLabelSection,d as WhiteLabelSlider};

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.