1
"use strict";class uSlider{constructor(t={}
2
){let e="string"==typeof t.id?document.getElementById(t.id):null;e?(this.x=null,this.slide=null,this.ctrl=null,this.threshold="20%",this.busy=!1,this.target=null,this.active=0,this.animationtime=e.dataset.animationTime&&!isNaN(e.dataset.animationTime)?~~e.dataset.animationTime:500,this.autotime=e.dataset.auto&&!isNaN(e.dataset.auto)&&e.dataset.animationTime&&!isNaN(e.dataset.animationTime)&&~~e.dataset.animationTime<~~e.dataset.auto?~~e.dataset.auto:null,this.interval=null,this.noclick=!1,this.freeze=void 0!==e.dataset.freeze,this.fade=!(void 0===e.dataset.fade),this.config={styles:"LnVzbGlkZXJ7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJTthc3BlY3QtcmF0aW86dmFyKC0tYXNwZWN0LXJhdGlvLDEpfS51c2xpZGVyIC51c2xpZGVyX19mcmFtZXtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3BhZGRpbmc6MDttYXJnaW46MDtvdmVyZmxvdzpoaWRkZW47bGlzdC1zdHlsZTpub25lO3otaW5kZXg6MH0udXNsaWRlciAudXNsaWRlcl9fZnJhbWUgLnVzbGlkZXJfX2l0ZW17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7cGFkZGluZzowO21hcmdpbjowO3otaW5kZXg6LTJ9LnVzbGlkZXIgLnVzbGlkZXJfX2ZyYW1lIC51c2xpZGVyX19pdGVtLl9fbW92ZSAqe3BvaW50ZXItZXZlbnRzOm5vbmV9LnVzbGlkZXIgLnVzbGlkZXJfX2ZyYW1lIC51c2xpZGVyX19pdGVtLl9fbmV4dHt6LWluZGV4Oi0xfS51c2xpZGVyIC51c2xpZGVyX19mcmFtZSAudXNsaWRlcl9faXRlbS5fX3Nob3d7ei1pbmRleDowfS51c2xpZGVyIC51c2xpZGVyX19mcmFtZSAudXNsaWRlcl9faXRlbT4qe3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9LnVzbGlkZXIgLnVzbGlkZXJfX2N0cmw+KiAqe3BvaW50ZXItZXZlbnRzOm5vbmUhaW1wb3J0YW50fQ==",options:{}
3
}
4
,this.init(e,t)):this.init=null}
5
init(box,params){let sid="uslider-styles";document.getElementById(sid)||document.querySelector("head link").insertAdjacentHTML("beforebegin",`<style id="${sid}
6
">${atob(this.config.styles)}
7
</style>`);let slide="",ctrl="",custom=!1,__slides=box.childElementCount;for(let t=0;t<__slides;t++)slide+=`<li class="uslider__item">${box.children[t].outerHTML}
8
</li>`;if(box.innerHTML=`<ul class="uslider__frame">${slide}
9
</ul>`,this.slide=box.children[0],this.direction=box.dataset.direction||"rtl",box.dataset.oninit){if(__slides>1)try{ctrl=eval(box.dataset.oninit)(box.children[0]),custom=!0}
10
catch(t){console.warn(t)}
11
}
12
else for(let t=0;t<this.slide.childElementCount;t++)ctrl+=`<li data-rel="${t}
13
"></li>`;this.slide.childElementCount>1?(ctrl&&ctrl.length&&(custom?box.insertAdjacentHTML("beforeend",`<ul class="uslider__ctrl __custom">${ctrl}
14
</ul>`):box.insertAdjacentHTML("beforeend",`<ul class="uslider__ctrl">${ctrl}
15
</ul>`),this.ctrl=box.children[1]),this.isTouch()?(this.slide.addEventListener("touchstart",t=>this.hold(t),{passive:!0}
16
),this.slide.addEventListener("touchend",t=>this.release(t),{passive:!0}
17
),this.slide.addEventListener("touchmove",t=>this.move(t),{passive:!0}
18
)):(this.slide.addEventListener("pointerdown",t=>this.hold(t)),this.slide.addEventListener("pointerup",t=>this.release(t)),this.slide.addEventListener("pointermove",t=>this.move(t)),this.slide.parentElement.addEventListener("pointerenter",()=>this.enter()),this.slide.parentElement.addEventListener("pointerleave",()=>this.leave())),this.autotime&&this.timer(!0),this.ctrl&&this.ctrl.addEventListener("click",t=>this.go(t),{passive:!0}
19
),setTimeout(()=>{this.order()}
20
,10)):1==this.slide.childElementCount&&(this.autotime=null,this.slide.children[0].classList.add("__show"))}
21
hold(t){this.isTouch()&&this.enter(),this.busy||(this.noclick=!1,this.target=t.target.closest(".uslider__item"),this.ctrl&&(this.ctrl.style.pointerEvents="none"),this.x=this.isTouch()?t.touches[0].pageX:t.pageX)}
22
enter(){this.freeze&&this.timer(!1)}
23
release(e){if(!this.busy)if(this.target){this.busy=!0;let walk=(this.isTouch()?e.changedTouches[0].pageX:e.pageX)-this.x,abs=Math.abs(walk),thres="string"==typeof this.threshold?parseInt(this.slide.clientWidth*parseInt(this.threshold)/100):this.threshold,animationtime,translate;if(abs>thres){if(this.slide.parentElement.dataset.beforechange)try{eval(this.slide.parentElement.dataset.beforechange)()}
24
catch(t){console.warn(t)}
25
this.ctrl&&this.ctrl.children[this.active].classList.remove("__show"),animationtime=this.animationtime,walk>0?(this.direction="ltr",translate="100%",this.active--,this.active<0&&(this.active=this.slide.childElementCount-1)):(this.direction="rtl",translate="-100%",this.active++,this.active>this.slide.childElementCount-1&&(this.active=0)),setTimeout(()=>{if(this.busy=!1,this.target&&this.target.removeAttribute("style"),this.target.classList.remove("__move"),this.target=null,this.order(),this.slide.parentElement.dataset.afterchange)try{eval(this.slide.parentElement.dataset.afterchange)()}
26
catch(t){console.warn(t)}
27
}
28
,animationtime),this.timer(!0)}
29
else abs>=0&&(animationtime=this.animationtime/2,translate="0",setTimeout(()=>{this.busy=!1,this.target&&this.target.removeAttribute("style"),this.target.classList.remove("__move"),this.target=null}
30
,animationtime));this.fade?abs>thres&&(this.target.style=`opacity:0;transition:opacity ${this.animationtime}
31
ms ease-in`):this.target.style=`transform:translateX(${translate}
32
);transition:transform ${animationtime}
33
ms ease-out`,this.ctrl&&this.ctrl.removeAttribute("style"),this.x=null}
34
else this.busy=!1}
35
leave(){if(!this.busy)if(this.target){let t=this.animationtime/2;this.busy=!0,this.fade||(this.target.style=`transform:translateX(0);transition:transform ${t}
36
ms ease-out`),this.ctrl&&this.ctrl.removeAttribute("style"),setTimeout(()=>{this.target.removeAttribute("style"),this.target.classList.remove("__move"),this.order(),this.busy=!1,this.target=null}
37
,t)}
38
else this.busy=!1;this.autotime&&null===this.interval&&this.timer(!0),this.x=null}
39
move(t){if(!this.busy&&this.target){let e=0;if(this.isTouch()){let i=document.elementFromPoint(t.changedTouches[0].clientX,t.changedTouches[0].clientY);if((i?i.closest(".uslider__item"):null)!==this.target)return this.busy=!1,void this.leave();e=t.changedTouches[0].pageX-this.x}
40
else e=t.pageX-this.x;this.noclick=0!==e,this.noclick&&this.target.classList.add("__move"),this.fade||(this.target.style=`transform:translateX(${e}
...
</html>