UNPKG

fabric

Version:

Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.

3 lines (2 loc) 1.12 kB
import{objectWithoutProperties as t,objectSpread2 as e}from"../../../_virtual/_rollupPluginBabelHelpers.min.mjs";import{Color as a}from"../../color/Color.min.mjs";import{halfPI as o}from"../../constants.min.mjs";import{capValue as s}from"../misc/capValue.min.mjs";import{AnimationBase as r}from"./AnimationBase.min.mjs";const n=["startValue","endValue","easing","onChange","onComplete","abort"],i=(t,e,a,s)=>e+a*(1-Math.cos(t/s*o)),l=t=>t&&((e,o,s)=>t(new a(e).toRgba(),o,s));class m extends r{constructor(o){let{startValue:s,endValue:r,easing:m=i,onChange:u,onComplete:p,abort:c}=o,h=t(o,n);const b=new a(s).getSource(),g=new a(r).getSource();super(e(e({},h),{},{startValue:b,byValue:g.map(((t,e)=>t-b[e])),easing:m,onChange:l(u),onComplete:l(p),abort:l(c)}))}calculate(t){const[e,a,o,r]=this.startValue.map(((e,a)=>this.easing(t,e,this.byValue[a],this.duration,a))),n=[...[e,a,o].map(Math.round),s(0,r,1)];return{value:n,valueProgress:n.map(((t,e)=>0!==this.byValue[e]?Math.abs((t-this.startValue[e])/this.byValue[e]):0)).find((t=>0!==t))||0}}}export{m as ColorAnimation}; //# sourceMappingURL=ColorAnimation.min.mjs.map