c22873addebeba721d283167ed5748db.json
11 KB
{"ast":null,"code":"var _interopRequireDefault=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=spring;var _base=require(\"../base\");var _derived=require(\"../derived\");var _InternalAnimatedValue=_interopRequireDefault(require(\"../core/InternalAnimatedValue\"));var MAX_STEPS_MS=64;function spring(clock,state,config){var lastTime=(0,_base.cond)(state.time,state.time,clock);var deltaTime=(0,_derived.min)((0,_base.sub)(clock,lastTime),MAX_STEPS_MS);var c=config.damping;var m=config.mass;var k=config.stiffness;var v0=(0,_base.multiply)(-1,state.velocity);var x0=(0,_base.sub)(config.toValue,state.position);var zeta=(0,_base.divide)(c,(0,_base.multiply)(2,(0,_base.sqrt)((0,_base.multiply)(k,m))));var omega0=(0,_base.sqrt)((0,_base.divide)(k,m));var omega1=(0,_base.multiply)(omega0,(0,_base.sqrt)((0,_base.sub)(1,(0,_base.multiply)(zeta,zeta))));var t=(0,_base.divide)(deltaTime,1000);var sin1=(0,_base.sin)((0,_base.multiply)(omega1,t));var cos1=(0,_base.cos)((0,_base.multiply)(omega1,t));var underDampedEnvelope=(0,_base.exp)((0,_base.multiply)(-1,zeta,omega0,t));var underDampedFrag1=(0,_base.multiply)(underDampedEnvelope,(0,_base.add)((0,_base.multiply)(sin1,(0,_base.divide)((0,_base.add)(v0,(0,_base.multiply)(zeta,omega0,x0)),omega1)),(0,_base.multiply)(x0,cos1)));var underDampedPosition=(0,_base.sub)(config.toValue,underDampedFrag1);var underDampedVelocity=(0,_base.sub)((0,_base.multiply)(zeta,omega0,underDampedFrag1),(0,_base.multiply)(underDampedEnvelope,(0,_base.sub)((0,_base.multiply)(cos1,(0,_base.add)(v0,(0,_base.multiply)(zeta,omega0,x0))),(0,_base.multiply)(omega1,x0,sin1))));var criticallyDampedEnvelope=(0,_base.exp)((0,_base.multiply)(-1,omega0,t));var criticallyDampedPosition=(0,_base.sub)(config.toValue,(0,_base.multiply)(criticallyDampedEnvelope,(0,_base.add)(x0,(0,_base.multiply)((0,_base.add)(v0,(0,_base.multiply)(omega0,x0)),t))));var criticallyDampedVelocity=(0,_base.multiply)(criticallyDampedEnvelope,(0,_base.add)((0,_base.multiply)(v0,(0,_base.sub)((0,_base.multiply)(t,omega0),1)),(0,_base.multiply)(t,x0,omega0,omega0)));var prevPosition=state.prevPosition?state.prevPosition:new _InternalAnimatedValue.default(0);var isOvershooting=(0,_base.cond)((0,_base.and)(config.overshootClamping,(0,_base.neq)(config.stiffness,0)),(0,_base.cond)((0,_base.lessThan)(prevPosition,config.toValue),(0,_base.greaterThan)(state.position,config.toValue),(0,_base.lessThan)(state.position,config.toValue)));var isVelocity=(0,_base.lessThan)((0,_derived.abs)(state.velocity),config.restSpeedThreshold);var isDisplacement=(0,_base.or)((0,_base.eq)(config.stiffness,0),(0,_base.lessThan)((0,_derived.abs)((0,_base.sub)(config.toValue,state.position)),config.restDisplacementThreshold));return(0,_base.block)([(0,_base.set)(prevPosition,state.position),(0,_base.cond)((0,_base.lessThan)(zeta,1),[(0,_base.set)(state.position,underDampedPosition),(0,_base.set)(state.velocity,underDampedVelocity)],[(0,_base.set)(state.position,criticallyDampedPosition),(0,_base.set)(state.velocity,criticallyDampedVelocity)]),(0,_base.set)(state.time,clock),(0,_base.cond)((0,_base.or)(isOvershooting,(0,_base.and)(isVelocity,isDisplacement)),[(0,_base.cond)((0,_base.neq)(config.stiffness,0),[(0,_base.set)(state.velocity,0),(0,_base.set)(state.position,config.toValue)]),(0,_base.set)(state.finished,1)])]);}","map":{"version":3,"sources":["C:/Users/bluej/Desktop/2_2/searchGuide/searchGuide/node_modules/react-native-reanimated/src/animations/spring.js"],"names":["MAX_STEPS_MS","spring","clock","state","config","lastTime","time","deltaTime","c","damping","m","mass","k","stiffness","v0","velocity","x0","toValue","position","zeta","omega0","omega1","t","sin1","cos1","underDampedEnvelope","underDampedFrag1","underDampedPosition","underDampedVelocity","criticallyDampedEnvelope","criticallyDampedPosition","criticallyDampedVelocity","prevPosition","AnimatedValue","isOvershooting","overshootClamping","isVelocity","restSpeedThreshold","isDisplacement","restDisplacementThreshold","finished"],"mappings":"mKAAA,6BAmBA,mCACA,4FAEA,GAAMA,CAAAA,YAAY,CAAG,EAArB,CAEe,QAASC,CAAAA,MAAT,CAAgBC,KAAhB,CAAuBC,KAAvB,CAA8BC,MAA9B,CAAsC,CACnD,GAAMC,CAAAA,QAAQ,CAAG,eAAKF,KAAK,CAACG,IAAX,CAAiBH,KAAK,CAACG,IAAvB,CAA6BJ,KAA7B,CAAjB,CAEA,GAAMK,CAAAA,SAAS,CAAG,iBAAI,cAAIL,KAAJ,CAAWG,QAAX,CAAJ,CAA0BL,YAA1B,CAAlB,CAEA,GAAMQ,CAAAA,CAAC,CAAGJ,MAAM,CAACK,OAAjB,CACA,GAAMC,CAAAA,CAAC,CAAGN,MAAM,CAACO,IAAjB,CACA,GAAMC,CAAAA,CAAC,CAAGR,MAAM,CAACS,SAAjB,CAEA,GAAMC,CAAAA,EAAE,CAAG,mBAAS,CAAC,CAAV,CAAaX,KAAK,CAACY,QAAnB,CAAX,CACA,GAAMC,CAAAA,EAAE,CAAG,cAAIZ,MAAM,CAACa,OAAX,CAAoBd,KAAK,CAACe,QAA1B,CAAX,CAEA,GAAMC,CAAAA,IAAI,CAAG,iBAAOX,CAAP,CAAU,mBAAS,CAAT,CAAY,eAAK,mBAASI,CAAT,CAAYF,CAAZ,CAAL,CAAZ,CAAV,CAAb,CACA,GAAMU,CAAAA,MAAM,CAAG,eAAK,iBAAOR,CAAP,CAAUF,CAAV,CAAL,CAAf,CACA,GAAMW,CAAAA,MAAM,CAAG,mBAASD,MAAT,CAAiB,eAAK,cAAI,CAAJ,CAAO,mBAASD,IAAT,CAAeA,IAAf,CAAP,CAAL,CAAjB,CAAf,CAEA,GAAMG,CAAAA,CAAC,CAAG,iBAAOf,SAAP,CAAkB,IAAlB,CAAV,CAEA,GAAMgB,CAAAA,IAAI,CAAG,cAAI,mBAASF,MAAT,CAAiBC,CAAjB,CAAJ,CAAb,CACA,GAAME,CAAAA,IAAI,CAAG,cAAI,mBAASH,MAAT,CAAiBC,CAAjB,CAAJ,CAAb,CAGA,GAAMG,CAAAA,mBAAmB,CAAG,cAAI,mBAAS,CAAC,CAAV,CAAaN,IAAb,CAAmBC,MAAnB,CAA2BE,CAA3B,CAAJ,CAA5B,CACA,GAAMI,CAAAA,gBAAgB,CAAG,mBACvBD,mBADuB,CAEvB,cACE,mBAASF,IAAT,CAAe,iBAAO,cAAIT,EAAJ,CAAQ,mBAASK,IAAT,CAAeC,MAAf,CAAuBJ,EAAvB,CAAR,CAAP,CAA4CK,MAA5C,CAAf,CADF,CAEE,mBAASL,EAAT,CAAaQ,IAAb,CAFF,CAFuB,CAAzB,CAOA,GAAMG,CAAAA,mBAAmB,CAAG,cAAIvB,MAAM,CAACa,OAAX,CAAoBS,gBAApB,CAA5B,CAEA,GAAME,CAAAA,mBAAmB,CAAG,cAC1B,mBAAST,IAAT,CAAeC,MAAf,CAAuBM,gBAAvB,CAD0B,CAE1B,mBACED,mBADF,CAEE,cACE,mBAASD,IAAT,CAAe,cAAIV,EAAJ,CAAQ,mBAASK,IAAT,CAAeC,MAAf,CAAuBJ,EAAvB,CAAR,CAAf,CADF,CAEE,mBAASK,MAAT,CAAiBL,EAAjB,CAAqBO,IAArB,CAFF,CAFF,CAF0B,CAA5B,CAYA,GAAMM,CAAAA,wBAAwB,CAAG,cAAI,mBAAS,CAAC,CAAV,CAAaT,MAAb,CAAqBE,CAArB,CAAJ,CAAjC,CACA,GAAMQ,CAAAA,wBAAwB,CAAG,cAC/B1B,MAAM,CAACa,OADwB,CAE/B,mBACEY,wBADF,CAEE,cAAIb,EAAJ,CAAQ,mBAAS,cAAIF,EAAJ,CAAQ,mBAASM,MAAT,CAAiBJ,EAAjB,CAAR,CAAT,CAAwCM,CAAxC,CAAR,CAFF,CAF+B,CAAjC,CAOA,GAAMS,CAAAA,wBAAwB,CAAG,mBAC/BF,wBAD+B,CAE/B,cACE,mBAASf,EAAT,CAAa,cAAI,mBAASQ,CAAT,CAAYF,MAAZ,CAAJ,CAAyB,CAAzB,CAAb,CADF,CAEE,mBAASE,CAAT,CAAYN,EAAZ,CAAgBI,MAAhB,CAAwBA,MAAxB,CAFF,CAF+B,CAAjC,CASA,GAAMY,CAAAA,YAAY,CAAG7B,KAAK,CAAC6B,YAAN,CACjB7B,KAAK,CAAC6B,YADW,CAEjB,GAAIC,+BAAJ,CAAkB,CAAlB,CAFJ,CAIA,GAAMC,CAAAA,cAAc,CAAG,eACrB,cAAI9B,MAAM,CAAC+B,iBAAX,CAA8B,cAAI/B,MAAM,CAACS,SAAX,CAAsB,CAAtB,CAA9B,CADqB,CAErB,eACE,mBAASmB,YAAT,CAAuB5B,MAAM,CAACa,OAA9B,CADF,CAEE,sBAAYd,KAAK,CAACe,QAAlB,CAA4Bd,MAAM,CAACa,OAAnC,CAFF,CAGE,mBAASd,KAAK,CAACe,QAAf,CAAyBd,MAAM,CAACa,OAAhC,CAHF,CAFqB,CAAvB,CAQA,GAAMmB,CAAAA,UAAU,CAAG,mBAAS,iBAAIjC,KAAK,CAACY,QAAV,CAAT,CAA8BX,MAAM,CAACiC,kBAArC,CAAnB,CACA,GAAMC,CAAAA,cAAc,CAAG,aACrB,aAAGlC,MAAM,CAACS,SAAV,CAAqB,CAArB,CADqB,CAErB,mBACE,iBAAI,cAAIT,MAAM,CAACa,OAAX,CAAoBd,KAAK,CAACe,QAA1B,CAAJ,CADF,CAEEd,MAAM,CAACmC,yBAFT,CAFqB,CAAvB,CAQA,MAAO,gBAAM,CACX,cAAIP,YAAJ,CAAkB7B,KAAK,CAACe,QAAxB,CADW,CAEX,eACE,mBAASC,IAAT,CAAe,CAAf,CADF,CAEE,CACE,cAAIhB,KAAK,CAACe,QAAV,CAAoBS,mBAApB,CADF,CAEE,cAAIxB,KAAK,CAACY,QAAV,CAAoBa,mBAApB,CAFF,CAFF,CAME,CACE,cAAIzB,KAAK,CAACe,QAAV,CAAoBY,wBAApB,CADF,CAEE,cAAI3B,KAAK,CAACY,QAAV,CAAoBgB,wBAApB,CAFF,CANF,CAFW,CAaX,cAAI5B,KAAK,CAACG,IAAV,CAAgBJ,KAAhB,CAbW,CAcX,eAAK,aAAGgC,cAAH,CAAmB,cAAIE,UAAJ,CAAgBE,cAAhB,CAAnB,CAAL,CAA0D,CACxD,eAAK,cAAIlC,MAAM,CAACS,SAAX,CAAsB,CAAtB,CAAL,CAA+B,CAC7B,cAAIV,KAAK,CAACY,QAAV,CAAoB,CAApB,CAD6B,CAE7B,cAAIZ,KAAK,CAACe,QAAV,CAAoBd,MAAM,CAACa,OAA3B,CAF6B,CAA/B,CADwD,CAKxD,cAAId,KAAK,CAACqC,QAAV,CAAoB,CAApB,CALwD,CAA1D,CAdW,CAAN,CAAP,CAsBD","sourcesContent":["import {\n cond,\n sub,\n divide,\n multiply,\n sqrt,\n add,\n block,\n set,\n exp,\n sin,\n cos,\n eq,\n or,\n neq,\n and,\n lessThan,\n greaterThan,\n} from '../base';\nimport { min, abs } from '../derived';\nimport AnimatedValue from '../core/InternalAnimatedValue';\n\nconst MAX_STEPS_MS = 64;\n\nexport default function spring(clock, state, config) {\n const lastTime = cond(state.time, state.time, clock);\n\n const deltaTime = min(sub(clock, lastTime), MAX_STEPS_MS);\n\n const c = config.damping;\n const m = config.mass;\n const k = config.stiffness;\n\n const v0 = multiply(-1, state.velocity);\n const x0 = sub(config.toValue, state.position);\n\n const zeta = divide(c, multiply(2, sqrt(multiply(k, m)))); // damping ratio\n const omega0 = sqrt(divide(k, m)); // undamped angular frequency of the oscillator (rad/ms)\n const omega1 = multiply(omega0, sqrt(sub(1, multiply(zeta, zeta)))); // exponential decay\n\n const t = divide(deltaTime, 1000); // in seconds\n\n const sin1 = sin(multiply(omega1, t));\n const cos1 = cos(multiply(omega1, t));\n\n // under damped\n const underDampedEnvelope = exp(multiply(-1, zeta, omega0, t));\n const underDampedFrag1 = multiply(\n underDampedEnvelope,\n add(\n multiply(sin1, divide(add(v0, multiply(zeta, omega0, x0)), omega1)),\n multiply(x0, cos1)\n )\n );\n const underDampedPosition = sub(config.toValue, underDampedFrag1);\n // This looks crazy -- it's actually just the derivative of the oscillation function\n const underDampedVelocity = sub(\n multiply(zeta, omega0, underDampedFrag1),\n multiply(\n underDampedEnvelope,\n sub(\n multiply(cos1, add(v0, multiply(zeta, omega0, x0))),\n multiply(omega1, x0, sin1)\n )\n )\n );\n\n // critically damped\n const criticallyDampedEnvelope = exp(multiply(-1, omega0, t));\n const criticallyDampedPosition = sub(\n config.toValue,\n multiply(\n criticallyDampedEnvelope,\n add(x0, multiply(add(v0, multiply(omega0, x0)), t))\n )\n );\n const criticallyDampedVelocity = multiply(\n criticallyDampedEnvelope,\n add(\n multiply(v0, sub(multiply(t, omega0), 1)),\n multiply(t, x0, omega0, omega0)\n )\n );\n\n // conditions for stopping the spring animations\n const prevPosition = state.prevPosition\n ? state.prevPosition\n : new AnimatedValue(0);\n\n const isOvershooting = cond(\n and(config.overshootClamping, neq(config.stiffness, 0)),\n cond(\n lessThan(prevPosition, config.toValue),\n greaterThan(state.position, config.toValue),\n lessThan(state.position, config.toValue)\n )\n );\n const isVelocity = lessThan(abs(state.velocity), config.restSpeedThreshold);\n const isDisplacement = or(\n eq(config.stiffness, 0),\n lessThan(\n abs(sub(config.toValue, state.position)),\n config.restDisplacementThreshold\n )\n );\n\n return block([\n set(prevPosition, state.position),\n cond(\n lessThan(zeta, 1),\n [\n set(state.position, underDampedPosition),\n set(state.velocity, underDampedVelocity),\n ],\n [\n set(state.position, criticallyDampedPosition),\n set(state.velocity, criticallyDampedVelocity),\n ]\n ),\n set(state.time, clock),\n cond(or(isOvershooting, and(isVelocity, isDisplacement)), [\n cond(neq(config.stiffness, 0), [\n set(state.velocity, 0),\n set(state.position, config.toValue),\n ]),\n set(state.finished, 1),\n ]),\n ]);\n}\n"]},"metadata":{},"sourceType":"script"}