{"version":3,"file":"velocity.mjs","sources":["../../../../../src/animation/generators/utils/velocity.ts"],"sourcesContent":["import { velocityPerSecond } from \"motion-utils\"\nimport { KeyframeGenerator } from \"../../types\"\n\nconst velocitySampleDuration = 5 // ms\n\nexport function getGeneratorVelocity(\n resolveValue: (v: number) => number,\n t: number,\n current: number\n) {\n const prevT = Math.max(t - velocitySampleDuration, 0)\n return velocityPerSecond(current - resolveValue(prevT), t - prevT)\n}\n\n/**\n * A generator's velocity at time t in units/second: analytical where the\n * generator provides it (springs), otherwise by finite difference. Before\n * the animation has started this is its initial velocity.\n */\nexport function calcGeneratorVelocity(\n generator: KeyframeGenerator,\n t: number,\n initialVelocity = 0\n): number {\n if (t <= 0) return initialVelocity\n\n return generator.velocity\n ? generator.velocity(t)\n : getGeneratorVelocity(\n (s) => generator.next(s).value as number,\n t,\n generator.next(t).value as number\n )\n}\n"],"names":[],"mappings":";;AAGA,MAAM,sBAAsB,GAAG,CAAC,CAAA;SAEhB,oBAAoB,CAChC,YAAmC,EACnC,CAAS,EACT,OAAe,EAAA;AAEf,IAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,sBAAsB,EAAE,CAAC,CAAC;AACrD,IAAA,OAAO,iBAAiB,CAAC,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;AACtE;AAEA;;;;AAIG;AACG,SAAU,qBAAqB,CACjC,SAAiC,EACjC,CAAS,EACT,eAAe,GAAG,CAAC,EAAA;IAEnB,IAAI,CAAC,IAAI,CAAC;AAAE,QAAA,OAAO,eAAe;IAElC,OAAO,SAAS,CAAC;AACb,UAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;AACtB,UAAE,oBAAoB,CAChB,CAAC,CAAC,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAe,EACxC,CAAC,EACD,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAe,CACpC;AACX;;;;"}