UNPKG

@carbon/utilities

Version:

Utilities and helpers to drive consistency across software products using the Carbon Design System

2 lines (1 loc) 1.05 kB
const b=(t,d,v,w)=>{let o=null,l=null,r=0;const M=400;let s=!1,i=null,u=null;const a=e=>{o=e.touches[0].clientX},m=e=>{l=e.touches[0].clientX},c=e=>{if(o!==null&&l!==null){const n=o-l;Math.abs(n)>50&&(n>0?d():v())}o=null,l=null},h=e=>{s=!0,i=e.clientX},E=e=>{s&&(u=e.clientX)},L=()=>{if(s&&i!==null&&u!==null){const e=i-u;Math.abs(e)>50&&(e>0?d():v())}s=!1,i=null,u=null},f=e=>{const n=Date.now();if(Math.abs(e.deltaX)>Math.abs(e.deltaY)&&Math.abs(e.deltaX)>20){if(e.preventDefault(),n-r<M)return;e.deltaX>0?d():v(),r=n}};w&&(t.removeEventListener("touchstart",a),t.removeEventListener("touchmove",m),t.removeEventListener("touchend",c),t.removeEventListener("mousedown",h),t.removeEventListener("mousemove",E),t.removeEventListener("mouseup",L),t.removeEventListener("wheel",f)),t.addEventListener("touchstart",a),t.addEventListener("touchmove",m),t.addEventListener("touchend",c),t.addEventListener("mousedown",h),t.addEventListener("mousemove",E),t.addEventListener("mouseup",L),t.addEventListener("wheel",f)};export{b as registerSwipeEvents};