import{aR as o,aS as h,aT as E,aU as m,aV as w,aW as d,aX as n,R as B}from"./index-CDrXokXW.js";import{F as C}from"./KHR_interactivity-BtMudStn.js";import{R as i,b as f}from"./declarationMapper-Lanf6XPr.js";import"./index-DWyDLubb.js";import"./objectModelMapping-CGWnurZP.js";var l;(function(e){e[e.CircleEase=0]="CircleEase",e[e.BackEase=1]="BackEase",e[e.BounceEase=2]="BounceEase",e[e.CubicEase=3]="CubicEase",e[e.ElasticEase=4]="ElasticEase",e[e.ExponentialEase=5]="ExponentialEase",e[e.PowerEase=6]="PowerEase",e[e.QuadraticEase=7]="QuadraticEase",e[e.QuarticEase=8]="QuarticEase",e[e.QuinticEase=9]="QuinticEase",e[e.SineEase=10]="SineEase",e[e.BezierCurveEase=11]="BezierCurveEase"})(l||(l={}));function k(e,...s){switch(e){case 11:return new n(...s);case 0:return new d;case 1:return new w(...s);case 2:return new m(...s);case 3:return new E;case 4:return new h(...s);case 5:return new o(...s);default:throw new Error("Easing type not yet implemented")}}class p extends C{constructor(s){super(s),this.config=s,this._easingFunctions={},this.type=this.registerDataInput("type",i,11),this.mode=this.registerDataInput("mode",f,0),this.parameters=this.registerDataInput("parameters",i,[1,0,0,1]),this.easingFunction=this.registerDataOutput("easingFunction",i)}_updateOutputs(s){const a=this.type.getValue(s),t=this.mode.getValue(s),u=this.parameters.getValue(s);if(a===void 0||t===void 0)return;const r=`${a}-${t}-${u.join("-")}`;if(!this._easingFunctions[r]){const c=k(a,...u);c.setEasingMode(t),this._easingFunctions[r]=c}this.easingFunction.setValue(this._easingFunctions[r],s)}getClassName(){return"FlowGraphEasingBlock"}}B("FlowGraphEasingBlock",p);export{l as EasingFunctionType,p as FlowGraphEasingBlock};
