forked from davidjerleke/embla-carousel
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path1905-59b650c49833b84ed7eb.js
2 lines (2 loc) · 3.8 KB
/
1905-59b650c49833b84ed7eb.js
1
2
"use strict";(self.webpackChunkembla_carousel_docs=self.webpackChunkembla_carousel_docs||[]).push([[1905],{1905:function(t,e,n){n.r(e),n.d(e,{default:function(){return r}});var o=n(4041),i=n(7154);const l={direction:"forward",speed:2,startDelay:1e3,active:!0,breakpoints:{},playOnInit:!0,stopOnFocusIn:!0,stopOnInteraction:!0,stopOnMouseEnter:!1,rootNode:null};function s(t){let e,n,o;void 0===t&&(t={});let i,a,r=!1,c=!0,u=0;function d(){if(o||r)return;if(!c)return;n.emit("autoScroll:play");const t=n.internalEngine(),{ownerWindow:l}=t;u=l.setTimeout((()=>{t.scrollBody=function(t){const{location:o,previousLocation:i,offsetLocation:l,target:s,scrollTarget:a,index:r,indexPrevious:c,limit:{reachedMin:u,reachedMax:d,constrain:f},options:{loop:m}}=t,v="forward"===e.direction?-1:1,b=()=>k;let g=0,y=0,_=o.get(),E=0,O=!1;function S(t){const b=t/1e3;let S=0;i.set(o),g=v*e.speed*55,_+=g,o.add(g*b),s.set(o),S=_-E,y=Math.sign(S),E=_;const N=a.byDistance(0,!1).index;r.get()!==N&&(c.set(r.get()),r.set(N),n.emit("select"));const w="forward"===e.direction?u(l.get()):d(l.get());if(!m&&w){O=!0;const t=f(o.get());o.set(t),s.set(o),p()}return k}const k={direction:()=>y,duration:()=>-1,velocity:()=>g,settled:()=>O,seek:S,useBaseFriction:b,useBaseDuration:b,useFriction:b,useDuration:b};return k}(t),t.animation.start()}),i),r=!0}function p(){if(o||!r)return;n.emit("autoScroll:stop");const t=n.internalEngine(),{ownerWindow:e}=t;t.scrollBody=a,e.clearTimeout(u),u=0,r=!1}function f(){c&&d(),n.off("settle",f)}function m(){n.on("settle",f)}return{name:"autoScroll",options:t,init:function(r,u){n=r;const{mergeOptions:f,optionsAtMedia:v}=u,b=f(l,s.globalOptions),g=f(b,t);if(e=v(g),n.scrollSnapList().length<=1)return;i=e.startDelay,o=!1,a=n.internalEngine().scrollBody;const{eventStore:y}=n.internalEngine(),_=n.rootNode(),E=e.rootNode&&e.rootNode(_)||_,O=n.containerNode();n.on("pointerDown",p),e.stopOnInteraction||n.on("pointerUp",m),e.stopOnMouseEnter&&(y.add(E,"mouseenter",(()=>{c=!1,p()})),e.stopOnInteraction||y.add(E,"mouseleave",(()=>{c=!0,d()}))),e.stopOnFocusIn&&(n.on("slideFocusStart",p),e.stopOnInteraction||y.add(O,"focusout",d)),e.playOnInit&&d()},destroy:function(){n.off("pointerDown",p).off("pointerUp",m).off("slideFocusStart",p).off("settle",f),p(),o=!0,r=!1},play:function(t){void 0!==t&&(i=t),c=!0,d()},stop:function(){r&&p()},reset:function(){r&&(p(),m())},isPlaying:function(){return r}}}s.globalOptions=void 0;var a=n(7105);var r=t=>{const{slides:e,options:n}=t,[l,r]=(0,i.A)(n,[s({playOnInit:!1})]),{0:c,1:u}=(0,o.useState)(!1),{prevBtnDisabled:d,nextBtnDisabled:p,onPrevButtonClick:f,onNextButtonClick:m}=(0,a.Hd)(r),v=(0,o.useCallback)((t=>{var e;const n=null==r||null===(e=r.plugins())||void 0===e?void 0:e.autoScroll;if(!n)return;(!1===n.options.stopOnInteraction?n.reset:n.stop)(),t()}),[r]),b=(0,o.useCallback)((()=>{var t;const e=null==r||null===(t=r.plugins())||void 0===t?void 0:t.autoScroll;if(!e)return;(e.isPlaying()?e.stop:e.play)()}),[r]);return(0,o.useEffect)((()=>{var t;const e=null==r||null===(t=r.plugins())||void 0===t?void 0:t.autoScroll;e&&(u(e.isPlaying()),r.on("autoScroll:play",(()=>u(!0))).on("autoScroll:stop",(()=>u(!1))).on("reInit",(()=>u(e.isPlaying()))))}),[r]),o.createElement("div",{className:"embla"},o.createElement("div",{className:"embla__viewport",ref:l},o.createElement("div",{className:"embla__container"},e.map((t=>o.createElement("div",{className:"embla__slide",key:t},o.createElement("div",{className:"embla__slide__number"},o.createElement("span",null,t+1))))))),o.createElement("div",{className:"embla__controls"},o.createElement("div",{className:"embla__buttons"},o.createElement(a.U1,{onClick:()=>v(f),disabled:d}),o.createElement(a.WE,{onClick:()=>v(m),disabled:p})),o.createElement("button",{className:"embla__play",onClick:b,type:"button"},c?"Stop":"Start")))}}}]);
//# sourceMappingURL=1905-59b650c49833b84ed7eb.js.map