UNPKG

@aplus-frontend/ui

Version:

2 lines (1 loc) 940 B
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../scroll-bar/index.js");const b=require("@vueuse/core"),m=require("../../utils/index.js"),i=require("../../scroll-bar/utils/index.js"),f=()=>{},h=t=>1-Math.pow(1-t,3),v=({scrollOffset:t,maxScrollDistance:y,timer:p=500,onScroll:x=f,onScrollEnd:d=f})=>{let c,e,n,u,s;const{pause:r,resume:R,isActive:l}=b.useRafFn(()=>{const q=Date.now()-c,g=i.ensureRangeValue(q/p,0,1),o=h(g);g===1?(u&&(t.x=n.x),s&&(t.y=n.y),r(),x(u,s),d(u,s)):(u&&(n.x>e.x?t.x=i.ensureRangeValue(e.x+(n.x-e.x)*o,e.x,y.x):t.x=i.ensureRangeValue(n.x+(e.x-n.x)*(1-o),0,e.x)),s&&(n.y>e.y?t.y=i.ensureRangeValue(e.y+(n.y-e.y)*o,e.y,y.y):t.y=i.ensureRangeValue(n.y+(e.y-n.y)*(1-o),0,e.y)),x(u,s))},{immediate:!1});function T(a){l.value&&r(),c=Date.now(),e={x:t.x,y:t.y},n=a,u=m.isDef(a.x),s=m.isDef(a.y),R()}function V(){r()}return{start:T,stop:V,isActive:l}};exports.useScrollSmooth=v;