/**
 * Minified by jsDelivr using Terser v5.37.0.
 * Original file: /npm/f1@8.0.0/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
var kimi=require("kimi"),getTween=require("tween-function"),noop=require("no-op"),extend=require("deep-extend"),Emitter=require("events").EventEmitter,getParser=require("./lib/parsers/getParser"),parseStates=require("./lib/states/parseStates"),parseTransitions=require("./lib/transitions/parseTransitions"),parseTargets=require("./lib/targets/parseTargets"),numInstances=0;function f1(t){if(!(this instanceof f1))return new f1(t);var e=this,i=(t=t||{}).onUpdate||noop,s=t.onState||noop;numInstances++,this.onState=function(){e.emit.apply(e,getEventArgs("state",arguments)),s&&s.apply(void 0,arguments)},this.onUpdate=function(){e.emit.apply(e,getEventArgs("update",arguments)),i&&i.apply(void 0,arguments)},this.name=t.name||"ui_"+numInstances,this.isInitialized=!1,this.data=null,this.defTargets=null,this.defStates=null,this.defTransitions=null,this.parser=null,t.transitions&&this.transitions(t.transitions),t.states&&this.states(t.states),t.targets&&this.targets(t.targets),t.parsers&&this.parsers(t.parsers),this.driver=kimi({manualStep:void 0!==t.autoUpdate&&!t.autoUpdate,onState:_onState.bind(this),onUpdate:_onUpdate.bind(this)})}function getEventArgs(t,e){return(e=Array.prototype.slice.apply(e)).unshift(t),e}function _onUpdate(t,e,i,s){var r,a;if(void 0!==t&&void 0!==e&&void 0!==i){if(this.data=t,this.state=e,this.time=i,this.duration=s,this.parsedTargets)for(var n=0,o=this.parsedTargets.length;n<o;n+=2)r=this.parsedTargets[n],a=this.parsedTargets[n+1],this.apply(r,a);void 0!==s&&this.onUpdate(t,e,i,s)}}function _onState(t,e){this.data=t,this.state=e,this.time=0,this.duration=void 0,this.onState(t,e)}module.exports=f1,f1.prototype=extend(Emitter.prototype,{targets:function(t){return this.defTargets=t,this.parsedTargets=parseTargets(t),this},states:function(t){return this.defStates=t,this},transitions:function(t){return this.defTransitions=Array.isArray(t)?t:Array.prototype.slice.apply(arguments),this},parsers:function(t){if("object"!=typeof t||Array.isArray(t))throw new Error("parsers should be an Object that contains arrays of functions under init and update");return this.parser=this.parser||getParser(),this.parser.add(t),this},init:function(t){if(!this.isInitialized){this.isInitialized=!0;var e=this.driver;if(!this.defStates)throw new Error("You must define states before attempting to call init");if(!this.defTransitions)throw new Error("You must define transitions before attempting to call init");if(!this.parser)throw new Error("You must define parsers before attempting to call init");if(!this.defTargets)throw new Error("You must define targets before attempting to call init");parseStates(e,this.defStates),parseTransitions(e,this.defStates,this.defTransitions),this.parser.init(this.defStates,this.defTargets,this.defTransitions),e.init(t),global.__f1__&&global.__f1__.init(this)}return this},destroy:function(){global.__f1__&&global.__f1__.destroy(this),this.driver.destroy()},go:function(t,e){return this.driver.go(t,e),this},set:function(t){return this.driver.set(t),this},step:function(t){return this.driver.step(t),this},update:function(){return _onUpdate.call(this,this.data,this.state,this.time,this.duration),this},apply:function(t,e,i){var s,r=this.data,a=this.parser;if(i&&(a=new getParser(i)),a){"string"==typeof t&&(t=t.split(".")),s=r[t[0]];for(var n=1,o=t.length;n<o;n++)s=s[t[n]];a.update(e,s)}}});
//# sourceMappingURL=/sm/c0b7d67bf9bd07fe6bc1f26041e8169ff1eab034935f28f110052e0716c32213.map