(function(a,r){typeof exports=="object"&&typeof module<"u"?r(exports):typeof define=="function"&&define.amd?define(["exports"],r):(a=typeof globalThis<"u"?globalThis:a||self,r(a["vue-dragscroll"]={}))})(this,function(a){"use strict";const r={addEventListeners(s,e,n){for(let t=0,f=e.length;t"u";if(!(!I&&(!R||C&&!P))&&!(o.button===0&&N)){{if(o.button===1&&M)return;if(o.button===2&&O)return;if(o.button===3&&V)return;if(o.button===4&&_)return}g=1,d=u?o.clientX:o.touches[0].clientX,m=u?o.clientY:o.touches[0].clientY}},t.mu=function(o){g=0,h&&r.emitEvent(n,"dragscrollend"),h=!1},t.mm=function(o){const u=o instanceof window.MouseEvent;let l,i;if(g){o.preventDefault(),h||r.emitEvent(n,"dragscrollstart"),h=!0;const c=t.scrollLeft+t.clientWidth>=t.scrollWidth||t.scrollLeft===0,T=t.scrollTop+t.clientHeight>=t.scrollHeight||t.scrollTop===0;l=-d+(d=u?o.clientX:o.touches[0].clientX),i=-m+(m=u?o.clientY:o.touches[0].clientY),e.modifiers.pass?(t.scrollLeft-=e.modifiers.y?-0:l,t.scrollTop-=e.modifiers.x?-0:i,t===document.body&&(t.scrollLeft-=e.modifiers.y?-0:l,t.scrollTop-=e.modifiers.x?-0:i),(c||e.modifiers.y)&&S(-l,0),(T||e.modifiers.x)&&S(0,-i)):(e.modifiers.x&&(i=-0),e.modifiers.y&&(l=-0),t.scrollLeft-=l,t.scrollTop-=i,t===document.body&&(t.scrollLeft-=l,t.scrollTop-=i)),r.emitEvent(n,"dragscrollmove",{deltaX:-l,deltaY:-i})}},r.addEventListeners(t,p,t.md),r.addEventListeners(window,E,t.mu),r.addEventListeners(window,w,t.mm)};f?document.readyState==="complete"?X():window.addEventListener("load",X):(r.removeEventListeners(t,p,t.md),r.removeEventListeners(window,E,t.mu),r.removeEventListeners(window,w,t.mm))},Y=s=>{const e=s;r.removeEventListeners(e,p,e.md),r.removeEventListeners(window,E,e.mu),r.removeEventListeners(window,w,e.mm)},y={mounted:(s,e,n)=>L(s,e,n),updated:(s,e,n)=>{JSON.stringify(e.value)!==JSON.stringify(e.oldValue)&&L(s,e,n)},unmounted:s=>Y(s)},D={install(s){s.directive("dragscroll",y)}};typeof window<"u"&&window.Vue&&(window.VueDragscroll=y),a.default=D,a.dragscroll=y,Object.defineProperties(a,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});