{"version":3,"sources":["webpack://rive/webpack/universalModuleDefinition","webpack://rive/./npm/canvas_advanced/canvas_advanced.mjs","webpack://rive/./src/utils/index.ts","webpack://rive/./src/utils/registerTouchInteractions.js","webpack://rive/webpack/bootstrap","webpack://rive/webpack/runtime/define property getters","webpack://rive/webpack/runtime/hasOwnProperty shorthand","webpack://rive/webpack/runtime/make namespace object","webpack://rive/./src/rive.ts"],"names":[],"mappings":"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","file":"rive.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"rive\"] = factory();\n\telse\n\t\troot[\"rive\"] = factory();\n})(this, function() {\nreturn ","\nvar Rive = (() => {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n \n return (\nfunction(Rive) {\n Rive = Rive || {};\n\n\nnull;var m;m||(m=typeof Rive !== 'undefined' ? Rive : {});var aa,ba;m.ready=new Promise(function(b,a){aa=b;ba=a});\nfunction ca(){function b(h){const g=d;c=a=0;d=new Map;g.forEach(l=>{try{l(h)}catch(k){console.error(k)}});this.La();e&&e.fb()}let a=0,c=0,d=new Map,e=null,f=null;this.requestAnimationFrame=function(h){a||(a=requestAnimationFrame(b.bind(this)));const g=++c;d.set(g,h);return g};this.cancelAnimationFrame=function(h){d.delete(h);a&&0==d.size&&(cancelAnimationFrame(a),a=0)};this.cb=function(h){f&&(document.body.remove(f),f=null);h||(f=document.createElement(\"div\"),f.style.backgroundColor=\"black\",f.style.position=\n\"fixed\",f.style.right=0,f.style.top=0,f.style.color=\"white\",f.style.padding=\"4px\",f.innerHTML=\"RIVE FPS\",h=function(g){f.innerHTML=\"RIVE FPS \"+g.toFixed(1)},document.body.appendChild(f));e=new function(){let g=0,l=0;this.fb=function(){var k=performance.now();l?(++g,k-=l,1E3>b;a.has(d)&&clearTimeout(a.get(d));a.set(d,setTimeout(function(){a.delete(d);0==a.length?c=-Infinity:d==c&&(c=Math.max(...a.keys()),console.assert(cda.Oa-z.Oa);w=p.push(C);h!=w&&(a.bufferData(a.ARRAY_BUFFER,8*w,a.DYNAMIC_DRAW),h=w);w=0;for(var G of q)a.bufferSubData(a.ARRAY_BUFFER,w,G.Aa),w+=4*G.Aa.length;console.assert(w==4*C);for(var N of q)a.bufferSubData(a.ARRAY_BUFFER,w,N.Ra),w+=4*N.Ra.length;console.assert(w==8*C);w=r.push(F);g!=w&&(a.bufferData(a.ELEMENT_ARRAY_BUFFER,2*w,a.DYNAMIC_DRAW),g=w);G=0;for(var X of q)a.bufferSubData(a.ELEMENT_ARRAY_BUFFER,\nG,X.indices),G+=2*X.indices.length;console.assert(G==2*F);X=0;N=!0;w=G=0;for(const z of q){z.image.va!=X&&(a.bindTexture(a.TEXTURE_2D,z.image.Va||null),X=z.image.va);z.rb?(a.scissor(z.Ea,A-z.Fa-z.Ka,z.yb,z.Ka),N=!0):N&&(a.scissor(0,A-v,u,v),N=!1);q=2/u;const da=-2/v;a.uniform4f(e,z.la[0]*q*z.ra,z.la[1]*da*z.sa,z.la[2]*q*z.ra,z.la[3]*da*z.sa);a.uniform2f(f,z.la[4]*q*z.ra+q*(z.Ea-z.pb*z.ra)-1,z.la[5]*da*z.sa+da*(z.Fa-z.qb*z.sa)+1);a.vertexAttribPointer(0,2,a.FLOAT,!1,0,w);a.vertexAttribPointer(1,2,\na.FLOAT,!1,0,w+4*C);a.drawElements(a.TRIANGLES,z.indices.length,a.UNSIGNED_SHORT,G);w+=4*z.Aa.length;G+=2*z.indices.length}console.assert(w==4*C);console.assert(G==2*F)}};this.canvas=function(){return b()&&a.canvas}};\nRive.onRuntimeInitialized=function(){function b(n){switch(n){case k.srcOver:return\"source-over\";case k.screen:return\"screen\";case k.overlay:return\"overlay\";case k.darken:return\"darken\";case k.lighten:return\"lighten\";case k.colorDodge:return\"color-dodge\";case k.colorBurn:return\"color-burn\";case k.hardLight:return\"hard-light\";case k.softLight:return\"soft-light\";case k.difference:return\"difference\";case k.exclusion:return\"exclusion\";case k.multiply:return\"multiply\";case k.hue:return\"hue\";case k.saturation:return\"saturation\";\ncase k.color:return\"color\";case k.luminosity:return\"luminosity\"}}function a(n){return\"rgba(\"+((16711680&n)>>>16)+\",\"+((65280&n)>>>8)+\",\"+((255&n)>>>0)+\",\"+((4278190080&n)>>>24)/255+\")\"}function c(){0n)throw\"restore() called without matching save().\";this.fa.splice(n);this.da.push(this.Z.restore.bind(this.Z))},\ntransform:function(n){const t=this.fa,y=t.length-6;t.splice(y,6,t[y]*n.xx+t[y+2]*n.xy,t[y+1]*n.xx+t[y+3]*n.xy,t[y]*n.yx+t[y+2]*n.yy,t[y+1]*n.yx+t[y+3]*n.yy,t[y]*n.tx+t[y+2]*n.ty+t[y+4],t[y+1]*n.tx+t[y+3]*n.ty+t[y+5]);this.da.push(this.Z.transform.bind(this.Z,n.xx,n.xy,n.yx,n.yy,n.tx,n.ty))},rotate:function(n){const t=Math.sin(n);n=Math.cos(n);this.transform({xx:n,xy:t,yx:-t,yy:n,tx:0,ty:0})},_drawPath:function(n,t){this.da.push(t.draw.bind(t,this.Z,n.ga,n.Ca===u?\"evenodd\":\"nonzero\"))},_drawImage:function(n,\nt,y){var D=n.Ta;if(D){var B=this.Z,I=b(t);this.da.push(function(){B.globalCompositeOperation=I;B.globalAlpha=y;B.drawImage(D,0,0);B.globalAlpha=1})}},_getMatrix:function(n){const t=this.fa,y=t.length-6;for(let D=0;6>D;++D)n[D]=t[y+D]},_drawImageMesh:function(n,t,y,D,B,I,L,R,T,S){var U=this.Z.canvas.width,H=this.Z.canvas.height;const pb=T-L,qb=S-R;L=Math.max(L,0);R=Math.max(R,0);T=Math.min(T,U);S=Math.min(S,H);const sa=T-L,ta=S-R;console.assert(sa<=Math.min(pb,U));console.assert(ta<=Math.min(qb,H));\nif(!(0>=sa||0>=ta)){T=saH&&(S*=H/ia,ia=H);ja>H&&(U*=H/ja,ja=H);A||(A=new m.DynamicRectanizer(H),A.reset(512,512));H=A.addRect(ia,ja);0>H&&(c(),w.add(this),H=A.addRect(ia,ja),console.assert(0<=H));var rb=H&65535,sb=H>>16;G.push({la:this.fa.slice(this.fa.length-6),image:n,Ea:rb,Fa:sb,pb:L,qb:R,yb:ia,Ka:ja,ra:S,sa:U,Aa:new Float32Array(D),Ra:new Float32Array(B),indices:new Uint16Array(I),rb:T,Oa:n.va<<1|(T?1:0)});N+=D.length;X+=\nI.length;var na=this.Z,Yb=b(t);this.da.push(function(){na.save();na.resetTransform();na.globalCompositeOperation=Yb;na.globalAlpha=y;na.drawImage(fa.canvas(),rb,sb,ia,ja,L,R,sa,ta);na.restore()})}},_clipPath:function(n){this.da.push(this.Z.clip.bind(this.Z,n.ga,n.Ca===u?\"evenodd\":\"nonzero\"))},clear:function(){w.add(this);this.da.push(this.Z.clearRect.bind(this.Z,0,0,this.Ba.width,this.Ba.height))},flush:function(){},translate:function(n,t){this.transform({xx:1,xy:0,yx:0,yy:1,tx:n,ty:t})}});Rive.makeRenderer=\nfunction(n){return new z(n)};Rive.renderFactory={makeRenderPaint:function(){return new F},makeRenderPath:function(){return new C},makeRenderImage:function(){return new q}};let da=Rive.load,Xa=null;Rive.load=function(n){return new Promise(function(t){let y=null;Xa={total:0,loaded:0,ready:function(){t(y)}};y=da(n);0==Xa.total&&t(y)})};d=new ca;Rive.requestAnimationFrame=d.requestAnimationFrame.bind(d);Rive.cancelAnimationFrame=d.cancelAnimationFrame.bind(d);Rive.enableFPSCounter=d.cb.bind(d);Rive.disableFPSCounter=\nd.$a;d.La=c;Rive.cleanup=function(){A&&A.delete()}};var ha=Object.assign({},m),ka=\"object\"==typeof window,la=\"function\"==typeof importScripts,x=\"\",ma,oa;\nif(ka||la)la?x=self.location.href:\"undefined\"!=typeof document&&document.currentScript&&(x=document.currentScript.src),_scriptDir&&(x=_scriptDir),0!==x.indexOf(\"blob:\")?x=x.substr(0,x.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1):x=\"\",la&&(oa=b=>{var a=new XMLHttpRequest;a.open(\"GET\",b,!1);a.responseType=\"arraybuffer\";a.send(null);return new Uint8Array(a.response)}),ma=(b,a,c)=>{var d=new XMLHttpRequest;d.open(\"GET\",b,!0);d.responseType=\"arraybuffer\";d.onload=()=>{200==d.status||0==d.status&&d.response?\na(d.response):c()};d.onerror=c;d.send(null)};var pa=m.print||console.log.bind(console),qa=m.printErr||console.warn.bind(console);Object.assign(m,ha);ha=null;var ra;m.wasmBinary&&(ra=m.wasmBinary);var noExitRuntime=m.noExitRuntime||!0;\"object\"!=typeof WebAssembly&&ua(\"no native wasm support detected\");var va,wa=!1,xa=\"undefined\"!=typeof TextDecoder?new TextDecoder(\"utf8\"):void 0;\nfunction ya(b,a,c){var d=a+c;for(c=a;b[c]&&!(c>=d);)++c;if(16e?d+=String.fromCharCode(e):(e-=65536,d+=String.fromCharCode(55296|e>>10,56320|e&1023))}}else d+=String.fromCharCode(e)}return d}var za,Aa,E,Ba,Ca,Da,J,Ea,Fa;\nfunction Ga(){var b=va.buffer;za=b;m.HEAP8=Aa=new Int8Array(b);m.HEAP16=Ba=new Int16Array(b);m.HEAP32=Da=new Int32Array(b);m.HEAPU8=E=new Uint8Array(b);m.HEAPU16=Ca=new Uint16Array(b);m.HEAPU32=J=new Uint32Array(b);m.HEAPF32=Ea=new Float32Array(b);m.HEAPF64=Fa=new Float64Array(b)}var Ha,Ia=[],Ja=[],Ka=[];function La(){var b=m.preRun.shift();Ia.unshift(b)}var Ma=0,Na=null,Oa=null;\nfunction ua(b){if(m.onAbort)m.onAbort(b);b=\"Aborted(\"+b+\")\";qa(b);wa=!0;b=new WebAssembly.RuntimeError(b+\". Build with -sASSERTIONS for more info.\");ba(b);throw b;}function Pa(){return K.startsWith(\"data:application/octet-stream;base64,\")}var K;K=\"canvas_advanced.wasm\";if(!Pa()){var Qa=K;K=m.locateFile?m.locateFile(Qa,x):x+Qa}function Ra(){var b=K;try{if(b==K&&ra)return new Uint8Array(ra);if(oa)return oa(b);throw\"both async and sync fetching of the wasm failed\";}catch(a){ua(a)}}\nfunction Sa(){if(!ra&&(ka||la)){if(\"function\"==typeof fetch&&!K.startsWith(\"file://\"))return fetch(K,{credentials:\"same-origin\"}).then(function(b){if(!b.ok)throw\"failed to load wasm binary file at '\"+K+\"'\";return b.arrayBuffer()}).catch(function(){return Ra()});if(ma)return new Promise(function(b,a){ma(K,function(c){b(new Uint8Array(c))},a)})}return Promise.resolve().then(function(){return Ra()})}function Ta(b){for(;0=a?\"_\"+b:b}function Va(b,a){b=Ua(b);return function(){null;return a.apply(this,arguments)}}var M=[{},{value:void 0},{value:null},{value:!0},{value:!1}],Wa=[];\nfunction Ya(b){var a=Error,c=Va(b,function(d){this.name=b;this.message=d;d=Error(d).stack;void 0!==d&&(this.stack=this.toString()+\"\\n\"+d.replace(/^Error(:[^\\n]*)?\\n/,\"\"))});c.prototype=Object.create(a.prototype);c.prototype.constructor=c;c.prototype.toString=function(){return void 0===this.message?this.name:this.name+\": \"+this.message};return c}var Za=void 0;function O(b){throw new Za(b);}\nvar $a=b=>{b||O(\"Cannot use deleted val. handle = \"+b);return M[b].value},P=b=>{switch(b){case void 0:return 1;case null:return 2;case !0:return 3;case !1:return 4;default:var a=Wa.length?Wa.pop():M.length;M[a]={ya:1,value:b};return a}},ab=void 0,bb=void 0;function Q(b){for(var a=\"\";E[b];)a+=bb[E[b++]];return a}var cb=[];function db(){for(;cb.length;){var b=cb.pop();b.U.ka=!1;b[\"delete\"]()}}var eb=void 0,V={};\nfunction fb(b,a){for(void 0===a&&O(\"ptr should not be undefined\");b.$;)a=b.na(a),b=b.$;return a}var gb={};function hb(b){b=ib(b);var a=Q(b);jb(b);return a}function kb(b,a){var c=gb[b];void 0===c&&O(a+\" has unknown type \"+hb(b));return c}function lb(){}var mb=!1;function nb(b){--b.count.value;0===b.count.value&&(b.aa?b.ca.ha(b.aa):b.X.V.ha(b.W))}function ob(b,a,c){if(a===c)return b;if(void 0===c.$)return null;b=ob(b,a,c.$);return null===b?null:c.ab(b)}var tb={};\nfunction ub(b,a){a=fb(b,a);return V[a]}var vb=void 0;function wb(b){throw new vb(b);}function xb(b,a){a.X&&a.W||wb(\"makeClassHandle requires ptr and ptrType\");!!a.ca!==!!a.aa&&wb(\"Both smartPtrType and smartPtr must be specified\");a.count={value:1};return yb(Object.create(b,{U:{value:a}}))}\nfunction yb(b){if(\"undefined\"===typeof FinalizationRegistry)return yb=a=>a,b;mb=new FinalizationRegistry(a=>{nb(a.U)});yb=a=>{var c=a.U;c.aa&&mb.register(a,{U:c},a);return a};lb=a=>{mb.unregister(a)};return yb(b)}var zb={};function Ab(b){for(;b.length;){var a=b.pop();b.pop()(a)}}function Bb(b){return this.fromWireType(Da[b>>2])}var Cb={},Db={};\nfunction W(b,a,c){function d(g){g=c(g);g.length!==b.length&&wb(\"Mismatched type converter count\");for(var l=0;l{gb.hasOwnProperty(g)?e[l]=gb[g]:(f.push(g),Cb.hasOwnProperty(g)||(Cb[g]=[]),Cb[g].push(()=>{e[l]=gb[g];++h;h===f.length&&d(e)}))});0===f.length&&d(e)}\nfunction Eb(b){switch(b){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(\"Unknown type size: \"+b);}}\nfunction Y(b,a,c={}){if(!(\"argPackAdvance\"in a))throw new TypeError(\"registerType registeredInstance requires argPackAdvance\");var d=a.name;b||O('type \"'+d+'\" must have a positive integer typeid pointer');if(gb.hasOwnProperty(b)){if(c.lb)return;O(\"Cannot register type '\"+d+\"' twice\")}gb[b]=a;delete Db[b];Cb.hasOwnProperty(b)&&(a=Cb[b],delete Cb[b],a.forEach(e=>e()))}function Fb(b){O(b.U.X.V.name+\" instance already deleted\")}function Gb(){}\nfunction Hb(b,a,c){if(void 0===b[a].Y){var d=b[a];b[a]=function(){b[a].Y.hasOwnProperty(arguments.length)||O(\"Function '\"+c+\"' called with an invalid number of arguments (\"+arguments.length+\") - expects one of (\"+b[a].Y+\")!\");return b[a].Y[arguments.length].apply(this,arguments)};b[a].Y=[];b[a].Y[d.ja]=d}}\nfunction Ib(b,a,c){m.hasOwnProperty(b)?((void 0===c||void 0!==m[b].Y&&void 0!==m[b].Y[c])&&O(\"Cannot register public name '\"+b+\"' twice\"),Hb(m,b,b),m.hasOwnProperty(c)&&O(\"Cannot register multiple overloads of a function with the same number of arguments (\"+c+\")!\"),m[b].Y[c]=a):(m[b]=a,void 0!==c&&(m[b].zb=c))}function Jb(b,a,c,d,e,f,h,g){this.name=b;this.constructor=a;this.ea=c;this.ha=d;this.$=e;this.gb=f;this.na=h;this.ab=g;this.Ma=[]}\nfunction Kb(b,a,c){for(;a!==c;)a.na||O(\"Expected null or instance of \"+c.name+\", got an instance of \"+a.name),b=a.na(b),a=a.$;return b}function Lb(b,a){if(null===a)return this.wa&&O(\"null is not a valid \"+this.name),0;a.U||O('Cannot pass \"'+Mb(a)+'\" as a '+this.name);a.U.W||O(\"Cannot pass deleted object as a pointer of type \"+this.name);return Kb(a.U.W,a.U.X.V,this.V)}\nfunction Nb(b,a){if(null===a){this.wa&&O(\"null is not a valid \"+this.name);if(this.qa){var c=this.xa();null!==b&&b.push(this.ha,c);return c}return 0}a.U||O('Cannot pass \"'+Mb(a)+'\" as a '+this.name);a.U.W||O(\"Cannot pass deleted object as a pointer of type \"+this.name);!this.pa&&a.U.X.pa&&O(\"Cannot convert argument of type \"+(a.U.ca?a.U.ca.name:a.U.X.name)+\" to parameter type \"+this.name);c=Kb(a.U.W,a.U.X.V,this.V);if(this.qa)switch(void 0===a.U.aa&&O(\"Passing raw pointer to smart pointer is illegal\"),\nthis.xb){case 0:a.U.ca===this?c=a.U.aa:O(\"Cannot convert argument of type \"+(a.U.ca?a.U.ca.name:a.U.X.name)+\" to parameter type \"+this.name);break;case 1:c=a.U.aa;break;case 2:if(a.U.ca===this)c=a.U.aa;else{var d=a.clone();c=this.tb(c,P(function(){d[\"delete\"]()}));null!==b&&b.push(this.ha,c)}break;default:O(\"Unsupporting sharing policy\")}return c}\nfunction Ob(b,a){if(null===a)return this.wa&&O(\"null is not a valid \"+this.name),0;a.U||O('Cannot pass \"'+Mb(a)+'\" as a '+this.name);a.U.W||O(\"Cannot pass deleted object as a pointer of type \"+this.name);a.U.X.pa&&O(\"Cannot convert argument of type \"+a.U.X.name+\" to parameter type \"+this.name);return Kb(a.U.W,a.U.X.V,this.V)}\nfunction Pb(b,a,c,d){this.name=b;this.V=a;this.wa=c;this.pa=d;this.qa=!1;this.ha=this.tb=this.xa=this.Na=this.xb=this.sb=void 0;void 0!==a.$?this.toWireType=Nb:(this.toWireType=d?Lb:Ob,this.ba=null)}function Qb(b,a,c){m.hasOwnProperty(b)||wb(\"Replacing nonexistant public symbol\");void 0!==m[b].Y&&void 0!==c?m[b].Y[c]=a:(m[b]=a,m[b].ja=c)}\nfunction Rb(b,a){var c=[];return function(){c.length=0;Object.assign(c,arguments);if(b.includes(\"j\")){var d=m[\"dynCall_\"+b];d=c&&c.length?d.apply(null,[a].concat(c)):d.call(null,a)}else d=Ha.get(a).apply(null,c);return d}}function Z(b,a){b=Q(b);var c=b.includes(\"j\")?Rb(b,a):Ha.get(a);\"function\"!=typeof c&&O(\"unknown function pointer with signature \"+b+\": \"+a);return c}var Sb=void 0;\nfunction Tb(b,a){function c(f){e[f]||gb[f]||(Db[f]?Db[f].forEach(c):(d.push(f),e[f]=!0))}var d=[],e={};a.forEach(c);throw new Sb(b+\": \"+d.map(hb).join([\", \"]));}\nfunction Ub(b,a,c,d,e){var f=a.length;2>f&&O(\"argTypes array size mismatch! Must at least get return value and 'this' types!\");var h=null!==a[1]&&null!==c,g=!1;for(c=1;c>2]);return c}\nfunction Wb(b,a,c){b instanceof Object||O(c+' with invalid \"this\": '+b);b instanceof a.V.constructor||O(c+' incompatible with \"this\" of type '+b.constructor.name);b.U.W||O(\"cannot call emscripten binding method \"+c+\" on deleted object\");return Kb(b.U.W,b.U.X.V,a.V)}function Xb(b){4>1])};case 2:return function(d){return this.fromWireType((c?Da:J)[d>>2])};default:throw new TypeError(\"Unknown integer type: \"+b);}}function Mb(b){if(null===b)return\"null\";var a=typeof b;return\"object\"===a||\"array\"===a||\"function\"===a?b.toString():\"\"+b}\nfunction $b(b,a){switch(a){case 2:return function(c){return this.fromWireType(Ea[c>>2])};case 3:return function(c){return this.fromWireType(Fa[c>>3])};default:throw new TypeError(\"Unknown float type: \"+b);}}\nfunction ac(b,a,c){switch(a){case 0:return c?function(d){return Aa[d]}:function(d){return E[d]};case 1:return c?function(d){return Ba[d>>1]}:function(d){return Ca[d>>1]};case 2:return c?function(d){return Da[d>>2]}:function(d){return J[d>>2]};default:throw new TypeError(\"Unknown integer type: \"+b);}}var bc=\"undefined\"!=typeof TextDecoder?new TextDecoder(\"utf-16le\"):void 0;\nfunction cc(b,a){var c=b>>1;for(var d=c+a/2;!(c>=d)&&Ca[c];)++c;c<<=1;if(32=a/2);++d){var e=Ba[b+2*d>>1];if(0==e)break;c+=String.fromCharCode(e)}return c}function dc(b,a,c){void 0===c&&(c=2147483647);if(2>c)return 0;c-=2;var d=a;c=c<2*b.length?c/2:b.length;for(var e=0;e>1]=b.charCodeAt(e),a+=2;Ba[a>>1]=0;return a-d}function ec(b){return 2*b.length}\nfunction fc(b,a){for(var c=0,d=\"\";!(c>=a/4);){var e=Da[b+4*c>>2];if(0==e)break;++c;65536<=e?(e-=65536,d+=String.fromCharCode(55296|e>>10,56320|e&1023)):d+=String.fromCharCode(e)}return d}function gc(b,a,c){void 0===c&&(c=2147483647);if(4>c)return 0;var d=a;c=d+c-4;for(var e=0;e=f){var h=b.charCodeAt(++e);f=65536+((f&1023)<<10)|h&1023}Da[a>>2]=f;a+=4;if(a+4>c)break}Da[a>>2]=0;return a-d}\nfunction hc(b){for(var a=0,c=0;c=d&&++c;a+=4}return a}var ic={};function jc(b){var a=ic[b];return void 0===a?Q(b):a}var kc=[];function lc(b){var a=kc.length;kc.push(b);return a}function mc(b,a){for(var c=Array(b),d=0;d>2],\"parameter \"+d);return c}var nc=[],oc=[null,[],[]];Za=m.BindingError=Ya(\"BindingError\");m.count_emval_handles=function(){for(var b=0,a=5;aqc;++qc)pc[qc]=String.fromCharCode(qc);bb=pc;m.getInheritedInstanceCount=function(){return Object.keys(V).length};m.getLiveInheritedInstances=function(){var b=[],a;for(a in V)V.hasOwnProperty(a)&&b.push(V[a]);return b};m.flushPendingDeletes=db;m.setDelayFunction=function(b){eb=b;cb.length&&eb&&eb(db)};vb=m.InternalError=Ya(\"InternalError\");\nGb.prototype.isAliasOf=function(b){if(!(this instanceof Gb&&b instanceof Gb))return!1;var a=this.U.X.V,c=this.U.W,d=b.U.X.V;for(b=b.U.W;a.$;)c=a.na(c),a=a.$;for(;d.$;)b=d.na(b),d=d.$;return a===d&&c===b};Gb.prototype.clone=function(){this.U.W||Fb(this);if(this.U.ma)return this.U.count.value+=1,this;var b=yb,a=Object,c=a.create,d=Object.getPrototypeOf(this),e=this.U;b=b(c.call(a,d,{U:{value:{count:e.count,ka:e.ka,ma:e.ma,W:e.W,X:e.X,aa:e.aa,ca:e.ca}}}));b.U.count.value+=1;b.U.ka=!1;return b};\nGb.prototype[\"delete\"]=function(){this.U.W||Fb(this);this.U.ka&&!this.U.ma&&O(\"Object already scheduled for deletion\");lb(this);nb(this.U);this.U.ma||(this.U.aa=void 0,this.U.W=void 0)};Gb.prototype.isDeleted=function(){return!this.U.W};Gb.prototype.deleteLater=function(){this.U.W||Fb(this);this.U.ka&&!this.U.ma&&O(\"Object already scheduled for deletion\");cb.push(this);1===cb.length&&eb&&eb(db);this.U.ka=!0;return this};Pb.prototype.hb=function(b){this.Na&&(b=this.Na(b));return b};\nPb.prototype.Ga=function(b){this.ha&&this.ha(b)};Pb.prototype.argPackAdvance=8;Pb.prototype.readValueFromPointer=Bb;Pb.prototype.deleteObject=function(b){if(null!==b)b[\"delete\"]()};\nPb.prototype.fromWireType=function(b){function a(){return this.qa?xb(this.V.ea,{X:this.sb,W:c,ca:this,aa:b}):xb(this.V.ea,{X:this,W:b})}var c=this.hb(b);if(!c)return this.Ga(b),null;var d=ub(this.V,c);if(void 0!==d){if(0===d.U.count.value)return d.U.W=c,d.U.aa=b,d.clone();d=d.clone();this.Ga(b);return d}d=this.V.gb(c);d=tb[d];if(!d)return a.call(this);d=this.pa?d.Xa:d.pointerType;var e=ob(c,this.V,d.V);return null===e?a.call(this):this.qa?xb(d.V.ea,{X:d,W:e,ca:this,aa:b}):xb(d.V.ea,{X:d,W:e})};\nSb=m.UnboundTypeError=Ya(\"UnboundTypeError\");\nvar sc={l:function(b,a,c){b=Q(b);a=kb(a,\"wrapper\");c=$a(c);var d=[].slice,e=a.V,f=e.ea,h=e.$.ea,g=e.$.constructor;b=Va(b,function(){e.$.Ma.forEach(function(k){if(this[k]===h[k])throw new ab(\"Pure virtual function \"+k+\" must be implemented in JavaScript\");}.bind(this));Object.defineProperty(this,\"__parent\",{value:f});this.__construct.apply(this,d.call(arguments))});f.__construct=function(){this===f&&O(\"Pass correct 'this' to __construct\");var k=g.implement.apply(void 0,[this].concat(d.call(arguments)));\nlb(k);var p=k.U;k.notifyOnDestruction();p.ma=!0;Object.defineProperties(this,{U:{value:p}});yb(this);k=p.W;k=fb(e,k);V.hasOwnProperty(k)?O(\"Tried to register registered instance: \"+k):V[k]=this};f.__destruct=function(){this===f&&O(\"Pass correct 'this' to __destruct\");lb(this);var k=this.U.W;k=fb(e,k);V.hasOwnProperty(k)?delete V[k]:O(\"Tried to unregister unregistered instance: \"+k)};b.prototype=Object.create(f);for(var l in c)b.prototype[l]=c[l];return P(b)},I:function(b){var a=zb[b];delete zb[b];\nvar c=a.xa,d=a.ha,e=a.Ja,f=e.map(h=>h.kb).concat(e.map(h=>h.vb));W([b],f,h=>{var g={};e.forEach((l,k)=>{var p=h[k],r=l.ib,u=l.jb,v=h[k+e.length],q=l.ub,C=l.wb;g[l.eb]={read:F=>p.fromWireType(r(u,F)),write:(F,w)=>{var A=[];q(C,F,v.toWireType(A,w));Ab(A)}}});return[{name:a.name,fromWireType:function(l){var k={},p;for(p in g)k[p]=g[p].read(l);d(l);return k},toWireType:function(l,k){for(var p in g)if(!(p in k))throw new TypeError('Missing field: \"'+p+'\"');var r=c();for(p in g)g[p].write(r,k[p]);null!==\nl&&l.push(d,r);return r},argPackAdvance:8,readValueFromPointer:Bb,ba:d}]})},x:function(){},B:function(b,a,c,d,e){var f=Eb(c);a=Q(a);Y(b,{name:a,fromWireType:function(h){return!!h},toWireType:function(h,g){return g?d:e},argPackAdvance:8,readValueFromPointer:function(h){if(1===c)var g=Aa;else if(2===c)g=Ba;else if(4===c)g=Da;else throw new TypeError(\"Unknown boolean type size: \"+a);return this.fromWireType(g[h>>f])},ba:null})},c:function(b,a,c,d,e,f,h,g,l,k,p,r,u){p=Q(p);f=Z(e,f);g&&(g=Z(h,g));k&&(k=\nZ(l,k));u=Z(r,u);var v=Ua(p);Ib(v,function(){Tb(\"Cannot construct \"+p+\" due to unbound types\",[d])});W([b,a,c],d?[d]:[],function(q){q=q[0];if(d){var C=q.V;var F=C.ea}else F=Gb.prototype;q=Va(v,function(){if(Object.getPrototypeOf(this)!==w)throw new Za(\"Use 'new' to construct \"+p);if(void 0===A.ia)throw new Za(p+\" has no accessible constructor\");var N=A.ia[arguments.length];if(void 0===N)throw new Za(\"Tried to invoke ctor of \"+p+\" with invalid number of parameters (\"+arguments.length+\") - expected (\"+\nObject.keys(A.ia).toString()+\") parameters instead!\");return N.apply(this,arguments)});var w=Object.create(F,{constructor:{value:q}});q.prototype=w;var A=new Jb(p,q,w,u,C,f,g,k);C=new Pb(p,A,!0,!1);F=new Pb(p+\"*\",A,!1,!1);var G=new Pb(p+\" const*\",A,!1,!0);tb[b]={pointerType:F,Xa:G};Qb(v,q);return[C,F,G]})},h:function(b,a,c,d,e,f,h){var g=Vb(c,d);a=Q(a);f=Z(e,f);W([],[b],function(l){function k(){Tb(\"Cannot call \"+p+\" due to unbound types\",g)}l=l[0];var p=l.name+\".\"+a;a.startsWith(\"@@\")&&(a=Symbol[a.substring(2)]);\nvar r=l.V.constructor;void 0===r[a]?(k.ja=c-1,r[a]=k):(Hb(r,a,p),r[a].Y[c-1]=k);W([],g,function(u){u=Ub(p,[u[0],null].concat(u.slice(1)),null,f,h);void 0===r[a].Y?(u.ja=c-1,r[a]=u):r[a].Y[c-1]=u;return[]});return[]})},n:function(b,a,c,d,e,f,h,g){a=Q(a);f=Z(e,f);W([],[b],function(l){l=l[0];var k=l.name+\".\"+a,p={get:function(){Tb(\"Cannot access \"+k+\" due to unbound types\",[c])},enumerable:!0,configurable:!0};p.set=g?()=>{Tb(\"Cannot access \"+k+\" due to unbound types\",[c])}:()=>{O(k+\" is a read-only property\")};\nObject.defineProperty(l.V.constructor,a,p);W([],[c],function(r){r=r[0];var u={get:function(){return r.fromWireType(f(d))},enumerable:!0};g&&(g=Z(h,g),u.set=v=>{var q=[];g(d,r.toWireType(q,v));Ab(q)});Object.defineProperty(l.V.constructor,a,u);return[]});return[]})},k:function(b,a,c,d,e,f){0{Tb(\"Cannot construct \"+g.name+\" due to unbound types\",h)};W([],h,function(k){k.splice(1,0,null);g.V.ia[a-1]=Ub(l,k,null,e,f);return[]});return[]})},a:function(b,a,c,d,e,f,h,g){var l=Vb(c,d);a=Q(a);f=Z(e,f);W([],[b],function(k){function p(){Tb(\"Cannot call \"+r+\" due to unbound types\",l)}k=k[0];var r=k.name+\".\"+a;a.startsWith(\"@@\")&&(a=Symbol[a.substring(2)]);\ng&&k.V.Ma.push(a);var u=k.V.ea,v=u[a];void 0===v||void 0===v.Y&&v.className!==k.name&&v.ja===c-2?(p.ja=c-2,p.className=k.name,u[a]=p):(Hb(u,a,r),u[a].Y[c-2]=p);W([],l,function(q){q=Ub(r,q,k,f,h);void 0===u[a].Y?(q.ja=c-2,u[a]=q):u[a].Y[c-2]=q;return[]});return[]})},b:function(b,a,c,d,e,f,h,g,l,k){a=Q(a);e=Z(d,e);W([],[b],function(p){p=p[0];var r=p.name+\".\"+a,u={get:function(){Tb(\"Cannot access \"+r+\" due to unbound types\",[c,h])},enumerable:!0,configurable:!0};u.set=l?()=>{Tb(\"Cannot access \"+r+\" due to unbound types\",\n[c,h])}:()=>{O(r+\" is a read-only property\")};Object.defineProperty(p.V.ea,a,u);W([],l?[c,h]:[c],function(v){var q=v[0],C={get:function(){var w=Wb(this,p,r+\" getter\");return q.fromWireType(e(f,w))},enumerable:!0};if(l){l=Z(g,l);var F=v[1];C.set=function(w){var A=Wb(this,p,r+\" setter\"),G=[];l(k,A,F.toWireType(G,w));Ab(G)}}Object.defineProperty(p.V.ea,a,C);return[]});return[]})},A:function(b,a){a=Q(a);Y(b,{name:a,fromWireType:function(c){var d=$a(c);Xb(c);return d},toWireType:function(c,d){return P(d)},\nargPackAdvance:8,readValueFromPointer:Bb,ba:null})},j:function(b,a,c,d){function e(){}c=Eb(c);a=Q(a);e.values={};Y(b,{name:a,constructor:e,fromWireType:function(f){return this.constructor.values[f]},toWireType:function(f,h){return h.value},argPackAdvance:8,readValueFromPointer:Zb(a,c,d),ba:null});Ib(a,e)},i:function(b,a,c){var d=kb(b,\"enum\");a=Q(a);b=d.constructor;d=Object.create(d.constructor.prototype,{value:{value:c},constructor:{value:Va(d.name+\"_\"+a,function(){})}});b.values[c]=d;b[a]=d},r:function(b,\na,c){c=Eb(c);a=Q(a);Y(b,{name:a,fromWireType:function(d){return d},toWireType:function(d,e){return e},argPackAdvance:8,readValueFromPointer:$b(a,c),ba:null})},q:function(b,a,c,d,e,f){var h=Vb(a,c);b=Q(b);e=Z(d,e);Ib(b,function(){Tb(\"Cannot call \"+b+\" due to unbound types\",h)},a-1);W([],h,function(g){Qb(b,Ub(b,[g[0],null].concat(g.slice(1)),null,e,f),a-1);return[]})},g:function(b,a,c,d,e){a=Q(a);-1===e&&(e=4294967295);e=Eb(c);var f=g=>g;if(0===d){var h=32-8*c;f=g=>g<>>h}c=a.includes(\"unsigned\")?\nfunction(g,l){return l>>>0}:function(g,l){return l};Y(b,{name:a,fromWireType:f,toWireType:c,argPackAdvance:8,readValueFromPointer:ac(a,e,0!==d),ba:null})},d:function(b,a,c){function d(f){f>>=2;var h=J;return new e(za,h[f+1],h[f])}var e=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][a];c=Q(c);Y(b,{name:c,fromWireType:d,argPackAdvance:8,readValueFromPointer:d},{lb:!0})},s:function(b,a){a=Q(a);var c=\"std::string\"===a;Y(b,{name:a,fromWireType:function(d){var e=\nJ[d>>2],f=d+4;if(c)for(var h=f,g=0;g<=e;++g){var l=f+g;if(g==e||0==E[l]){h=h?ya(E,h,l-h):\"\";if(void 0===k)var k=h;else k+=String.fromCharCode(0),k+=h;h=l+1}}else{k=Array(e);for(g=0;g=l?g++:2047>=l?g+=2:55296<=l&&57343>=l?(g+=4,++f):g+=3}else g=e.length;f=g;g=rc(4+f+1);l=g+4;J[g>>2]=f;if(c&&h){if(h=l,l=f+1,f=E,0=p){var r=e.charCodeAt(++k);p=65536+((p&1023)<<10)|r&1023}if(127>=p){if(h>=l)break;f[h++]=p}else{if(2047>=p){if(h+1>=l)break;f[h++]=192|p>>6}else{if(65535>=p){if(h+2>=l)break;f[h++]=224|p>>12}else{if(h+3>=l)break;f[h++]=240|p>>18;f[h++]=128|p>>12&63}f[h++]=\n128|p>>6&63}f[h++]=128|p&63}}f[h]=0}}else if(h)for(h=0;hCa;var g=1}else 4===a&&(d=fc,e=gc,f=hc,h=()=>J,g=2);Y(b,{name:c,fromWireType:function(l){for(var k=J[l>>2],p=h(),r,u=l+4,v=0;v<=k;++v){var q=\nl+4+v*a;if(v==k||0==p[q>>g])u=d(u,q-u),void 0===r?r=u:(r+=String.fromCharCode(0),r+=u),u=q+a}jb(l);return r},toWireType:function(l,k){\"string\"!=typeof k&&O(\"Cannot pass non-string to C++ string type \"+c);var p=f(k),r=rc(4+p+a);J[r>>2]=p>>g;e(k,r+4,p+a);null!==l&&l.push(jb,r);return r},argPackAdvance:8,readValueFromPointer:Bb,ba:function(l){jb(l)}})},K:function(b,a,c,d,e,f){zb[b]={name:Q(a),xa:Z(c,d),ha:Z(e,f),Ja:[]}},J:function(b,a,c,d,e,f,h,g,l,k){zb[b].Ja.push({eb:Q(a),kb:c,ib:Z(d,e),jb:f,vb:h,\nub:Z(g,l),wb:k})},C:function(b,a){a=Q(a);Y(b,{nb:!0,name:a,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},m:function(b,a,c){b=$a(b);a=kb(a,\"emval::as\");var d=[],e=P(d);J[c>>2]=e;return a.toWireType(d,b)},t:function(b,a,c,d,e){b=kc[b];a=$a(a);c=jc(c);var f=[];J[d>>2]=P(f);return b(a,c,f,e)},f:function(b,a,c,d){b=kc[b];a=$a(a);c=jc(c);b(a,c,null,d)},L:Xb,e:function(b,a){var c=mc(b,a),d=c[0];a=d.name+\"_$\"+c.slice(1).map(function(h){return h.name}).join(\"_\")+\"$\";var e=nc[a];if(void 0!==\ne)return e;var f=Array(b-1);e=lc((h,g,l,k)=>{for(var p=0,r=0;r>>=0;if(2147483648=c;c*=2){var d=a*(1+.2/c);d=Math.min(d,b+100663296);var e=Math;d=Math.max(b,d);e=e.min.call(e,2147483648,d+(65536-d%65536)%65536);a:{try{va.grow(e-za.byteLength+65535>>>16);Ga();var f=1;break a}catch(h){}f=void 0}if(f)return!0}return!1},z:function(){return 52},w:function(){return 70},y:function(b,a,c,d){for(var e=0,f=0;f>2],g=J[a+4>>2];a+=8;for(var l=0;l>2]=e;return 0}};\n(function(){function b(e){m.asm=e.exports;va=m.asm.M;Ga();Ha=m.asm.S;Ja.unshift(m.asm.N);Ma--;m.monitorRunDependencies&&m.monitorRunDependencies(Ma);0==Ma&&(null!==Na&&(clearInterval(Na),Na=null),Oa&&(e=Oa,Oa=null,e()))}function a(e){b(e.instance)}function c(e){return Sa().then(function(f){return WebAssembly.instantiate(f,d)}).then(function(f){return f}).then(e,function(f){qa(\"failed to asynchronously prepare wasm: \"+f);ua(f)})}var d={a:sc};Ma++;m.monitorRunDependencies&&m.monitorRunDependencies(Ma);\nif(m.instantiateWasm)try{return m.instantiateWasm(d,b)}catch(e){return qa(\"Module.instantiateWasm callback failed with error: \"+e),!1}(function(){return ra||\"function\"!=typeof WebAssembly.instantiateStreaming||Pa()||K.startsWith(\"file://\")||\"function\"!=typeof fetch?c(a):fetch(K,{credentials:\"same-origin\"}).then(function(e){return WebAssembly.instantiateStreaming(e,d).then(a,function(f){qa(\"wasm streaming compile failed: \"+f);qa(\"falling back to ArrayBuffer instantiation\");return c(a)})})})().catch(ba);\nreturn{}})();m.___wasm_call_ctors=function(){return(m.___wasm_call_ctors=m.asm.N).apply(null,arguments)};var jb=m._free=function(){return(jb=m._free=m.asm.O).apply(null,arguments)},rc=m._malloc=function(){return(rc=m._malloc=m.asm.P).apply(null,arguments)},ib=m.___getTypeName=function(){return(ib=m.___getTypeName=m.asm.Q).apply(null,arguments)};m.__embind_initialize_bindings=function(){return(m.__embind_initialize_bindings=m.asm.R).apply(null,arguments)};\nm.dynCall_jiji=function(){return(m.dynCall_jiji=m.asm.T).apply(null,arguments)};var tc;Oa=function uc(){tc||vc();tc||(Oa=uc)};\nfunction vc(){function b(){if(!tc&&(tc=!0,m.calledRun=!0,!wa)){Ta(Ja);aa(m);if(m.onRuntimeInitialized)m.onRuntimeInitialized();if(m.postRun)for(\"function\"==typeof m.postRun&&(m.postRun=[m.postRun]);m.postRun.length;){var a=m.postRun.shift();Ka.unshift(a)}Ta(Ka)}}if(!(0 {\n if (!canvas || !stateMachines.length || !renderer || !rive || !artboard) {\n return null;\n }\n\n const mouseCallback = (event) => {\n const boundingRect = event.currentTarget.getBoundingClientRect();\n\n const canvasX = event.clientX - boundingRect.left;\n const canvasY = event.clientY - boundingRect.top;\n const forwardMatrix = rive.computeAlignment(\n fit,\n alignment,\n {\n minX: 0,\n minY: 0,\n maxX: boundingRect.width,\n maxY: boundingRect.height,\n },\n artboard.bounds\n );\n let invertedMatrix = new rive.Mat2D();\n forwardMatrix.invert(invertedMatrix);\n const canvasCoordinatesVector = new rive.Vec2D(canvasX, canvasY);\n const transformedVector = rive.mapXY(\n invertedMatrix,\n canvasCoordinatesVector\n );\n const transformedX = transformedVector.x();\n const transformedY = transformedVector.y();\n\n transformedVector.delete();\n invertedMatrix.delete();\n canvasCoordinatesVector.delete();\n forwardMatrix.delete();\n\n switch (event.type) {\n // Pointer moving/hovering on the canvas\n case \"mouseover\":\n case \"mouseout\":\n case \"mousemove\": {\n for (const stateMachine of stateMachines) {\n stateMachine.pointerMove(transformedX, transformedY);\n }\n break;\n }\n // Pointer click initiated but not released yet on the canvas\n case \"mousedown\": {\n for (const stateMachine of stateMachines) {\n stateMachine.pointerDown(transformedX, transformedY);\n }\n break;\n }\n // Pointer click released on the canvas\n case \"mouseup\": {\n for (const stateMachine of stateMachines) {\n stateMachine.pointerUp(transformedX, transformedY);\n }\n break;\n }\n default:\n }\n };\n const callback = mouseCallback.bind(this);\n canvas.addEventListener(\"mouseover\", callback);\n canvas.addEventListener(\"mouseout\", callback);\n canvas.addEventListener(\"mousemove\", callback);\n canvas.addEventListener(\"mousedown\", callback);\n canvas.addEventListener(\"mouseup\", callback);\n return () => {\n canvas.removeEventListener(\"mouseover\", callback);\n canvas.removeEventListener(\"mouseout\", callback);\n canvas.removeEventListener(\"mousemove\", callback);\n canvas.removeEventListener(\"mousedown\", callback);\n canvas.removeEventListener(\"mouseup\", callback);\n };\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import * as rc from \"./rive_advanced.mjs\";\nimport * as packageData from \"package.json\";\nimport { registerTouchInteractions } from \"./utils\";\n\n/**\n * Generic type for a parameterless void callback\n */\nexport type VoidCallback = () => void;\n\n/**\n * Type for artboard bounds\n */\nexport type Bounds = rc.AABB;\n\n// #region layout\n\n// Fit options for the canvas\nexport enum Fit {\n Cover = \"cover\",\n Contain = \"contain\",\n Fill = \"fill\",\n FitWidth = \"fitWidth\",\n FitHeight = \"fitHeight\",\n None = \"none\",\n ScaleDown = \"scaleDown\",\n}\n\n// Alignment options for the canvas\nexport enum Alignment {\n Center = \"center\",\n TopLeft = \"topLeft\",\n TopCenter = \"topCenter\",\n TopRight = \"topRight\",\n CenterLeft = \"centerLeft\",\n CenterRight = \"centerRight\",\n BottomLeft = \"bottomLeft\",\n BottomCenter = \"bottomCenter\",\n BottomRight = \"bottomRight\",\n}\n\n// Interface for the Layout static method contructor\nexport interface LayoutParameters {\n fit?: Fit;\n alignment?: Alignment;\n minX?: number;\n minY?: number;\n maxX?: number;\n maxY?: number;\n}\n\n// Alignment options for Rive animations in a HTML canvas\nexport class Layout {\n // Runtime fit and alignment are accessed every frame, so we cache their\n // values to save cycles\n private cachedRuntimeFit: rc.Fit;\n private cachedRuntimeAlignment: rc.Alignment;\n\n public readonly fit: Fit;\n public readonly alignment: Alignment;\n public readonly minX: number;\n public readonly minY: number;\n public readonly maxX: number;\n public readonly maxY: number;\n\n constructor(params?: LayoutParameters) {\n this.fit = params?.fit ?? Fit.Contain;\n this.alignment = params?.alignment ?? Alignment.Center;\n this.minX = params?.minX ?? 0;\n this.minY = params?.minY ?? 0;\n this.maxX = params?.maxX ?? 0;\n this.maxY = params?.maxY ?? 0;\n }\n\n // Alternative constructor to build a Layout from an interface/object\n static new({\n fit,\n alignment,\n minX,\n minY,\n maxX,\n maxY,\n }: LayoutParameters): Layout {\n console.warn(\n \"This function is deprecated: please use `new Layout({})` instead\"\n );\n return new Layout({ fit, alignment, minX, minY, maxX, maxY });\n }\n\n /**\n * Makes a copy of the layout, replacing any specified parameters\n */\n public copyWith({\n fit,\n alignment,\n minX,\n minY,\n maxX,\n maxY,\n }: LayoutParameters): Layout {\n return new Layout({\n fit: fit ?? this.fit,\n alignment: alignment ?? this.alignment,\n minX: minX ?? this.minX,\n minY: minY ?? this.minY,\n maxX: maxX ?? this.maxX,\n maxY: maxY ?? this.maxY,\n });\n }\n\n // Returns fit for the Wasm runtime format\n public runtimeFit(rive: rc.RiveCanvas): rc.Fit {\n if (this.cachedRuntimeFit) return this.cachedRuntimeFit;\n\n let fit;\n if (this.fit === Fit.Cover) fit = rive.Fit.cover;\n else if (this.fit === Fit.Contain) fit = rive.Fit.contain;\n else if (this.fit === Fit.Fill) fit = rive.Fit.fill;\n else if (this.fit === Fit.FitWidth) fit = rive.Fit.fitWidth;\n else if (this.fit === Fit.FitHeight) fit = rive.Fit.fitHeight;\n else if (this.fit === Fit.ScaleDown) fit = rive.Fit.scaleDown;\n else fit = rive.Fit.none;\n\n this.cachedRuntimeFit = fit;\n return fit;\n }\n\n // Returns alignment for the Wasm runtime format\n public runtimeAlignment(rive: rc.RiveCanvas): rc.Alignment {\n if (this.cachedRuntimeAlignment) return this.cachedRuntimeAlignment;\n\n let alignment;\n if (this.alignment === Alignment.TopLeft)\n alignment = rive.Alignment.topLeft;\n else if (this.alignment === Alignment.TopCenter)\n alignment = rive.Alignment.topCenter;\n else if (this.alignment === Alignment.TopRight)\n alignment = rive.Alignment.topRight;\n else if (this.alignment === Alignment.CenterLeft)\n alignment = rive.Alignment.centerLeft;\n else if (this.alignment === Alignment.CenterRight)\n alignment = rive.Alignment.centerRight;\n else if (this.alignment === Alignment.BottomLeft)\n alignment = rive.Alignment.bottomLeft;\n else if (this.alignment === Alignment.BottomCenter)\n alignment = rive.Alignment.bottomCenter;\n else if (this.alignment === Alignment.BottomRight)\n alignment = rive.Alignment.bottomRight;\n else alignment = rive.Alignment.center;\n\n this.cachedRuntimeAlignment = alignment;\n return alignment;\n }\n}\n\n// #endregion\n\n// #region runtime\n\n// Callback type when looking for a runtime instance\nexport type RuntimeCallback = (rive: rc.RiveCanvas) => void;\n\n// Runtime singleton; use getInstance to provide a callback that returns the\n// Rive runtime\nexport class RuntimeLoader {\n // Singleton helpers\n private static runtime: rc.RiveCanvas;\n // Flag to indicate that loading has started/completed\n private static isLoading = false;\n // List of callbacks for the runtime that come in while loading\n private static callBackQueue: RuntimeCallback[] = [];\n // Instance of the Rive runtime\n private static rive: rc.RiveCanvas;\n // Path to the Wasm file; default path works for testing only;\n // if embedded wasm is used then this is never used.\n private static wasmURL = `https://unpkg.com/${packageData.name}@${packageData.version}/rive.wasm`;\n\n // Class is never instantiated\n private constructor() {}\n\n // Loads the runtime\n private static loadRuntime(): void {\n rc.default({\n // Loads Wasm bundle\n locateFile: () => RuntimeLoader.wasmURL,\n }).then((rive: rc.RiveCanvas) => {\n RuntimeLoader.runtime = rive;\n // Fire all the callbacks\n while (RuntimeLoader.callBackQueue.length > 0) {\n RuntimeLoader.callBackQueue.shift()?.(RuntimeLoader.runtime);\n }\n });\n }\n\n // Provides a runtime instance via a callback\n public static getInstance(callback: RuntimeCallback): void {\n // If it's not loading, start loading runtime\n if (!RuntimeLoader.isLoading) {\n RuntimeLoader.isLoading = true;\n RuntimeLoader.loadRuntime();\n }\n if (!RuntimeLoader.runtime) {\n RuntimeLoader.callBackQueue.push(callback);\n } else {\n callback(RuntimeLoader.runtime);\n }\n }\n\n // Provides a runtime instance via a promise\n public static awaitInstance(): Promise {\n return new Promise((resolve) =>\n RuntimeLoader.getInstance((rive: rc.RiveCanvas): void => resolve(rive))\n );\n }\n\n // Manually sets the wasm url\n public static setWasmUrl(url: string): void {\n RuntimeLoader.wasmURL = url;\n }\n}\n\n// #endregion\n\n// #region animations\n\n// Wraps animations and instances from the runtime and keeps track of playback\n// state\nclass Animation {\n public loopCount = 0;\n public readonly instance: rc.LinearAnimationInstance;\n\n // Time to which the animation should move to on the next render\n public scrubTo: number | null = null;\n\n /**\n * Constructs a new animation\n * @constructor\n * @param {any} animation: runtime animation object\n * @param {any} instance: runtime animation instance object\n */\n constructor(\n private animation: rc.LinearAnimationInstance,\n private artboard: rc.Artboard,\n runtime: rc.RiveCanvas,\n public playing: boolean\n ) {\n this.instance = new runtime.LinearAnimationInstance(animation, artboard);\n }\n\n // Returns the animation's name\n public get name(): string {\n return this.animation.name;\n }\n\n // Returns the animation's current time\n public get time(): number {\n return this.instance.time;\n }\n\n // Sets the animation's current time\n public set time(value: number) {\n this.instance.time = value;\n }\n\n // Returns the animation's loop type\n public get loopValue(): number {\n return this.animation.loopValue;\n }\n\n /**\n * Advances the animation by the give time. If the animation needs scrubbing,\n * time is ignored and the stored scrub value is used.\n * @param time the time to advance the animation by if no scrubbing required\n */\n public advance(time: number) {\n if (this.scrubTo === null) {\n this.instance.advance(time);\n } else {\n this.instance.time = 0;\n this.instance.advance(this.scrubTo);\n this.scrubTo = null;\n }\n }\n\n /**\n * Apply interpolated keyframe values to the artboard. This should be called after calling\n * .advance() on an animation instance so that new values are applied to properties.\n *\n * Note: This does not advance the artboard, which updates all objects on the artboard\n * @param mix - Mix value for the animation from 0 to 1\n */\n public apply(mix: number) {\n this.instance.apply(mix);\n }\n\n public get needsScrub(): boolean {\n return this.scrubTo !== null;\n }\n\n /**\n * Deletes the backing Wasm animation instance; once this is called, this\n * animation is no more.\n */\n public cleanup() {\n this.instance.delete();\n }\n}\n\n// #endregion\n\n// #region state machines\n\nexport enum StateMachineInputType {\n Number = 56,\n Trigger = 58,\n Boolean = 59,\n}\n\n/**\n * An input for a state machine\n */\nexport class StateMachineInput {\n constructor(\n public readonly type: StateMachineInputType,\n private runtimeInput: rc.SMIInput\n ) {}\n\n /**\n * Returns the name of the input\n */\n public get name(): string {\n return this.runtimeInput.name;\n }\n\n /**\n * Returns the current value of the input\n */\n public get value(): number | boolean {\n return this.runtimeInput.value;\n }\n\n /**\n * Sets the value of the input\n */\n public set value(value: number | boolean) {\n this.runtimeInput.value = value;\n }\n\n /**\n * Fires a trigger; does nothing on Number or Boolean input types\n */\n public fire(): void {\n if (this.type === StateMachineInputType.Trigger) {\n this.runtimeInput.fire();\n }\n }\n}\n\nclass StateMachine {\n /**\n * Caches the inputs from the runtime\n */\n public readonly inputs: StateMachineInput[] = [];\n\n /**\n * Runtime state machine instance\n */\n public readonly instance: rc.StateMachineInstance;\n\n /**\n * @constructor\n * @param stateMachine runtime state machine object\n * @param instance runtime state machine instance object\n */\n constructor(\n private stateMachine: rc.StateMachineInstance,\n runtime: rc.RiveCanvas,\n public playing: boolean,\n private artboard: rc.Artboard\n ) {\n this.instance = new runtime.StateMachineInstance(stateMachine, artboard);\n this.initInputs(runtime);\n }\n\n public get name(): string {\n return this.stateMachine.name;\n }\n\n /**\n * Returns a list of state names that have changed on this frame\n */\n public get statesChanged(): string[] {\n const names: string[] = [];\n for (let i = 0; i < this.instance.stateChangedCount(); i++) {\n names.push(this.instance.stateChangedNameByIndex(i));\n }\n return names;\n }\n\n /**\n * Advances the state machine instance by a given time.\n * @param time - the time to advance the animation by in seconds\n */\n public advance(time: number) {\n this.instance.advance(time);\n }\n\n /**\n * Fetches references to the state machine's inputs and caches them\n * @param runtime an instance of the runtime; needed for the SMIInput types\n */\n private initInputs(runtime: rc.RiveCanvas): void {\n // Fetch the inputs from the runtime if we don't have them\n for (let i = 0; i < this.instance.inputCount(); i++) {\n const input = this.instance.input(i);\n this.inputs.push(this.mapRuntimeInput(input, runtime));\n }\n }\n\n /**\n * Maps a runtime input to it's appropriate type\n * @param input\n */\n private mapRuntimeInput(\n input: rc.SMIInput,\n runtime: rc.RiveCanvas\n ): StateMachineInput {\n if (input.type === runtime.SMIInput.bool) {\n return new StateMachineInput(\n StateMachineInputType.Boolean,\n input.asBool()\n );\n } else if (input.type === runtime.SMIInput.number) {\n return new StateMachineInput(\n StateMachineInputType.Number,\n input.asNumber()\n );\n } else if (input.type === runtime.SMIInput.trigger) {\n return new StateMachineInput(\n StateMachineInputType.Trigger,\n input.asTrigger()\n );\n }\n }\n\n /**\n * Deletes the backing Wasm state machine instance; once this is called, this\n * state machine is no more.\n */\n public cleanup() {\n this.instance.delete();\n }\n}\n\n// #endregion\n\n// #region animator\n\n/**\n * Manages animation\n */\nclass Animator {\n /**\n * Constructs a new animator\n * @constructor\n * @param runtime Rive runtime; needed to instance animations & state machines\n * @param artboard the artboard that holds all animations and state machines\n * @param animations optional list of animations\n * @param stateMachines optional list of state machines\n */\n constructor(\n private runtime: rc.RiveCanvas,\n private artboard: rc.Artboard,\n private eventManager: EventManager,\n public readonly animations: Animation[] = [],\n public readonly stateMachines: StateMachine[] = []\n ) {}\n\n /**\n * Adds animations and state machines by their names. If names are shared\n * between animations & state machines, then the first one found will be\n * created. Best not to use the same names for these in your Rive file.\n * @param animatable the name(s) of animations and state machines to add\n * @returns a list of names of the playing animations and state machines\n */\n public add(\n animatables: string | string[],\n playing: boolean,\n fireEvent = true\n ): string[] {\n animatables = mapToStringArray(animatables);\n // If animatables is empty, play or pause everything\n if (animatables.length === 0) {\n this.animations.forEach((a) => (a.playing = playing));\n this.stateMachines.forEach((m) => (m.playing = playing));\n } else {\n // Play/pause already instanced items, or create new instances\n const instancedAnimationNames = this.animations.map((a) => a.name);\n const instancedMachineNames = this.stateMachines.map((m) => m.name);\n for (const i in animatables) {\n const aIndex = instancedAnimationNames.indexOf(animatables[i]);\n const mIndex = instancedMachineNames.indexOf(animatables[i]);\n if (aIndex >= 0 || mIndex >= 0) {\n if (aIndex >= 0) {\n // Animation is instanced, play/pause it\n this.animations[aIndex].playing = playing;\n } else {\n // State machine is instanced, play/pause it\n this.stateMachines[mIndex].playing = playing;\n }\n } else {\n // Try to create a new animation instance\n const anim = this.artboard.animationByName(animatables[i]);\n if (anim) {\n const newAnimation = new Animation(\n anim,\n this.artboard,\n this.runtime,\n playing\n );\n // Display the first frame of the specified animation\n newAnimation.advance(0);\n newAnimation.apply(1.0);\n this.animations.push(newAnimation);\n } else {\n // Try to create a new state machine instance\n const sm = this.artboard.stateMachineByName(animatables[i]);\n if (sm) {\n const newStateMachine = new StateMachine(\n sm,\n this.runtime,\n playing,\n this.artboard\n );\n this.stateMachines.push(newStateMachine);\n }\n }\n }\n }\n }\n // Fire play/paused events for animations\n if (fireEvent) {\n if (playing) {\n this.eventManager.fire({\n type: EventType.Play,\n data: this.playing,\n });\n } else {\n this.eventManager.fire({\n type: EventType.Pause,\n data: this.paused,\n });\n }\n }\n\n return playing ? this.playing : this.paused;\n }\n\n /**\n * Play the named animations/state machines\n * @param animatables the names of the animations/machines to play; plays all if empty\n * @returns a list of the playing items\n */\n public play(animatables: string | string[]): string[] {\n return this.add(animatables, true);\n }\n\n /**\n * Pauses named animations and state machines, or everything if nothing is\n * specified\n * @param animatables names of the animations and state machines to pause\n * @returns a list of names of the animations and state machines paused\n */\n public pause(animatables: string[]): string[] {\n return this.add(animatables, false);\n }\n\n /**\n * Set time of named animations\n * @param animations names of the animations to scrub\n * @param value time scrub value, a floating point number to which the playhead is jumped\n * @returns a list of names of the animations that were scrubbed\n */\n public scrub(animatables: string[], value: number): string[] {\n const forScrubbing = this.animations.filter((a) =>\n animatables.includes(a.name)\n );\n forScrubbing.forEach((a) => (a.scrubTo = value));\n return forScrubbing.map((a) => a.name);\n }\n\n /**\n * Returns a list of names of all animations and state machines currently\n * playing\n */\n public get playing(): string[] {\n return this.animations\n .filter((a) => a.playing)\n .map((a) => a.name)\n .concat(this.stateMachines.filter((m) => m.playing).map((m) => m.name));\n }\n\n /**\n * Returns a list of names of all animations and state machines currently\n * paused\n */\n public get paused(): string[] {\n return this.animations\n .filter((a) => !a.playing)\n .map((a) => a.name)\n .concat(this.stateMachines.filter((m) => !m.playing).map((m) => m.name));\n }\n\n /**\n * Stops and removes all named animations and state machines\n * @param animatables animations and state machines to remove\n * @returns a list of names of removed items\n */\n public stop(animatables?: string[] | string): string[] {\n animatables = mapToStringArray(animatables);\n\n // If nothing's specified, wipe them out, all of them\n let removedNames: string[] = [];\n // Stop everything\n if (animatables.length === 0) {\n removedNames = this.animations\n .map((a) => a.name)\n .concat(this.stateMachines.map((m) => m.name));\n // Clean up before emptying the arrays\n this.animations.forEach((a) => a.cleanup());\n this.stateMachines.forEach((m) => m.cleanup());\n // Empty out the arrays\n this.animations.splice(0, this.animations.length);\n this.stateMachines.splice(0, this.stateMachines.length);\n } else {\n // Remove only the named animations/state machines\n const animationsToRemove = this.animations.filter((a) =>\n animatables.includes(a.name)\n );\n\n animationsToRemove.forEach((a) => {\n a.cleanup();\n this.animations.splice(this.animations.indexOf(a), 1);\n });\n const machinesToRemove = this.stateMachines.filter((m) =>\n animatables.includes(m.name)\n );\n machinesToRemove.forEach((m) => {\n m.cleanup();\n this.stateMachines.splice(this.stateMachines.indexOf(m), 1);\n });\n removedNames = animationsToRemove\n .map((a) => a.name)\n .concat(machinesToRemove.map((m) => m.name));\n }\n\n this.eventManager.fire({\n type: EventType.Stop,\n data: removedNames,\n });\n\n // Return the list of animations removed\n return removedNames;\n }\n\n /**\n * Returns true if at least one animation is active\n */\n public get isPlaying(): boolean {\n return (\n this.animations.reduce((acc, curr) => acc || curr.playing, false) ||\n this.stateMachines.reduce((acc, curr) => acc || curr.playing, false)\n );\n }\n\n /**\n * Returns true if all animations are paused and there's at least one animation\n */\n public get isPaused(): boolean {\n return (\n !this.isPlaying &&\n (this.animations.length > 0 || this.stateMachines.length > 0)\n );\n }\n\n /**\n * Returns true if there are no playing or paused animations/state machines\n */\n public get isStopped(): boolean {\n return this.animations.length === 0 && this.stateMachines.length === 0;\n }\n\n /**\n * If there are no animations or state machines, add the first one found\n * @returns the name of the animation or state machine instanced\n */\n public atLeastOne(playing: boolean, fireEvent = true): string {\n let instancedName: string;\n if (this.animations.length === 0 && this.stateMachines.length === 0) {\n if (this.artboard.animationCount() > 0) {\n // Add the first animation\n this.add(\n [(instancedName = this.artboard.animationByIndex(0).name)],\n playing,\n fireEvent\n );\n } else if (this.artboard.stateMachineCount() > 0) {\n // Add the first state machine\n this.add(\n [(instancedName = this.artboard.stateMachineByIndex(0).name)],\n playing,\n fireEvent\n );\n }\n }\n return instancedName;\n }\n\n /**\n * Checks if any animations have looped and if so, fire the appropriate event\n */\n public handleLooping() {\n for (const animation of this.animations.filter((a) => a.playing)) {\n // Emit if the animation looped\n if (animation.loopValue === 0 && animation.loopCount) {\n animation.loopCount = 0;\n // This is a one-shot; if it has ended, delete the instance\n this.stop(animation.name);\n } else if (animation.loopValue === 1 && animation.loopCount) {\n this.eventManager.fire({\n type: EventType.Loop,\n data: { animation: animation.name, type: LoopType.Loop },\n });\n animation.loopCount = 0;\n }\n // Wasm indicates a loop at each time the animation\n // changes direction, so a full loop/lap occurs every\n // two loop counts\n else if (animation.loopValue === 2 && animation.loopCount > 1) {\n this.eventManager.fire({\n type: EventType.Loop,\n data: { animation: animation.name, type: LoopType.PingPong },\n });\n animation.loopCount = 0;\n }\n }\n }\n\n /**\n * Checks if states have changed in state machines and fires a statechange\n * event\n */\n public handleStateChanges() {\n const statesChanged: string[] = [];\n for (const stateMachine of this.stateMachines.filter((sm) => sm.playing)) {\n statesChanged.push(...stateMachine.statesChanged);\n }\n if (statesChanged.length > 0) {\n this.eventManager.fire({\n type: EventType.StateChange,\n data: statesChanged,\n });\n }\n }\n}\n\n// #endregion\n\n// #region events\n\n/**\n * Supported event types triggered in Rive\n */\nexport enum EventType {\n Load = \"load\",\n LoadError = \"loaderror\",\n Play = \"play\",\n Pause = \"pause\",\n Stop = \"stop\",\n Loop = \"loop\",\n Draw = \"draw\",\n StateChange = \"statechange\",\n}\n\n// Event fired by Rive\nexport interface Event {\n type: EventType;\n data?: string | string[] | LoopEvent;\n}\n\n/**\n * Looping types: one-shot, loop, and ping-pong\n */\nexport enum LoopType {\n OneShot = \"oneshot\", // has value 0 in runtime\n Loop = \"loop\", // has value 1 in runtime\n PingPong = \"pingpong\", // has value 2 in runtime\n}\n\n/**\n * Loop events are returned through onloop callbacks\n */\nexport interface LoopEvent {\n animation: string;\n type: LoopType;\n}\n\n/**\n * Loop events are returned through onloop callbacks\n */\nexport type EventCallback = (event: Event) => void;\n\n/**\n * Event listeners registered with the event manager\n */\nexport interface EventListener {\n type: EventType;\n callback: EventCallback;\n}\n\n/**\n * FPS Reporting through callbacks sent to the WASM runtime\n */\nexport type FPSCallback = (fps: number) => void;\n\n// Manages Rive events and listeners\nclass EventManager {\n constructor(private listeners: EventListener[] = []) {}\n\n // Gets listeners of specified type\n private getListeners(type: EventType): EventListener[] {\n return this.listeners.filter((e) => e.type === type);\n }\n\n // Adds a listener\n public add(listener: EventListener): void {\n if (!this.listeners.includes(listener)) {\n this.listeners.push(listener);\n }\n }\n\n /**\n * Removes a listener\n * @param listener the listener with the callback to be removed\n */\n public remove(listener: EventListener): void {\n // We can't simply look for the listener as it'll be a different instance to\n // one originally subscribed. Find all the listeners of the right type and\n // then check their callbacks which should match.\n for (let i = 0; i < this.listeners.length; i++) {\n const currentListener = this.listeners[i];\n if (currentListener.type === listener.type) {\n if (currentListener.callback === listener.callback) {\n this.listeners.splice(i, 1);\n break;\n }\n }\n }\n }\n\n /**\n * Clears all listeners of specified type, or every listener if no type is\n * specified\n * @param type the type of listeners to clear, or all listeners if not\n * specified\n */\n public removeAll(type?: EventType) {\n if (!type) {\n this.listeners.splice(0, this.listeners.length);\n } else {\n this.listeners\n .filter((l) => l.type === type)\n .forEach((l) => this.remove(l));\n }\n }\n\n // Fires an event\n public fire(event: Event): void {\n const eventListeners = this.getListeners(event.type);\n eventListeners.forEach((listener) => listener.callback(event));\n }\n}\n\n// #endregion\n\n// #region Manages a queue of tasks\n\n// A task in the queue; will fire the action when the queue is processed; will\n// also optionally fire an event.\nexport interface Task {\n action?: VoidCallback;\n event?: Event;\n}\n\n// Manages a queue of tasks\nclass TaskQueueManager {\n private queue: Task[] = [];\n\n constructor(private eventManager: EventManager) {}\n\n // Adds a task top the queue\n public add(task: Task): void {\n this.queue.push(task);\n }\n\n // Processes all tasks in the queue\n public process(): void {\n while (this.queue.length > 0) {\n const task = this.queue.shift();\n if (task?.action) {\n task.action();\n }\n if (task?.event) {\n this.eventManager.fire(task.event);\n }\n }\n }\n}\n\n// #endregion\n\n// #region Rive\n\n// Interface for the Rive static method contructor\nexport interface RiveParameters {\n canvas: HTMLCanvasElement | OffscreenCanvas; // canvas is required\n src?: string; // one of src or buffer is required\n buffer?: ArrayBuffer; // one of src or buffer is required\n artboard?: string;\n animations?: string | string[];\n stateMachines?: string | string[];\n layout?: Layout;\n autoplay?: boolean;\n useOffscreenRenderer?: boolean;\n onLoad?: EventCallback;\n onLoadError?: EventCallback;\n onPlay?: EventCallback;\n onPause?: EventCallback;\n onStop?: EventCallback;\n onLoop?: EventCallback;\n onStateChange?: EventCallback;\n /**\n * @deprecated Use `onLoad()` instead\n */\n onload?: EventCallback;\n /**\n * @deprecated Use `onLoadError()` instead\n */\n onloaderror?: EventCallback;\n /**\n * @deprecated Use `onPoad()` instead\n */\n onplay?: EventCallback;\n /**\n * @deprecated Use `onPause()` instead\n */\n onpause?: EventCallback;\n /**\n * @deprecated Use `onStop()` instead\n */\n onstop?: EventCallback;\n /**\n * @deprecated Use `onLoop()` instead\n */\n onloop?: EventCallback;\n /**\n * @deprecated Use `onStateChange()` instead\n */\n onstatechange?: EventCallback;\n}\n\n// Interface to Rive.load function\nexport interface RiveLoadParameters {\n src?: string;\n buffer?: ArrayBuffer;\n autoplay?: boolean;\n artboard?: string;\n animations?: string | string[];\n stateMachines?: string | string[];\n useOffscreenRenderer?: boolean;\n}\n\n// Interface ot Rive.reset function\nexport interface RiveResetParameters {\n artboard?: string;\n animations?: string | string[];\n stateMachines?: string | string[];\n autoplay?: boolean;\n}\n\nexport class Rive {\n // Canvas in which to render the artboard\n private readonly canvas: HTMLCanvasElement | OffscreenCanvas;\n\n // A url to a Rive file; may be undefined if a buffer is specified\n private src: string;\n\n // Raw Rive file data; may be undefined if a src is specified\n private buffer: ArrayBuffer;\n\n // The layout for rendering in the canvas\n private _layout: Layout;\n\n // Flag to indicate if the layout has changed; used by the renderer to know\n // when to align\n private _updateLayout = true;\n\n // The runtime renderer\n private renderer: rc.Renderer;\n\n /**\n * Flag to active/deactivate renderer\n */\n private isRendererActive = true;\n\n // Tracks if a Rive file is loaded\n private loaded = false;\n\n /**\n * Tracks if a Rive file is loaded; we need this in addition to loaded as some\n * commands (e.g. contents) can be called as soon as the file is loaded.\n * However, playback commands need to be queued and run in order once initial\n * animations and autoplay has been sorted out. This applies to play, pause,\n * and start.\n */\n private readyForPlaying = false;\n\n // Wasm runtime\n private runtime: rc.RiveCanvas;\n\n // Runtime artboard\n private artboard: rc.Artboard | null = null;\n\n // place to clear up event listeners\n private eventCleanup: VoidCallback | null = null;\n\n // Runtime file\n private file: rc.File;\n\n // Holds event listeners\n private eventManager: EventManager;\n\n // Manages the loading task queue\n private taskQueue: TaskQueueManager;\n\n // Animator: manages animations and state machines\n private animator: Animator;\n\n // Error message for missing source or buffer\n private static readonly missingErrorMessage: string =\n \"Rive source file or data buffer required\";\n\n // Durations to generate a frame for the last second. Used for performance profiling.\n public durations: number[] = [];\n public frameTimes: number[] = [];\n public frameCount = 0;\n\n constructor(params: RiveParameters) {\n this.canvas = params.canvas;\n this.src = params.src;\n this.buffer = params.buffer;\n this.layout = params.layout ?? new Layout();\n\n // New event management system\n this.eventManager = new EventManager();\n if (params.onLoad) this.on(EventType.Load, params.onLoad);\n if (params.onLoadError) this.on(EventType.LoadError, params.onLoadError);\n if (params.onPlay) this.on(EventType.Play, params.onPlay);\n if (params.onPause) this.on(EventType.Pause, params.onPause);\n if (params.onStop) this.on(EventType.Stop, params.onStop);\n if (params.onLoop) this.on(EventType.Loop, params.onLoop);\n if (params.onStateChange)\n this.on(EventType.StateChange, params.onStateChange);\n\n /**\n * @deprecated Use camelCase'd versions instead.\n */\n if (params.onload && !params.onLoad) this.on(EventType.Load, params.onload);\n if (params.onloaderror && !params.onLoadError)\n this.on(EventType.LoadError, params.onloaderror);\n if (params.onplay && !params.onPlay) this.on(EventType.Play, params.onplay);\n if (params.onpause && !params.onPause)\n this.on(EventType.Pause, params.onpause);\n if (params.onstop && !params.onStop) this.on(EventType.Stop, params.onstop);\n if (params.onloop && !params.onLoop) this.on(EventType.Loop, params.onloop);\n if (params.onstatechange && !params.onStateChange)\n this.on(EventType.StateChange, params.onstatechange);\n\n // Hook up the task queue\n this.taskQueue = new TaskQueueManager(this.eventManager);\n\n this.init({\n src: this.src,\n buffer: this.buffer,\n autoplay: params.autoplay,\n animations: params.animations,\n stateMachines: params.stateMachines,\n artboard: params.artboard,\n useOffscreenRenderer: params.useOffscreenRenderer,\n });\n }\n\n // Alternative constructor to build a Rive instance from an interface/object\n public static new(params: RiveParameters): Rive {\n console.warn(\n \"This function is deprecated: please use `new Rive({})` instead\"\n );\n return new Rive(params);\n }\n\n // Initializes the Rive object either from constructor or load()\n private init({\n src,\n buffer,\n animations,\n stateMachines,\n artboard,\n autoplay = false,\n useOffscreenRenderer = false,\n }: RiveLoadParameters): void {\n this.src = src;\n this.buffer = buffer;\n\n // If no source file url specified, it's a bust\n if (!this.src && !this.buffer) {\n throw new Error(Rive.missingErrorMessage);\n }\n\n // List of animations that should be initialized.\n const startingAnimationNames = mapToStringArray(animations);\n\n // List of state machines that should be initialized\n const startingStateMachineNames = mapToStringArray(stateMachines);\n\n // Ensure loaded is marked as false if loading new file\n this.loaded = false;\n this.readyForPlaying = false;\n\n // Ensure the runtime is loaded\n RuntimeLoader.awaitInstance()\n .then((runtime) => {\n this.runtime = runtime;\n\n // Get the canvas where you want to render the animation and create a renderer\n this.renderer = this.runtime.makeRenderer(\n this.canvas,\n useOffscreenRenderer\n );\n\n // Initial size adjustment based on devicePixelRatio if no width/height are\n // specified explicitly\n if (!(this.canvas.width || this.canvas.height)) {\n this.resizeDrawingSurfaceToCanvas();\n }\n\n // Load Rive data from a source uri or a data buffer\n this.initData(\n artboard,\n startingAnimationNames,\n startingStateMachineNames,\n autoplay\n )\n .then(() => {\n const activeStateMachineInstances = (\n this.animator.stateMachines || []\n )\n .filter((sm) => sm.playing)\n .map((sm) => sm.instance);\n this.eventCleanup = registerTouchInteractions({\n canvas: this.canvas,\n artboard: this.artboard,\n stateMachines: activeStateMachineInstances,\n renderer: this.renderer,\n rive: this.runtime,\n fit: this._layout.runtimeFit(this.runtime),\n alignment: this._layout.runtimeAlignment(this.runtime),\n });\n })\n .catch((e) => {\n console.error(e);\n });\n })\n .catch((e) => {\n console.error(e);\n });\n }\n\n // Initializes runtime with Rive data and preps for playing\n private async initData(\n artboardName: string,\n animationNames: string[],\n stateMachineNames: string[],\n autoplay: boolean\n ): Promise {\n // Load the buffer from the src if provided\n if (this.src) {\n this.buffer = await loadRiveFile(this.src);\n }\n // Load the Rive file\n this.file = await this.runtime.load(new Uint8Array(this.buffer));\n\n if (this.file) {\n // Initialize and draw frame\n this.initArtboard(\n artboardName,\n animationNames,\n stateMachineNames,\n autoplay\n );\n\n // Everything's set up, emit a load event\n this.loaded = true;\n this.eventManager.fire({\n type: EventType.Load,\n data: this.src ?? \"buffer\",\n });\n\n // Flag ready for playback commands and clear the task queue; this order\n // is important or it may infinitely recurse\n this.readyForPlaying = true;\n this.taskQueue.process();\n\n this.drawFrame();\n\n return Promise.resolve();\n } else {\n const msg = \"Problem loading file; may be corrupt!\";\n console.warn(msg);\n this.eventManager.fire({ type: EventType.LoadError, data: msg });\n return Promise.reject(msg);\n }\n }\n\n // Initialize for playback\n private initArtboard(\n artboardName: string,\n animationNames: string[],\n stateMachineNames: string[],\n autoplay: boolean\n ): void {\n // Fetch the artboard\n const rootArtboard = artboardName\n ? this.file.artboardByName(artboardName)\n : this.file.defaultArtboard();\n\n // Check we have a working artboard\n if (!rootArtboard) {\n const msg = \"Invalid artboard name or no default artboard\";\n console.warn(msg);\n this.eventManager.fire({ type: EventType.LoadError, data: msg });\n return;\n }\n\n this.artboard = rootArtboard;\n\n // Check that the artboard has at least 1 animation\n if (this.artboard.animationCount() < 1) {\n const msg = \"Artboard has no animations\";\n this.eventManager.fire({ type: EventType.LoadError, data: msg });\n throw msg;\n }\n\n // Initialize the animator\n this.animator = new Animator(\n this.runtime,\n this.artboard,\n this.eventManager\n );\n\n // Initialize the animations; as loaded hasn't happened yet, we need to\n // suppress firing the play/pause events until the load event has fired. To\n // do this we tell the animator to suppress firing events, and add event\n // firing to the task queue.\n let instanceNames: string[];\n if (animationNames.length > 0 || stateMachineNames.length > 0) {\n instanceNames = animationNames.concat(stateMachineNames);\n this.animator.add(instanceNames, autoplay, false);\n } else {\n instanceNames = [this.animator.atLeastOne(autoplay, false)];\n }\n // Queue up firing the playback events\n this.taskQueue.add({\n event: {\n type: autoplay ? EventType.Play : EventType.Pause,\n data: instanceNames,\n },\n });\n }\n\n // Draws the current artboard frame\n public drawFrame() {\n this.startRendering();\n }\n\n // Tracks the last timestamp at which the animation was rendered. Used only in\n // draw().\n private lastRenderTime: number;\n\n // Tracks the current animation frame request\n private frameRequestId: number | null;\n\n /**\n * Used be draw to track when a second of active rendering time has passed.\n * Used for debugging purposes\n */\n private renderSecondTimer = 0;\n\n /**\n * Draw rendering loop; renders animation frames at the correct time interval.\n * @param time the time at which to render a frame\n */\n private draw(time: number, onSecond?: VoidCallback): void {\n const before = performance.now();\n\n // Clear the frameRequestId, as we're now rendering a fresh frame\n this.frameRequestId = null;\n\n // On the first pass, make sure lastTime has a valid value\n if (!this.lastRenderTime) {\n this.lastRenderTime = time;\n }\n\n // Handle the onSecond callback\n this.renderSecondTimer += time - this.lastRenderTime;\n if (this.renderSecondTimer > 5000) {\n this.renderSecondTimer = 0;\n onSecond?.();\n }\n\n // Calculate the elapsed time between frames in seconds\n const elapsedTime = (time - this.lastRenderTime) / 1000;\n this.lastRenderTime = time;\n\n // - Advance non-paused animations by the elapsed number of seconds\n // - Advance any animations that require scrubbing\n // - Advance to the first frame even when autoplay is false\n const activeAnimations = this.animator.animations\n .filter((a) => a.playing || a.needsScrub)\n // The scrubbed animations must be applied first to prevent weird artifacts\n // if the playing animations conflict with the scrubbed animating attribuates.\n .sort((first) => (first.needsScrub ? -1 : 1));\n for (const animation of activeAnimations) {\n animation.advance(elapsedTime);\n if (animation.instance.didLoop) {\n animation.loopCount += 1;\n }\n animation.apply(1.0);\n }\n\n // - Advance non-paused state machines by the elapsed number of seconds\n // - Advance to the first frame even when autoplay is false\n const activeStateMachines = this.animator.stateMachines.filter(\n (a) => a.playing\n );\n for (const stateMachine of activeStateMachines) {\n stateMachine.advance(elapsedTime);\n // stateMachine.instance.apply(this.artboard);\n }\n\n // Once the animations have been applied to the artboard, advance it\n // by the elapsed time.\n this.artboard.advance(elapsedTime);\n\n const { renderer } = this;\n // Canvas must be wiped to prevent artifacts\n renderer.clear();\n renderer.save();\n\n // Update the renderer alignment if necessary\n this.alignRenderer();\n\n this.artboard.draw(renderer);\n\n renderer.restore();\n renderer.flush();\n\n // Check for any animations that looped\n this.animator.handleLooping();\n\n // Check for any state machines that had a state change\n this.animator.handleStateChanges();\n\n // Add duration to create frame to durations array\n this.frameCount++;\n const after = performance.now();\n this.frameTimes.push(after);\n this.durations.push(after - before);\n while (this.frameTimes[0] <= after - 1000) {\n this.frameTimes.shift();\n this.durations.shift();\n }\n\n // Calling requestAnimationFrame will rerun draw() at the correct rate:\n // https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Basic_animations\n if (this.animator.isPlaying) {\n // Request a new rendering frame\n this.startRendering();\n } else if (this.animator.isPaused) {\n // Reset the end time so on playback it starts at the correct frame\n this.lastRenderTime = 0;\n } else if (this.animator.isStopped) {\n // Reset animation instances, artboard and time\n // TODO: implement this properly when we have instancing\n // this.initArtboard();\n // this.drawFrame();\n this.lastRenderTime = 0;\n }\n }\n\n /**\n * Align the renderer\n */\n private alignRenderer(): void {\n const { renderer, runtime, _layout, artboard } = this;\n // Align things up safe in the knowledge we can restore if changed\n renderer.align(\n _layout.runtimeFit(runtime),\n _layout.runtimeAlignment(runtime),\n {\n minX: _layout.minX,\n minY: _layout.minY,\n maxX: _layout.maxX,\n maxY: _layout.maxY,\n },\n artboard.bounds\n );\n }\n\n public get fps() {\n return this.durations.length;\n }\n\n public get frameTime() {\n if (this.durations.length === 0) {\n return 0;\n }\n return (\n this.durations.reduce((a, b) => a + b, 0) / this.durations.length\n ).toFixed(4);\n }\n\n /**\n * Cleans up all Wasm-generated objects that need to be manually destroyed:\n * artboard instances, animation instances, state machine instances,\n * renderer instance, file and runtime.\n *\n * Once this is called, you will need to initialise a new instance of the\n * Rive class\n */\n public cleanup() {\n // Stop the renderer if it hasn't already been stopped.\n this.stopRendering();\n // Clean up any artboard, animation or state machine instances.\n this.cleanupInstances();\n // Delete the renderer\n this.renderer.delete();\n // Delete the rive file\n this.file.delete();\n }\n\n /**\n * Cleans up any Wasm-generated objects that need to be manually destroyed:\n * artboard instances, animation instances, state machine instances.\n *\n * Once this is called, things will need to be reinitialized or bad things\n * might happen.\n */\n public cleanupInstances() {\n if (this.eventCleanup !== null) {\n this.eventCleanup();\n }\n // Delete all animation and state machine instances\n this.stop();\n if (this.artboard) {\n this.artboard.delete();\n this.artboard = null;\n }\n }\n\n // Plays specified animations; if none specified, it unpauses everything.\n public play(animationNames?: string | string[], autoplay?: true): void {\n animationNames = mapToStringArray(animationNames);\n\n // If the file's not loaded, queue up the play\n if (!this.readyForPlaying) {\n this.taskQueue.add({\n action: () => this.play(animationNames, autoplay),\n });\n return;\n }\n this.animator.play(animationNames);\n this.startRendering();\n }\n\n // Pauses specified animations; if none specified, pauses all.\n public pause(animationNames?: string | string[]): void {\n animationNames = mapToStringArray(animationNames);\n\n // If the file's not loaded, early out, nothing to pause\n if (!this.readyForPlaying) {\n this.taskQueue.add({\n action: () => this.pause(animationNames),\n });\n return;\n }\n this.animator.pause(animationNames);\n }\n\n public scrub(animationNames?: string | string[], value?: number): void {\n animationNames = mapToStringArray(animationNames);\n\n // If the file's not loaded, early out, nothing to pause\n if (!this.readyForPlaying) {\n this.taskQueue.add({\n action: () => this.scrub(animationNames, value),\n });\n return;\n }\n\n // Scrub the animation time; we draw a single frame here so that if\n // nothing's currently playing, the scrubbed animation is still rendered/\n this.animator.scrub(animationNames, value || 0);\n this.drawFrame();\n }\n\n // Stops specified animations; if none specifies, stops them all.\n public stop(animationNames?: string | string[] | undefined): void {\n animationNames = mapToStringArray(animationNames);\n // If the file's not loaded, early out, nothing to pause\n if (!this.readyForPlaying) {\n this.taskQueue.add({\n action: () => this.stop(animationNames),\n });\n return;\n }\n this.animator.stop(animationNames);\n }\n\n /**\n * Resets the animation\n * @param artboard the name of the artboard, or default if none given\n * @param animations the names of animations for playback\n * @param stateMachines the names of state machines for playback\n * @param autoplay whether to autoplay when reset, defaults to false\n *\n */\n public reset(params?: RiveResetParameters): void {\n // Get the current artboard, animations, state machines, and playback states\n const artBoardName = params?.artboard;\n const animationNames = mapToStringArray(params?.animations);\n const stateMachineNames = mapToStringArray(params?.stateMachines);\n const autoplay = params?.autoplay ?? false;\n\n // Stop everything and clean up\n this.cleanupInstances();\n\n // Reinitialize an artboard instance with the state\n this.initArtboard(\n artBoardName,\n animationNames,\n stateMachineNames,\n autoplay\n );\n this.taskQueue.process();\n }\n\n // Loads a new Rive file, keeping listeners in place\n public load(params: RiveLoadParameters): void {\n // Stop all animations\n this.stop();\n // Reinitialize\n this.init(params);\n }\n\n // Sets a new layout\n public set layout(layout: Layout) {\n this._layout = layout;\n // If the maxX or maxY are 0, then set them to the canvas width and height\n if (!layout.maxX || !layout.maxY) {\n this.resizeToCanvas();\n }\n if (this.loaded && !this.animator.isPlaying) {\n this.drawFrame();\n }\n }\n\n /**\n * Returns the current layout. Note that layout should be treated as\n * immutable. If you want to change the layout, create a new one use the\n * layout setter\n */\n public get layout() {\n return this._layout;\n }\n\n /**\n * Sets the layout bounds to the current canvas size; this is typically called\n * when the canvas is resized\n */\n public resizeToCanvas() {\n this._layout = this.layout.copyWith({\n minX: 0,\n minY: 0,\n maxX: this.canvas.width,\n maxY: this.canvas.height,\n });\n }\n\n /**\n * Accounts for devicePixelRatio as a multiplier to render the size of the canvas drawing surface.\n * Uses the size of the backing canvas to set new width/height attributes. Need to re-render\n * and resize the layout to match the new drawing surface afterwards.\n * Useful function for consumers to include in a window resize listener\n */\n public resizeDrawingSurfaceToCanvas() {\n if (this.canvas instanceof HTMLCanvasElement && !!window) {\n const { width, height } = this.canvas.getBoundingClientRect();\n const dpr = window.devicePixelRatio || 1;\n this.canvas.width = dpr * width;\n this.canvas.height = dpr * height;\n this.startRendering();\n this.resizeToCanvas();\n }\n }\n\n // Returns the animation source, which may be undefined\n public get source(): string {\n return this.src;\n }\n\n /**\n * Returns the name of the active artboard\n */\n public get activeArtboard(): string {\n return this.artboard ? this.artboard.name : \"\";\n }\n\n // Returns a list of animation names on the chosen artboard\n public get animationNames(): string[] {\n // If the file's not loaded, we got nothing to return\n if (!this.loaded) {\n return [];\n }\n const animationNames: string[] = [];\n for (let i = 0; i < this.artboard.animationCount(); i++) {\n animationNames.push(this.artboard.animationByIndex(i).name);\n }\n return animationNames;\n }\n\n /**\n * Returns a list of state machine names from the current artboard\n */\n public get stateMachineNames(): string[] {\n // If the file's not loaded, we got nothing to return\n if (!this.loaded) {\n return [];\n }\n const stateMachineNames: string[] = [];\n for (let i = 0; i < this.artboard.stateMachineCount(); i++) {\n stateMachineNames.push(this.artboard.stateMachineByIndex(i).name);\n }\n return stateMachineNames;\n }\n\n /**\n * Returns the inputs for the specified instanced state machine, or an empty\n * list if the name is invalid or the state machine is not instanced\n * @param name the state machine name\n * @returns the inputs for the named state machine\n */\n public stateMachineInputs(name: string): StateMachineInput[] {\n // If the file's not loaded, early out, nothing to pause\n if (!this.loaded) {\n return;\n }\n const stateMachine = this.animator.stateMachines.find(\n (m) => m.name === name\n );\n return stateMachine?.inputs;\n }\n\n // Returns a list of playing machine names\n public get playingStateMachineNames(): string[] {\n // If the file's not loaded, we got nothing to return\n if (!this.loaded) {\n return [];\n }\n return this.animator.stateMachines\n .filter((m) => m.playing)\n .map((m) => m.name);\n }\n\n // Returns a list of playing animation names\n public get playingAnimationNames(): string[] {\n // If the file's not loaded, we got nothing to return\n if (!this.loaded) {\n return [];\n }\n return this.animator.animations.filter((a) => a.playing).map((a) => a.name);\n }\n\n // Returns a list of paused animation names\n public get pausedAnimationNames(): string[] {\n // If the file's not loaded, we got nothing to return\n if (!this.loaded) {\n return [];\n }\n return this.animator.animations\n .filter((a) => !a.playing)\n .map((a) => a.name);\n }\n\n /**\n * Returns a list of paused machine names\n * @returns a list of state machine names that are paused\n */\n public get pausedStateMachineNames(): string[] {\n // If the file's not loaded, we got nothing to return\n if (!this.loaded) {\n return [];\n }\n return this.animator.stateMachines\n .filter((m) => !m.playing)\n .map((m) => m.name);\n }\n\n /**\n * @returns true if any animation is playing\n */\n public get isPlaying(): boolean {\n return this.animator.isPlaying;\n }\n\n /**\n * @returns true if all instanced animations are paused\n */\n public get isPaused(): boolean {\n return this.animator.isPaused;\n }\n\n /**\n * @returns true if no animations are playing or paused\n */\n public get isStopped(): boolean {\n return this.animator.isStopped;\n }\n\n /**\n * @returns the bounds of the current artboard, or undefined if the artboard\n * isn't loaded yet.\n */\n public get bounds(): Bounds {\n return this.artboard ? this.artboard.bounds : undefined;\n }\n\n /**\n * Subscribe to Rive-generated events\n * @param type the type of event to subscribe to\n * @param callback callback to fire when the event occurs\n */\n public on(type: EventType, callback: EventCallback) {\n this.eventManager.add({\n type: type,\n callback: callback,\n });\n }\n\n /**\n * Unsubscribes from a Rive-generated event\n * @param callback the callback to unsubscribe from\n */\n public unsubscribe(type: EventType, callback: EventCallback) {\n this.eventManager.remove({\n type: type,\n callback: callback,\n });\n }\n\n /**\n * Unsubscribes all listeners from an event type, or everything if no type is\n * given\n * @param type the type of event to unsubscribe from, or all types if\n * undefined\n */\n public unsubscribeAll(type?: EventType) {\n this.eventManager.removeAll(type);\n }\n\n /**\n * Stops the rendering loop; this is different from pausing in that it doesn't\n * change the state of any animation. It stops rendering from occurring. This\n * is designed for situations such as when Rive isn't visible.\n *\n * The only way to start rendering again is to call `startRendering`.\n * Animations that are marked as playing will start from the position that\n * they would have been at if rendering had not been stopped.\n */\n public stopRendering() {\n if (this.loaded && this.frameRequestId) {\n if (this.runtime.cancelAnimationFrame) {\n this.runtime.cancelAnimationFrame(this.frameRequestId);\n } else {\n cancelAnimationFrame(this.frameRequestId);\n }\n this.frameRequestId = null;\n }\n }\n\n /**\n * Starts the rendering loop if it has been previously stopped. If the\n * renderer is already active, then this will have zero effect.\n */\n public startRendering() {\n if (this.loaded && this.artboard && !this.frameRequestId) {\n if (this.runtime.requestAnimationFrame) {\n this.frameRequestId = this.runtime.requestAnimationFrame(\n this.draw.bind(this)\n );\n } else {\n this.frameRequestId = requestAnimationFrame(this.draw.bind(this));\n }\n }\n }\n\n /**\n * Enables frames-per-second (FPS) reporting for the runtime\n * If no callback is provided, Rive will append a fixed-position div at the top-right corner of\n * the page with the FPS reading\n * @param fpsCallback - Callback from the runtime during the RAF loop that supplies the FPS value\n */\n public enableFPSCounter(fpsCallback?: FPSCallback) {\n this.runtime.enableFPSCounter(fpsCallback);\n }\n\n /**\n * Disables frames-per-second (FPS) reporting for the runtime\n */\n public disableFPSCounter() {\n this.runtime.disableFPSCounter();\n }\n\n /**\n * Returns the contents of a Rive file: the artboards, animations, and state machines\n */\n public get contents(): RiveFileContents {\n if (!this.loaded) {\n return undefined;\n }\n const riveContents: RiveFileContents = {\n artboards: [],\n };\n for (let i = 0; i < this.file.artboardCount(); i++) {\n const artboard = this.file.artboardByIndex(i);\n const artboardContents: ArtboardContents = {\n name: artboard.name,\n animations: [],\n stateMachines: [],\n };\n for (let j = 0; j < artboard.animationCount(); j++) {\n const animation = artboard.animationByIndex(j);\n artboardContents.animations.push(animation.name);\n }\n for (let k = 0; k < artboard.stateMachineCount(); k++) {\n const stateMachine = artboard.stateMachineByIndex(k);\n const name = stateMachine.name;\n const instance = new this.runtime.StateMachineInstance(\n stateMachine,\n artboard\n );\n const inputContents: StateMachineInputContents[] = [];\n for (let l = 0; l < instance.inputCount(); l++) {\n const input = instance.input(l);\n inputContents.push({ name: input.name, type: input.type });\n }\n artboardContents.stateMachines.push({\n name: name,\n inputs: inputContents,\n });\n }\n riveContents.artboards.push(artboardContents);\n }\n return riveContents;\n }\n}\n\n/**\n * Contents of a state machine input\n */\ninterface StateMachineInputContents {\n name: string;\n type: StateMachineInputType;\n initialValue?: boolean | number;\n}\n\n/**\n * Contents of a state machine\n */\ninterface StateMachineContents {\n name: string;\n inputs: StateMachineInputContents[];\n}\n\n/**\n * Contents of an artboard\n */\ninterface ArtboardContents {\n animations: string[];\n stateMachines: StateMachineContents[];\n name: string;\n}\n\n/**\n * contents of a Rive file\n */\ninterface RiveFileContents {\n artboards?: ArtboardContents[];\n}\n\n// Loads Rive data from a URI via fetch.\nconst loadRiveFile = async (src: string): Promise => {\n const req = new Request(src);\n const res = await fetch(req);\n const buffer = await res.arrayBuffer();\n return buffer;\n};\n\n// #endregion\n\n// #region utility functions\n\n/*\n * Utility function to ensure an object is a string array\n */\nconst mapToStringArray = (obj?: string[] | string | undefined): string[] => {\n if (typeof obj === \"string\") {\n return [obj];\n } else if (obj instanceof Array) {\n return obj;\n }\n // If obj is undefined, return empty array\n return [];\n};\n\n// #endregion\n\n// #region testing utilities\n\n// Exports to only be used for tests\nexport const Testing = {\n EventManager: EventManager,\n TaskQueueManager: TaskQueueManager,\n};\n\n// #endregion\n"],"sourceRoot":""}