route-graphics 1.11.0 → 1.11.1
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/dist/RouteGraphics.js +1 -1
- package/package.json +1 -1
package/dist/RouteGraphics.js
CHANGED
|
@@ -1898,7 +1898,7 @@ void main(void)
|
|
|
1898
1898
|
`)}}return o.push(`
|
|
1899
1899
|
renderer.buffer.update(buffer);
|
|
1900
1900
|
`),{size:s,syncFunc:new Function("ud","uv","renderer","syncData","buffer",o.join(`
|
|
1901
|
-
`))}}var YV=0,Bp={textureCount:0,uboCount:0},ds=class{constructor(e){this.destroyed=!1,this.renderer=e,this.systemCheck(),this.gl=null,this.shader=null,this.program=null,this.cache={},this._uboCache={},this.id=YV++}systemCheck(){if(!Cp())throw new Error("Current environment does not allow unsafe-eval, please use @pixi/unsafe-eval module to enable support.")}contextChange(e){this.gl=e,this.reset()}bind(e,t){e.disposeRunner.add(this),e.uniforms.globals=this.renderer.globalUniforms;let i=e.program,s=i.glPrograms[this.renderer.CONTEXT_UID]||this.generateProgram(e);return this.shader=e,this.program!==i&&(this.program=i,this.gl.useProgram(s.program)),t||(Bp.textureCount=0,Bp.uboCount=0,this.syncUniformGroup(e.uniformGroup,Bp)),s}setUniforms(e){let t=this.shader.program,i=t.glPrograms[this.renderer.CONTEXT_UID];t.syncUniforms(i.uniformData,e,this.renderer)}syncUniformGroup(e,t){let i=this.getGlProgram();(!e.static||e.dirtyId!==i.uniformDirtyGroups[e.id])&&(i.uniformDirtyGroups[e.id]=e.dirtyId,this.syncUniforms(e,i,t))}syncUniforms(e,t,i){(e.syncUniforms[this.shader.program.id]||this.createSyncGroups(e))(t.uniformData,e.uniforms,this.renderer,i)}createSyncGroups(e){let t=this.getSignature(e,this.shader.program.uniformData,"u");return this.cache[t]||(this.cache[t]=_b(e,this.shader.program.uniformData)),e.syncUniforms[this.shader.program.id]=this.cache[t],e.syncUniforms[this.shader.program.id]}syncUniformBufferGroup(e,t){let i=this.getGlProgram();if(!e.static||e.dirtyId!==0||!i.uniformGroups[e.id]){e.dirtyId=0;let s=i.uniformGroups[e.id]||this.createSyncBufferGroup(e,i,t);e.buffer.update(),s(i.uniformData,e.uniforms,this.renderer,Bp,e.buffer)}this.renderer.buffer.bindBufferBase(e.buffer,i.uniformBufferBindings[t])}createSyncBufferGroup(e,t,i){let{gl:s}=this.renderer;this.renderer.buffer.bind(e.buffer);let o=this.gl.getUniformBlockIndex(t.program,i);t.uniformBufferBindings[i]=this.shader.uniformBindCount,s.uniformBlockBinding(t.program,o,this.shader.uniformBindCount),this.shader.uniformBindCount++;let n=this.getSignature(e,this.shader.program.uniformData,"ubo"),a=this._uboCache[n];if(a||(a=this._uboCache[n]=Pb(e,this.shader.program.uniformData)),e.autoManage){let l=new Float32Array(a.size/4);e.buffer.update(l)}return t.uniformGroups[e.id]=a.syncFunc,t.uniformGroups[e.id]}getSignature(e,t,i){let s=e.uniforms,o=[`${i}-`];for(let n in s)o.push(n),t[n]&&o.push(t[n].type);return o.join("-")}getGlProgram(){return this.shader?this.shader.program.glPrograms[this.renderer.CONTEXT_UID]:null}generateProgram(e){let t=this.gl,i=e.program,s=Cb(t,i);return i.glPrograms[this.renderer.CONTEXT_UID]=s,s}reset(){this.program=null,this.shader=null}disposeShader(e){this.shader===e&&(this.shader=null)}destroy(){this.renderer=null,this.destroyed=!0}};ds.extension={type:Y.RendererSystem,name:"shader"};te.add(ds);var ki=class{constructor(e){this.renderer=e}run(e){let{renderer:t}=this;t.runners.init.emit(t.options),e.hello&&console.log(`PixiJS 7.4.3 - ${t.rendererLogId} - https://pixijs.com`),t.resize(t.screen.width,t.screen.height)}destroy(){}};ki.defaultOptions={hello:!1},ki.extension={type:[Y.RendererSystem,Y.CanvasRendererSystem],name:"startup"};te.add(ki);function FF(r,e=[]){return e[oe.NORMAL]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[oe.ADD]=[r.ONE,r.ONE],e[oe.MULTIPLY]=[r.DST_COLOR,r.ONE_MINUS_SRC_ALPHA,r.ONE,r.ONE_MINUS_SRC_ALPHA],e[oe.SCREEN]=[r.ONE,r.ONE_MINUS_SRC_COLOR,r.ONE,r.ONE_MINUS_SRC_ALPHA],e[oe.OVERLAY]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[oe.DARKEN]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[oe.LIGHTEN]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[oe.COLOR_DODGE]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[oe.COLOR_BURN]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[oe.HARD_LIGHT]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[oe.SOFT_LIGHT]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[oe.DIFFERENCE]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[oe.EXCLUSION]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[oe.HUE]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[oe.SATURATION]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[oe.COLOR]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[oe.LUMINOSITY]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[oe.NONE]=[0,0],e[oe.NORMAL_NPM]=[r.SRC_ALPHA,r.ONE_MINUS_SRC_ALPHA,r.ONE,r.ONE_MINUS_SRC_ALPHA],e[oe.ADD_NPM]=[r.SRC_ALPHA,r.ONE,r.ONE,r.ONE],e[oe.SCREEN_NPM]=[r.SRC_ALPHA,r.ONE_MINUS_SRC_COLOR,r.ONE,r.ONE_MINUS_SRC_ALPHA],e[oe.SRC_IN]=[r.DST_ALPHA,r.ZERO],e[oe.SRC_OUT]=[r.ONE_MINUS_DST_ALPHA,r.ZERO],e[oe.SRC_ATOP]=[r.DST_ALPHA,r.ONE_MINUS_SRC_ALPHA],e[oe.DST_OVER]=[r.ONE_MINUS_DST_ALPHA,r.ONE],e[oe.DST_IN]=[r.ZERO,r.SRC_ALPHA],e[oe.DST_OUT]=[r.ZERO,r.ONE_MINUS_SRC_ALPHA],e[oe.DST_ATOP]=[r.ONE_MINUS_DST_ALPHA,r.SRC_ALPHA],e[oe.XOR]=[r.ONE_MINUS_DST_ALPHA,r.ONE_MINUS_SRC_ALPHA],e[oe.SUBTRACT]=[r.ONE,r.ONE,r.ONE,r.ONE,r.FUNC_REVERSE_SUBTRACT,r.FUNC_ADD],e}var qV=0,KV=1,ZV=2,QV=3,JV=4,e4=5,OF=class Mb{constructor(){this.gl=null,this.stateId=0,this.polygonOffset=0,this.blendMode=oe.NONE,this._blendEq=!1,this.map=[],this.map[qV]=this.setBlend,this.map[KV]=this.setOffset,this.map[ZV]=this.setCullFace,this.map[QV]=this.setDepthTest,this.map[JV]=this.setFrontFace,this.map[e4]=this.setDepthMask,this.checks=[],this.defaultState=new ai,this.defaultState.blend=!0}contextChange(e){this.gl=e,this.blendModes=FF(e),this.set(this.defaultState),this.reset()}set(e){if(e=e||this.defaultState,this.stateId!==e.data){let t=this.stateId^e.data,i=0;for(;t;)t&1&&this.map[i].call(this,!!(e.data&1<<i)),t=t>>1,i++;this.stateId=e.data}for(let t=0;t<this.checks.length;t++)this.checks[t](this,e)}forceState(e){e=e||this.defaultState;for(let t=0;t<this.map.length;t++)this.map[t].call(this,!!(e.data&1<<t));for(let t=0;t<this.checks.length;t++)this.checks[t](this,e);this.stateId=e.data}setBlend(e){this.updateCheck(Mb.checkBlendMode,e),this.gl[e?"enable":"disable"](this.gl.BLEND)}setOffset(e){this.updateCheck(Mb.checkPolygonOffset,e),this.gl[e?"enable":"disable"](this.gl.POLYGON_OFFSET_FILL)}setDepthTest(e){this.gl[e?"enable":"disable"](this.gl.DEPTH_TEST)}setDepthMask(e){this.gl.depthMask(e)}setCullFace(e){this.gl[e?"enable":"disable"](this.gl.CULL_FACE)}setFrontFace(e){this.gl.frontFace(this.gl[e?"CW":"CCW"])}setBlendMode(e){if(e===this.blendMode)return;this.blendMode=e;let t=this.blendModes[e],i=this.gl;t.length===2?i.blendFunc(t[0],t[1]):i.blendFuncSeparate(t[0],t[1],t[2],t[3]),t.length===6?(this._blendEq=!0,i.blendEquationSeparate(t[4],t[5])):this._blendEq&&(this._blendEq=!1,i.blendEquationSeparate(i.FUNC_ADD,i.FUNC_ADD))}setPolygonOffset(e,t){this.gl.polygonOffset(e,t)}reset(){this.gl.pixelStorei(this.gl.UNPACK_FLIP_Y_WEBGL,!1),this.forceState(this.defaultState),this._blendEq=!0,this.blendMode=-1,this.setBlendMode(0)}updateCheck(e,t){let i=this.checks.indexOf(e);t&&i===-1?this.checks.push(e):!t&&i!==-1&&this.checks.splice(i,1)}static checkBlendMode(e,t){e.setBlendMode(t.blendMode)}static checkPolygonOffset(e,t){e.setPolygonOffset(1,t.polygonOffset)}destroy(){this.gl=null}};OF.extension={type:Y.RendererSystem,name:"state"};var Rb=OF;te.add(Rb);var ua=class extends Qs.default{constructor(){super(...arguments),this.runners={},this._systemsHash={}}setup(e){this.addRunners(...e.runners);let t=(e.priority??[]).filter(s=>e.systems[s]),i=[...t,...Object.keys(e.systems).filter(s=>!t.includes(s))];for(let s of i)this.addSystem(e.systems[s],s)}addRunners(...e){e.forEach(t=>{this.runners[t]=new st(t)})}addSystem(e,t){let i=new e(this);if(this[t])throw new Error(`Whoops! The name "${t}" is already in use`);this[t]=i,this._systemsHash[t]=i;for(let s in this.runners)this.runners[s].add(i);return this}emitWithCustomOptions(e,t){let i=Object.keys(this._systemsHash);e.items.forEach(s=>{let o=i.find(n=>this._systemsHash[n]===s);s[e.name](t[o])})}destroy(){Object.values(this.runners).forEach(e=>{e.destroy()}),this._systemsHash={}}};var fu=class kp{constructor(e){this.renderer=e,this.count=0,this.checkCount=0,this.maxIdle=kp.defaultMaxIdle,this.checkCountMax=kp.defaultCheckCountMax,this.mode=kp.defaultMode}postrender(){this.renderer.objectRenderer.renderingToScreen&&(this.count++,this.mode!==Xf.MANUAL&&(this.checkCount++,this.checkCount>this.checkCountMax&&(this.checkCount=0,this.run())))}run(){let e=this.renderer.texture,t=e.managedTextures,i=!1;for(let s=0;s<t.length;s++){let o=t[s];o.resource&&this.count-o.touched>this.maxIdle&&(e.destroyTexture(o,!0),t[s]=null,i=!0)}if(i){let s=0;for(let o=0;o<t.length;o++)t[o]!==null&&(t[s++]=t[o]);t.length=s}}unload(e){let t=this.renderer.texture,i=e._texture;i&&!i.framebuffer&&t.destroyTexture(i);for(let s=e.children.length-1;s>=0;s--)this.unload(e.children[s])}destroy(){this.renderer=null}};fu.defaultMode=Xf.AUTO,fu.defaultMaxIdle=60*60,fu.defaultCheckCountMax=60*10,fu.extension={type:Y.RendererSystem,name:"textureGC"};var ui=fu;te.add(ui);var ho=class{constructor(e){this.texture=e,this.width=-1,this.height=-1,this.dirtyId=-1,this.dirtyStyleId=-1,this.mipmap=!1,this.wrapMode=33071,this.type=ue.UNSIGNED_BYTE,this.internalFormat=W.RGBA,this.samplerType=0}};function UF(r){let e;return"WebGL2RenderingContext"in globalThis&&r instanceof globalThis.WebGL2RenderingContext?e={[r.RGB]:X.FLOAT,[r.RGBA]:X.FLOAT,[r.ALPHA]:X.FLOAT,[r.LUMINANCE]:X.FLOAT,[r.LUMINANCE_ALPHA]:X.FLOAT,[r.R8]:X.FLOAT,[r.R8_SNORM]:X.FLOAT,[r.RG8]:X.FLOAT,[r.RG8_SNORM]:X.FLOAT,[r.RGB8]:X.FLOAT,[r.RGB8_SNORM]:X.FLOAT,[r.RGB565]:X.FLOAT,[r.RGBA4]:X.FLOAT,[r.RGB5_A1]:X.FLOAT,[r.RGBA8]:X.FLOAT,[r.RGBA8_SNORM]:X.FLOAT,[r.RGB10_A2]:X.FLOAT,[r.RGB10_A2UI]:X.FLOAT,[r.SRGB8]:X.FLOAT,[r.SRGB8_ALPHA8]:X.FLOAT,[r.R16F]:X.FLOAT,[r.RG16F]:X.FLOAT,[r.RGB16F]:X.FLOAT,[r.RGBA16F]:X.FLOAT,[r.R32F]:X.FLOAT,[r.RG32F]:X.FLOAT,[r.RGB32F]:X.FLOAT,[r.RGBA32F]:X.FLOAT,[r.R11F_G11F_B10F]:X.FLOAT,[r.RGB9_E5]:X.FLOAT,[r.R8I]:X.INT,[r.R8UI]:X.UINT,[r.R16I]:X.INT,[r.R16UI]:X.UINT,[r.R32I]:X.INT,[r.R32UI]:X.UINT,[r.RG8I]:X.INT,[r.RG8UI]:X.UINT,[r.RG16I]:X.INT,[r.RG16UI]:X.UINT,[r.RG32I]:X.INT,[r.RG32UI]:X.UINT,[r.RGB8I]:X.INT,[r.RGB8UI]:X.UINT,[r.RGB16I]:X.INT,[r.RGB16UI]:X.UINT,[r.RGB32I]:X.INT,[r.RGB32UI]:X.UINT,[r.RGBA8I]:X.INT,[r.RGBA8UI]:X.UINT,[r.RGBA16I]:X.INT,[r.RGBA16UI]:X.UINT,[r.RGBA32I]:X.INT,[r.RGBA32UI]:X.UINT,[r.DEPTH_COMPONENT16]:X.FLOAT,[r.DEPTH_COMPONENT24]:X.FLOAT,[r.DEPTH_COMPONENT32F]:X.FLOAT,[r.DEPTH_STENCIL]:X.FLOAT,[r.DEPTH24_STENCIL8]:X.FLOAT,[r.DEPTH32F_STENCIL8]:X.FLOAT}:e={[r.RGB]:X.FLOAT,[r.RGBA]:X.FLOAT,[r.ALPHA]:X.FLOAT,[r.LUMINANCE]:X.FLOAT,[r.LUMINANCE_ALPHA]:X.FLOAT,[r.DEPTH_STENCIL]:X.FLOAT},e}function GF(r){let e;return"WebGL2RenderingContext"in globalThis&&r instanceof globalThis.WebGL2RenderingContext?e={[ue.UNSIGNED_BYTE]:{[W.RGBA]:r.RGBA8,[W.RGB]:r.RGB8,[W.RG]:r.RG8,[W.RED]:r.R8,[W.RGBA_INTEGER]:r.RGBA8UI,[W.RGB_INTEGER]:r.RGB8UI,[W.RG_INTEGER]:r.RG8UI,[W.RED_INTEGER]:r.R8UI,[W.ALPHA]:r.ALPHA,[W.LUMINANCE]:r.LUMINANCE,[W.LUMINANCE_ALPHA]:r.LUMINANCE_ALPHA},[ue.BYTE]:{[W.RGBA]:r.RGBA8_SNORM,[W.RGB]:r.RGB8_SNORM,[W.RG]:r.RG8_SNORM,[W.RED]:r.R8_SNORM,[W.RGBA_INTEGER]:r.RGBA8I,[W.RGB_INTEGER]:r.RGB8I,[W.RG_INTEGER]:r.RG8I,[W.RED_INTEGER]:r.R8I},[ue.UNSIGNED_SHORT]:{[W.RGBA_INTEGER]:r.RGBA16UI,[W.RGB_INTEGER]:r.RGB16UI,[W.RG_INTEGER]:r.RG16UI,[W.RED_INTEGER]:r.R16UI,[W.DEPTH_COMPONENT]:r.DEPTH_COMPONENT16},[ue.SHORT]:{[W.RGBA_INTEGER]:r.RGBA16I,[W.RGB_INTEGER]:r.RGB16I,[W.RG_INTEGER]:r.RG16I,[W.RED_INTEGER]:r.R16I},[ue.UNSIGNED_INT]:{[W.RGBA_INTEGER]:r.RGBA32UI,[W.RGB_INTEGER]:r.RGB32UI,[W.RG_INTEGER]:r.RG32UI,[W.RED_INTEGER]:r.R32UI,[W.DEPTH_COMPONENT]:r.DEPTH_COMPONENT24},[ue.INT]:{[W.RGBA_INTEGER]:r.RGBA32I,[W.RGB_INTEGER]:r.RGB32I,[W.RG_INTEGER]:r.RG32I,[W.RED_INTEGER]:r.R32I},[ue.FLOAT]:{[W.RGBA]:r.RGBA32F,[W.RGB]:r.RGB32F,[W.RG]:r.RG32F,[W.RED]:r.R32F,[W.DEPTH_COMPONENT]:r.DEPTH_COMPONENT32F},[ue.HALF_FLOAT]:{[W.RGBA]:r.RGBA16F,[W.RGB]:r.RGB16F,[W.RG]:r.RG16F,[W.RED]:r.R16F},[ue.UNSIGNED_SHORT_5_6_5]:{[W.RGB]:r.RGB565},[ue.UNSIGNED_SHORT_4_4_4_4]:{[W.RGBA]:r.RGBA4},[ue.UNSIGNED_SHORT_5_5_5_1]:{[W.RGBA]:r.RGB5_A1},[ue.UNSIGNED_INT_2_10_10_10_REV]:{[W.RGBA]:r.RGB10_A2,[W.RGBA_INTEGER]:r.RGB10_A2UI},[ue.UNSIGNED_INT_10F_11F_11F_REV]:{[W.RGB]:r.R11F_G11F_B10F},[ue.UNSIGNED_INT_5_9_9_9_REV]:{[W.RGB]:r.RGB9_E5},[ue.UNSIGNED_INT_24_8]:{[W.DEPTH_STENCIL]:r.DEPTH24_STENCIL8},[ue.FLOAT_32_UNSIGNED_INT_24_8_REV]:{[W.DEPTH_STENCIL]:r.DEPTH32F_STENCIL8}}:e={[ue.UNSIGNED_BYTE]:{[W.RGBA]:r.RGBA,[W.RGB]:r.RGB,[W.ALPHA]:r.ALPHA,[W.LUMINANCE]:r.LUMINANCE,[W.LUMINANCE_ALPHA]:r.LUMINANCE_ALPHA},[ue.UNSIGNED_SHORT_5_6_5]:{[W.RGB]:r.RGB},[ue.UNSIGNED_SHORT_4_4_4_4]:{[W.RGBA]:r.RGBA},[ue.UNSIGNED_SHORT_5_5_5_1]:{[W.RGBA]:r.RGBA}},e}var ha=class{constructor(e){this.renderer=e,this.boundTextures=[],this.currentLocation=-1,this.managedTextures=[],this._unknownBoundTextures=!1,this.unknownTexture=new ve,this.hasIntegerTextures=!1}contextChange(){let e=this.gl=this.renderer.gl;this.CONTEXT_UID=this.renderer.CONTEXT_UID,this.webGLVersion=this.renderer.context.webGLVersion,this.internalFormats=GF(e),this.samplerTypes=UF(e);let t=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS);this.boundTextures.length=t;for(let s=0;s<t;s++)this.boundTextures[s]=null;this.emptyTextures={};let i=new ho(e.createTexture());e.bindTexture(e.TEXTURE_2D,i.texture),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,1,1,0,e.RGBA,e.UNSIGNED_BYTE,new Uint8Array(4)),this.emptyTextures[e.TEXTURE_2D]=i,this.emptyTextures[e.TEXTURE_CUBE_MAP]=new ho(e.createTexture()),e.bindTexture(e.TEXTURE_CUBE_MAP,this.emptyTextures[e.TEXTURE_CUBE_MAP].texture);for(let s=0;s<6;s++)e.texImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X+s,0,e.RGBA,1,1,0,e.RGBA,e.UNSIGNED_BYTE,null);e.texParameteri(e.TEXTURE_CUBE_MAP,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_CUBE_MAP,e.TEXTURE_MIN_FILTER,e.LINEAR);for(let s=0;s<this.boundTextures.length;s++)this.bind(null,s)}bind(e,t=0){let{gl:i}=this;if(e=e?.castToBaseTexture(),e?.valid&&!e.parentTextureArray){e.touched=this.renderer.textureGC.count;let s=e._glTextures[this.CONTEXT_UID]||this.initTexture(e);this.boundTextures[t]!==e&&(this.currentLocation!==t&&(this.currentLocation=t,i.activeTexture(i.TEXTURE0+t)),i.bindTexture(e.target,s.texture)),s.dirtyId!==e.dirtyId?(this.currentLocation!==t&&(this.currentLocation=t,i.activeTexture(i.TEXTURE0+t)),this.updateTexture(e)):s.dirtyStyleId!==e.dirtyStyleId&&this.updateTextureStyle(e),this.boundTextures[t]=e}else this.currentLocation!==t&&(this.currentLocation=t,i.activeTexture(i.TEXTURE0+t)),i.bindTexture(i.TEXTURE_2D,this.emptyTextures[i.TEXTURE_2D].texture),this.boundTextures[t]=null}reset(){this._unknownBoundTextures=!0,this.hasIntegerTextures=!1,this.currentLocation=-1;for(let e=0;e<this.boundTextures.length;e++)this.boundTextures[e]=this.unknownTexture}unbind(e){let{gl:t,boundTextures:i}=this;if(this._unknownBoundTextures){this._unknownBoundTextures=!1;for(let s=0;s<i.length;s++)i[s]===this.unknownTexture&&this.bind(null,s)}for(let s=0;s<i.length;s++)i[s]===e&&(this.currentLocation!==s&&(t.activeTexture(t.TEXTURE0+s),this.currentLocation=s),t.bindTexture(e.target,this.emptyTextures[e.target].texture),i[s]=null)}ensureSamplerType(e){let{boundTextures:t,hasIntegerTextures:i,CONTEXT_UID:s}=this;if(i)for(let o=e-1;o>=0;--o){let n=t[o];n&&n._glTextures[s].samplerType!==X.FLOAT&&this.renderer.texture.unbind(n)}}initTexture(e){let t=new ho(this.gl.createTexture());return t.dirtyId=-1,e._glTextures[this.CONTEXT_UID]=t,this.managedTextures.push(e),e.on("dispose",this.destroyTexture,this),t}initTextureType(e,t){t.internalFormat=this.internalFormats[e.type]?.[e.format]??e.format,t.samplerType=this.samplerTypes[t.internalFormat]??X.FLOAT,this.webGLVersion===2&&e.type===ue.HALF_FLOAT?t.type=this.gl.HALF_FLOAT:t.type=e.type}updateTexture(e){let t=e._glTextures[this.CONTEXT_UID];if(!t)return;let i=this.renderer;if(this.initTextureType(e,t),e.resource?.upload(i,e,t))t.samplerType!==X.FLOAT&&(this.hasIntegerTextures=!0);else{let s=e.realWidth,o=e.realHeight,n=i.gl;(t.width!==s||t.height!==o||t.dirtyId<0)&&(t.width=s,t.height=o,n.texImage2D(e.target,0,t.internalFormat,s,o,0,e.format,t.type,null))}e.dirtyStyleId!==t.dirtyStyleId&&this.updateTextureStyle(e),t.dirtyId=e.dirtyId}destroyTexture(e,t){let{gl:i}=this;if(e=e.castToBaseTexture(),e._glTextures[this.CONTEXT_UID]&&(this.unbind(e),i.deleteTexture(e._glTextures[this.CONTEXT_UID].texture),e.off("dispose",this.destroyTexture,this),delete e._glTextures[this.CONTEXT_UID],!t)){let s=this.managedTextures.indexOf(e);s!==-1&&ob(this.managedTextures,s,1)}}updateTextureStyle(e){let t=e._glTextures[this.CONTEXT_UID];t&&((e.mipmap===Or.POW2||this.webGLVersion!==2)&&!e.isPowerOfTwo?t.mipmap=!1:t.mipmap=e.mipmap>=1,this.webGLVersion!==2&&!e.isPowerOfTwo?t.wrapMode=Ic.CLAMP:t.wrapMode=e.wrapMode,e.resource?.style(this.renderer,e,t)||this.setStyle(e,t),t.dirtyStyleId=e.dirtyStyleId)}setStyle(e,t){let i=this.gl;if(t.mipmap&&e.mipmap!==Or.ON_MANUAL&&i.generateMipmap(e.target),i.texParameteri(e.target,i.TEXTURE_WRAP_S,t.wrapMode),i.texParameteri(e.target,i.TEXTURE_WRAP_T,t.wrapMode),t.mipmap){i.texParameteri(e.target,i.TEXTURE_MIN_FILTER,e.scaleMode===Tr.LINEAR?i.LINEAR_MIPMAP_LINEAR:i.NEAREST_MIPMAP_NEAREST);let s=this.renderer.context.extensions.anisotropicFiltering;if(s&&e.anisotropicLevel>0&&e.scaleMode===Tr.LINEAR){let o=Math.min(e.anisotropicLevel,i.getParameter(s.MAX_TEXTURE_MAX_ANISOTROPY_EXT));i.texParameterf(e.target,s.TEXTURE_MAX_ANISOTROPY_EXT,o)}}else i.texParameteri(e.target,i.TEXTURE_MIN_FILTER,e.scaleMode===Tr.LINEAR?i.LINEAR:i.NEAREST);i.texParameteri(e.target,i.TEXTURE_MAG_FILTER,e.scaleMode===Tr.LINEAR?i.LINEAR:i.NEAREST)}destroy(){this.renderer=null}};ha.extension={type:Y.RendererSystem,name:"texture"};te.add(ha);var da=class{constructor(e){this.renderer=e}contextChange(){this.gl=this.renderer.gl,this.CONTEXT_UID=this.renderer.CONTEXT_UID}bind(e){let{gl:t,CONTEXT_UID:i}=this,s=e._glTransformFeedbacks[i]||this.createGLTransformFeedback(e);t.bindTransformFeedback(t.TRANSFORM_FEEDBACK,s)}unbind(){let{gl:e}=this;e.bindTransformFeedback(e.TRANSFORM_FEEDBACK,null)}beginTransformFeedback(e,t){let{gl:i,renderer:s}=this;t&&s.shader.bind(t),i.beginTransformFeedback(e)}endTransformFeedback(){let{gl:e}=this;e.endTransformFeedback()}createGLTransformFeedback(e){let{gl:t,renderer:i,CONTEXT_UID:s}=this,o=t.createTransformFeedback();e._glTransformFeedbacks[s]=o,t.bindTransformFeedback(t.TRANSFORM_FEEDBACK,o);for(let n=0;n<e.buffers.length;n++){let a=e.buffers[n];a&&(i.buffer.update(a),a._glBuffers[s].refCount++,t.bindBufferBase(t.TRANSFORM_FEEDBACK_BUFFER,n,a._glBuffers[s].buffer||null))}return t.bindTransformFeedback(t.TRANSFORM_FEEDBACK,null),e.disposeRunner.add(this),o}disposeTransformFeedback(e,t){let i=e._glTransformFeedbacks[this.CONTEXT_UID],s=this.gl;e.disposeRunner.remove(this);let o=this.renderer.buffer;if(o)for(let n=0;n<e.buffers.length;n++){let a=e.buffers[n];if(!a)continue;let l=a._glBuffers[this.CONTEXT_UID];l&&(l.refCount--,l.refCount===0&&!t&&o.dispose(a,t))}i&&(t||s.deleteTransformFeedback(i),delete e._glTransformFeedbacks[this.CONTEXT_UID])}destroy(){this.renderer=null}};da.extension={type:Y.RendererSystem,name:"transformFeedback"};te.add(da);var Fi=class{constructor(e){this.renderer=e}init(e){this.screen=new Se(0,0,e.width,e.height),this.element=e.view||ee.ADAPTER.createCanvas(),this.resolution=e.resolution||ee.RESOLUTION,this.autoDensity=!!e.autoDensity}resizeView(e,t){this.element.width=Math.round(e*this.resolution),this.element.height=Math.round(t*this.resolution);let i=this.element.width/this.resolution,s=this.element.height/this.resolution;this.screen.width=i,this.screen.height=s,this.autoDensity&&(this.element.style.width=`${i}px`,this.element.style.height=`${s}px`),this.renderer.emit("resize",i,s),this.renderer.runners.resize.emit(this.screen.width,this.screen.height)}destroy(e){e&&this.element.parentNode?.removeChild(this.element),this.renderer=null,this.element=null,this.screen=null}};Fi.defaultOptions={width:800,height:600,resolution:void 0,autoDensity:!1},Fi.extension={type:[Y.RendererSystem,Y.CanvasRendererSystem],name:"_view"};te.add(Fi);ee.PREFER_ENV=nr.WEBGL2;ee.STRICT_TEXTURE_CACHE=!1;ee.RENDER_OPTIONS={...Bi.defaultOptions,...Ii.defaultOptions,...Fi.defaultOptions,...ki.defaultOptions};Object.defineProperties(ee,{WRAP_MODE:{get(){return ve.defaultOptions.wrapMode},set(r){xe("7.1.0","settings.WRAP_MODE is deprecated, use BaseTexture.defaultOptions.wrapMode"),ve.defaultOptions.wrapMode=r}},SCALE_MODE:{get(){return ve.defaultOptions.scaleMode},set(r){xe("7.1.0","settings.SCALE_MODE is deprecated, use BaseTexture.defaultOptions.scaleMode"),ve.defaultOptions.scaleMode=r}},MIPMAP_TEXTURES:{get(){return ve.defaultOptions.mipmap},set(r){xe("7.1.0","settings.MIPMAP_TEXTURES is deprecated, use BaseTexture.defaultOptions.mipmap"),ve.defaultOptions.mipmap=r}},ANISOTROPIC_LEVEL:{get(){return ve.defaultOptions.anisotropicLevel},set(r){xe("7.1.0","settings.ANISOTROPIC_LEVEL is deprecated, use BaseTexture.defaultOptions.anisotropicLevel"),ve.defaultOptions.anisotropicLevel=r}},FILTER_RESOLUTION:{get(){return xe("7.1.0","settings.FILTER_RESOLUTION is deprecated, use Filter.defaultResolution"),ci.defaultResolution},set(r){ci.defaultResolution=r}},FILTER_MULTISAMPLE:{get(){return xe("7.1.0","settings.FILTER_MULTISAMPLE is deprecated, use Filter.defaultMultisample"),ci.defaultMultisample},set(r){ci.defaultMultisample=r}},SPRITE_MAX_TEXTURES:{get(){return Ri.defaultMaxTextures},set(r){xe("7.1.0","settings.SPRITE_MAX_TEXTURES is deprecated, use BatchRenderer.defaultMaxTextures"),Ri.defaultMaxTextures=r}},SPRITE_BATCH_SIZE:{get(){return Ri.defaultBatchSize},set(r){xe("7.1.0","settings.SPRITE_BATCH_SIZE is deprecated, use BatchRenderer.defaultBatchSize"),Ri.defaultBatchSize=r}},CAN_UPLOAD_SAME_BUFFER:{get(){return Ri.canUploadSameBuffer},set(r){xe("7.1.0","settings.CAN_UPLOAD_SAME_BUFFER is deprecated, use BatchRenderer.canUploadSameBuffer"),Ri.canUploadSameBuffer=r}},GC_MODE:{get(){return ui.defaultMode},set(r){xe("7.1.0","settings.GC_MODE is deprecated, use TextureGCSystem.defaultMode"),ui.defaultMode=r}},GC_MAX_IDLE:{get(){return ui.defaultMaxIdle},set(r){xe("7.1.0","settings.GC_MAX_IDLE is deprecated, use TextureGCSystem.defaultMaxIdle"),ui.defaultMaxIdle=r}},GC_MAX_CHECK_COUNT:{get(){return ui.defaultCheckCountMax},set(r){xe("7.1.0","settings.GC_MAX_CHECK_COUNT is deprecated, use TextureGCSystem.defaultCheckCountMax"),ui.defaultCheckCountMax=r}},PRECISION_VERTEX:{get(){return Er.defaultVertexPrecision},set(r){xe("7.1.0","settings.PRECISION_VERTEX is deprecated, use Program.defaultVertexPrecision"),Er.defaultVertexPrecision=r}},PRECISION_FRAGMENT:{get(){return Er.defaultFragmentPrecision},set(r){xe("7.1.0","settings.PRECISION_FRAGMENT is deprecated, use Program.defaultFragmentPrecision"),Er.defaultFragmentPrecision=r}}});var fo=(r=>(r[r.INTERACTION=50]="INTERACTION",r[r.HIGH=25]="HIGH",r[r.NORMAL=0]="NORMAL",r[r.LOW=-25]="LOW",r[r.UTILITY=-50]="UTILITY",r))(fo||{});var fa=class{constructor(e,t=null,i=0,s=!1){this.next=null,this.previous=null,this._destroyed=!1,this.fn=e,this.context=t,this.priority=i,this.once=s}match(e,t=null){return this.fn===e&&this.context===t}emit(e){this.fn&&(this.context?this.fn.call(this.context,e):this.fn(e));let t=this.next;return this.once&&this.destroy(!0),this._destroyed&&(this.next=null),t}connect(e){this.previous=e,e.next&&(e.next.previous=this),this.next=e.next,e.next=this}destroy(e=!1){this._destroyed=!0,this.fn=null,this.context=null,this.previous&&(this.previous.next=this.next),this.next&&(this.next.previous=this.previous);let t=this.next;return this.next=e?null:t,this.previous=null,t}};var LF=class hr{constructor(){this.autoStart=!1,this.deltaTime=1,this.lastTime=-1,this.speed=1,this.started=!1,this._requestId=null,this._maxElapsedMS=100,this._minElapsedMS=0,this._protected=!1,this._lastFrame=-1,this._head=new fa(null,null,1/0),this.deltaMS=1/hr.targetFPMS,this.elapsedMS=1/hr.targetFPMS,this._tick=e=>{this._requestId=null,this.started&&(this.update(e),this.started&&this._requestId===null&&this._head.next&&(this._requestId=requestAnimationFrame(this._tick)))}}_requestIfNeeded(){this._requestId===null&&this._head.next&&(this.lastTime=performance.now(),this._lastFrame=this.lastTime,this._requestId=requestAnimationFrame(this._tick))}_cancelIfNeeded(){this._requestId!==null&&(cancelAnimationFrame(this._requestId),this._requestId=null)}_startIfPossible(){this.started?this._requestIfNeeded():this.autoStart&&this.start()}add(e,t,i=fo.NORMAL){return this._addListener(new fa(e,t,i))}addOnce(e,t,i=fo.NORMAL){return this._addListener(new fa(e,t,i,!0))}_addListener(e){let t=this._head.next,i=this._head;if(!t)e.connect(i);else{for(;t;){if(e.priority>t.priority){e.connect(i);break}i=t,t=t.next}e.previous||e.connect(i)}return this._startIfPossible(),this}remove(e,t){let i=this._head.next;for(;i;)i.match(e,t)?i=i.destroy():i=i.next;return this._head.next||this._cancelIfNeeded(),this}get count(){if(!this._head)return 0;let e=0,t=this._head;for(;t=t.next;)e++;return e}start(){this.started||(this.started=!0,this._requestIfNeeded())}stop(){this.started&&(this.started=!1,this._cancelIfNeeded())}destroy(){if(!this._protected){this.stop();let e=this._head.next;for(;e;)e=e.destroy(!0);this._head.destroy(),this._head=null}}update(e=performance.now()){let t;if(e>this.lastTime){if(t=this.elapsedMS=e-this.lastTime,t>this._maxElapsedMS&&(t=this._maxElapsedMS),t*=this.speed,this._minElapsedMS){let o=e-this._lastFrame|0;if(o<this._minElapsedMS)return;this._lastFrame=e-o%this._minElapsedMS}this.deltaMS=t,this.deltaTime=this.deltaMS*hr.targetFPMS;let i=this._head,s=i.next;for(;s;)s=s.emit(this.deltaTime);i.next||this._cancelIfNeeded()}else this.deltaTime=this.deltaMS=this.elapsedMS=0;this.lastTime=e}get FPS(){return 1e3/this.elapsedMS}get minFPS(){return 1e3/this._maxElapsedMS}set minFPS(e){let t=Math.min(this.maxFPS,e),i=Math.min(Math.max(0,t)/1e3,hr.targetFPMS);this._maxElapsedMS=1/i}get maxFPS(){return this._minElapsedMS?Math.round(1e3/this._minElapsedMS):0}set maxFPS(e){if(e===0)this._minElapsedMS=0;else{let t=Math.max(this.minFPS,e);this._minElapsedMS=1/(t/1e3)}}static get shared(){if(!hr._shared){let e=hr._shared=new hr;e.autoStart=!0,e._protected=!0}return hr._shared}static get system(){if(!hr._system){let e=hr._system=new hr;e.autoStart=!0,e._protected=!0}return hr._system}};LF.targetFPMS=.06;var Ar=LF;Object.defineProperties(ee,{TARGET_FPMS:{get(){return Ar.targetFPMS},set(r){xe("7.1.0","settings.TARGET_FPMS is deprecated, use Ticker.targetFPMS"),Ar.targetFPMS=r}}});var pu=class{static init(e){e=Object.assign({autoStart:!0,sharedTicker:!1},e),Object.defineProperty(this,"ticker",{set(t){this._ticker&&this._ticker.remove(this.render,this),this._ticker=t,t&&t.add(this.render,this,fo.LOW)},get(){return this._ticker}}),this.stop=()=>{this._ticker.stop()},this.start=()=>{this._ticker.start()},this._ticker=null,this.ticker=e.sharedTicker?Ar.shared:new Ar,e.autoStart&&this.start()}static destroy(){if(this._ticker){let e=this._ticker;this.ticker=null,e.destroy()}}};pu.extension=Y.Application;te.add(pu);var t4=[];te.handleByList(Y.Renderer,t4);var mu=class{constructor(e){this.renderer=e}contextChange(e){let t;if(this.renderer.context.webGLVersion===1){let i=e.getParameter(e.FRAMEBUFFER_BINDING);e.bindFramebuffer(e.FRAMEBUFFER,null),t=e.getParameter(e.SAMPLES),e.bindFramebuffer(e.FRAMEBUFFER,i)}else{let i=e.getParameter(e.DRAW_FRAMEBUFFER_BINDING);e.bindFramebuffer(e.DRAW_FRAMEBUFFER,null),t=e.getParameter(e.SAMPLES),e.bindFramebuffer(e.DRAW_FRAMEBUFFER,i)}t>=Be.HIGH?this.multisample=Be.HIGH:t>=Be.MEDIUM?this.multisample=Be.MEDIUM:t>=Be.LOW?this.multisample=Be.LOW:this.multisample=Be.NONE}destroy(){}};mu.extension={type:Y.RendererSystem,name:"_multisample"};te.add(mu);var Fp=class{constructor(e){this.buffer=e||null,this.updateID=-1,this.byteLength=-1,this.refCount=0}};var gu=class{constructor(e){this.renderer=e,this.managedBuffers={},this.boundBufferBases={}}destroy(){this.renderer=null}contextChange(){this.disposeAll(!0),this.gl=this.renderer.gl,this.CONTEXT_UID=this.renderer.CONTEXT_UID}bind(e){let{gl:t,CONTEXT_UID:i}=this,s=e._glBuffers[i]||this.createGLBuffer(e);t.bindBuffer(e.type,s.buffer)}unbind(e){let{gl:t}=this;t.bindBuffer(e,null)}bindBufferBase(e,t){let{gl:i,CONTEXT_UID:s}=this;if(this.boundBufferBases[t]!==e){let o=e._glBuffers[s]||this.createGLBuffer(e);this.boundBufferBases[t]=e,i.bindBufferBase(i.UNIFORM_BUFFER,t,o.buffer)}}bindBufferRange(e,t,i){let{gl:s,CONTEXT_UID:o}=this;i=i||0;let n=e._glBuffers[o]||this.createGLBuffer(e);s.bindBufferRange(s.UNIFORM_BUFFER,t||0,n.buffer,i*256,256)}update(e){let{gl:t,CONTEXT_UID:i}=this,s=e._glBuffers[i]||this.createGLBuffer(e);if(e._updateID!==s.updateID)if(s.updateID=e._updateID,t.bindBuffer(e.type,s.buffer),s.byteLength>=e.data.byteLength)t.bufferSubData(e.type,0,e.data);else{let o=e.static?t.STATIC_DRAW:t.DYNAMIC_DRAW;s.byteLength=e.data.byteLength,t.bufferData(e.type,e.data,o)}}dispose(e,t){if(!this.managedBuffers[e.id])return;delete this.managedBuffers[e.id];let i=e._glBuffers[this.CONTEXT_UID],s=this.gl;e.disposeRunner.remove(this),i&&(t||s.deleteBuffer(i.buffer),delete e._glBuffers[this.CONTEXT_UID])}disposeAll(e){let t=Object.keys(this.managedBuffers);for(let i=0;i<t.length;i++)this.dispose(this.managedBuffers[t[i]],e)}createGLBuffer(e){let{CONTEXT_UID:t,gl:i}=this;return e._glBuffers[t]=new Fp(i.createBuffer()),this.managedBuffers[e.id]=e,e.disposeRunner.add(this),e._glBuffers[t]}};gu.extension={type:Y.RendererSystem,name:"buffer"};te.add(gu);var xu=class{constructor(e){this.renderer=e}render(e,t){let i=this.renderer,s,o,n,a;if(t&&(s=t.renderTexture,o=t.clear,n=t.transform,a=t.skipUpdateTransform),this.renderingToScreen=!s,i.runners.prerender.emit(),i.emit("prerender"),i.projection.transform=n,!i.context.isLost){if(s||(this.lastObjectRendered=e),!a){let l=e.enableTempParent();e.updateTransform(),e.disableTempParent(l)}i.renderTexture.bind(s),i.batch.currentRenderer.start(),(o??i.background.clearBeforeRender)&&i.renderTexture.clear(),e.render(i),i.batch.currentRenderer.flush(),s&&(t.blit&&i.framebuffer.blit(),s.baseTexture.update()),i.runners.postrender.emit(),i.projection.transform=null,i.emit("postrender")}}destroy(){this.renderer=null,this.lastObjectRendered=null}};xu.extension={type:Y.RendererSystem,name:"objectRenderer"};te.add(xu);var Op=class Ib extends ua{constructor(e){super(),this.type=b_.WEBGL,e=Object.assign({},ee.RENDER_OPTIONS,e),this.gl=null,this.CONTEXT_UID=0,this.globalUniforms=new ur({projectionMatrix:new Ue},!0);let t={runners:["init","destroy","contextChange","resolutionChange","reset","update","postrender","prerender","resize"],systems:Ib.__systems,priority:["_view","textureGenerator","background","_plugin","startup","context","state","texture","buffer","geometry","framebuffer","transformFeedback","mask","scissor","stencil","projection","textureGC","filter","renderTexture","batch","objectRenderer","_multisample"]};this.setup(t),"useContextAlpha"in e&&(xe("7.0.0","options.useContextAlpha is deprecated, use options.premultipliedAlpha and options.backgroundAlpha instead"),e.premultipliedAlpha=e.useContextAlpha&&e.useContextAlpha!=="notMultiplied",e.backgroundAlpha=e.useContextAlpha===!1?1:e.backgroundAlpha),this._plugin.rendererPlugins=Ib.__plugins,this.options=e,this.startup.run(this.options)}static test(e){return e?.forceCanvas?!1:ib()}render(e,t){this.objectRenderer.render(e,t)}resize(e,t){this._view.resizeView(e,t)}reset(){return this.runners.reset.emit(),this}clear(){this.renderTexture.bind(),this.renderTexture.clear()}destroy(e=!1){this.runners.destroy.items.reverse(),this.emitWithCustomOptions(this.runners.destroy,{_view:e}),super.destroy()}get plugins(){return this._plugin.plugins}get multisample(){return this._multisample.multisample}get width(){return this._view.element.width}get height(){return this._view.element.height}get resolution(){return this._view.resolution}set resolution(e){this._view.resolution=e,this.runners.resolutionChange.emit(e)}get autoDensity(){return this._view.autoDensity}get view(){return this._view.element}get screen(){return this._view.screen}get lastObjectRendered(){return this.objectRenderer.lastObjectRendered}get renderingToScreen(){return this.objectRenderer.renderingToScreen}get rendererLogId(){return`WebGL ${this.context.webGLVersion}`}get clearBeforeRender(){return xe("7.0.0","renderer.clearBeforeRender has been deprecated, please use renderer.background.clearBeforeRender instead."),this.background.clearBeforeRender}get useContextAlpha(){return xe("7.0.0","renderer.useContextAlpha has been deprecated, please use renderer.context.premultipliedAlpha instead."),this.context.useContextAlpha}get preserveDrawingBuffer(){return xe("7.0.0","renderer.preserveDrawingBuffer has been deprecated, we cannot truly know this unless pixi created the context"),this.context.preserveDrawingBuffer}get backgroundColor(){return xe("7.0.0","renderer.backgroundColor has been deprecated, use renderer.background.color instead."),this.background.color}set backgroundColor(e){xe("7.0.0","renderer.backgroundColor has been deprecated, use renderer.background.color instead."),this.background.color=e}get backgroundAlpha(){return xe("7.0.0","renderer.backgroundAlpha has been deprecated, use renderer.background.alpha instead."),this.background.alpha}set backgroundAlpha(e){xe("7.0.0","renderer.backgroundAlpha has been deprecated, use renderer.background.alpha instead."),this.background.alpha=e}get powerPreference(){return xe("7.0.0","renderer.powerPreference has been deprecated, we can only know this if pixi creates the context"),this.context.powerPreference}generateTexture(e,t){return this.textureGenerator.generateTexture(e,t)}};Op.extension={type:Y.Renderer,priority:1},Op.__plugins={},Op.__systems={};var Up=Op;te.handleByMap(Y.RendererPlugin,Up.__plugins);te.handleByMap(Y.RendererSystem,Up.__systems);te.add(Up);var fs=class extends cr{constructor(e,t){let{width:i,height:s}=t||{};super(i,s),this.items=[],this.itemDirtyIds=[];for(let o=0;o<e;o++){let n=new ve;this.items.push(n),this.itemDirtyIds.push(-2)}this.length=e,this._load=null,this.baseTexture=null}initFromArray(e,t){for(let i=0;i<this.length;i++)e[i]&&(e[i].castToBaseTexture?this.addBaseTextureAt(e[i].castToBaseTexture(),i):e[i]instanceof cr?this.addResourceAt(e[i],i):this.addResourceAt(Yn(e[i],t),i))}dispose(){for(let e=0,t=this.length;e<t;e++)this.items[e].destroy();this.items=null,this.itemDirtyIds=null,this._load=null}addResourceAt(e,t){if(!this.items[t])throw new Error(`Index ${t} is out of bounds`);return e.valid&&!this.valid&&this.resize(e.width,e.height),this.items[t].setResource(e),this}bind(e){if(this.baseTexture!==null)throw new Error("Only one base texture per TextureArray is allowed");super.bind(e);for(let t=0;t<this.length;t++)this.items[t].parentTextureArray=e,this.items[t].on("update",e.update,e)}unbind(e){super.unbind(e);for(let t=0;t<this.length;t++)this.items[t].parentTextureArray=null,this.items[t].off("update",e.update,e)}load(){if(this._load)return this._load;let e=this.items.map(t=>t.resource).filter(t=>t).map(t=>t.load());return this._load=Promise.all(e).then(()=>{let{realWidth:t,realHeight:i}=this.items[0];return this.resize(t,i),this.update(),Promise.resolve(this)}),this._load}};var yu=class extends fs{constructor(e,t){let{width:i,height:s}=t||{},o,n;Array.isArray(e)?(o=e,n=e.length):n=e,super(n,{width:i,height:s}),o&&this.initFromArray(o,t)}addBaseTextureAt(e,t){if(e.resource)this.addResourceAt(e.resource,t);else throw new Error("ArrayResource does not support RenderTexture");return this}bind(e){super.bind(e),e.target=Ei.TEXTURE_2D_ARRAY}upload(e,t,i){let{length:s,itemDirtyIds:o,items:n}=this,{gl:a}=e;i.dirtyId<0&&a.texImage3D(a.TEXTURE_2D_ARRAY,0,i.internalFormat,this._width,this._height,s,0,t.format,i.type,null);for(let l=0;l<s;l++){let c=n[l];o[l]<c.dirtyId&&(o[l]=c.dirtyId,c.valid&&a.texSubImage3D(a.TEXTURE_2D_ARRAY,0,0,0,l,c.resource.width,c.resource.height,1,t.format,i.type,c.resource.source))}return!0}};var _u=class extends _t{constructor(e){super(e)}static test(e){let{OffscreenCanvas:t}=globalThis;return t&&e instanceof t?!0:globalThis.HTMLCanvasElement&&e instanceof HTMLCanvasElement}};var DF=class bu extends fs{constructor(e,t){let{width:i,height:s,autoLoad:o,linkBaseTexture:n}=t||{};if(e&&e.length!==bu.SIDES)throw new Error(`Invalid length. Got ${e.length}, expected 6`);super(6,{width:i,height:s});for(let a=0;a<bu.SIDES;a++)this.items[a].target=Ei.TEXTURE_CUBE_MAP_POSITIVE_X+a;this.linkBaseTexture=n!==!1,e&&this.initFromArray(e,t),o!==!1&&this.load()}bind(e){super.bind(e),e.target=Ei.TEXTURE_CUBE_MAP}addBaseTextureAt(e,t,i){if(i===void 0&&(i=this.linkBaseTexture),!this.items[t])throw new Error(`Index ${t} is out of bounds`);if(!this.linkBaseTexture||e.parentTextureArray||Object.keys(e._glTextures).length>0)if(e.resource)this.addResourceAt(e.resource,t);else throw new Error("CubeResource does not support copying of renderTexture.");else e.target=Ei.TEXTURE_CUBE_MAP_POSITIVE_X+t,e.parentTextureArray=this.baseTexture,this.items[t]=e;return e.valid&&!this.valid&&this.resize(e.realWidth,e.realHeight),this.items[t]=e,this}upload(e,t,i){let s=this.itemDirtyIds;for(let o=0;o<bu.SIDES;o++){let n=this.items[o];(s[o]<n.dirtyId||i.dirtyId<t.dirtyId)&&(n.valid&&n.resource?(n.resource.upload(e,n,i),s[o]=n.dirtyId):s[o]<-1&&(e.gl.texImage2D(n.target,0,i.internalFormat,t.realWidth,t.realHeight,0,t.format,i.type,null),s[o]=-1))}return!0}static test(e){return Array.isArray(e)&&e.length===bu.SIDES}};DF.SIDES=6;var Bb=DF;var vu=class r extends _t{constructor(e,t){t=t||{};let i,s,o;typeof e=="string"?(i=r.EMPTY,s=e,o=!0):(i=e,s=null,o=!1),super(i),this.url=s,this.crossOrigin=t.crossOrigin??!0,this.alphaMode=typeof t.alphaMode=="number"?t.alphaMode:null,this.ownsImageBitmap=t.ownsImageBitmap??o,this._load=null,t.autoLoad!==!1&&this.load()}load(){return this._load?this._load:(this._load=new Promise(async(e,t)=>{if(this.url===null){e(this);return}try{let i=await ee.ADAPTER.fetch(this.url,{mode:this.crossOrigin?"cors":"no-cors"});if(this.destroyed)return;let s=await i.blob();if(this.destroyed)return;let o=await createImageBitmap(s,{premultiplyAlpha:this.alphaMode===null||this.alphaMode===ar.UNPACK?"premultiply":"none"});if(this.destroyed){o.close();return}this.source=o,this.update(),e(this)}catch(i){if(this.destroyed)return;t(i),this.onError.emit(i)}}),this._load)}upload(e,t,i){return this.source instanceof ImageBitmap?(typeof this.alphaMode=="number"&&(t.alphaMode=this.alphaMode),super.upload(e,t,i)):(this.load(),!1)}dispose(){this.ownsImageBitmap&&this.source instanceof ImageBitmap&&this.source.close(),super.dispose(),this._load=null}static test(e){return!!globalThis.createImageBitmap&&typeof ImageBitmap<"u"&&(typeof e=="string"||e instanceof ImageBitmap)}static get EMPTY(){return r._EMPTY=r._EMPTY??ee.ADAPTER.createCanvas(0,0),r._EMPTY}};var kb=class Gp extends _t{constructor(e,t){t=t||{},super(ee.ADAPTER.createCanvas()),this._width=0,this._height=0,this.svg=e,this.scale=t.scale||1,this._overrideWidth=t.width,this._overrideHeight=t.height,this._resolve=null,this._crossorigin=t.crossorigin,this._load=null,t.autoLoad!==!1&&this.load()}load(){return this._load?this._load:(this._load=new Promise(e=>{if(this._resolve=()=>{this.update(),e(this)},Gp.SVG_XML.test(this.svg.trim())){if(!btoa)throw new Error("Your browser doesn't support base64 conversions.");this.svg=`data:image/svg+xml;base64,${btoa(unescape(encodeURIComponent(this.svg)))}`}this._loadSvg()}),this._load)}_loadSvg(){let e=new Image;_t.crossOrigin(e,this.svg,this._crossorigin),e.src=this.svg,e.onerror=t=>{this._resolve&&(e.onerror=null,this.onError.emit(t))},e.onload=()=>{if(!this._resolve)return;let t=e.width,i=e.height;if(!t||!i)throw new Error("The SVG image must have width and height defined (in pixels), canvas API needs them.");let s=t*this.scale,o=i*this.scale;(this._overrideWidth||this._overrideHeight)&&(s=this._overrideWidth||this._overrideHeight/i*t,o=this._overrideHeight||this._overrideWidth/t*i),s=Math.round(s),o=Math.round(o);let n=this.source;n.width=s,n.height=o,n._pixiId=`canvas_${Ci()}`,n.getContext("2d").drawImage(e,0,0,t,i,0,0,s,o),this._resolve(),this._resolve=null}}static getSize(e){let t=Gp.SVG_SIZE.exec(e),i={};return t&&(i[t[1]]=Math.round(parseFloat(t[3])),i[t[5]]=Math.round(parseFloat(t[7]))),i}dispose(){super.dispose(),this._resolve=null,this._crossorigin=null}static test(e,t){return t==="svg"||typeof e=="string"&&e.startsWith("data:image/svg+xml")||typeof e=="string"&&Gp.SVG_XML.test(e)}};kb.SVG_XML=/^(<\?xml[^?]+\?>)?\s*(<!--[^(-->)]*-->)?\s*\<svg/m,kb.SVG_SIZE=/<svg[^>]*(?:\s(width|height)=('|")(\d*(?:\.\d+)?)(?:px)?('|"))[^>]*(?:\s(width|height)=('|")(\d*(?:\.\d+)?)(?:px)?('|"))[^>]*>/i;var Fb=kb;var Lp=class extends _t{constructor(e){super(e)}static test(e){return!!globalThis.VideoFrame&&e instanceof globalThis.VideoFrame}};var Ob=class Ub extends _t{constructor(e,t){if(t=t||{},!(e instanceof HTMLVideoElement)){let i=document.createElement("video");t.autoLoad!==!1&&i.setAttribute("preload","auto"),t.playsinline!==!1&&(i.setAttribute("webkit-playsinline",""),i.setAttribute("playsinline","")),t.muted===!0&&(i.setAttribute("muted",""),i.muted=!0),t.loop===!0&&i.setAttribute("loop",""),t.autoPlay!==!1&&i.setAttribute("autoplay",""),typeof e=="string"&&(e=[e]);let s=e[0].src||e[0];_t.crossOrigin(i,s,t.crossorigin);for(let o=0;o<e.length;++o){let n=document.createElement("source"),{src:a,mime:l}=e[o];if(a=a||e[o],a.startsWith("data:"))l=a.slice(5,a.indexOf(";"));else if(!a.startsWith("blob:")){let c=a.split("?").shift().toLowerCase(),u=c.slice(c.lastIndexOf(".")+1);l=l||Ub.MIME_TYPES[u]||`video/${u}`}n.src=a,l&&(n.type=l),i.appendChild(n)}e=i}super(e),this.noSubImage=!0,this._autoUpdate=!0,this._isConnectedToTicker=!1,this._updateFPS=t.updateFPS||0,this._msToNextUpdate=0,this.autoPlay=t.autoPlay!==!1,this._videoFrameRequestCallback=this._videoFrameRequestCallback.bind(this),this._videoFrameRequestCallbackHandle=null,this._load=null,this._resolve=null,this._reject=null,this._onCanPlay=this._onCanPlay.bind(this),this._onError=this._onError.bind(this),this._onPlayStart=this._onPlayStart.bind(this),this._onPlayStop=this._onPlayStop.bind(this),this._onSeeked=this._onSeeked.bind(this),t.autoLoad!==!1&&this.load()}update(e=0){if(!this.destroyed){if(this._updateFPS){let t=Ar.shared.elapsedMS*this.source.playbackRate;this._msToNextUpdate=Math.floor(this._msToNextUpdate-t)}(!this._updateFPS||this._msToNextUpdate<=0)&&(super.update(),this._msToNextUpdate=this._updateFPS?Math.floor(1e3/this._updateFPS):0)}}_videoFrameRequestCallback(){this.update(),this.destroyed?this._videoFrameRequestCallbackHandle=null:this._videoFrameRequestCallbackHandle=this.source.requestVideoFrameCallback(this._videoFrameRequestCallback)}load(){if(this._load)return this._load;let e=this.source;return(e.readyState===e.HAVE_ENOUGH_DATA||e.readyState===e.HAVE_FUTURE_DATA)&&e.width&&e.height&&(e.complete=!0),e.addEventListener("play",this._onPlayStart),e.addEventListener("pause",this._onPlayStop),e.addEventListener("seeked",this._onSeeked),this._isSourceReady()?this._onCanPlay():(e.addEventListener("canplay",this._onCanPlay),e.addEventListener("canplaythrough",this._onCanPlay),e.addEventListener("error",this._onError,!0)),this._load=new Promise((t,i)=>{this.valid?t(this):(this._resolve=t,this._reject=i,e.load())}),this._load}_onError(e){this.source.removeEventListener("error",this._onError,!0),this.onError.emit(e),this._reject&&(this._reject(e),this._reject=null,this._resolve=null)}_isSourcePlaying(){let e=this.source;return!e.paused&&!e.ended}_isSourceReady(){return this.source.readyState>2}_onPlayStart(){this.valid||this._onCanPlay(),this._configureAutoUpdate()}_onPlayStop(){this._configureAutoUpdate()}_onSeeked(){this._autoUpdate&&!this._isSourcePlaying()&&(this._msToNextUpdate=0,this.update(),this._msToNextUpdate=0)}_onCanPlay(){let e=this.source;e.removeEventListener("canplay",this._onCanPlay),e.removeEventListener("canplaythrough",this._onCanPlay);let t=this.valid;this._msToNextUpdate=0,this.update(),this._msToNextUpdate=0,!t&&this._resolve&&(this._resolve(this),this._resolve=null,this._reject=null),this._isSourcePlaying()?this._onPlayStart():this.autoPlay&&e.play()}dispose(){this._configureAutoUpdate();let e=this.source;e&&(e.removeEventListener("play",this._onPlayStart),e.removeEventListener("pause",this._onPlayStop),e.removeEventListener("seeked",this._onSeeked),e.removeEventListener("canplay",this._onCanPlay),e.removeEventListener("canplaythrough",this._onCanPlay),e.removeEventListener("error",this._onError,!0),e.pause(),e.src="",e.load()),super.dispose()}get autoUpdate(){return this._autoUpdate}set autoUpdate(e){e!==this._autoUpdate&&(this._autoUpdate=e,this._configureAutoUpdate())}get updateFPS(){return this._updateFPS}set updateFPS(e){e!==this._updateFPS&&(this._updateFPS=e,this._configureAutoUpdate())}_configureAutoUpdate(){this._autoUpdate&&this._isSourcePlaying()?!this._updateFPS&&this.source.requestVideoFrameCallback?(this._isConnectedToTicker&&(Ar.shared.remove(this.update,this),this._isConnectedToTicker=!1,this._msToNextUpdate=0),this._videoFrameRequestCallbackHandle===null&&(this._videoFrameRequestCallbackHandle=this.source.requestVideoFrameCallback(this._videoFrameRequestCallback))):(this._videoFrameRequestCallbackHandle!==null&&(this.source.cancelVideoFrameCallback(this._videoFrameRequestCallbackHandle),this._videoFrameRequestCallbackHandle=null),this._isConnectedToTicker||(Ar.shared.add(this.update,this),this._isConnectedToTicker=!0,this._msToNextUpdate=0)):(this._videoFrameRequestCallbackHandle!==null&&(this.source.cancelVideoFrameCallback(this._videoFrameRequestCallbackHandle),this._videoFrameRequestCallbackHandle=null),this._isConnectedToTicker&&(Ar.shared.remove(this.update,this),this._isConnectedToTicker=!1,this._msToNextUpdate=0))}static test(e,t){return globalThis.HTMLVideoElement&&e instanceof HTMLVideoElement||Ub.TYPES.includes(t)}};Ob.TYPES=["mp4","m4v","webm","ogg","ogv","h264","avi","mov"],Ob.MIME_TYPES={ogv:"video/ogg",mov:"video/quicktime",m4v:"video/mp4"};var Gb=Ob;Xc.push(vu,ao,_u,Gb,Lp,Fb,Js,Bb,yu);var r4={vec3(r,e,t,i){(t[0]!==i[0]||t[1]!==i[1]||t[2]!==i[2])&&(t[0]=i[0],t[1]=i[1],t[2]=i[2],r.uniform3f(e,i[0],i[1],i[2]))},int(r,e,t,i){r.uniform1i(e,i)},ivec2(r,e,t,i){r.uniform2i(e,i[0],i[1])},ivec3(r,e,t,i){r.uniform3i(e,i[0],i[1],i[2])},ivec4(r,e,t,i){r.uniform4i(e,i[0],i[1],i[2],i[3])},uint(r,e,t,i){r.uniform1ui(e,i)},uvec2(r,e,t,i){r.uniform2ui(e,i[0],i[1])},uvec3(r,e,t,i){r.uniform3ui(e,i[0],i[1],i[2])},uvec4(r,e,t,i){r.uniform4ui(e,i[0],i[1],i[2],i[3])},bvec2(r,e,t,i){r.uniform2i(e,i[0],i[1])},bvec3(r,e,t,i){r.uniform3i(e,i[0],i[1],i[2])},bvec4(r,e,t,i){r.uniform4i(e,i[0],i[1],i[2],i[3])},mat2(r,e,t,i){r.uniformMatrix2fv(e,!1,i)},mat4(r,e,t,i){r.uniformMatrix4fv(e,!1,i)}},i4={float(r,e,t,i){r.uniform1fv(e,i)},vec2(r,e,t,i){r.uniform2fv(e,i)},vec3(r,e,t,i){r.uniform3fv(e,i)},vec4(r,e,t,i){r.uniform4fv(e,i)},int(r,e,t,i){r.uniform1iv(e,i)},ivec2(r,e,t,i){r.uniform2iv(e,i)},ivec3(r,e,t,i){r.uniform3iv(e,i)},ivec4(r,e,t,i){r.uniform4iv(e,i)},uint(r,e,t,i){r.uniform1uiv(e,i)},uvec2(r,e,t,i){r.uniform2uiv(e,i)},uvec3(r,e,t,i){r.uniform3uiv(e,i)},uvec4(r,e,t,i){r.uniform4uiv(e,i)},bool(r,e,t,i){r.uniform1iv(e,i)},bvec2(r,e,t,i){r.uniform2iv(e,i)},bvec3(r,e,t,i){r.uniform3iv(e,i)},bvec4(r,e,t,i){r.uniform4iv(e,i)},sampler2D(r,e,t,i){r.uniform1iv(e,i)},samplerCube(r,e,t,i){r.uniform1iv(e,i)},sampler2DArray(r,e,t,i){r.uniform1iv(e,i)}};function NF(r,e,t,i,s){let o=0,n=null,a=null,l=s.gl;for(let c in r.uniforms){let u=e[c],h=i[c],d=t[c],f=r.uniforms[c];if(!u){f.group===!0&&s.shader.syncUniformGroup(h);continue}u.type==="float"&&u.size===1&&!u.isArray?h!==d.value&&(d.value=h,l.uniform1f(d.location,h)):u.type==="bool"&&u.size===1&&!u.isArray?h!==d.value&&(d.value=h,l.uniform1i(d.location,Number(h))):(u.type==="sampler2D"||u.type==="samplerCube"||u.type==="sampler2DArray")&&u.size===1&&!u.isArray?(s.texture.bind(h,o),d.value!==o&&(d.value=o,l.uniform1i(d.location,o)),o++):u.type==="mat3"&&u.size===1&&!u.isArray?f.a!==void 0?l.uniformMatrix3fv(d.location,!1,h.toArray(!0)):l.uniformMatrix3fv(d.location,!1,h):u.type==="vec2"&&u.size===1&&!u.isArray?f.x!==void 0?(a=d.value,n=h,(a[0]!==n.x||a[1]!==n.y)&&(a[0]=n.x,a[1]=n.y,l.uniform2f(d.location,n.x,n.y))):(a=d.value,n=h,(a[0]!==n[0]||a[1]!==n[1])&&(a[0]=n[0],a[1]=n[1],l.uniform2f(d.location,n[0],n[1]))):u.type==="vec4"&&u.size===1&&!u.isArray?f.width!==void 0?(a=d.value,n=h,(a[0]!==n.x||a[1]!==n.y||a[2]!==n.width||a[3]!==n.height)&&(a[0]=n.x,a[1]=n.y,a[2]=n.width,a[3]=n.height,l.uniform4f(d.location,n.x,n.y,n.width,n.height))):(a=d.value,n=h,(a[0]!==n[0]||a[1]!==n[1]||a[2]!==n[2]||a[3]!==n[3])&&(a[0]=n[0],a[1]=n[1],a[2]=n[2],a[3]=n[3],l.uniform4f(d.location,n[0],n[1],n[2],n[3]))):(u.size===1&&!u.isArray?r4:i4)[u.type].call(null,l,d.location,d.value,h)}}function s4(){Object.assign(ds.prototype,{systemCheck(){},syncUniforms(r,e){let{shader:t,renderer:i}=this;NF(r,t.program.uniformData,e.uniformData,r.uniforms,i)}})}s4();var Tu=new(window.AudioContext||window.webkitAudioContext),o4=(r,e)=>{let t,i=Tu.createGain();i.gain.value=e.volume??1,i.connect(Tu.destination);let s={id:r,url:e.url,loop:e.loop||!1,volume:e.volume??1};return{play:()=>{let m=_n.getAsset(s.url);if(!m){console.warn("AudioPlayer.play: Asset not found",s.url);return}t=Tu.createBufferSource(),t.buffer=m,t.loop=s.loop,i.gain.setValueAtTime(s.volume,Tu.currentTime),t.connect(i),t.start(0)},stop:()=>{t&&(t.stop(),t.disconnect(),i.disconnect(),i.connect(Tu.destination))},update:m=>{s={...s,...m}},getId:()=>s.id,getUrl:()=>s.url,getLoop:()=>s.loop,getVolume:()=>s.volume,setUrl:m=>{s.url=m},setLoop:m=>{s.loop=m},setVolume:m=>{s.volume=m,i.gain.value=m},get id(){return s.id},get url(){return s.url},get loop(){return s.loop},get volume(){return s.volume},gainNode:i}},HF=()=>{let r=[],e=[];return{add:a=>{e.push(a)},remove:a=>{e=e.filter(l=>l.id!==a)},getById:a=>e.find(l=>l.id===a),tick:()=>{for(let l of e){let c=r.find(u=>u.id===l.id);if(!c){let u=o4(l.id,{url:l.url,loop:l.loop,volume:l.volume??1});r.push(u),u.play();continue}(c.url!==l.url||c.loop!==l.loop)&&(c.stop(),c.setUrl(l.url),c.setLoop(l.loop??!1),c.play()),c.getVolume()!==(l.volume??1)&&c.setVolume(l.volume??1)}let a=[];for(let l of r)e.find(c=>c.id===l.id)||(l.stop(),a.push(l.id));r=r.filter(l=>!a.includes(l.id))},destroy:()=>{for(let a of r)a.stop();r=[],e=[]}}};var n4=({JSONObject:r,parserPlugins:e=[]})=>r.map(i=>{let s=e.find(o=>o.type===i.type);if(!s)throw new Error(`No parser plugin found for element type: ${i.type} (id: ${i.id??"unknown"})`);return s.parse({state:i,parserPlugins:e})});var Lb=n4;var VF=({type:r,parse:e})=>({type:r,parse:e});var Db=typeof navigator<"u"?navigator.userAgent.toLowerCase().indexOf("firefox")>0:!1;function Nb(r,e,t,i){r.addEventListener?r.addEventListener(e,t,i):r.attachEvent&&r.attachEvent(`on${e}`,t)}function Su(r,e,t,i){r&&(r.removeEventListener?r.removeEventListener(e,t,i):r.detachEvent&&r.detachEvent(`on${e}`,t))}function $F(r,e){let t=e.slice(0,e.length-1),i=[];for(let s=0;s<t.length;s++)i.push(r[t[s].toLowerCase()]);return i}function XF(r){typeof r!="string"&&(r=""),r=r.replace(/\s/g,"");let e=r.split(","),t=e.lastIndexOf("");for(;t>=0;)e[t-1]+=",",e.splice(t,1),t=e.lastIndexOf("");return e}function a4(r,e){let t=r.length>=e.length?r:e,i=r.length>=e.length?e:r,s=!0;for(let o=0;o<t.length;o++)i.indexOf(t[o])===-1&&(s=!1);return s}function jF(r){let e=r.keyCode||r.which||r.charCode;return r.code&&/^Key[A-Z]$/.test(r.code)&&(e=r.code.charCodeAt(3)),e}var Au={backspace:8,"\u232B":8,tab:9,clear:12,enter:13,"\u21A9":13,return:13,esc:27,escape:27,space:32,left:37,up:38,right:39,down:40,arrowup:38,arrowdown:40,arrowleft:37,arrowright:39,del:46,delete:46,ins:45,insert:45,home:36,end:35,pageup:33,pagedown:34,capslock:20,num_0:96,num_1:97,num_2:98,num_3:99,num_4:100,num_5:101,num_6:102,num_7:103,num_8:104,num_9:105,num_multiply:106,num_add:107,num_enter:108,num_subtract:109,num_decimal:110,num_divide:111,"\u21EA":20,",":188,".":190,"/":191,"`":192,"-":Db?173:189,"=":Db?61:187,";":Db?59:186,"'":222,"{":219,"}":221,"[":219,"]":221,"\\":220},Dr={"\u21E7":16,shift:16,"\u2325":18,alt:18,option:18,"\u2303":17,ctrl:17,control:17,"\u2318":91,cmd:91,meta:91,command:91},wu={16:"shiftKey",18:"altKey",17:"ctrlKey",91:"metaKey",shiftKey:16,ctrlKey:17,altKey:18,metaKey:91},Rt={16:!1,18:!1,17:!1,91:!1},Ze={};for(let r=1;r<20;r++)Au[`f${r}`]=111+r;var je=[],Eu=null,YF="all",Oi=new Map,pa=r=>Au[r.toLowerCase()]||Dr[r.toLowerCase()]||r.toUpperCase().charCodeAt(0),l4=r=>Object.keys(Au).find(e=>Au[e]===r),c4=r=>Object.keys(Dr).find(e=>Dr[e]===r),qF=r=>{YF=r||"all"},Cu=()=>YF||"all",u4=()=>je.slice(0),h4=()=>je.map(r=>l4(r)||c4(r)||String.fromCharCode(r)),d4=()=>{let r=[];return Object.keys(Ze).forEach(e=>{Ze[e].forEach(({key:t,scope:i,mods:s,shortcut:o})=>{r.push({scope:i,shortcut:o,mods:s,keys:t.split("+").map(n=>pa(n))})})}),r},KF=r=>{let e=r.target||r.srcElement,{tagName:t}=e,i=!0,s=t==="INPUT"&&!["checkbox","radio","range","button","file","reset","submit","color"].includes(e.type);return(e.isContentEditable||(s||t==="TEXTAREA"||t==="SELECT")&&!e.readOnly)&&(i=!1),i},f4=r=>(typeof r=="string"&&(r=pa(r)),je.indexOf(r)!==-1),p4=(r,e)=>{let t,i;r||(r=Cu());for(let s in Ze)if(Object.prototype.hasOwnProperty.call(Ze,s))for(t=Ze[s],i=0;i<t.length;)t[i].scope===r?t.splice(i,1).forEach(({element:o})=>Vb(o)):i++;Cu()===r&&qF(e||"all")};function m4(r){let e=jF(r);r.key&&r.key.toLowerCase()==="capslock"&&(e=pa(r.key));let t=je.indexOf(e);if(t>=0&&je.splice(t,1),r.key&&r.key.toLowerCase()==="meta"&&je.splice(0,je.length),(e===93||e===224)&&(e=91),e in Rt){Rt[e]=!1;for(let i in Dr)Dr[i]===e&&(pt[i]=!1)}}var ZF=(r,...e)=>{if(typeof r>"u")Object.keys(Ze).forEach(t=>{Array.isArray(Ze[t])&&Ze[t].forEach(i=>Dp(i)),delete Ze[t]}),Vb(null);else if(Array.isArray(r))r.forEach(t=>{t.key&&Dp(t)});else if(typeof r=="object")r.key&&Dp(r);else if(typeof r=="string"){let[t,i]=e;typeof t=="function"&&(i=t,t=""),Dp({key:r,scope:t,method:i,splitKey:"+"})}},Dp=({key:r,scope:e,method:t,splitKey:i="+"})=>{XF(r).forEach(s=>{let o=s.split(i),n=o.length,a=o[n-1],l=a==="*"?"*":pa(a);if(!Ze[l])return;e||(e=Cu());let c=n>1?$F(Dr,o):[],u=[];Ze[l]=Ze[l].filter(h=>{let d=(t?h.method===t:!0)&&h.scope===e&&a4(h.mods,c);return d&&u.push(h.element),!d}),u.forEach(h=>Vb(h))})};function WF(r,e,t,i){if(e.element!==i)return;let s;if(e.scope===t||e.scope==="all"){s=e.mods.length>0;for(let o in Rt)Object.prototype.hasOwnProperty.call(Rt,o)&&(!Rt[o]&&e.mods.indexOf(+o)>-1||Rt[o]&&e.mods.indexOf(+o)===-1)&&(s=!1);(e.mods.length===0&&!Rt[16]&&!Rt[18]&&!Rt[17]&&!Rt[91]||s||e.shortcut==="*")&&(e.keys=[],e.keys=e.keys.concat(je),e.method(r,e)===!1&&(r.preventDefault?r.preventDefault():r.returnValue=!1,r.stopPropagation&&r.stopPropagation(),r.cancelBubble&&(r.cancelBubble=!0)))}}function zF(r,e){let t=Ze["*"],i=jF(r);if(r.key&&r.key.toLowerCase()==="capslock"||!(pt.filter||KF).call(this,r))return;if((i===93||i===224)&&(i=91),je.indexOf(i)===-1&&i!==229&&je.push(i),["metaKey","ctrlKey","altKey","shiftKey"].forEach(a=>{let l=wu[a];r[a]&&je.indexOf(l)===-1?je.push(l):!r[a]&&je.indexOf(l)>-1?je.splice(je.indexOf(l),1):a==="metaKey"&&r[a]&&(je=je.filter(c=>c in wu||c===i))}),i in Rt){Rt[i]=!0;for(let a in Dr)if(Object.prototype.hasOwnProperty.call(Dr,a)){let l=wu[Dr[a]];pt[a]=r[l]}if(!t)return}for(let a in Rt)Object.prototype.hasOwnProperty.call(Rt,a)&&(Rt[a]=r[wu[a]]);r.getModifierState&&!(r.altKey&&!r.ctrlKey)&&r.getModifierState("AltGraph")&&(je.indexOf(17)===-1&&je.push(17),je.indexOf(18)===-1&&je.push(18),Rt[17]=!0,Rt[18]=!0);let s=Cu();if(t)for(let a=0;a<t.length;a++)t[a].scope===s&&(r.type==="keydown"&&t[a].keydown||r.type==="keyup"&&t[a].keyup)&&WF(r,t[a],s,e);if(!(i in Ze))return;let o=Ze[i],n=o.length;for(let a=0;a<n;a++)if((r.type==="keydown"&&o[a].keydown||r.type==="keyup"&&o[a].keyup)&&o[a].key){let l=o[a],{splitKey:c}=l,u=l.key.split(c),h=[];for(let d=0;d<u.length;d++)h.push(pa(u[d]));h.sort().join("")===je.sort().join("")&&WF(r,l,s,e)}}var pt=function(r,e,t){je=[];let i=XF(r),s=[],o="all",n=document,a=0,l=!1,c=!0,u="+",h=!1,d=!1;if(t===void 0&&typeof e=="function"&&(t=e),Object.prototype.toString.call(e)==="[object Object]"){let f=e;f.scope&&(o=f.scope),f.element&&(n=f.element),f.keyup&&(l=f.keyup),f.keydown!==void 0&&(c=f.keydown),f.capture!==void 0&&(h=f.capture),typeof f.splitKey=="string"&&(u=f.splitKey),f.single===!0&&(d=!0)}for(typeof e=="string"&&(o=e),d&&ZF(r,o);a<i.length;a++){let f=i[a].split(u);s=[],f.length>1&&(s=$F(Dr,f));let p=f[f.length-1];p=p==="*"?"*":pa(p),p in Ze||(Ze[p]=[]),Ze[p].push({keyup:l,keydown:c,scope:o,mods:s,shortcut:i[a],method:t,key:i[a],splitKey:u,element:n})}if(typeof n<"u"&&typeof window<"u"){if(!Oi.has(n)){let f=(m=window.event)=>zF(m,n),p=(m=window.event)=>{zF(m,n),m4(m)};Oi.set(n,{keydownListener:f,keyupListenr:p,capture:h}),Nb(n,"keydown",f,h),Nb(n,"keyup",p,h)}if(!Eu){let f=()=>{je=[]};Eu={listener:f,capture:h},Nb(window,"focus",f,h)}}};function g4(r,e="all"){Object.keys(Ze).forEach(t=>{Ze[t].filter(i=>i.scope===e&&i.shortcut===r).forEach(i=>{i&&i.method&&i.method({},i)})})}function Vb(r){let e=Object.values(Ze).flat();if(e.findIndex(({element:t})=>t===r)<0&&r){let{keydownListener:t,keyupListenr:i,capture:s}=Oi.get(r)||{};t&&i&&(Su(r,"keyup",i,s),Su(r,"keydown",t,s),Oi.delete(r))}if((e.length<=0||Oi.size<=0)&&(Array.from(Oi.keys()).forEach(t=>{let{keydownListener:i,keyupListenr:s,capture:o}=Oi.get(t)||{};i&&s&&(Su(t,"keyup",s,o),Su(t,"keydown",i,o),Oi.delete(t))}),Oi.clear(),Object.keys(Ze).forEach(t=>delete Ze[t]),Eu)){let{listener:t,capture:i}=Eu;Su(window,"focus",t,i),Eu=null}}var Hb={getPressedKeyString:h4,setScope:qF,getScope:Cu,deleteScope:p4,getPressedKeyCodes:u4,getAllKeyCodes:d4,isPressed:f4,filter:KF,trigger:g4,unbind:ZF,keyMap:Au,modifier:Dr,modifierMap:wu};for(let r in Hb){let e=r;Object.prototype.hasOwnProperty.call(Hb,e)&&(pt[e]=Hb[e])}if(typeof window<"u"){let r=window.hotkeys;pt.noConflict=e=>(e&&window.hotkeys===pt&&(window.hotkeys=r),pt),window.hotkeys=pt}var QF=",",x4="+",y4=new Set([93,224]),_4="\0",Wb=r=>r!==null&&typeof r=="object"&&!Array.isArray(r),JF=r=>Wb(r)?{payload:Wb(r.payload)?r.payload:{}}:null,r2=r=>{if(typeof r!="string"||r.length===0)return null;let e=r.toLowerCase();return typeof pt.modifier?.[e]=="number"?pt.modifier[e]:typeof pt.keyMap?.[e]=="number"?pt.keyMap[e]:r.length===1?r.toUpperCase().charCodeAt(0):null},i2=r=>y4.has(r)?91:r,e2=r=>{let e=null;return typeof r?.keyCode=="number"&&r.keyCode>0?e=r.keyCode:typeof r?.which=="number"&&r.which>0?e=r.which:typeof r?.charCode=="number"&&r.charCode>0&&(e=r.charCode),typeof r?.code=="string"&&/^Key[A-Z]$/.test(r.code)&&(e=r.code.charCodeAt(3)),typeof e=="number"?i2(e):r2(r?.key??"")},b4=r=>{if(typeof r!="string"||r.length===0)return[];let e=r.replace(/\s/g,"").split(QF),t=e.lastIndexOf("");for(;t>=0;)t>0&&(e[t-1]+=QF),e.splice(t,1),t=e.lastIndexOf("");return e.filter(Boolean)},v4=r=>typeof pt.modifierMap?.[r]=="string",T4=r=>b4(r).map(e=>{let t=new Set(e.split(x4).map(i=>r2(i)).filter(i=>typeof i=="number").map(i=>i2(i)));return t.size===0?null:{shortcut:e,releaseCodes:t,isModifierOnly:[...t].every(v4)}}).filter(Boolean),S4=(r,e)=>{for(let t of e)if(!r.has(t))return!1;return!0},t2=(r,e)=>`${r}${_4}${e.shortcut}`,w4=r=>typeof pt.filter!="function"||pt.filter(r),E4=r=>{if(!Wb(r))return null;let e={},t=JF(r.keydown),i=JF(r.keyup);return t&&(e.keydown=t),i&&(e.keyup=i),Object.keys(e).length>0?e:null},s2=r=>{let e=new Map,t=new Map,i=new Map,s=new Map,o=new Set,n=(g,y,v)=>{r&&r(g,{_event:{key:y},...v})},a=()=>{i.clear(),s.clear(),o.clear()},l=g=>{for(let[y,v]of[...i])v.binding===g&&i.delete(y);for(let[y,v]of[...s])v.binding===g&&s.delete(y);t.delete(g)},c=(g,y)=>{let v=t.get(g)??[],x=typeof y?.shortcut=="string"?y.shortcut:typeof y?.key=="string"?y.key:null;return v.find(T=>T.shortcut===x)??v[0]??null},u=(g,y)=>{!e.get(g)?.keyup||!y||i.set(t2(g,y),{binding:g,releaseCodes:new Set(y.releaseCodes)})},h=(g,y)=>{let v=t2(g,y),x=s.has(v);return s.set(v,{binding:g,releaseCodes:new Set(y.releaseCodes)}),x},d=g=>{if(!w4(g))return;let y=e2(g);if(typeof y=="number"){o.add(y);for(let[v,x]of e)(t.get(v)??[]).filter(b=>b.isModifierOnly).forEach(b=>{if(!S4(o,b.releaseCodes))return;let w=h(v,b);u(v,b),x.keydown&&!w&&n("keydown",v,x.keydown.payload)})}},f=g=>{let y=e2(g);if(typeof y=="number"){for(let[v,x]of[...i]){let T=e.get(x.binding);!x.releaseCodes.has(y)||!T?.keyup||(i.delete(v),n("keyup",x.binding,T.keyup.payload))}for(let[v,x]of[...s])x.releaseCodes.has(y)&&s.delete(v);o.delete(y)}};return typeof document<"u"&&(document.addEventListener("keydown",d),document.addEventListener("keyup",f)),typeof window<"u"&&window.addEventListener("blur",a),{registerHotkeys:(g={})=>{if(typeof g!="object"||g===null)return;let y=new Map,v=[],x=[],T=[];Object.keys(g).forEach(b=>{let w=E4(g[b]);w&&y.set(b,w)}),y.forEach((b,w)=>{let E=e.get(w);E?me(E,b)||(x.push(w),pt.unbind(w)):v.push(w)}),e.forEach((b,w)=>{y.has(w)||T.push(w)}),T.forEach(b=>{pt.unbind(b),e.delete(b),l(b)}),[...v,...x].forEach(b=>{let w=y.get(b),E=T4(b);l(b),t.set(b,E),e.set(b,w),pt(b,(R,I)=>{let C=c(b,I);if(C?.isModifierOnly){let A=h(b,C);u(b,C),w.keydown&&!A&&n("keydown",b,w.keydown.payload);return}u(b,C),w.keydown&&n("keydown",b,w.keydown.payload)})})},destroy:()=>{typeof document<"u"&&(document.removeEventListener("keydown",d),document.removeEventListener("keyup",f)),typeof window<"u"&&window.removeEventListener("blur",a);for(let g of e.keys())pt.unbind(g);e.clear(),t.clear(),i.clear(),s.clear(),o.clear()}}};var n2=(r,e)=>typeof e!="string"?e:r[e]??e,A4=(r,e,t,i)=>{let s=n2(t,e);if(typeof s=="string"){let n=r[s];return n===void 0?i:n}let o=r;for(let n of s){if(o==null)return i;o=o[n]}return o===void 0?i:o},o2=(r,e,t,i)=>{let s=n2(t,e);if(typeof s=="string")return r[s]=i,r;let o=r;for(let n=0;n<s.length-1;n++){let a=s[n];a in o||(o[a]={}),o=o[a]}return o[s[s.length-1]]=i,r},C4=(r,e,t)=>{if(!r||!Object.prototype.hasOwnProperty.call(r,e))throw new Error(`Animation "${t}" cannot auto-resolve property "${e}" from targetState.`);return r[e]},P4=(r,e,t,i,s)=>Object.entries(e).map(([o,n])=>{if(!Od[o])throw new Error(`${o} is not a supported property for animation.`);let a=A4(r,o,t,0);if(n.auto){let u=C4(i,o,s);if(a===u)return null;let h=Bn([{value:a},{duration:n.auto.duration,value:u,easing:n.auto.easing}]);return{property:o,timeline:h}}let l=n.initialValue??a,c=Bn([{value:l},...n.keyframes]);return{property:o,timeline:c}}).filter(Boolean),a2=()=>{let r=[],e=new Map,t=new Map,i=new Map,s=0,o=null,n=!1,a=(B,D)=>Math.min(Math.max(B,0),Math.max(D??0,0)),l=(B,D)=>{let j=a(D,B.duration);return B.currentTime=j,B.applyFrame(j),j>=B.duration},c=(B,D)=>{i.get(B)?.forEach(j=>{try{j(D)}catch{}})},u=B=>{if(c("completed",{id:B.id}),B.onComplete)try{B.onComplete()}catch{}},h=(B,D={})=>(B.animationType=D.animationType??B.animationType,B.targetId=D.targetId??B.targetId,B.signature=D.signature??B.signature,B.continuity=D.continuity??B.continuity??"render",B.onContinuationUpdate=D.onContinuationUpdate??B.onContinuationUpdate,B),d=B=>({id:B.id,type:B.animationType??null,targetId:B.targetId??null,signature:B.signature??null,continuity:B.continuity??"render",pending:B.pending===!0}),f=B=>{B.applyFrame(0),t.delete(B.id),e.set(B.id,B);let D=o!==null&&l(B,o);c("started",{id:B.id}),D&&(u(B),e.delete(B.id))},p=B=>{let{id:D,element:j,properties:_e,targetState:Fe,onComplete:ot,onCancel:Et,propertyPathMap:nt=Ud}=B,at=P4(j,_e,nt,Fe,D);if(at.length===0){u({id:D,onComplete:ot});return}let er={id:D,kind:"property",element:j,timelines:at,duration:Tc(at),currentTime:0,stateVersion:s,targetState:Fe,onComplete:ot,onCancel:Et,applyFrame:Cr=>{for(let{property:ga,timeline:xa}of at){let Hp=Sc(xa,Cr);try{o2(j,ga,nt,Hp)}catch{}}},applyTargetState:()=>{if(!(!j||j.destroyed)){if(Fe===null){j.destroy();return}if(Fe)for(let[Cr,ga]of Object.entries(Fe))try{o2(j,Cr,nt,ga)}catch{}}},isValid:()=>!!j&&!j.destroyed};f(h(er,B))},m=B=>{let D={id:B.id,kind:"custom",duration:B.duration??0,currentTime:0,stateVersion:s,onComplete:B.onComplete,onCancel:B.onCancel,applyFrame:B.applyFrame??(()=>{}),applyTargetState:B.applyTargetState??(()=>{}),isValid:B.isValid??(()=>!0)};f(h(D,B))},g=B=>{if(B.driver==="custom"){m(B);return}p(B)},y=B=>{try{B.applyTargetState?.()}catch{}if(B.onCancel)try{B.onCancel()}catch{}},v=B=>{let D=t.get(B);D&&(y(D),t.delete(B),c("cancelled",{id:B}))},x=B=>{switch(B.type){case"START":g(B.payload);break;case"CANCEL":w(B.id);break}},T=()=>{let B=r.splice(0);for(let D of B)x(D)},b=()=>{o===null||n||(n=!0,queueMicrotask(()=>{n=!1,o!==null&&T()}))},w=B=>{let D=e.get(B);if(!D){v(B);return}y(D),e.delete(B),c("cancelled",{id:B})},E=B=>{r.push(B),b()},R=()=>{for(let[B,D]of e)y(D),c("cancelled",{id:B});for(let[B,D]of t)y(D),c("cancelled",{id:B});e.clear(),t.clear(),s++},I=(B=new Set)=>{let D=B instanceof Set?B:new Set(B??[]);for(let[j,_e]of e)D.has(j)||(y(_e),e.delete(j),c("cancelled",{id:j}));for(let[j,_e]of t)D.has(j)||(y(_e),t.delete(j),c("cancelled",{id:j}))},C=B=>{T();let D=[];for(let[j,_e]of e){if(_e.stateVersion!==s){D.push(j);continue}if(!_e.isValid()){D.push(j);continue}if(_e.currentTime+=B,_e.currentTime>=_e.duration){_e.applyFrame(_e.duration),u(_e),D.push(j);continue}_e.applyFrame(_e.currentTime)}for(let j of D)e.delete(j)},A=B=>{o=B,T();let D=[];for(let[j,_e]of e){if(_e.stateVersion!==s){D.push(j);continue}if(!_e.isValid()){D.push(j);continue}l(_e,B)&&(u(_e),D.push(j))}for(let j of D)e.delete(j)},M=()=>{o=null},P=()=>{T()},O=(B,D)=>(i.has(B)||i.set(B,new Set),i.get(B).add(D),()=>H(B,D)),H=(B,D)=>{i.get(B)?.delete(D)};return{dispatch:E,cancelAll:R,cancelAllExcept:I,flush:P,tick:C,setTime:A,clearTime:M,on:O,off:H,registerPending:B=>{let D=h({id:B.id,kind:"pending",pending:!0,applyTargetState:B.applyTargetState??(()=>{}),onCancel:B.onCancel},B);t.set(D.id,D)},activatePending:(B,D)=>{let j=t.get(B);return j?(t.delete(B),g({...D,id:B,animationType:j.animationType,targetId:j.targetId,signature:j.signature,continuity:j.continuity,onContinuationUpdate:D.onContinuationUpdate??j.onContinuationUpdate}),!0):!1},removePending:B=>{t.delete(B)},getContinuableAnimations:()=>{let B=new Map;for(let[D,j]of t)j.continuity==="persistent"&&B.set(D,d(j));for(let[D,j]of e)j.continuity==="persistent"&&B.set(D,d(j));return B},getState:()=>({stateVersion:s,activeCount:e.size,pendingCount:t.size,animations:Array.from(e.entries()).map(([B,D])=>({id:B,currentTime:D.currentTime,duration:D.duration,progress:D.duration>0?D.currentTime/D.duration:0}))}),isAnimating:B=>e.has(B),hasContext:B=>e.has(B)||t.has(B),updateContinuation:(B,D)=>{let j=e.get(B)??t.get(B);if(j?.onContinuationUpdate)try{j.onContinuationUpdate(D)}catch{}},destroy:()=>{R(),i.clear()}}};var l2=r=>{let e=0,t=0,i=null,s=!1,o=!1,n=d=>{o||(o=!0,r?.("renderComplete",d))};return{reset:d=>{e>0&&i!==null&&!o&&r?.("renderComplete",{id:i,aborted:!0}),t++,e=0,i=d,s=!0,o=!1},track:d=>{d===t&&e++},complete:d=>{d!==t||e===0||(e--,e===0&&!s&&n({id:i,aborted:!1}))},getVersion:()=>t,completeIfEmpty:()=>{s=!1,e===0&&n({id:i,aborted:!1})}}};var c2=new Set(["update","transition"]),u2=new Set(["render","persistent"]),M4=new Set(["alpha","x","y","scaleX","scaleY","rotation"]),R4=new Set(["translateX","translateY","alpha","scaleX","scaleY","rotation"]),h2=new Set(["single","sequence","composite"]),Np=new Set(["red","green","blue","alpha"]),d2=new Set(["max","min","multiply","add"]),p2=new Set(ff),Nr=(r,e)=>{if(!r||typeof r!="object"||Array.isArray(r))throw new Error(`${e} must be an object.`)},po=(r,e)=>{if(typeof r!="string"||r.length===0)throw new Error(`${e} must be a non-empty string.`)},Pu=(r,e)=>{if(typeof r!="number"||Number.isNaN(r))throw new Error(`${e} must be a number.`)},I4=(r,e)=>{if(Nr(r,e),!u2.has(r.continuity))throw new Error(`${e}.continuity must be one of: ${Array.from(u2).join(", ")}.`);return{continuity:r.continuity}},B4=(r,e)=>{if(Nr(r,e),Pu(r.duration,`${e}.duration`),r.easing!==void 0&&typeof r.easing!="string")throw new Error(`${e}.easing must be a string.`);if(r.easing!==void 0&&!p2.has(r.easing))throw new Error(`${e}.easing must be one of: ${ff.join(", ")}.`);return{duration:r.duration,easing:r.easing??"linear"}},$b=(r,e)=>{Nr(r,e);let t={};if(r.initialValue!==void 0&&(Pu(r.initialValue,`${e}.initialValue`),t.initialValue=r.initialValue),!Array.isArray(r.keyframes)||r.keyframes.length===0)throw new Error(`${e}.keyframes must be a non-empty array.`);return t.keyframes=r.keyframes.map((i,s)=>{let o=`${e}.keyframes[${s}]`;if(Nr(i,o),Pu(i.value,`${o}.value`),Pu(i.duration,`${o}.duration`),i.easing!==void 0&&typeof i.easing!="string")throw new Error(`${o}.easing must be a string.`);if(i.easing!==void 0&&!p2.has(i.easing))throw new Error(`${o}.easing must be one of: ${ff.join(", ")}.`);if(i.relative!==void 0&&typeof i.relative!="boolean")throw new Error(`${o}.relative must be a boolean.`);return{value:i.value,duration:i.duration,easing:i.easing??"linear",...i.relative!==void 0?{relative:i.relative}:{}}}),t},k4=(r,e)=>{Nr(r,e);let t=r.keyframes!==void 0,i=r.auto!==void 0;if(t&&i)throw new Error(`${e} cannot define both keyframes and auto.`);if(!t&&!i)throw new Error(`${e} must define keyframes or auto.`);if(i){if(r.initialValue!==void 0)throw new Error(`${e}.initialValue is not valid when auto is defined.`);return{auto:B4(r.auto,`${e}.auto`)}}return $b(r,e)},m2=(r,e,t,i=$b)=>{Nr(r,e);let s=Object.entries(r).map(([o,n])=>{if(!t.has(o))throw new Error(`${e}.${o} is not a supported animation property.`);return[o,i(n,`${e}.${o}`)]});if(s.length===0)throw new Error(`${e} must define at least one property.`);return Object.fromEntries(s)},F4=(r,e)=>{if(Nr(r,e),po(r.texture,`${e}.texture`),r.channel!==void 0&&!Np.has(r.channel))throw new Error(`${e}.channel must be one of: ${Array.from(Np).join(", ")}.`);if(r.invert!==void 0&&typeof r.invert!="boolean")throw new Error(`${e}.invert must be a boolean.`);return{texture:r.texture,...r.channel?{channel:r.channel}:{},...r.invert!==void 0?{invert:r.invert}:{}}},O4=(r,e)=>{if(Nr(r,e),!h2.has(r.kind))throw new Error(`${e}.kind must be one of: ${Array.from(h2).join(", ")}.`);let t={kind:r.kind};if(r.channel!==void 0){if(!Np.has(r.channel))throw new Error(`${e}.channel must be one of: ${Array.from(Np).join(", ")}.`);t.channel=r.channel}if(r.softness!==void 0&&(Pu(r.softness,`${e}.softness`),t.softness=r.softness),r.invert!==void 0){if(typeof r.invert!="boolean")throw new Error(`${e}.invert must be a boolean.`);t.invert=r.invert}if(r.progress!==void 0&&(t.progress=$b(r.progress,`${e}.progress`)),r.kind==="single"&&(po(r.texture,`${e}.texture`),t.texture=r.texture),r.kind==="sequence"){if(!Array.isArray(r.textures)||r.textures.length===0)throw new Error(`${e}.textures must be a non-empty array.`);t.textures=r.textures.map((i,s)=>(po(i,`${e}.textures[${s}]`),i)),r.sample!==void 0&&(po(r.sample,`${e}.sample`),t.sample=r.sample)}if(r.kind==="composite"){if(!d2.has(r.combine??"max"))throw new Error(`${e}.combine must be one of: ${Array.from(d2).join(", ")}.`);if(!Array.isArray(r.items)||r.items.length===0)throw new Error(`${e}.items must be a non-empty array.`);t.combine=r.combine??"max",t.items=r.items.map((i,s)=>F4(i,`${e}.items[${s}]`))}return t.progress||(t.progress={initialValue:0,keyframes:[{duration:0,value:1,easing:"linear"}]}),t},f2=(r,e)=>{if(Nr(r,e),r.mask!==void 0)throw new Error(`${e}.mask is not valid. Define mask on ${e}.`);let t={};if(r.tween!==void 0&&(t.tween=m2(r.tween,`${e}.tween`,R4)),Object.keys(t).length===0)throw new Error(`${e} must define tween.`);return t},U4=(r,e)=>{let t={};if(r.shader!==void 0)throw new Error(`${e}.shader is not supported.`);if(r.prev!==void 0&&(t.prev=f2(r.prev,`${e}.prev`)),r.next!==void 0&&(t.next=f2(r.next,`${e}.next`)),r.mask!==void 0&&(t.mask=O4(r.mask,`${e}.mask`)),t.prev===void 0&&t.next===void 0&&t.mask===void 0)throw new Error(`${e} must define prev, next, or mask.`);return t},zb=(r,e,t)=>{if(r!==void 0)throw new Error(`${e} ${t}`)},g2=(r=[])=>{if(!Array.isArray(r))throw new Error("Input error: `animations` must be an array.");let e=r.map((i,s)=>{let o=`animations[${s}]`;if(Nr(i,o),po(i.id,`${o}.id`),po(i.targetId,`${o}.targetId`),po(i.type,`${o}.type`),!c2.has(i.type))throw new Error(`${o}.type must be one of: ${Array.from(c2).join(", ")}.`);let n={id:i.id,targetId:i.targetId,type:i.type};if(i.complete!==void 0&&(Nr(i.complete,`${o}.complete`),n.complete=i.complete),i.playback!==void 0&&(n.playback=I4(i.playback,`${o}.playback`)),zb(i.operation,`${o}.operation`,"is no longer supported. Use `type: update | transition` instead."),zb(i.properties,`${o}.properties`,"is no longer supported. Use `tween` instead."),zb(i.subjects,`${o}.subjects`,"is no longer supported. Use `prev` / `next` instead."),i.type==="update"){if(n.tween=m2(i.tween,`${o}.tween`,M4,k4),i.replace!==void 0)throw new Error(`${o}.replace is no longer supported. Define \`prev\`, \`next\`, or \`mask\` directly on the animation.`);if(i.prev!==void 0)throw new Error(`${o}.prev is only valid for transition animations.`);if(i.next!==void 0)throw new Error(`${o}.next is only valid for transition animations.`);if(i.mask!==void 0)throw new Error(`${o}.mask is only valid for transition animations.`);if(i.shader!==void 0)throw new Error(`${o}.shader is not supported.`);return n}if(i.tween!==void 0)throw new Error(`${o}.tween is not valid for transition animations.`);if(i.replace!==void 0)throw new Error(`${o}.replace is no longer supported. Define \`prev\`, \`next\`, or \`mask\` directly on the animation.`);let a=U4(i,o);return a.prev!==void 0&&(n.prev=a.prev),a.next!==void 0&&(n.next=a.next),a.mask!==void 0&&(n.mask=a.mask),n}),t=new Map;for(let i of e){let s=t.get(i.targetId)??new Set;s.add(i.type),t.set(i.targetId,s)}for(let[i,s]of t)if(s.has("transition")&&s.size>1)throw new Error(`Animations targeting "${i}" cannot mix update and transition types in the same state.`);return e};var Xb=(r={})=>{if(r===null||typeof r!="object")throw new Error("Input error: render state must be an object.");if(r.transitions!==void 0)throw new Error("Input error: `transitions` is no longer supported. Use `animations` instead.");let e={...r,elements:r.elements??[],animations:r.animations??[],audio:r.audio??[]};if(!Array.isArray(e.elements))throw new Error("Input error: `elements` must be an array.");if(!Array.isArray(e.animations))throw new Error("Input error: `animations` must be an array.");if(!Array.isArray(e.audio))throw new Error("Input error: `audio` must be an array.");return e.animations=g2(e.animations),e};var G4="0",ma=(r,e)=>{let t=r?.[e];return typeof t=="number"?t:0},dr=r=>({value:r.element.value??"",selectionStart:ma(r.element,"selectionStart"),selectionEnd:ma(r.element,"selectionEnd"),focused:document.activeElement===r.element,composing:r.composing===!0}),L4=(r,e)=>!r||!e?!1:r.value===e.value&&r.selectionStart===e.selectionStart&&r.selectionEnd===e.selectionEnd&&r.focused===e.focused&&r.composing===e.composing,D4=r=>r instanceof HTMLInputElement||r instanceof HTMLTextAreaElement,Mu=r=>{r.element.style.pointerEvents="none"},jb=(r,e,t)=>{if(typeof r?.setSelectionRange=="function")try{r.setSelectionRange(e,t)}catch{}},N4=({app:r,geometry:e})=>{let t=r.canvas;if(!e||!t||e.visible===!1)return null;let i=t.getBoundingClientRect(),s=r.renderer?.width||i.width||1,o=r.renderer?.height||i.height||1,n=i.width/s,a=i.height/o,l=e.clipInsets??{top:0,right:0,bottom:0,left:0},c=i.left+(e.x+l.left)*n,u=i.top+(e.y+l.top)*a,h=i.left+(e.x+e.width-l.right)*n,d=i.top+(e.y+e.height-l.bottom)*a;return h<=c||d<=u?null:{left:c,top:u,right:h,bottom:d}},H4=({app:r,entry:e,event:t})=>{let i=e.options.getGeometry?.(),s=N4({app:r,geometry:i}),o=t.clientX,n=t.clientY;return!!s&&Number.isFinite(o)&&Number.isFinite(n)&&o>=s.left&&o<=s.right&&n>=s.top&&n<=s.bottom},x2=({app:r})=>{let e=new Map,t,i=null,s=()=>{t||(t=document.createElement("div"),t.dataset.routeGraphicsInputBridge="true",t.style.position="fixed",t.style.left="0",t.style.top="0",t.style.pointerEvents="none",t.style.zIndex="1000",t.style.width="0",t.style.height="0");let x=r.canvas?.parentNode??document.body;t.isConnected||x.appendChild(t)},o=(x,T=x.lastSnapshot)=>{let b=dr(x);b.focused&&i!==x.id?i=x.id:!b.focused&&i===x.id&&(i=null),Mu(x,i),T?.value!==b.value&&x.callbacks.onValueChange?.(b),(T?.selectionStart!==b.selectionStart||T?.selectionEnd!==b.selectionEnd||T?.focused!==b.focused||T?.composing!==b.composing)&&x.callbacks.onSelectionChange?.(b),x.lastSnapshot=b},n=x=>{let{disabled:T=!1,multiline:b=!1,maxLength:w,textStyle:E,padding:R,placeholder:I="",autocomplete:C="off",autocapitalize:A="off",spellcheck:M=!1}=x.options,{element:P}=x;P instanceof HTMLInputElement&&(P.type="text"),P.disabled=T,P.placeholder=I,P.autocomplete=C,P.autocapitalize=A,P.spellcheck=!!M,P.style.opacity=G4,P.style.color="transparent",P.style.caretColor="transparent",P.style.background="transparent",P.style.paddingTop=`${R.top}px`,P.style.paddingRight=`${R.right}px`,P.style.paddingBottom=`${R.bottom}px`,P.style.paddingLeft=`${R.left}px`,P.style.fontFamily=E?.fontFamily??"Arial",P.style.fontSize=`${E?.fontSize??16}px`,P.style.fontWeight=E?.fontWeight??"400",P.style.textAlign=E?.align??"left",P.style.lineHeight=typeof E?.lineHeight=="number"?`${E.lineHeight}px`:"normal",P.style.whiteSpace=b?"pre":"nowrap",P.style.overflowWrap="normal",P.style.resize="none",P.style.overflow="hidden",typeof w=="number"?P.maxLength=w:P.removeAttribute("maxLength"),P.tabIndex=-1,b&&P instanceof HTMLTextAreaElement&&(P.wrap="off",P.rows=1),Mu(x,i)},a=x=>{s();let T=r.canvas,b=x.options.getGeometry?.();if(!T||!b||b.visible===!1){x.element.style.display="none";return}let w=T.getBoundingClientRect(),E=r.renderer?.width||w.width||1,R=r.renderer?.height||w.height||1,I=w.width/E,C=w.height/R,A=b.clipInsets??{top:0,right:0,bottom:0,left:0},M={top:A.top*C,right:A.right*I,bottom:A.bottom*C,left:A.left*I};x.element.style.display="block",x.element.style.left=`${w.left+b.x*I}px`,x.element.style.top=`${w.top+b.y*C}px`,x.element.style.width=`${b.width*I}px`,x.element.style.height=`${b.height*C}px`;let P=Object.values(M).some(O=>O>0);x.element.style.clipPath=P?`inset(${M.top}px ${M.right}px ${M.bottom}px ${M.left}px)`:"none"},l=x=>{if(!i)return;let T=e.get(i),b=x.target;!T||b===T.element||T.element.contains(b)||D4(b)&&t?.contains(b)||H4({app:r,entry:T,event:x})||T.element.blur()},c=()=>{for(let x of e.values()){if(a(x),!x.lastSnapshot){x.lastSnapshot=dr(x);continue}let T=dr(x);L4(T,x.lastSnapshot)||o(x,x.lastSnapshot)}},u=({id:x,options:T})=>{let b=T.multiline===!0?document.createElement("textarea"):document.createElement("input");return b.dataset.routeGraphicsInputId=x,b.style.position="fixed",b.style.border="none",b.style.outline="none",b.style.margin="0",b.style.boxSizing="border-box",b.style.borderRadius="0",b.style.transformOrigin="top left",b.style.appearance="none",b.style.boxShadow="none",b.style.userSelect="none",b.style.webkitUserSelect="none",b},h=x=>{let{id:T,element:b}=x,w=()=>{o(x)};b.addEventListener("focus",()=>{x.pendingBlurTimer&&(clearTimeout(x.pendingBlurTimer),x.pendingBlurTimer=null),i=T,Mu(x,i);let E=dr(x);x.lastSnapshot=E,x.callbacks.onFocus?.(E),x.callbacks.onSelectionChange?.(E)}),b.addEventListener("blur",()=>{i===T&&(i=null),Mu(x,i),x.pendingBlurTimer=setTimeout(()=>{x.pendingBlurTimer=null;let E=dr(x);if(E.focused){x.lastSnapshot=E;return}x.lastSnapshot=E,x.callbacks.onBlur?.(E),x.callbacks.onSelectionChange?.(E)},0)}),b.addEventListener("input",w),b.addEventListener("select",w),b.addEventListener("click",()=>queueMicrotask(w)),b.addEventListener("keyup",()=>queueMicrotask(w)),b.addEventListener("keydown",E=>{let R=E.key==="Enter"&&x.options.multiline!==!0&&!E.shiftKey,I=E.key==="Enter"&&x.options.multiline===!0&&(E.ctrlKey||E.metaKey);(R||I)&&(E.preventDefault(),x.callbacks.onSubmit?.(dr(x),E)),E.key==="Escape"&&b.blur(),queueMicrotask(w)}),b.addEventListener("compositionstart",()=>{x.composing=!0;let E=dr(x);x.lastSnapshot=E,x.callbacks.onCompositionStart?.(E),x.callbacks.onSelectionChange?.(E)}),b.addEventListener("compositionupdate",()=>{let E=dr(x);x.lastSnapshot=E,x.callbacks.onCompositionUpdate?.(E),x.callbacks.onSelectionChange?.(E)}),b.addEventListener("compositionend",()=>{x.composing=!1,w(),x.callbacks.onCompositionEnd?.(dr(x))})};document.addEventListener("pointerdown",l,!0),r.ticker?.add?.(c);let d=(x,T)=>{s();let b=e.get(x);if(b)return b.options=T,b.callbacks=T.callbacks??{},n(b),a(b),typeof T.value=="string"&&b.element.value!==T.value&&(b.element.value=T.value),b.lastSnapshot=dr(b),b.element;let w={id:x,element:u({id:x,options:T}),options:T,callbacks:T.callbacks??{},composing:!1,pendingBlurTimer:null,lastSnapshot:null};return h(w),typeof T.value=="string"&&(w.element.value=T.value),n(w),t.appendChild(w.element),e.set(x,w),a(w),w.lastSnapshot=dr(w),w.element};return{mount:d,update:(x,T)=>{let b=e.get(x);if(!b)return d(x,T);let w=T.multiline===!0!=b.element instanceof HTMLTextAreaElement;if(b.options=T,b.callbacks=T.callbacks??{},w){let E=b.element,R=document.activeElement===E,I=ma(E,"selectionStart"),C=ma(E,"selectionEnd");return b.element=u({id:x,options:T}),h(b),E.replaceWith(b.element),b.element.value=typeof T.value=="string"?T.value:E.value,n(b),a(b),b.lastSnapshot=dr(b),R&&!T.disabled&&queueMicrotask(()=>{b.element.focus(),jb(b.element,I,C)}),b.element}return typeof T.value=="string"&&T.value!==b.element.value&&b.composing!==!0&&(b.element.value=T.value),n(b),a(b),b.lastSnapshot=dr(b),b.element},focus:(x,{selectAll:T=!1,selectionStart:b,selectionEnd:w}={})=>{let E=e.get(x);if(!E||E.element.disabled)return;let R=document.activeElement===E.element;if(i=x,Mu(E,i),R||E.element.focus(),T){E.element.select?.(),o(E,E.lastSnapshot);return}if(typeof b=="number"||typeof w=="number"){let I=typeof b=="number"?b:ma(E.element,"selectionStart"),C=typeof w=="number"?w:typeof b=="number"?b:ma(E.element,"selectionEnd");jb(E.element,I,C)}o(E,E.lastSnapshot)},setSelection:(x,T,b=T,{focus:w=!1}={})=>{let E=e.get(x);if(!E||E.element.disabled)return;let R=()=>{jb(E.element,T,b),o(E,E.lastSnapshot)};if(w&&document.activeElement!==E.element){E.element.focus(),R();return}R()},blur:x=>{e.get(x)?.element.blur()},unmount:x=>{let T=e.get(x);T&&(i===x&&(i=null),T.pendingBlurTimer&&(clearTimeout(T.pendingBlurTimer),T.pendingBlurTimer=null),T.element.remove(),e.delete(x),e.size===0&&t?.remove())},destroy:()=>{document.removeEventListener("pointerdown",l,!0),r.ticker?.remove?.(c);for(let x of e.values())x.pendingBlurTimer&&(clearTimeout(x.pendingBlurTimer),x.pendingBlurTimer=null),x.element.remove();e.clear(),i=null,t?.remove(),t=void 0}}};var V4=()=>{let r=A=>{if(A!=="auto"&&A!=="manual")throw new Error(`Invalid animation playback mode "${A}". Expected "auto" or "manual".`)},e,t=HF(),i={elements:[],animations:[],audio:[]},s,o={animations:[],elements:[],audio:[],parsers:[]},n,a,l,c,u=!1,h,d,f,p="auto",m=null,g=[],y,v=new Map,x,T=(A,M,P,O)=>{A.clear(),A.rect(0,0,M,P),A.fill(O??0)},b=A=>A?A.startsWith("audio/")?"audio":A.startsWith("font/")||["application/font-woff","application/font-woff2","application/x-font-ttf","application/x-font-otf"].includes(A)?"font":A.startsWith("video/")?"video":"texture":"texture",w=(A,M,{revokable:P=!1}={})=>{v.set(A,{url:M,revokable:P})},E=()=>{for(let A of v.values())A?.revokable===!0&&typeof A?.url=="string"&&URL.revokeObjectURL(A.url);v.clear()},R=(A,M,P)=>{n&&n.registerHotkeys(P?.keyboard??{}),A.renderer.events.cursorStyles||(A.renderer.events.cursorStyles={}),A.renderer.events.cursorStyles.default||(A.renderer.events.cursorStyles.default="default"),A.renderer.events.cursorStyles.hover||(A.renderer.events.cursorStyles.hover="pointer");let O=M?.cursorStyles,H=P?.cursorStyles;me(O,H)||(H?(H.default&&(A.renderer.events.cursorStyles.default=H.default,A.canvas.style.cursor=H.default),H.hover&&(A.renderer.events.cursorStyles.hover=H.hover)):O&&(A.renderer.events.cursorStyles.default="default",A.renderer.events.cursorStyles.hover="pointer"))},I=(A,M,P,O)=>{if(me(i,P)){typeof A.render=="function"&&A.render();return}let H=RM({prevState:i,nextState:P,activeAnimations:a.getContinuableAnimations()});h&&h.abort(),h=new AbortController;let U=h.signal;l.reset(P.id),R(A,i.global,P.global),a.cancelAllExcept(H.continuedAnimationIds),Ws({app:A,parent:M,prevComputedTree:i.elements,nextComputedTree:P.elements,animations:P.animations,elementPlugins:o.elements,animationBus:a,completionTracker:l,eventHandler:O,signal:U}),a.flush(),p==="manual"&&m!==null&&a.setTime(m),__({app:A,prevAudioTree:i.audio,nextAudioTree:P.audio,audioPlugins:o.audio}),i=P,typeof A.render=="function"&&A.render(),l.completeIfEmpty(),u||(u=!0,c&&c())},C={rendererName:"pixi",get canvas(){return e.canvas},findElementByLabel:A=>e.stage.getChildByLabel(A,!0)??null,extractBase64:async A=>{typeof e.render=="function"&&e.render();let M=new re(0,0,e.renderer.width,e.renderer.height);if(!A)return await e.renderer.extract.base64({target:e.stage,frame:M});let P=e.stage.getChildByLabel(A,!0);if(!P)throw new Error(`Element with label '${A}' not found`);return await e.renderer.extract.base64({target:P,frame:M})},assignStageEvent:(A,M)=>{e.stage.eventMode="static",e.stage.on(A,M)},setAnimationPlaybackMode:A=>{r(A),p=A,p!=="manual"&&(m=null,a?.clearTime?.())},setAnimationTime:A=>{let M=Number(A);if(!Number.isFinite(M))throw new Error("Animation time must be a finite number.");p==="manual"&&(m=M),a.flush(),a.setTime(M),p!=="manual"&&(m=null,a.clearTime()),typeof e.render=="function"&&e.render()},init:async A=>{let{eventHandler:M,plugins:P,width:O,height:H,backgroundColor:U,debug:V=!1,onFirstRender:N,animationPlaybackMode:G="auto"}=A;c=N,r(G),p=G,m=null,g.forEach(J=>J()),g=[];let q=[];P?.elements?.forEach(J=>{J?.parse&&q.push(VF({type:J.type,parse:J.parse}))}),o={animations:P?.animations??[],elements:P?.elements??[],audio:P?.audio??[],parsers:q},s=M,n=s2(M),l=l2(M),e=new lc,e.audioStage=t,await e.init({width:O,height:H,backgroundColor:U,preference:"webgl",preserveDrawingBuffer:V===!0}),typeof e.ticker?.remove=="function"&&e.ticker.remove(e.render,e),e.debug=V,e.inputDomBridge=x2({app:e}),y=J=>{J.preventDefault()},e.canvas.addEventListener("contextmenu",y),x=new De,x.label="__route_graphics_background__",T(x,O,H,U),e.stage.addChild(x),e.stage.width=O,e.stage.height=H,e.ticker.add(e.audioStage.tick),a=a2();let fe=()=>{p==="manual"&&typeof e.render=="function"&&e.render()};return g=[a.on("started",fe),a.on("completed",fe),a.on("cancelled",fe)],V?(d=J=>{p==="auto"&&J?.detail?.deltaMS&&(a.tick(Number(J.detail.deltaMS)),typeof e.render=="function"&&e.render())},window.addEventListener("snapShotKeyFrame",d)):(f=J=>{p==="auto"&&(a.tick(J.deltaMS),typeof e.render=="function"&&e.render())},e.ticker.add(f)),C},destroy:()=>{h&&(h.abort(),h=void 0),d&&(window.removeEventListener("snapShotKeyFrame",d),d=void 0),f&&typeof e?.ticker?.remove=="function"&&(e.ticker.remove(f),f=void 0),y&&e?.canvas&&(e.canvas.removeEventListener("contextmenu",y),y=void 0),e?.inputDomBridge?.destroy?.(),n?.destroy(),u_(),g.forEach(M=>M()),g=[],a&&a.destroy(),e?.audioStage&&e.audioStage.destroy();let A=M=>{for(let P of M.children){let O=P.texture?.source?.resource;O instanceof HTMLVideoElement&&O.pause(),P.children&&A(P)}};e?.stage&&A(e.stage),e&&e.destroy(),p="auto",m=null,x=void 0,E()},loadAssets:async A=>{if(!A)throw new Error("assetBufferMap is required");let M={audio:{},font:{},video:{},texture:{}};for(let[H,U]of Object.entries(A)){let V=b(U.type);M[V][H]=U}await Promise.all(Object.entries(M.audio).map(([H,U])=>_n.load(H,U.buffer))),await Promise.all(Object.entries(M.font).map(async([H,U])=>{let V=new Blob([U.buffer],{type:U.type}),N=URL.createObjectURL(V),G=new FontFace(H,`url(${N})`);try{await G.load(),document.fonts.add(G)}catch(q){console.error(`Failed to load font ${H}:`,q)}finally{URL.revokeObjectURL(N)}}));let P=Object.entries(M.texture).map(async([H,U])=>{if(vr.cache.has(H))return vr.cache.get(H);if(U?.source==="url"&&typeof U?.url=="string")return vr.load({alias:H,src:U.url,parser:"loadTextures"});let V=new Blob([U.buffer],{type:U.type}),N=await createImageBitmap(V),G=k.from(N);return vr.cache.set(H,G),G}),O=Object.entries(M.video).map(async([H,U])=>{let V=U?.source==="url"&&typeof U?.url=="string"?U.url:URL.createObjectURL(new Blob([U.buffer],{type:U.type})),N=U?.source!=="url";w(H,V,{revokable:N});let G={alias:H,src:V,parser:"loadVideo",data:{}};return typeof U?.type=="string"&&U.type.length>0&&(G.data.mime=U.type),vr.load(G).then(q=>q).catch(q=>{throw v.delete(H),N&&URL.revokeObjectURL(V),q})});return Promise.all([...P,...O])},loadAudioAssets:async A=>Promise.all(A.map(async M=>{let O=await(await fetch(M)).arrayBuffer();return _n.load(M,O)})),updatedBackgroundColor:A=>{e.renderer.background.color=A,x&&T(x,e.renderer.width,e.renderer.height,A),typeof e.render=="function"&&e.render()},render:A=>{let M=Xb(A),P=Lb({JSONObject:M.elements,parserPlugins:o.parsers}),O={...M,elements:P};I(e,e.stage,O,s)},parse:A=>{let M=Xb(A),P=Lb({JSONObject:M.elements,parserPlugins:o.parsers});return{...M,elements:P}}};return C},y2=V4;var EBe=y2;export{lc as Application,vr as Assets,_n as AudioAsset,jD as animatedSpritePlugin,GD as containerPlugin,My as createAnimationPlugin,A2 as createAssetBufferManager,Ry as createAudioPlugin,rt as createElementPlugin,EBe as default,JL as inputPlugin,UN as particlesPlugin,TL as rectPlugin,__ as renderAudio,Ws as renderElements,NL as sliderPlugin,KD as soundPlugin,SL as spritePlugin,lI as spritesheetAnimationPlugin,_L as textPlugin,WD as textRevealingPlugin,YD as tweenPlugin,EL as videoPlugin};
|
|
1901
|
+
`))}}var YV=0,Bp={textureCount:0,uboCount:0},ds=class{constructor(e){this.destroyed=!1,this.renderer=e,this.systemCheck(),this.gl=null,this.shader=null,this.program=null,this.cache={},this._uboCache={},this.id=YV++}systemCheck(){if(!Cp())throw new Error("Current environment does not allow unsafe-eval, please use @pixi/unsafe-eval module to enable support.")}contextChange(e){this.gl=e,this.reset()}bind(e,t){e.disposeRunner.add(this),e.uniforms.globals=this.renderer.globalUniforms;let i=e.program,s=i.glPrograms[this.renderer.CONTEXT_UID]||this.generateProgram(e);return this.shader=e,this.program!==i&&(this.program=i,this.gl.useProgram(s.program)),t||(Bp.textureCount=0,Bp.uboCount=0,this.syncUniformGroup(e.uniformGroup,Bp)),s}setUniforms(e){let t=this.shader.program,i=t.glPrograms[this.renderer.CONTEXT_UID];t.syncUniforms(i.uniformData,e,this.renderer)}syncUniformGroup(e,t){let i=this.getGlProgram();(!e.static||e.dirtyId!==i.uniformDirtyGroups[e.id])&&(i.uniformDirtyGroups[e.id]=e.dirtyId,this.syncUniforms(e,i,t))}syncUniforms(e,t,i){(e.syncUniforms[this.shader.program.id]||this.createSyncGroups(e))(t.uniformData,e.uniforms,this.renderer,i)}createSyncGroups(e){let t=this.getSignature(e,this.shader.program.uniformData,"u");return this.cache[t]||(this.cache[t]=_b(e,this.shader.program.uniformData)),e.syncUniforms[this.shader.program.id]=this.cache[t],e.syncUniforms[this.shader.program.id]}syncUniformBufferGroup(e,t){let i=this.getGlProgram();if(!e.static||e.dirtyId!==0||!i.uniformGroups[e.id]){e.dirtyId=0;let s=i.uniformGroups[e.id]||this.createSyncBufferGroup(e,i,t);e.buffer.update(),s(i.uniformData,e.uniforms,this.renderer,Bp,e.buffer)}this.renderer.buffer.bindBufferBase(e.buffer,i.uniformBufferBindings[t])}createSyncBufferGroup(e,t,i){let{gl:s}=this.renderer;this.renderer.buffer.bind(e.buffer);let o=this.gl.getUniformBlockIndex(t.program,i);t.uniformBufferBindings[i]=this.shader.uniformBindCount,s.uniformBlockBinding(t.program,o,this.shader.uniformBindCount),this.shader.uniformBindCount++;let n=this.getSignature(e,this.shader.program.uniformData,"ubo"),a=this._uboCache[n];if(a||(a=this._uboCache[n]=Pb(e,this.shader.program.uniformData)),e.autoManage){let l=new Float32Array(a.size/4);e.buffer.update(l)}return t.uniformGroups[e.id]=a.syncFunc,t.uniformGroups[e.id]}getSignature(e,t,i){let s=e.uniforms,o=[`${i}-`];for(let n in s)o.push(n),t[n]&&o.push(t[n].type);return o.join("-")}getGlProgram(){return this.shader?this.shader.program.glPrograms[this.renderer.CONTEXT_UID]:null}generateProgram(e){let t=this.gl,i=e.program,s=Cb(t,i);return i.glPrograms[this.renderer.CONTEXT_UID]=s,s}reset(){this.program=null,this.shader=null}disposeShader(e){this.shader===e&&(this.shader=null)}destroy(){this.renderer=null,this.destroyed=!0}};ds.extension={type:Y.RendererSystem,name:"shader"};te.add(ds);var ki=class{constructor(e){this.renderer=e}run(e){let{renderer:t}=this;t.runners.init.emit(t.options),e.hello&&console.log(`PixiJS 7.4.3 - ${t.rendererLogId} - https://pixijs.com`),t.resize(t.screen.width,t.screen.height)}destroy(){}};ki.defaultOptions={hello:!1},ki.extension={type:[Y.RendererSystem,Y.CanvasRendererSystem],name:"startup"};te.add(ki);function FF(r,e=[]){return e[oe.NORMAL]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[oe.ADD]=[r.ONE,r.ONE],e[oe.MULTIPLY]=[r.DST_COLOR,r.ONE_MINUS_SRC_ALPHA,r.ONE,r.ONE_MINUS_SRC_ALPHA],e[oe.SCREEN]=[r.ONE,r.ONE_MINUS_SRC_COLOR,r.ONE,r.ONE_MINUS_SRC_ALPHA],e[oe.OVERLAY]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[oe.DARKEN]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[oe.LIGHTEN]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[oe.COLOR_DODGE]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[oe.COLOR_BURN]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[oe.HARD_LIGHT]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[oe.SOFT_LIGHT]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[oe.DIFFERENCE]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[oe.EXCLUSION]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[oe.HUE]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[oe.SATURATION]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[oe.COLOR]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[oe.LUMINOSITY]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[oe.NONE]=[0,0],e[oe.NORMAL_NPM]=[r.SRC_ALPHA,r.ONE_MINUS_SRC_ALPHA,r.ONE,r.ONE_MINUS_SRC_ALPHA],e[oe.ADD_NPM]=[r.SRC_ALPHA,r.ONE,r.ONE,r.ONE],e[oe.SCREEN_NPM]=[r.SRC_ALPHA,r.ONE_MINUS_SRC_COLOR,r.ONE,r.ONE_MINUS_SRC_ALPHA],e[oe.SRC_IN]=[r.DST_ALPHA,r.ZERO],e[oe.SRC_OUT]=[r.ONE_MINUS_DST_ALPHA,r.ZERO],e[oe.SRC_ATOP]=[r.DST_ALPHA,r.ONE_MINUS_SRC_ALPHA],e[oe.DST_OVER]=[r.ONE_MINUS_DST_ALPHA,r.ONE],e[oe.DST_IN]=[r.ZERO,r.SRC_ALPHA],e[oe.DST_OUT]=[r.ZERO,r.ONE_MINUS_SRC_ALPHA],e[oe.DST_ATOP]=[r.ONE_MINUS_DST_ALPHA,r.SRC_ALPHA],e[oe.XOR]=[r.ONE_MINUS_DST_ALPHA,r.ONE_MINUS_SRC_ALPHA],e[oe.SUBTRACT]=[r.ONE,r.ONE,r.ONE,r.ONE,r.FUNC_REVERSE_SUBTRACT,r.FUNC_ADD],e}var qV=0,KV=1,ZV=2,QV=3,JV=4,e4=5,OF=class Mb{constructor(){this.gl=null,this.stateId=0,this.polygonOffset=0,this.blendMode=oe.NONE,this._blendEq=!1,this.map=[],this.map[qV]=this.setBlend,this.map[KV]=this.setOffset,this.map[ZV]=this.setCullFace,this.map[QV]=this.setDepthTest,this.map[JV]=this.setFrontFace,this.map[e4]=this.setDepthMask,this.checks=[],this.defaultState=new ai,this.defaultState.blend=!0}contextChange(e){this.gl=e,this.blendModes=FF(e),this.set(this.defaultState),this.reset()}set(e){if(e=e||this.defaultState,this.stateId!==e.data){let t=this.stateId^e.data,i=0;for(;t;)t&1&&this.map[i].call(this,!!(e.data&1<<i)),t=t>>1,i++;this.stateId=e.data}for(let t=0;t<this.checks.length;t++)this.checks[t](this,e)}forceState(e){e=e||this.defaultState;for(let t=0;t<this.map.length;t++)this.map[t].call(this,!!(e.data&1<<t));for(let t=0;t<this.checks.length;t++)this.checks[t](this,e);this.stateId=e.data}setBlend(e){this.updateCheck(Mb.checkBlendMode,e),this.gl[e?"enable":"disable"](this.gl.BLEND)}setOffset(e){this.updateCheck(Mb.checkPolygonOffset,e),this.gl[e?"enable":"disable"](this.gl.POLYGON_OFFSET_FILL)}setDepthTest(e){this.gl[e?"enable":"disable"](this.gl.DEPTH_TEST)}setDepthMask(e){this.gl.depthMask(e)}setCullFace(e){this.gl[e?"enable":"disable"](this.gl.CULL_FACE)}setFrontFace(e){this.gl.frontFace(this.gl[e?"CW":"CCW"])}setBlendMode(e){if(e===this.blendMode)return;this.blendMode=e;let t=this.blendModes[e],i=this.gl;t.length===2?i.blendFunc(t[0],t[1]):i.blendFuncSeparate(t[0],t[1],t[2],t[3]),t.length===6?(this._blendEq=!0,i.blendEquationSeparate(t[4],t[5])):this._blendEq&&(this._blendEq=!1,i.blendEquationSeparate(i.FUNC_ADD,i.FUNC_ADD))}setPolygonOffset(e,t){this.gl.polygonOffset(e,t)}reset(){this.gl.pixelStorei(this.gl.UNPACK_FLIP_Y_WEBGL,!1),this.forceState(this.defaultState),this._blendEq=!0,this.blendMode=-1,this.setBlendMode(0)}updateCheck(e,t){let i=this.checks.indexOf(e);t&&i===-1?this.checks.push(e):!t&&i!==-1&&this.checks.splice(i,1)}static checkBlendMode(e,t){e.setBlendMode(t.blendMode)}static checkPolygonOffset(e,t){e.setPolygonOffset(1,t.polygonOffset)}destroy(){this.gl=null}};OF.extension={type:Y.RendererSystem,name:"state"};var Rb=OF;te.add(Rb);var ua=class extends Qs.default{constructor(){super(...arguments),this.runners={},this._systemsHash={}}setup(e){this.addRunners(...e.runners);let t=(e.priority??[]).filter(s=>e.systems[s]),i=[...t,...Object.keys(e.systems).filter(s=>!t.includes(s))];for(let s of i)this.addSystem(e.systems[s],s)}addRunners(...e){e.forEach(t=>{this.runners[t]=new st(t)})}addSystem(e,t){let i=new e(this);if(this[t])throw new Error(`Whoops! The name "${t}" is already in use`);this[t]=i,this._systemsHash[t]=i;for(let s in this.runners)this.runners[s].add(i);return this}emitWithCustomOptions(e,t){let i=Object.keys(this._systemsHash);e.items.forEach(s=>{let o=i.find(n=>this._systemsHash[n]===s);s[e.name](t[o])})}destroy(){Object.values(this.runners).forEach(e=>{e.destroy()}),this._systemsHash={}}};var fu=class kp{constructor(e){this.renderer=e,this.count=0,this.checkCount=0,this.maxIdle=kp.defaultMaxIdle,this.checkCountMax=kp.defaultCheckCountMax,this.mode=kp.defaultMode}postrender(){this.renderer.objectRenderer.renderingToScreen&&(this.count++,this.mode!==Xf.MANUAL&&(this.checkCount++,this.checkCount>this.checkCountMax&&(this.checkCount=0,this.run())))}run(){let e=this.renderer.texture,t=e.managedTextures,i=!1;for(let s=0;s<t.length;s++){let o=t[s];o.resource&&this.count-o.touched>this.maxIdle&&(e.destroyTexture(o,!0),t[s]=null,i=!0)}if(i){let s=0;for(let o=0;o<t.length;o++)t[o]!==null&&(t[s++]=t[o]);t.length=s}}unload(e){let t=this.renderer.texture,i=e._texture;i&&!i.framebuffer&&t.destroyTexture(i);for(let s=e.children.length-1;s>=0;s--)this.unload(e.children[s])}destroy(){this.renderer=null}};fu.defaultMode=Xf.AUTO,fu.defaultMaxIdle=60*60,fu.defaultCheckCountMax=60*10,fu.extension={type:Y.RendererSystem,name:"textureGC"};var ui=fu;te.add(ui);var ho=class{constructor(e){this.texture=e,this.width=-1,this.height=-1,this.dirtyId=-1,this.dirtyStyleId=-1,this.mipmap=!1,this.wrapMode=33071,this.type=ue.UNSIGNED_BYTE,this.internalFormat=W.RGBA,this.samplerType=0}};function UF(r){let e;return"WebGL2RenderingContext"in globalThis&&r instanceof globalThis.WebGL2RenderingContext?e={[r.RGB]:X.FLOAT,[r.RGBA]:X.FLOAT,[r.ALPHA]:X.FLOAT,[r.LUMINANCE]:X.FLOAT,[r.LUMINANCE_ALPHA]:X.FLOAT,[r.R8]:X.FLOAT,[r.R8_SNORM]:X.FLOAT,[r.RG8]:X.FLOAT,[r.RG8_SNORM]:X.FLOAT,[r.RGB8]:X.FLOAT,[r.RGB8_SNORM]:X.FLOAT,[r.RGB565]:X.FLOAT,[r.RGBA4]:X.FLOAT,[r.RGB5_A1]:X.FLOAT,[r.RGBA8]:X.FLOAT,[r.RGBA8_SNORM]:X.FLOAT,[r.RGB10_A2]:X.FLOAT,[r.RGB10_A2UI]:X.FLOAT,[r.SRGB8]:X.FLOAT,[r.SRGB8_ALPHA8]:X.FLOAT,[r.R16F]:X.FLOAT,[r.RG16F]:X.FLOAT,[r.RGB16F]:X.FLOAT,[r.RGBA16F]:X.FLOAT,[r.R32F]:X.FLOAT,[r.RG32F]:X.FLOAT,[r.RGB32F]:X.FLOAT,[r.RGBA32F]:X.FLOAT,[r.R11F_G11F_B10F]:X.FLOAT,[r.RGB9_E5]:X.FLOAT,[r.R8I]:X.INT,[r.R8UI]:X.UINT,[r.R16I]:X.INT,[r.R16UI]:X.UINT,[r.R32I]:X.INT,[r.R32UI]:X.UINT,[r.RG8I]:X.INT,[r.RG8UI]:X.UINT,[r.RG16I]:X.INT,[r.RG16UI]:X.UINT,[r.RG32I]:X.INT,[r.RG32UI]:X.UINT,[r.RGB8I]:X.INT,[r.RGB8UI]:X.UINT,[r.RGB16I]:X.INT,[r.RGB16UI]:X.UINT,[r.RGB32I]:X.INT,[r.RGB32UI]:X.UINT,[r.RGBA8I]:X.INT,[r.RGBA8UI]:X.UINT,[r.RGBA16I]:X.INT,[r.RGBA16UI]:X.UINT,[r.RGBA32I]:X.INT,[r.RGBA32UI]:X.UINT,[r.DEPTH_COMPONENT16]:X.FLOAT,[r.DEPTH_COMPONENT24]:X.FLOAT,[r.DEPTH_COMPONENT32F]:X.FLOAT,[r.DEPTH_STENCIL]:X.FLOAT,[r.DEPTH24_STENCIL8]:X.FLOAT,[r.DEPTH32F_STENCIL8]:X.FLOAT}:e={[r.RGB]:X.FLOAT,[r.RGBA]:X.FLOAT,[r.ALPHA]:X.FLOAT,[r.LUMINANCE]:X.FLOAT,[r.LUMINANCE_ALPHA]:X.FLOAT,[r.DEPTH_STENCIL]:X.FLOAT},e}function GF(r){let e;return"WebGL2RenderingContext"in globalThis&&r instanceof globalThis.WebGL2RenderingContext?e={[ue.UNSIGNED_BYTE]:{[W.RGBA]:r.RGBA8,[W.RGB]:r.RGB8,[W.RG]:r.RG8,[W.RED]:r.R8,[W.RGBA_INTEGER]:r.RGBA8UI,[W.RGB_INTEGER]:r.RGB8UI,[W.RG_INTEGER]:r.RG8UI,[W.RED_INTEGER]:r.R8UI,[W.ALPHA]:r.ALPHA,[W.LUMINANCE]:r.LUMINANCE,[W.LUMINANCE_ALPHA]:r.LUMINANCE_ALPHA},[ue.BYTE]:{[W.RGBA]:r.RGBA8_SNORM,[W.RGB]:r.RGB8_SNORM,[W.RG]:r.RG8_SNORM,[W.RED]:r.R8_SNORM,[W.RGBA_INTEGER]:r.RGBA8I,[W.RGB_INTEGER]:r.RGB8I,[W.RG_INTEGER]:r.RG8I,[W.RED_INTEGER]:r.R8I},[ue.UNSIGNED_SHORT]:{[W.RGBA_INTEGER]:r.RGBA16UI,[W.RGB_INTEGER]:r.RGB16UI,[W.RG_INTEGER]:r.RG16UI,[W.RED_INTEGER]:r.R16UI,[W.DEPTH_COMPONENT]:r.DEPTH_COMPONENT16},[ue.SHORT]:{[W.RGBA_INTEGER]:r.RGBA16I,[W.RGB_INTEGER]:r.RGB16I,[W.RG_INTEGER]:r.RG16I,[W.RED_INTEGER]:r.R16I},[ue.UNSIGNED_INT]:{[W.RGBA_INTEGER]:r.RGBA32UI,[W.RGB_INTEGER]:r.RGB32UI,[W.RG_INTEGER]:r.RG32UI,[W.RED_INTEGER]:r.R32UI,[W.DEPTH_COMPONENT]:r.DEPTH_COMPONENT24},[ue.INT]:{[W.RGBA_INTEGER]:r.RGBA32I,[W.RGB_INTEGER]:r.RGB32I,[W.RG_INTEGER]:r.RG32I,[W.RED_INTEGER]:r.R32I},[ue.FLOAT]:{[W.RGBA]:r.RGBA32F,[W.RGB]:r.RGB32F,[W.RG]:r.RG32F,[W.RED]:r.R32F,[W.DEPTH_COMPONENT]:r.DEPTH_COMPONENT32F},[ue.HALF_FLOAT]:{[W.RGBA]:r.RGBA16F,[W.RGB]:r.RGB16F,[W.RG]:r.RG16F,[W.RED]:r.R16F},[ue.UNSIGNED_SHORT_5_6_5]:{[W.RGB]:r.RGB565},[ue.UNSIGNED_SHORT_4_4_4_4]:{[W.RGBA]:r.RGBA4},[ue.UNSIGNED_SHORT_5_5_5_1]:{[W.RGBA]:r.RGB5_A1},[ue.UNSIGNED_INT_2_10_10_10_REV]:{[W.RGBA]:r.RGB10_A2,[W.RGBA_INTEGER]:r.RGB10_A2UI},[ue.UNSIGNED_INT_10F_11F_11F_REV]:{[W.RGB]:r.R11F_G11F_B10F},[ue.UNSIGNED_INT_5_9_9_9_REV]:{[W.RGB]:r.RGB9_E5},[ue.UNSIGNED_INT_24_8]:{[W.DEPTH_STENCIL]:r.DEPTH24_STENCIL8},[ue.FLOAT_32_UNSIGNED_INT_24_8_REV]:{[W.DEPTH_STENCIL]:r.DEPTH32F_STENCIL8}}:e={[ue.UNSIGNED_BYTE]:{[W.RGBA]:r.RGBA,[W.RGB]:r.RGB,[W.ALPHA]:r.ALPHA,[W.LUMINANCE]:r.LUMINANCE,[W.LUMINANCE_ALPHA]:r.LUMINANCE_ALPHA},[ue.UNSIGNED_SHORT_5_6_5]:{[W.RGB]:r.RGB},[ue.UNSIGNED_SHORT_4_4_4_4]:{[W.RGBA]:r.RGBA},[ue.UNSIGNED_SHORT_5_5_5_1]:{[W.RGBA]:r.RGBA}},e}var ha=class{constructor(e){this.renderer=e,this.boundTextures=[],this.currentLocation=-1,this.managedTextures=[],this._unknownBoundTextures=!1,this.unknownTexture=new ve,this.hasIntegerTextures=!1}contextChange(){let e=this.gl=this.renderer.gl;this.CONTEXT_UID=this.renderer.CONTEXT_UID,this.webGLVersion=this.renderer.context.webGLVersion,this.internalFormats=GF(e),this.samplerTypes=UF(e);let t=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS);this.boundTextures.length=t;for(let s=0;s<t;s++)this.boundTextures[s]=null;this.emptyTextures={};let i=new ho(e.createTexture());e.bindTexture(e.TEXTURE_2D,i.texture),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,1,1,0,e.RGBA,e.UNSIGNED_BYTE,new Uint8Array(4)),this.emptyTextures[e.TEXTURE_2D]=i,this.emptyTextures[e.TEXTURE_CUBE_MAP]=new ho(e.createTexture()),e.bindTexture(e.TEXTURE_CUBE_MAP,this.emptyTextures[e.TEXTURE_CUBE_MAP].texture);for(let s=0;s<6;s++)e.texImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X+s,0,e.RGBA,1,1,0,e.RGBA,e.UNSIGNED_BYTE,null);e.texParameteri(e.TEXTURE_CUBE_MAP,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_CUBE_MAP,e.TEXTURE_MIN_FILTER,e.LINEAR);for(let s=0;s<this.boundTextures.length;s++)this.bind(null,s)}bind(e,t=0){let{gl:i}=this;if(e=e?.castToBaseTexture(),e?.valid&&!e.parentTextureArray){e.touched=this.renderer.textureGC.count;let s=e._glTextures[this.CONTEXT_UID]||this.initTexture(e);this.boundTextures[t]!==e&&(this.currentLocation!==t&&(this.currentLocation=t,i.activeTexture(i.TEXTURE0+t)),i.bindTexture(e.target,s.texture)),s.dirtyId!==e.dirtyId?(this.currentLocation!==t&&(this.currentLocation=t,i.activeTexture(i.TEXTURE0+t)),this.updateTexture(e)):s.dirtyStyleId!==e.dirtyStyleId&&this.updateTextureStyle(e),this.boundTextures[t]=e}else this.currentLocation!==t&&(this.currentLocation=t,i.activeTexture(i.TEXTURE0+t)),i.bindTexture(i.TEXTURE_2D,this.emptyTextures[i.TEXTURE_2D].texture),this.boundTextures[t]=null}reset(){this._unknownBoundTextures=!0,this.hasIntegerTextures=!1,this.currentLocation=-1;for(let e=0;e<this.boundTextures.length;e++)this.boundTextures[e]=this.unknownTexture}unbind(e){let{gl:t,boundTextures:i}=this;if(this._unknownBoundTextures){this._unknownBoundTextures=!1;for(let s=0;s<i.length;s++)i[s]===this.unknownTexture&&this.bind(null,s)}for(let s=0;s<i.length;s++)i[s]===e&&(this.currentLocation!==s&&(t.activeTexture(t.TEXTURE0+s),this.currentLocation=s),t.bindTexture(e.target,this.emptyTextures[e.target].texture),i[s]=null)}ensureSamplerType(e){let{boundTextures:t,hasIntegerTextures:i,CONTEXT_UID:s}=this;if(i)for(let o=e-1;o>=0;--o){let n=t[o];n&&n._glTextures[s].samplerType!==X.FLOAT&&this.renderer.texture.unbind(n)}}initTexture(e){let t=new ho(this.gl.createTexture());return t.dirtyId=-1,e._glTextures[this.CONTEXT_UID]=t,this.managedTextures.push(e),e.on("dispose",this.destroyTexture,this),t}initTextureType(e,t){t.internalFormat=this.internalFormats[e.type]?.[e.format]??e.format,t.samplerType=this.samplerTypes[t.internalFormat]??X.FLOAT,this.webGLVersion===2&&e.type===ue.HALF_FLOAT?t.type=this.gl.HALF_FLOAT:t.type=e.type}updateTexture(e){let t=e._glTextures[this.CONTEXT_UID];if(!t)return;let i=this.renderer;if(this.initTextureType(e,t),e.resource?.upload(i,e,t))t.samplerType!==X.FLOAT&&(this.hasIntegerTextures=!0);else{let s=e.realWidth,o=e.realHeight,n=i.gl;(t.width!==s||t.height!==o||t.dirtyId<0)&&(t.width=s,t.height=o,n.texImage2D(e.target,0,t.internalFormat,s,o,0,e.format,t.type,null))}e.dirtyStyleId!==t.dirtyStyleId&&this.updateTextureStyle(e),t.dirtyId=e.dirtyId}destroyTexture(e,t){let{gl:i}=this;if(e=e.castToBaseTexture(),e._glTextures[this.CONTEXT_UID]&&(this.unbind(e),i.deleteTexture(e._glTextures[this.CONTEXT_UID].texture),e.off("dispose",this.destroyTexture,this),delete e._glTextures[this.CONTEXT_UID],!t)){let s=this.managedTextures.indexOf(e);s!==-1&&ob(this.managedTextures,s,1)}}updateTextureStyle(e){let t=e._glTextures[this.CONTEXT_UID];t&&((e.mipmap===Or.POW2||this.webGLVersion!==2)&&!e.isPowerOfTwo?t.mipmap=!1:t.mipmap=e.mipmap>=1,this.webGLVersion!==2&&!e.isPowerOfTwo?t.wrapMode=Ic.CLAMP:t.wrapMode=e.wrapMode,e.resource?.style(this.renderer,e,t)||this.setStyle(e,t),t.dirtyStyleId=e.dirtyStyleId)}setStyle(e,t){let i=this.gl;if(t.mipmap&&e.mipmap!==Or.ON_MANUAL&&i.generateMipmap(e.target),i.texParameteri(e.target,i.TEXTURE_WRAP_S,t.wrapMode),i.texParameteri(e.target,i.TEXTURE_WRAP_T,t.wrapMode),t.mipmap){i.texParameteri(e.target,i.TEXTURE_MIN_FILTER,e.scaleMode===Tr.LINEAR?i.LINEAR_MIPMAP_LINEAR:i.NEAREST_MIPMAP_NEAREST);let s=this.renderer.context.extensions.anisotropicFiltering;if(s&&e.anisotropicLevel>0&&e.scaleMode===Tr.LINEAR){let o=Math.min(e.anisotropicLevel,i.getParameter(s.MAX_TEXTURE_MAX_ANISOTROPY_EXT));i.texParameterf(e.target,s.TEXTURE_MAX_ANISOTROPY_EXT,o)}}else i.texParameteri(e.target,i.TEXTURE_MIN_FILTER,e.scaleMode===Tr.LINEAR?i.LINEAR:i.NEAREST);i.texParameteri(e.target,i.TEXTURE_MAG_FILTER,e.scaleMode===Tr.LINEAR?i.LINEAR:i.NEAREST)}destroy(){this.renderer=null}};ha.extension={type:Y.RendererSystem,name:"texture"};te.add(ha);var da=class{constructor(e){this.renderer=e}contextChange(){this.gl=this.renderer.gl,this.CONTEXT_UID=this.renderer.CONTEXT_UID}bind(e){let{gl:t,CONTEXT_UID:i}=this,s=e._glTransformFeedbacks[i]||this.createGLTransformFeedback(e);t.bindTransformFeedback(t.TRANSFORM_FEEDBACK,s)}unbind(){let{gl:e}=this;e.bindTransformFeedback(e.TRANSFORM_FEEDBACK,null)}beginTransformFeedback(e,t){let{gl:i,renderer:s}=this;t&&s.shader.bind(t),i.beginTransformFeedback(e)}endTransformFeedback(){let{gl:e}=this;e.endTransformFeedback()}createGLTransformFeedback(e){let{gl:t,renderer:i,CONTEXT_UID:s}=this,o=t.createTransformFeedback();e._glTransformFeedbacks[s]=o,t.bindTransformFeedback(t.TRANSFORM_FEEDBACK,o);for(let n=0;n<e.buffers.length;n++){let a=e.buffers[n];a&&(i.buffer.update(a),a._glBuffers[s].refCount++,t.bindBufferBase(t.TRANSFORM_FEEDBACK_BUFFER,n,a._glBuffers[s].buffer||null))}return t.bindTransformFeedback(t.TRANSFORM_FEEDBACK,null),e.disposeRunner.add(this),o}disposeTransformFeedback(e,t){let i=e._glTransformFeedbacks[this.CONTEXT_UID],s=this.gl;e.disposeRunner.remove(this);let o=this.renderer.buffer;if(o)for(let n=0;n<e.buffers.length;n++){let a=e.buffers[n];if(!a)continue;let l=a._glBuffers[this.CONTEXT_UID];l&&(l.refCount--,l.refCount===0&&!t&&o.dispose(a,t))}i&&(t||s.deleteTransformFeedback(i),delete e._glTransformFeedbacks[this.CONTEXT_UID])}destroy(){this.renderer=null}};da.extension={type:Y.RendererSystem,name:"transformFeedback"};te.add(da);var Fi=class{constructor(e){this.renderer=e}init(e){this.screen=new Se(0,0,e.width,e.height),this.element=e.view||ee.ADAPTER.createCanvas(),this.resolution=e.resolution||ee.RESOLUTION,this.autoDensity=!!e.autoDensity}resizeView(e,t){this.element.width=Math.round(e*this.resolution),this.element.height=Math.round(t*this.resolution);let i=this.element.width/this.resolution,s=this.element.height/this.resolution;this.screen.width=i,this.screen.height=s,this.autoDensity&&(this.element.style.width=`${i}px`,this.element.style.height=`${s}px`),this.renderer.emit("resize",i,s),this.renderer.runners.resize.emit(this.screen.width,this.screen.height)}destroy(e){e&&this.element.parentNode?.removeChild(this.element),this.renderer=null,this.element=null,this.screen=null}};Fi.defaultOptions={width:800,height:600,resolution:void 0,autoDensity:!1},Fi.extension={type:[Y.RendererSystem,Y.CanvasRendererSystem],name:"_view"};te.add(Fi);ee.PREFER_ENV=nr.WEBGL2;ee.STRICT_TEXTURE_CACHE=!1;ee.RENDER_OPTIONS={...Bi.defaultOptions,...Ii.defaultOptions,...Fi.defaultOptions,...ki.defaultOptions};Object.defineProperties(ee,{WRAP_MODE:{get(){return ve.defaultOptions.wrapMode},set(r){xe("7.1.0","settings.WRAP_MODE is deprecated, use BaseTexture.defaultOptions.wrapMode"),ve.defaultOptions.wrapMode=r}},SCALE_MODE:{get(){return ve.defaultOptions.scaleMode},set(r){xe("7.1.0","settings.SCALE_MODE is deprecated, use BaseTexture.defaultOptions.scaleMode"),ve.defaultOptions.scaleMode=r}},MIPMAP_TEXTURES:{get(){return ve.defaultOptions.mipmap},set(r){xe("7.1.0","settings.MIPMAP_TEXTURES is deprecated, use BaseTexture.defaultOptions.mipmap"),ve.defaultOptions.mipmap=r}},ANISOTROPIC_LEVEL:{get(){return ve.defaultOptions.anisotropicLevel},set(r){xe("7.1.0","settings.ANISOTROPIC_LEVEL is deprecated, use BaseTexture.defaultOptions.anisotropicLevel"),ve.defaultOptions.anisotropicLevel=r}},FILTER_RESOLUTION:{get(){return xe("7.1.0","settings.FILTER_RESOLUTION is deprecated, use Filter.defaultResolution"),ci.defaultResolution},set(r){ci.defaultResolution=r}},FILTER_MULTISAMPLE:{get(){return xe("7.1.0","settings.FILTER_MULTISAMPLE is deprecated, use Filter.defaultMultisample"),ci.defaultMultisample},set(r){ci.defaultMultisample=r}},SPRITE_MAX_TEXTURES:{get(){return Ri.defaultMaxTextures},set(r){xe("7.1.0","settings.SPRITE_MAX_TEXTURES is deprecated, use BatchRenderer.defaultMaxTextures"),Ri.defaultMaxTextures=r}},SPRITE_BATCH_SIZE:{get(){return Ri.defaultBatchSize},set(r){xe("7.1.0","settings.SPRITE_BATCH_SIZE is deprecated, use BatchRenderer.defaultBatchSize"),Ri.defaultBatchSize=r}},CAN_UPLOAD_SAME_BUFFER:{get(){return Ri.canUploadSameBuffer},set(r){xe("7.1.0","settings.CAN_UPLOAD_SAME_BUFFER is deprecated, use BatchRenderer.canUploadSameBuffer"),Ri.canUploadSameBuffer=r}},GC_MODE:{get(){return ui.defaultMode},set(r){xe("7.1.0","settings.GC_MODE is deprecated, use TextureGCSystem.defaultMode"),ui.defaultMode=r}},GC_MAX_IDLE:{get(){return ui.defaultMaxIdle},set(r){xe("7.1.0","settings.GC_MAX_IDLE is deprecated, use TextureGCSystem.defaultMaxIdle"),ui.defaultMaxIdle=r}},GC_MAX_CHECK_COUNT:{get(){return ui.defaultCheckCountMax},set(r){xe("7.1.0","settings.GC_MAX_CHECK_COUNT is deprecated, use TextureGCSystem.defaultCheckCountMax"),ui.defaultCheckCountMax=r}},PRECISION_VERTEX:{get(){return Er.defaultVertexPrecision},set(r){xe("7.1.0","settings.PRECISION_VERTEX is deprecated, use Program.defaultVertexPrecision"),Er.defaultVertexPrecision=r}},PRECISION_FRAGMENT:{get(){return Er.defaultFragmentPrecision},set(r){xe("7.1.0","settings.PRECISION_FRAGMENT is deprecated, use Program.defaultFragmentPrecision"),Er.defaultFragmentPrecision=r}}});var fo=(r=>(r[r.INTERACTION=50]="INTERACTION",r[r.HIGH=25]="HIGH",r[r.NORMAL=0]="NORMAL",r[r.LOW=-25]="LOW",r[r.UTILITY=-50]="UTILITY",r))(fo||{});var fa=class{constructor(e,t=null,i=0,s=!1){this.next=null,this.previous=null,this._destroyed=!1,this.fn=e,this.context=t,this.priority=i,this.once=s}match(e,t=null){return this.fn===e&&this.context===t}emit(e){this.fn&&(this.context?this.fn.call(this.context,e):this.fn(e));let t=this.next;return this.once&&this.destroy(!0),this._destroyed&&(this.next=null),t}connect(e){this.previous=e,e.next&&(e.next.previous=this),this.next=e.next,e.next=this}destroy(e=!1){this._destroyed=!0,this.fn=null,this.context=null,this.previous&&(this.previous.next=this.next),this.next&&(this.next.previous=this.previous);let t=this.next;return this.next=e?null:t,this.previous=null,t}};var LF=class hr{constructor(){this.autoStart=!1,this.deltaTime=1,this.lastTime=-1,this.speed=1,this.started=!1,this._requestId=null,this._maxElapsedMS=100,this._minElapsedMS=0,this._protected=!1,this._lastFrame=-1,this._head=new fa(null,null,1/0),this.deltaMS=1/hr.targetFPMS,this.elapsedMS=1/hr.targetFPMS,this._tick=e=>{this._requestId=null,this.started&&(this.update(e),this.started&&this._requestId===null&&this._head.next&&(this._requestId=requestAnimationFrame(this._tick)))}}_requestIfNeeded(){this._requestId===null&&this._head.next&&(this.lastTime=performance.now(),this._lastFrame=this.lastTime,this._requestId=requestAnimationFrame(this._tick))}_cancelIfNeeded(){this._requestId!==null&&(cancelAnimationFrame(this._requestId),this._requestId=null)}_startIfPossible(){this.started?this._requestIfNeeded():this.autoStart&&this.start()}add(e,t,i=fo.NORMAL){return this._addListener(new fa(e,t,i))}addOnce(e,t,i=fo.NORMAL){return this._addListener(new fa(e,t,i,!0))}_addListener(e){let t=this._head.next,i=this._head;if(!t)e.connect(i);else{for(;t;){if(e.priority>t.priority){e.connect(i);break}i=t,t=t.next}e.previous||e.connect(i)}return this._startIfPossible(),this}remove(e,t){let i=this._head.next;for(;i;)i.match(e,t)?i=i.destroy():i=i.next;return this._head.next||this._cancelIfNeeded(),this}get count(){if(!this._head)return 0;let e=0,t=this._head;for(;t=t.next;)e++;return e}start(){this.started||(this.started=!0,this._requestIfNeeded())}stop(){this.started&&(this.started=!1,this._cancelIfNeeded())}destroy(){if(!this._protected){this.stop();let e=this._head.next;for(;e;)e=e.destroy(!0);this._head.destroy(),this._head=null}}update(e=performance.now()){let t;if(e>this.lastTime){if(t=this.elapsedMS=e-this.lastTime,t>this._maxElapsedMS&&(t=this._maxElapsedMS),t*=this.speed,this._minElapsedMS){let o=e-this._lastFrame|0;if(o<this._minElapsedMS)return;this._lastFrame=e-o%this._minElapsedMS}this.deltaMS=t,this.deltaTime=this.deltaMS*hr.targetFPMS;let i=this._head,s=i.next;for(;s;)s=s.emit(this.deltaTime);i.next||this._cancelIfNeeded()}else this.deltaTime=this.deltaMS=this.elapsedMS=0;this.lastTime=e}get FPS(){return 1e3/this.elapsedMS}get minFPS(){return 1e3/this._maxElapsedMS}set minFPS(e){let t=Math.min(this.maxFPS,e),i=Math.min(Math.max(0,t)/1e3,hr.targetFPMS);this._maxElapsedMS=1/i}get maxFPS(){return this._minElapsedMS?Math.round(1e3/this._minElapsedMS):0}set maxFPS(e){if(e===0)this._minElapsedMS=0;else{let t=Math.max(this.minFPS,e);this._minElapsedMS=1/(t/1e3)}}static get shared(){if(!hr._shared){let e=hr._shared=new hr;e.autoStart=!0,e._protected=!0}return hr._shared}static get system(){if(!hr._system){let e=hr._system=new hr;e.autoStart=!0,e._protected=!0}return hr._system}};LF.targetFPMS=.06;var Ar=LF;Object.defineProperties(ee,{TARGET_FPMS:{get(){return Ar.targetFPMS},set(r){xe("7.1.0","settings.TARGET_FPMS is deprecated, use Ticker.targetFPMS"),Ar.targetFPMS=r}}});var pu=class{static init(e){e=Object.assign({autoStart:!0,sharedTicker:!1},e),Object.defineProperty(this,"ticker",{set(t){this._ticker&&this._ticker.remove(this.render,this),this._ticker=t,t&&t.add(this.render,this,fo.LOW)},get(){return this._ticker}}),this.stop=()=>{this._ticker.stop()},this.start=()=>{this._ticker.start()},this._ticker=null,this.ticker=e.sharedTicker?Ar.shared:new Ar,e.autoStart&&this.start()}static destroy(){if(this._ticker){let e=this._ticker;this.ticker=null,e.destroy()}}};pu.extension=Y.Application;te.add(pu);var t4=[];te.handleByList(Y.Renderer,t4);var mu=class{constructor(e){this.renderer=e}contextChange(e){let t;if(this.renderer.context.webGLVersion===1){let i=e.getParameter(e.FRAMEBUFFER_BINDING);e.bindFramebuffer(e.FRAMEBUFFER,null),t=e.getParameter(e.SAMPLES),e.bindFramebuffer(e.FRAMEBUFFER,i)}else{let i=e.getParameter(e.DRAW_FRAMEBUFFER_BINDING);e.bindFramebuffer(e.DRAW_FRAMEBUFFER,null),t=e.getParameter(e.SAMPLES),e.bindFramebuffer(e.DRAW_FRAMEBUFFER,i)}t>=Be.HIGH?this.multisample=Be.HIGH:t>=Be.MEDIUM?this.multisample=Be.MEDIUM:t>=Be.LOW?this.multisample=Be.LOW:this.multisample=Be.NONE}destroy(){}};mu.extension={type:Y.RendererSystem,name:"_multisample"};te.add(mu);var Fp=class{constructor(e){this.buffer=e||null,this.updateID=-1,this.byteLength=-1,this.refCount=0}};var gu=class{constructor(e){this.renderer=e,this.managedBuffers={},this.boundBufferBases={}}destroy(){this.renderer=null}contextChange(){this.disposeAll(!0),this.gl=this.renderer.gl,this.CONTEXT_UID=this.renderer.CONTEXT_UID}bind(e){let{gl:t,CONTEXT_UID:i}=this,s=e._glBuffers[i]||this.createGLBuffer(e);t.bindBuffer(e.type,s.buffer)}unbind(e){let{gl:t}=this;t.bindBuffer(e,null)}bindBufferBase(e,t){let{gl:i,CONTEXT_UID:s}=this;if(this.boundBufferBases[t]!==e){let o=e._glBuffers[s]||this.createGLBuffer(e);this.boundBufferBases[t]=e,i.bindBufferBase(i.UNIFORM_BUFFER,t,o.buffer)}}bindBufferRange(e,t,i){let{gl:s,CONTEXT_UID:o}=this;i=i||0;let n=e._glBuffers[o]||this.createGLBuffer(e);s.bindBufferRange(s.UNIFORM_BUFFER,t||0,n.buffer,i*256,256)}update(e){let{gl:t,CONTEXT_UID:i}=this,s=e._glBuffers[i]||this.createGLBuffer(e);if(e._updateID!==s.updateID)if(s.updateID=e._updateID,t.bindBuffer(e.type,s.buffer),s.byteLength>=e.data.byteLength)t.bufferSubData(e.type,0,e.data);else{let o=e.static?t.STATIC_DRAW:t.DYNAMIC_DRAW;s.byteLength=e.data.byteLength,t.bufferData(e.type,e.data,o)}}dispose(e,t){if(!this.managedBuffers[e.id])return;delete this.managedBuffers[e.id];let i=e._glBuffers[this.CONTEXT_UID],s=this.gl;e.disposeRunner.remove(this),i&&(t||s.deleteBuffer(i.buffer),delete e._glBuffers[this.CONTEXT_UID])}disposeAll(e){let t=Object.keys(this.managedBuffers);for(let i=0;i<t.length;i++)this.dispose(this.managedBuffers[t[i]],e)}createGLBuffer(e){let{CONTEXT_UID:t,gl:i}=this;return e._glBuffers[t]=new Fp(i.createBuffer()),this.managedBuffers[e.id]=e,e.disposeRunner.add(this),e._glBuffers[t]}};gu.extension={type:Y.RendererSystem,name:"buffer"};te.add(gu);var xu=class{constructor(e){this.renderer=e}render(e,t){let i=this.renderer,s,o,n,a;if(t&&(s=t.renderTexture,o=t.clear,n=t.transform,a=t.skipUpdateTransform),this.renderingToScreen=!s,i.runners.prerender.emit(),i.emit("prerender"),i.projection.transform=n,!i.context.isLost){if(s||(this.lastObjectRendered=e),!a){let l=e.enableTempParent();e.updateTransform(),e.disableTempParent(l)}i.renderTexture.bind(s),i.batch.currentRenderer.start(),(o??i.background.clearBeforeRender)&&i.renderTexture.clear(),e.render(i),i.batch.currentRenderer.flush(),s&&(t.blit&&i.framebuffer.blit(),s.baseTexture.update()),i.runners.postrender.emit(),i.projection.transform=null,i.emit("postrender")}}destroy(){this.renderer=null,this.lastObjectRendered=null}};xu.extension={type:Y.RendererSystem,name:"objectRenderer"};te.add(xu);var Op=class Ib extends ua{constructor(e){super(),this.type=b_.WEBGL,e=Object.assign({},ee.RENDER_OPTIONS,e),this.gl=null,this.CONTEXT_UID=0,this.globalUniforms=new ur({projectionMatrix:new Ue},!0);let t={runners:["init","destroy","contextChange","resolutionChange","reset","update","postrender","prerender","resize"],systems:Ib.__systems,priority:["_view","textureGenerator","background","_plugin","startup","context","state","texture","buffer","geometry","framebuffer","transformFeedback","mask","scissor","stencil","projection","textureGC","filter","renderTexture","batch","objectRenderer","_multisample"]};this.setup(t),"useContextAlpha"in e&&(xe("7.0.0","options.useContextAlpha is deprecated, use options.premultipliedAlpha and options.backgroundAlpha instead"),e.premultipliedAlpha=e.useContextAlpha&&e.useContextAlpha!=="notMultiplied",e.backgroundAlpha=e.useContextAlpha===!1?1:e.backgroundAlpha),this._plugin.rendererPlugins=Ib.__plugins,this.options=e,this.startup.run(this.options)}static test(e){return e?.forceCanvas?!1:ib()}render(e,t){this.objectRenderer.render(e,t)}resize(e,t){this._view.resizeView(e,t)}reset(){return this.runners.reset.emit(),this}clear(){this.renderTexture.bind(),this.renderTexture.clear()}destroy(e=!1){this.runners.destroy.items.reverse(),this.emitWithCustomOptions(this.runners.destroy,{_view:e}),super.destroy()}get plugins(){return this._plugin.plugins}get multisample(){return this._multisample.multisample}get width(){return this._view.element.width}get height(){return this._view.element.height}get resolution(){return this._view.resolution}set resolution(e){this._view.resolution=e,this.runners.resolutionChange.emit(e)}get autoDensity(){return this._view.autoDensity}get view(){return this._view.element}get screen(){return this._view.screen}get lastObjectRendered(){return this.objectRenderer.lastObjectRendered}get renderingToScreen(){return this.objectRenderer.renderingToScreen}get rendererLogId(){return`WebGL ${this.context.webGLVersion}`}get clearBeforeRender(){return xe("7.0.0","renderer.clearBeforeRender has been deprecated, please use renderer.background.clearBeforeRender instead."),this.background.clearBeforeRender}get useContextAlpha(){return xe("7.0.0","renderer.useContextAlpha has been deprecated, please use renderer.context.premultipliedAlpha instead."),this.context.useContextAlpha}get preserveDrawingBuffer(){return xe("7.0.0","renderer.preserveDrawingBuffer has been deprecated, we cannot truly know this unless pixi created the context"),this.context.preserveDrawingBuffer}get backgroundColor(){return xe("7.0.0","renderer.backgroundColor has been deprecated, use renderer.background.color instead."),this.background.color}set backgroundColor(e){xe("7.0.0","renderer.backgroundColor has been deprecated, use renderer.background.color instead."),this.background.color=e}get backgroundAlpha(){return xe("7.0.0","renderer.backgroundAlpha has been deprecated, use renderer.background.alpha instead."),this.background.alpha}set backgroundAlpha(e){xe("7.0.0","renderer.backgroundAlpha has been deprecated, use renderer.background.alpha instead."),this.background.alpha=e}get powerPreference(){return xe("7.0.0","renderer.powerPreference has been deprecated, we can only know this if pixi creates the context"),this.context.powerPreference}generateTexture(e,t){return this.textureGenerator.generateTexture(e,t)}};Op.extension={type:Y.Renderer,priority:1},Op.__plugins={},Op.__systems={};var Up=Op;te.handleByMap(Y.RendererPlugin,Up.__plugins);te.handleByMap(Y.RendererSystem,Up.__systems);te.add(Up);var fs=class extends cr{constructor(e,t){let{width:i,height:s}=t||{};super(i,s),this.items=[],this.itemDirtyIds=[];for(let o=0;o<e;o++){let n=new ve;this.items.push(n),this.itemDirtyIds.push(-2)}this.length=e,this._load=null,this.baseTexture=null}initFromArray(e,t){for(let i=0;i<this.length;i++)e[i]&&(e[i].castToBaseTexture?this.addBaseTextureAt(e[i].castToBaseTexture(),i):e[i]instanceof cr?this.addResourceAt(e[i],i):this.addResourceAt(Yn(e[i],t),i))}dispose(){for(let e=0,t=this.length;e<t;e++)this.items[e].destroy();this.items=null,this.itemDirtyIds=null,this._load=null}addResourceAt(e,t){if(!this.items[t])throw new Error(`Index ${t} is out of bounds`);return e.valid&&!this.valid&&this.resize(e.width,e.height),this.items[t].setResource(e),this}bind(e){if(this.baseTexture!==null)throw new Error("Only one base texture per TextureArray is allowed");super.bind(e);for(let t=0;t<this.length;t++)this.items[t].parentTextureArray=e,this.items[t].on("update",e.update,e)}unbind(e){super.unbind(e);for(let t=0;t<this.length;t++)this.items[t].parentTextureArray=null,this.items[t].off("update",e.update,e)}load(){if(this._load)return this._load;let e=this.items.map(t=>t.resource).filter(t=>t).map(t=>t.load());return this._load=Promise.all(e).then(()=>{let{realWidth:t,realHeight:i}=this.items[0];return this.resize(t,i),this.update(),Promise.resolve(this)}),this._load}};var yu=class extends fs{constructor(e,t){let{width:i,height:s}=t||{},o,n;Array.isArray(e)?(o=e,n=e.length):n=e,super(n,{width:i,height:s}),o&&this.initFromArray(o,t)}addBaseTextureAt(e,t){if(e.resource)this.addResourceAt(e.resource,t);else throw new Error("ArrayResource does not support RenderTexture");return this}bind(e){super.bind(e),e.target=Ei.TEXTURE_2D_ARRAY}upload(e,t,i){let{length:s,itemDirtyIds:o,items:n}=this,{gl:a}=e;i.dirtyId<0&&a.texImage3D(a.TEXTURE_2D_ARRAY,0,i.internalFormat,this._width,this._height,s,0,t.format,i.type,null);for(let l=0;l<s;l++){let c=n[l];o[l]<c.dirtyId&&(o[l]=c.dirtyId,c.valid&&a.texSubImage3D(a.TEXTURE_2D_ARRAY,0,0,0,l,c.resource.width,c.resource.height,1,t.format,i.type,c.resource.source))}return!0}};var _u=class extends _t{constructor(e){super(e)}static test(e){let{OffscreenCanvas:t}=globalThis;return t&&e instanceof t?!0:globalThis.HTMLCanvasElement&&e instanceof HTMLCanvasElement}};var DF=class bu extends fs{constructor(e,t){let{width:i,height:s,autoLoad:o,linkBaseTexture:n}=t||{};if(e&&e.length!==bu.SIDES)throw new Error(`Invalid length. Got ${e.length}, expected 6`);super(6,{width:i,height:s});for(let a=0;a<bu.SIDES;a++)this.items[a].target=Ei.TEXTURE_CUBE_MAP_POSITIVE_X+a;this.linkBaseTexture=n!==!1,e&&this.initFromArray(e,t),o!==!1&&this.load()}bind(e){super.bind(e),e.target=Ei.TEXTURE_CUBE_MAP}addBaseTextureAt(e,t,i){if(i===void 0&&(i=this.linkBaseTexture),!this.items[t])throw new Error(`Index ${t} is out of bounds`);if(!this.linkBaseTexture||e.parentTextureArray||Object.keys(e._glTextures).length>0)if(e.resource)this.addResourceAt(e.resource,t);else throw new Error("CubeResource does not support copying of renderTexture.");else e.target=Ei.TEXTURE_CUBE_MAP_POSITIVE_X+t,e.parentTextureArray=this.baseTexture,this.items[t]=e;return e.valid&&!this.valid&&this.resize(e.realWidth,e.realHeight),this.items[t]=e,this}upload(e,t,i){let s=this.itemDirtyIds;for(let o=0;o<bu.SIDES;o++){let n=this.items[o];(s[o]<n.dirtyId||i.dirtyId<t.dirtyId)&&(n.valid&&n.resource?(n.resource.upload(e,n,i),s[o]=n.dirtyId):s[o]<-1&&(e.gl.texImage2D(n.target,0,i.internalFormat,t.realWidth,t.realHeight,0,t.format,i.type,null),s[o]=-1))}return!0}static test(e){return Array.isArray(e)&&e.length===bu.SIDES}};DF.SIDES=6;var Bb=DF;var vu=class r extends _t{constructor(e,t){t=t||{};let i,s,o;typeof e=="string"?(i=r.EMPTY,s=e,o=!0):(i=e,s=null,o=!1),super(i),this.url=s,this.crossOrigin=t.crossOrigin??!0,this.alphaMode=typeof t.alphaMode=="number"?t.alphaMode:null,this.ownsImageBitmap=t.ownsImageBitmap??o,this._load=null,t.autoLoad!==!1&&this.load()}load(){return this._load?this._load:(this._load=new Promise(async(e,t)=>{if(this.url===null){e(this);return}try{let i=await ee.ADAPTER.fetch(this.url,{mode:this.crossOrigin?"cors":"no-cors"});if(this.destroyed)return;let s=await i.blob();if(this.destroyed)return;let o=await createImageBitmap(s,{premultiplyAlpha:this.alphaMode===null||this.alphaMode===ar.UNPACK?"premultiply":"none"});if(this.destroyed){o.close();return}this.source=o,this.update(),e(this)}catch(i){if(this.destroyed)return;t(i),this.onError.emit(i)}}),this._load)}upload(e,t,i){return this.source instanceof ImageBitmap?(typeof this.alphaMode=="number"&&(t.alphaMode=this.alphaMode),super.upload(e,t,i)):(this.load(),!1)}dispose(){this.ownsImageBitmap&&this.source instanceof ImageBitmap&&this.source.close(),super.dispose(),this._load=null}static test(e){return!!globalThis.createImageBitmap&&typeof ImageBitmap<"u"&&(typeof e=="string"||e instanceof ImageBitmap)}static get EMPTY(){return r._EMPTY=r._EMPTY??ee.ADAPTER.createCanvas(0,0),r._EMPTY}};var kb=class Gp extends _t{constructor(e,t){t=t||{},super(ee.ADAPTER.createCanvas()),this._width=0,this._height=0,this.svg=e,this.scale=t.scale||1,this._overrideWidth=t.width,this._overrideHeight=t.height,this._resolve=null,this._crossorigin=t.crossorigin,this._load=null,t.autoLoad!==!1&&this.load()}load(){return this._load?this._load:(this._load=new Promise(e=>{if(this._resolve=()=>{this.update(),e(this)},Gp.SVG_XML.test(this.svg.trim())){if(!btoa)throw new Error("Your browser doesn't support base64 conversions.");this.svg=`data:image/svg+xml;base64,${btoa(unescape(encodeURIComponent(this.svg)))}`}this._loadSvg()}),this._load)}_loadSvg(){let e=new Image;_t.crossOrigin(e,this.svg,this._crossorigin),e.src=this.svg,e.onerror=t=>{this._resolve&&(e.onerror=null,this.onError.emit(t))},e.onload=()=>{if(!this._resolve)return;let t=e.width,i=e.height;if(!t||!i)throw new Error("The SVG image must have width and height defined (in pixels), canvas API needs them.");let s=t*this.scale,o=i*this.scale;(this._overrideWidth||this._overrideHeight)&&(s=this._overrideWidth||this._overrideHeight/i*t,o=this._overrideHeight||this._overrideWidth/t*i),s=Math.round(s),o=Math.round(o);let n=this.source;n.width=s,n.height=o,n._pixiId=`canvas_${Ci()}`,n.getContext("2d").drawImage(e,0,0,t,i,0,0,s,o),this._resolve(),this._resolve=null}}static getSize(e){let t=Gp.SVG_SIZE.exec(e),i={};return t&&(i[t[1]]=Math.round(parseFloat(t[3])),i[t[5]]=Math.round(parseFloat(t[7]))),i}dispose(){super.dispose(),this._resolve=null,this._crossorigin=null}static test(e,t){return t==="svg"||typeof e=="string"&&e.startsWith("data:image/svg+xml")||typeof e=="string"&&Gp.SVG_XML.test(e)}};kb.SVG_XML=/^(<\?xml[^?]+\?>)?\s*(<!--[^(-->)]*-->)?\s*\<svg/m,kb.SVG_SIZE=/<svg[^>]*(?:\s(width|height)=('|")(\d*(?:\.\d+)?)(?:px)?('|"))[^>]*(?:\s(width|height)=('|")(\d*(?:\.\d+)?)(?:px)?('|"))[^>]*>/i;var Fb=kb;var Lp=class extends _t{constructor(e){super(e)}static test(e){return!!globalThis.VideoFrame&&e instanceof globalThis.VideoFrame}};var Ob=class Ub extends _t{constructor(e,t){if(t=t||{},!(e instanceof HTMLVideoElement)){let i=document.createElement("video");t.autoLoad!==!1&&i.setAttribute("preload","auto"),t.playsinline!==!1&&(i.setAttribute("webkit-playsinline",""),i.setAttribute("playsinline","")),t.muted===!0&&(i.setAttribute("muted",""),i.muted=!0),t.loop===!0&&i.setAttribute("loop",""),t.autoPlay!==!1&&i.setAttribute("autoplay",""),typeof e=="string"&&(e=[e]);let s=e[0].src||e[0];_t.crossOrigin(i,s,t.crossorigin);for(let o=0;o<e.length;++o){let n=document.createElement("source"),{src:a,mime:l}=e[o];if(a=a||e[o],a.startsWith("data:"))l=a.slice(5,a.indexOf(";"));else if(!a.startsWith("blob:")){let c=a.split("?").shift().toLowerCase(),u=c.slice(c.lastIndexOf(".")+1);l=l||Ub.MIME_TYPES[u]||`video/${u}`}n.src=a,l&&(n.type=l),i.appendChild(n)}e=i}super(e),this.noSubImage=!0,this._autoUpdate=!0,this._isConnectedToTicker=!1,this._updateFPS=t.updateFPS||0,this._msToNextUpdate=0,this.autoPlay=t.autoPlay!==!1,this._videoFrameRequestCallback=this._videoFrameRequestCallback.bind(this),this._videoFrameRequestCallbackHandle=null,this._load=null,this._resolve=null,this._reject=null,this._onCanPlay=this._onCanPlay.bind(this),this._onError=this._onError.bind(this),this._onPlayStart=this._onPlayStart.bind(this),this._onPlayStop=this._onPlayStop.bind(this),this._onSeeked=this._onSeeked.bind(this),t.autoLoad!==!1&&this.load()}update(e=0){if(!this.destroyed){if(this._updateFPS){let t=Ar.shared.elapsedMS*this.source.playbackRate;this._msToNextUpdate=Math.floor(this._msToNextUpdate-t)}(!this._updateFPS||this._msToNextUpdate<=0)&&(super.update(),this._msToNextUpdate=this._updateFPS?Math.floor(1e3/this._updateFPS):0)}}_videoFrameRequestCallback(){this.update(),this.destroyed?this._videoFrameRequestCallbackHandle=null:this._videoFrameRequestCallbackHandle=this.source.requestVideoFrameCallback(this._videoFrameRequestCallback)}load(){if(this._load)return this._load;let e=this.source;return(e.readyState===e.HAVE_ENOUGH_DATA||e.readyState===e.HAVE_FUTURE_DATA)&&e.width&&e.height&&(e.complete=!0),e.addEventListener("play",this._onPlayStart),e.addEventListener("pause",this._onPlayStop),e.addEventListener("seeked",this._onSeeked),this._isSourceReady()?this._onCanPlay():(e.addEventListener("canplay",this._onCanPlay),e.addEventListener("canplaythrough",this._onCanPlay),e.addEventListener("error",this._onError,!0)),this._load=new Promise((t,i)=>{this.valid?t(this):(this._resolve=t,this._reject=i,e.load())}),this._load}_onError(e){this.source.removeEventListener("error",this._onError,!0),this.onError.emit(e),this._reject&&(this._reject(e),this._reject=null,this._resolve=null)}_isSourcePlaying(){let e=this.source;return!e.paused&&!e.ended}_isSourceReady(){return this.source.readyState>2}_onPlayStart(){this.valid||this._onCanPlay(),this._configureAutoUpdate()}_onPlayStop(){this._configureAutoUpdate()}_onSeeked(){this._autoUpdate&&!this._isSourcePlaying()&&(this._msToNextUpdate=0,this.update(),this._msToNextUpdate=0)}_onCanPlay(){let e=this.source;e.removeEventListener("canplay",this._onCanPlay),e.removeEventListener("canplaythrough",this._onCanPlay);let t=this.valid;this._msToNextUpdate=0,this.update(),this._msToNextUpdate=0,!t&&this._resolve&&(this._resolve(this),this._resolve=null,this._reject=null),this._isSourcePlaying()?this._onPlayStart():this.autoPlay&&e.play()}dispose(){this._configureAutoUpdate();let e=this.source;e&&(e.removeEventListener("play",this._onPlayStart),e.removeEventListener("pause",this._onPlayStop),e.removeEventListener("seeked",this._onSeeked),e.removeEventListener("canplay",this._onCanPlay),e.removeEventListener("canplaythrough",this._onCanPlay),e.removeEventListener("error",this._onError,!0),e.pause(),e.src="",e.load()),super.dispose()}get autoUpdate(){return this._autoUpdate}set autoUpdate(e){e!==this._autoUpdate&&(this._autoUpdate=e,this._configureAutoUpdate())}get updateFPS(){return this._updateFPS}set updateFPS(e){e!==this._updateFPS&&(this._updateFPS=e,this._configureAutoUpdate())}_configureAutoUpdate(){this._autoUpdate&&this._isSourcePlaying()?!this._updateFPS&&this.source.requestVideoFrameCallback?(this._isConnectedToTicker&&(Ar.shared.remove(this.update,this),this._isConnectedToTicker=!1,this._msToNextUpdate=0),this._videoFrameRequestCallbackHandle===null&&(this._videoFrameRequestCallbackHandle=this.source.requestVideoFrameCallback(this._videoFrameRequestCallback))):(this._videoFrameRequestCallbackHandle!==null&&(this.source.cancelVideoFrameCallback(this._videoFrameRequestCallbackHandle),this._videoFrameRequestCallbackHandle=null),this._isConnectedToTicker||(Ar.shared.add(this.update,this),this._isConnectedToTicker=!0,this._msToNextUpdate=0)):(this._videoFrameRequestCallbackHandle!==null&&(this.source.cancelVideoFrameCallback(this._videoFrameRequestCallbackHandle),this._videoFrameRequestCallbackHandle=null),this._isConnectedToTicker&&(Ar.shared.remove(this.update,this),this._isConnectedToTicker=!1,this._msToNextUpdate=0))}static test(e,t){return globalThis.HTMLVideoElement&&e instanceof HTMLVideoElement||Ub.TYPES.includes(t)}};Ob.TYPES=["mp4","m4v","webm","ogg","ogv","h264","avi","mov"],Ob.MIME_TYPES={ogv:"video/ogg",mov:"video/quicktime",m4v:"video/mp4"};var Gb=Ob;Xc.push(vu,ao,_u,Gb,Lp,Fb,Js,Bb,yu);var r4={vec3(r,e,t,i){(t[0]!==i[0]||t[1]!==i[1]||t[2]!==i[2])&&(t[0]=i[0],t[1]=i[1],t[2]=i[2],r.uniform3f(e,i[0],i[1],i[2]))},int(r,e,t,i){r.uniform1i(e,i)},ivec2(r,e,t,i){r.uniform2i(e,i[0],i[1])},ivec3(r,e,t,i){r.uniform3i(e,i[0],i[1],i[2])},ivec4(r,e,t,i){r.uniform4i(e,i[0],i[1],i[2],i[3])},uint(r,e,t,i){r.uniform1ui(e,i)},uvec2(r,e,t,i){r.uniform2ui(e,i[0],i[1])},uvec3(r,e,t,i){r.uniform3ui(e,i[0],i[1],i[2])},uvec4(r,e,t,i){r.uniform4ui(e,i[0],i[1],i[2],i[3])},bvec2(r,e,t,i){r.uniform2i(e,i[0],i[1])},bvec3(r,e,t,i){r.uniform3i(e,i[0],i[1],i[2])},bvec4(r,e,t,i){r.uniform4i(e,i[0],i[1],i[2],i[3])},mat2(r,e,t,i){r.uniformMatrix2fv(e,!1,i)},mat4(r,e,t,i){r.uniformMatrix4fv(e,!1,i)}},i4={float(r,e,t,i){r.uniform1fv(e,i)},vec2(r,e,t,i){r.uniform2fv(e,i)},vec3(r,e,t,i){r.uniform3fv(e,i)},vec4(r,e,t,i){r.uniform4fv(e,i)},int(r,e,t,i){r.uniform1iv(e,i)},ivec2(r,e,t,i){r.uniform2iv(e,i)},ivec3(r,e,t,i){r.uniform3iv(e,i)},ivec4(r,e,t,i){r.uniform4iv(e,i)},uint(r,e,t,i){r.uniform1uiv(e,i)},uvec2(r,e,t,i){r.uniform2uiv(e,i)},uvec3(r,e,t,i){r.uniform3uiv(e,i)},uvec4(r,e,t,i){r.uniform4uiv(e,i)},bool(r,e,t,i){r.uniform1iv(e,i)},bvec2(r,e,t,i){r.uniform2iv(e,i)},bvec3(r,e,t,i){r.uniform3iv(e,i)},bvec4(r,e,t,i){r.uniform4iv(e,i)},sampler2D(r,e,t,i){r.uniform1iv(e,i)},samplerCube(r,e,t,i){r.uniform1iv(e,i)},sampler2DArray(r,e,t,i){r.uniform1iv(e,i)}};function NF(r,e,t,i,s){let o=0,n=null,a=null,l=s.gl;for(let c in r.uniforms){let u=e[c],h=i[c],d=t[c],f=r.uniforms[c];if(!u){f.group===!0&&s.shader.syncUniformGroup(h);continue}u.type==="float"&&u.size===1&&!u.isArray?h!==d.value&&(d.value=h,l.uniform1f(d.location,h)):u.type==="bool"&&u.size===1&&!u.isArray?h!==d.value&&(d.value=h,l.uniform1i(d.location,Number(h))):(u.type==="sampler2D"||u.type==="samplerCube"||u.type==="sampler2DArray")&&u.size===1&&!u.isArray?(s.texture.bind(h,o),d.value!==o&&(d.value=o,l.uniform1i(d.location,o)),o++):u.type==="mat3"&&u.size===1&&!u.isArray?f.a!==void 0?l.uniformMatrix3fv(d.location,!1,h.toArray(!0)):l.uniformMatrix3fv(d.location,!1,h):u.type==="vec2"&&u.size===1&&!u.isArray?f.x!==void 0?(a=d.value,n=h,(a[0]!==n.x||a[1]!==n.y)&&(a[0]=n.x,a[1]=n.y,l.uniform2f(d.location,n.x,n.y))):(a=d.value,n=h,(a[0]!==n[0]||a[1]!==n[1])&&(a[0]=n[0],a[1]=n[1],l.uniform2f(d.location,n[0],n[1]))):u.type==="vec4"&&u.size===1&&!u.isArray?f.width!==void 0?(a=d.value,n=h,(a[0]!==n.x||a[1]!==n.y||a[2]!==n.width||a[3]!==n.height)&&(a[0]=n.x,a[1]=n.y,a[2]=n.width,a[3]=n.height,l.uniform4f(d.location,n.x,n.y,n.width,n.height))):(a=d.value,n=h,(a[0]!==n[0]||a[1]!==n[1]||a[2]!==n[2]||a[3]!==n[3])&&(a[0]=n[0],a[1]=n[1],a[2]=n[2],a[3]=n[3],l.uniform4f(d.location,n[0],n[1],n[2],n[3]))):(u.size===1&&!u.isArray?r4:i4)[u.type].call(null,l,d.location,d.value,h)}}function s4(){Object.assign(ds.prototype,{systemCheck(){},syncUniforms(r,e){let{shader:t,renderer:i}=this;NF(r,t.program.uniformData,e.uniformData,r.uniforms,i)}})}s4();var Tu=new(window.AudioContext||window.webkitAudioContext),o4=(r,e)=>{let t,i=Tu.createGain();i.gain.value=e.volume??1,i.connect(Tu.destination);let s={id:r,url:e.url,loop:e.loop||!1,volume:e.volume??1};return{play:()=>{let m=_n.getAsset(s.url);if(!m){console.warn("AudioPlayer.play: Asset not found",s.url);return}t=Tu.createBufferSource(),t.buffer=m,t.loop=s.loop,i.gain.setValueAtTime(s.volume,Tu.currentTime),t.connect(i),t.start(0)},stop:()=>{t&&(t.stop(),t.disconnect(),i.disconnect(),i.connect(Tu.destination))},update:m=>{s={...s,...m}},getId:()=>s.id,getUrl:()=>s.url,getLoop:()=>s.loop,getVolume:()=>s.volume,setUrl:m=>{s.url=m},setLoop:m=>{s.loop=m},setVolume:m=>{s.volume=m,i.gain.value=m},get id(){return s.id},get url(){return s.url},get loop(){return s.loop},get volume(){return s.volume},gainNode:i}},HF=()=>{let r=[],e=[];return{add:a=>{e.push(a)},remove:a=>{e=e.filter(l=>l.id!==a)},getById:a=>e.find(l=>l.id===a),tick:()=>{for(let l of e){let c=r.find(u=>u.id===l.id);if(!c){let u=o4(l.id,{url:l.url,loop:l.loop,volume:l.volume??1});r.push(u),u.play();continue}(c.url!==l.url||c.loop!==l.loop)&&(c.stop(),c.setUrl(l.url),c.setLoop(l.loop??!1),c.play()),c.getVolume()!==(l.volume??1)&&c.setVolume(l.volume??1)}let a=[];for(let l of r)e.find(c=>c.id===l.id)||(l.stop(),a.push(l.id));r=r.filter(l=>!a.includes(l.id))},destroy:()=>{for(let a of r)a.stop();r=[],e=[]}}};var n4=({JSONObject:r,parserPlugins:e=[]})=>r.map(i=>{let s=e.find(o=>o.type===i.type);if(!s)throw new Error(`No parser plugin found for element type: ${i.type} (id: ${i.id??"unknown"})`);return s.parse({state:i,parserPlugins:e})});var Lb=n4;var VF=({type:r,parse:e})=>({type:r,parse:e});var Db=typeof navigator<"u"?navigator.userAgent.toLowerCase().indexOf("firefox")>0:!1;function Nb(r,e,t,i){r.addEventListener?r.addEventListener(e,t,i):r.attachEvent&&r.attachEvent(`on${e}`,t)}function Su(r,e,t,i){r&&(r.removeEventListener?r.removeEventListener(e,t,i):r.detachEvent&&r.detachEvent(`on${e}`,t))}function $F(r,e){let t=e.slice(0,e.length-1),i=[];for(let s=0;s<t.length;s++)i.push(r[t[s].toLowerCase()]);return i}function XF(r){typeof r!="string"&&(r=""),r=r.replace(/\s/g,"");let e=r.split(","),t=e.lastIndexOf("");for(;t>=0;)e[t-1]+=",",e.splice(t,1),t=e.lastIndexOf("");return e}function a4(r,e){let t=r.length>=e.length?r:e,i=r.length>=e.length?e:r,s=!0;for(let o=0;o<t.length;o++)i.indexOf(t[o])===-1&&(s=!1);return s}function jF(r){let e=r.keyCode||r.which||r.charCode;return r.code&&/^Key[A-Z]$/.test(r.code)&&(e=r.code.charCodeAt(3)),e}var Au={backspace:8,"\u232B":8,tab:9,clear:12,enter:13,"\u21A9":13,return:13,esc:27,escape:27,space:32,left:37,up:38,right:39,down:40,arrowup:38,arrowdown:40,arrowleft:37,arrowright:39,del:46,delete:46,ins:45,insert:45,home:36,end:35,pageup:33,pagedown:34,capslock:20,num_0:96,num_1:97,num_2:98,num_3:99,num_4:100,num_5:101,num_6:102,num_7:103,num_8:104,num_9:105,num_multiply:106,num_add:107,num_enter:108,num_subtract:109,num_decimal:110,num_divide:111,"\u21EA":20,",":188,".":190,"/":191,"`":192,"-":Db?173:189,"=":Db?61:187,";":Db?59:186,"'":222,"{":219,"}":221,"[":219,"]":221,"\\":220},Dr={"\u21E7":16,shift:16,"\u2325":18,alt:18,option:18,"\u2303":17,ctrl:17,control:17,"\u2318":91,cmd:91,meta:91,command:91},wu={16:"shiftKey",18:"altKey",17:"ctrlKey",91:"metaKey",shiftKey:16,ctrlKey:17,altKey:18,metaKey:91},Rt={16:!1,18:!1,17:!1,91:!1},Ze={};for(let r=1;r<20;r++)Au[`f${r}`]=111+r;var je=[],Eu=null,YF="all",Oi=new Map,pa=r=>Au[r.toLowerCase()]||Dr[r.toLowerCase()]||r.toUpperCase().charCodeAt(0),l4=r=>Object.keys(Au).find(e=>Au[e]===r),c4=r=>Object.keys(Dr).find(e=>Dr[e]===r),qF=r=>{YF=r||"all"},Cu=()=>YF||"all",u4=()=>je.slice(0),h4=()=>je.map(r=>l4(r)||c4(r)||String.fromCharCode(r)),d4=()=>{let r=[];return Object.keys(Ze).forEach(e=>{Ze[e].forEach(({key:t,scope:i,mods:s,shortcut:o})=>{r.push({scope:i,shortcut:o,mods:s,keys:t.split("+").map(n=>pa(n))})})}),r},KF=r=>{let e=r.target||r.srcElement,{tagName:t}=e,i=!0,s=t==="INPUT"&&!["checkbox","radio","range","button","file","reset","submit","color"].includes(e.type);return(e.isContentEditable||(s||t==="TEXTAREA"||t==="SELECT")&&!e.readOnly)&&(i=!1),i},f4=r=>(typeof r=="string"&&(r=pa(r)),je.indexOf(r)!==-1),p4=(r,e)=>{let t,i;r||(r=Cu());for(let s in Ze)if(Object.prototype.hasOwnProperty.call(Ze,s))for(t=Ze[s],i=0;i<t.length;)t[i].scope===r?t.splice(i,1).forEach(({element:o})=>Vb(o)):i++;Cu()===r&&qF(e||"all")};function m4(r){let e=jF(r);r.key&&r.key.toLowerCase()==="capslock"&&(e=pa(r.key));let t=je.indexOf(e);if(t>=0&&je.splice(t,1),r.key&&r.key.toLowerCase()==="meta"&&je.splice(0,je.length),(e===93||e===224)&&(e=91),e in Rt){Rt[e]=!1;for(let i in Dr)Dr[i]===e&&(pt[i]=!1)}}var ZF=(r,...e)=>{if(typeof r>"u")Object.keys(Ze).forEach(t=>{Array.isArray(Ze[t])&&Ze[t].forEach(i=>Dp(i)),delete Ze[t]}),Vb(null);else if(Array.isArray(r))r.forEach(t=>{t.key&&Dp(t)});else if(typeof r=="object")r.key&&Dp(r);else if(typeof r=="string"){let[t,i]=e;typeof t=="function"&&(i=t,t=""),Dp({key:r,scope:t,method:i,splitKey:"+"})}},Dp=({key:r,scope:e,method:t,splitKey:i="+"})=>{XF(r).forEach(s=>{let o=s.split(i),n=o.length,a=o[n-1],l=a==="*"?"*":pa(a);if(!Ze[l])return;e||(e=Cu());let c=n>1?$F(Dr,o):[],u=[];Ze[l]=Ze[l].filter(h=>{let d=(t?h.method===t:!0)&&h.scope===e&&a4(h.mods,c);return d&&u.push(h.element),!d}),u.forEach(h=>Vb(h))})};function WF(r,e,t,i){if(e.element!==i)return;let s;if(e.scope===t||e.scope==="all"){s=e.mods.length>0;for(let o in Rt)Object.prototype.hasOwnProperty.call(Rt,o)&&(!Rt[o]&&e.mods.indexOf(+o)>-1||Rt[o]&&e.mods.indexOf(+o)===-1)&&(s=!1);(e.mods.length===0&&!Rt[16]&&!Rt[18]&&!Rt[17]&&!Rt[91]||s||e.shortcut==="*")&&(e.keys=[],e.keys=e.keys.concat(je),e.method(r,e)===!1&&(r.preventDefault?r.preventDefault():r.returnValue=!1,r.stopPropagation&&r.stopPropagation(),r.cancelBubble&&(r.cancelBubble=!0)))}}function zF(r,e){let t=Ze["*"],i=jF(r);if(r.key&&r.key.toLowerCase()==="capslock"||!(pt.filter||KF).call(this,r))return;if((i===93||i===224)&&(i=91),je.indexOf(i)===-1&&i!==229&&je.push(i),["metaKey","ctrlKey","altKey","shiftKey"].forEach(a=>{let l=wu[a];r[a]&&je.indexOf(l)===-1?je.push(l):!r[a]&&je.indexOf(l)>-1?je.splice(je.indexOf(l),1):a==="metaKey"&&r[a]&&(je=je.filter(c=>c in wu||c===i))}),i in Rt){Rt[i]=!0;for(let a in Dr)if(Object.prototype.hasOwnProperty.call(Dr,a)){let l=wu[Dr[a]];pt[a]=r[l]}if(!t)return}for(let a in Rt)Object.prototype.hasOwnProperty.call(Rt,a)&&(Rt[a]=r[wu[a]]);r.getModifierState&&!(r.altKey&&!r.ctrlKey)&&r.getModifierState("AltGraph")&&(je.indexOf(17)===-1&&je.push(17),je.indexOf(18)===-1&&je.push(18),Rt[17]=!0,Rt[18]=!0);let s=Cu();if(t)for(let a=0;a<t.length;a++)t[a].scope===s&&(r.type==="keydown"&&t[a].keydown||r.type==="keyup"&&t[a].keyup)&&WF(r,t[a],s,e);if(!(i in Ze))return;let o=Ze[i],n=o.length;for(let a=0;a<n;a++)if((r.type==="keydown"&&o[a].keydown||r.type==="keyup"&&o[a].keyup)&&o[a].key){let l=o[a],{splitKey:c}=l,u=l.key.split(c),h=[];for(let d=0;d<u.length;d++)h.push(pa(u[d]));h.sort().join("")===je.sort().join("")&&WF(r,l,s,e)}}var pt=function(r,e,t){je=[];let i=XF(r),s=[],o="all",n=document,a=0,l=!1,c=!0,u="+",h=!1,d=!1;if(t===void 0&&typeof e=="function"&&(t=e),Object.prototype.toString.call(e)==="[object Object]"){let f=e;f.scope&&(o=f.scope),f.element&&(n=f.element),f.keyup&&(l=f.keyup),f.keydown!==void 0&&(c=f.keydown),f.capture!==void 0&&(h=f.capture),typeof f.splitKey=="string"&&(u=f.splitKey),f.single===!0&&(d=!0)}for(typeof e=="string"&&(o=e),d&&ZF(r,o);a<i.length;a++){let f=i[a].split(u);s=[],f.length>1&&(s=$F(Dr,f));let p=f[f.length-1];p=p==="*"?"*":pa(p),p in Ze||(Ze[p]=[]),Ze[p].push({keyup:l,keydown:c,scope:o,mods:s,shortcut:i[a],method:t,key:i[a],splitKey:u,element:n})}if(typeof n<"u"&&typeof window<"u"){if(!Oi.has(n)){let f=(m=window.event)=>zF(m,n),p=(m=window.event)=>{zF(m,n),m4(m)};Oi.set(n,{keydownListener:f,keyupListenr:p,capture:h}),Nb(n,"keydown",f,h),Nb(n,"keyup",p,h)}if(!Eu){let f=()=>{je=[]};Eu={listener:f,capture:h},Nb(window,"focus",f,h)}}};function g4(r,e="all"){Object.keys(Ze).forEach(t=>{Ze[t].filter(i=>i.scope===e&&i.shortcut===r).forEach(i=>{i&&i.method&&i.method({},i)})})}function Vb(r){let e=Object.values(Ze).flat();if(e.findIndex(({element:t})=>t===r)<0&&r){let{keydownListener:t,keyupListenr:i,capture:s}=Oi.get(r)||{};t&&i&&(Su(r,"keyup",i,s),Su(r,"keydown",t,s),Oi.delete(r))}if((e.length<=0||Oi.size<=0)&&(Array.from(Oi.keys()).forEach(t=>{let{keydownListener:i,keyupListenr:s,capture:o}=Oi.get(t)||{};i&&s&&(Su(t,"keyup",s,o),Su(t,"keydown",i,o),Oi.delete(t))}),Oi.clear(),Object.keys(Ze).forEach(t=>delete Ze[t]),Eu)){let{listener:t,capture:i}=Eu;Su(window,"focus",t,i),Eu=null}}var Hb={getPressedKeyString:h4,setScope:qF,getScope:Cu,deleteScope:p4,getPressedKeyCodes:u4,getAllKeyCodes:d4,isPressed:f4,filter:KF,trigger:g4,unbind:ZF,keyMap:Au,modifier:Dr,modifierMap:wu};for(let r in Hb){let e=r;Object.prototype.hasOwnProperty.call(Hb,e)&&(pt[e]=Hb[e])}if(typeof window<"u"){let r=window.hotkeys;pt.noConflict=e=>(e&&window.hotkeys===pt&&(window.hotkeys=r),pt),window.hotkeys=pt}var QF=",",x4="+",y4=new Set([93,224]),_4="\0",Wb=r=>r!==null&&typeof r=="object"&&!Array.isArray(r),JF=r=>Wb(r)?{payload:Wb(r.payload)?r.payload:{}}:null,r2=r=>{if(typeof r!="string"||r.length===0)return null;let e=r.toLowerCase();return typeof pt.modifier?.[e]=="number"?pt.modifier[e]:typeof pt.keyMap?.[e]=="number"?pt.keyMap[e]:r.length===1?r.toUpperCase().charCodeAt(0):null},i2=r=>y4.has(r)?91:r,e2=r=>{let e=null;return typeof r?.keyCode=="number"&&r.keyCode>0?e=r.keyCode:typeof r?.which=="number"&&r.which>0?e=r.which:typeof r?.charCode=="number"&&r.charCode>0&&(e=r.charCode),typeof r?.code=="string"&&/^Key[A-Z]$/.test(r.code)&&(e=r.code.charCodeAt(3)),typeof e=="number"?i2(e):r2(r?.key??"")},b4=r=>{if(typeof r!="string"||r.length===0)return[];let e=r.replace(/\s/g,"").split(QF),t=e.lastIndexOf("");for(;t>=0;)t>0&&(e[t-1]+=QF),e.splice(t,1),t=e.lastIndexOf("");return e.filter(Boolean)},v4=r=>typeof pt.modifierMap?.[r]=="string",T4=r=>b4(r).map(e=>{let t=new Set(e.split(x4).map(i=>r2(i)).filter(i=>typeof i=="number").map(i=>i2(i)));return t.size===0?null:{shortcut:e,releaseCodes:t,isModifierOnly:[...t].every(v4)}}).filter(Boolean),S4=(r,e)=>{for(let t of e)if(!r.has(t))return!1;return!0},t2=(r,e)=>`${r}${_4}${e.shortcut}`,w4=r=>typeof pt.filter!="function"||pt.filter(r),E4=r=>{if(!Wb(r))return null;let e={},t=JF(r.keydown),i=JF(r.keyup);return t&&(e.keydown=t),i&&(e.keyup=i),Object.keys(e).length>0?e:null},s2=r=>{let e=new Map,t=new Map,i=new Map,s=new Map,o=new Set,n=(g,y,v)=>{r&&r(g,{_event:{key:y},...v})},a=()=>{i.clear(),s.clear(),o.clear()},l=g=>{for(let[y,v]of[...i])v.binding===g&&i.delete(y);for(let[y,v]of[...s])v.binding===g&&s.delete(y);t.delete(g)},c=(g,y)=>{let v=t.get(g)??[],x=typeof y?.shortcut=="string"?y.shortcut:typeof y?.key=="string"?y.key:null;return v.find(T=>T.shortcut===x)??v[0]??null},u=(g,y)=>{!e.get(g)?.keyup||!y||i.set(t2(g,y),{binding:g,releaseCodes:new Set(y.releaseCodes)})},h=(g,y)=>{let v=t2(g,y),x=s.has(v);return s.set(v,{binding:g,releaseCodes:new Set(y.releaseCodes)}),x},d=g=>{if(!w4(g))return;let y=e2(g);if(typeof y=="number"){o.add(y);for(let[v,x]of e)(t.get(v)??[]).filter(b=>b.isModifierOnly).forEach(b=>{if(!S4(o,b.releaseCodes))return;let w=h(v,b);u(v,b),x.keydown&&!w&&n("keydown",v,x.keydown.payload)})}},f=g=>{let y=e2(g);if(typeof y=="number"){for(let[v,x]of[...i]){let T=e.get(x.binding);!x.releaseCodes.has(y)||!T?.keyup||(i.delete(v),n("keyup",x.binding,T.keyup.payload))}for(let[v,x]of[...s])x.releaseCodes.has(y)&&s.delete(v);o.delete(y)}};return typeof document<"u"&&(document.addEventListener("keydown",d),document.addEventListener("keyup",f)),typeof window<"u"&&window.addEventListener("blur",a),{registerHotkeys:(g={})=>{if(typeof g!="object"||g===null)return;let y=new Map,v=[],x=[],T=[];Object.keys(g).forEach(b=>{let w=E4(g[b]);w&&y.set(b,w)}),y.forEach((b,w)=>{let E=e.get(w);E?me(E,b)||(x.push(w),pt.unbind(w)):v.push(w)}),e.forEach((b,w)=>{y.has(w)||T.push(w)}),T.forEach(b=>{pt.unbind(b),e.delete(b),l(b)}),[...v,...x].forEach(b=>{let w=y.get(b),E=T4(b);l(b),t.set(b,E),e.set(b,w),pt(b,(R,I)=>{let C=c(b,I);if(C?.isModifierOnly){let A=h(b,C);u(b,C),w.keydown&&!A&&n("keydown",b,w.keydown.payload);return}u(b,C),w.keydown&&n("keydown",b,w.keydown.payload)})})},destroy:()=>{typeof document<"u"&&(document.removeEventListener("keydown",d),document.removeEventListener("keyup",f)),typeof window<"u"&&window.removeEventListener("blur",a);for(let g of e.keys())pt.unbind(g);e.clear(),t.clear(),i.clear(),s.clear(),o.clear()}}};var n2=(r,e)=>typeof e!="string"?e:r[e]??e,A4=(r,e,t,i)=>{let s=n2(t,e);if(typeof s=="string"){let n=r[s];return n===void 0?i:n}let o=r;for(let n of s){if(o==null)return i;o=o[n]}return o===void 0?i:o},o2=(r,e,t,i)=>{let s=n2(t,e);if(typeof s=="string")return r[s]=i,r;let o=r;for(let n=0;n<s.length-1;n++){let a=s[n];a in o||(o[a]={}),o=o[a]}return o[s[s.length-1]]=i,r},C4=(r,e,t)=>{if(!r||!Object.prototype.hasOwnProperty.call(r,e))throw new Error(`Animation "${t}" cannot auto-resolve property "${e}" from targetState.`);return r[e]},P4=(r,e,t,i,s)=>Object.entries(e).map(([o,n])=>{if(!Od[o])throw new Error(`${o} is not a supported property for animation.`);let a=A4(r,o,t,0);if(n.auto){let u=C4(i,o,s);if(a===u)return null;let h=Bn([{value:a},{duration:n.auto.duration,value:u,easing:n.auto.easing}]);return{property:o,timeline:h}}let l=n.initialValue??a,c=Bn([{value:l},...n.keyframes]);return{property:o,timeline:c}}).filter(Boolean),a2=()=>{let r=[],e=new Map,t=new Map,i=new Map,s=0,o=null,n=!1,a=(B,D)=>Math.min(Math.max(B,0),Math.max(D??0,0)),l=(B,D)=>{let j=a(D,B.duration);return B.currentTime=j,B.applyFrame(j),j>=B.duration},c=(B,D)=>{i.get(B)?.forEach(j=>{try{j(D)}catch{}})},u=B=>{if(c("completed",{id:B.id}),B.onComplete)try{B.onComplete()}catch{}},h=(B,D={})=>(B.animationType=D.animationType??B.animationType,B.targetId=D.targetId??B.targetId,B.signature=D.signature??B.signature,B.continuity=D.continuity??B.continuity??"render",B.onContinuationUpdate=D.onContinuationUpdate??B.onContinuationUpdate,B),d=B=>({id:B.id,type:B.animationType??null,targetId:B.targetId??null,signature:B.signature??null,continuity:B.continuity??"render",pending:B.pending===!0}),f=B=>{B.applyFrame(0),t.delete(B.id),e.set(B.id,B);let D=o!==null&&l(B,o);c("started",{id:B.id}),D&&(u(B),e.delete(B.id))},p=B=>{let{id:D,element:j,properties:_e,targetState:Fe,onComplete:ot,onCancel:Et,propertyPathMap:nt=Ud}=B,at=P4(j,_e,nt,Fe,D);if(at.length===0){u({id:D,onComplete:ot});return}let er={id:D,kind:"property",element:j,timelines:at,duration:Tc(at),currentTime:0,stateVersion:s,targetState:Fe,onComplete:ot,onCancel:Et,applyFrame:Cr=>{for(let{property:ga,timeline:xa}of at){let Hp=Sc(xa,Cr);try{o2(j,ga,nt,Hp)}catch{}}},applyTargetState:()=>{if(!(!j||j.destroyed)){if(Fe===null){j.destroy();return}if(Fe)for(let[Cr,ga]of Object.entries(Fe))try{o2(j,Cr,nt,ga)}catch{}}},isValid:()=>!!j&&!j.destroyed};f(h(er,B))},m=B=>{let D={id:B.id,kind:"custom",duration:B.duration??0,currentTime:0,stateVersion:s,onComplete:B.onComplete,onCancel:B.onCancel,applyFrame:B.applyFrame??(()=>{}),applyTargetState:B.applyTargetState??(()=>{}),isValid:B.isValid??(()=>!0)};f(h(D,B))},g=B=>{if(B.driver==="custom"){m(B);return}p(B)},y=B=>{try{B.applyTargetState?.()}catch{}if(B.onCancel)try{B.onCancel()}catch{}},v=B=>{let D=t.get(B);D&&(y(D),t.delete(B),c("cancelled",{id:B}))},x=B=>{switch(B.type){case"START":g(B.payload);break;case"CANCEL":w(B.id);break}},T=()=>{let B=r.splice(0);for(let D of B)x(D)},b=()=>{o===null||n||(n=!0,queueMicrotask(()=>{n=!1,o!==null&&T()}))},w=B=>{let D=e.get(B);if(!D){v(B);return}y(D),e.delete(B),c("cancelled",{id:B})},E=B=>{r.push(B),b()},R=()=>{for(let[B,D]of e)y(D),c("cancelled",{id:B});for(let[B,D]of t)y(D),c("cancelled",{id:B});e.clear(),t.clear(),s++},I=(B=new Set)=>{let D=B instanceof Set?B:new Set(B??[]);for(let[j,_e]of e)D.has(j)||(y(_e),e.delete(j),c("cancelled",{id:j}));for(let[j,_e]of t)D.has(j)||(y(_e),t.delete(j),c("cancelled",{id:j}))},C=B=>{T();let D=[];for(let[j,_e]of e){if(_e.stateVersion!==s){D.push(j);continue}if(!_e.isValid()){D.push(j);continue}if(_e.currentTime+=B,_e.currentTime>=_e.duration){_e.applyFrame(_e.duration),u(_e),D.push(j);continue}_e.applyFrame(_e.currentTime)}for(let j of D)e.delete(j)},A=B=>{o=B,T();let D=[];for(let[j,_e]of e){if(_e.stateVersion!==s){D.push(j);continue}if(!_e.isValid()){D.push(j);continue}l(_e,B)&&(u(_e),D.push(j))}for(let j of D)e.delete(j)},M=()=>{o=null},P=()=>{T()},O=(B,D)=>(i.has(B)||i.set(B,new Set),i.get(B).add(D),()=>H(B,D)),H=(B,D)=>{i.get(B)?.delete(D)};return{dispatch:E,cancelAll:R,cancelAllExcept:I,flush:P,tick:C,setTime:A,clearTime:M,on:O,off:H,registerPending:B=>{let D=h({id:B.id,kind:"pending",pending:!0,applyTargetState:B.applyTargetState??(()=>{}),onCancel:B.onCancel},B);t.set(D.id,D)},activatePending:(B,D)=>{let j=t.get(B);return j?(t.delete(B),g({...D,id:B,animationType:j.animationType,targetId:j.targetId,signature:j.signature,continuity:j.continuity,onContinuationUpdate:D.onContinuationUpdate??j.onContinuationUpdate}),!0):!1},removePending:B=>{t.delete(B)},getContinuableAnimations:()=>{let B=new Map;for(let[D,j]of t)j.continuity==="persistent"&&B.set(D,d(j));for(let[D,j]of e)j.continuity==="persistent"&&B.set(D,d(j));return B},getState:()=>({stateVersion:s,activeCount:e.size,pendingCount:t.size,animations:Array.from(e.entries()).map(([B,D])=>({id:B,currentTime:D.currentTime,duration:D.duration,progress:D.duration>0?D.currentTime/D.duration:0}))}),isAnimating:B=>e.has(B),hasContext:B=>e.has(B)||t.has(B),updateContinuation:(B,D)=>{let j=e.get(B)??t.get(B);if(j?.onContinuationUpdate)try{j.onContinuationUpdate(D)}catch{}},destroy:()=>{R(),i.clear()}}};var l2=r=>{let e=0,t=0,i=null,s=!1,o=!1,n=d=>{o||(o=!0,r?.("renderComplete",d))};return{reset:d=>{e>0&&i!==null&&!o&&r?.("renderComplete",{id:i,aborted:!0}),t++,e=0,i=d,s=!0,o=!1},track:d=>{d===t&&e++},complete:d=>{d!==t||e===0||(e--,e===0&&!s&&n({id:i,aborted:!1}))},getVersion:()=>t,completeIfEmpty:()=>{s=!1,e===0&&n({id:i,aborted:!1})}}};var c2=new Set(["update","transition"]),u2=new Set(["render","persistent"]),M4=new Set(["alpha","x","y","scaleX","scaleY","rotation"]),R4=new Set(["translateX","translateY","alpha","scaleX","scaleY","rotation"]),h2=new Set(["single","sequence","composite"]),Np=new Set(["red","green","blue","alpha"]),d2=new Set(["max","min","multiply","add"]),p2=new Set(ff),Nr=(r,e)=>{if(!r||typeof r!="object"||Array.isArray(r))throw new Error(`${e} must be an object.`)},po=(r,e)=>{if(typeof r!="string"||r.length===0)throw new Error(`${e} must be a non-empty string.`)},Pu=(r,e)=>{if(typeof r!="number"||Number.isNaN(r))throw new Error(`${e} must be a number.`)},I4=(r,e)=>{if(Nr(r,e),!u2.has(r.continuity))throw new Error(`${e}.continuity must be one of: ${Array.from(u2).join(", ")}.`);return{continuity:r.continuity}},B4=(r,e)=>{if(Nr(r,e),Pu(r.duration,`${e}.duration`),r.easing!==void 0&&typeof r.easing!="string")throw new Error(`${e}.easing must be a string.`);if(r.easing!==void 0&&!p2.has(r.easing))throw new Error(`${e}.easing must be one of: ${ff.join(", ")}.`);return{duration:r.duration,easing:r.easing??"linear"}},$b=(r,e)=>{Nr(r,e);let t={};if(r.initialValue!==void 0&&(Pu(r.initialValue,`${e}.initialValue`),t.initialValue=r.initialValue),!Array.isArray(r.keyframes)||r.keyframes.length===0)throw new Error(`${e}.keyframes must be a non-empty array.`);return t.keyframes=r.keyframes.map((i,s)=>{let o=`${e}.keyframes[${s}]`;if(Nr(i,o),Pu(i.value,`${o}.value`),Pu(i.duration,`${o}.duration`),i.easing!==void 0&&typeof i.easing!="string")throw new Error(`${o}.easing must be a string.`);if(i.easing!==void 0&&!p2.has(i.easing))throw new Error(`${o}.easing must be one of: ${ff.join(", ")}.`);if(i.relative!==void 0&&typeof i.relative!="boolean")throw new Error(`${o}.relative must be a boolean.`);return{value:i.value,duration:i.duration,easing:i.easing??"linear",...i.relative!==void 0?{relative:i.relative}:{}}}),t},k4=(r,e)=>{Nr(r,e);let t=r.keyframes!==void 0,i=r.auto!==void 0;if(t&&i)throw new Error(`${e} cannot define both keyframes and auto.`);if(!t&&!i)throw new Error(`${e} must define keyframes or auto.`);if(i){if(r.initialValue!==void 0)throw new Error(`${e}.initialValue is not valid when auto is defined.`);return{auto:B4(r.auto,`${e}.auto`)}}return $b(r,e)},m2=(r,e,t,i=$b)=>{Nr(r,e);let s=Object.entries(r).map(([o,n])=>{if(!t.has(o))throw new Error(`${e}.${o} is not a supported animation property.`);return[o,i(n,`${e}.${o}`)]});if(s.length===0)throw new Error(`${e} must define at least one property.`);return Object.fromEntries(s)},F4=(r,e)=>{if(Nr(r,e),po(r.texture,`${e}.texture`),r.channel!==void 0&&!Np.has(r.channel))throw new Error(`${e}.channel must be one of: ${Array.from(Np).join(", ")}.`);if(r.invert!==void 0&&typeof r.invert!="boolean")throw new Error(`${e}.invert must be a boolean.`);return{texture:r.texture,...r.channel?{channel:r.channel}:{},...r.invert!==void 0?{invert:r.invert}:{}}},O4=(r,e)=>{if(Nr(r,e),!h2.has(r.kind))throw new Error(`${e}.kind must be one of: ${Array.from(h2).join(", ")}.`);let t={kind:r.kind};if(r.channel!==void 0){if(!Np.has(r.channel))throw new Error(`${e}.channel must be one of: ${Array.from(Np).join(", ")}.`);t.channel=r.channel}if(r.softness!==void 0&&(Pu(r.softness,`${e}.softness`),t.softness=r.softness),r.invert!==void 0){if(typeof r.invert!="boolean")throw new Error(`${e}.invert must be a boolean.`);t.invert=r.invert}if(r.progress!==void 0&&(t.progress=$b(r.progress,`${e}.progress`)),r.kind==="single"&&(po(r.texture,`${e}.texture`),t.texture=r.texture),r.kind==="sequence"){if(!Array.isArray(r.textures)||r.textures.length===0)throw new Error(`${e}.textures must be a non-empty array.`);t.textures=r.textures.map((i,s)=>(po(i,`${e}.textures[${s}]`),i)),r.sample!==void 0&&(po(r.sample,`${e}.sample`),t.sample=r.sample)}if(r.kind==="composite"){if(!d2.has(r.combine??"max"))throw new Error(`${e}.combine must be one of: ${Array.from(d2).join(", ")}.`);if(!Array.isArray(r.items)||r.items.length===0)throw new Error(`${e}.items must be a non-empty array.`);t.combine=r.combine??"max",t.items=r.items.map((i,s)=>F4(i,`${e}.items[${s}]`))}return t.progress||(t.progress={initialValue:0,keyframes:[{duration:0,value:1,easing:"linear"}]}),t},f2=(r,e)=>{if(Nr(r,e),r.mask!==void 0)throw new Error(`${e}.mask is not valid. Define mask on ${e}.`);let t={};if(r.tween!==void 0&&(t.tween=m2(r.tween,`${e}.tween`,R4)),Object.keys(t).length===0)throw new Error(`${e} must define tween.`);return t},U4=(r,e)=>{let t={};if(r.shader!==void 0)throw new Error(`${e}.shader is not supported.`);if(r.prev!==void 0&&(t.prev=f2(r.prev,`${e}.prev`)),r.next!==void 0&&(t.next=f2(r.next,`${e}.next`)),r.mask!==void 0&&(t.mask=O4(r.mask,`${e}.mask`)),t.prev===void 0&&t.next===void 0&&t.mask===void 0)throw new Error(`${e} must define prev, next, or mask.`);return t},zb=(r,e,t)=>{if(r!==void 0)throw new Error(`${e} ${t}`)},g2=(r=[])=>{if(!Array.isArray(r))throw new Error("Input error: `animations` must be an array.");let e=r.map((i,s)=>{let o=`animations[${s}]`;if(Nr(i,o),po(i.id,`${o}.id`),po(i.targetId,`${o}.targetId`),po(i.type,`${o}.type`),!c2.has(i.type))throw new Error(`${o}.type must be one of: ${Array.from(c2).join(", ")}.`);let n={id:i.id,targetId:i.targetId,type:i.type};if(i.complete!==void 0&&(Nr(i.complete,`${o}.complete`),n.complete=i.complete),i.playback!==void 0&&(n.playback=I4(i.playback,`${o}.playback`)),zb(i.operation,`${o}.operation`,"is no longer supported. Use `type: update | transition` instead."),zb(i.properties,`${o}.properties`,"is no longer supported. Use `tween` instead."),zb(i.subjects,`${o}.subjects`,"is no longer supported. Use `prev` / `next` instead."),i.type==="update"){if(n.tween=m2(i.tween,`${o}.tween`,M4,k4),i.replace!==void 0)throw new Error(`${o}.replace is no longer supported. Define \`prev\`, \`next\`, or \`mask\` directly on the animation.`);if(i.prev!==void 0)throw new Error(`${o}.prev is only valid for transition animations.`);if(i.next!==void 0)throw new Error(`${o}.next is only valid for transition animations.`);if(i.mask!==void 0)throw new Error(`${o}.mask is only valid for transition animations.`);if(i.shader!==void 0)throw new Error(`${o}.shader is not supported.`);return n}if(i.tween!==void 0)throw new Error(`${o}.tween is not valid for transition animations.`);if(i.replace!==void 0)throw new Error(`${o}.replace is no longer supported. Define \`prev\`, \`next\`, or \`mask\` directly on the animation.`);let a=U4(i,o);return a.prev!==void 0&&(n.prev=a.prev),a.next!==void 0&&(n.next=a.next),a.mask!==void 0&&(n.mask=a.mask),n}),t=new Map;for(let i of e){let s=t.get(i.targetId)??new Set;s.add(i.type),t.set(i.targetId,s)}for(let[i,s]of t)if(s.has("transition")&&s.size>1)throw new Error(`Animations targeting "${i}" cannot mix update and transition types in the same state.`);return e};var Xb=(r={})=>{if(r===null||typeof r!="object")throw new Error("Input error: render state must be an object.");if(r.transitions!==void 0)throw new Error("Input error: `transitions` is no longer supported. Use `animations` instead.");let e={...r,elements:r.elements??[],animations:r.animations??[],audio:r.audio??[]};if(!Array.isArray(e.elements))throw new Error("Input error: `elements` must be an array.");if(!Array.isArray(e.animations))throw new Error("Input error: `animations` must be an array.");if(!Array.isArray(e.audio))throw new Error("Input error: `audio` must be an array.");return e.animations=g2(e.animations),e};var G4="0",ma=(r,e)=>{let t=r?.[e];return typeof t=="number"?t:0},dr=r=>({value:r.element.value??"",selectionStart:ma(r.element,"selectionStart"),selectionEnd:ma(r.element,"selectionEnd"),focused:document.activeElement===r.element,composing:r.composing===!0}),L4=(r,e)=>!r||!e?!1:r.value===e.value&&r.selectionStart===e.selectionStart&&r.selectionEnd===e.selectionEnd&&r.focused===e.focused&&r.composing===e.composing,D4=r=>r instanceof HTMLInputElement||r instanceof HTMLTextAreaElement,Mu=r=>{r.element.style.pointerEvents="none"},jb=(r,e,t)=>{if(typeof r?.setSelectionRange=="function")try{r.setSelectionRange(e,t)}catch{}},N4=({app:r,geometry:e})=>{let t=r.canvas;if(!e||!t||e.visible===!1)return null;let i=t.getBoundingClientRect(),s=r.renderer?.width||i.width||1,o=r.renderer?.height||i.height||1,n=i.width/s,a=i.height/o,l=e.clipInsets??{top:0,right:0,bottom:0,left:0},c=i.left+(e.x+l.left)*n,u=i.top+(e.y+l.top)*a,h=i.left+(e.x+e.width-l.right)*n,d=i.top+(e.y+e.height-l.bottom)*a;return h<=c||d<=u?null:{left:c,top:u,right:h,bottom:d}},H4=({app:r,entry:e,event:t})=>{let i=e.options.getGeometry?.(),s=N4({app:r,geometry:i}),o=t.clientX,n=t.clientY;return!!s&&Number.isFinite(o)&&Number.isFinite(n)&&o>=s.left&&o<=s.right&&n>=s.top&&n<=s.bottom},x2=({app:r})=>{let e=new Map,t,i=null,s=()=>{t||(t=document.createElement("div"),t.dataset.routeGraphicsInputBridge="true",t.style.position="fixed",t.style.left="0",t.style.top="0",t.style.pointerEvents="none",t.style.zIndex="1000",t.style.width="0",t.style.height="0");let x=r.canvas?.parentNode??document.body;t.isConnected||x.appendChild(t)},o=(x,T=x.lastSnapshot)=>{let b=dr(x);b.focused&&i!==x.id?i=x.id:!b.focused&&i===x.id&&(i=null),Mu(x,i),T?.value!==b.value&&x.callbacks.onValueChange?.(b),(T?.selectionStart!==b.selectionStart||T?.selectionEnd!==b.selectionEnd||T?.focused!==b.focused||T?.composing!==b.composing)&&x.callbacks.onSelectionChange?.(b),x.lastSnapshot=b},n=x=>{let{disabled:T=!1,multiline:b=!1,maxLength:w,textStyle:E,padding:R,placeholder:I="",autocomplete:C="off",autocapitalize:A="off",spellcheck:M=!1}=x.options,{element:P}=x;P instanceof HTMLInputElement&&(P.type="text"),P.disabled=T,P.placeholder=I,P.autocomplete=C,P.autocapitalize=A,P.spellcheck=!!M,P.style.opacity=G4,P.style.color="transparent",P.style.caretColor="transparent",P.style.background="transparent",P.style.paddingTop=`${R.top}px`,P.style.paddingRight=`${R.right}px`,P.style.paddingBottom=`${R.bottom}px`,P.style.paddingLeft=`${R.left}px`,P.style.fontFamily=E?.fontFamily??"Arial",P.style.fontSize=`${E?.fontSize??16}px`,P.style.fontWeight=E?.fontWeight??"400",P.style.textAlign=E?.align??"left",P.style.lineHeight=typeof E?.lineHeight=="number"?`${E.lineHeight}px`:"normal",P.style.whiteSpace=b?"pre":"nowrap",P.style.overflowWrap="normal",P.style.resize="none",P.style.overflow="hidden",typeof w=="number"?P.maxLength=w:P.removeAttribute("maxLength"),P.tabIndex=-1,b&&P instanceof HTMLTextAreaElement&&(P.wrap="off",P.rows=1),Mu(x,i)},a=x=>{s();let T=r.canvas,b=x.options.getGeometry?.();if(!T||!b||b.visible===!1){x.element.style.display="none";return}let w=T.getBoundingClientRect(),E=r.renderer?.width||w.width||1,R=r.renderer?.height||w.height||1,I=w.width/E,C=w.height/R,A=b.clipInsets??{top:0,right:0,bottom:0,left:0},M={top:A.top*C,right:A.right*I,bottom:A.bottom*C,left:A.left*I};x.element.style.display="block",x.element.style.left=`${w.left+b.x*I}px`,x.element.style.top=`${w.top+b.y*C}px`,x.element.style.width=`${b.width*I}px`,x.element.style.height=`${b.height*C}px`;let P=Object.values(M).some(O=>O>0);x.element.style.clipPath=P?`inset(${M.top}px ${M.right}px ${M.bottom}px ${M.left}px)`:"none"},l=x=>{if(!i)return;let T=e.get(i),b=x.target;!T||b===T.element||T.element.contains(b)||D4(b)&&t?.contains(b)||H4({app:r,entry:T,event:x})||T.element.blur()},c=()=>{for(let x of e.values()){if(a(x),!x.lastSnapshot){x.lastSnapshot=dr(x);continue}let T=dr(x);L4(T,x.lastSnapshot)||o(x,x.lastSnapshot)}},u=({id:x,options:T})=>{let b=T.multiline===!0?document.createElement("textarea"):document.createElement("input");return b.dataset.routeGraphicsInputId=x,b.style.position="fixed",b.style.border="none",b.style.outline="none",b.style.margin="0",b.style.boxSizing="border-box",b.style.borderRadius="0",b.style.transformOrigin="top left",b.style.appearance="none",b.style.boxShadow="none",b.style.userSelect="none",b.style.webkitUserSelect="none",b},h=x=>{let{id:T,element:b}=x,w=()=>{o(x)};b.addEventListener("focus",()=>{x.pendingBlurTimer&&(clearTimeout(x.pendingBlurTimer),x.pendingBlurTimer=null),i=T,Mu(x,i);let E=dr(x);x.lastSnapshot=E,x.callbacks.onFocus?.(E),x.callbacks.onSelectionChange?.(E)}),b.addEventListener("blur",()=>{i===T&&(i=null),Mu(x,i),x.pendingBlurTimer=setTimeout(()=>{x.pendingBlurTimer=null;let E=dr(x);if(E.focused){x.lastSnapshot=E;return}x.lastSnapshot=E,x.callbacks.onBlur?.(E),x.callbacks.onSelectionChange?.(E)},0)}),b.addEventListener("input",w),b.addEventListener("select",w),b.addEventListener("click",()=>queueMicrotask(w)),b.addEventListener("keyup",()=>queueMicrotask(w)),b.addEventListener("keydown",E=>{let R=E.key==="Enter"&&x.options.multiline!==!0&&!E.shiftKey,I=E.key==="Enter"&&x.options.multiline===!0&&(E.ctrlKey||E.metaKey);(R||I)&&(E.preventDefault(),x.callbacks.onSubmit?.(dr(x),E)),E.key==="Escape"&&b.blur(),queueMicrotask(w)}),b.addEventListener("compositionstart",()=>{x.composing=!0;let E=dr(x);x.lastSnapshot=E,x.callbacks.onCompositionStart?.(E),x.callbacks.onSelectionChange?.(E)}),b.addEventListener("compositionupdate",()=>{let E=dr(x);x.lastSnapshot=E,x.callbacks.onCompositionUpdate?.(E),x.callbacks.onSelectionChange?.(E)}),b.addEventListener("compositionend",()=>{x.composing=!1,w(),x.callbacks.onCompositionEnd?.(dr(x))})};document.addEventListener("pointerdown",l,!0),r.ticker?.add?.(c);let d=(x,T)=>{s();let b=e.get(x);if(b)return b.options=T,b.callbacks=T.callbacks??{},n(b),a(b),typeof T.value=="string"&&b.element.value!==T.value&&(b.element.value=T.value),b.lastSnapshot=dr(b),b.element;let w={id:x,element:u({id:x,options:T}),options:T,callbacks:T.callbacks??{},composing:!1,pendingBlurTimer:null,lastSnapshot:null};return h(w),typeof T.value=="string"&&(w.element.value=T.value),n(w),t.appendChild(w.element),e.set(x,w),a(w),w.lastSnapshot=dr(w),w.element};return{mount:d,update:(x,T)=>{let b=e.get(x);if(!b)return d(x,T);let w=T.multiline===!0!=b.element instanceof HTMLTextAreaElement;if(b.options=T,b.callbacks=T.callbacks??{},w){let E=b.element,R=document.activeElement===E,I=ma(E,"selectionStart"),C=ma(E,"selectionEnd");return b.element=u({id:x,options:T}),h(b),E.replaceWith(b.element),b.element.value=typeof T.value=="string"?T.value:E.value,n(b),a(b),b.lastSnapshot=dr(b),R&&!T.disabled&&queueMicrotask(()=>{b.element.focus(),jb(b.element,I,C)}),b.element}return typeof T.value=="string"&&T.value!==b.element.value&&b.composing!==!0&&(b.element.value=T.value),n(b),a(b),b.lastSnapshot=dr(b),b.element},focus:(x,{selectAll:T=!1,selectionStart:b,selectionEnd:w}={})=>{let E=e.get(x);if(!E||E.element.disabled)return;let R=document.activeElement===E.element;if(i=x,Mu(E,i),R||E.element.focus(),T){E.element.select?.(),o(E,E.lastSnapshot);return}if(typeof b=="number"||typeof w=="number"){let I=typeof b=="number"?b:ma(E.element,"selectionStart"),C=typeof w=="number"?w:typeof b=="number"?b:ma(E.element,"selectionEnd");jb(E.element,I,C)}o(E,E.lastSnapshot)},setSelection:(x,T,b=T,{focus:w=!1}={})=>{let E=e.get(x);if(!E||E.element.disabled)return;let R=()=>{jb(E.element,T,b),o(E,E.lastSnapshot)};if(w&&document.activeElement!==E.element){E.element.focus(),R();return}R()},blur:x=>{e.get(x)?.element.blur()},unmount:x=>{let T=e.get(x);T&&(i===x&&(i=null),T.pendingBlurTimer&&(clearTimeout(T.pendingBlurTimer),T.pendingBlurTimer=null),T.element.remove(),e.delete(x),e.size===0&&t?.remove())},destroy:()=>{document.removeEventListener("pointerdown",l,!0),r.ticker?.remove?.(c);for(let x of e.values())x.pendingBlurTimer&&(clearTimeout(x.pendingBlurTimer),x.pendingBlurTimer=null),x.element.remove();e.clear(),i=null,t?.remove(),t=void 0}}};var V4=()=>{let r=A=>{if(A!=="auto"&&A!=="manual")throw new Error(`Invalid animation playback mode "${A}". Expected "auto" or "manual".`)},e,t=HF(),i={elements:[],animations:[],audio:[]},s,o={animations:[],elements:[],audio:[],parsers:[]},n,a,l,c,u=!1,h,d,f,p="auto",m=null,g=[],y,v=new Map,x,T=(A,M,P,O)=>{A.clear(),A.rect(0,0,M,P),A.fill(O??0)},b=A=>A?A.startsWith("audio/")?"audio":A.startsWith("font/")||["application/font-woff","application/font-woff2","application/x-font-ttf","application/x-font-otf"].includes(A)?"font":A.startsWith("video/")?"video":"texture":"texture",w=(A,M,{revokable:P=!1}={})=>{v.set(A,{url:M,revokable:P})},E=()=>{for(let A of v.values())A?.revokable===!0&&typeof A?.url=="string"&&URL.revokeObjectURL(A.url);v.clear()},R=(A,M,P)=>{n&&n.registerHotkeys(P?.keyboard??{}),A.renderer.events.cursorStyles||(A.renderer.events.cursorStyles={}),A.renderer.events.cursorStyles.default||(A.renderer.events.cursorStyles.default="default"),A.renderer.events.cursorStyles.hover||(A.renderer.events.cursorStyles.hover="pointer");let O=M?.cursorStyles,H=P?.cursorStyles;me(O,H)||(H?(H.default&&(A.renderer.events.cursorStyles.default=H.default,A.canvas.style.cursor=H.default),H.hover&&(A.renderer.events.cursorStyles.hover=H.hover)):O&&(A.renderer.events.cursorStyles.default="default",A.renderer.events.cursorStyles.hover="pointer"))},I=(A,M,P,O)=>{if(me(i,P)){typeof A.render=="function"&&A.render();return}let H=RM({prevState:i,nextState:P,activeAnimations:a.getContinuableAnimations()});h&&h.abort(),h=new AbortController;let U=h.signal;l.reset(P.id),R(A,i.global,P.global),a.cancelAllExcept(H.continuedAnimationIds),Ws({app:A,parent:M,prevComputedTree:i.elements,nextComputedTree:P.elements,animations:P.animations,elementPlugins:o.elements,animationBus:a,completionTracker:l,eventHandler:O,signal:U}),a.flush(),p==="manual"&&m!==null&&a.setTime(m),__({app:A,prevAudioTree:i.audio,nextAudioTree:P.audio,audioPlugins:o.audio}),i=P,typeof A.render=="function"&&A.render(),l.completeIfEmpty(),u||(u=!0,c&&c())},C={rendererName:"pixi",get canvas(){return e.canvas},findElementByLabel:A=>e.stage.getChildByLabel(A,!0)??null,extractBase64:async A=>{typeof e.render=="function"&&e.render();let M=new re(0,0,e.renderer.width,e.renderer.height);if(!A)return await e.renderer.extract.base64({target:e.stage,frame:M});let P=e.stage.getChildByLabel(A,!0);if(!P)throw new Error(`Element with label '${A}' not found`);return await e.renderer.extract.base64({target:P,frame:M})},assignStageEvent:(A,M)=>{e.stage.eventMode="static",e.stage.on(A,M)},setAnimationPlaybackMode:A=>{r(A),p=A,p!=="manual"&&(m=null,a?.clearTime?.())},setAnimationTime:A=>{let M=Number(A);if(!Number.isFinite(M))throw new Error("Animation time must be a finite number.");p==="manual"&&(m=M),a.flush(),a.setTime(M),p!=="manual"&&(m=null,a.clearTime()),typeof e.render=="function"&&e.render()},init:async A=>{let{eventHandler:M,plugins:P,width:O,height:H,backgroundColor:U,debug:V=!1,onFirstRender:N,animationPlaybackMode:G="auto"}=A;c=N,r(G),p=G,m=null,g.forEach(J=>J()),g=[];let q=[];P?.elements?.forEach(J=>{J?.parse&&q.push(VF({type:J.type,parse:J.parse}))}),o={animations:P?.animations??[],elements:P?.elements??[],audio:P?.audio??[],parsers:q},s=M,n=s2(M),l=l2(M),e=new lc,e.audioStage=t,await e.init({width:O,height:H,backgroundColor:U,preference:"webgl",preserveDrawingBuffer:V===!0}),typeof e.ticker?.remove=="function"&&e.ticker.remove(e.render,e),e.debug=V,e.inputDomBridge=x2({app:e}),y=J=>{J.preventDefault()},e.canvas.addEventListener("contextmenu",y),x=new De,x.label="__route_graphics_background__",T(x,O,H,U),e.stage.addChild(x),e.stage.width=O,e.stage.height=H,e.ticker.add(e.audioStage.tick),a=a2();let fe=()=>{p==="manual"&&typeof e.render=="function"&&e.render()};return g=[a.on("started",fe),a.on("completed",fe),a.on("cancelled",fe)],V?(d=J=>{p==="auto"&&J?.detail?.deltaMS&&(a.tick(Number(J.detail.deltaMS)),typeof e.render=="function"&&e.render())},window.addEventListener("snapShotKeyFrame",d)):(f=J=>{p==="auto"&&(a.tick(J.deltaMS),typeof e.render=="function"&&e.render())},e.ticker.add(f)),C},destroy:()=>{h&&(h.abort(),h=void 0),d&&(window.removeEventListener("snapShotKeyFrame",d),d=void 0),f&&typeof e?.ticker?.remove=="function"&&(e.ticker.remove(f),f=void 0),y&&e?.canvas&&(e.canvas.removeEventListener("contextmenu",y),y=void 0),e?.inputDomBridge?.destroy?.(),n?.destroy(),u_(),g.forEach(M=>M()),g=[],a&&a.destroy(),e?.audioStage&&e.audioStage.destroy();let A=M=>{for(let P of M.children){let O=P.texture?.source?.resource;O instanceof HTMLVideoElement&&O.pause(),P.children&&A(P)}};e?.stage&&A(e.stage),e&&e.destroy(),p="auto",m=null,x=void 0,E()},loadAssets:async A=>{if(!A)throw new Error("assetBufferMap is required");let M={audio:{},font:{},video:{},texture:{}};for(let[H,U]of Object.entries(A)){let V=b(U.type);M[V][H]=U}await Promise.all(Object.entries(M.audio).map(([H,U])=>_n.load(H,U.buffer))),await Promise.all(Object.entries(M.font).map(async([H,U])=>{let V=new Blob([U.buffer],{type:U.type}),N=URL.createObjectURL(V),G=new FontFace(H,`url(${N})`);try{await G.load(),document.fonts.add(G)}catch(q){console.error(`Failed to load font ${H}:`,q)}finally{URL.revokeObjectURL(N)}}));let P=Object.entries(M.texture).map(async([H,U])=>{if(vr.cache.has(H))return vr.cache.get(H);if(U?.source==="url"&&typeof U?.url=="string")return vr.load({alias:H,src:U.url});let V=new Blob([U.buffer],{type:U.type}),N=await createImageBitmap(V),G=k.from(N);return vr.cache.set(H,G),G}),O=Object.entries(M.video).map(async([H,U])=>{let V=U?.source==="url"&&typeof U?.url=="string"?U.url:URL.createObjectURL(new Blob([U.buffer],{type:U.type})),N=U?.source!=="url";w(H,V,{revokable:N});let G={alias:H,src:V,loadParser:"loadVideo",data:{}};return typeof U?.type=="string"&&U.type.length>0&&(G.data.mime=U.type),vr.load(G).then(q=>q).catch(q=>{throw v.delete(H),N&&URL.revokeObjectURL(V),q})});return Promise.all([...P,...O])},loadAudioAssets:async A=>Promise.all(A.map(async M=>{let O=await(await fetch(M)).arrayBuffer();return _n.load(M,O)})),updatedBackgroundColor:A=>{e.renderer.background.color=A,x&&T(x,e.renderer.width,e.renderer.height,A),typeof e.render=="function"&&e.render()},render:A=>{let M=Xb(A),P=Lb({JSONObject:M.elements,parserPlugins:o.parsers}),O={...M,elements:P};I(e,e.stage,O,s)},parse:A=>{let M=Xb(A),P=Lb({JSONObject:M.elements,parserPlugins:o.parsers});return{...M,elements:P}}};return C},y2=V4;var EBe=y2;export{lc as Application,vr as Assets,_n as AudioAsset,jD as animatedSpritePlugin,GD as containerPlugin,My as createAnimationPlugin,A2 as createAssetBufferManager,Ry as createAudioPlugin,rt as createElementPlugin,EBe as default,JL as inputPlugin,UN as particlesPlugin,TL as rectPlugin,__ as renderAudio,Ws as renderElements,NL as sliderPlugin,KD as soundPlugin,SL as spritePlugin,lI as spritesheetAnimationPlugin,_L as textPlugin,WD as textRevealingPlugin,YD as tweenPlugin,EL as videoPlugin};
|
|
1902
1902
|
/*! Bundled license information:
|
|
1903
1903
|
|
|
1904
1904
|
punycode/punycode.js:
|