@rive-app/canvas 1.1.10 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rive-app/canvas",
3
- "version": "1.1.10",
3
+ "version": "1.2.0",
4
4
  "description": "Rive's canvas based web api.",
5
5
  "main": "rive.js",
6
6
  "homepage": "https://rive.app",
package/rive.d.ts CHANGED
@@ -245,12 +245,7 @@ export declare class Rive {
245
245
  private src;
246
246
  private buffer;
247
247
  private _layout;
248
- private _updateLayout;
249
248
  private renderer;
250
- /**
251
- * Flag to active/deactivate renderer
252
- */
253
- private isRendererActive;
254
249
  private loaded;
255
250
  /**
256
251
  * Tracks if a Rive file is loaded; we need this in addition to loaded as some
package/rive.js CHANGED
@@ -33,26 +33,26 @@ function ca(){function b(h){const g=d;c=a=0;d=new Map;g.forEach(l=>{try{l(h)}cat
33
33
  "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<k&&(h(1E3*g/k),g=l=0)):(l=k,g=0)}}};this.$a=function(){f&&(document.body.remove(f),f=null);e=null};this.La=function(){}}
34
34
  function ea(b){console.assert(!0);const a=new Map;let c=-Infinity;this.push=function(d){d=d+((1<<b)-1)>>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(c<d))},1E3));c=Math.max(d,c);return c<<b}}
35
35
  const fa=new function(){function b(){if(!a){var t=document.createElement("canvas"),v={alpha:1,depth:0,stencil:0,antialias:0,premultipliedAlpha:1,preserveDrawingBuffer:0,preferLowPowerToHighPerformance:0,failIfMajorPerformanceCaveat:0,enableExtensionsByDefault:1,explicitSwapControl:1,renderViaOffscreenBackBuffer:1};let q=t.getContext("webgl2",v);if(q)c=2;else if(q=t.getContext("webgl",v))c=1;else return console.log("No WebGL support. Image mesh will not be drawn."),!1;d=Math.min(q.getParameter(q.MAX_RENDERBUFFER_SIZE),
36
- q.getParameter(q.MAX_TEXTURE_SIZE));function E(I,w,z){w=q.createShader(w);q.shaderSource(w,z);q.compileShader(w);z=q.getShaderInfoLog(w);if(0<z.length)throw z;q.attachShader(I,w)}t=q.createProgram();E(t,q.VERTEX_SHADER,"attribute vec2 vertex;\n attribute vec2 uv;\n uniform vec4 mat;\n uniform vec2 translate;\n varying vec2 st;\n void main() {\n st = uv;\n gl_Position = vec4(mat2(mat) * vertex + translate, 0, 1);\n }");
37
- E(t,q.FRAGMENT_SHADER,"precision highp float;\n uniform sampler2D image;\n varying vec2 st;\n void main() {\n gl_FragColor = texture2D(image, st);\n }");q.bindAttribLocation(t,0,"vertex");q.bindAttribLocation(t,1,"uv");q.linkProgram(t);v=q.getProgramInfoLog(t);if(0<v.trim().length)throw v;e=q.getUniformLocation(t,"mat");f=q.getUniformLocation(t,"translate");q.useProgram(t);q.bindBuffer(q.ARRAY_BUFFER,q.createBuffer());
36
+ q.getParameter(q.MAX_TEXTURE_SIZE));function F(I,w,z){w=q.createShader(w);q.shaderSource(w,z);q.compileShader(w);z=q.getShaderInfoLog(w);if(0<z.length)throw z;q.attachShader(I,w)}t=q.createProgram();F(t,q.VERTEX_SHADER,"attribute vec2 vertex;\n attribute vec2 uv;\n uniform vec4 mat;\n uniform vec2 translate;\n varying vec2 st;\n void main() {\n st = uv;\n gl_Position = vec4(mat2(mat) * vertex + translate, 0, 1);\n }");
37
+ F(t,q.FRAGMENT_SHADER,"precision highp float;\n uniform sampler2D image;\n varying vec2 st;\n void main() {\n gl_FragColor = texture2D(image, st);\n }");q.bindAttribLocation(t,0,"vertex");q.bindAttribLocation(t,1,"uv");q.linkProgram(t);v=q.getProgramInfoLog(t);if(0<v.trim().length)throw v;e=q.getUniformLocation(t,"mat");f=q.getUniformLocation(t,"translate");q.useProgram(t);q.bindBuffer(q.ARRAY_BUFFER,q.createBuffer());
38
38
  q.enableVertexAttribArray(0);q.enableVertexAttribArray(1);q.bindBuffer(q.ELEMENT_ARRAY_BUFFER,q.createBuffer());q.uniform1i(q.getUniformLocation(t,"image"),0);q.pixelStorei(q.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0);a=q}return!0}let a=null,c=0,d=0,e=null,f=null,h=0,g=0;this.ob=function(){b();return d};this.Ya=function(t){if(!b())return null;const v=a.createTexture();a.bindTexture(a.TEXTURE_2D,v);a.texImage2D(a.TEXTURE_2D,0,a.RGBA,a.RGBA,a.UNSIGNED_BYTE,t);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE);
39
- a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.LINEAR);2==c?(a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.LINEAR_MIPMAP_LINEAR),a.generateMipmap(a.TEXTURE_2D)):a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.LINEAR);return v};const l=new ea(8),k=new ea(8),p=new ea(10),r=new ea(10);this.bb=function(t,v,q,E,I){if(b()){var w=l.push(t),z=k.push(v);if(a.canvas.width!=w||a.canvas.height!=z)a.canvas.width=w,a.canvas.height=z;
40
- a.viewport(0,z-v,t,v);a.disable(a.SCISSOR_TEST);a.clearColor(0,0,0,0);a.clear(a.COLOR_BUFFER_BIT);a.enable(a.SCISSOR_TEST);q.sort((y,da)=>da.Oa-y.Oa);w=p.push(E);h!=w&&(a.bufferData(a.ARRAY_BUFFER,8*w,a.DYNAMIC_DRAW),h=w);w=0;for(var J of q)a.bufferSubData(a.ARRAY_BUFFER,w,J.Aa),w+=4*J.Aa.length;console.assert(w==4*E);for(var P of q)a.bufferSubData(a.ARRAY_BUFFER,w,P.Ra),w+=4*P.Ra.length;console.assert(w==8*E);w=r.push(I);g!=w&&(a.bufferData(a.ELEMENT_ARRAY_BUFFER,2*w,a.DYNAMIC_DRAW),g=w);J=0;for(var X of q)a.bufferSubData(a.ELEMENT_ARRAY_BUFFER,
39
+ a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.LINEAR);2==c?(a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.LINEAR_MIPMAP_LINEAR),a.generateMipmap(a.TEXTURE_2D)):a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.LINEAR);return v};const l=new ea(8),k=new ea(8),p=new ea(10),r=new ea(10);this.bb=function(t,v,q,F,I){if(b()){var w=l.push(t),z=k.push(v);if(a.canvas.width!=w||a.canvas.height!=z)a.canvas.width=w,a.canvas.height=z;
40
+ a.viewport(0,z-v,t,v);a.disable(a.SCISSOR_TEST);a.clearColor(0,0,0,0);a.clear(a.COLOR_BUFFER_BIT);a.enable(a.SCISSOR_TEST);q.sort((y,da)=>da.Oa-y.Oa);w=p.push(F);h!=w&&(a.bufferData(a.ARRAY_BUFFER,8*w,a.DYNAMIC_DRAW),h=w);w=0;for(var J of q)a.bufferSubData(a.ARRAY_BUFFER,w,J.Aa),w+=4*J.Aa.length;console.assert(w==4*F);for(var P of q)a.bufferSubData(a.ARRAY_BUFFER,w,P.Ra),w+=4*P.Ra.length;console.assert(w==8*F);w=r.push(I);g!=w&&(a.bufferData(a.ELEMENT_ARRAY_BUFFER,2*w,a.DYNAMIC_DRAW),g=w);J=0;for(var X of q)a.bufferSubData(a.ELEMENT_ARRAY_BUFFER,
41
41
  J,X.indices),J+=2*X.indices.length;console.assert(J==2*I);X=0;P=!0;w=J=0;for(const y of q){y.image.va!=X&&(a.bindTexture(a.TEXTURE_2D,y.image.Va||null),X=y.image.va);y.rb?(a.scissor(y.Ea,z-y.Fa-y.Ka,y.yb,y.Ka),P=!0):P&&(a.scissor(0,z-v,t,v),P=!1);q=2/t;const da=-2/v;a.uniform4f(e,y.la[0]*q*y.ra,y.la[1]*da*y.sa,y.la[2]*q*y.ra,y.la[3]*da*y.sa);a.uniform2f(f,y.la[4]*q*y.ra+q*(y.Ea-y.pb*y.ra)-1,y.la[5]*da*y.sa+da*(y.Fa-y.qb*y.sa)+1);a.vertexAttribPointer(0,2,a.FLOAT,!1,0,w);a.vertexAttribPointer(1,2,
42
- a.FLOAT,!1,0,w+4*E);a.drawElements(a.TRIANGLES,y.indices.length,a.UNSIGNED_SHORT,J);w+=4*y.Aa.length;J+=2*y.indices.length}console.assert(w==4*E);console.assert(J==2*I)}};this.canvas=function(){return b()&&a.canvas}};
42
+ a.FLOAT,!1,0,w+4*F);a.drawElements(a.TRIANGLES,y.indices.length,a.UNSIGNED_SHORT,J);w+=4*y.Aa.length;J+=2*y.indices.length}console.assert(w==4*F);console.assert(J==2*I)}};this.canvas=function(){return b()&&a.canvas}};
43
43
  Rive.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";
44
- case 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(){0<J.length&&(fa.bb(z.drawWidth(),z.drawHeight(),J,P,X),J=[],X=P=0,z.reset(512,512));for(const n of w){for(const u of n.da)u();n.da=[]}w.clear()}var d=Rive.RenderPaintStyle;const e=Rive.RenderPath,f=Rive.RenderPaint,h=Rive.Renderer,g=Rive.StrokeCap,l=Rive.StrokeJoin,k=Rive.BlendMode,p=d.fill,r=d.stroke,
45
- t=Rive.FillRule.evenOdd;let v=1;var q=Rive.RenderImage.extend("CanvasRenderImage",{__construct:function(){this.__parent.__construct.call(this);this.va=v;v=v+1&2147483647||1},decode:function(n){let u=Xa;u.total++;var F=this,B=new Image;B.src=URL.createObjectURL(new Blob([n],{type:"image/png"}));B.onload=function(){F.Ta=B;F.Va=fa.Ya(B);F.size(B.width,B.height);u.loaded++;if(u.loaded===u.total){const D=u.ready;D&&(D(),u.ready=null)}}}}),E=e.extend("CanvasRenderPath",{__construct:function(){this.__parent.__construct.call(this);
46
- this.ga=new Path2D},rewind:function(){this.ga=new Path2D},addPath:function(n,u,F,B,D,G,A){var C=this.ga,R=C.addPath;n=n.ga;const K=new DOMMatrix;K.a=u;K.b=F;K.c=B;K.d=D;K.e=G;K.f=A;R.call(C,n,K)},fillRule:function(n){this.Ca=n},moveTo:function(n,u){this.ga.moveTo(n,u)},lineTo:function(n,u){this.ga.lineTo(n,u)},cubicTo:function(n,u,F,B,D,G){this.ga.bezierCurveTo(n,u,F,B,D,G)},close:function(){this.ga.closePath()}}),I=f.extend("CanvasRenderPaint",{color:function(n){this.Da=a(n)},thickness:function(n){this.Wa=
47
- n},join:function(n){switch(n){case l.miter:this.ua="miter";break;case l.round:this.ua="round";break;case l.bevel:this.ua="bevel"}},cap:function(n){switch(n){case g.butt:this.ta="butt";break;case g.round:this.ta="round";break;case g.square:this.ta="square"}},style:function(n){this.Ua=n},blendMode:function(n){this.Sa=b(n)},linearGradient:function(n,u,F,B){this.oa={Pa:n,Qa:u,Ha:F,Ia:B,za:[]}},radialGradient:function(n,u,F,B){this.oa={Pa:n,Qa:u,Ha:F,Ia:B,za:[],mb:!0}},addStop:function(n,u){this.oa.za.push({color:n,
48
- stop:u})},completeGradient:function(){},draw:function(n,u,F){let B=this.Ua;var D=this.Da,G=this.oa;n.globalCompositeOperation=this.Sa;if(null!=G){D=G.Pa;var A=G.Qa;const R=G.Ha;var C=G.Ia;const K=G.za;G.mb?(G=R-D,C-=A,D=n.createRadialGradient(D,A,0,D,A,Math.sqrt(G*G+C*C))):D=n.createLinearGradient(D,A,R,C);for(let U=0,L=K.length;U<L;U++)A=K[U],D.addColorStop(A.stop,a(A.color));this.Da=D;this.oa=null}switch(B){case r:n.strokeStyle=D;n.lineWidth=this.Wa;n.lineCap=this.ta;n.lineJoin=this.ua;n.stroke(u);
49
- break;case p:n.fillStyle=D,n.fill(u,F)}}});const w=new Set;let z=null,J=[],P=0,X=0;var y=Rive.CanvasRenderer=h.extend("Renderer",{__construct:function(n){this.__parent.__construct.call(this);this.fa=[1,0,0,1,0,0];this.Z=n.getContext("2d");this.Ba=n;this.da=[]},save:function(){this.fa.push(...this.fa.slice(this.fa.length-6));this.da.push(this.Z.save.bind(this.Z))},restore:function(){const n=this.fa.length-6;if(6>n)throw"restore() called without matching save().";this.fa.splice(n);this.da.push(this.Z.restore.bind(this.Z))},
50
- transform:function(n,u,F,B,D,G){const A=this.fa,C=A.length-6;A.splice(C,6,A[C]*n+A[C+2]*u,A[C+1]*n+A[C+3]*u,A[C]*F+A[C+2]*B,A[C+1]*F+A[C+3]*B,A[C]*D+A[C+2]*G+A[C+4],A[C+1]*D+A[C+3]*G+A[C+5]);this.da.push(this.Z.transform.bind(this.Z,n,u,F,B,D,G))},rotate:function(n){const u=Math.sin(n);n=Math.cos(n);this.transform(n,u,-u,n,0,0)},_drawPath:function(n,u){this.da.push(u.draw.bind(u,this.Z,n.ga,n.Ca===t?"evenodd":"nonzero"))},_drawImage:function(n,u,F){var B=n.Ta;if(B){var D=this.Z,G=b(u);this.da.push(function(){D.globalCompositeOperation=
51
- G;D.globalAlpha=F;D.drawImage(B,0,0);D.globalAlpha=1})}},_getMatrix:function(n){const u=this.fa,F=u.length-6;for(let B=0;6>B;++B)n[B]=u[F+B]},_drawImageMesh:function(n,u,F,B,D,G,A,C,R,K){var U=this.Z.canvas.width,L=this.Z.canvas.height;const pb=R-A,qb=K-C;A=Math.max(A,0);C=Math.max(C,0);R=Math.min(R,U);K=Math.min(K,L);const sa=R-A,ta=K-C;console.assert(sa<=Math.min(pb,U));console.assert(ta<=Math.min(qb,L));if(!(0>=sa||0>=ta)){R=sa<pb||ta<qb;U=K=1;var ia=Math.ceil(sa*K),ja=Math.ceil(ta*U);L=fa.ob();
52
- ia>L&&(K*=L/ia,ia=L);ja>L&&(U*=L/ja,ja=L);z||(z=new m.DynamicRectanizer(L),z.reset(512,512));L=z.addRect(ia,ja);0>L&&(c(),w.add(this),L=z.addRect(ia,ja),console.assert(0<=L));var rb=L&65535,sb=L>>16;J.push({la:this.fa.slice(this.fa.length-6),image:n,Ea:rb,Fa:sb,pb:A,qb:C,yb:ia,Ka:ja,ra:K,sa:U,Aa:new Float32Array(B),Ra:new Float32Array(D),indices:new Uint16Array(G),rb:R,Oa:n.va<<1|(R?1:0)});P+=B.length;X+=G.length;var na=this.Z,Yb=b(u);this.da.push(function(){na.save();na.resetTransform();na.globalCompositeOperation=
53
- Yb;na.globalAlpha=F;na.drawImage(fa.canvas(),rb,sb,ia,ja,A,C,sa,ta);na.restore()})}},_clipPath:function(n){this.da.push(this.Z.clip.bind(this.Z,n.ga,n.Ca===t?"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,u){this.transform(1,0,0,1,n,u)}});Rive.makeRenderer=function(n){return new y(n)};Rive.renderFactory={makeRenderPaint:function(){return new I},makeRenderPath:function(){return new E},
54
- makeRenderImage:function(){return new q}};let da=Rive.load,Xa=null;Rive.load=function(n){return new Promise(function(u){let F=null;Xa={total:0,loaded:0,ready:function(){u(F)}};F=da(n);0==Xa.total&&u(F)})};d=new ca;Rive.requestAnimationFrame=d.requestAnimationFrame.bind(d);Rive.cancelAnimationFrame=d.cancelAnimationFrame.bind(d);Rive.enableFPSCounter=d.cb.bind(d);Rive.disableFPSCounter=d.$a;d.La=c;Rive.cleanup=function(){z&&z.delete()}};
55
- var ha=Object.assign({},m),ka="object"==typeof window,la="function"==typeof importScripts,x="",ma,oa;
44
+ case 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(){0<J.length&&(fa.bb(z.drawWidth(),z.drawHeight(),J,P,X),J=[],X=P=0,z.reset(512,512));for(const n of w){for(const u of n.ba)u();n.ba=[]}w.clear()}var d=Rive.RenderPaintStyle;const e=Rive.RenderPath,f=Rive.RenderPaint,h=Rive.Renderer,g=Rive.StrokeCap,l=Rive.StrokeJoin,k=Rive.BlendMode,p=d.fill,r=d.stroke,
45
+ t=Rive.FillRule.evenOdd;let v=1;var q=Rive.RenderImage.extend("CanvasRenderImage",{__construct:function(){this.__parent.__construct.call(this);this.va=v;v=v+1&2147483647||1},decode:function(n){let u=Xa;u.total++;var D=this,B=new Image;B.src=URL.createObjectURL(new Blob([n],{type:"image/png"}));B.onload=function(){D.Ta=B;D.Va=fa.Ya(B);D.size(B.width,B.height);u.loaded++;if(u.loaded===u.total){const E=u.ready;E&&(E(),u.ready=null)}}}}),F=e.extend("CanvasRenderPath",{__construct:function(){this.__parent.__construct.call(this);
46
+ this.ga=new Path2D},rewind:function(){this.ga=new Path2D},addPath:function(n,u,D,B,E,G,A){var C=this.ga,R=C.addPath;n=n.ga;const K=new DOMMatrix;K.a=u;K.b=D;K.c=B;K.d=E;K.e=G;K.f=A;R.call(C,n,K)},fillRule:function(n){this.Ca=n},moveTo:function(n,u){this.ga.moveTo(n,u)},lineTo:function(n,u){this.ga.lineTo(n,u)},cubicTo:function(n,u,D,B,E,G){this.ga.bezierCurveTo(n,u,D,B,E,G)},close:function(){this.ga.closePath()}}),I=f.extend("CanvasRenderPaint",{color:function(n){this.Da=a(n)},thickness:function(n){this.Wa=
47
+ n},join:function(n){switch(n){case l.miter:this.ua="miter";break;case l.round:this.ua="round";break;case l.bevel:this.ua="bevel"}},cap:function(n){switch(n){case g.butt:this.ta="butt";break;case g.round:this.ta="round";break;case g.square:this.ta="square"}},style:function(n){this.Ua=n},blendMode:function(n){this.Sa=b(n)},linearGradient:function(n,u,D,B){this.oa={Pa:n,Qa:u,Ha:D,Ia:B,za:[]}},radialGradient:function(n,u,D,B){this.oa={Pa:n,Qa:u,Ha:D,Ia:B,za:[],mb:!0}},addStop:function(n,u){this.oa.za.push({color:n,
48
+ stop:u})},completeGradient:function(){},draw:function(n,u,D){let B=this.Ua;var E=this.Da,G=this.oa;n.globalCompositeOperation=this.Sa;if(null!=G){E=G.Pa;var A=G.Qa;const R=G.Ha;var C=G.Ia;const K=G.za;G.mb?(G=R-E,C-=A,E=n.createRadialGradient(E,A,0,E,A,Math.sqrt(G*G+C*C))):E=n.createLinearGradient(E,A,R,C);for(let U=0,L=K.length;U<L;U++)A=K[U],E.addColorStop(A.stop,a(A.color));this.Da=E;this.oa=null}switch(B){case r:n.strokeStyle=E;n.lineWidth=this.Wa;n.lineCap=this.ta;n.lineJoin=this.ua;n.stroke(u);
49
+ break;case p:n.fillStyle=E,n.fill(u,D)}}});const w=new Set;let z=null,J=[],P=0,X=0;var y=Rive.CanvasRenderer=h.extend("Renderer",{__construct:function(n){this.__parent.__construct.call(this);this.fa=[1,0,0,1,0,0];this.Z=n.getContext("2d");this.Ba=n;this.ba=[]},save:function(){this.fa.push(...this.fa.slice(this.fa.length-6));this.ba.push(this.Z.save.bind(this.Z))},restore:function(){const n=this.fa.length-6;if(6>n)throw"restore() called without matching save().";this.fa.splice(n);this.ba.push(this.Z.restore.bind(this.Z))},
50
+ transform:function(n,u,D,B,E,G){const A=this.fa,C=A.length-6;A.splice(C,6,A[C]*n+A[C+2]*u,A[C+1]*n+A[C+3]*u,A[C]*D+A[C+2]*B,A[C+1]*D+A[C+3]*B,A[C]*E+A[C+2]*G+A[C+4],A[C+1]*E+A[C+3]*G+A[C+5]);this.ba.push(this.Z.transform.bind(this.Z,n,u,D,B,E,G))},rotate:function(n){const u=Math.sin(n);n=Math.cos(n);this.transform(n,u,-u,n,0,0)},_drawPath:function(n,u){this.ba.push(u.draw.bind(u,this.Z,n.ga,n.Ca===t?"evenodd":"nonzero"))},drawImage:function(n,...u){var D=this.Z;this.ba.push(function(){D.drawImage(n,
51
+ ...u)})},_drawRiveImage:function(n,u,D){var B=n.Ta;if(B){var E=this.Z,G=b(u);this.ba.push(function(){E.globalCompositeOperation=G;E.globalAlpha=D;E.drawImage(B,0,0);E.globalAlpha=1})}},_getMatrix:function(n){const u=this.fa,D=u.length-6;for(let B=0;6>B;++B)n[B]=u[D+B]},_drawImageMesh:function(n,u,D,B,E,G,A,C,R,K){var U=this.Z.canvas.width,L=this.Z.canvas.height;const pb=R-A,qb=K-C;A=Math.max(A,0);C=Math.max(C,0);R=Math.min(R,U);K=Math.min(K,L);const sa=R-A,ta=K-C;console.assert(sa<=Math.min(pb,U));
52
+ console.assert(ta<=Math.min(qb,L));if(!(0>=sa||0>=ta)){R=sa<pb||ta<qb;U=K=1;var ia=Math.ceil(sa*K),ja=Math.ceil(ta*U);L=fa.ob();ia>L&&(K*=L/ia,ia=L);ja>L&&(U*=L/ja,ja=L);z||(z=new m.DynamicRectanizer(L),z.reset(512,512));L=z.addRect(ia,ja);0>L&&(c(),w.add(this),L=z.addRect(ia,ja),console.assert(0<=L));var rb=L&65535,sb=L>>16;J.push({la:this.fa.slice(this.fa.length-6),image:n,Ea:rb,Fa:sb,pb:A,qb:C,yb:ia,Ka:ja,ra:K,sa:U,Aa:new Float32Array(B),Ra:new Float32Array(E),indices:new Uint16Array(G),rb:R,Oa:n.va<<
53
+ 1|(R?1:0)});P+=B.length;X+=G.length;var na=this.Z,Yb=b(u);this.ba.push(function(){na.save();na.resetTransform();na.globalCompositeOperation=Yb;na.globalAlpha=D;na.drawImage(fa.canvas(),rb,sb,ia,ja,A,C,sa,ta);na.restore()})}},_clipPath:function(n){this.ba.push(this.Z.clip.bind(this.Z,n.ga,n.Ca===t?"evenodd":"nonzero"))},clear:function(){w.add(this);this.ba.push(this.Z.clearRect.bind(this.Z,0,0,this.Ba.width,this.Ba.height))},flush:function(){},translate:function(n,u){this.transform(1,0,0,1,n,u)}});
54
+ Rive.makeRenderer=function(n){return new y(n)};Rive.renderFactory={makeRenderPaint:function(){return new I},makeRenderPath:function(){return new F},makeRenderImage:function(){return new q}};let da=Rive.load,Xa=null;Rive.load=function(n){return new Promise(function(u){let D=null;Xa={total:0,loaded:0,ready:function(){u(D)}};D=da(n);0==Xa.total&&u(D)})};d=new ca;Rive.requestAnimationFrame=d.requestAnimationFrame.bind(d);Rive.cancelAnimationFrame=d.cancelAnimationFrame.bind(d);Rive.enableFPSCounter=d.cb.bind(d);
55
+ Rive.disableFPSCounter=d.$a;d.La=c;Rive.cleanup=function(){z&&z.delete()}};var ha=Object.assign({},m),ka="object"==typeof window,la="function"==typeof importScripts,x="",ma,oa;
56
56
  if(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?
57
57
  a(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;
58
58
  function ya(b,a,c){var d=a+c;for(c=a;b[c]&&!(c>=d);)++c;if(16<c-a&&b.buffer&&xa)return xa.decode(b.subarray(a,c));for(d="";a<c;){var e=b[a++];if(e&128){var f=b[a++]&63;if(192==(e&224))d+=String.fromCharCode((e&31)<<6|f);else{var h=b[a++]&63;e=224==(e&240)?(e&15)<<12|f<<6|h:(e&7)<<18|f<<12|h<<6|b[a++]&63;65536>e?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,H,Ba,Ca,Da,M,Ea,Fa;
@@ -62,8 +62,8 @@ function Sa(){if(!ra&&(ka||la)){if("function"==typeof fetch&&!N.startsWith("file
62
62
  function Ua(b){if(void 0===b)return"_unknown";b=b.replace(/[^a-zA-Z0-9_]/g,"$");var a=b.charCodeAt(0);return 48<=a&&57>=a?"_"+b:b}function Va(b,a){b=Ua(b);return function(){return a.apply(this,arguments)}}var O=[{},{value:void 0},{value:null},{value:!0},{value:!1}],Wa=[];
63
63
  function 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 Q(b){throw new Za(b);}
64
64
  var $a=b=>{b||Q("Cannot use deleted val. handle = "+b);return O[b].value},S=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():O.length;O[a]={ya:1,value:b};return a}},ab=void 0,bb=void 0;function T(b){for(var a="";H[b];)a+=bb[H[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={};
65
- function fb(b,a){for(void 0===a&&Q("ptr should not be undefined");b.$;)a=b.na(a),b=b.$;return a}var gb={};function hb(b){b=ib(b);var a=T(b);jb(b);return a}function kb(b,a){var c=gb[b];void 0===c&&Q(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={};
66
- function 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}}))}
65
+ function fb(b,a){for(void 0===a&&Q("ptr should not be undefined");b.$;)a=b.na(a),b=b.$;return a}var gb={};function hb(b){b=ib(b);var a=T(b);jb(b);return a}function kb(b,a){var c=gb[b];void 0===c&&Q(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.da.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={};
66
+ function 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.da!==!!a.aa&&wb("Both smartPtrType and smartPtr must be specified");a.count={value:1};return yb(Object.create(b,{U:{value:a}}))}
67
67
  function 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={};
68
68
  function W(b,a,c){function d(g){g=c(g);g.length!==b.length&&wb("Mismatched type converter count");for(var l=0;l<b.length;++l)Y(b[l],g[l])}b.forEach(function(g){Db[g]=a});var e=Array(a.length),f=[],h=0;a.forEach((g,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)}
69
69
  function 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);}}
@@ -71,14 +71,14 @@ function Y(b,a,c={}){if(!("argPackAdvance"in a))throw new TypeError("registerTyp
71
71
  function Hb(b,a,c){if(void 0===b[a].Y){var d=b[a];b[a]=function(){b[a].Y.hasOwnProperty(arguments.length)||Q("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}}
72
72
  function Ib(b,a,c){m.hasOwnProperty(b)?((void 0===c||void 0!==m[b].Y&&void 0!==m[b].Y[c])&&Q("Cannot register public name '"+b+"' twice"),Hb(m,b,b),m.hasOwnProperty(c)&&Q("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=[]}
73
73
  function Kb(b,a,c){for(;a!==c;)a.na||Q("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&&Q("null is not a valid "+this.name),0;a.U||Q('Cannot pass "'+Mb(a)+'" as a '+this.name);a.U.W||Q("Cannot pass deleted object as a pointer of type "+this.name);return Kb(a.U.W,a.U.X.V,this.V)}
74
- function Nb(b,a){if(null===a){this.wa&&Q("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||Q('Cannot pass "'+Mb(a)+'" as a '+this.name);a.U.W||Q("Cannot pass deleted object as a pointer of type "+this.name);!this.pa&&a.U.X.pa&&Q("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&&Q("Passing raw pointer to smart pointer is illegal"),
75
- this.xb){case 0:a.U.ca===this?c=a.U.aa:Q("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,S(function(){d["delete"]()}));null!==b&&b.push(this.ha,c)}break;default:Q("Unsupporting sharing policy")}return c}
74
+ function Nb(b,a){if(null===a){this.wa&&Q("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||Q('Cannot pass "'+Mb(a)+'" as a '+this.name);a.U.W||Q("Cannot pass deleted object as a pointer of type "+this.name);!this.pa&&a.U.X.pa&&Q("Cannot convert argument of type "+(a.U.da?a.U.da.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&&Q("Passing raw pointer to smart pointer is illegal"),
75
+ this.xb){case 0:a.U.da===this?c=a.U.aa:Q("Cannot convert argument of type "+(a.U.da?a.U.da.name:a.U.X.name)+" to parameter type "+this.name);break;case 1:c=a.U.aa;break;case 2:if(a.U.da===this)c=a.U.aa;else{var d=a.clone();c=this.tb(c,S(function(){d["delete"]()}));null!==b&&b.push(this.ha,c)}break;default:Q("Unsupporting sharing policy")}return c}
76
76
  function Ob(b,a){if(null===a)return this.wa&&Q("null is not a valid "+this.name),0;a.U||Q('Cannot pass "'+Mb(a)+'" as a '+this.name);a.U.W||Q("Cannot pass deleted object as a pointer of type "+this.name);a.U.X.pa&&Q("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)}
77
- function 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)}
77
+ function 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.ca=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)}
78
78
  function 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=T(b);var c=b.includes("j")?Rb(b,a):Ha.get(a);"function"!=typeof c&&Q("unknown function pointer with signature "+b+": "+a);return c}var Sb=void 0;
79
79
  function 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([", "]));}
80
- function Ub(b,a,c,d,e){var f=a.length;2>f&&Q("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<a.length;++c)if(null!==a[c]&&void 0===a[c].ba){g=!0;break}var l="void"!==a[0].name,k=f-2,p=Array(k),r=[],t=[];return function(){arguments.length!==k&&Q("function "+b+" called with "+arguments.length+" arguments, expected "+k+" args!");t.length=0;r.length=h?2:1;r[0]=e;if(h){var v=a[1].toWireType(t,this);r[1]=v}for(var q=0;q<k;++q)p[q]=
81
- a[q+2].toWireType(t,arguments[q]),r.push(p[q]);q=d.apply(null,r);if(g)Ab(t);else for(var E=h?1:2;E<a.length;E++){var I=1===E?v:p[E-2];null!==a[E].ba&&a[E].ba(I)}v=l?a[0].fromWireType(q):void 0;return v}}function Vb(b,a){for(var c=[],d=0;d<b;d++)c.push(M[a+4*d>>2]);return c}
80
+ function Ub(b,a,c,d,e){var f=a.length;2>f&&Q("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<a.length;++c)if(null!==a[c]&&void 0===a[c].ca){g=!0;break}var l="void"!==a[0].name,k=f-2,p=Array(k),r=[],t=[];return function(){arguments.length!==k&&Q("function "+b+" called with "+arguments.length+" arguments, expected "+k+" args!");t.length=0;r.length=h?2:1;r[0]=e;if(h){var v=a[1].toWireType(t,this);r[1]=v}for(var q=0;q<k;++q)p[q]=
81
+ a[q+2].toWireType(t,arguments[q]),r.push(p[q]);q=d.apply(null,r);if(g)Ab(t);else for(var F=h?1:2;F<a.length;F++){var I=1===F?v:p[F-2];null!==a[F].ca&&a[F].ca(I)}v=l?a[0].fromWireType(q):void 0;return v}}function Vb(b,a){for(var c=[],d=0;d<b;d++)c.push(M[a+4*d>>2]);return c}
82
82
  function Wb(b,a,c){b instanceof Object||Q(c+' with invalid "this": '+b);b instanceof a.V.constructor||Q(c+' incompatible with "this" of type '+b.constructor.name);b.U.W||Q("cannot call emscripten binding method "+c+" on deleted object");return Kb(b.U.W,b.U.X.V,a.V)}function Xb(b){4<b&&0===--O[b].ya&&(O[b]=void 0,Wa.push(b))}
83
83
  function Zb(b,a,c){switch(a){case 0:return function(d){return this.fromWireType((c?Aa:H)[d])};case 1:return function(d){return this.fromWireType((c?Ba:Ca)[d>>1])};case 2:return function(d){return this.fromWireType((c?Da:M)[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}
84
84
  function $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);}}
@@ -87,29 +87,29 @@ function cc(b,a){var c=b>>1;for(var d=c+a/2;!(c>=d)&&Ca[c];)++c;c<<=1;if(32<c-b&
87
87
  function 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<b.length;++e){var f=b.charCodeAt(e);if(55296<=f&&57343>=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}
88
88
  function hc(b){for(var a=0,c=0;c<b.length;++c){var d=b.charCodeAt(c);55296<=d&&57343>=d&&++c;a+=4}return a}var ic={};function jc(b){var a=ic[b];return void 0===a?T(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<b;++d)c[d]=kb(M[a+4*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;a<O.length;++a)void 0!==O[a]&&++b;return b};
89
89
  m.get_first_emval=function(){for(var b=5;b<O.length;++b)if(void 0!==O[b])return O[b];return null};ab=m.PureVirtualError=Ya("PureVirtualError");for(var pc=Array(256),qc=0;256>qc;++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");
90
- Gb.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};
90
+ Gb.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,da:e.da}}}));b.U.count.value+=1;b.U.ka=!1;return b};
91
91
  Gb.prototype["delete"]=function(){this.U.W||Fb(this);this.U.ka&&!this.U.ma&&Q("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&&Q("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};
92
92
  Pb.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"]()};
93
- Pb.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})};
93
+ Pb.prototype.fromWireType=function(b){function a(){return this.qa?xb(this.V.ea,{X:this.sb,W:c,da: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,da:this,aa:b}):xb(d.V.ea,{X:d,W:e})};
94
94
  Sb=m.UnboundTypeError=Ya("UnboundTypeError");
95
95
  var sc={G:function(b,a,c){b=T(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&&Q("Pass correct 'this' to __construct");var k=g.implement.apply(void 0,[this].concat(d.call(arguments)));
96
96
  lb(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)?Q("Tried to register registered instance: "+k):V[k]=this};f.__destruct=function(){this===f&&Q("Pass correct 'this' to __destruct");lb(this);var k=this.U.W;k=fb(e,k);V.hasOwnProperty(k)?delete V[k]:Q("Tried to unregister unregistered instance: "+k)};b.prototype=Object.create(f);for(var l in c)b.prototype[l]=c[l];return S(b)},J:function(b){var a=zb[b];delete zb[b];
97
- var 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,t=l.jb,v=h[k+e.length],q=l.ub,E=l.wb;g[l.eb]={read:I=>p.fromWireType(r(t,I)),write:(I,w)=>{var z=[];q(E,I,v.toWireType(z,w));Ab(z)}}});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!==
98
- l&&l.push(d,r);return r},argPackAdvance:8,readValueFromPointer:Bb,ba:d}]})},z:function(){},E:function(b,a,c,d,e){var f=Eb(c);a=T(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})},e:function(b,a,c,d,e,f,h,g,l,k,p,r,t){p=T(p);f=Z(e,f);g&&(g=Z(h,g));k&&(k=
99
- Z(l,k));t=Z(r,t);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 E=q.V;var I=E.ea}else I=Gb.prototype;q=Va(v,function(){if(Object.getPrototypeOf(this)!==w)throw new Za("Use 'new' to construct "+p);if(void 0===z.ia)throw new Za(p+" has no accessible constructor");var P=z.ia[arguments.length];if(void 0===P)throw new Za("Tried to invoke ctor of "+p+" with invalid number of parameters ("+arguments.length+") - expected ("+
100
- Object.keys(z.ia).toString()+") parameters instead!");return P.apply(this,arguments)});var w=Object.create(I,{constructor:{value:q}});q.prototype=w;var z=new Jb(p,q,w,t,E,f,g,k);E=new Pb(p,z,!0,!1);I=new Pb(p+"*",z,!1,!1);var J=new Pb(p+" const*",z,!1,!0);tb[b]={pointerType:I,Xa:J};Qb(v,q);return[E,I,J]})},k:function(b,a,c,d,e,f,h){var g=Vb(c,d);a=T(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)]);
97
+ var 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,t=l.jb,v=h[k+e.length],q=l.ub,F=l.wb;g[l.eb]={read:I=>p.fromWireType(r(t,I)),write:(I,w)=>{var z=[];q(F,I,v.toWireType(z,w));Ab(z)}}});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!==
98
+ l&&l.push(d,r);return r},argPackAdvance:8,readValueFromPointer:Bb,ca:d}]})},z:function(){},E:function(b,a,c,d,e){var f=Eb(c);a=T(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])},ca:null})},e:function(b,a,c,d,e,f,h,g,l,k,p,r,t){p=T(p);f=Z(e,f);g&&(g=Z(h,g));k&&(k=
99
+ Z(l,k));t=Z(r,t);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 F=q.V;var I=F.ea}else I=Gb.prototype;q=Va(v,function(){if(Object.getPrototypeOf(this)!==w)throw new Za("Use 'new' to construct "+p);if(void 0===z.ia)throw new Za(p+" has no accessible constructor");var P=z.ia[arguments.length];if(void 0===P)throw new Za("Tried to invoke ctor of "+p+" with invalid number of parameters ("+arguments.length+") - expected ("+
100
+ Object.keys(z.ia).toString()+") parameters instead!");return P.apply(this,arguments)});var w=Object.create(I,{constructor:{value:q}});q.prototype=w;var z=new Jb(p,q,w,t,F,f,g,k);F=new Pb(p,z,!0,!1);I=new Pb(p+"*",z,!1,!1);var J=new Pb(p+" const*",z,!1,!0);tb[b]={pointerType:I,Xa:J};Qb(v,q);return[F,I,J]})},k:function(b,a,c,d,e,f,h){var g=Vb(c,d);a=T(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)]);
101
101
  var 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(t){t=Ub(p,[t[0],null].concat(t.slice(1)),null,f,h);void 0===r[a].Y?(t.ja=c-1,r[a]=t):r[a].Y[c-1]=t;return[]});return[]})},s:function(b,a,c,d,e,f,h,g){a=T(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])}:()=>{Q(k+" is a read-only property")};
102
102
  Object.defineProperty(l.V.constructor,a,p);W([],[c],function(r){r=r[0];var t={get:function(){return r.fromWireType(f(d))},enumerable:!0};g&&(g=Z(h,g),t.set=v=>{var q=[];g(d,r.toWireType(q,v));Ab(q)});Object.defineProperty(l.V.constructor,a,t);return[]});return[]})},o:function(b,a,c,d,e,f){0<a||ua();var h=Vb(a,c);e=Z(d,e);W([],[b],function(g){g=g[0];var l="constructor "+g.name;void 0===g.V.ia&&(g.V.ia=[]);if(void 0!==g.V.ia[a-1])throw new Za("Cannot register multiple constructors with identical number of parameters ("+
103
103
  (a-1)+") for class '"+g.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");g.V.ia[a-1]=()=>{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=T(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)]);
104
104
  g&&k.V.Ma.push(a);var t=k.V.ea,v=t[a];void 0===v||void 0===v.Y&&v.className!==k.name&&v.ja===c-2?(p.ja=c-2,p.className=k.name,t[a]=p):(Hb(t,a,r),t[a].Y[c-2]=p);W([],l,function(q){q=Ub(r,q,k,f,h);void 0===t[a].Y?(q.ja=c-2,t[a]=q):t[a].Y[c-2]=q;return[]});return[]})},d:function(b,a,c,d,e,f,h,g,l,k){a=T(a);e=Z(d,e);W([],[b],function(p){p=p[0];var r=p.name+"."+a,t={get:function(){Tb("Cannot access "+r+" due to unbound types",[c,h])},enumerable:!0,configurable:!0};t.set=l?()=>{Tb("Cannot access "+r+" due to unbound types",
105
- [c,h])}:()=>{Q(r+" is a read-only property")};Object.defineProperty(p.V.ea,a,t);W([],l?[c,h]:[c],function(v){var q=v[0],E={get:function(){var w=Wb(this,p,r+" getter");return q.fromWireType(e(f,w))},enumerable:!0};if(l){l=Z(g,l);var I=v[1];E.set=function(w){var z=Wb(this,p,r+" setter"),J=[];l(k,z,I.toWireType(J,w));Ab(J)}}Object.defineProperty(p.V.ea,a,E);return[]});return[]})},D:function(b,a){a=T(a);Y(b,{name:a,fromWireType:function(c){var d=$a(c);Xb(c);return d},toWireType:function(c,d){return S(d)},
106
- argPackAdvance:8,readValueFromPointer:Bb,ba:null})},l:function(b,a,c,d){function e(){}c=Eb(c);a=T(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)},c:function(b,a,c){var d=kb(b,"enum");a=T(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},u:function(b,
107
- a,c){c=Eb(c);a=T(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=T(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[]})},j:function(b,a,c,d,e){a=T(a);-1===e&&(e=4294967295);e=Eb(c);var f=g=>g;if(0===d){var h=32-8*c;f=g=>g<<h>>>h}c=a.includes("unsigned")?
108
- function(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})},g:function(b,a,c){function d(f){f>>=2;var h=M;return new e(za,h[f+1],h[f])}var e=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][a];c=T(c);Y(b,{name:c,fromWireType:d,argPackAdvance:8,readValueFromPointer:d},{lb:!0})},v:function(b,a){a=T(a);var c="std::string"===a;Y(b,{name:a,fromWireType:function(d){var e=
105
+ [c,h])}:()=>{Q(r+" is a read-only property")};Object.defineProperty(p.V.ea,a,t);W([],l?[c,h]:[c],function(v){var q=v[0],F={get:function(){var w=Wb(this,p,r+" getter");return q.fromWireType(e(f,w))},enumerable:!0};if(l){l=Z(g,l);var I=v[1];F.set=function(w){var z=Wb(this,p,r+" setter"),J=[];l(k,z,I.toWireType(J,w));Ab(J)}}Object.defineProperty(p.V.ea,a,F);return[]});return[]})},D:function(b,a){a=T(a);Y(b,{name:a,fromWireType:function(c){var d=$a(c);Xb(c);return d},toWireType:function(c,d){return S(d)},
106
+ argPackAdvance:8,readValueFromPointer:Bb,ca:null})},l:function(b,a,c,d){function e(){}c=Eb(c);a=T(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),ca:null});Ib(a,e)},c:function(b,a,c){var d=kb(b,"enum");a=T(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},u:function(b,
107
+ a,c){c=Eb(c);a=T(a);Y(b,{name:a,fromWireType:function(d){return d},toWireType:function(d,e){return e},argPackAdvance:8,readValueFromPointer:$b(a,c),ca:null})},q:function(b,a,c,d,e,f){var h=Vb(a,c);b=T(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[]})},j:function(b,a,c,d,e){a=T(a);-1===e&&(e=4294967295);e=Eb(c);var f=g=>g;if(0===d){var h=32-8*c;f=g=>g<<h>>>h}c=a.includes("unsigned")?
108
+ function(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),ca:null})},g:function(b,a,c){function d(f){f>>=2;var h=M;return new e(za,h[f+1],h[f])}var e=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][a];c=T(c);Y(b,{name:c,fromWireType:d,argPackAdvance:8,readValueFromPointer:d},{lb:!0})},v:function(b,a){a=T(a);var c="std::string"===a;Y(b,{name:a,fromWireType:function(d){var e=
109
109
  M[d>>2],f=d+4;if(c)for(var h=f,g=0;g<=e;++g){var l=f+g;if(g==e||0==H[l]){h=h?ya(H,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<e;++g)k[g]=String.fromCharCode(H[f+g]);k=k.join("")}jb(d);return k},toWireType:function(d,e){e instanceof ArrayBuffer&&(e=new Uint8Array(e));var f,h="string"==typeof e;h||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Int8Array||Q("Cannot pass non-string to std::string");if(c&&h){var g=0;for(f=
110
110
  0;f<e.length;++f){var l=e.charCodeAt(f);127>=l?g++:2047>=l?g+=2:55296<=l&&57343>=l?(g+=4,++f):g+=3}f=g}else f=e.length;g=rc(4+f+1);l=g+4;M[g>>2]=f;if(c&&h){if(h=l,l=f+1,f=H,0<l){l=h+l-1;for(var k=0;k<e.length;++k){var p=e.charCodeAt(k);if(55296<=p&&57343>=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&
111
- 63}f[h++]=128|p>>6&63}f[h++]=128|p&63}}f[h]=0}}else if(h)for(h=0;h<f;++h)k=e.charCodeAt(h),255<k&&(jb(l),Q("String has UTF-16 code units that do not fit in 8 bits")),H[l+h]=k;else for(h=0;h<f;++h)H[l+h]=e[h];null!==d&&d.push(jb,g);return g},argPackAdvance:8,readValueFromPointer:Bb,ba:function(d){jb(d)}})},t:function(b,a,c){c=T(c);if(2===a){var d=cc;var e=dc;var f=ec;var h=()=>Ca;var g=1}else 4===a&&(d=fc,e=gc,f=hc,h=()=>M,g=2);Y(b,{name:c,fromWireType:function(l){for(var k=M[l>>2],p=h(),r,t=l+4,v=
112
- 0;v<=k;++v){var q=l+4+v*a;if(v==k||0==p[q>>g])t=d(t,q-t),void 0===r?r=t:(r+=String.fromCharCode(0),r+=t),t=q+a}jb(l);return r},toWireType:function(l,k){"string"!=typeof k&&Q("Cannot pass non-string to C++ string type "+c);var p=f(k),r=rc(4+p+a);M[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)}})},L:function(b,a,c,d,e,f){zb[b]={name:T(a),xa:Z(c,d),ha:Z(e,f),Ja:[]}},K:function(b,a,c,d,e,f,h,g,l,k){zb[b].Ja.push({eb:T(a),kb:c,ib:Z(d,
111
+ 63}f[h++]=128|p>>6&63}f[h++]=128|p&63}}f[h]=0}}else if(h)for(h=0;h<f;++h)k=e.charCodeAt(h),255<k&&(jb(l),Q("String has UTF-16 code units that do not fit in 8 bits")),H[l+h]=k;else for(h=0;h<f;++h)H[l+h]=e[h];null!==d&&d.push(jb,g);return g},argPackAdvance:8,readValueFromPointer:Bb,ca:function(d){jb(d)}})},t:function(b,a,c){c=T(c);if(2===a){var d=cc;var e=dc;var f=ec;var h=()=>Ca;var g=1}else 4===a&&(d=fc,e=gc,f=hc,h=()=>M,g=2);Y(b,{name:c,fromWireType:function(l){for(var k=M[l>>2],p=h(),r,t=l+4,v=
112
+ 0;v<=k;++v){var q=l+4+v*a;if(v==k||0==p[q>>g])t=d(t,q-t),void 0===r?r=t:(r+=String.fromCharCode(0),r+=t),t=q+a}jb(l);return r},toWireType:function(l,k){"string"!=typeof k&&Q("Cannot pass non-string to C++ string type "+c);var p=f(k),r=rc(4+p+a);M[r>>2]=p>>g;e(k,r+4,p+a);null!==l&&l.push(jb,r);return r},argPackAdvance:8,readValueFromPointer:Bb,ca:function(l){jb(l)}})},L:function(b,a,c,d,e,f){zb[b]={name:T(a),xa:Z(c,d),ha:Z(e,f),Ja:[]}},K:function(b,a,c,d,e,f,h,g,l,k){zb[b].Ja.push({eb:T(a),kb:c,ib:Z(d,
113
113
  e),jb:f,vb:h,ub:Z(g,l),wb:k})},F:function(b,a){a=T(a);Y(b,{nb:!0,name:a,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},r:function(b,a,c){b=$a(b);a=kb(a,"emval::as");var d=[],e=S(d);M[c>>2]=e;return a.toWireType(d,b)},w:function(b,a,c,d,e){b=kc[b];a=$a(a);c=jc(c);var f=[];M[d>>2]=S(f);return b(a,c,f,e)},i:function(b,a,c,d){b=kc[b];a=$a(a);c=jc(c);b(a,c,null,d)},f:Xb,h: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=
114
114
  nc[a];if(void 0!==e)return e;var f=Array(b-1);e=lc((h,g,l,k)=>{for(var p=0,r=0;r<b-1;++r)f[r]=c[r+1].readValueFromPointer(k+p),p+=c[r+1].argPackAdvance;h=h[g].apply(h,f);for(r=0;r<b-1;++r)c[r+1].Za&&c[r+1].Za(f[r]);if(!d.nb)return d.toWireType(l,h)});return nc[a]=e},p:function(b){b=jc(b);return S(m[b])},I:function(b,a){b=$a(b);a=$a(a);return S(b[a])},m:function(b){4<b&&(O[b].ya+=1)},H:function(b){return S(jc(b))},n:function(b){var a=$a(b);Ab(a);Xb(b)},x:function(b,a){b=kb(b,"_emval_take_value");b=
115
115
  b.readValueFromPointer(a);return S(b)},b:function(){ua("")},A:function(b){var a=H.length;b>>>=0;if(2147483648<b)return!1;for(var c=1;4>=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},C:function(){return 52},y:function(){return 70},B:function(b,a,c,d){for(var e=0,f=0;f<c;f++){var h=M[a>>2],g=M[a+4>>2];a+=8;for(var l=
@@ -132,7 +132,7 @@ if(m.preInit)for("function"==typeof m.preInit&&(m.preInit=[m.preInit]);0<m.preIn
132
132
  /* 2 */
133
133
  /***/ ((module) => {
134
134
 
135
- module.exports = JSON.parse('{"name":"@rive-app/canvas","version":"1.1.10","description":"Rive\'s canvas based web api.","main":"rive.js","homepage":"https://rive.app","repository":{"type":"git","url":"https://github.com/rive-app/rive-wasm/tree/master/js"},"keywords":["rive","animation"],"author":"Rive","contributors":["Luigi Rosso <luigi@rive.app> (https://rive.app)","Maxwell Talbot <max@rive.app> (https://rive.app)","Arthur Vivian <arthur@rive.app> (https://rive.app)","Umberto Sonnino <umberto@rive.app> (https://rive.app)","Matthew Sullivan <matt.j.sullivan@gmail.com> (mailto:matt.j.sullivan@gmail.com)"],"license":"MIT","files":["rive.js","rive.js.map","rive.wasm","rive.d.ts","rive_advanced.mjs.d.ts"],"typings":"rive.d.ts","dependencies":{},"browser":{"fs":false,"path":false}}');
135
+ module.exports = JSON.parse('{"name":"@rive-app/canvas","version":"1.2.0","description":"Rive\'s canvas based web api.","main":"rive.js","homepage":"https://rive.app","repository":{"type":"git","url":"https://github.com/rive-app/rive-wasm/tree/master/js"},"keywords":["rive","animation"],"author":"Rive","contributors":["Luigi Rosso <luigi@rive.app> (https://rive.app)","Maxwell Talbot <max@rive.app> (https://rive.app)","Arthur Vivian <arthur@rive.app> (https://rive.app)","Umberto Sonnino <umberto@rive.app> (https://rive.app)","Matthew Sullivan <matt.j.sullivan@gmail.com> (mailto:matt.j.sullivan@gmail.com)"],"license":"MIT","files":["rive.js","rive.js.map","rive.wasm","rive.d.ts","rive_advanced.mjs.d.ts"],"typings":"rive.d.ts","dependencies":{},"browser":{"fs":false,"path":false}}');
136
136
 
137
137
  /***/ }),
138
138
  /* 3 */
@@ -1188,13 +1188,6 @@ var TaskQueueManager = /** @class */ (function () {
1188
1188
  var Rive = /** @class */ (function () {
1189
1189
  function Rive(params) {
1190
1190
  var _a;
1191
- // Flag to indicate if the layout has changed; used by the renderer to know
1192
- // when to align
1193
- this._updateLayout = true;
1194
- /**
1195
- * Flag to active/deactivate renderer
1196
- */
1197
- this.isRendererActive = true;
1198
1191
  // Tracks if a Rive file is loaded
1199
1192
  this.loaded = false;
1200
1193
  /**
package/rive.js.map CHANGED
@@ -1 +1 @@
1
- {"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.ts","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\nvar 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<k&&(h(1E3*g/k),g=l=0)):(l=k,g=0)}}};this.$a=function(){f&&(document.body.remove(f),f=null);e=null};this.La=function(){}}\nfunction ea(b){console.assert(!0);const a=new Map;let c=-Infinity;this.push=function(d){d=d+((1<<b)-1)>>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(c<d))},1E3));c=Math.max(d,c);return c<<b}}\nconst fa=new function(){function b(){if(!a){var t=document.createElement(\"canvas\"),v={alpha:1,depth:0,stencil:0,antialias:0,premultipliedAlpha:1,preserveDrawingBuffer:0,preferLowPowerToHighPerformance:0,failIfMajorPerformanceCaveat:0,enableExtensionsByDefault:1,explicitSwapControl:1,renderViaOffscreenBackBuffer:1};let q=t.getContext(\"webgl2\",v);if(q)c=2;else if(q=t.getContext(\"webgl\",v))c=1;else return console.log(\"No WebGL support. Image mesh will not be drawn.\"),!1;d=Math.min(q.getParameter(q.MAX_RENDERBUFFER_SIZE),\nq.getParameter(q.MAX_TEXTURE_SIZE));function E(I,w,z){w=q.createShader(w);q.shaderSource(w,z);q.compileShader(w);z=q.getShaderInfoLog(w);if(0<z.length)throw z;q.attachShader(I,w)}t=q.createProgram();E(t,q.VERTEX_SHADER,\"attribute vec2 vertex;\\n attribute vec2 uv;\\n uniform vec4 mat;\\n uniform vec2 translate;\\n varying vec2 st;\\n void main() {\\n st = uv;\\n gl_Position = vec4(mat2(mat) * vertex + translate, 0, 1);\\n }\");\nE(t,q.FRAGMENT_SHADER,\"precision highp float;\\n uniform sampler2D image;\\n varying vec2 st;\\n void main() {\\n gl_FragColor = texture2D(image, st);\\n }\");q.bindAttribLocation(t,0,\"vertex\");q.bindAttribLocation(t,1,\"uv\");q.linkProgram(t);v=q.getProgramInfoLog(t);if(0<v.trim().length)throw v;e=q.getUniformLocation(t,\"mat\");f=q.getUniformLocation(t,\"translate\");q.useProgram(t);q.bindBuffer(q.ARRAY_BUFFER,q.createBuffer());\nq.enableVertexAttribArray(0);q.enableVertexAttribArray(1);q.bindBuffer(q.ELEMENT_ARRAY_BUFFER,q.createBuffer());q.uniform1i(q.getUniformLocation(t,\"image\"),0);q.pixelStorei(q.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0);a=q}return!0}let a=null,c=0,d=0,e=null,f=null,h=0,g=0;this.ob=function(){b();return d};this.Ya=function(t){if(!b())return null;const v=a.createTexture();a.bindTexture(a.TEXTURE_2D,v);a.texImage2D(a.TEXTURE_2D,0,a.RGBA,a.RGBA,a.UNSIGNED_BYTE,t);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE);\na.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.LINEAR);2==c?(a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.LINEAR_MIPMAP_LINEAR),a.generateMipmap(a.TEXTURE_2D)):a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.LINEAR);return v};const l=new ea(8),k=new ea(8),p=new ea(10),r=new ea(10);this.bb=function(t,v,q,E,I){if(b()){var w=l.push(t),z=k.push(v);if(a.canvas.width!=w||a.canvas.height!=z)a.canvas.width=w,a.canvas.height=z;\na.viewport(0,z-v,t,v);a.disable(a.SCISSOR_TEST);a.clearColor(0,0,0,0);a.clear(a.COLOR_BUFFER_BIT);a.enable(a.SCISSOR_TEST);q.sort((y,da)=>da.Oa-y.Oa);w=p.push(E);h!=w&&(a.bufferData(a.ARRAY_BUFFER,8*w,a.DYNAMIC_DRAW),h=w);w=0;for(var J of q)a.bufferSubData(a.ARRAY_BUFFER,w,J.Aa),w+=4*J.Aa.length;console.assert(w==4*E);for(var P of q)a.bufferSubData(a.ARRAY_BUFFER,w,P.Ra),w+=4*P.Ra.length;console.assert(w==8*E);w=r.push(I);g!=w&&(a.bufferData(a.ELEMENT_ARRAY_BUFFER,2*w,a.DYNAMIC_DRAW),g=w);J=0;for(var X of q)a.bufferSubData(a.ELEMENT_ARRAY_BUFFER,\nJ,X.indices),J+=2*X.indices.length;console.assert(J==2*I);X=0;P=!0;w=J=0;for(const y of q){y.image.va!=X&&(a.bindTexture(a.TEXTURE_2D,y.image.Va||null),X=y.image.va);y.rb?(a.scissor(y.Ea,z-y.Fa-y.Ka,y.yb,y.Ka),P=!0):P&&(a.scissor(0,z-v,t,v),P=!1);q=2/t;const da=-2/v;a.uniform4f(e,y.la[0]*q*y.ra,y.la[1]*da*y.sa,y.la[2]*q*y.ra,y.la[3]*da*y.sa);a.uniform2f(f,y.la[4]*q*y.ra+q*(y.Ea-y.pb*y.ra)-1,y.la[5]*da*y.sa+da*(y.Fa-y.qb*y.sa)+1);a.vertexAttribPointer(0,2,a.FLOAT,!1,0,w);a.vertexAttribPointer(1,2,\na.FLOAT,!1,0,w+4*E);a.drawElements(a.TRIANGLES,y.indices.length,a.UNSIGNED_SHORT,J);w+=4*y.Aa.length;J+=2*y.indices.length}console.assert(w==4*E);console.assert(J==2*I)}};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(){0<J.length&&(fa.bb(z.drawWidth(),z.drawHeight(),J,P,X),J=[],X=P=0,z.reset(512,512));for(const n of w){for(const u of n.da)u();n.da=[]}w.clear()}var d=Rive.RenderPaintStyle;const e=Rive.RenderPath,f=Rive.RenderPaint,h=Rive.Renderer,g=Rive.StrokeCap,l=Rive.StrokeJoin,k=Rive.BlendMode,p=d.fill,r=d.stroke,\nt=Rive.FillRule.evenOdd;let v=1;var q=Rive.RenderImage.extend(\"CanvasRenderImage\",{__construct:function(){this.__parent.__construct.call(this);this.va=v;v=v+1&2147483647||1},decode:function(n){let u=Xa;u.total++;var F=this,B=new Image;B.src=URL.createObjectURL(new Blob([n],{type:\"image/png\"}));B.onload=function(){F.Ta=B;F.Va=fa.Ya(B);F.size(B.width,B.height);u.loaded++;if(u.loaded===u.total){const D=u.ready;D&&(D(),u.ready=null)}}}}),E=e.extend(\"CanvasRenderPath\",{__construct:function(){this.__parent.__construct.call(this);\nthis.ga=new Path2D},rewind:function(){this.ga=new Path2D},addPath:function(n,u,F,B,D,G,A){var C=this.ga,R=C.addPath;n=n.ga;const K=new DOMMatrix;K.a=u;K.b=F;K.c=B;K.d=D;K.e=G;K.f=A;R.call(C,n,K)},fillRule:function(n){this.Ca=n},moveTo:function(n,u){this.ga.moveTo(n,u)},lineTo:function(n,u){this.ga.lineTo(n,u)},cubicTo:function(n,u,F,B,D,G){this.ga.bezierCurveTo(n,u,F,B,D,G)},close:function(){this.ga.closePath()}}),I=f.extend(\"CanvasRenderPaint\",{color:function(n){this.Da=a(n)},thickness:function(n){this.Wa=\nn},join:function(n){switch(n){case l.miter:this.ua=\"miter\";break;case l.round:this.ua=\"round\";break;case l.bevel:this.ua=\"bevel\"}},cap:function(n){switch(n){case g.butt:this.ta=\"butt\";break;case g.round:this.ta=\"round\";break;case g.square:this.ta=\"square\"}},style:function(n){this.Ua=n},blendMode:function(n){this.Sa=b(n)},linearGradient:function(n,u,F,B){this.oa={Pa:n,Qa:u,Ha:F,Ia:B,za:[]}},radialGradient:function(n,u,F,B){this.oa={Pa:n,Qa:u,Ha:F,Ia:B,za:[],mb:!0}},addStop:function(n,u){this.oa.za.push({color:n,\nstop:u})},completeGradient:function(){},draw:function(n,u,F){let B=this.Ua;var D=this.Da,G=this.oa;n.globalCompositeOperation=this.Sa;if(null!=G){D=G.Pa;var A=G.Qa;const R=G.Ha;var C=G.Ia;const K=G.za;G.mb?(G=R-D,C-=A,D=n.createRadialGradient(D,A,0,D,A,Math.sqrt(G*G+C*C))):D=n.createLinearGradient(D,A,R,C);for(let U=0,L=K.length;U<L;U++)A=K[U],D.addColorStop(A.stop,a(A.color));this.Da=D;this.oa=null}switch(B){case r:n.strokeStyle=D;n.lineWidth=this.Wa;n.lineCap=this.ta;n.lineJoin=this.ua;n.stroke(u);\nbreak;case p:n.fillStyle=D,n.fill(u,F)}}});const w=new Set;let z=null,J=[],P=0,X=0;var y=Rive.CanvasRenderer=h.extend(\"Renderer\",{__construct:function(n){this.__parent.__construct.call(this);this.fa=[1,0,0,1,0,0];this.Z=n.getContext(\"2d\");this.Ba=n;this.da=[]},save:function(){this.fa.push(...this.fa.slice(this.fa.length-6));this.da.push(this.Z.save.bind(this.Z))},restore:function(){const n=this.fa.length-6;if(6>n)throw\"restore() called without matching save().\";this.fa.splice(n);this.da.push(this.Z.restore.bind(this.Z))},\ntransform:function(n,u,F,B,D,G){const A=this.fa,C=A.length-6;A.splice(C,6,A[C]*n+A[C+2]*u,A[C+1]*n+A[C+3]*u,A[C]*F+A[C+2]*B,A[C+1]*F+A[C+3]*B,A[C]*D+A[C+2]*G+A[C+4],A[C+1]*D+A[C+3]*G+A[C+5]);this.da.push(this.Z.transform.bind(this.Z,n,u,F,B,D,G))},rotate:function(n){const u=Math.sin(n);n=Math.cos(n);this.transform(n,u,-u,n,0,0)},_drawPath:function(n,u){this.da.push(u.draw.bind(u,this.Z,n.ga,n.Ca===t?\"evenodd\":\"nonzero\"))},_drawImage:function(n,u,F){var B=n.Ta;if(B){var D=this.Z,G=b(u);this.da.push(function(){D.globalCompositeOperation=\nG;D.globalAlpha=F;D.drawImage(B,0,0);D.globalAlpha=1})}},_getMatrix:function(n){const u=this.fa,F=u.length-6;for(let B=0;6>B;++B)n[B]=u[F+B]},_drawImageMesh:function(n,u,F,B,D,G,A,C,R,K){var U=this.Z.canvas.width,L=this.Z.canvas.height;const pb=R-A,qb=K-C;A=Math.max(A,0);C=Math.max(C,0);R=Math.min(R,U);K=Math.min(K,L);const sa=R-A,ta=K-C;console.assert(sa<=Math.min(pb,U));console.assert(ta<=Math.min(qb,L));if(!(0>=sa||0>=ta)){R=sa<pb||ta<qb;U=K=1;var ia=Math.ceil(sa*K),ja=Math.ceil(ta*U);L=fa.ob();\nia>L&&(K*=L/ia,ia=L);ja>L&&(U*=L/ja,ja=L);z||(z=new m.DynamicRectanizer(L),z.reset(512,512));L=z.addRect(ia,ja);0>L&&(c(),w.add(this),L=z.addRect(ia,ja),console.assert(0<=L));var rb=L&65535,sb=L>>16;J.push({la:this.fa.slice(this.fa.length-6),image:n,Ea:rb,Fa:sb,pb:A,qb:C,yb:ia,Ka:ja,ra:K,sa:U,Aa:new Float32Array(B),Ra:new Float32Array(D),indices:new Uint16Array(G),rb:R,Oa:n.va<<1|(R?1:0)});P+=B.length;X+=G.length;var na=this.Z,Yb=b(u);this.da.push(function(){na.save();na.resetTransform();na.globalCompositeOperation=\nYb;na.globalAlpha=F;na.drawImage(fa.canvas(),rb,sb,ia,ja,A,C,sa,ta);na.restore()})}},_clipPath:function(n){this.da.push(this.Z.clip.bind(this.Z,n.ga,n.Ca===t?\"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,u){this.transform(1,0,0,1,n,u)}});Rive.makeRenderer=function(n){return new y(n)};Rive.renderFactory={makeRenderPaint:function(){return new I},makeRenderPath:function(){return new E},\nmakeRenderImage:function(){return new q}};let da=Rive.load,Xa=null;Rive.load=function(n){return new Promise(function(u){let F=null;Xa={total:0,loaded:0,ready:function(){u(F)}};F=da(n);0==Xa.total&&u(F)})};d=new ca;Rive.requestAnimationFrame=d.requestAnimationFrame.bind(d);Rive.cancelAnimationFrame=d.cancelAnimationFrame.bind(d);Rive.enableFPSCounter=d.cb.bind(d);Rive.disableFPSCounter=d.$a;d.La=c;Rive.cleanup=function(){z&&z.delete()}};\nvar 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(16<c-a&&b.buffer&&xa)return xa.decode(b.subarray(a,c));for(d=\"\";a<c;){var e=b[a++];if(e&128){var f=b[a++]&63;if(192==(e&224))d+=String.fromCharCode((e&31)<<6|f);else{var h=b[a++]&63;e=224==(e&240)?(e&15)<<12|f<<6|h:(e&7)<<18|f<<12|h<<6|b[a++]&63;65536>e?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,H,Ba,Ca,Da,M,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=H=new Uint8Array(b);m.HEAPU16=Ca=new Uint16Array(b);m.HEAPU32=M=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 N.startsWith(\"data:application/octet-stream;base64,\")}var N;N=\"canvas_advanced.wasm\";if(!Pa()){var Qa=N;N=m.locateFile?m.locateFile(Qa,x):x+Qa}function Ra(){var b=N;try{if(b==N&&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&&!N.startsWith(\"file://\"))return fetch(N,{credentials:\"same-origin\"}).then(function(b){if(!b.ok)throw\"failed to load wasm binary file at '\"+N+\"'\";return b.arrayBuffer()}).catch(function(){return Ra()});if(ma)return new Promise(function(b,a){ma(N,function(c){b(new Uint8Array(c))},a)})}return Promise.resolve().then(function(){return Ra()})}function Ta(b){for(;0<b.length;)b.shift()(m)}\nfunction Ua(b){if(void 0===b)return\"_unknown\";b=b.replace(/[^a-zA-Z0-9_]/g,\"$\");var a=b.charCodeAt(0);return 48<=a&&57>=a?\"_\"+b:b}function Va(b,a){b=Ua(b);return function(){return a.apply(this,arguments)}}var O=[{},{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 Q(b){throw new Za(b);}\nvar $a=b=>{b||Q(\"Cannot use deleted val. handle = \"+b);return O[b].value},S=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():O.length;O[a]={ya:1,value:b};return a}},ab=void 0,bb=void 0;function T(b){for(var a=\"\";H[b];)a+=bb[H[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&&Q(\"ptr should not be undefined\");b.$;)a=b.na(a),b=b.$;return a}var gb={};function hb(b){b=ib(b);var a=T(b);jb(b);return a}function kb(b,a){var c=gb[b];void 0===c&&Q(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<b.length;++l)Y(b[l],g[l])}b.forEach(function(g){Db[g]=a});var e=Array(a.length),f=[],h=0;a.forEach((g,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||Q('type \"'+d+'\" must have a positive integer typeid pointer');if(gb.hasOwnProperty(b)){if(c.lb)return;Q(\"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){Q(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)||Q(\"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])&&Q(\"Cannot register public name '\"+b+\"' twice\"),Hb(m,b,b),m.hasOwnProperty(c)&&Q(\"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||Q(\"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&&Q(\"null is not a valid \"+this.name),0;a.U||Q('Cannot pass \"'+Mb(a)+'\" as a '+this.name);a.U.W||Q(\"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&&Q(\"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||Q('Cannot pass \"'+Mb(a)+'\" as a '+this.name);a.U.W||Q(\"Cannot pass deleted object as a pointer of type \"+this.name);!this.pa&&a.U.X.pa&&Q(\"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&&Q(\"Passing raw pointer to smart pointer is illegal\"),\nthis.xb){case 0:a.U.ca===this?c=a.U.aa:Q(\"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,S(function(){d[\"delete\"]()}));null!==b&&b.push(this.ha,c)}break;default:Q(\"Unsupporting sharing policy\")}return c}\nfunction Ob(b,a){if(null===a)return this.wa&&Q(\"null is not a valid \"+this.name),0;a.U||Q('Cannot pass \"'+Mb(a)+'\" as a '+this.name);a.U.W||Q(\"Cannot pass deleted object as a pointer of type \"+this.name);a.U.X.pa&&Q(\"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=T(b);var c=b.includes(\"j\")?Rb(b,a):Ha.get(a);\"function\"!=typeof c&&Q(\"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&&Q(\"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<a.length;++c)if(null!==a[c]&&void 0===a[c].ba){g=!0;break}var l=\"void\"!==a[0].name,k=f-2,p=Array(k),r=[],t=[];return function(){arguments.length!==k&&Q(\"function \"+b+\" called with \"+arguments.length+\" arguments, expected \"+k+\" args!\");t.length=0;r.length=h?2:1;r[0]=e;if(h){var v=a[1].toWireType(t,this);r[1]=v}for(var q=0;q<k;++q)p[q]=\na[q+2].toWireType(t,arguments[q]),r.push(p[q]);q=d.apply(null,r);if(g)Ab(t);else for(var E=h?1:2;E<a.length;E++){var I=1===E?v:p[E-2];null!==a[E].ba&&a[E].ba(I)}v=l?a[0].fromWireType(q):void 0;return v}}function Vb(b,a){for(var c=[],d=0;d<b;d++)c.push(M[a+4*d>>2]);return c}\nfunction Wb(b,a,c){b instanceof Object||Q(c+' with invalid \"this\": '+b);b instanceof a.V.constructor||Q(c+' incompatible with \"this\" of type '+b.constructor.name);b.U.W||Q(\"cannot call emscripten binding method \"+c+\" on deleted object\");return Kb(b.U.W,b.U.X.V,a.V)}function Xb(b){4<b&&0===--O[b].ya&&(O[b]=void 0,Wa.push(b))}\nfunction Zb(b,a,c){switch(a){case 0:return function(d){return this.fromWireType((c?Aa:H)[d])};case 1:return function(d){return this.fromWireType((c?Ba:Ca)[d>>1])};case 2:return function(d){return this.fromWireType((c?Da:M)[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 H[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 M[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<c-b&&bc)return bc.decode(H.subarray(b,c));c=\"\";for(d=0;!(d>=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<c;++e)Ba[a>>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<b.length;++e){var f=b.charCodeAt(e);if(55296<=f&&57343>=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<b.length;++c){var d=b.charCodeAt(c);55296<=d&&57343>=d&&++c;a+=4}return a}var ic={};function jc(b){var a=ic[b];return void 0===a?T(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<b;++d)c[d]=kb(M[a+4*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;a<O.length;++a)void 0!==O[a]&&++b;return b};\nm.get_first_emval=function(){for(var b=5;b<O.length;++b)if(void 0!==O[b])return O[b];return null};ab=m.PureVirtualError=Ya(\"PureVirtualError\");for(var pc=Array(256),qc=0;256>qc;++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&&Q(\"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&&Q(\"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={G:function(b,a,c){b=T(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&&Q(\"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)?Q(\"Tried to register registered instance: \"+k):V[k]=this};f.__destruct=function(){this===f&&Q(\"Pass correct 'this' to __destruct\");lb(this);var k=this.U.W;k=fb(e,k);V.hasOwnProperty(k)?delete V[k]:Q(\"Tried to unregister unregistered instance: \"+k)};b.prototype=Object.create(f);for(var l in c)b.prototype[l]=c[l];return S(b)},J: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,t=l.jb,v=h[k+e.length],q=l.ub,E=l.wb;g[l.eb]={read:I=>p.fromWireType(r(t,I)),write:(I,w)=>{var z=[];q(E,I,v.toWireType(z,w));Ab(z)}}});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}]})},z:function(){},E:function(b,a,c,d,e){var f=Eb(c);a=T(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})},e:function(b,a,c,d,e,f,h,g,l,k,p,r,t){p=T(p);f=Z(e,f);g&&(g=Z(h,g));k&&(k=\nZ(l,k));t=Z(r,t);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 E=q.V;var I=E.ea}else I=Gb.prototype;q=Va(v,function(){if(Object.getPrototypeOf(this)!==w)throw new Za(\"Use 'new' to construct \"+p);if(void 0===z.ia)throw new Za(p+\" has no accessible constructor\");var P=z.ia[arguments.length];if(void 0===P)throw new Za(\"Tried to invoke ctor of \"+p+\" with invalid number of parameters (\"+arguments.length+\") - expected (\"+\nObject.keys(z.ia).toString()+\") parameters instead!\");return P.apply(this,arguments)});var w=Object.create(I,{constructor:{value:q}});q.prototype=w;var z=new Jb(p,q,w,t,E,f,g,k);E=new Pb(p,z,!0,!1);I=new Pb(p+\"*\",z,!1,!1);var J=new Pb(p+\" const*\",z,!1,!0);tb[b]={pointerType:I,Xa:J};Qb(v,q);return[E,I,J]})},k:function(b,a,c,d,e,f,h){var g=Vb(c,d);a=T(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(t){t=Ub(p,[t[0],null].concat(t.slice(1)),null,f,h);void 0===r[a].Y?(t.ja=c-1,r[a]=t):r[a].Y[c-1]=t;return[]});return[]})},s:function(b,a,c,d,e,f,h,g){a=T(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])}:()=>{Q(k+\" is a read-only property\")};\nObject.defineProperty(l.V.constructor,a,p);W([],[c],function(r){r=r[0];var t={get:function(){return r.fromWireType(f(d))},enumerable:!0};g&&(g=Z(h,g),t.set=v=>{var q=[];g(d,r.toWireType(q,v));Ab(q)});Object.defineProperty(l.V.constructor,a,t);return[]});return[]})},o:function(b,a,c,d,e,f){0<a||ua();var h=Vb(a,c);e=Z(d,e);W([],[b],function(g){g=g[0];var l=\"constructor \"+g.name;void 0===g.V.ia&&(g.V.ia=[]);if(void 0!==g.V.ia[a-1])throw new Za(\"Cannot register multiple constructors with identical number of parameters (\"+\n(a-1)+\") for class '\"+g.name+\"'! Overload resolution is currently only performed using the parameter count, not actual type info!\");g.V.ia[a-1]=()=>{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=T(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 t=k.V.ea,v=t[a];void 0===v||void 0===v.Y&&v.className!==k.name&&v.ja===c-2?(p.ja=c-2,p.className=k.name,t[a]=p):(Hb(t,a,r),t[a].Y[c-2]=p);W([],l,function(q){q=Ub(r,q,k,f,h);void 0===t[a].Y?(q.ja=c-2,t[a]=q):t[a].Y[c-2]=q;return[]});return[]})},d:function(b,a,c,d,e,f,h,g,l,k){a=T(a);e=Z(d,e);W([],[b],function(p){p=p[0];var r=p.name+\".\"+a,t={get:function(){Tb(\"Cannot access \"+r+\" due to unbound types\",[c,h])},enumerable:!0,configurable:!0};t.set=l?()=>{Tb(\"Cannot access \"+r+\" due to unbound types\",\n[c,h])}:()=>{Q(r+\" is a read-only property\")};Object.defineProperty(p.V.ea,a,t);W([],l?[c,h]:[c],function(v){var q=v[0],E={get:function(){var w=Wb(this,p,r+\" getter\");return q.fromWireType(e(f,w))},enumerable:!0};if(l){l=Z(g,l);var I=v[1];E.set=function(w){var z=Wb(this,p,r+\" setter\"),J=[];l(k,z,I.toWireType(J,w));Ab(J)}}Object.defineProperty(p.V.ea,a,E);return[]});return[]})},D:function(b,a){a=T(a);Y(b,{name:a,fromWireType:function(c){var d=$a(c);Xb(c);return d},toWireType:function(c,d){return S(d)},\nargPackAdvance:8,readValueFromPointer:Bb,ba:null})},l:function(b,a,c,d){function e(){}c=Eb(c);a=T(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)},c:function(b,a,c){var d=kb(b,\"enum\");a=T(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},u:function(b,\na,c){c=Eb(c);a=T(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=T(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[]})},j:function(b,a,c,d,e){a=T(a);-1===e&&(e=4294967295);e=Eb(c);var f=g=>g;if(0===d){var h=32-8*c;f=g=>g<<h>>>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})},g:function(b,a,c){function d(f){f>>=2;var h=M;return new e(za,h[f+1],h[f])}var e=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][a];c=T(c);Y(b,{name:c,fromWireType:d,argPackAdvance:8,readValueFromPointer:d},{lb:!0})},v:function(b,a){a=T(a);var c=\"std::string\"===a;Y(b,{name:a,fromWireType:function(d){var e=\nM[d>>2],f=d+4;if(c)for(var h=f,g=0;g<=e;++g){var l=f+g;if(g==e||0==H[l]){h=h?ya(H,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<e;++g)k[g]=String.fromCharCode(H[f+g]);k=k.join(\"\")}jb(d);return k},toWireType:function(d,e){e instanceof ArrayBuffer&&(e=new Uint8Array(e));var f,h=\"string\"==typeof e;h||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Int8Array||Q(\"Cannot pass non-string to std::string\");if(c&&h){var g=0;for(f=\n0;f<e.length;++f){var l=e.charCodeAt(f);127>=l?g++:2047>=l?g+=2:55296<=l&&57343>=l?(g+=4,++f):g+=3}f=g}else f=e.length;g=rc(4+f+1);l=g+4;M[g>>2]=f;if(c&&h){if(h=l,l=f+1,f=H,0<l){l=h+l-1;for(var k=0;k<e.length;++k){var p=e.charCodeAt(k);if(55296<=p&&57343>=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&\n63}f[h++]=128|p>>6&63}f[h++]=128|p&63}}f[h]=0}}else if(h)for(h=0;h<f;++h)k=e.charCodeAt(h),255<k&&(jb(l),Q(\"String has UTF-16 code units that do not fit in 8 bits\")),H[l+h]=k;else for(h=0;h<f;++h)H[l+h]=e[h];null!==d&&d.push(jb,g);return g},argPackAdvance:8,readValueFromPointer:Bb,ba:function(d){jb(d)}})},t:function(b,a,c){c=T(c);if(2===a){var d=cc;var e=dc;var f=ec;var h=()=>Ca;var g=1}else 4===a&&(d=fc,e=gc,f=hc,h=()=>M,g=2);Y(b,{name:c,fromWireType:function(l){for(var k=M[l>>2],p=h(),r,t=l+4,v=\n0;v<=k;++v){var q=l+4+v*a;if(v==k||0==p[q>>g])t=d(t,q-t),void 0===r?r=t:(r+=String.fromCharCode(0),r+=t),t=q+a}jb(l);return r},toWireType:function(l,k){\"string\"!=typeof k&&Q(\"Cannot pass non-string to C++ string type \"+c);var p=f(k),r=rc(4+p+a);M[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)}})},L:function(b,a,c,d,e,f){zb[b]={name:T(a),xa:Z(c,d),ha:Z(e,f),Ja:[]}},K:function(b,a,c,d,e,f,h,g,l,k){zb[b].Ja.push({eb:T(a),kb:c,ib:Z(d,\ne),jb:f,vb:h,ub:Z(g,l),wb:k})},F:function(b,a){a=T(a);Y(b,{nb:!0,name:a,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},r:function(b,a,c){b=$a(b);a=kb(a,\"emval::as\");var d=[],e=S(d);M[c>>2]=e;return a.toWireType(d,b)},w:function(b,a,c,d,e){b=kc[b];a=$a(a);c=jc(c);var f=[];M[d>>2]=S(f);return b(a,c,f,e)},i:function(b,a,c,d){b=kc[b];a=$a(a);c=jc(c);b(a,c,null,d)},f:Xb,h: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=\nnc[a];if(void 0!==e)return e;var f=Array(b-1);e=lc((h,g,l,k)=>{for(var p=0,r=0;r<b-1;++r)f[r]=c[r+1].readValueFromPointer(k+p),p+=c[r+1].argPackAdvance;h=h[g].apply(h,f);for(r=0;r<b-1;++r)c[r+1].Za&&c[r+1].Za(f[r]);if(!d.nb)return d.toWireType(l,h)});return nc[a]=e},p:function(b){b=jc(b);return S(m[b])},I:function(b,a){b=$a(b);a=$a(a);return S(b[a])},m:function(b){4<b&&(O[b].ya+=1)},H:function(b){return S(jc(b))},n:function(b){var a=$a(b);Ab(a);Xb(b)},x:function(b,a){b=kb(b,\"_emval_take_value\");b=\nb.readValueFromPointer(a);return S(b)},b:function(){ua(\"\")},A:function(b){var a=H.length;b>>>=0;if(2147483648<b)return!1;for(var c=1;4>=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},C:function(){return 52},y:function(){return 70},B:function(b,a,c,d){for(var e=0,f=0;f<c;f++){var h=M[a>>2],g=M[a+4>>2];a+=8;for(var l=\n0;l<g;l++){var k=H[h+l],p=oc[b];0===k||10===k?((1===b?pa:qa)(ya(p,0)),p.length=0):p.push(k)}e+=g}M[d>>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){qa(\"Module.instantiateWasm callback failed with error: \"+e),ba(e)}(function(){return ra||\"function\"!=typeof WebAssembly.instantiateStreaming||Pa()||N.startsWith(\"file://\")||\"function\"!=typeof fetch?c(a):fetch(N,{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<Ma)){if(m.preRun)for(\"function\"==typeof m.preRun&&(m.preRun=[m.preRun]);m.preRun.length;)La();Ta(Ia);0<Ma||(m.setStatus?(m.setStatus(\"Running...\"),setTimeout(function(){setTimeout(function(){m.setStatus(\"\")},1);b()},1)):b())}}\nif(m.preInit)for(\"function\"==typeof m.preInit&&(m.preInit=[m.preInit]);0<m.preInit.length;)m.preInit.pop()();vc();\n\n\n return Rive.ready\n}\n);\n})();\nexport default Rive;","export { registerTouchInteractions } from \"./registerTouchInteractions\";\n","import * as rc from \"../rive_advanced.mjs\";\n\nexport interface TouchInteractionsParams {\n canvas: HTMLCanvasElement | OffscreenCanvas;\n artboard: rc.Artboard;\n stateMachines: rc.StateMachineInstance[];\n renderer: rc.Renderer;\n rive: rc.RiveCanvas;\n fit: rc.Fit;\n alignment: rc.Alignment;\n}\n\ninterface ClientCoordinates {\n clientX: number;\n clientY: number;\n}\n\n/**\n * Returns the clientX and clientY properties from touch or mouse events. Also\n * calls preventDefault() on the event if it is a touchstart or touchmove to prevent\n * scrolling the page on mobile devices\n * @param event - Either a TouchEvent or a MouseEvent\n * @returns - Coordinates of the clientX and clientY properties from the touch/mouse event\n */\nconst getClientCoordinates = (\n event: MouseEvent | TouchEvent\n): ClientCoordinates => {\n if (\n [\"touchstart\", \"touchmove\"].indexOf(event.type) > -1 &&\n (event as TouchEvent).touches?.length\n ) {\n event.preventDefault();\n return {\n clientX: (event as TouchEvent).touches[0].clientX,\n clientY: (event as TouchEvent).touches[0].clientY,\n };\n } else if (\n event.type === \"touchend\" &&\n (event as TouchEvent).changedTouches?.length\n ) {\n return {\n clientX: (event as TouchEvent).changedTouches[0].clientX,\n clientY: (event as TouchEvent).changedTouches[0].clientY,\n };\n } else {\n return {\n clientX: (event as MouseEvent).clientX,\n clientY: (event as MouseEvent).clientY,\n };\n }\n};\n\n/**\n * Registers mouse move/up/down callback handlers on the canvas to send meaningful coordinates to\n * the state machine pointer move/up/down functions based on cursor interaction\n */\nexport const registerTouchInteractions = ({\n canvas,\n artboard,\n stateMachines = [],\n renderer,\n rive,\n fit,\n alignment,\n}: TouchInteractionsParams) => {\n if (\n !canvas ||\n !stateMachines.length ||\n !renderer ||\n !rive ||\n !artboard ||\n typeof window === \"undefined\"\n ) {\n return null;\n }\n\n const processEventCallback = (event: MouseEvent | TouchEvent) => {\n const boundingRect = (\n event.currentTarget as HTMLCanvasElement\n ).getBoundingClientRect();\n\n const { clientX, clientY } = getClientCoordinates(event);\n if (!clientX && !clientY) {\n return;\n }\n const canvasX = clientX - boundingRect.left;\n const canvasY = 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 const 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 \"touchmove\":\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 \"touchstart\":\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 \"touchend\":\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 = processEventCallback.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 canvas.addEventListener(\"touchmove\", callback);\n canvas.addEventListener(\"touchstart\", callback);\n canvas.addEventListener(\"touchend\", 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 canvas.removeEventListener(\"touchmove\", callback);\n canvas.removeEventListener(\"touchstart\", callback);\n canvas.removeEventListener(\"touchend\", 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<rc.RiveCanvas> {\n return new Promise<rc.RiveCanvas>((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.LinearAnimation,\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.StateMachine,\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 (let i = 0; i < animatables.length; i++) {\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 /**\n * Turn off Rive Listeners. This means state machines that have Listeners\n * will not be invoked, and also, no event listeners pertaining to Listeners\n * will be attached to the <canvas> element\n */\n shouldDisableRiveListeners?: 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 shouldDisableRiveListeners?: 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 private shouldDisableRiveListeners = false;\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 this.shouldDisableRiveListeners = !!params.shouldDisableRiveListeners;\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(() => this.setupRiveListeners())\n .catch((e) => {\n console.error(e);\n });\n })\n .catch((e) => {\n console.error(e);\n });\n }\n\n private setupRiveListeners(): void {\n if (!this.shouldDisableRiveListeners) {\n const activeStateMachines = (this.animator.stateMachines || [])\n .filter((sm) => sm.playing && this.runtime.hasListeners(sm.instance))\n .map((sm) => sm.instance);\n this.eventCleanup = registerTouchInteractions({\n canvas: this.canvas,\n artboard: this.artboard,\n stateMachines: activeStateMachines,\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 }\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<void> {\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 this.renderer = null;\n // Delete the rive file\n this.file?.delete();\n this.file = null;\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 if (this.eventCleanup) {\n this.eventCleanup();\n }\n this.setupRiveListeners();\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 if (this.eventCleanup) {\n this.eventCleanup();\n }\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<ArrayBuffer> => {\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":""}
1
+ {"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.ts","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\nvar 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<k&&(h(1E3*g/k),g=l=0)):(l=k,g=0)}}};this.$a=function(){f&&(document.body.remove(f),f=null);e=null};this.La=function(){}}\nfunction ea(b){console.assert(!0);const a=new Map;let c=-Infinity;this.push=function(d){d=d+((1<<b)-1)>>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(c<d))},1E3));c=Math.max(d,c);return c<<b}}\nconst fa=new function(){function b(){if(!a){var t=document.createElement(\"canvas\"),v={alpha:1,depth:0,stencil:0,antialias:0,premultipliedAlpha:1,preserveDrawingBuffer:0,preferLowPowerToHighPerformance:0,failIfMajorPerformanceCaveat:0,enableExtensionsByDefault:1,explicitSwapControl:1,renderViaOffscreenBackBuffer:1};let q=t.getContext(\"webgl2\",v);if(q)c=2;else if(q=t.getContext(\"webgl\",v))c=1;else return console.log(\"No WebGL support. Image mesh will not be drawn.\"),!1;d=Math.min(q.getParameter(q.MAX_RENDERBUFFER_SIZE),\nq.getParameter(q.MAX_TEXTURE_SIZE));function F(I,w,z){w=q.createShader(w);q.shaderSource(w,z);q.compileShader(w);z=q.getShaderInfoLog(w);if(0<z.length)throw z;q.attachShader(I,w)}t=q.createProgram();F(t,q.VERTEX_SHADER,\"attribute vec2 vertex;\\n attribute vec2 uv;\\n uniform vec4 mat;\\n uniform vec2 translate;\\n varying vec2 st;\\n void main() {\\n st = uv;\\n gl_Position = vec4(mat2(mat) * vertex + translate, 0, 1);\\n }\");\nF(t,q.FRAGMENT_SHADER,\"precision highp float;\\n uniform sampler2D image;\\n varying vec2 st;\\n void main() {\\n gl_FragColor = texture2D(image, st);\\n }\");q.bindAttribLocation(t,0,\"vertex\");q.bindAttribLocation(t,1,\"uv\");q.linkProgram(t);v=q.getProgramInfoLog(t);if(0<v.trim().length)throw v;e=q.getUniformLocation(t,\"mat\");f=q.getUniformLocation(t,\"translate\");q.useProgram(t);q.bindBuffer(q.ARRAY_BUFFER,q.createBuffer());\nq.enableVertexAttribArray(0);q.enableVertexAttribArray(1);q.bindBuffer(q.ELEMENT_ARRAY_BUFFER,q.createBuffer());q.uniform1i(q.getUniformLocation(t,\"image\"),0);q.pixelStorei(q.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0);a=q}return!0}let a=null,c=0,d=0,e=null,f=null,h=0,g=0;this.ob=function(){b();return d};this.Ya=function(t){if(!b())return null;const v=a.createTexture();a.bindTexture(a.TEXTURE_2D,v);a.texImage2D(a.TEXTURE_2D,0,a.RGBA,a.RGBA,a.UNSIGNED_BYTE,t);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE);\na.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.LINEAR);2==c?(a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.LINEAR_MIPMAP_LINEAR),a.generateMipmap(a.TEXTURE_2D)):a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.LINEAR);return v};const l=new ea(8),k=new ea(8),p=new ea(10),r=new ea(10);this.bb=function(t,v,q,F,I){if(b()){var w=l.push(t),z=k.push(v);if(a.canvas.width!=w||a.canvas.height!=z)a.canvas.width=w,a.canvas.height=z;\na.viewport(0,z-v,t,v);a.disable(a.SCISSOR_TEST);a.clearColor(0,0,0,0);a.clear(a.COLOR_BUFFER_BIT);a.enable(a.SCISSOR_TEST);q.sort((y,da)=>da.Oa-y.Oa);w=p.push(F);h!=w&&(a.bufferData(a.ARRAY_BUFFER,8*w,a.DYNAMIC_DRAW),h=w);w=0;for(var J of q)a.bufferSubData(a.ARRAY_BUFFER,w,J.Aa),w+=4*J.Aa.length;console.assert(w==4*F);for(var P of q)a.bufferSubData(a.ARRAY_BUFFER,w,P.Ra),w+=4*P.Ra.length;console.assert(w==8*F);w=r.push(I);g!=w&&(a.bufferData(a.ELEMENT_ARRAY_BUFFER,2*w,a.DYNAMIC_DRAW),g=w);J=0;for(var X of q)a.bufferSubData(a.ELEMENT_ARRAY_BUFFER,\nJ,X.indices),J+=2*X.indices.length;console.assert(J==2*I);X=0;P=!0;w=J=0;for(const y of q){y.image.va!=X&&(a.bindTexture(a.TEXTURE_2D,y.image.Va||null),X=y.image.va);y.rb?(a.scissor(y.Ea,z-y.Fa-y.Ka,y.yb,y.Ka),P=!0):P&&(a.scissor(0,z-v,t,v),P=!1);q=2/t;const da=-2/v;a.uniform4f(e,y.la[0]*q*y.ra,y.la[1]*da*y.sa,y.la[2]*q*y.ra,y.la[3]*da*y.sa);a.uniform2f(f,y.la[4]*q*y.ra+q*(y.Ea-y.pb*y.ra)-1,y.la[5]*da*y.sa+da*(y.Fa-y.qb*y.sa)+1);a.vertexAttribPointer(0,2,a.FLOAT,!1,0,w);a.vertexAttribPointer(1,2,\na.FLOAT,!1,0,w+4*F);a.drawElements(a.TRIANGLES,y.indices.length,a.UNSIGNED_SHORT,J);w+=4*y.Aa.length;J+=2*y.indices.length}console.assert(w==4*F);console.assert(J==2*I)}};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(){0<J.length&&(fa.bb(z.drawWidth(),z.drawHeight(),J,P,X),J=[],X=P=0,z.reset(512,512));for(const n of w){for(const u of n.ba)u();n.ba=[]}w.clear()}var d=Rive.RenderPaintStyle;const e=Rive.RenderPath,f=Rive.RenderPaint,h=Rive.Renderer,g=Rive.StrokeCap,l=Rive.StrokeJoin,k=Rive.BlendMode,p=d.fill,r=d.stroke,\nt=Rive.FillRule.evenOdd;let v=1;var q=Rive.RenderImage.extend(\"CanvasRenderImage\",{__construct:function(){this.__parent.__construct.call(this);this.va=v;v=v+1&2147483647||1},decode:function(n){let u=Xa;u.total++;var D=this,B=new Image;B.src=URL.createObjectURL(new Blob([n],{type:\"image/png\"}));B.onload=function(){D.Ta=B;D.Va=fa.Ya(B);D.size(B.width,B.height);u.loaded++;if(u.loaded===u.total){const E=u.ready;E&&(E(),u.ready=null)}}}}),F=e.extend(\"CanvasRenderPath\",{__construct:function(){this.__parent.__construct.call(this);\nthis.ga=new Path2D},rewind:function(){this.ga=new Path2D},addPath:function(n,u,D,B,E,G,A){var C=this.ga,R=C.addPath;n=n.ga;const K=new DOMMatrix;K.a=u;K.b=D;K.c=B;K.d=E;K.e=G;K.f=A;R.call(C,n,K)},fillRule:function(n){this.Ca=n},moveTo:function(n,u){this.ga.moveTo(n,u)},lineTo:function(n,u){this.ga.lineTo(n,u)},cubicTo:function(n,u,D,B,E,G){this.ga.bezierCurveTo(n,u,D,B,E,G)},close:function(){this.ga.closePath()}}),I=f.extend(\"CanvasRenderPaint\",{color:function(n){this.Da=a(n)},thickness:function(n){this.Wa=\nn},join:function(n){switch(n){case l.miter:this.ua=\"miter\";break;case l.round:this.ua=\"round\";break;case l.bevel:this.ua=\"bevel\"}},cap:function(n){switch(n){case g.butt:this.ta=\"butt\";break;case g.round:this.ta=\"round\";break;case g.square:this.ta=\"square\"}},style:function(n){this.Ua=n},blendMode:function(n){this.Sa=b(n)},linearGradient:function(n,u,D,B){this.oa={Pa:n,Qa:u,Ha:D,Ia:B,za:[]}},radialGradient:function(n,u,D,B){this.oa={Pa:n,Qa:u,Ha:D,Ia:B,za:[],mb:!0}},addStop:function(n,u){this.oa.za.push({color:n,\nstop:u})},completeGradient:function(){},draw:function(n,u,D){let B=this.Ua;var E=this.Da,G=this.oa;n.globalCompositeOperation=this.Sa;if(null!=G){E=G.Pa;var A=G.Qa;const R=G.Ha;var C=G.Ia;const K=G.za;G.mb?(G=R-E,C-=A,E=n.createRadialGradient(E,A,0,E,A,Math.sqrt(G*G+C*C))):E=n.createLinearGradient(E,A,R,C);for(let U=0,L=K.length;U<L;U++)A=K[U],E.addColorStop(A.stop,a(A.color));this.Da=E;this.oa=null}switch(B){case r:n.strokeStyle=E;n.lineWidth=this.Wa;n.lineCap=this.ta;n.lineJoin=this.ua;n.stroke(u);\nbreak;case p:n.fillStyle=E,n.fill(u,D)}}});const w=new Set;let z=null,J=[],P=0,X=0;var y=Rive.CanvasRenderer=h.extend(\"Renderer\",{__construct:function(n){this.__parent.__construct.call(this);this.fa=[1,0,0,1,0,0];this.Z=n.getContext(\"2d\");this.Ba=n;this.ba=[]},save:function(){this.fa.push(...this.fa.slice(this.fa.length-6));this.ba.push(this.Z.save.bind(this.Z))},restore:function(){const n=this.fa.length-6;if(6>n)throw\"restore() called without matching save().\";this.fa.splice(n);this.ba.push(this.Z.restore.bind(this.Z))},\ntransform:function(n,u,D,B,E,G){const A=this.fa,C=A.length-6;A.splice(C,6,A[C]*n+A[C+2]*u,A[C+1]*n+A[C+3]*u,A[C]*D+A[C+2]*B,A[C+1]*D+A[C+3]*B,A[C]*E+A[C+2]*G+A[C+4],A[C+1]*E+A[C+3]*G+A[C+5]);this.ba.push(this.Z.transform.bind(this.Z,n,u,D,B,E,G))},rotate:function(n){const u=Math.sin(n);n=Math.cos(n);this.transform(n,u,-u,n,0,0)},_drawPath:function(n,u){this.ba.push(u.draw.bind(u,this.Z,n.ga,n.Ca===t?\"evenodd\":\"nonzero\"))},drawImage:function(n,...u){var D=this.Z;this.ba.push(function(){D.drawImage(n,\n...u)})},_drawRiveImage:function(n,u,D){var B=n.Ta;if(B){var E=this.Z,G=b(u);this.ba.push(function(){E.globalCompositeOperation=G;E.globalAlpha=D;E.drawImage(B,0,0);E.globalAlpha=1})}},_getMatrix:function(n){const u=this.fa,D=u.length-6;for(let B=0;6>B;++B)n[B]=u[D+B]},_drawImageMesh:function(n,u,D,B,E,G,A,C,R,K){var U=this.Z.canvas.width,L=this.Z.canvas.height;const pb=R-A,qb=K-C;A=Math.max(A,0);C=Math.max(C,0);R=Math.min(R,U);K=Math.min(K,L);const sa=R-A,ta=K-C;console.assert(sa<=Math.min(pb,U));\nconsole.assert(ta<=Math.min(qb,L));if(!(0>=sa||0>=ta)){R=sa<pb||ta<qb;U=K=1;var ia=Math.ceil(sa*K),ja=Math.ceil(ta*U);L=fa.ob();ia>L&&(K*=L/ia,ia=L);ja>L&&(U*=L/ja,ja=L);z||(z=new m.DynamicRectanizer(L),z.reset(512,512));L=z.addRect(ia,ja);0>L&&(c(),w.add(this),L=z.addRect(ia,ja),console.assert(0<=L));var rb=L&65535,sb=L>>16;J.push({la:this.fa.slice(this.fa.length-6),image:n,Ea:rb,Fa:sb,pb:A,qb:C,yb:ia,Ka:ja,ra:K,sa:U,Aa:new Float32Array(B),Ra:new Float32Array(E),indices:new Uint16Array(G),rb:R,Oa:n.va<<\n1|(R?1:0)});P+=B.length;X+=G.length;var na=this.Z,Yb=b(u);this.ba.push(function(){na.save();na.resetTransform();na.globalCompositeOperation=Yb;na.globalAlpha=D;na.drawImage(fa.canvas(),rb,sb,ia,ja,A,C,sa,ta);na.restore()})}},_clipPath:function(n){this.ba.push(this.Z.clip.bind(this.Z,n.ga,n.Ca===t?\"evenodd\":\"nonzero\"))},clear:function(){w.add(this);this.ba.push(this.Z.clearRect.bind(this.Z,0,0,this.Ba.width,this.Ba.height))},flush:function(){},translate:function(n,u){this.transform(1,0,0,1,n,u)}});\nRive.makeRenderer=function(n){return new y(n)};Rive.renderFactory={makeRenderPaint:function(){return new I},makeRenderPath:function(){return new F},makeRenderImage:function(){return new q}};let da=Rive.load,Xa=null;Rive.load=function(n){return new Promise(function(u){let D=null;Xa={total:0,loaded:0,ready:function(){u(D)}};D=da(n);0==Xa.total&&u(D)})};d=new ca;Rive.requestAnimationFrame=d.requestAnimationFrame.bind(d);Rive.cancelAnimationFrame=d.cancelAnimationFrame.bind(d);Rive.enableFPSCounter=d.cb.bind(d);\nRive.disableFPSCounter=d.$a;d.La=c;Rive.cleanup=function(){z&&z.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(16<c-a&&b.buffer&&xa)return xa.decode(b.subarray(a,c));for(d=\"\";a<c;){var e=b[a++];if(e&128){var f=b[a++]&63;if(192==(e&224))d+=String.fromCharCode((e&31)<<6|f);else{var h=b[a++]&63;e=224==(e&240)?(e&15)<<12|f<<6|h:(e&7)<<18|f<<12|h<<6|b[a++]&63;65536>e?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,H,Ba,Ca,Da,M,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=H=new Uint8Array(b);m.HEAPU16=Ca=new Uint16Array(b);m.HEAPU32=M=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 N.startsWith(\"data:application/octet-stream;base64,\")}var N;N=\"canvas_advanced.wasm\";if(!Pa()){var Qa=N;N=m.locateFile?m.locateFile(Qa,x):x+Qa}function Ra(){var b=N;try{if(b==N&&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&&!N.startsWith(\"file://\"))return fetch(N,{credentials:\"same-origin\"}).then(function(b){if(!b.ok)throw\"failed to load wasm binary file at '\"+N+\"'\";return b.arrayBuffer()}).catch(function(){return Ra()});if(ma)return new Promise(function(b,a){ma(N,function(c){b(new Uint8Array(c))},a)})}return Promise.resolve().then(function(){return Ra()})}function Ta(b){for(;0<b.length;)b.shift()(m)}\nfunction Ua(b){if(void 0===b)return\"_unknown\";b=b.replace(/[^a-zA-Z0-9_]/g,\"$\");var a=b.charCodeAt(0);return 48<=a&&57>=a?\"_\"+b:b}function Va(b,a){b=Ua(b);return function(){return a.apply(this,arguments)}}var O=[{},{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 Q(b){throw new Za(b);}\nvar $a=b=>{b||Q(\"Cannot use deleted val. handle = \"+b);return O[b].value},S=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():O.length;O[a]={ya:1,value:b};return a}},ab=void 0,bb=void 0;function T(b){for(var a=\"\";H[b];)a+=bb[H[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&&Q(\"ptr should not be undefined\");b.$;)a=b.na(a),b=b.$;return a}var gb={};function hb(b){b=ib(b);var a=T(b);jb(b);return a}function kb(b,a){var c=gb[b];void 0===c&&Q(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.da.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.da!==!!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<b.length;++l)Y(b[l],g[l])}b.forEach(function(g){Db[g]=a});var e=Array(a.length),f=[],h=0;a.forEach((g,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||Q('type \"'+d+'\" must have a positive integer typeid pointer');if(gb.hasOwnProperty(b)){if(c.lb)return;Q(\"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){Q(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)||Q(\"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])&&Q(\"Cannot register public name '\"+b+\"' twice\"),Hb(m,b,b),m.hasOwnProperty(c)&&Q(\"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||Q(\"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&&Q(\"null is not a valid \"+this.name),0;a.U||Q('Cannot pass \"'+Mb(a)+'\" as a '+this.name);a.U.W||Q(\"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&&Q(\"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||Q('Cannot pass \"'+Mb(a)+'\" as a '+this.name);a.U.W||Q(\"Cannot pass deleted object as a pointer of type \"+this.name);!this.pa&&a.U.X.pa&&Q(\"Cannot convert argument of type \"+(a.U.da?a.U.da.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&&Q(\"Passing raw pointer to smart pointer is illegal\"),\nthis.xb){case 0:a.U.da===this?c=a.U.aa:Q(\"Cannot convert argument of type \"+(a.U.da?a.U.da.name:a.U.X.name)+\" to parameter type \"+this.name);break;case 1:c=a.U.aa;break;case 2:if(a.U.da===this)c=a.U.aa;else{var d=a.clone();c=this.tb(c,S(function(){d[\"delete\"]()}));null!==b&&b.push(this.ha,c)}break;default:Q(\"Unsupporting sharing policy\")}return c}\nfunction Ob(b,a){if(null===a)return this.wa&&Q(\"null is not a valid \"+this.name),0;a.U||Q('Cannot pass \"'+Mb(a)+'\" as a '+this.name);a.U.W||Q(\"Cannot pass deleted object as a pointer of type \"+this.name);a.U.X.pa&&Q(\"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.ca=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=T(b);var c=b.includes(\"j\")?Rb(b,a):Ha.get(a);\"function\"!=typeof c&&Q(\"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&&Q(\"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<a.length;++c)if(null!==a[c]&&void 0===a[c].ca){g=!0;break}var l=\"void\"!==a[0].name,k=f-2,p=Array(k),r=[],t=[];return function(){arguments.length!==k&&Q(\"function \"+b+\" called with \"+arguments.length+\" arguments, expected \"+k+\" args!\");t.length=0;r.length=h?2:1;r[0]=e;if(h){var v=a[1].toWireType(t,this);r[1]=v}for(var q=0;q<k;++q)p[q]=\na[q+2].toWireType(t,arguments[q]),r.push(p[q]);q=d.apply(null,r);if(g)Ab(t);else for(var F=h?1:2;F<a.length;F++){var I=1===F?v:p[F-2];null!==a[F].ca&&a[F].ca(I)}v=l?a[0].fromWireType(q):void 0;return v}}function Vb(b,a){for(var c=[],d=0;d<b;d++)c.push(M[a+4*d>>2]);return c}\nfunction Wb(b,a,c){b instanceof Object||Q(c+' with invalid \"this\": '+b);b instanceof a.V.constructor||Q(c+' incompatible with \"this\" of type '+b.constructor.name);b.U.W||Q(\"cannot call emscripten binding method \"+c+\" on deleted object\");return Kb(b.U.W,b.U.X.V,a.V)}function Xb(b){4<b&&0===--O[b].ya&&(O[b]=void 0,Wa.push(b))}\nfunction Zb(b,a,c){switch(a){case 0:return function(d){return this.fromWireType((c?Aa:H)[d])};case 1:return function(d){return this.fromWireType((c?Ba:Ca)[d>>1])};case 2:return function(d){return this.fromWireType((c?Da:M)[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 H[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 M[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<c-b&&bc)return bc.decode(H.subarray(b,c));c=\"\";for(d=0;!(d>=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<c;++e)Ba[a>>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<b.length;++e){var f=b.charCodeAt(e);if(55296<=f&&57343>=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<b.length;++c){var d=b.charCodeAt(c);55296<=d&&57343>=d&&++c;a+=4}return a}var ic={};function jc(b){var a=ic[b];return void 0===a?T(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<b;++d)c[d]=kb(M[a+4*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;a<O.length;++a)void 0!==O[a]&&++b;return b};\nm.get_first_emval=function(){for(var b=5;b<O.length;++b)if(void 0!==O[b])return O[b];return null};ab=m.PureVirtualError=Ya(\"PureVirtualError\");for(var pc=Array(256),qc=0;256>qc;++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,da:e.da}}}));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&&Q(\"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&&Q(\"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,da: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,da:this,aa:b}):xb(d.V.ea,{X:d,W:e})};\nSb=m.UnboundTypeError=Ya(\"UnboundTypeError\");\nvar sc={G:function(b,a,c){b=T(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&&Q(\"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)?Q(\"Tried to register registered instance: \"+k):V[k]=this};f.__destruct=function(){this===f&&Q(\"Pass correct 'this' to __destruct\");lb(this);var k=this.U.W;k=fb(e,k);V.hasOwnProperty(k)?delete V[k]:Q(\"Tried to unregister unregistered instance: \"+k)};b.prototype=Object.create(f);for(var l in c)b.prototype[l]=c[l];return S(b)},J: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,t=l.jb,v=h[k+e.length],q=l.ub,F=l.wb;g[l.eb]={read:I=>p.fromWireType(r(t,I)),write:(I,w)=>{var z=[];q(F,I,v.toWireType(z,w));Ab(z)}}});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,ca:d}]})},z:function(){},E:function(b,a,c,d,e){var f=Eb(c);a=T(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])},ca:null})},e:function(b,a,c,d,e,f,h,g,l,k,p,r,t){p=T(p);f=Z(e,f);g&&(g=Z(h,g));k&&(k=\nZ(l,k));t=Z(r,t);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 F=q.V;var I=F.ea}else I=Gb.prototype;q=Va(v,function(){if(Object.getPrototypeOf(this)!==w)throw new Za(\"Use 'new' to construct \"+p);if(void 0===z.ia)throw new Za(p+\" has no accessible constructor\");var P=z.ia[arguments.length];if(void 0===P)throw new Za(\"Tried to invoke ctor of \"+p+\" with invalid number of parameters (\"+arguments.length+\") - expected (\"+\nObject.keys(z.ia).toString()+\") parameters instead!\");return P.apply(this,arguments)});var w=Object.create(I,{constructor:{value:q}});q.prototype=w;var z=new Jb(p,q,w,t,F,f,g,k);F=new Pb(p,z,!0,!1);I=new Pb(p+\"*\",z,!1,!1);var J=new Pb(p+\" const*\",z,!1,!0);tb[b]={pointerType:I,Xa:J};Qb(v,q);return[F,I,J]})},k:function(b,a,c,d,e,f,h){var g=Vb(c,d);a=T(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(t){t=Ub(p,[t[0],null].concat(t.slice(1)),null,f,h);void 0===r[a].Y?(t.ja=c-1,r[a]=t):r[a].Y[c-1]=t;return[]});return[]})},s:function(b,a,c,d,e,f,h,g){a=T(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])}:()=>{Q(k+\" is a read-only property\")};\nObject.defineProperty(l.V.constructor,a,p);W([],[c],function(r){r=r[0];var t={get:function(){return r.fromWireType(f(d))},enumerable:!0};g&&(g=Z(h,g),t.set=v=>{var q=[];g(d,r.toWireType(q,v));Ab(q)});Object.defineProperty(l.V.constructor,a,t);return[]});return[]})},o:function(b,a,c,d,e,f){0<a||ua();var h=Vb(a,c);e=Z(d,e);W([],[b],function(g){g=g[0];var l=\"constructor \"+g.name;void 0===g.V.ia&&(g.V.ia=[]);if(void 0!==g.V.ia[a-1])throw new Za(\"Cannot register multiple constructors with identical number of parameters (\"+\n(a-1)+\") for class '\"+g.name+\"'! Overload resolution is currently only performed using the parameter count, not actual type info!\");g.V.ia[a-1]=()=>{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=T(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 t=k.V.ea,v=t[a];void 0===v||void 0===v.Y&&v.className!==k.name&&v.ja===c-2?(p.ja=c-2,p.className=k.name,t[a]=p):(Hb(t,a,r),t[a].Y[c-2]=p);W([],l,function(q){q=Ub(r,q,k,f,h);void 0===t[a].Y?(q.ja=c-2,t[a]=q):t[a].Y[c-2]=q;return[]});return[]})},d:function(b,a,c,d,e,f,h,g,l,k){a=T(a);e=Z(d,e);W([],[b],function(p){p=p[0];var r=p.name+\".\"+a,t={get:function(){Tb(\"Cannot access \"+r+\" due to unbound types\",[c,h])},enumerable:!0,configurable:!0};t.set=l?()=>{Tb(\"Cannot access \"+r+\" due to unbound types\",\n[c,h])}:()=>{Q(r+\" is a read-only property\")};Object.defineProperty(p.V.ea,a,t);W([],l?[c,h]:[c],function(v){var q=v[0],F={get:function(){var w=Wb(this,p,r+\" getter\");return q.fromWireType(e(f,w))},enumerable:!0};if(l){l=Z(g,l);var I=v[1];F.set=function(w){var z=Wb(this,p,r+\" setter\"),J=[];l(k,z,I.toWireType(J,w));Ab(J)}}Object.defineProperty(p.V.ea,a,F);return[]});return[]})},D:function(b,a){a=T(a);Y(b,{name:a,fromWireType:function(c){var d=$a(c);Xb(c);return d},toWireType:function(c,d){return S(d)},\nargPackAdvance:8,readValueFromPointer:Bb,ca:null})},l:function(b,a,c,d){function e(){}c=Eb(c);a=T(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),ca:null});Ib(a,e)},c:function(b,a,c){var d=kb(b,\"enum\");a=T(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},u:function(b,\na,c){c=Eb(c);a=T(a);Y(b,{name:a,fromWireType:function(d){return d},toWireType:function(d,e){return e},argPackAdvance:8,readValueFromPointer:$b(a,c),ca:null})},q:function(b,a,c,d,e,f){var h=Vb(a,c);b=T(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[]})},j:function(b,a,c,d,e){a=T(a);-1===e&&(e=4294967295);e=Eb(c);var f=g=>g;if(0===d){var h=32-8*c;f=g=>g<<h>>>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),ca:null})},g:function(b,a,c){function d(f){f>>=2;var h=M;return new e(za,h[f+1],h[f])}var e=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][a];c=T(c);Y(b,{name:c,fromWireType:d,argPackAdvance:8,readValueFromPointer:d},{lb:!0})},v:function(b,a){a=T(a);var c=\"std::string\"===a;Y(b,{name:a,fromWireType:function(d){var e=\nM[d>>2],f=d+4;if(c)for(var h=f,g=0;g<=e;++g){var l=f+g;if(g==e||0==H[l]){h=h?ya(H,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<e;++g)k[g]=String.fromCharCode(H[f+g]);k=k.join(\"\")}jb(d);return k},toWireType:function(d,e){e instanceof ArrayBuffer&&(e=new Uint8Array(e));var f,h=\"string\"==typeof e;h||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Int8Array||Q(\"Cannot pass non-string to std::string\");if(c&&h){var g=0;for(f=\n0;f<e.length;++f){var l=e.charCodeAt(f);127>=l?g++:2047>=l?g+=2:55296<=l&&57343>=l?(g+=4,++f):g+=3}f=g}else f=e.length;g=rc(4+f+1);l=g+4;M[g>>2]=f;if(c&&h){if(h=l,l=f+1,f=H,0<l){l=h+l-1;for(var k=0;k<e.length;++k){var p=e.charCodeAt(k);if(55296<=p&&57343>=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&\n63}f[h++]=128|p>>6&63}f[h++]=128|p&63}}f[h]=0}}else if(h)for(h=0;h<f;++h)k=e.charCodeAt(h),255<k&&(jb(l),Q(\"String has UTF-16 code units that do not fit in 8 bits\")),H[l+h]=k;else for(h=0;h<f;++h)H[l+h]=e[h];null!==d&&d.push(jb,g);return g},argPackAdvance:8,readValueFromPointer:Bb,ca:function(d){jb(d)}})},t:function(b,a,c){c=T(c);if(2===a){var d=cc;var e=dc;var f=ec;var h=()=>Ca;var g=1}else 4===a&&(d=fc,e=gc,f=hc,h=()=>M,g=2);Y(b,{name:c,fromWireType:function(l){for(var k=M[l>>2],p=h(),r,t=l+4,v=\n0;v<=k;++v){var q=l+4+v*a;if(v==k||0==p[q>>g])t=d(t,q-t),void 0===r?r=t:(r+=String.fromCharCode(0),r+=t),t=q+a}jb(l);return r},toWireType:function(l,k){\"string\"!=typeof k&&Q(\"Cannot pass non-string to C++ string type \"+c);var p=f(k),r=rc(4+p+a);M[r>>2]=p>>g;e(k,r+4,p+a);null!==l&&l.push(jb,r);return r},argPackAdvance:8,readValueFromPointer:Bb,ca:function(l){jb(l)}})},L:function(b,a,c,d,e,f){zb[b]={name:T(a),xa:Z(c,d),ha:Z(e,f),Ja:[]}},K:function(b,a,c,d,e,f,h,g,l,k){zb[b].Ja.push({eb:T(a),kb:c,ib:Z(d,\ne),jb:f,vb:h,ub:Z(g,l),wb:k})},F:function(b,a){a=T(a);Y(b,{nb:!0,name:a,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},r:function(b,a,c){b=$a(b);a=kb(a,\"emval::as\");var d=[],e=S(d);M[c>>2]=e;return a.toWireType(d,b)},w:function(b,a,c,d,e){b=kc[b];a=$a(a);c=jc(c);var f=[];M[d>>2]=S(f);return b(a,c,f,e)},i:function(b,a,c,d){b=kc[b];a=$a(a);c=jc(c);b(a,c,null,d)},f:Xb,h: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=\nnc[a];if(void 0!==e)return e;var f=Array(b-1);e=lc((h,g,l,k)=>{for(var p=0,r=0;r<b-1;++r)f[r]=c[r+1].readValueFromPointer(k+p),p+=c[r+1].argPackAdvance;h=h[g].apply(h,f);for(r=0;r<b-1;++r)c[r+1].Za&&c[r+1].Za(f[r]);if(!d.nb)return d.toWireType(l,h)});return nc[a]=e},p:function(b){b=jc(b);return S(m[b])},I:function(b,a){b=$a(b);a=$a(a);return S(b[a])},m:function(b){4<b&&(O[b].ya+=1)},H:function(b){return S(jc(b))},n:function(b){var a=$a(b);Ab(a);Xb(b)},x:function(b,a){b=kb(b,\"_emval_take_value\");b=\nb.readValueFromPointer(a);return S(b)},b:function(){ua(\"\")},A:function(b){var a=H.length;b>>>=0;if(2147483648<b)return!1;for(var c=1;4>=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},C:function(){return 52},y:function(){return 70},B:function(b,a,c,d){for(var e=0,f=0;f<c;f++){var h=M[a>>2],g=M[a+4>>2];a+=8;for(var l=\n0;l<g;l++){var k=H[h+l],p=oc[b];0===k||10===k?((1===b?pa:qa)(ya(p,0)),p.length=0):p.push(k)}e+=g}M[d>>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){qa(\"Module.instantiateWasm callback failed with error: \"+e),ba(e)}(function(){return ra||\"function\"!=typeof WebAssembly.instantiateStreaming||Pa()||N.startsWith(\"file://\")||\"function\"!=typeof fetch?c(a):fetch(N,{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<Ma)){if(m.preRun)for(\"function\"==typeof m.preRun&&(m.preRun=[m.preRun]);m.preRun.length;)La();Ta(Ia);0<Ma||(m.setStatus?(m.setStatus(\"Running...\"),setTimeout(function(){setTimeout(function(){m.setStatus(\"\")},1);b()},1)):b())}}\nif(m.preInit)for(\"function\"==typeof m.preInit&&(m.preInit=[m.preInit]);0<m.preInit.length;)m.preInit.pop()();vc();\n\n\n return Rive.ready\n}\n);\n})();\nexport default Rive;","export { registerTouchInteractions } from \"./registerTouchInteractions\";\n","import * as rc from \"../rive_advanced.mjs\";\n\nexport interface TouchInteractionsParams {\n canvas: HTMLCanvasElement | OffscreenCanvas;\n artboard: rc.Artboard;\n stateMachines: rc.StateMachineInstance[];\n renderer: rc.Renderer;\n rive: rc.RiveCanvas;\n fit: rc.Fit;\n alignment: rc.Alignment;\n}\n\ninterface ClientCoordinates {\n clientX: number;\n clientY: number;\n}\n\n/**\n * Returns the clientX and clientY properties from touch or mouse events. Also\n * calls preventDefault() on the event if it is a touchstart or touchmove to prevent\n * scrolling the page on mobile devices\n * @param event - Either a TouchEvent or a MouseEvent\n * @returns - Coordinates of the clientX and clientY properties from the touch/mouse event\n */\nconst getClientCoordinates = (\n event: MouseEvent | TouchEvent\n): ClientCoordinates => {\n if (\n [\"touchstart\", \"touchmove\"].indexOf(event.type) > -1 &&\n (event as TouchEvent).touches?.length\n ) {\n event.preventDefault();\n return {\n clientX: (event as TouchEvent).touches[0].clientX,\n clientY: (event as TouchEvent).touches[0].clientY,\n };\n } else if (\n event.type === \"touchend\" &&\n (event as TouchEvent).changedTouches?.length\n ) {\n return {\n clientX: (event as TouchEvent).changedTouches[0].clientX,\n clientY: (event as TouchEvent).changedTouches[0].clientY,\n };\n } else {\n return {\n clientX: (event as MouseEvent).clientX,\n clientY: (event as MouseEvent).clientY,\n };\n }\n};\n\n/**\n * Registers mouse move/up/down callback handlers on the canvas to send meaningful coordinates to\n * the state machine pointer move/up/down functions based on cursor interaction\n */\nexport const registerTouchInteractions = ({\n canvas,\n artboard,\n stateMachines = [],\n renderer,\n rive,\n fit,\n alignment,\n}: TouchInteractionsParams) => {\n if (\n !canvas ||\n !stateMachines.length ||\n !renderer ||\n !rive ||\n !artboard ||\n typeof window === \"undefined\"\n ) {\n return null;\n }\n\n const processEventCallback = (event: MouseEvent | TouchEvent) => {\n const boundingRect = (\n event.currentTarget as HTMLCanvasElement\n ).getBoundingClientRect();\n\n const { clientX, clientY } = getClientCoordinates(event);\n if (!clientX && !clientY) {\n return;\n }\n const canvasX = clientX - boundingRect.left;\n const canvasY = 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 const 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 \"touchmove\":\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 \"touchstart\":\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 \"touchend\":\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 = processEventCallback.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 canvas.addEventListener(\"touchmove\", callback);\n canvas.addEventListener(\"touchstart\", callback);\n canvas.addEventListener(\"touchend\", 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 canvas.removeEventListener(\"touchmove\", callback);\n canvas.removeEventListener(\"touchstart\", callback);\n canvas.removeEventListener(\"touchend\", 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<rc.RiveCanvas> {\n return new Promise<rc.RiveCanvas>((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.LinearAnimation,\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.StateMachine,\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 (let i = 0; i < animatables.length; i++) {\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 /**\n * Turn off Rive Listeners. This means state machines that have Listeners\n * will not be invoked, and also, no event listeners pertaining to Listeners\n * will be attached to the <canvas> element\n */\n shouldDisableRiveListeners?: 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 shouldDisableRiveListeners?: 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 // The runtime renderer\n private renderer: rc.Renderer | rc.CanvasRenderer;\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 private shouldDisableRiveListeners = false;\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 this.shouldDisableRiveListeners = !!params.shouldDisableRiveListeners;\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(() => this.setupRiveListeners())\n .catch((e) => {\n console.error(e);\n });\n })\n .catch((e) => {\n console.error(e);\n });\n }\n\n private setupRiveListeners(): void {\n if (!this.shouldDisableRiveListeners) {\n const activeStateMachines = (this.animator.stateMachines || [])\n .filter((sm) => sm.playing && this.runtime.hasListeners(sm.instance))\n .map((sm) => sm.instance);\n this.eventCleanup = registerTouchInteractions({\n canvas: this.canvas,\n artboard: this.artboard,\n stateMachines: activeStateMachines,\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 }\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<void> {\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 this.renderer = null;\n // Delete the rive file\n this.file?.delete();\n this.file = null;\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 if (this.eventCleanup) {\n this.eventCleanup();\n }\n this.setupRiveListeners();\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 if (this.eventCleanup) {\n this.eventCleanup();\n }\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<ArrayBuffer> => {\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":""}
package/rive.wasm CHANGED
Binary file
@@ -45,12 +45,12 @@ export interface RiveCanvas {
45
45
  * This uses an offscreen renderer to draw on the canvas, allowing for multiple Rives/canvases on
46
46
  * a given screen. It is highly recommended to set this to `true` when using with the
47
47
  * `@rive-app/webgl` package
48
- * @returns A Rive CanvasRenderer class
48
+ * @returns A Rive CanvasRenderer (Canvas2D) or Renderer (WebGL) class
49
49
  */
50
50
  makeRenderer(
51
51
  canvas: HTMLCanvasElement | OffscreenCanvas,
52
52
  useOffscreenRenderer?: boolean
53
- ): CanvasRenderer;
53
+ ): CanvasRenderer | Renderer;
54
54
 
55
55
  /**
56
56
  * Computes how the Rive is laid out onto the canvas
@@ -133,7 +133,8 @@ export declare class RendererWrapper {
133
133
  drawPath(path: RenderPath, paint: RenderPaint): void;
134
134
  clipPath(path: RenderPath): void;
135
135
  /**
136
- * Calls the context's clearRect() function to clear the entire canvas
136
+ * Calls the context's clearRect() function to clear the entire canvas. Crucial to call
137
+ * this at the start of the render loop to clear the canvas before drawing the next frame
137
138
  *
138
139
  * For the underlying API, check
139
140
  * https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/clearRect
@@ -202,6 +203,27 @@ export declare class CanvasRenderer extends Renderer {
202
203
  constructor(
203
204
  ctx: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D
204
205
  );
206
+
207
+ /**
208
+ * Canvas2D API for drawing an image onto a canvas
209
+ */
210
+ drawImage: (
211
+ image:
212
+ | HTMLImageElement
213
+ | SVGImageElement
214
+ | HTMLVideoElement
215
+ | HTMLCanvasElement
216
+ | ImageBitmap
217
+ | OffscreenCanvas,
218
+ sx?: number,
219
+ sy?: number,
220
+ sWidth?: number,
221
+ sHeight?: number,
222
+ dx?: number,
223
+ dy?: number,
224
+ dWidth?: number,
225
+ dHeight?: number
226
+ ) => void;
205
227
  }
206
228
 
207
229
  export declare class CanvasRenderPaint extends RenderPaint {
@@ -286,7 +308,7 @@ export declare class Artboard {
286
308
  * Draws the artboard with a given rendering context.
287
309
  * @param renderer - Renderer context to draw with
288
310
  */
289
- draw(renderer: CanvasRenderer): void;
311
+ draw(renderer: CanvasRenderer | Renderer): void;
290
312
  /**
291
313
  * Creates a LinearAnimation for the animation with the given name
292
314
  *