UNPKG

popmotion

Version:

The animator's toolbox

2 lines (1 loc) 17.5 kB
!function(n,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports):"function"==typeof define&&define.amd?define(["exports"],r):r((n="undefined"!=typeof globalThis?globalThis:n||self).popmotion={})}(this,(function(n){"use strict";var r=function(){return(r=Object.assign||function(n){for(var r,t=1,e=arguments.length;t<e;t++)for(var o in r=arguments[t])Object.prototype.hasOwnProperty.call(r,o)&&(n[o]=r[o]);return n}).apply(this,arguments)};function t(n,r){var t={};for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&r.indexOf(e)<0&&(t[e]=n[e]);if(null!=n&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(e=Object.getOwnPropertySymbols(n);o<e.length;o++)r.indexOf(e[o])<0&&Object.prototype.propertyIsEnumerable.call(n,e[o])&&(t[e[o]]=n[e[o]])}return t}var e=function(n,r,t){return Math.min(Math.max(t,n),r)},o=.001;function a(n){var r,t,a=n.duration,i=void 0===a?800:a,f=n.bounce,s=void 0===f?.25:f,c=n.velocity,v=void 0===c?0:c,p=n.mass,d=void 0===p?1:p,l=1-s;l=e(.05,1,l),i=e(.01,10,i/1e3),l<1?(r=function(n){var r=n*l,t=r*i,e=r-v,a=u(n,l),f=Math.exp(-t);return o-e/a*f},t=function(n){var t=n*l*i,e=t*v+v,a=Math.pow(l,2)*Math.pow(n,2)*i,f=Math.exp(-t),s=u(Math.pow(n,2),l);return(-r(n)+o>0?-1:1)*((e-a)*f)/s}):(r=function(n){return Math.exp(-n*i)*((n-v)*i+1)-.001},t=function(n){return Math.exp(-n*i)*(i*i*(v-n))});var h=function(n,r,t){for(var e=t,o=1;o<12;o++)e-=n(e)/r(e);return e}(r,t,5/i);if(isNaN(h))return{stiffness:100,damping:10};var m=Math.pow(h,2)*d;return{stiffness:m,damping:2*l*Math.sqrt(d*m)}}function u(n,r){return n*Math.sqrt(1-r*r)}var i=["duration","bounce"],f=["stiffness","damping","mass"];function s(n,r){return r.some((function(r){return void 0!==n[r]}))}function c(n){var e=n.from,o=void 0===e?0:e,c=n.to,p=void 0===c?1:c,d=n.restSpeed,l=void 0===d?2:d,h=n.restDelta,m=t(n,["from","to","restSpeed","restDelta"]),y={done:!1,value:o},g=function(n){var t=r({velocity:0,stiffness:100,damping:10,mass:1,isResolvedFromDuration:!1},n);if(!s(n,f)&&s(n,i)){var e=a(n);(t=r(r(r({},t),e),{velocity:0,mass:1})).isResolvedFromDuration=!0}return t}(m),M=g.stiffness,b=g.damping,x=g.mass,w=g.velocity,O=g.isResolvedFromDuration,I=v,A=v;function P(){var n=w?-w/1e3:0,r=p-o,t=b/(2*Math.sqrt(M*x)),e=Math.sqrt(M/x)/1e3;if(null!=h||(h=Math.abs(p-o)<=1?.01:.4),t<1){var a=u(e,t);I=function(o){var u=Math.exp(-t*e*o);return p-u*((n+t*e*r)/a*Math.sin(a*o)+r*Math.cos(a*o))},A=function(o){var u=Math.exp(-t*e*o);return t*e*u*(Math.sin(a*o)*(n+t*e*r)/a+r*Math.cos(a*o))-u*(Math.cos(a*o)*(n+t*e*r)-a*r*Math.sin(a*o))}}else if(1===t)I=function(t){return p-Math.exp(-e*t)*(r+(n+e*r)*t)};else{var i=e*Math.sqrt(t*t-1);I=function(o){var a=Math.exp(-t*e*o),u=Math.min(i*o,300);return p-a*((n+t*e*r)*Math.sinh(u)+i*r*Math.cosh(u))/i}}}return P(),{next:function(n){var r=I(n);if(O)y.done=n>=m.duration;else{var t=1e3*A(n),e=Math.abs(t)<=l,o=Math.abs(p-r)<=h;y.done=e&&o}return y.value=y.done?p:r,y},flipTarget:function(){var n;w=-w,o=(n=[p,o])[0],p=n[1],P()}}}c.needsInterpolation=function(n,r){return"string"==typeof n||"string"==typeof r};var v=function(n){return 0},p=function(n,r,t){var e=r-n;return 0===e?1:(t-n)/e},d=function(n,r,t){return-t*n+t*r+n},l=function(n,r){return function(t){return Math.max(Math.min(t,r),n)}},h=function(n){return n%1?Number(n.toFixed(5)):n},m=/(-)?([\d]*\.?[\d])+/g,y=/(#[0-9a-f]{6}|#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2,3}\s*\/*\s*[\d\.]+%?\))/gi,g=/^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2,3}\s*\/*\s*[\d\.]+%?\))$/i;function M(n){return"string"==typeof n}var b={test:function(n){return"number"==typeof n},parse:parseFloat,transform:function(n){return n}},x=r(r({},b),{transform:l(0,1)});r(r({},b),{default:1});var w,O=(w="%",{test:function(n){return M(n)&&n.endsWith(w)&&1===n.split(" ").length},parse:parseFloat,transform:function(n){return""+n+w}});r(r({},O),{parse:function(n){return O.parse(n)/100},transform:function(n){return O.transform(100*n)}});var I=function(n,r){return function(t){return M(t)&&g.test(t)&&t.startsWith(n)||r&&Object.prototype.hasOwnProperty.call(t,r)}},A=function(n,r,t){return function(e){var o;if(!M(e))return e;var a=e.match(m),u=a[0],i=a[1],f=a[2],s=a[3];return(o={})[n]=parseFloat(u),o[r]=parseFloat(i),o[t]=parseFloat(f),o.alpha=void 0!==s?parseFloat(s):1,o}},P={test:I("hsl","hue"),parse:A("hue","saturation","lightness"),transform:function(n){var r=n.hue,t=n.saturation,e=n.lightness,o=n.alpha,a=void 0===o?1:o;return"hsla("+Math.round(r)+", "+O.transform(h(t))+", "+O.transform(h(e))+", "+h(x.transform(a))+")"}},D=l(0,255),T=r(r({},b),{transform:function(n){return Math.round(D(n))}}),F={test:I("rgb","red"),parse:A("red","green","blue"),transform:function(n){var r=n.red,t=n.green,e=n.blue,o=n.alpha,a=void 0===o?1:o;return"rgba("+T.transform(r)+", "+T.transform(t)+", "+T.transform(e)+", "+h(x.transform(a))+")"}};var S={test:I("#"),parse:function(n){var r="",t="",e="",o="";return n.length>5?(r=n.substr(1,2),t=n.substr(3,2),e=n.substr(5,2),o=n.substr(7,2)):(r=n.substr(1,1),t=n.substr(2,1),e=n.substr(3,1),o=n.substr(4,1),r+=r,t+=t,e+=e,o+=o),{red:parseInt(r,16),green:parseInt(t,16),blue:parseInt(e,16),alpha:o?parseInt(o,16)/255:1}},transform:F.transform},j=function(n){return F.test(n)||S.test(n)||P.test(n)},C=function(n){return F.test(n)?F.parse(n):P.test(n)?P.parse(n):S.parse(n)},R=function(n){return M(n)?n:n.hasOwnProperty("red")?F.transform(n):P.transform(n)},k="${c}",q="${n}";function N(n){var r=[],t=0,e=n.match(y);e&&(t=e.length,n=n.replace(y,k),r.push.apply(r,e.map(C)));var o=n.match(m);return o&&(n=n.replace(m,q),r.push.apply(r,o.map(b.parse))),{values:r,numColors:t,tokenised:n}}function E(n){return N(n).values}function U(n){var r=N(n),t=r.values,e=r.numColors,o=r.tokenised,a=t.length;return function(n){for(var r=o,t=0;t<a;t++)r=r.replace(t<e?k:q,t<e?R(n[t]):h(n[t]));return r}}var z=function(n){return"number"==typeof n?0:n};var B={test:function(n){var r,t,e,o;return isNaN(n)&&M(n)&&(null!==(t=null===(r=n.match(m))||void 0===r?void 0:r.length)&&void 0!==t?t:0)+(null!==(o=null===(e=n.match(y))||void 0===e?void 0:e.length)&&void 0!==o?o:0)>0},parse:E,createTransformer:U,getAnimatableNone:function(n){var r=E(n);return U(n)(r.map(z))}},W=function(n,r,t){var e=n*n,o=r*r;return Math.sqrt(Math.max(0,t*(o-e)+e))},$=[S,F,P],_=function(n){return $.find((function(r){return r.test(n)}))},G=function(n,t){var e=_(n),o=_(t);e.transform,o.transform;var a=e.parse(n),u=o.parse(t),i=r({},a),f=e===P?d:W;return function(n){for(var r in i)"alpha"!==r&&(i[r]=f(a[r],u[r],n));return i.alpha=d(a.alpha,u.alpha,n),e.transform(i)}},H={x:0,y:0,z:0},L=function(n){return"number"==typeof n},V=function(n,r){return function(t){return r(n(t))}},J=function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return n.reduce(V)};function K(n,r){return L(n)?function(t){return d(n,r,t)}:j(n)?G(n,r):Z(n,r)}var Q=function(n,r){var t=function(){for(var n=0,r=0,t=arguments.length;r<t;r++)n+=arguments[r].length;var e=Array(n),o=0;for(r=0;r<t;r++)for(var a=arguments[r],u=0,i=a.length;u<i;u++,o++)e[o]=a[u];return e}(n),e=t.length,o=n.map((function(n,t){return K(n,r[t])}));return function(n){for(var r=0;r<e;r++)t[r]=o[r](n);return t}},X=function(n,t){var e=r(r({},n),t),o={};for(var a in e)void 0!==n[a]&&void 0!==t[a]&&(o[a]=K(n[a],t[a]));return function(n){for(var r in o)e[r]=o[r](n);return e}};function Y(n){for(var r=B.parse(n),t=r.length,e=0,o=0,a=0,u=0;u<t;u++)e||"number"==typeof r[u]?e++:void 0!==r[u].hue?a++:o++;return{parsed:r,numNumbers:e,numRGB:o,numHSL:a}}var Z=function(n,r){var t=B.createTransformer(r),e=Y(n),o=Y(r);return J(Q(e.parsed,o.parsed),t)},nn=function(n,r){return function(t){return d(n,r,t)}};function rn(n,r,t){for(var e,o=[],a=t||("number"==typeof(e=n[0])?nn:"string"==typeof e?j(e)?G:Z:Array.isArray(e)?Q:"object"==typeof e?X:void 0),u=n.length-1,i=0;i<u;i++){var f=a(n[i],n[i+1]);if(r){var s=Array.isArray(r)?r[i]:r;f=J(s,f)}o.push(f)}return o}function tn(n,r,t){var o=void 0===t?{}:t,a=o.clamp,u=void 0===a||a,i=o.ease,f=o.mixer,s=n.length;r.length,!i||!Array.isArray(i)||i.length,n[0]>n[s-1]&&(n=[].concat(n),r=[].concat(r),n.reverse(),r.reverse());var c=rn(r,i,f),v=2===s?function(n,r){var t=n[0],e=n[1],o=r[0];return function(n){return o(p(t,e,n))}}(n,c):function(n,r){var t=n.length,e=t-1;return function(o){var a=0,u=!1;if(o<=n[0]?u=!0:o>=n[e]&&(a=e-1,u=!0),!u){for(var i=1;i<t&&!(n[i]>o||i===e);i++);a=i-1}var f=p(n[a],n[a+1],o);return r[a](f)}}(n,c);return u?function(r){return v(e(n[0],n[s-1],r))}:v}var en=function(n){return function(r){return 1-n(1-r)}},on=function(n){return function(r){return r<=.5?n(2*r)/2:(2-n(2*(1-r)))/2}},an=function(n){return function(r){return Math.pow(r,n)}},un=function(n){return function(r){return r*r*((n+1)*r-n)}},fn=function(n){var r=un(n);return function(n){return(n*=2)<1?.5*r(n):.5*(2-Math.pow(2,-10*(n-1)))}},sn=function(n){return n},cn=an(2),vn=en(cn),pn=on(cn),dn=function(n){return 1-Math.sin(Math.acos(n))},ln=en(dn),hn=on(ln),mn=un(1.525),yn=en(mn),gn=on(mn),Mn=fn(1.525),bn=function(n){if(1===n||0===n)return n;var r=n*n;return n<.36363636363636365?7.5625*r:n<.7272727272727273?9.075*r-9.9*n+3.4:n<.9?12.066481994459833*r-19.63545706371191*n+8.898060941828255:10.8*n*n-20.52*n+10.72},xn=en(bn);function wn(n,r){return n.map((function(){return r||pn})).splice(0,n.length-1)}function On(n){var r=n.from,t=void 0===r?0:r,e=n.to,o=void 0===e?1:e,a=n.ease,u=n.offset,i=n.duration,f=void 0===i?300:i,s={done:!1,value:t},c=Array.isArray(o)?o:[t,o],v=function(n,r){return n.map((function(n){return n*r}))}(u&&u.length===c.length?u:function(n){var r=n.length;return n.map((function(n,t){return 0!==t?t/(r-1):0}))}(c),f);function p(){return tn(v,c,{ease:Array.isArray(a)?a:wn(c,a)})}var d=p();return{next:function(n){return s.value=d(n),s.done=n>=f,s},flipTarget:function(){c.reverse(),d=p()}}}function In(n){var r=n.velocity,t=void 0===r?0:r,e=n.from,o=void 0===e?0:e,a=n.power,u=void 0===a?.8:a,i=n.timeConstant,f=void 0===i?350:i,s=n.restDelta,c=void 0===s?.5:s,v=n.modifyTarget,p={done:!1,value:o},d=u*t,l=o+d,h=void 0===v?l:v(l);return h!==l&&(d=h-o),{next:function(n){var r=-d*Math.exp(-n/f);return p.done=!(r>c||r<-c),p.value=p.done?h:h+r,p},flipTarget:function(){}}}var An={keyframes:On,spring:c,decay:In};var Pn=1/60*1e3,Dn="undefined"!=typeof performance?function(){return performance.now()}:function(){return Date.now()},Tn="undefined"!=typeof window?function(n){return window.requestAnimationFrame(n)}:function(n){return setTimeout((function(){return n(Dn())}),Pn)};var Fn=!0,Sn=!1,jn=!1,Cn={delta:0,timestamp:0},Rn=["read","update","preRender","render","postRender"],kn=Rn.reduce((function(n,r){return n[r]=function(n){var r=[],t=[],e=0,o=!1,a=new WeakSet,u={schedule:function(n,u,i){void 0===u&&(u=!1),void 0===i&&(i=!1);var f=i&&o,s=f?r:t;return u&&a.add(n),-1===s.indexOf(n)&&(s.push(n),f&&o&&(e=r.length)),n},cancel:function(n){var r=t.indexOf(n);-1!==r&&t.splice(r,1),a.delete(n)},process:function(i){var f;if(o=!0,r=(f=[t,r])[0],(t=f[1]).length=0,e=r.length)for(var s=0;s<e;s++){var c=r[s];c(i),a.has(c)&&(u.schedule(c),n())}o=!1}};return u}((function(){return Sn=!0})),n}),{}),qn=Rn.reduce((function(n,r){var t=kn[r];return n[r]=function(n,r,e){return void 0===r&&(r=!1),void 0===e&&(e=!1),Sn||zn(),t.schedule(n,r,e)},n}),{}),Nn=Rn.reduce((function(n,r){return n[r]=kn[r].cancel,n}),{}),En=function(n){return kn[n].process(Cn)},Un=function(n){Sn=!1,Cn.delta=Fn?Pn:Math.max(Math.min(n-Cn.timestamp,40),1),Cn.timestamp=n,jn=!0,Rn.forEach(En),jn=!1,Sn&&(Fn=!1,Tn(Un))},zn=function(){Sn=!0,Fn=!0,jn||Tn(Un)},Bn=function(){return Cn};function Wn(n,r,t){return void 0===t&&(t=0),n-r-t}var $n=function(n){var r=function(r){var t=r.delta;return n(t)};return{start:function(){return qn.update(r,!0)},stop:function(){return Nn.update(r)}}};function _n(n){var e,o,a,u,i,f=n.from,s=n.autoplay,v=void 0===s||s,p=n.driver,d=void 0===p?$n:p,l=n.elapsed,h=void 0===l?0:l,m=n.repeat,y=void 0===m?0:m,g=n.repeatType,M=void 0===g?"loop":g,b=n.repeatDelay,x=void 0===b?0:b,w=n.onPlay,O=n.onStop,I=n.onComplete,A=n.onRepeat,P=n.onUpdate,D=t(n,["from","autoplay","driver","elapsed","repeat","repeatType","repeatDelay","onPlay","onStop","onComplete","onRepeat","onUpdate"]),T=D.to,F=0,S=D.duration,j=!1,C=!0,R=function(n){if(Array.isArray(n.to))return On;if(An[n.type])return An[n.type];var r=new Set(Object.keys(n));return r.has("ease")||r.has("duration")&&!r.has("dampingRatio")?On:r.has("dampingRatio")||r.has("stiffness")||r.has("mass")||r.has("damping")||r.has("restSpeed")||r.has("restDelta")?c:On}(D);(null===(o=(e=R).needsInterpolation)||void 0===o?void 0:o.call(e,f,T))&&(i=tn([0,100],[f,T],{clamp:!1}),f=0,T=100);var k=R(r(r({},D),{from:f,to:T}));function q(){F++,"reverse"===M?h=function(n,r,t,e){return void 0===t&&(t=0),void 0===e&&(e=!0),e?Wn(r+-n,r,t):r-(n-r)+t}(h,S,x,C=F%2==0):(h=Wn(h,S,x),"mirror"===M&&k.flipTarget()),j=!1,A&&A()}function N(n){if(C||(n=-n),h+=n,!j){var r=k.next(Math.max(0,h));u=r.value,i&&(u=i(u)),j=C?r.done:h<=0}null==P||P(u),j&&(0===F&&(null!=S||(S=h)),F<y?function(n,r,t,e){return e?n>=r+t:n<=-t}(h,S,x,C)&&q():(a.stop(),I&&I()))}return v&&(null==w||w(),(a=d(N)).start()),{stop:function(){null==O||O(),a.stop()}}}function Gn(n,r){return r?n*(1e3/r):0}var Hn=function(n){return 180*n/Math.PI},Ln=function(n){return n},Vn=function(n){return void 0===n&&(n=Ln),function(r,t,e){var o=t-e,a=-(0-r+1)*(0-n(Math.abs(o)));return o<=0?t+a:t-a}},Jn=Vn(),Kn=Vn(Math.sqrt),Qn=function(n){return n*Math.PI/180},Xn=function(n){return n.hasOwnProperty("x")&&n.hasOwnProperty("y")},Yn=function(n){return Xn(n)&&n.hasOwnProperty("z")},Zn=function(n,r){return Math.abs(n-r)};var nr=function(n,r){return void 0===r&&(r=2),r=Math.pow(10,r),Math.round(n*r)/r},rr=function(n,r,t,e){return void 0===e&&(e=0),nr(n+t*(r-n)/Math.max(e,t))};var tr=function(n,r){return 1-3*r+3*n},er=function(n,r){return 3*r-6*n},or=function(n){return 3*n},ar=function(n,r,t){return((tr(r,t)*n+er(r,t))*n+or(r))*n},ur=function(n,r,t){return 3*tr(r,t)*n*n+2*er(r,t)*n+or(r)};var ir=.1;n.angle=function(n,r){return void 0===r&&(r=H),Hn(Math.atan2(r.y-n.y,r.x-n.x))},n.animate=_n,n.anticipate=Mn,n.applyOffset=function(n,r){var t=!0;return void 0===r&&(r=n,t=!1),function(e){return t?e-n+r:(n=e,t=!0,r)}},n.attract=Jn,n.attractExpo=Kn,n.backIn=mn,n.backInOut=gn,n.backOut=yn,n.bounceIn=xn,n.bounceInOut=function(n){return n<.5?.5*(1-bn(1-2*n)):.5*bn(2*n-1)+.5},n.bounceOut=bn,n.circIn=dn,n.circInOut=hn,n.circOut=ln,n.clamp=e,n.createAnticipate=fn,n.createAttractor=Vn,n.createBackIn=un,n.createExpoIn=an,n.cubicBezier=function(n,r,t,e){if(n===r&&t===e)return sn;for(var o=new Float32Array(11),a=0;a<11;++a)o[a]=ar(a*ir,n,t);function u(r){for(var e=0,a=1;10!==a&&o[a]<=r;++a)e+=ir;--a;var u=e+(r-o[a])/(o[a+1]-o[a])*ir,i=ur(u,n,t);return i>=.001?function(n,r,t,e){for(var o=0;o<8;++o){var a=ur(r,t,e);if(0===a)return r;r-=(ar(r,t,e)-n)/a}return r}(r,u,n,t):0===i?u:function(n,r,t,e,o){var a,u,i=0;do{(a=ar(u=r+(t-r)/2,e,o)-n)>0?t=u:r=u}while(Math.abs(a)>1e-7&&++i<10);return u}(r,e,e+ir,n,t)}return function(n){return 0===n||1===n?n:ar(u(n),r,e)}},n.decay=In,n.degreesToRadians=Qn,n.distance=function(n,r){if(L(n)&&L(r))return Zn(n,r);if(Xn(n)&&Xn(r)){var t=Zn(n.x,r.x),e=Zn(n.y,r.y),o=Yn(n)&&Yn(r)?Zn(n.z,r.z):0;return Math.sqrt(Math.pow(t,2)+Math.pow(e,2)+Math.pow(o,2))}},n.easeIn=cn,n.easeInOut=pn,n.easeOut=vn,n.inertia=function(n){var t,e=n.from,o=void 0===e?0:e,a=n.velocity,u=void 0===a?0:a,i=n.min,f=n.max,s=n.power,c=void 0===s?.8:s,v=n.timeConstant,p=void 0===v?750:v,d=n.bounceStiffness,l=void 0===d?500:d,h=n.bounceDamping,m=void 0===h?10:h,y=n.restDelta,g=void 0===y?1:y,M=n.modifyTarget,b=n.driver,x=n.onUpdate,w=n.onComplete;function O(n){return void 0!==i&&n<i||void 0!==f&&n>f}function I(n){return void 0===i?f:void 0===f||Math.abs(i-n)<Math.abs(f-n)?i:f}function A(n){null==t||t.stop(),t=_n(r(r({},n),{driver:b,onUpdate:function(r){var t;null==x||x(r),null===(t=n.onUpdate)||void 0===t||t.call(n,r)},onComplete:w}))}function P(n){A(r({type:"spring",stiffness:l,damping:m,restDelta:g},n))}if(O(o))P({from:o,velocity:u,to:I(o)});else{var D=c*u+o;void 0!==M&&(D=M(D));var T,F,S=I(D),j=S===i?-1:1;A({type:"decay",from:o,velocity:u,timeConstant:p,power:c,restDelta:g,modifyTarget:M,onUpdate:O(D)?function(n){T=F,F=n,u=Gn(n-T,Bn().delta),(1===j&&n>S||-1===j&&n<S)&&P({from:n,to:S,velocity:u})}:void 0})}return{stop:function(){return null==t?void 0:t.stop()}}},n.interpolate=tn,n.isPoint=Xn,n.isPoint3D=Yn,n.keyframes=On,n.linear=sn,n.mirrorEasing=on,n.mix=d,n.mixColor=G,n.mixComplex=Z,n.pipe=J,n.pointFromVector=function(n,r,t){return r=Qn(r),{x:t*Math.cos(r)+n.x,y:t*Math.sin(r)+n.y}},n.progress=p,n.radiansToDegrees=Hn,n.reverseEasing=en,n.smooth=function(n){void 0===n&&(n=50);var r=0,t=0;return function(e){var o=Bn().timestamp,a=o!==t?o-t:0,u=a?rr(r,e,a,n):r;return t=o,r=u,u}},n.smoothFrame=rr,n.snap=function(n){if("number"==typeof n)return function(r){return Math.round(r/n)*n};var r=0,t=n.length;return function(e){var o=Math.abs(n[0]-e);for(r=1;r<t;r++){var a=n[r],u=Math.abs(a-e);if(0===u)return a;if(u>o)return n[r-1];if(r===t-1)return a;o=u}}},n.spring=c,n.steps=function(n,r){return void 0===r&&(r="end"),function(t){var o=(t="end"===r?Math.min(t,.999):Math.max(t,.001))*n,a="end"===r?Math.floor(o):Math.ceil(o);return e(0,1,a/n)}},n.toDecimal=nr,n.velocityPerFrame=function(n,r){return n/(1e3/r)},n.velocityPerSecond=Gn,n.wrap=function(n,r,t){var e=r-n;return((t-n)%e+e)%e+n},Object.defineProperty(n,"__esModule",{value:!0})}));